From 62e9c6f5ca73ec39fb3530cd9013e1e04eb2ea88 Mon Sep 17 00:00:00 2001 From: Starman0620 Date: Sat, 20 Feb 2021 17:02:43 -0500 Subject: [PATCH] miami --- .github/workflows/reVC_msvc_amd64.yml | 65 + .github/workflows/reVC_msvc_x86.yml | 67 + CMakeLists.txt | 4 +- conanfile.py | 18 +- gamefiles/TEXT/ENGLISH.gxt | Bin 546764 -> 0 bytes gamefiles/TEXT/american.gxt | Bin 0 -> 423994 bytes gamefiles/TEXT/french.gxt | Bin 562636 -> 469996 bytes gamefiles/TEXT/german.gxt | Bin 567290 -> 461790 bytes gamefiles/TEXT/italian.gxt | Bin 557928 -> 458946 bytes gamefiles/TEXT/russian.gxt | Bin 0 -> 420604 bytes gamefiles/TEXT/spanish.gxt | Bin 560592 -> 455278 bytes gamefiles/models/fonts_r.txd | Bin 0 -> 524584 bytes gamefiles/models/generic.txd | Bin 0 -> 1168376 bytes gamefiles/models/particle.txd | Bin 0 -> 2668072 bytes premake5.lua | 827 +- src/CMakeLists.txt | 2 - src/animation/AnimBlendAssocGroup.cpp | 74 +- src/animation/AnimBlendAssocGroup.h | 1 - src/animation/AnimManager.cpp | 936 +- src/animation/AnimManager.h | 30 +- src/animation/AnimationId.h | 103 +- src/animation/CutsceneMgr.cpp | 690 +- src/animation/CutsceneMgr.h | 128 +- src/animation/CutsceneMgr_overlay.cpp | 1030 - src/audio/AudioLogic.cpp | 48 +- src/audio/AudioManager.h | 8 +- src/audio/AudioSamples.h | 4 - src/audio/MusicManager.cpp | 52 +- src/audio/PoliceRadio.cpp | 3 +- src/audio/audio_enums.h | 1278 +- src/audio/sampman.h | 1283 +- src/audio/sampman_miles.cpp | 204 +- src/audio/sampman_oal.cpp | 183 +- src/collision/ColBox.h | 10 +- src/collision/ColLine.h | 4 +- src/collision/ColModel.cpp | 138 +- src/collision/ColModel.h | 4 - src/collision/ColPoint.h | 4 +- src/collision/ColSphere.h | 5 +- src/collision/ColStore.cpp | 176 +- src/collision/ColStore.h | 16 +- src/collision/ColTriangle.h | 1 - src/collision/Collision.cpp | 18 +- src/collision/TempColModels.cpp | 87 +- src/collision/TempColModels.h | 15 +- src/control/Bridge.cpp | 20 - src/control/Bridge.h | 4 +- src/control/CarAI.cpp | 13 - src/control/CarCtrl.cpp | 345 +- src/control/CarCtrl.h | 14 +- src/control/GameLogic.cpp | 13 +- src/control/GameLogic.h | 1 - src/control/Garages.cpp | 727 +- src/control/Garages.h | 69 +- src/control/PathFind.cpp | 6 +- src/control/Pickups.cpp | 18 +- src/control/Pickups.h | 3 - src/control/Remote.cpp | 3 +- src/control/Remote.h | 2 +- src/control/Replay.cpp | 2 +- src/control/Replay.h | 4 +- src/control/Script.cpp | 1519 +- src/control/Script.h | 186 +- src/control/Script10.cpp | 421 - src/control/Script2.cpp | 790 +- src/control/Script3.cpp | 1106 +- src/control/Script4.cpp | 858 +- src/control/Script5.cpp | 634 +- src/control/Script6.cpp | 777 +- src/control/Script7.cpp | 620 +- src/control/Script8.cpp | 691 +- src/control/Script9.cpp | 774 - src/control/ScriptCommands.h | 256 +- src/control/TrafficLights.cpp | 26 - src/core/AnimViewer.cpp | 2 +- src/core/Cam.cpp | 4 - src/core/Camera.cpp | 8 +- src/core/Camera.h | 1 - src/core/Clock.cpp | 9 - src/core/Clock.h | 3 - src/core/FileLoader.cpp | 119 +- src/core/FileLoader.h | 1 - src/core/Frontend.cpp | 133 +- src/core/Game.cpp | 38 +- src/core/Game.h | 8 +- src/core/IniFile.cpp | 4 +- src/core/KeyGen.cpp | 106 - src/core/KeyGen.h | 11 - src/core/Leeds.cpp | 14 - src/core/Leeds.h | 36 - src/core/MenuScreensCustom.cpp | 37 - src/core/Pad.cpp | 13 +- src/core/Pad.h | 12 - src/core/PlayerInfo.cpp | 6 +- src/core/Radar.cpp | 156 +- src/core/Radar.h | 83 +- src/core/Ropes.cpp | 3 + src/core/Streaming.cpp | 255 +- src/core/Streaming.h | 22 - src/core/World.cpp | 67 +- src/core/World.h | 14 +- src/core/Zones.cpp | 12 +- src/core/common.h | 14 - src/core/config.h | 61 +- src/core/main.cpp | 90 +- src/core/main.h | 29 +- src/core/re3.cpp | 218 +- src/entities/Entity.cpp | 12 +- src/entities/Entity.h | 4 +- src/entities/Physical.cpp | 118 +- src/entities/Physical.h | 8 +- src/extras/custompipes.cpp | 10 +- src/extras/custompipes.h | 20 +- src/extras/custompipes_d3d9.cpp | 448 +- src/extras/custompipes_gl.cpp | 433 +- src/extras/postfx.cpp | 132 +- src/extras/postfx.h | 9 +- src/extras/shaders/colourfilterLCS.frag | 20 - src/extras/shaders/colourfilterLCS_PS.hlsl | 10 - src/extras/shaders/colourfilterVC.frag | 27 + src/extras/shaders/colourfilterVC_PS.hlsl | 23 + src/extras/shaders/leedsBuilding.vert | 28 - src/extras/shaders/leedsBuilding_VS.hlsl | 43 - src/extras/shaders/leedsBuilding_mobile.vert | 52 - .../shaders/leedsBuilding_mobile_VS.hlsl | 64 - src/extras/shaders/leedsDefault.frag | 48 - src/extras/shaders/leedsDefault.vert | 51 - src/extras/shaders/leedsDefault_PS_x.hlsl | 49 - src/extras/shaders/leedsDefault_VS_x.hlsl | 72 - src/extras/shaders/leedsVehicle_mobile.frag | 76 - src/extras/shaders/leedsVehicle_mobile.vert | 40 - .../shaders/leedsVehicle_mobile_PS.hlsl | 53 - .../shaders/leedsVehicle_mobile_VS.hlsl | 57 - src/extras/shaders/make_hlsl.cmd | 3 + src/extras/shaders/scale.frag | 19 - src/extras/shaders/scale_PS.hlsl | 19 - src/fakerw/fake.cpp | 5 +- src/fakerw/rpworld.h | 1 - src/fakerw/rwcore.h | 3 - src/leeds/base/memoryManager.cpp | 75 - src/leeds/base/memoryManager.h | 39 - src/leeds/base/relocatableChunk.cpp | 36 - src/leeds/base/relocatableChunk.h | 53 - src/leeds/base/sList.h | 35 - src/leeds/smallHeap.cpp | 20 - src/leeds/smallHeap.h | 17 - src/math/Vector.cpp | 15 - src/math/Vector.h | 9 +- src/math/VuVector.h | 4 +- src/modelinfo/BaseModelInfo.cpp | 91 +- src/modelinfo/BaseModelInfo.h | 31 +- src/modelinfo/ClumpModelInfo.cpp | 68 +- src/modelinfo/ClumpModelInfo.h | 9 - src/modelinfo/ModelIndices.cpp | 16 +- src/modelinfo/ModelIndices.h | 1167 +- src/modelinfo/ModelInfo.cpp | 7 +- src/modelinfo/PedModelInfo.cpp | 121 +- src/modelinfo/PedModelInfo.h | 10 +- src/modelinfo/SimpleModelInfo.cpp | 216 +- src/modelinfo/SimpleModelInfo.h | 37 +- src/modelinfo/TimeModelInfo.cpp | 29 +- src/modelinfo/TimeModelInfo.h | 9 +- src/modelinfo/VehicleModelInfo.cpp | 475 +- src/modelinfo/VehicleModelInfo.h | 49 +- src/modelinfo/WeaponModelInfo.cpp | 22 +- src/modelinfo/WeaponModelInfo.h | 10 +- src/objects/CutsceneObject.cpp | 3 - src/objects/Object.h | 1 - src/objects/ParticleObject.cpp | 11 - src/objects/ParticleObject.h | 5 +- src/peds/Gangs.cpp | 35 +- src/peds/Gangs.h | 18 +- src/peds/Ped.cpp | 77 +- src/peds/Ped.h | 102 +- src/peds/PedAI.cpp | 47 +- src/peds/PedFight.cpp | 138 +- src/peds/PedType.h | 8 +- src/peds/PlayerPed.cpp | 3 +- src/peds/Population.cpp | 160 +- src/render/Antennas.cpp | 4 + src/render/Clouds.cpp | 13 + src/render/Coronas.cpp | 8 + src/render/Fluff.cpp | 7 +- src/render/Font.cpp | 1022 +- src/render/Font.h | 47 +- src/render/Glass.cpp | 4 + src/render/Hud.cpp | 470 +- src/render/Hud.h | 21 +- src/render/MBlur.cpp | 6 +- src/render/Particle.cpp | 1022 +- src/render/Particle.h | 15 +- src/render/ParticleMgr.cpp | 32 +- src/render/ParticleMgr.h | 7 +- src/render/ParticleType.h | 9 +- src/render/PointLights.cpp | 4 + src/render/Renderer.cpp | 220 +- src/render/Renderer.h | 2 - src/render/Rubbish.cpp | 4 + src/render/Shadows.cpp | 26 +- src/render/Skidmarks.cpp | 4 + src/render/SpecialFX.cpp | 6 +- src/render/Sprite.cpp | 13 - src/render/Sprite.h | 2 - src/render/Timecycle.cpp | 276 +- src/render/Timecycle.h | 1 - src/render/WaterCannon.cpp | 60 +- src/render/WaterCannon.h | 3 +- src/render/WaterCreatures.cpp | 4 +- src/render/WaterCreatures.h | 3 +- src/render/WaterLevel.cpp | 21 +- src/render/WaterLevel.h | 2 +- src/render/Weather.cpp | 27 - src/render/Weather.h | 7 - src/rw/Lights.cpp | 7 +- src/rw/RwHelper.cpp | 33 +- src/rw/RwHelper.h | 1 + src/rw/TxdStore.cpp | 93 +- src/rw/TxdStore.h | 11 +- src/rw/VisibilityPlugins.cpp | 33 +- src/rw/VisibilityPlugins.h | 2 - src/save/GenericGameStorage.cpp | 8 +- src/skel/glfw/glfw.cpp | 318 +- src/skel/skeleton.cpp | 2 +- src/skel/win/gtalcs.ico | Bin 2238 -> 0 bytes src/skel/win/gtavc.ico | Bin 0 -> 81817 bytes src/skel/win/win.cpp | 20 +- src/skel/win/win.rc | 2 +- src/text/Messages.cpp | 85 +- src/text/Messages.h | 2 - src/text/Text.cpp | 19 +- src/text/Text.h | 16 +- src/vehicles/Automobile.cpp | 856 +- src/vehicles/Automobile.h | 3 - src/vehicles/Bike.cpp | 9 +- src/vehicles/Bike.h | 1 - src/vehicles/Boat.cpp | 5 +- src/vehicles/Cranes.cpp | 10 +- src/vehicles/DamageManager.cpp | 5 +- src/vehicles/DamageManager.h | 1 - src/vehicles/Door.cpp | 55 - src/vehicles/Door.h | 19 - src/vehicles/Ferry.h | 13 - src/vehicles/HandlingMgr.cpp | 160 +- src/vehicles/HandlingMgr.h | 93 +- src/vehicles/Heli.cpp | 2 +- src/vehicles/Train.cpp | 58 +- src/vehicles/Transmission.cpp | 119 +- src/vehicles/Transmission.h | 2 - src/vehicles/Vehicle.cpp | 44 +- src/vehicles/Vehicle.h | 10 +- src/weapons/Weapon.cpp | 10 +- src/weapons/WeaponEffects.cpp | 5 + utils/gxt/ENGLISH.txt | 18230 --------- utils/gxt/american.txt | 14429 ++++++++ utils/gxt/build.bat | 10 +- utils/gxt/french.txt | 26077 ++++++------- utils/gxt/german.txt | 27854 +++++++------- utils/gxt/italian.txt | 27466 +++++++------- utils/gxt/spanish.txt | 30460 +++++++--------- vendor/librw/.appveyor.yml | 32 - .../.github/workflows/build-cmake-conan.yml | 83 - vendor/librw/.gitignore | 9 - vendor/librw/.travis.yml | 46 - vendor/librw/ARCHITECTURE.MD | 174 - vendor/librw/CMakeLists.txt | 119 - vendor/librw/Dockerfile | 60 - vendor/librw/LICENSE | 22 - vendor/librw/README.md | 26 - vendor/librw/TODO | 16 - vendor/librw/args.h | 24 - vendor/librw/cmake/FindSDL2.cmake | 38 - vendor/librw/cmake/librw-config.cmake.in | 18 - .../ps2toolchain/CMakeDSMCompiler.cmake.in | 16 - .../ps2toolchain/CMakeDSMInformation.cmake | 79 - .../CMakeDetermineDSMCompiler.cmake | 87 - .../ps2toolchain/CMakeTestDSMCompiler.cmake | 7 - .../ps2toolchain/Platform/PlayStation2.cmake | 1 - .../cmake/ps2toolchain/cmaketoolchain.cmake | 68 - vendor/librw/cmake/ps2toolchain/conanfile.py | 21 - .../cmake/ps2toolchain/toolchain_ps2_ee.cmake | 60 - vendor/librw/conan/playstation2 | 12 - vendor/librw/conanfile.py | 139 - vendor/librw/docker_rebuild_ps2.sh | 22 - vendor/librw/premake-vs2019.cmd | 1 - vendor/librw/premake5.exe | Bin 1362432 -> 0 bytes vendor/librw/premake5.lua | 245 - vendor/librw/rw.h | 25 - vendor/librw/skeleton/CMakeLists.txt | 47 - vendor/librw/skeleton/glfw.cpp | 262 - vendor/librw/skeleton/imgui/CMakeLists.txt | 46 - vendor/librw/skeleton/imgui/ImGuizmo.cpp | 1834 - vendor/librw/skeleton/imgui/ImGuizmo.h | 169 - vendor/librw/skeleton/imgui/LICENSE_imgui.txt | 21 - .../librw/skeleton/imgui/LICENSE_imguizmo.txt | 21 - vendor/librw/skeleton/imgui/imconfig.h | 61 - vendor/librw/skeleton/imgui/imgui.cpp | 11739 ------ vendor/librw/skeleton/imgui/imgui.h | 1684 - vendor/librw/skeleton/imgui/imgui_demo.cpp | 3068 -- vendor/librw/skeleton/imgui/imgui_draw.cpp | 2906 -- vendor/librw/skeleton/imgui/imgui_impl_rw.cpp | 219 - vendor/librw/skeleton/imgui/imgui_impl_rw.h | 4 - vendor/librw/skeleton/imgui/imgui_internal.h | 985 - vendor/librw/skeleton/imgui/stb_rect_pack.h | 583 - vendor/librw/skeleton/imgui/stb_textedit.h | 1322 - vendor/librw/skeleton/imgui/stb_truetype.h | 4018 -- vendor/librw/skeleton/sdl2.cpp | 325 - vendor/librw/skeleton/skeleton.cpp | 111 - vendor/librw/skeleton/skeleton.h | 115 - vendor/librw/skeleton/win.cpp | 315 - vendor/librw/src/CMakeLists.txt | 251 - vendor/librw/src/anim.cpp | 293 - vendor/librw/src/base.cpp | 1121 - vendor/librw/src/base.err | 24 - vendor/librw/src/bmp.cpp | 284 - vendor/librw/src/camera.cpp | 524 - vendor/librw/src/charset.cpp | 236 - vendor/librw/src/clump.cpp | 669 - vendor/librw/src/d3d/d3d.cpp | 1087 - vendor/librw/src/d3d/d3d8.cpp | 677 - vendor/librw/src/d3d/d3d8matfx.cpp | 56 - vendor/librw/src/d3d/d3d8render.cpp | 65 - vendor/librw/src/d3d/d3d8skin.cpp | 56 - vendor/librw/src/d3d/d3d9.cpp | 853 - vendor/librw/src/d3d/d3d9matfx.cpp | 304 - vendor/librw/src/d3d/d3d9render.cpp | 185 - vendor/librw/src/d3d/d3d9skin.cpp | 418 - vendor/librw/src/d3d/d3ddevice.cpp | 2011 - vendor/librw/src/d3d/d3dimmed.cpp | 386 - vendor/librw/src/d3d/d3drender.cpp | 413 - vendor/librw/src/d3d/rwd3d.h | 411 - vendor/librw/src/d3d/rwd3d8.h | 74 - vendor/librw/src/d3d/rwd3d9.h | 112 - vendor/librw/src/d3d/rwd3dimpl.h | 81 - vendor/librw/src/d3d/rwxbox.h | 195 - vendor/librw/src/d3d/rwxboximpl.h | 11 - vendor/librw/src/d3d/shaders/default_PS.h | 72 - vendor/librw/src/d3d/shaders/default_PS.hlsl | 19 - vendor/librw/src/d3d/shaders/default_VS.hlsl | 51 - vendor/librw/src/d3d/shaders/default_all_VS.h | 491 - vendor/librw/src/d3d/shaders/default_amb_VS.h | 156 - .../src/d3d/shaders/default_amb_dir_VS.h | 272 - vendor/librw/src/d3d/shaders/default_tex_PS.h | 89 - vendor/librw/src/d3d/shaders/im2d_PS.h | 72 - vendor/librw/src/d3d/shaders/im2d_PS.hlsl | 19 - vendor/librw/src/d3d/shaders/im2d_VS.h | 107 - vendor/librw/src/d3d/shaders/im2d_VS.hlsl | 30 - vendor/librw/src/d3d/shaders/im2d_tex_PS.h | 89 - vendor/librw/src/d3d/shaders/lighting.h | 44 - vendor/librw/src/d3d/shaders/make_default.cmd | 11 - vendor/librw/src/d3d/shaders/make_matfx.cmd | 7 - vendor/librw/src/d3d/shaders/make_skin.cmd | 4 - vendor/librw/src/d3d/shaders/matfx_env_PS.h | 131 - .../librw/src/d3d/shaders/matfx_env_PS.hlsl | 43 - .../librw/src/d3d/shaders/matfx_env_VS.hlsl | 55 - .../librw/src/d3d/shaders/matfx_env_all_VS.h | 514 - .../librw/src/d3d/shaders/matfx_env_amb_VS.h | 204 - .../src/d3d/shaders/matfx_env_amb_dir_VS.h | 295 - .../librw/src/d3d/shaders/matfx_env_tex_PS.h | 149 - vendor/librw/src/d3d/shaders/skin_VS.hlsl | 63 - vendor/librw/src/d3d/shaders/skin_all_VS.h | 664 - vendor/librw/src/d3d/shaders/skin_amb_VS.h | 253 - .../librw/src/d3d/shaders/skin_amb_dir_VS.h | 503 - .../librw/src/d3d/shaders/standardConstants.h | 28 - vendor/librw/src/d3d/xbox.cpp | 1005 - vendor/librw/src/d3d/xboxmatfx.cpp | 53 - vendor/librw/src/d3d/xboxskin.cpp | 252 - vendor/librw/src/d3d/xboxvfmt.cpp | 115 - vendor/librw/src/engine.cpp | 566 - vendor/librw/src/error.cpp | 49 - vendor/librw/src/frame.cpp | 463 - vendor/librw/src/geometry.cpp | 1052 - vendor/librw/src/geoplg.cpp | 339 - vendor/librw/src/gl/gl3.cpp | 56 - vendor/librw/src/gl/gl3device.cpp | 2083 -- vendor/librw/src/gl/gl3immed.cpp | 304 - vendor/librw/src/gl/gl3matfx.cpp | 212 - vendor/librw/src/gl/gl3pipe.cpp | 333 - vendor/librw/src/gl/gl3raster.cpp | 1042 - vendor/librw/src/gl/gl3render.cpp | 174 - vendor/librw/src/gl/gl3shader.cpp | 282 - vendor/librw/src/gl/gl3skin.cpp | 342 - vendor/librw/src/gl/glad/glad.c | 1590 - vendor/librw/src/gl/glad/glad.h | 2808 -- vendor/librw/src/gl/glad/khrplatform.h | 290 - vendor/librw/src/gl/rwgl3.h | 285 - vendor/librw/src/gl/rwgl3impl.h | 76 - vendor/librw/src/gl/rwgl3plg.h | 16 - vendor/librw/src/gl/rwgl3shader.h | 46 - vendor/librw/src/gl/rwwdgl.h | 88 - vendor/librw/src/gl/shaders/Makefile | 45 - vendor/librw/src/gl/shaders/default.vert | 23 - vendor/librw/src/gl/shaders/default_vs_gl.inc | 25 - vendor/librw/src/gl/shaders/header.frag | 28 - vendor/librw/src/gl/shaders/header.vert | 128 - vendor/librw/src/gl/shaders/header_fs.inc | 30 - vendor/librw/src/gl/shaders/header_vs.inc | 130 - vendor/librw/src/gl/shaders/im2d.vert | 18 - vendor/librw/src/gl/shaders/im2d_gl.inc | 20 - vendor/librw/src/gl/shaders/im3d.vert | 16 - vendor/librw/src/gl/shaders/im3d_gl.inc | 18 - vendor/librw/src/gl/shaders/matfx_env.frag | 35 - vendor/librw/src/gl/shaders/matfx_env.vert | 27 - vendor/librw/src/gl/shaders/matfx_gl.inc | 66 - vendor/librw/src/gl/shaders/simple.frag | 15 - vendor/librw/src/gl/shaders/simple_fs_gl.inc | 17 - vendor/librw/src/gl/shaders/skin.vert | 32 - vendor/librw/src/gl/shaders/skin_gl.inc | 34 - vendor/librw/src/gl/wdgl.cpp | 875 - vendor/librw/src/hanim.cpp | 414 - vendor/librw/src/image.cpp | 1324 - vendor/librw/src/light.cpp | 163 - vendor/librw/src/lodepng/lodepng.cpp | 6410 ---- vendor/librw/src/lodepng/lodepng.h | 1945 - vendor/librw/src/matfx.cpp | 637 - vendor/librw/src/pipeline.cpp | 198 - vendor/librw/src/plg.cpp | 246 - vendor/librw/src/png.cpp | 151 - vendor/librw/src/prim.cpp | 70 - vendor/librw/src/ps2/pds.cpp | 203 - vendor/librw/src/ps2/ps2.cpp | 1573 - vendor/librw/src/ps2/ps2device.cpp | 49 - vendor/librw/src/ps2/ps2matfx.cpp | 68 - vendor/librw/src/ps2/ps2raster.cpp | 2238 -- vendor/librw/src/ps2/ps2skin.cpp | 334 - vendor/librw/src/ps2/rwps2.h | 258 - vendor/librw/src/ps2/rwps2impl.h | 16 - vendor/librw/src/ps2/rwps2plg.h | 27 - vendor/librw/src/raster.cpp | 559 - vendor/librw/src/render.cpp | 78 - vendor/librw/src/rwanim.h | 195 - vendor/librw/src/rwbase.h | 712 - vendor/librw/src/rwcharset.h | 25 - vendor/librw/src/rwengine.h | 263 - vendor/librw/src/rwerror.h | 25 - vendor/librw/src/rwobjects.h | 904 - vendor/librw/src/rwpipeline.h | 65 - vendor/librw/src/rwplg.h | 85 - vendor/librw/src/rwplugins.h | 249 - vendor/librw/src/rwrender.h | 137 - vendor/librw/src/rwuserdata.h | 94 - vendor/librw/src/skin.cpp | 486 - vendor/librw/src/texture.cpp | 596 - vendor/librw/src/tga.cpp | 222 - vendor/librw/src/tristrip.cpp | 682 - vendor/librw/src/userdata.cpp | 364 - vendor/librw/src/uvanim.cpp | 502 - vendor/librw/src/vgafont.inc | 256 - vendor/librw/src/world.cpp | 198 - vendor/librw/tools/CMakeLists.txt | 11 - vendor/librw/tools/dumprwtree/CMakeLists.txt | 14 - vendor/librw/tools/dumprwtree/dumprwtree.cpp | 145 - vendor/librw/tools/imguitest/CMakeLists.txt | 15 - vendor/librw/tools/imguitest/main.cpp | 173 - vendor/librw/tools/lights/checker.dff | Bin 14348 -> 0 bytes vendor/librw/tools/lights/main.cpp | 365 - .../librw/tools/playground/Bm437_IBM_BIOS.FON | Bin 4064 -> 0 bytes .../librw/tools/playground/Bm437_IBM_BIOS.tga | Bin 65554 -> 0 bytes .../librw/tools/playground/Bm437_IBM_VGA8.FON | Bin 6112 -> 0 bytes .../librw/tools/playground/Bm437_IBM_VGA8.tga | Bin 131090 -> 0 bytes vendor/librw/tools/playground/camera.cpp | 134 - vendor/librw/tools/playground/camera.h | 26 - vendor/librw/tools/playground/font.cpp | 181 - vendor/librw/tools/playground/foobar.tga | Bin 65554 -> 0 bytes vendor/librw/tools/playground/main.cpp | 641 - vendor/librw/tools/playground/maze.tga | Bin 49196 -> 0 bytes vendor/librw/tools/playground/ras_test.cpp | 902 - vendor/librw/tools/playground/splines.cpp | 520 - vendor/librw/tools/playground/teapot.dff | Bin 42796 -> 0 bytes vendor/librw/tools/playground/tl_tests.cpp | 766 - vendor/librw/tools/ps2test/CMakeLists.txt | 25 - vendor/librw/tools/ps2test/gs.h | 437 - vendor/librw/tools/ps2test/main.cpp | 787 - vendor/librw/tools/ps2test/mem.h | 95 - vendor/librw/tools/ps2test/ps2.h | 23 - vendor/librw/tools/ps2test/vu/defaultpipe.dsm | 93 - vendor/librw/tools/ps2test/vu/light.vu | 94 - vendor/librw/tools/ps2test/vu/setup_persp.vu | 39 - vendor/librw/tools/ps2test/vu/skinpipe.dsm | 94 - vendor/librw/tools/ska2anm/ska2anm.cpp | 83 - 479 files changed, 76744 insertions(+), 188252 deletions(-) create mode 100644 .github/workflows/reVC_msvc_amd64.yml create mode 100644 .github/workflows/reVC_msvc_x86.yml delete mode 100644 gamefiles/TEXT/ENGLISH.gxt create mode 100644 gamefiles/TEXT/american.gxt create mode 100644 gamefiles/TEXT/russian.gxt create mode 100644 gamefiles/models/fonts_r.txd create mode 100644 gamefiles/models/generic.txd create mode 100644 gamefiles/models/particle.txd delete mode 100644 src/animation/CutsceneMgr_overlay.cpp delete mode 100644 src/control/Script10.cpp delete mode 100644 src/control/Script9.cpp delete mode 100644 src/core/KeyGen.cpp delete mode 100644 src/core/KeyGen.h delete mode 100644 src/core/Leeds.cpp delete mode 100644 src/core/Leeds.h delete mode 100644 src/extras/shaders/colourfilterLCS.frag delete mode 100644 src/extras/shaders/colourfilterLCS_PS.hlsl create mode 100644 src/extras/shaders/colourfilterVC.frag create mode 100644 src/extras/shaders/colourfilterVC_PS.hlsl delete mode 100644 src/extras/shaders/leedsBuilding.vert delete mode 100644 src/extras/shaders/leedsBuilding_VS.hlsl delete mode 100644 src/extras/shaders/leedsBuilding_mobile.vert delete mode 100644 src/extras/shaders/leedsBuilding_mobile_VS.hlsl delete mode 100644 src/extras/shaders/leedsDefault.frag delete mode 100644 src/extras/shaders/leedsDefault.vert delete mode 100644 src/extras/shaders/leedsDefault_PS_x.hlsl delete mode 100644 src/extras/shaders/leedsDefault_VS_x.hlsl delete mode 100644 src/extras/shaders/leedsVehicle_mobile.frag delete mode 100644 src/extras/shaders/leedsVehicle_mobile.vert delete mode 100644 src/extras/shaders/leedsVehicle_mobile_PS.hlsl delete mode 100644 src/extras/shaders/leedsVehicle_mobile_VS.hlsl create mode 100644 src/extras/shaders/make_hlsl.cmd delete mode 100644 src/extras/shaders/scale.frag delete mode 100644 src/extras/shaders/scale_PS.hlsl delete mode 100644 src/leeds/base/memoryManager.cpp delete mode 100644 src/leeds/base/memoryManager.h delete mode 100644 src/leeds/base/relocatableChunk.cpp delete mode 100644 src/leeds/base/relocatableChunk.h delete mode 100644 src/leeds/base/sList.h delete mode 100644 src/leeds/smallHeap.cpp delete mode 100644 src/leeds/smallHeap.h delete mode 100644 src/skel/win/gtalcs.ico create mode 100644 src/skel/win/gtavc.ico delete mode 100644 src/vehicles/Ferry.h delete mode 100644 utils/gxt/ENGLISH.txt create mode 100644 utils/gxt/american.txt delete mode 100644 vendor/librw/.appveyor.yml delete mode 100644 vendor/librw/.github/workflows/build-cmake-conan.yml delete mode 100644 vendor/librw/.gitignore delete mode 100644 vendor/librw/.travis.yml delete mode 100644 vendor/librw/ARCHITECTURE.MD delete mode 100644 vendor/librw/CMakeLists.txt delete mode 100644 vendor/librw/Dockerfile delete mode 100644 vendor/librw/LICENSE delete mode 100644 vendor/librw/README.md delete mode 100644 vendor/librw/TODO delete mode 100644 vendor/librw/args.h delete mode 100644 vendor/librw/cmake/FindSDL2.cmake delete mode 100644 vendor/librw/cmake/librw-config.cmake.in delete mode 100644 vendor/librw/cmake/ps2toolchain/CMakeDSMCompiler.cmake.in delete mode 100644 vendor/librw/cmake/ps2toolchain/CMakeDSMInformation.cmake delete mode 100644 vendor/librw/cmake/ps2toolchain/CMakeDetermineDSMCompiler.cmake delete mode 100644 vendor/librw/cmake/ps2toolchain/CMakeTestDSMCompiler.cmake delete mode 100644 vendor/librw/cmake/ps2toolchain/Platform/PlayStation2.cmake delete mode 100644 vendor/librw/cmake/ps2toolchain/cmaketoolchain.cmake delete mode 100644 vendor/librw/cmake/ps2toolchain/conanfile.py delete mode 100644 vendor/librw/cmake/ps2toolchain/toolchain_ps2_ee.cmake delete mode 100644 vendor/librw/conan/playstation2 delete mode 100644 vendor/librw/conanfile.py delete mode 100755 vendor/librw/docker_rebuild_ps2.sh delete mode 100644 vendor/librw/premake-vs2019.cmd delete mode 100644 vendor/librw/premake5.exe delete mode 100755 vendor/librw/premake5.lua delete mode 100644 vendor/librw/rw.h delete mode 100644 vendor/librw/skeleton/CMakeLists.txt delete mode 100644 vendor/librw/skeleton/glfw.cpp delete mode 100644 vendor/librw/skeleton/imgui/CMakeLists.txt delete mode 100644 vendor/librw/skeleton/imgui/ImGuizmo.cpp delete mode 100644 vendor/librw/skeleton/imgui/ImGuizmo.h delete mode 100644 vendor/librw/skeleton/imgui/LICENSE_imgui.txt delete mode 100644 vendor/librw/skeleton/imgui/LICENSE_imguizmo.txt delete mode 100644 vendor/librw/skeleton/imgui/imconfig.h delete mode 100644 vendor/librw/skeleton/imgui/imgui.cpp delete mode 100644 vendor/librw/skeleton/imgui/imgui.h delete mode 100644 vendor/librw/skeleton/imgui/imgui_demo.cpp delete mode 100644 vendor/librw/skeleton/imgui/imgui_draw.cpp delete mode 100644 vendor/librw/skeleton/imgui/imgui_impl_rw.cpp delete mode 100644 vendor/librw/skeleton/imgui/imgui_impl_rw.h delete mode 100644 vendor/librw/skeleton/imgui/imgui_internal.h delete mode 100644 vendor/librw/skeleton/imgui/stb_rect_pack.h delete mode 100644 vendor/librw/skeleton/imgui/stb_textedit.h delete mode 100644 vendor/librw/skeleton/imgui/stb_truetype.h delete mode 100644 vendor/librw/skeleton/sdl2.cpp delete mode 100644 vendor/librw/skeleton/skeleton.cpp delete mode 100644 vendor/librw/skeleton/skeleton.h delete mode 100644 vendor/librw/skeleton/win.cpp delete mode 100644 vendor/librw/src/CMakeLists.txt delete mode 100644 vendor/librw/src/anim.cpp delete mode 100644 vendor/librw/src/base.cpp delete mode 100644 vendor/librw/src/base.err delete mode 100644 vendor/librw/src/bmp.cpp delete mode 100644 vendor/librw/src/camera.cpp delete mode 100644 vendor/librw/src/charset.cpp delete mode 100644 vendor/librw/src/clump.cpp delete mode 100644 vendor/librw/src/d3d/d3d.cpp delete mode 100644 vendor/librw/src/d3d/d3d8.cpp delete mode 100644 vendor/librw/src/d3d/d3d8matfx.cpp delete mode 100644 vendor/librw/src/d3d/d3d8render.cpp delete mode 100644 vendor/librw/src/d3d/d3d8skin.cpp delete mode 100644 vendor/librw/src/d3d/d3d9.cpp delete mode 100644 vendor/librw/src/d3d/d3d9matfx.cpp delete mode 100644 vendor/librw/src/d3d/d3d9render.cpp delete mode 100644 vendor/librw/src/d3d/d3d9skin.cpp delete mode 100644 vendor/librw/src/d3d/d3ddevice.cpp delete mode 100644 vendor/librw/src/d3d/d3dimmed.cpp delete mode 100644 vendor/librw/src/d3d/d3drender.cpp delete mode 100644 vendor/librw/src/d3d/rwd3d.h delete mode 100644 vendor/librw/src/d3d/rwd3d8.h delete mode 100644 vendor/librw/src/d3d/rwd3d9.h delete mode 100644 vendor/librw/src/d3d/rwd3dimpl.h delete mode 100644 vendor/librw/src/d3d/rwxbox.h delete mode 100644 vendor/librw/src/d3d/rwxboximpl.h delete mode 100644 vendor/librw/src/d3d/shaders/default_PS.h delete mode 100644 vendor/librw/src/d3d/shaders/default_PS.hlsl delete mode 100644 vendor/librw/src/d3d/shaders/default_VS.hlsl delete mode 100644 vendor/librw/src/d3d/shaders/default_all_VS.h delete mode 100644 vendor/librw/src/d3d/shaders/default_amb_VS.h delete mode 100644 vendor/librw/src/d3d/shaders/default_amb_dir_VS.h delete mode 100644 vendor/librw/src/d3d/shaders/default_tex_PS.h delete mode 100644 vendor/librw/src/d3d/shaders/im2d_PS.h delete mode 100644 vendor/librw/src/d3d/shaders/im2d_PS.hlsl delete mode 100644 vendor/librw/src/d3d/shaders/im2d_VS.h delete mode 100644 vendor/librw/src/d3d/shaders/im2d_VS.hlsl delete mode 100644 vendor/librw/src/d3d/shaders/im2d_tex_PS.h delete mode 100644 vendor/librw/src/d3d/shaders/lighting.h delete mode 100644 vendor/librw/src/d3d/shaders/make_default.cmd delete mode 100644 vendor/librw/src/d3d/shaders/make_matfx.cmd delete mode 100644 vendor/librw/src/d3d/shaders/make_skin.cmd delete mode 100644 vendor/librw/src/d3d/shaders/matfx_env_PS.h delete mode 100644 vendor/librw/src/d3d/shaders/matfx_env_PS.hlsl delete mode 100644 vendor/librw/src/d3d/shaders/matfx_env_VS.hlsl delete mode 100644 vendor/librw/src/d3d/shaders/matfx_env_all_VS.h delete mode 100644 vendor/librw/src/d3d/shaders/matfx_env_amb_VS.h delete mode 100644 vendor/librw/src/d3d/shaders/matfx_env_amb_dir_VS.h delete mode 100644 vendor/librw/src/d3d/shaders/matfx_env_tex_PS.h delete mode 100644 vendor/librw/src/d3d/shaders/skin_VS.hlsl delete mode 100644 vendor/librw/src/d3d/shaders/skin_all_VS.h delete mode 100644 vendor/librw/src/d3d/shaders/skin_amb_VS.h delete mode 100644 vendor/librw/src/d3d/shaders/skin_amb_dir_VS.h delete mode 100644 vendor/librw/src/d3d/shaders/standardConstants.h delete mode 100644 vendor/librw/src/d3d/xbox.cpp delete mode 100644 vendor/librw/src/d3d/xboxmatfx.cpp delete mode 100644 vendor/librw/src/d3d/xboxskin.cpp delete mode 100644 vendor/librw/src/d3d/xboxvfmt.cpp delete mode 100644 vendor/librw/src/engine.cpp delete mode 100644 vendor/librw/src/error.cpp delete mode 100644 vendor/librw/src/frame.cpp delete mode 100644 vendor/librw/src/geometry.cpp delete mode 100644 vendor/librw/src/geoplg.cpp delete mode 100644 vendor/librw/src/gl/gl3.cpp delete mode 100644 vendor/librw/src/gl/gl3device.cpp delete mode 100644 vendor/librw/src/gl/gl3immed.cpp delete mode 100644 vendor/librw/src/gl/gl3matfx.cpp delete mode 100644 vendor/librw/src/gl/gl3pipe.cpp delete mode 100644 vendor/librw/src/gl/gl3raster.cpp delete mode 100644 vendor/librw/src/gl/gl3render.cpp delete mode 100644 vendor/librw/src/gl/gl3shader.cpp delete mode 100644 vendor/librw/src/gl/gl3skin.cpp delete mode 100644 vendor/librw/src/gl/glad/glad.c delete mode 100644 vendor/librw/src/gl/glad/glad.h delete mode 100644 vendor/librw/src/gl/glad/khrplatform.h delete mode 100644 vendor/librw/src/gl/rwgl3.h delete mode 100644 vendor/librw/src/gl/rwgl3impl.h delete mode 100644 vendor/librw/src/gl/rwgl3plg.h delete mode 100644 vendor/librw/src/gl/rwgl3shader.h delete mode 100644 vendor/librw/src/gl/rwwdgl.h delete mode 100644 vendor/librw/src/gl/shaders/Makefile delete mode 100644 vendor/librw/src/gl/shaders/default.vert delete mode 100644 vendor/librw/src/gl/shaders/default_vs_gl.inc delete mode 100644 vendor/librw/src/gl/shaders/header.frag delete mode 100644 vendor/librw/src/gl/shaders/header.vert delete mode 100644 vendor/librw/src/gl/shaders/header_fs.inc delete mode 100644 vendor/librw/src/gl/shaders/header_vs.inc delete mode 100644 vendor/librw/src/gl/shaders/im2d.vert delete mode 100644 vendor/librw/src/gl/shaders/im2d_gl.inc delete mode 100644 vendor/librw/src/gl/shaders/im3d.vert delete mode 100644 vendor/librw/src/gl/shaders/im3d_gl.inc delete mode 100644 vendor/librw/src/gl/shaders/matfx_env.frag delete mode 100644 vendor/librw/src/gl/shaders/matfx_env.vert delete mode 100644 vendor/librw/src/gl/shaders/matfx_gl.inc delete mode 100644 vendor/librw/src/gl/shaders/simple.frag delete mode 100644 vendor/librw/src/gl/shaders/simple_fs_gl.inc delete mode 100644 vendor/librw/src/gl/shaders/skin.vert delete mode 100644 vendor/librw/src/gl/shaders/skin_gl.inc delete mode 100644 vendor/librw/src/gl/wdgl.cpp delete mode 100644 vendor/librw/src/hanim.cpp delete mode 100644 vendor/librw/src/image.cpp delete mode 100644 vendor/librw/src/light.cpp delete mode 100644 vendor/librw/src/lodepng/lodepng.cpp delete mode 100644 vendor/librw/src/lodepng/lodepng.h delete mode 100644 vendor/librw/src/matfx.cpp delete mode 100644 vendor/librw/src/pipeline.cpp delete mode 100644 vendor/librw/src/plg.cpp delete mode 100644 vendor/librw/src/png.cpp delete mode 100644 vendor/librw/src/prim.cpp delete mode 100644 vendor/librw/src/ps2/pds.cpp delete mode 100644 vendor/librw/src/ps2/ps2.cpp delete mode 100644 vendor/librw/src/ps2/ps2device.cpp delete mode 100644 vendor/librw/src/ps2/ps2matfx.cpp delete mode 100644 vendor/librw/src/ps2/ps2raster.cpp delete mode 100644 vendor/librw/src/ps2/ps2skin.cpp delete mode 100644 vendor/librw/src/ps2/rwps2.h delete mode 100644 vendor/librw/src/ps2/rwps2impl.h delete mode 100644 vendor/librw/src/ps2/rwps2plg.h delete mode 100644 vendor/librw/src/raster.cpp delete mode 100644 vendor/librw/src/render.cpp delete mode 100644 vendor/librw/src/rwanim.h delete mode 100644 vendor/librw/src/rwbase.h delete mode 100644 vendor/librw/src/rwcharset.h delete mode 100644 vendor/librw/src/rwengine.h delete mode 100644 vendor/librw/src/rwerror.h delete mode 100644 vendor/librw/src/rwobjects.h delete mode 100644 vendor/librw/src/rwpipeline.h delete mode 100644 vendor/librw/src/rwplg.h delete mode 100644 vendor/librw/src/rwplugins.h delete mode 100644 vendor/librw/src/rwrender.h delete mode 100644 vendor/librw/src/rwuserdata.h delete mode 100644 vendor/librw/src/skin.cpp delete mode 100644 vendor/librw/src/texture.cpp delete mode 100644 vendor/librw/src/tga.cpp delete mode 100644 vendor/librw/src/tristrip.cpp delete mode 100644 vendor/librw/src/userdata.cpp delete mode 100644 vendor/librw/src/uvanim.cpp delete mode 100644 vendor/librw/src/vgafont.inc delete mode 100644 vendor/librw/src/world.cpp delete mode 100644 vendor/librw/tools/CMakeLists.txt delete mode 100644 vendor/librw/tools/dumprwtree/CMakeLists.txt delete mode 100644 vendor/librw/tools/dumprwtree/dumprwtree.cpp delete mode 100644 vendor/librw/tools/imguitest/CMakeLists.txt delete mode 100644 vendor/librw/tools/imguitest/main.cpp delete mode 100644 vendor/librw/tools/lights/checker.dff delete mode 100644 vendor/librw/tools/lights/main.cpp delete mode 100644 vendor/librw/tools/playground/Bm437_IBM_BIOS.FON delete mode 100644 vendor/librw/tools/playground/Bm437_IBM_BIOS.tga delete mode 100644 vendor/librw/tools/playground/Bm437_IBM_VGA8.FON delete mode 100644 vendor/librw/tools/playground/Bm437_IBM_VGA8.tga delete mode 100644 vendor/librw/tools/playground/camera.cpp delete mode 100644 vendor/librw/tools/playground/camera.h delete mode 100644 vendor/librw/tools/playground/font.cpp delete mode 100644 vendor/librw/tools/playground/foobar.tga delete mode 100644 vendor/librw/tools/playground/main.cpp delete mode 100644 vendor/librw/tools/playground/maze.tga delete mode 100644 vendor/librw/tools/playground/ras_test.cpp delete mode 100644 vendor/librw/tools/playground/splines.cpp delete mode 100644 vendor/librw/tools/playground/teapot.dff delete mode 100644 vendor/librw/tools/playground/tl_tests.cpp delete mode 100644 vendor/librw/tools/ps2test/CMakeLists.txt delete mode 100644 vendor/librw/tools/ps2test/gs.h delete mode 100755 vendor/librw/tools/ps2test/main.cpp delete mode 100644 vendor/librw/tools/ps2test/mem.h delete mode 100644 vendor/librw/tools/ps2test/ps2.h delete mode 100644 vendor/librw/tools/ps2test/vu/defaultpipe.dsm delete mode 100644 vendor/librw/tools/ps2test/vu/light.vu delete mode 100644 vendor/librw/tools/ps2test/vu/setup_persp.vu delete mode 100644 vendor/librw/tools/ps2test/vu/skinpipe.dsm delete mode 100644 vendor/librw/tools/ska2anm/ska2anm.cpp diff --git a/.github/workflows/reVC_msvc_amd64.yml b/.github/workflows/reVC_msvc_amd64.yml new file mode 100644 index 0000000..9cd83ee --- /dev/null +++ b/.github/workflows/reVC_msvc_amd64.yml @@ -0,0 +1,65 @@ +name: reVC premake amd64 + +on: + pull_request: + push: + release: + types: published +env: + GLFW_VER: "3.3.2" + GLFW_BASE: "glfw-3.3.2.bin.WIN64" + GLFW_FILE: "glfw-3.3.2.bin.WIN64.zip" + GLFW_URL: "https://github.com/glfw/glfw/releases/download/3.3.2/glfw-3.3.2.bin.WIN64.zip" +jobs: + build: + runs-on: windows-2019 + strategy: + matrix: + platform: [win-amd64-librw_d3d9-oal, win-amd64-librw_gl3_glfw-oal] + buildtype: [Debug, Release, Vanilla] + steps: + - name: Add msbuild to PATH + uses: microsoft/setup-msbuild@v1.0.2 + - uses: actions/checkout@v2 + with: + submodules: 'true' + - if: ${{ matrix.platform }} == "win-amd64-librw_gl3_glfw-mss" + name: Download glfw + uses: carlosperate/download-file-action@v1.0.3 + with: + file-url: ${{env.GLFW_URL}} + - if: ${{ matrix.platform }} == "win-amd64-librw_gl3_glfw-mss" + name: Unpack archives + run: | + 7z x ${{env.GLFW_FILE}} + - name: Configure build + run: | + ./premake5 vs2019 --with-librw --glfwdir64=${{env.GLFW_BASE}} + - name: Build + run: | + msbuild -m build/reVC.sln /property:Configuration=${{matrix.buildtype}} /property:Platform=${{matrix.platform}} + # - name: Pack artifacts + # run: | + # 7z a reVC_${{matrix.buildtype}}_${{matrix.platform}}.zip ./bin/${{matrix.platform}}/${{matrix.buildtype}}/* + - name: Move binaries to gamefiles + run: | + mv ./bin/${{matrix.platform}}/${{matrix.buildtype}}/reVC.exe ./gamefiles/ + mv ./bin/${{matrix.platform}}/${{matrix.buildtype}}/reVC.pdb ./gamefiles/ + - name: Move dynamic dependencies to gamefiles + run: | + mv ./vendor/mpg123/dist/Win64/libmpg123-0.dll ./gamefiles/ + mv ./vendor/openal-soft/dist/Win64/OpenAL32.dll ./gamefiles/ + - name: Upload artifact to actions + uses: actions/upload-artifact@v2 + with: + name: reVC_${{matrix.buildtype}}_${{matrix.platform}} + path: ./gamefiles/* +# - name: Upload artifact to Bintray +# uses: hpcsc/upload-bintray-docker-action@v1 +# with: +# repository: reVC +# package: ${{matrix.buildtype}}_${{matrix.platform}} +# version: 1.0-$(echo ${GITHUB_SHA} +# sourcePath: ./bin/${{matrix.platform}}/${{matrix.buildtype}} +# username: gtamodding +# apiKey: ${{secrets.BINTRAY_API_KEY}} diff --git a/.github/workflows/reVC_msvc_x86.yml b/.github/workflows/reVC_msvc_x86.yml new file mode 100644 index 0000000..dc5eaed --- /dev/null +++ b/.github/workflows/reVC_msvc_x86.yml @@ -0,0 +1,67 @@ +name: reVC premake x86 + +on: + pull_request: + push: + release: + types: published +env: + GLFW_VER: "3.3.2" + GLFW_BASE: "glfw-3.3.2.bin.WIN32" + GLFW_FILE: "glfw-3.3.2.bin.WIN32.zip" + GLFW_URL: "https://github.com/glfw/glfw/releases/download/3.3.2/glfw-3.3.2.bin.WIN32.zip" +jobs: + build: + runs-on: windows-2019 + strategy: + matrix: + platform: [win-x86-librw_d3d9-mss, win-x86-librw_gl3_glfw-mss, win-x86-librw_d3d9-oal, win-x86-librw_gl3_glfw-oal] + buildtype: [Debug, Release, Vanilla] + steps: + - name: Add msbuild to PATH + uses: microsoft/setup-msbuild@v1.0.2 + - uses: actions/checkout@v2 + with: + submodules: 'true' + - if: ${{ matrix.platform }} == "win-x86-librw_gl3_glfw-mss" + name: Download glfw + uses: carlosperate/download-file-action@v1.0.3 + with: + file-url: ${{env.GLFW_URL}} + - if: ${{ matrix.platform }} == "win-x86-librw_gl3_glfw-mss" + name: Unpack archives + run: | + 7z x ${{env.GLFW_FILE}} + - name: Configure build + run: | + ./premake5 vs2019 --with-librw --glfwdir32=${{env.GLFW_BASE}} + - name: Build + run: | + msbuild -m build/reVC.sln /property:Configuration=${{matrix.buildtype}} /property:Platform=${{matrix.platform}} + # - name: Pack artifacts + # run: | + # 7z a reVC_${{matrix.buildtype}}_${{matrix.platform}}.zip ./bin/${{matrix.platform}}/${{matrix.buildtype}}/* + - name: Move binaries to gamefiles + run: | + mv ./bin/${{matrix.platform}}/${{matrix.buildtype}}/reVC.exe ./gamefiles/ + mv ./bin/${{matrix.platform}}/${{matrix.buildtype}}/reVC.pdb ./gamefiles/ + - if: contains(matrix.platform, 'oal') + name: Move dynamic dependencies to gamefiles + run: | + mv ./vendor/mpg123/dist/Win32/libmpg123-0.dll ./gamefiles/ + mv ./vendor/openal-soft/dist/Win32/OpenAL32.dll ./gamefiles/ + - name: Upload artifact to actions + uses: actions/upload-artifact@v2 + with: + name: reVC_${{matrix.buildtype}}_${{matrix.platform}} + path: ./gamefiles/* +# - name: Upload artifact to Bintray +# uses: hpcsc/upload-bintray-docker-action@v1 +# with: +# repository: reVC +# package: ${{matrix.buildtype}}_${{matrix.platform}} +# version: 1.0-$(echo ${GITHUB_SHA} +# sourcePath: ./bin/${{matrix.platform}}/${{matrix.buildtype}} +# username: gtamodding +# apiKey: ${{secrets.BINTRAY_API_KEY}} + diff --git a/CMakeLists.txt b/CMakeLists.txt index 199bfeb..e8689b3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.8) -set(EXECUTABLE reLCS) -set(PROJECT RELCS) +set(EXECUTABLE reVC) +set(PROJECT REVC) project(${EXECUTABLE} C CXX) list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") diff --git a/conanfile.py b/conanfile.py index 69a7750..c5b7480 100644 --- a/conanfile.py +++ b/conanfile.py @@ -5,8 +5,8 @@ import shutil import textwrap -class ReLCSConan(ConanFile): - name = "reLCS" +class ReVCConan(ConanFile): + name = "reVC" version = "master" license = "???" # FIXME: https://github.com/GTAmodding/re3/issues/794 settings = "os", "arch", "compiler", "build_type" @@ -69,10 +69,10 @@ class ReLCSConan(ConanFile): raise ConanInvalidConfiguration("Only `glfw` is supported as gl3_gfxlib.") #if not self.options.with_opus: # if not self.options["libsndfile"].with_external_libs: - # raise ConanInvalidConfiguration("reLCS with opus support requires a libsndfile built with external libs (=ogg/flac/opus/vorbis)") + # raise ConanInvalidConfiguration("reVC with opus support requires a libsndfile built with external libs (=ogg/flac/opus/vorbis)") @property - def _reLCS_audio(self): + def _reVC_audio(self): return { "miles": "MSS", "openal": "OAL", @@ -111,16 +111,16 @@ class ReLCSConan(ConanFile): include("{}/conanbuildinfo.cmake") conan_basic_setup(TARGETS NO_OUTPUT_DIRS) - add_subdirectory("{}" reLCS) + add_subdirectory("{}" reVC) """).format(self.install_folder.replace("\\", "/"), self.source_folder.replace("\\", "/"))) except FileNotFoundError: pass cmake = CMake(self) - cmake.definitions["RELCS_AUDIO"] = self._reLCS_audio - cmake.definitions["RELCS_WITH_OPUS"] = self.options.with_opus - cmake.definitions["RELCS_INSTALL"] = True - cmake.definitions["RELCS_VENDORED_LIBRW"] = False + cmake.definitions["REVC_AUDIO"] = self._reVC_audio + cmake.definitions["REVC_WITH_OPUS"] = self.options.with_opus + cmake.definitions["REVC_INSTALL"] = True + cmake.definitions["REVC_VENDORED_LIBRW"] = False env = {} if self._os_is_playstation2: cmake.definitions["CMAKE_TOOLCHAIN_FILE"] = self.deps_user_info["ps2dev-cmaketoolchain"].cmake_toolchain_file diff --git a/gamefiles/TEXT/ENGLISH.gxt b/gamefiles/TEXT/ENGLISH.gxt deleted file mode 100644 index cbd58444e145808278ee7cc9f744dc8c61dba8c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 546764 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�v7EgVSyAANJl6F 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 Hf+_t!@X<4H diff --git a/gamefiles/TEXT/american.gxt b/gamefiles/TEXT/american.gxt new file mode 100644 index 0000000000000000000000000000000000000000..4db81fc6e878ff9e43d0c1e18f6fae4364124bd9 GIT binary patch literal 423994 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�jZOGDXFruM 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 literal 0 HcmV?d00001 diff --git a/gamefiles/TEXT/french.gxt b/gamefiles/TEXT/french.gxt index fc4026d6343bf32dbf7e8ddf90f430065cb42f6e..36f4225cc4cb9ee8724d84ad25b43a1f9322c13e 100644 GIT binary patch literal 469996 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 cl*lR9a8cx zoS9!cz5e9>?>hUj_F8MNz4qGs`%aWh6*6N*iphLQ@KXS;B?~RYo1Ys)oFI<=%;8qz z8Gr3?JMqlXlp(KkE*MUHkH7 zhh3ZRu6Nk=_0krHUHcP$(_z>C?k5~}?cewGr!bbZYk%O+9d_;C^oGN({egEKcJ0gG zJM7xeOd5;2RabXLlf$lV<}(hvx+gjvc6D$0oWojo!C2|bYroO04!gRi*E;O#KKgSG zySmT*qQkE4+q)fh<682&4!d#5ACILxYh>u~pDSjgTVGMkM$f;dn2o;nw~EcN9DR&nsr#6PJy179z%PV;XmW;;(mHBQpyN;+AEoR0%1t2K~i#h;IpRDMC0cGCKw&V z8TXT(o=(b((>=~L%gmoJ+#-(#oRC)nZk2a7_%emEtexR;r7SzFuP7<+Szmogc@lC- z=Bt%*HIiL_30%nbWx;3W3&4~ZvRZzS@ewpphPcl-}WuT$vH7{&(=zUS$v zJMn*d3~M?Qa8fp$^K=;Wihu5StG8fcoHjZp#_Ip&%XB1V-TNM6!q52M9>XhF49^ug z`l)&X;B_Xf(uzb2)iy*fJh7+X`5E+~skqEN5U_ zj-JlR+0~w&E=z9E<4jf77#%bFz;RFS&d9?Ui>upRmPOW1cdyKc?K(PCFmSgolgmo# z_YIfjiaR|nB;_3|4~Jf|_G|s}kd=w562XRCn^CV!{!?GKKQE`?$5LJSQV%{~zY{oD zsFZ7n6TS|d@2b$zYzeqaX7-cbUC%(C6T8q(9?HT`vtrC@#F>gQTi_>ebY39#q^rAGsiOd<~jm=DJB{4&r>8R()}UJJNI&IO#1t-pryt_*ay8MvIRX9p^B zknNOH=_K^KsEN1;sbW3qRZK<)&JdS+F+`cYn7G}``_I;rif8`U6kc?IhoR*QO9zAEo~jAc$zv@ypG_^db_ zW#J!=B*sXpuigxi$h=m?9L!GPCMmX~-;zxuq#bI{J@pVBh)rOOS&W}fnxK6BiBEkmD~QS8?JM?5BP$33Q@O!=HE zpCCVd9+RJ49+RK59%BiTjvKXn2YA@xF?oB{FzAWTYZ>yh(c`(~|0bo+MVSv&h7^yi zX;V7L@|I$y#9G%0J^@=HeIi{G)np~;+<*;NxF~uzF)J~kUUh(KHvQRdAoJA-&`1eXL zmiyongk?%K)V*>Aak?*?@0VNluuNAq3;RD1a6%5aGL=jU%hSLeEMLi_qk^nm?s0!s zI$d9tOc#8^1z)~Uh7WgrRWgNgLUx~L`^04#@7pOvSigMT8rIH}+GcMWYu(k3UMtbL z&oErZK6DBDjk;^SDako{RIOp^llQtCfinP2YZh zwjzV%vqkl?&13524D|v!^|GC^YEiw+q6}M9FN4%Yi|Xb5lZF#=#FbIKY@$3{R4;od zLt^OVCfAqhWuj}J@^6us&a)lW#WlVzb#bLHPhGsO?KoXDIlAhi*)VibTETWy7ZpcW zT|7@+w5Tp-Q4YY=#aPM*n7Vk{)2WMH9#a>))@ym{Vik3P^3=s)%AXjz7;ALsV%@Du zr!K~y*Sgfj8Q&Lm@vd*5y10*gCR7)XdQ4s9K2SP!v5&G!s4mu0&I#4UM(QG=x;Ptf zLSAxZR2PRS&xGpYAmu|0U7U7(sVKnj0ViZU?E&REN1A;*)XP3!mwGu*y(B75 zFHbwV>gBj$=w+$vSM@UB=&F|&sh5Q6rHwKHrd}R#C z{-9GY$9);<l%ZbcpVz*qm!8{|PQ9G>eNitDk1uQlDQ^m131%zsA9*P-9}o?b^gSNx%)Go+P=uoj{n zw@+^#@EE~Fr(pyWIl~F;XAL8OSZBBm@uXoy2fGX-I@oJ?4t%5GPOO855glyzJfL|w z;pq&>P8$XfZx}|QcMXGw^M=906$_RB1bCQY7(C203?Akg?nL}=crJMJJTNX=;^_>k zRvQKn>kWg4M+~FF6NbUV(}uyrF~i{DWy9d%HN)WH9m8`)j(Q%@jJ)JAgRM6_X0Y|1 z$8&(M@MA|aa;?W`M%Ey1r%uz=Ug_Da*x3o^VzlU!2^m3PM3%De0UvTtnl+4NAeZ*b) z41D7nkD34M09WZ;zLW%Sa_W**r$Nt`;4Y9Ks}V;F7h#T{eG+8~`2v$KtLB4_ zY(fr|OP})?e)!=hfJoEF|_XyTNCvYIbe!SfmNQ!RGa&`;q(l&|*I$j>3-!wt?Nt|F>oIKOWlv|JL!Qn;9~j05T|cJf zTj(DQ!%p5Z3_B?_`7*GRZH8edFB^uPTsPI1fqkwv3?8nyQt4=3p7C_Iah>Mr;Gtj` zg|-<64`&R6ho&F*<-x-m!{Fh0!{Fh9Vers4-IoUsH+mk>q&(p1^pnpR1`k*KgqCjw z4;90xu){ETIBgg_v|Z=RgNN;g!NWU-!NZN$`!e8RrRM?7$itrA1|D8B3?4dWX!$nq zu*NWWIAR!;b3f_Jpx>tqqu=v}Irf>p4Eo*S`vuGLkf*n!-=l`n@A%JX`F8Z1F^qn< z8AiYF7)C>#vwV5*u)#2RIB6I>OuWID0S_;D9#C8&PwxN^I}L+}Hw=S^*|W872Y6Uz z7(86??Vu}}_5E4~UCAvTqbpgj^8&44@2PZWZbv;vS90EC7MeB5wd3+6OFecv@|bda z#$)pThR5V#(hq1|@^F*KY$Xqo$K+vy z$K>HjkIBQU9+QWOKd5!d!%5|V&B%>Pr@6^0kIBPMkIBRH9+QXnJZ9xHDkIBR99~$8d(6(pUZds7 z!%ZHu-wnzSp=?n4T=MX|$K*kN)YY9!9_D#W9yWMP9$xU6JY1#g#a!|*UUixVl&6s6 zO)tbMjm2-r%fR&o`2tqs(^dEpF7EhQjWscoTv#cf#?@OLu2pKVt1)9Flj`ou7n-Fr z;1=2QPnVJI7QB}(b7g8-ELv{`+#=73r{kRE)qoRnF5p&~Y~>4W(h+dGR08ghl>yI@ zT>*E>a{~UpEXPzHb;p9KXxA10hZ^3`Nc|3`O2( z7}|SxJLQ0WlgKd|Jynq%hPw*#Ou&&;4dX21vF)xe1TlzDP7@dE=|Y#BaP&%^3CbxI z(6dQI8nBT#~TKxVu0T^X<`U?1hXN;I37j}u3T#<1po9XOv%wba{X9pX3Q0)nI^ zzeHS%AR^fva8VXN?CIsC>} z1@v+TyHL!Xe+7EEl*kUW%aUI=JXaU-JJ2c{{*mSNzQhwAQ*g&Urr<7kOu^0k zP|I_EE%KQ2tCWFl`#U5rc+7U*@z^OKt7Tj}9@)>t{jJ{U>YmZ^x z)vCv+QJ96gEZ-0RP)9tS?C#FPY6j3(S1OM!E!O3SfU`JNMqt0!<4jbO=f8NFqjwdX z9wu_dEYQ(y8&~G?el)cOW$N& zY~t{9@XHR@lf4<)ok}q!t392EolXD1 ze$(}2IwjNAvkY-sRyf{(q4UQc^z5x>}YG9RF$927I+)*wXrdajqS3Rp!AyIhJ&PB%AzL zz=ACIJZDRN^31(jCOgn4FL-(v=G29UmEMIhzT?N6OQvMzA1OVTO35u>Q{HlA*n^cp z?&WIVSH93IZ~3uc3oqMz`#rryneNLMsN#TIWKzHhS+QRGDsYnG)#eABkVmjCvkdQIt?}h)l!AZB=qnzlaV~b|0ruO4oNz+k@Z~f478$oz%NLT!j|GhL8egWCOh}J! zr-sDVeE}!r%)P9eb3SC2n^QSA-s7H5A9ACo(}%p_>GUDTc9EZ4y?{8O>dVldymCO> zELMaNqN>Ve9J42&wM?Fb+hW|!0_#p0*+)b;9i*+@PIsr_@OJCuOoLUJ5DMt z;9U60fD>~3myF&m7kpnOB)r!7cB(BYdDGLYu*1hZoynu!o?b(oGui0i`32v81UbJJ za6+E(+$U`ARdtUAAp-{&pZ4tZRw z;2h+uEK{u1(={1)KidTELOiq1@n8&!`4oJO`12l_UmcrYx}?OxR95(j9$seN~2dZa?Il{oQcf) zms-A$hHtx@7xnhI6vXm*LsUVrS>YIzn%G(C8)P z`h1(!Vp?|m3$0s)A3o#ztznOLKHwIawn_P^;fi}9;8s}|aGUH7xLsZdxI@kbJV!Ea zjV{(}g-$u=$6G6R%b=G@4fol01q^w59+)3pyg_-0x{9*Z=vYUV8HOIuS{bZO+x&PJ zLjEs2z`97_!XNJSn7-n5kLfGMyS1iVr?0rqV??_$#rdC#tNY%U*-pjzoN=DccBXsG zb~-&~J8$^%&d+$vSY`Jtwo|PxtS981fLkSXgVEdMbinPhcDB(wWZ7pG*Rj4#Yc`ya z7k!yJE^s{a?@6yk8Q9Ev!;st2BTBEQGSX=nG17!T^7M2`=K1pV4C069JU!DTYpi@% zR?b@a?zC*#M*FEnb=-k_HXW$nQqRKzDSOr z^5ttudCG8@?seZZ zT###h-3->X?MBB2exhN-OB-CAP^)JU+i!C7w1z!MP4*~n^*qWP{7~C0@KTX)vw$|Q z{dqSQx3<3h*S<_SD@%Rd0({H0|Jmp_%W>aV0e$6sJ0-N!>FbutX?g9}wLI6m)t(<7 z_PptNuBE$Wt8c%C`{zqkw)GnLJnhOv^#YcN5AR_+5pT}QRn8v*gFbn!()+6=iM~PH z>-=iLWBQH9eunfq?&wzJL07k4WSbjr#CUV%S{9qeu^UjvVZ=hT^L#a1=qt!7lq0Sn z=6_<5;s|#V9y_C$2TO~Q8)2C`){6~abC@X{InP+JkgVkpS6{i<;V6Y%%1QQBM*CPt z_OU#kS%|Q1zJB=_;f)RY{1b-Z=bx>k4CuTX{TTMez$G4%<#qzsq8zT_%bs6zI3j-b zmmRJbx~j6-<09|}@V{ODe5&~+V1JJ~`b*;MK!iJ=?|q$E??SI~Wr$nl(SY0J<$&8| zimS^q9r8B$tXGmXJoPg6G{#uRj=eh}GnbG~oCV!sjHN0||B4u%6fx&<`Wc5Kd0{hg zKe7T@IfXT{8<(-meN|ch+YZ;V5kiJ0Yf89o*h^e92+5DaVvPhxBtw?<74^nUH#Vy3~s>} z5Qo4H5kD5;#$*6`@5bDLTIAWU02dLR!`2>m7&9LqoNySk7dl#{xUXrR_w-jM6ny!DaCGF6Mg}Fmbx)zBYAx< za2dM-#8*8SXE&Y$N|hJNQI4@(#nUYqoJ)t{X30*7@1T9S=dNTyuDIQm?`HcQ9=rBEX8UVAX8T(_X8TWj%=S-t%=U8!T>A?O z*drfPTu35*p6D^$v&?(h^;;+-MqT}+!$m$B`Cz~`?3W!KyFr|rcud~jLd*>Q%jD+} z?#~mGpA8QwCO^^7DJDM~efcB?bHTTh0e(sOVR$Qh6j!QvzTl8z++#`e2wEhsj{s_3k%Yr{krEJraa@yM_H_itF(N?@{j+a(mBZO zI+iHvj^u>)6)nVb8C$e`FUuc~Am3!QAEqM5P6PX#{4|IQxIllt8iOXTWAcxI1v-q$ zcGfWDzX{gp=$J3pV0{6`MJxDA#@2p`c?8fi&bnyO~Veq@=N>A@h$?JyaVt@Vpo<27%9g_@a zYBVUiQPj3}k%c<%-dy9QSk{?k;{@%eR7u8Bci(9tu-@c~rRiM?5AEhS7c- z@^u_nE82hEw~rz+>l!W3gWKz7dW`mO`G%HnLz@qeS32j*lfHaA+T8S`o{lzGe~)6$ zqwB8q7;U}^AHse+(B`|o42CWbT%l#qjJ$%ik7c;-TrpNL{rt6`Rt(dVqd)0!xhU^= zI?Pb!&ro_6LK*AJWO2db>@PSvV#^3;ZNv*v8t2Z6sa{EqadfgH=M`flIIH?K(7Tg8 zZ2yA8xu^;z*8XSEd+;<8=&w1PDfh$wY(s7{*Mry~!dQ+PM*JBt?&tppPw&Sb`9HCp zI=60e0*1Zebp;B_!-3{%LK(F%fm-err6>FhyyPY zCmi1X=N?1Q51v#^LA>rUb$9rSpunoaB?c(grwjf@|k3=j5c4o8Mw$tF!9V9_{*0vb>4%LFA!r_io?Rfc49ng1M(W^ zC||1Mv7ks^MtxvhmPHJsbl`+MydQKtUY5sL4k7l=BUT1XylveLI-4G849n+zDL80_lQX0e9D+$_Ia2aWBTT1#2|6M=UOD z{_HX-WVnw&TycuHKglyb{uHuNl*Jwa+k9Z$>jv$>I^b@1v?!+(w~*(zJf@L-pf~|G zW%5tE^6tLSbsp0w=XuQXgC5TTe%xak$nJ;B|MlvR;6T*!A_cYiFTr=ZSx~Op57DiTk5X|4lLXgWLW)ad(O5m`nbLV$us(*NW*v z5-AyZ?G$kxQ@bD&zV2|TA7>D!^J7S_HNz+qh%1VSb-5RN7k;3aEv9n|kVksaa0>6o zFr1e0e{MJlqUn8E6*9mrses7@ho1z33)Z(Ry=#|+iYo*4+CzO zNnbR2hcpE|M`i`wDVvbHfE=)3%$0L^uE$|)LQ+;H(IOLm&FDBE3G`N(9_VdyOQ5&Q z{6O!JDBwA=BH&J0AMjk+VHm5&YHJ5E_LhJX@?=WzPM_Jw}cacTQNIyELrnu6!=vjXArh&(SLg|K$q9@Z8VzdOAG!O2hEn zQw+m%ckb6RY2;v==NZQNRKTrr_@|8CCe!B|ZkJ^NcgQONL(X5-GB_HNs{>9*#p4C= zvJ`knUmou2TnndCrUR9&?>~#mx~$gt+tU z_=GsIR=)99YzL=1C_mH5nfd=nUURa-<2#_g=WvuPLF_$kERWq9#&w@zjO(g)Psg}U z8pgQ#Iy@cYYI1TwU5x92!;a2Zp2&@kpD0gVOhJAR?HBtI9Gv_^hf7q#4u+2JB=q)n-8N=k2CVk|YJRn409&kd|1>7oC;}cGB=VD*Jkd)`FU%W4Cot42m zWOh27uJmHOZ_t*i#0fd+$`eD`e@*_0ao3&m#bMl44!A?EWXz8=Gj`9i@f*Ok0X_5L zT#LB7z&!F8rX({NulDj*G~$2kwTr#AViq=e0cRY*eQ;?q<`LiltVXbntpVc<+Ay5a z$$*P8>6cl)3)?!(M~8815O^))aCcUSxY}X$SH~UZIUwdfb>YqgOY+2KwByh9u0`Iy zlqs~-lh{Mu>~Nhok+%k%kg-*zcR@ZEuwSru`n{c2oWK~b#d#m;kfwBajHx4wa5e`U z#M_bvr0srUT%E&ueGcac!2S8IylmZpJwq{H<9_p?!}tT^TK_wsGs%XZtDhp)+{+X^ z3ki%TS-a)XKRWDU>BC=hWq`Bt`d5g%i+p}?JI=-2JLT|Bq;tPQj9eV{CRNM};6BFc z%h+$Zx5Rt+Z64>lFs?JCqY?aE_$qPTEgq*7R|=?nP_b)h(m_|ojjQiZfvZ{g+l*}c z9Qf?TMP>XPP)w7N`exr zWjb^GRK9kZVD-x3%Bnp36zCP4Q^UsI{4(ghQCA*!tIj>57@G}g`ennoNB6X0;jJJHdi-d%(j+%W^tJV{J#U=4qQR1NyZ|F49sMcoWxwK zz+W*NEh~ia2 zo8@9T)q;G^WrkC-KH#)G9Wb7)zSWmWBxUbX!zszYZ@YF9Y1ui(7UIjPvyN zq>Q=T2b_{Mj~N~J+p!O-VC6tkPnw+EN(*VvZ((iV=}sLh`4zAghq2E(VRZaH zXc+6-J}2io1ue6kOo-tJ0&bPfZoH(o$#srT;&ypH;0`&6b*gf6uY1<)D#Q58k_ZalYw7yxx^6-<(`PoT|Sy+g9|r-*TN4zilXIo^x0 zKy(j)2gg2mI1K)QBffXysqAHf5D&8j`!B_A?R!^oE9s?YU70K=_AOsmTtSUxhEZds zVbmBj+=g=;!|m8_8isFQj`ftGC3CqaAMhCM+-G#;MUP@lbY;-l$$&Ax0&bNz18$RD zuya?w+AK{O!!0rxa6%q6Tx*tN0pp#4Nnbuft}kV{MIH+nadO(|tu*LKgi(X0@-A&t;7qk&K|l)>2=_~Qy#5w}5dG~i~*onU#=TjYg6PsrN=x5|eBx5-t1Z0)qm^ng1g5issu2iz$G z0ne40)(-4yh0(EAJ`^zG>VRPz0Yg>+BgYtUySyAQ?)3#cM?MU=Qzkv{c}~ogPU8Xd zVw%yB=j;f$MS22G$nt>UmjZ5+CjxGlrvmPf7XzLnuLRsFZv{M8a>fJZ;|E4Z&U50Q zcs|=&q$yy$XE@+iDFuw@yaL9vs{wb&)_~{8?tqbd40x`rHXh&yo;Eu2pGO0RJp_z* z*8N9sC+)3rI^Z@r7jV0bFwU<*ik%UkDsP=;u!rSX@O~R^@g^bes^)p)3hM&f!MP-#fjS>> zLQb(fcDyYA=HJKP7jQu_MJSU$aCFE2Y{icMNU`I8P_g5GyJBbyIY7lsZOWpWYX`TM zvA$n$*uBT{1&`U;n;x^X&buxXzAGM~kc|IFEzgeU8Lsz9kH=(UjbYHMxiPHE)SBGq zG27qfG21`vG21-tG28jTV-DsF;>jA`$c!r_a>6jy_g8;|y!B=9#vM6k81Dgo#xQd1 zj~m8eRS)7Kl*e-=k?dUsoX+7^0{lPxtY#0Php!MYy8#x}9{$JyLImdPf&dvP$f?Q6t17lUm~fUbdi@%Wu=UPO%8tc0`6 zGsIv7KQs0c;S-Kb) zGbgnWef==_&oRVH%IttsvL)a&-eqBBGE$mi7wUv zyT+GKWaPzwk;@IZOE&+gFTE{9}Ko7?0t~l1I^3A?m|jC7I?ipM5xjJPGLttmQr0C-PK~raXz*9?u9e z)h(}nkr)|sINW_3P`;8UgdZin?C$igR*XwL8Cg7ybl$qaytvL|%%m%S(POl_>nmud znsRr#cI+iiJNyC8Xli=ZOE&kSe1tnBy$RVFFwQOmF3J(kW!`54|0T|4%w#_EIOT`X zPE;)O(5N}!q^u7(C1(Rp%WUe}mCwk&fV0x{Jxb?%+!=66CSKv`m{U=}DLD~vTIT&T zUk3A~FW{7%rr$$fsn)cd3iOPuonZ8=T=Tt#yX2H%%$KnfJ-sa@PXwHnmEULdj2sF$ zE9%siC<4ZNFs|}taQFCVz!_=#L8E8o!GOEu>43YX zX|k2c$?kyjGOk8DDZ6_SXPwO;g~Rn?D(Thy0?f^E+lcFl{#-@|{*~dZysLENz4LPD zUpuwGQWmBcfoGqg+>l0>qIa{*7{G0(i&V{S0E2b_?{ z1IBr7z-@9Y;C6W_;0}2!;5qVsz@0K~tM*muo-2otcS67JeDgggfBGoILe92{6EfY| zByp=e=WLI-P2P8QMcgjuoShJN$Ps4)#B*ey(=TzS>~?x2o-32MMn`yT3m0LR{k+5F zK0HHrdY8jYbICc6@s%#JOl5_%Lq%3A{|xfv3B$-6yr6o4Dl^g)a7E^8`z{xk(RT3K z*NSY>GX1!7FRwrB`US=up&#x|CGlE8xe;+MFdoBdktG2qWJAEM@?^lswQ{}aP2s__ zjAW3bAzp;%=$8iEDv$Uwyt})@^#$ihzq$|Q`w)}BKaZuq?bCPcZ2c-Rk}tTYx>hm2 zB|t75baeL)#%ZTuV|~?P3TFg+w2V7Dn8bejajXg(U-jd_{(jmNtR=O2UmizxvgTRb z6Kxx4t0$7O^4}Rw$;N=wvi>oJxHIUR6PCUm>LUM(Z14Woy_@AY)_aCkOwU%jOj zWzHE!53@h(>7BSw?r|H+Y&Q)036F7YP{uTC`3`W}W_T|0?HWocd=pY7>~m#+<8X34nq!u7>~m+j<*d% zM+YE1M~BUxyb~C&e9mQY#}#(cpDp0H5AS67O<)8b1)S$D+hZ8-?GLy^*8Y~!=g64H zJw~2+OTYw6G&cM^hMQNMYs>&g!OA7;t&j1ZgTW$CJ*{L z)a5$>_%rMN%VZ(GLySM?Fh;l70Y^C1TG=y3Zk45Sn=F&tWjVgaV1?W%E9FbFO74=? za<>f1mt~FIBWvYeStma&_sRWOeVZgHDM?F4veG5pl9Rmj$O0)yQA$#lirg$!sYxWg zShxEzj)myANt&fa5`r9ov`dG~kxrQ_)3D0VlG$>-+#sKqsravkc2j5<@8|>{x1wiq zcf%+652wT6bv^jnk6x$Z|0-Iz3*%Xhk=%~Im!aL&7*`W|;NR;Zh4mQWekXz3(5KR; zf(vac4@#4-z1(rN7JuK1R+>hsH;BIOh2)wbTeiOve=o)Fsh8B=QnXJ#Irb*#;N#lj z=%^$1bSt>I9la{A93kuTGvcYC|323$Y4>2%gQ&L#WvE-?d!Q4xa5wCs33QIt+8DjP zUMGp=kkXw%cYt%1Gyfd~^tsfjE+>K?;%UkrHE{?Bj0N$7nY9L=t#K`pKkb!rUW4}8^OsTT zdel@dwRg@*>TI;OXNM6|&v&9f>X8zlt*^lU)CuPRTfQCh&+HuEq=qt-^$OR&NuIwc z{d@4=osLtp5w%g1;608@O7sq(HLfL<6Z=*>TZ9;wM$kV!R`iD_`S ze_&nJ03~aD6Y&%EAj-eW;#SCnTrGnxcjNbMau{RX?>!7h#95)X%D-q^x4|3lckNMA zYC== zj+Q$vDNpvG-ho!FcEoj@98hms{w`3~V9s$Rp~s-T-07`aYg4|Q18V!jJpz3iHP__k z_bTVJ&E{fFT>AKOh=fMd#=S#ysq;4;MLcTdgQKDhVh)O)qMn%6Hd2FlUoE_7G;06r z(4Km$#)v~@vK-b&88Kc`PtAEiAJ00vcEp@~oK@BkQ7%G!8B1Ywd((2|hH|kFY1A`0 zqJPx!J^)MLicd=8EYrARbp4O?!zPV;8YEn3uqwuL%e?Q8{fF7pT389S!`WaS!hWlt zZ{(QPY7q{9+v;I!9!H{4*lli9tjm>>D{j2Dj9mT5g^pMKBW-GGhzcsuCbdf6M7`dR z|GA#4e&g}61bq@MpBmTo+}06ofmSk{OZ5lC$439oxukL1oo=na3$;m&Ehsr;UH`bX zsnLU*24YLm)sJfd$FF{Vc-#~BT!Zbiq5>I6OTR~+7oNp2-IGOdW9RH1(h^4VsUD0ee~eM-33PQNSKOuSM=LhJ$;n;N z0!wg}B){qpE-sI$!PYKbhJM9XELzrTCnb(Y*B8~D&L_qWlxjQ=ILU(6=q27Qqm)J6PLwh5gUY{OC=cZ<;R4l6FwnO^8Zsp}DIVY8OW)T?6alMIW0PWBG;>axTY}6e&CS9di zi@j^U?&EoD)UnQjc;6XI@Y42;X_rsQW8TGUQOv=}Sw~5zO)%G@E4cp4c;qg4AZk12 zqUL0%F<%_xsZG;1`HALKY!@{$2V_0+_oZZk?f?&Wf)}nS)F^eyya)4(jhr#A9_lSD z$EN;eB$r&@ZJp5==A+h_OUqJ?&fTSHk24^Lm~S-Qsg`&;b1SmdoL!pNh$ZlG9+|D< z8F)mxqqYB0wxRhbo7Lt$)$4Jl$2`PyqA_-heUN%`^)!qgIae&_$(4pakACKUAk8sz zR zRk!Mi`1hR+lDHJTd{q8QXOendjm<2^rFWqOX*Ka0X=}p8J({-I=+D@H*G0T=V=O#1 z?1_4Pzsucdsaai9V?HbzXykc6c)gexGd~-9S&hk}Av=|Lb>JM}xOHbbJTIF@Pdt%g zl&LEt{XK12=jZM4N{k#B0cgAx?=fg`HfoNHdgV@;IiYwZZt&}c(79ZQ5UIY&dgP%pw&kvnNhN>42D4F^sl zcY{I;8EFgF2X}5G`!KnD@*H>)E5+!(oO7C^h)+nkDp?lDd?Qc)byRBE-^$v@HGn6Y zv`JbHWi`6b8tT^?=UKdO(Y0N7h15R%3R|RwcVdr}LT}uSs%@wp-Q_f*o|WEQ<&S48 z@!xc>QTjXcDa>B-FVm~dcdf^`;x5R=BEfhp%5`7r^WK@ zn5WJb4f8~sv&Uut$3Y3I74r<5t#Cy2-YvKxf#(c^Ek|fA9trDl#x$;8@oJ}|(KT}o zR#Wp~E8U#q`k<$fHE_Tg#H^}Xbsnv17KCSwENMG2-9a!K+voNroZr+ArA}=zBgE0s zC&hB>bDwKWs9aS*p%$)3+3WGU=EgvpaT#liHpvK5BS7{M+p)H0`<+YK+0u@*md+6R zFKttM)_GthxLds4jmXX!wUkL}N+OQH3*eJhOAk%irtvosz3ZjNo)?R7jYC?9YTEpm?xOT__3Gr!{Em&J zF`qzt;VwUx$;~5dY)RiLwiCyu?4fZU;k%9SH`he2QcXA~Gwm>IYF>w4i#EV~C#6ISQN6_DsDQ2!*U%I9 z#=Q)!EzSz5#!Z*%&*-^^+A#I=N%vPVSKX+~(GNeZ*S#cu`2m*&(Cm9XP^tlY0Ua_25=0N_HCeB)UOXLU;wb7*}xH95N;pXf?P!ves)EWH!?{g9$Telc_*A)!iUDj@tas{mzP@BOYlwoALR`Pq0|Bc7esJ3SaR$LN-La_e>Deo1%R9^g->ngn>wad{m zlb}+KdCNN9hTbXViesyW`G1qd=)0VF9PvE6v}l)i(`pyFJ*Iue(Se>6b05bHqKzf? znad$zwPxyq_j7q>$x+8#b>T1G1+(3!Mq4$sNgY!GVUU{U+1W3kv89BYxy|t88tGRRDZ-={C6k!asDd_uatsB7DBETi^U#(s6;rL z_0Y+B{AZ^Wte?db4UIR_;`;P8jK)-=vGgt$9ndpsG^Q(heAj`VmUDghI>G3Jb4H^A z(-duqrD>V;f3zju9B%Ybj1X9+F}_d>*F7C)D}4+{vl>VYX)(m0YDnt8YxZQDAb zenq{U#vdG;j!3w`BKiw9VM>g9MNT{YqpRr)c@ zl*JZOKx?!GYQRQg`lNr3HLURg_jH_l9D~kV-nZjyz6}(OpGI3@luud}ZPh#(?S<=% ztzjcAMO)OKIKJVx7UGdaXo-<1CGp9m9q$|{0oJx?M*CG=ebRjyBO%J1Yp0G^ZAw>R zwoFdBdhxlH*iN~RWt3u4jH58sD7B(qUo%uZCuQ`YeqAFa&Vl$IWGtf!TGfb(?Kj@1 zWckK^X@Rlr7%z=6gUXoP=o+uPf9ZG{ z<96<&)mnA+AlLLhm!=<%tI>w3CF4fdRqCF%*!4E$)DY8*oYNdTV?o^?Y0Gx&x-oaa zb{j3Jf*!sTS;$KpajgB3Be>W+u~WX`9!Yoj8Z+C-8MB(?`0Ng)$rA~+*4Tzd_dhyo zxjW*SIyK&?9kz5S{z3OABfXgVER}uir|9Xk;L`k@@kkA-x90O$v@y;B>PjswUJn}O zMhoIP!WwtDS>1RJ5uv_$d)q&Q>ggq<({vVWelHU`|HQqo|F> zn~p;i7ZbW;$0Np0bl?Jy&VeG)Kdmo*WPPyc>9ek7cx@`vYpH3C|aBwV>VUT^U{BN6Y!>dPNP}+Mufxr9ARZSS^&& zT?sRPE8YAU$*0OkS8Ha>$&GrEkvCU#4WcDkL|8#InZ~KkXz`?tM(-W)FZQBYg+_~t zqapR-v9GwaIRB$~;C$!0XD1kqnLg7MHSwL0n9f=qwfPd=7wU-kF)IX3Q;X~CA;Bgd+Xq3vBfwr6ytYrJY8o)y~W#ag_0w9nR9mmYSguNi97 zqxa0GbhvWpv$FJYj2LO#v}p6Vx(?f(Gq#HgW~N3OoV{GVS%%UgT~`L?K9!~#QF(Fx zFe9pQPaKht%!a6h7&XNaXdD-7E|Y66eFg8V^GPXYevDhrRq{A;&cwHz;t|oSP#%_p zx!5ghy8%7YV(4}0tGHs=xXD}Ni9KaIJcE5HJ%7|~lEym%JjvAC*{{PnVRJI$8pEsf0bv(K!{MMco{is_t!#$mO z`dH?T^NPNNxf)u_Czo}sy&7b$F-qes)4iBRLf^S8Ggr?$@IU7;xz`yw(vv9tVkaH6 zH`Z3`;M`{PqaH+`oaW~-*A^Yc`2qG!nbB*FmXnU9Q$RWEDfZvWIcq1~e4!UqUq}l7 z;>{1c#Y2b}hBCw3IvH`7O%{M0||GqbvXGwc2KM$R70=W;joB|paRMC*u>b>xw>5Wi-MWnvb$)wis!s>=}b{7LpUT%@dS(WQ{9k zW2QmZbmN8fm4|qhq^#9y^)6ClTBX3*WjlE-IjP3@qO zyWzem-oKD@>Ts=_U%DG-yr}QtAs^Ph#*DXtGEz2brK)SzVSSrxjr-hBK1zM35OvI3 zv$UvBGR|HnnUVX{X=sm6o^$ui-S9LwPUesGB#t)vaS>~y_P$l?u~|VscaJ|`u^5vh z=ZW0yF5^5Et3evsHA;fB$!w3aw{g|tUY0cG>nN=_>ej4oJeOzV(UJW}?$`5*NOCE0kphFoj5H+}+zWhnWz=p%`L>67>u z?WGCt;bcsAzvEzdYfYF_oQs^JYfw9Kqh?)||H$%`;_ZmERC??+j=faxjok9-81Ad6 z9o44tsZUL>!CH8|*kl4^Wb=i@)O(d%B1_Nq_Yu0q@0PHwiw=^Sl*Hi@Gh9?#`59@P!GOX4r)g>{6t zULvK6u`!0w3>MoNX;s_<@}@9l(uMNWNYe;@@a}WSPtTedCo5`lbBmgxEmPBjz6CA6 zEcDEhvE8w)Z{@SdwN4!~<7akPgAI^x&KrvoZN=i47_Se1;$anhXA`8#9Z}44KmMlm z(F@;-&sA^K7d<*H_D&a(HDO+{zuVo&)A-G(hWov4{HwQFX)$_hNBifxn?b3&(9TD5 z{L!C|%uA?kGV0?z)E#1DMoDKH{VlU}`Ysl=2>#8PoO0ZgPg)B{8b6^(38vsFb<{xra#j;$MFl+TF$4{&U5KlQ^B@q&1>B!W{LFweBRBTOIM%5Sa=2G#NWDm;Rww3 zxmK_rO1s}_o^KtdE=bk0HN4Fj3Tt)?nj9fxa0ea*&0X595(gOPbeYwcq{(O zfX4Nfbe$U_yn{hbR=H8DE=bq^xz^D}Ia9P%T^DTajPMyV z7-~yPAtPOBIr=;BA7xhqjs4I{7?W`R#5Z->E`2QRfU)hx`5Mkiqm1aEMq0&aqaLY` z;Womx@1te~*RRoRjlQ^1=G-ke%5k_BhguH(oZ4D!jl(Tvv^jjSSvGP;jb=5m{)XDm zP4xE;j=(vBU%mpwR#)1{ze}&+ygZs!sa&@T#T-| zqpi^D_IoaAgCl1y?I5;jYImsZH+q38W_6RF$;^(?ORz7_HO3r#7MC+z_mJ$}WJ;~y zfzN37w>ul4#~*2>^h}K9Ilr1vmi~x*ll~>lwg>Q=^%#-qxfW%{_(q?-=DZs@29A*{ zH$BrxPn|;#^kXs3N=BJUD%VV7t#2F>xjmKTv;Q0mUsS|vs2~N z4-Wa(d!DH>mwT(jU&3e^qiDoIUzCOiyUkJPU97b}JSj~~uXvBwwdN-2?;_B-HmNLb zKu?sR#fn@v7~S*cSffOqD)lFw33#Gw#`<%z$5)P^~=8~ImT&>@hLTGk}C`4$##bRtvLifhrpfq zesHVLHZww;>PEdEwKcoIcq+~YOh;?$(HpZQv}bCDHc#u-cOY;LHYwTepDS@=6Ssaed;hfPYT~r}Rwm4!??T91!;ge(r|5ElX=!*Hvye@6p=)?kGD_?lr`* z%<83`hyGS9m048INX`{{MZQJhZh-r7&{jZep~ELR?&V@lS{Mcrkmu z)N*>-l!aCE&CxuyDPl)Je{N?;+`U=`UGE|2+m1BTq-R3IZ*njyv?qk^y-F<48^4VA zd2*o9C3mhv&qEq-@7W#v{r(09Pi?tAG)8pXKPg9XtD3ospXJfpBRnDDa|mpKyOyD& zvG`oi?wi10d}BY09atUla~|@sw}0^zsPVmvI$L>W#xgfxH7o<$2^H_EbKid{9I$WR ze7|%aRF;gvvp%k*6dT{J#t3}q*}bl`XCPCn0eyq23O?9cN_Mi9QPL70jmU6 z6WkYY_sbo=wZlkWTjc(Y^>h^+DR=5DKFQ_jP~#a1CBU;i-67D2@ZBUs?S<5#=lRS8 zvt8~!b%(&Hhl@O8Rf``p8eULMY%J(r6(}Upnc<;3DJVeSl^?ry;9053C<<%4|MMnp{(8Uh;7^Q znWWfCay@#YUNm~*?$&M=F(;$Cproita!(uK@5XWS@2U8oSz$fd?SagCftB7U-`Eal zBaQD==<&B1>`m2bo8(oW;Pp!J!t#93wN=v1N~DO+1z4sXuQu(1&qu z(*BxYm)AQRVB4D6iF-BAs^{mF58o4~pR*0hKy#dCO|cKPXD}M?m<)gZKs6knRMW5X z^pv*C8OGd%`gyZF<$JX|Phrgj^-WH;4Ho~No!<%%77^8B*ttU zS94~QEdQo=P+68YG$Q|07gTcO7w%hxOd9IE4J`?Yh@qVSPNn8cUC+8NwM^F68wB{W--%N7!(ROZcUU3~p z%@#R#8dn!RYtj6Z_C)zHW6Buf2KZ^+Nb`wCaHH|c1|sjaShAGHmrAj)Wfs4{jTq!8KiiQGEYT2(LAonrZMZL zoRLd<59V|^fAl>*)|dJ)TCT=?nsqd-=$oz7GxDB*Y3~N;igS<>SN}~pvTu`|_DQL+ zU7dA0Zk@0Emwjn{z1>Ov8m*OF*Y%s1Cq^{@QRK3I=AU%ibY@>x));s2r0w$3EI|1<-0l4GT0bRE$6iZ*h) zyD>z&xOlw(Q}VeH?HAD2XYv2gUaKfqL0gP)brj4x@*7;4{nvBn#u@%mGq`cKa@<_s zdC!R7SdvB0L+^)C8~S-SP}O+^ax>g>jP4m4eN7qXpVT4a6njT3Gy6Ic_Dyf1KBoy9 zjlIu$)dx!`LyNo}^6`CSp()M;dRl6Y=M|SyOQSpUdwlopY?r_P_`3b*jib^%MJxKt z;IDg}wdig}TczjVvk*&BQoTIOaQ)RY39jbU)X*C}T#falm}|YZq~`~E&O+;D3v7p@ zrVr!UrIw*T;MpMg;~l%%_>2}-#>|L7XGEyh!4rvfXn|6rmts9Tf7G6|2jbgc>-4KE zrzc#LH1E6c#HonY z~~m=n;pXdXAu^T@hPSHI(%h>7Q z$TH$a!+eQ-@8`%eIv+l+4D$m+HL}1-PQSTBxgTo7qsyalm0_%>b1{wu?Hrgh^|O$_ zMhuKbRNsvw(Gz2x)8tQgR`d@^j94=tjJCPPQnEUCxpFgJ-46;qldZHxlxwu{;aMAw zk$VX49k^4dq8H}VNYh!+_&H|=v!BChiBV|u?!(KqffnH=Ld8WioMTC}SaEwD&Na<# z^r81W%8{EasD1d0am{efc!!=565kQXf0<{}oCsUy9;pJ)%J z(Oc!L@zGIXW8|kgRx2O6Kd=*Kj)gliK3Bj#b*IK$uin;Ye>G^)b|fxXU+$S{H+fgC z3w@Brwv@tLJ!4)e@@-|5(`6F0^&PWbgYKx>L%Nfk1L{e`iMVeKV+TJu|*_P$DWkHnfmJw)~ zRhGf5vKR~k*c=Qxo8HYP>tq{bF|!GRth3582y#Bpw@%&Xt%^mFa;sk;i1qtDzx#6T zc|Yf#d!O=1Upt_o&z~EY(G0D%o}_KgQt>u=6*9WNsBh}bj;07=j@32(lYOVFWIdy& zte50uL?gqw*cDG-PU@~q^(9Lw*vAkJv}_l=ChOGrk3L$qOYSEg*|OcOQ?6M5_RVwX z!2YroKdkkI-nem(V%Bxpme(%b^7^G)e(TaLU%qt9S9V&?&z;?`-L{J300+mTjzz9|{AkM!W=i&M#uboK@MbY5Dtk zt4?(*UARBO8#SZowk_6vE3s@UKD8Dx(X#t(WvrGJkV{$wZu&IT!7uwG9hYySu6x`6 zUhx^6Zu@z*tf$t71*F;dYuSkaC2wC$N9(n1#>MTiB~Nf`wg=4y7|-kZQtWtubZ zfe3CMRqJ_{=cHy#g?d&zuNDX6ytcf*cMZDlyl8c;_!M_We%`DnsTwB-$u4#N=eXL< z&w}(h(BPS_fT2ed>~qhMb&SrVL1fj;7p-D;_;wywocoP}>{elnN7|U}Se92RV#R}r zTvbKGZsGu|x_sY9lb&GBn`2tb;(nCFii zFE(1_@fQ;%`p#0CClu#*j!X$C9!?y4QdA?c7x$I1r5i5OkLT3$8o6g`O2hNTv#lYG zY+b(p9NNqD-9mg(FZm;Kl00Ecguz{lPgTO0d) z(c-+`bYndG_Mf8L@-Hpud31iqRJ6~V1xqqwXcoPdm9jLlEB4^^#7X?{_Qlt~v-RYi zZYFiK9_^X>5j@B~x2~Pr>S(j&Z0uL`%J7!>RUjEQE0AyVi&oZrGvsS<-`oo|V!qRa z=Eb|8)H76hbD|U}HrJq7_lYNa@fc4BNjU6j;K&H#9dBI{q0iS59edt7MB%X!JdOCQ zPtyCiW}H*7E#o+6BSw|G5P!35BMQiTjp>mY=6Q&!=bi_TgU*X}OcaX`*}CQuIhlvm z&fKJNP4)S^@>mU(9^zLK!1?_i_j}vNz8k~}?V#DI16{IP7mfcUt@mb&-xYuI@v}Wi z>%G~&S1W^IKF4L}eDXefGt;{K+tegJj@r15MDSyp?`Y*jpYtpcdFe`&#J{xI(tB$8 z(RSH)Z5_0T2RJ;rrTx$XbnU-KKi-?T&^$D9JXrQc)-pb9bE0#fc7vSxqs=1Wn{e{Gs<*Bz`iV!OFt%`{Q)m_6$f7h?n~-M!8e-w7%(HPcuV%lMNxt$>;>5@jcYH z+_k34mC8NPDydI6sd$MMIN#nL6}GGi9mIW!?NK)MTzaoZWKS-_ zEDgs-Syf}VBMNa1`eYvYgtYQ6>mD3*E!mczjwWbj0krzGj|+{n`fbGm9{)}K ze*Y9he3kpfFQQdE#O8pB3>oL<#AohmP|fo~Q3NLWS8iWOU;C%`>shKi)F|W@oBI>4 z!$;AA@!Ua6-eoUN>c5dINMtH&eXpMKRdI4Km%Y*XlkAMnpIqDYl5<~k(d^ zAiGj>>V!GYS9dt1cHQ2LvP@P>vW_Pz^mnqw4qIvKIQvF^r>{Pme(9_=JpcoAsX5_| z+y#@_ec&-C&mP>WTl~|SH~Y9ZN-E!~o_2q;gPJ|yqtj97(bh3`OF5=ytWhOP-n09!Y0-NKQ_VyjHvPZZ_o?)P5hYg`yZd4-?FoMGC>s^KU&}=*<98QJn-=>A>bd-6RGHb8W#qeL&jOaO1~cy#c5>V1pz$9Sj{Xo_GRMl7f#b_!WUrnx*%$SjNCecQ3g?P-KQud{cehoxn4;QPnrp}M^*XJ`1wZDmy@v?YuF zA$=+|jBVcjH8l)t*sZ7Av*@V;U>Rrs(tQtIv1hTh=J6P8FFZ<^z z#1!Lp+xrz`e6KXKsxRKk{Zsg9)b<*+ZuxcVZ+yOBZq$h0pZ0zBC=j3gXYn~`lD$#L{-gTu zyx(b&z}M~W)|x-6_G*66Su8=r^C%-r{5)&JgS8e=uesWsE) z`^9&@CklGIK0l~$$%U>bM7uL@MLR4QhVr@7l-;)TwCRaNc& zAkW&zT(>dKoq{1AC@v%`zRkzN$HQ~Y8s=+G-CRG(Ds$@WPOb9x1jD=Ij5n!~RpsLd5V$vmD$B1dHzO&|GJoqnU-_5Vll%zJF)YY?nHwv1y-MckOQ)2&Uu^-nMiJqN;tAdRz<*s%9*YJp9>qO|oTbk!|Mt`eg+35{B#0s+~0RA^mXMvOG68IF6 zwJzLSRWvI|m-==e;~+>bg8gA5Sa9<^oJNr2cj~?0g`<9n#_=or6Rbqr(h*ObsBGEeUioDE3nFq+4T%LOF%AKFSV5>Uvh7` zEhN&s?!Cl}SOx}Yh|A9FOT?xE(&%kpICj1LE&CjuB*$eeDR&($&_|42uEoneechPU9-iTG4)4NP8s?JXC{ zmku1wZ#5GGBsPytTH1LdBui=!EpO0?o!;x$mB?%(DjlBnzF*(rpI1b;;GmAi?US(b zRvIm4kCP77(%wYh)Ybk`Zv1_#I4e)e`d%T~$I2#2<` z9_Ot=lj^icLcF%lq|jPlREy}Aym>DEV0Lw5N$JGxe8YFm%Nm^*cNiW$-S zBf#g*FlWM&BT42qQBubFM>X?}>YtinnFF7_A%w?dE#6;ilx3y@1?EtK26kHZ{l2f` zdJS?-g9AtV59?|0x|Wwvgom)*w;vf}XZ_`X-Mm2S^(_avBjfO__r>k(r_q{5NFVyx z35RHutK|!meipoIq~9q#%SBjAc;RY&TG|fPFnX?Q5$K$w8Yz~L28lMlj0ZaOX<9dT zvF_2QOK-9L%XqHwnTLOz^?sdTxlxjtce&)I6j>l|!^{mDyi&W8Hw%C6B)c``O|X#ovc2{wC_3Mb+4aVGs}u9 zZxwEPR{>uCwB~?&Yk&usn%BeeP&`57z|fRT=H1;ldTS#>P@(0xH{<)4N=^g&b~xz|@0ZxNoW}z5mbYqEG>cr*@b+1r_#dpf>R&dh*QV}( z9~OIiTz^??w!`P4+^W#H3xh4XrlXzHTtu_ zK*M{H4*k2d&hxC~nqJA_#3u;N8k3iy9gY`OE>Cl=sZ4U0T!Qwf!8;>6e0{!OvaMa` zaC>?q!Sb0J&Un0T`%7LukpX|&4dC0~d6;HM)l@u|e{%3oFWGWA|7Bs?oAbY_8TsZS zB=B@ZbLGHW?GhL9d1(^sNbNi?K6+%`FWGQ8#}BGSYINYPv+ccG2GjdH3p{YXvnnVt znVGvK$^5}|)8KK9xL5ls7ytO#qf2GrI|E14&@s_8^mKe&T7B$~%;E-n}XZ zm{8q|M(KU$F)eBM-qRvSZL2y{8!67MNpPMVRQ9*$Z68clHePKg6U!-^mwIC(v3tq% z`E+;&rQYW5{&U;N%5-0PUM;tpn&h3v7~zR|&(Uw2Im_&JlXE_7A6wgu>UsEz7qFzt zUhnk@>_iQ+t(T|vc3kvcQ+nG1AJ!;=id1`32d@g3;90-2E}c8X53-LfweMG7TF1%1M1SEJ z(cH*lr>?YlaSt-{ToyKMpBB1E+<6e{A4sPk*8eiDqr$u+QtR%h8~(Js zUpVNx30NAMju&~OaMt&O^Hlj*kLpQs5{Y3B4)(3yu%F*8o0E)+s@TIC_sxPNIraO~ zUlFdn2#+B#B;OxZorTXk6~t&2b#rZ?-z-foTek)zu@5!=nE;AE*mK_@O7VqQc?8+wYU<VA2+IX zexIKd!W-jxDskq|?B$r_(ZogFGIaxHPG$rg^Iq}cL_l5fJJJY}8uhoy|`4uN+Cx<7SQ>W1z^niC>Uuh52pm zgLIGeo}}lIocVcyCEntp!ZEKk^k56@%Y*C5`zPn>%yXZMSZciOh_ba0N`Im3nyya{ z-;<5@+iFI`OA!XImqMN4m*8+|peb-=lD z#t(~gl0!&letC;g^K*2<$PAr7)8JV;ZyTE}_n>)&;p_XQFV3$v1Su;NcxjxyeA(gI zXh)@SVnxQ=+N?D8MQvi@1G?Gs*uX!ZJiEM8Bi{bV`($t4)6Vy>0#0zzi>z31oLsbd z%#nz1z||4J{8w$4r&8Xp(ReU4uw9P$kSx@^YG-~|^Of>B%sgO+t6;a|q*#b}&+79> zCa*LC#s$2GGj-oiPzda5X_3my(9jCX&hQUY`D3c#(ZG7)uF!F%Qd!8i)_80;7x z$SSQ{-;1$1IGBIYH*cwnN!~JbK&0nX4jjJN*1)WaV$Ci^ZwLFyc3JZ>g7L@nVr8k%gUOQ1=rpl;mvC0 z?A2@aJ&>^VEaP?@G25-vcsP;A@XJ(~G{=VS^3tie8WQn-(Sr;m(>=1J*}aNisP%}x z$;3P-GbH@>L~XzE6ZxB{@Z2=(vZ8Fs{n_E78^CKe@{e-{#Nva;t!P9&PgZFc?gn$- z$ZFMm*2pj(lgkgE^NM)UvK&kP9x`GDGC1*gLj#h~_Z%J0WJ>1xvk6Cf#lr^0qv~(g z=J_54Ue);HVet?xz>i+a*@!pwvl_B#hIm>7ubv&AX;tzWkJV`}V-C8fhH*{(dGEV5 zlbjuBj0-lBDhng8ley#uJ1Qij(b%DU+X``1o zSC|Z6wapJV3~y^tFuEe&n|t3V-X*uVC7w(o;fu9`l}4}5_h&DLV_9=N?0v_K!D!C( z(_mvKZLDA^fmX~H%bh^+3J%ZogPaU4Wo3QyDo#vH)O0m_Dt*)ndAjsP=dvB`+SQxU z5s#Pamgu#|WTx!g*njA+?&K%CPv6X9u0(5L@isRQ9Q5GP-^jgEi zu#%h$n`ad~kT)kU;&3s3udsQ2NV%-okn!b+cw<oa^-S zFoNF6*EP@5Zozsy-N^b9bo^#cm>5jC>UBVMW2D= zlZmGigIO=Vm9>m96dIh~?Tgl1{(;WwoSTqTiZg zZ82g0<1@Z!ZZNkN@tu}=myZ1W{<~?NOX=|Dz&Y&UpaIpx(oK=y;F{-Vry-Jq&*m`B zx$4Clc^|^W$fyG={?0k-MtwieswGYgcIe->c!xE@?doTK`MV+OFxL3wh56p`8|cw0 zIy+pN{1ZxuvT#6XrH{PK{)*ZPS&Np3XWaInU>O>>EvU88Vw%Ry7>-989Sq( zZ|*?-9z!Jf^NBV%rq{H@z(v%-2Q3p>74Bp&I`b5M9u_IulLygN81^ec6pkm?^R=U- zJP55BibM|VXUa{)gZyRvhTHd6Z#7vzt-&6Q`dLth;T73b$IS18f7h;09mQquoowWS}7)oa|ZWQ=vxCNWN; zVO%hF)&{NYh(;fVV>4?i4cfA^zQH}65X&3=FvfYU#tCkd7me4d4)N22e_1nwDtpX4nG0d>jooxxGNX=X`sSu7%Kb}q>#OLUzb|Q^uR~~)sKic6>Ri?9m z_v?E{Hb1W4j|2oqvcHmhC+4$T__`~|u9Ay2y$!Ad2m1-#-gp+3RsLh_9 zH_k9ezT6ytr~dX08?-e30s-$&p6|ID|Dzh0RmKA{>1g8DgUSo%)E_yH{~qpDb&!!> ztCs44-4%1M`njvz45TIa5QoA?c52~)4o`-kq^ojh4vg(EZ&rAB!cwpb7odZMNIH%= zthr?CXkz!+lThv9>3;Qy#S@eKa>7LP9-8zDZqzS02X|}&uZ`4?^U7;+A>vhTAu)xWyho8U(OMx--xV61G0RQ5&aPr3!R4lFt9M8cfOGI+X z9=?mrjkhE;zE}dfHd=wKz~lSXi^Sp4$p3MzfeuPtPFL&PnOfjt>mXmLIDn5(B`a2g z7CPcTRo-|&^#YsxQH_ko(GjGbcAz_q5uSi~vx^bYIp2O$c*x1yft|hcMaF|MUcLE@ z%WvVM|GF||FV_F_5kN!(;83%@QGa=HaJB6x-ubv%`!}n>yS^0Ue&rc6(|UEfJqSdi>eVFf#pZOT}-rYUeA# z3(EZ!`z3O2uO|EFI51vT``x!DJfH|lr2Q`nA24Ku!)e7L|6BFMdT~*F8h`ob^bP$H zKUNPK^X7zYZHC^yS$$y$)gtp~X|5~N$@<^cXwE7|D@LEFy=!PsYJM`ENa#kjg8`I` zx5M)L-*|^-z08^u-@z7Ylg9X-Su?KasNI;nFDuKh)=c^m-;O*Gf59^zDV%{ruZ|MU z*VK!@GvdE7%6uL3k*u{nIFi_L@aUOHVxEb@JMEJPh*<{4|$gl+Gi7;rIK}no|GNH0OZt#qU z*rlwXHjE9tm!&H?fd ztUByv4ee7Kmj#YSlxJw();6=EGAo`D#;nnWq7)L9Y(jH=bZdA?F0W&*Wd>D!qWD3( zXy)Xq_)hfISVN>xgzdkkE8Q>0@h>M>gISSdcs?~f^u`DEY!3H`S%MLI!RnTyZ@sq8 z3A|t91>&q6UBa#K2+xUZ5)b^MXrf1Q1mTa)G}ANuLK<2of}RlP4QeG<(K=sy)E_vQ zOHpFy=I5WCauWLD=hkY=b7(LKLN<`K&>Ahq3`1)1$9%pmhDNWu6K%3?a}W81GjUtn z4ZaHf{rh@4_9tkuU{U)~a~}_NE;C294$8IoakM)n4U8V5{_fFhp*(Aa5(Crkb7A9Hz+bN(KvgtTFp6`|C+Wxnzg2_V4`gdtu3PQ zBy~ZbO}9S#MhoK2NKd3(J5>;Brf@h6(5kTGKi{Hzaqt{x_v(3bdio6y!ur{BQell| zj_&(W$q?$ny{<`T1izKb)u3N+bGAuZwk zhR_W0$k8y^qxY7EbkaFM>*`Y`&=WtCnYyh9$%70oO5NTe1^IymM$T(y<% zD1P*~Rk*H-)2E{CDz zqiL;Xh(w9#;&%;;BI=;IlT(LuC# zTQ{Re7r`3I$^5Yda>5OX6&ZQSNhlYcABh|OM05I(uB>I7QIEF_o1j@r=fLmXf~>K+ z)f-!zzt$H|$1S&O^@+9metdor4{z@M%x%Qn@~k71XSbHu3Tx3wWVdxwFgo`kS|eUg zMh4c`o}@9`{ttd4o@&~z?STpXvU0MR2(Nwh)|OdUBG^Eje*<&qYOI#mWGFv7 z-MJrhi}ki^%1Y&J6VVI&m{bM@macR@JX`fq(Wdu?Kbv&rXVWNbom?^b1_S)Iz8?P2 zu*UkDlSWD;We<7|<4>n?!y))IJQ__Eju=$QzJXn%(2;gTk?>$VBIBp`T%*fW|N1O9 zH?-1GjnEm}L|SmQ=7+`~o6)(ua4-A?|EU}fx5YXS?j10WmG5ho=tA6U&d`12HFyhh zNXy9b{7C8cDYrSd%YxGg$?SCm#EVU}0Sb_qrkM4xW#G6dD!NrY(6_yu9(kL2iydY0 z(k8lSu9e@aQCL`X)w-*Jhb0Ry!aCge+tnBSEfGj;`ryNP4rS=yK@GCP%gB1ev+>vh zEm@B)%PL^SJ@<1D>||P3*ES9w3--2l&sumJqvhR-pp2a8h&;VeaKXl5{oj6cq?ZKn zsG3*ldVU8V!x%rGemy*s=!PzE46XL7nzO(CZ1Ri}%hRJg&QTA=vce2IHivrcc{VTb zn4256d}c*+D?GSE%X^E=V5YRCoCy9$Ju^P>75DdFwlF3$(?&*-RdLY zIG*RwV~1zFGAwJ`Pu4)zkxrob+h?R}lMxyko+Li3d158QrNK)q|KO>%c*n&lxTf)! zJB`R2n8O*7Miid=;E{ll{r_oE;}>WAEW!gX3X0+Ja?4R5GG07m7Oi(3(T}EGdxK4h z&~eCZKL>3`A7Vn554Xxk$_{{iNV0vVb*?h|C?8ZiHX}aK@@;B%Lw|p|!p7g7X0oAPm<>%5D?GX#DWm_mc zTl++dCep@Ri4(QRjt@%W-{kh+FNd1tey=?rLVOY6Dc9A(+u=i)#aC{UkKW2D$ z!VV~#=jff(%c=d&=}&ZoUvvqzjVGqGPpC#}o(~DO26X*an)dcc2P!vZ*47B7SSmE@ z8OaB%l9%%%`j)21%3R;IB|SXTRAYB#PW5firf)RgzIC}tettaq{8rD6ul|Jz-aCCdT`KvW*#Iues1yfe#&Av-JGBC7`$o4IQNWQ&El+JGJ zqk49)zO8G7T0g{!*;)A2q=y50ytBESY`MDa+*}*Ct}<%&rJD!mUPiZiuAqu$?lWO( zhgvQM-tn`_BfOnT0a#0Bf<8N*FsdIu{kZgG&p;zuyFIhP<;lNBo5Xv0Zd&_jkxwW> zH@1(YA}{$ha1OoLltTMNhvA7}VdxU{kG#Z2&ZTC+oXiLaqM^QhS_LUe9+qwRN7>&9 zueF6u9u{s!#I?HHvu8Z&!tJan=xjElQ{Rlmcs_|q&7MT)F@KfiUG9SCO zRa+=M+p9KO_!d8tlE~3K2a=h>#WYI%p!sa!BwW_n3HBnG>r7!V$*=1b%zg29r}g98 zxkTd*azP5i>BCm{ej^S$Jd;B{uXUQ8js0bPiZ6IrPaf3lvFm0cL6P+6OMMc3cV*Jh z-;G0lhBeIRlwFGd{$YKxM`fg^n{W6qRvfIDcS!G1!3yK()&BF-&AH3~rB2QaW6rVC z5eq!+?D1Q()6{2q#*8P^>Z8S4tNA;(7*?(R>izmZI(<+!)ZWr{jo+o_pHugKL6E(+ zd5$d7fZmA^!Sv;@9}C!&WSIxdJo?tp11Ha#$JKl%a+t?)@qXzg`tGnK?6_o;pQir0 zHO`HS_unr`!=?69etag0_v$&#j(f>(XOOKBwuU5oLee{%G(6XM7x8HtFX4hn;j#wd z&IDCjHzye3FKPwePp$qut1<&=%KaU1oY)LhxTrI&*-sPM!VC*H=ZxVko`0voSPPw$ z>otv;m*bz; z?|f)w5|X1v>1cGi87J_!V5Fg&-^n>&{eWTr4iDChUNn9*C%bX}Ea8W}wUW1!X&iZC zS`LS+!AM4)e;uzL-lG5Up7~>c_(6G|+8eNEzELw}OtL{r$jYZPUJUpBu%5+h4UP`K z1YA7lL>6BiOsQ_~JGn(=ZkBS7lsDLfYhNu1AcZ9L^O7nO5xwFpQOiZnHuU#{soFQ^ z0njohX~Z$AC{uI2YaX>q-e<lchVV)~T(Jq=g5f?c;lQ{_=jEl8MGin@A{nn2kI~ zdt1reH~RA0%?`qxzgxpExw<{jr_*rjxuWHA3hTXEk2eLvnv+zwr`0+OluQX6@Zx`0 zxaF^f_u*57y3X78PQuu4d%Jq5y%QlDA-+MZ4(-YU9M(vQ{5t>Fd7;ebw%*uw^JeVm z`H?$L^zIB}Zl@cD@3MHQcTzSt0(! zPvF-g*|)$ovZpP>%RQ4Jdl`AmO7pNr^!ku2bApp@Q1QyM$v5M7%uYW1mVQG=ux7L+ z3noGjO>oF^KP%Q14b790q6s7C^lh>&;2Ha4a0Qc1+4z#QMe=&+AF0wS89^h6d&wOv zgQjzd!>*@o`c5ZkRvEv|SQ$YGN-irOa%2OUnZj~=bJ@dU5N zNTlh!Di+?l77dA5VtImuJ_+Y_3}Ee`=XK&_{bS2xyOz>BY;M+Xw8WS>`!UaE!6^x$ z+e0yu$o54>f`QlS$;UNg>fC4x+>pK3%(1tM$YtBy%n&MORDQZs)$n$+W?&yO>r#Hg zhpo*cdqXEBA_rg2+#S|vY*)9B57C;>dPn>oETe0Dz0j^HGvesOqIsfqnm+XFO03oe zRv;Q_NMh4Qy z&wOSqI5MNZRzWx6Oy8R$GtZoshc%11+&gLBsFvSceRnIs{P(M?@7Gq}udlwli{kl; z&fLZ6Ug-H)VyW|fyL!QI*Dm<&`s%lLCtTpzP$Ik=Ul}K%i9Er6JG=zDTHKrd(!{a& zqJD9w6?sRqw-ny5*~c3+^84IV8b0jYZ*8BhxhU}-t=*iFn}yM>Z*a{zcvkVT`8S6J z$cMR1}#@<0yTW-KkzSmVWWj-h5@xYNp1=<7Xk2%e6fFm3+B5mTTw?NHiW^ zg7bI)ymKCa$eJI@8-e%33CGLk<+k+6BL@wec9y+j8PTgbg?O=DR=SRg+!-E>UopzgZg_?-a7lHZn+dbw3zG|n2L{qg(hy7fAn|7md{%OCmM$L`@7H?+R#RXpuzbLdza z?>da{$e--^zd3E#fBbrHY5~_Ioi!Ppy7#-2ow!BDV5uLL{f_Fq!u5k!Hsifs+$Lkj zTZ{+GLW`3@+L^TFSZ`Dd@l0-fqY0M3^RGuHrN@YG=~RRGKbmaY_x2?1yv@9+BDs@z zp4--Q=y|F9yX279Fx{!uub<85TEEM4xuQFT3H5P()7$vfT0g3qg|-GiEqaGb$9~~O zZLU=7k0&0<4&9AYs?&~kL2&?VTNR%JX3#p>QSk`BMTXEPaY}9&z&(Sro&bT zHlT>-*A-Jk(rAp%nq?&;ONe7x@#|%i|L8RH)tL*YZDf(7bk+rR-boP+Cm+vneY92cOrsx&J>_&x_02@WTgFPkdoF!JNr5gj2HT!f#c> zU_|50$A!iDPV?Bmh$X<8*0-!M9kJ$!wfN|r6Sfu=ciH0!edXV9j9gXp!l2c=^-J<% zMoB*Ww>2kQlHK#fZaq?G14k9^fV(+pTeF<(J?ooKG>z7H1cs7R8?f|!0CahF^uUx@ zQ zF8Fe5iQm#*z?0GJX>fSnyp755&%k8k4fk!acHU^T8wpH=KF3ltRa@Zkjv)~Qo}&|z z2T#;K&$bR+e^^|XTplhJxwIvV{y9A3$N9TpkE+$}lH~cjdDGIH$3%~BR4gr4%BPbl z>KrYMb+?|KoVK}ApO4C46r;8b7)f2$yY;Vk{JmEH->(1HZCYaqg zXJg^c9g;Vfs zvO?er_6A3>nvJvQxmb&XT1WE|OGQh3P;G}t_^tZ3%;>>}mdQJHmN{NnG<5Uuh*5`i z;oCmT@vc4N@vc7O@%FNnUmknz!O9+B^P}%_kSy+DQU0x>-$(Vi_a^aKwA$-a-}o(B z%+Eb<>kd>^u)#E6IERjvqn$rB>+1gwwWk^xV9%iGPtdR}6j}UM|apZ$Z;LHXt=e zIN~Mt!Hl`mRV%)-~Y=l|8>!J(4{(5~`*)_N3K`6}JvEn+ zFLQy_*vW|dbg(#q$RpubSe@D4tiQjQDkemCd8Y#}*!}=qqjf5Lz3IU1@%T)X8 z^7>>$qAkd{^QbQ$ygIGn_C%rM!serb!;HiGm0N$YWcJ1Cq1qSzgAFs7*^Z078E>J! zSuO9@)0_3Lw;8{ag$E_OETYK(E?A>XdH zcWU%^rdikTw}jhe{W1Tuw>+u309ss@7S*Y$#ljHB%r!otzWOF z;T1g5Q8Bxad_<~UMA!UVJdB%Tr8;}jRv~iK8YR3R$;h6)%?SXHggRB)#;PA8nKGLweJ$>wph$_T7*x-51HQ? z`)>8`EEO)Nt;q=b$wxW0-FRAKF)M~EGS@!1`Q|rsbahZ@);<$^gASxRJkUE?f&k6PklKoPHFSqB;q zf%S%Ar)R>~usy#wq;Yerp3+$#Paa>YxU3$I^&~%d-8jP|NS-kMM5?u6cAO-EYqVne^U7LUrQKW9|`Kw*W54u64?#k^TUEORg>$y@9*jtm6TUbBUiuw>}*}e zP?d)o;eocG){9yseS2>SOT4VhGcH{|A{V*te^qpkoja`c9hJtDfjF+V@(=m<-t_#W zzI|tE^WKy-Q0vLcu)uo}^ZcyeQN8C%reWFVR>2LwWOZbh=@0frjs&%>S3ACd&uRT$ z{VwYB)ymR>el+*F{Yqm)iNNvNd`fH}6vd_2b`Mvslx1Px{ zomBt41JLhmpw=vTdi5A5^&1;}GU4^R6A#D_-LH|`TH=j6(=&OZp@5)$cd!Klv!tiK9hy-?eI+Pgl=AZL3bYO*|c%q2S` zwUs}a)@Hoepu;o#(BU9wrNGkG?k5vJ#?Ba}Z4_ykpMdn+xPgM@@Wd>%<1$wlp3e?l zyoz`@cBaXIUUW;Kp-UqHW~cM4FnY?^aG-zoT;h_%bgTP|m!b z8quuL8`0D8AX>BCpDLU7p4t2RqOiLD4gW2l-9D|3y1Uc#eUcG=`JWkk(caojqk5A*aAtj{ZN{zXlHB`eN zs7uF^mB9L}X6Fy$BkLTyf*rT+LB+;xaWQl^yu}k|Vd4e)G_oLB!NoIQgnu458*uUX zqRT|h$-Q;9ZRyu$h3-p>H$zuEs*&SKG_J>d!4$hU-|3%I`(D9D6Qa5uz*xlXN!iSd z@_%0c`>S@&e|vAZrv>3PHqq+MNk&EP=7~=3{Q~sFH6(iQ+TMxXEgbjCavV?gY(Nr? zL>s_+VyQVDGD@^evhTt>R zomVPTBR0#q$@noZRkdk!_VA%bmZ5D4p5CrhjvzVR7m9yTU#n-a-t(zC&(J+BMcEt+A^|dM{N>Ink^+@QvSeAAs*30WKH&T|soST#tCAwM7$`MnY5%Nu4?6m#*ga zIZ_3)zo}=RPqE|S8THWzN%H|hmP@iN8v z>)(@KNxb6saFtw$46Eofl>_PxNPwKL=d!)|{qB@gP`eNfF{&O}*yJh0G2oYRJu3Kc z7z@;q+hO&N7LDi8yOX>mYk63|!;CR}ZmHo_vC{JlfvgW2;4Rcg(|)HmEb=cSp*-H$ zrnHo4SVL^Ac#_S*O{LtJO8P($>LiwGS>78jay|Csv}LocbZ${RA-6a$mgP$QoqKX( z@VDxj=j`S1A-CRR%dR%G8XR^uw|#LQpmw0RS+j0EKR)3)>Qw3RT0Ku@=|)jku0XyY zN8l+LgJk1nCuBHq)!W5OvIjS(Z_Rmj^aCUAm`h+}-C94a|H%xjwPg{jUS0IH!hw;| zTNRBHw^{YPfA;yVU1}5_aoYn{#Su^HAqDnV)8 zk0%|mT-V9;Jdwhfk7lx~PU=-H49U%ork3EEpLTByB@5zglXFINrW{)MArkX?$;*T3 zDc$;3{YneMDgHKFJn?xxWJKnX;Ovjk@pRS28P3%zl_Y$%SqUGnFwFWwIf%Ydt?AU(yLt%2sc5O3{eWapGrvExM0 zl>=vgZk&C?N#=yd=;d!u9LD!~srC@P?SK^KY`ira!>^$!P1v}|PIas+KPP)P2Q{1B zUHUnGUn~e4l^qScV?2V!WJ99GupF^w%|q!u&p6UsFcCWlm!NF!=JkDEl#AuKH*rp? z6lHcm#5!7AFdK=9$E8Yx*AKo>pS2p$MjMJf$q)~rF=8d?o9{l|t2X8ZhyU7^i$da= z(&p{OwvVCb$eDn$wX|7(f11bge8}z_HB;9~g|hLNM@)-9NyG=$uUp{Qz4(=E^AlJS z{(JkmpBG%AOh#DSJTO@;3lKY%nj$s%`He>4g^e|#22RmWn{_PfbU-AZOhp<|hyOh2 z2OhmYncBkn(9$#q?>u(N3K|1O6ahDW=N#56OeGU(3@1mY4^Oi5K7nP(7cThVl(yc7 z0)}KlVj+4?xj%k9s18fdy<49~4OUmZsdFEa?j*Z(NM|wfMuPWCud!n? z(7{`B)1LgeX62pmR1T^iEz!A^+f$9j`k7sfyXCvQT|KhrqQZfFrptLV{Fhtx>}Kh0 z8by7C{kF8CBY38T5&Hy_}{A#r@?oGTy`;Ev6W97j)O-|}YtKCh@~i0C?cCY%sH zM+tfq{|C+ybG~15oL7gzd)Gd>Is8Spg)1T%bL{d>%+xmZxuQ%*k@obW!@z-q$)5Fr z*I!u5UQ=Q!T26+b$-sR=j1!n?Q$&1CJb6HB{p~& zRiOjttW4{=a70Ud@E5A`zGIJ?)B5I>zT*Ux_#tzotyQ36Vz%g}oP}FQE=T1-kH`hb z(IjR~gf?p51}~yYOLm{;L~R%}*Qm%pDB5)WJdbO;b4nLvU;LnCc7C2&W?CQi-3}Q{ zzFUx~JQABHXMys!%DXwP@A#sh?3ezlSBP+7*0>s?p+ac-Mwlh9TK z9eJg(QeC;!mC+p0MZc@@@w^qm(&2>D-Xm@Fh|F(v<g(EL$KHt@J95 z*&426kY_d1!0L;&Bl@j6AN=e`cJlVwk2>dqwr<1XcXkPX%ykESM-oNx*=Zod(LFQ_ zUYdJoqz;Ga*ZZq;UYYY{+K3}wC?55Vw{QHfb}sxGyOHeL)6XXx%xchOopp@2=Lu~4 zds0{wLG<_d16S)8Tq`R~YP39@G-&I!ewPsa8h@kb*z>k89`&_?;olUl!^cj3@yI}x zJha&#H$vc?uT++hHyRxn?m}tS#!MHF*mc2kn4WxPw@TlTdpH`fsZXc5LGt*u@x*A4 z_7}fAp6z(Db@X%WL67xh5be=RJ@cOzjOv*$vnD)6%Ch@0a3fCOPmyPQWvtL{ZM`q1 z-?PE|c~CwXzS@gzY(E*Uo)y*Z6?J}Idh}6Ym6n`yO6F>?#XcT?6`YR zVxJ5a@t~Zq`}28_C&hb-59R!1#k-bI)!$p?RmMjZPrg<0Wb(x~%d6&_s+&*6hOwOW zOoo`BYcx@8f8vXdx$}!L6Q7D1Rm6*0RrNh62t~r?^V`VT`=+i?Cfcv^&phQmS&)i^ zKPlZ#N@H*0pSxKg()i=*f#+y{GU$eoWJx-%kyYT!CcoRaY_h+JlzH@d?}wfwIJ%uj zN#1c@+Z%C5qK#OY<|eV-xJ8FQ%9aHl`yb=fSK?=5&T|wU&%_svg^Ist?!-NbV!?+` zL~^lpVv%_kLX;~*1T**R-}ug{Tu$66*5WC&$C5R+Ps<8LlffXIxJM~i9A3KCi6~%# zmhO{+87apPwiZKisMD z&R^vlHGb?CuH=i>%% zWi4W)aDo-SQ{(=oMo$gf9Qtt{QB`Y8y}!9-Q=jORf&cIwUdM~W!!}?4W>$WUv(ggU7>rUtGo4aJ;8%})neUdjmL~QczIrrH19K@UDgq?g{+*tNnWKa z=%f1F7Up>3s{DRZ`iGUK!*Hj(FP))ve|o;~@{MZ6GGy;7cLK>((W~T#R*s!GsZTj^ zAhXn;|GYlQNqX}|(xm)rd9d>7W zn*O(nleC93dDZZg_v)V1|8G_gF{V-JO}9GTE&fu^<`?tlB#sr{p2o$Kfl8E`GaNY$ zY7J%q`%k8|1`;|#U%ZDy{76%)(yN0=R1Ib$D0K{xk3D$%^xL*>7);Bx8M1v`D}6{;n~(Tv7iopY;23 zUF&rY_6%s+mh|KMOy<1PBpFQVu;4wUj zJ8=+NzFp7p+m$-=L!L;~J7=7j$k4oFM$tA-jdXeLQ+B!^)NiDbS4Udti^$;JYC&dN z(s{U%4v-iHN0B4rwKRY`ewN6GKl$6z1uPr6|6%RGB*)LsiLRH=4@|MxT?>^R)>!Vo zMazC*Ywm0HdH((C>ibJ)-(~W_1fm~LHF@UvX^nKJo@Y-dzVJoXRF%ZCN*4ToQM1tL z@$Iq;&1(v+c^%s-2b52hS-kG`y4gCqq(`|^t@lr+<*q;;)sIU4lF3wu!rx$lc#`pC z;&-(N7~d{cVC}ibTK>A`YTqYoY8yhI896?n5$IwSEk{LjvF81PIJGTKTl>ZD#}nRf z)xUO8A56XClg0+YR^*7?Y`-5=;gR3hueh*%K7aWK%Nh#tT~?6&mtWPl>~MtN=D&?t zHeO?Dig*t=pXGrAaH%_Js99~J;8jt(dy&VAoyW7r=cg((y4x7|AH2zgs;?ml_$Acp zy997R_KMnTg%fn>SO_#(Ln1Hy!BWx>>)86a>Sn=8Tc$e{TpRc*Yr-@9y zQ5q_k_yfp0$*JqPdVY7XoFaeGRl zt|hKVe4R0eF1p;Qmy^;x@;^{fgZ{o8UvK-yq$ztJqbE+LZ&_0s2!v!$%S0(;*we`J)%q0OvfO3a z&s{&O(PMR%w)644N4j}EY}uoNzq!#K+;XgV<{f$AiFIF+xAeVolJjYvUDn@*#rCBS zrizlw!~)A+;p641ABREv;Oy&K=RVo#9p0p<9j20P9r4OPnrRQ*_m8T@UZw{fLHoE} zQKtwZWi1Kz4DfU3aEJC|;lah0#rC!oWtMS2Xdpj4lfiinPTS1hV~p-#9a3pvb~Xk+q?3`5f`0GYUwZVeT~qo zNF46$^DbX+EVO?5YS$kr6`_oGkEj##-Q5=UzewRYt@$i^!oQ*B zr<2E&C(I;xKYKvsM}7WhyCl!{6WPM>@R5^ zH+r=vzQnvdjn?bE>5E&hvD;C)NHXKCThN90Cp6ZIpOI?agW{M(f;cF8*eBGZmkx?@ zvO?^T{O{00JX5)+b&J+2$k*Dv#4sY$SR zF~)Bxp0`tf@4O+&roW>zzF(MY4H2nsT;?`z*(h+PY}IR?bPMmElA9HyIRJZlaC~Y$+Wk3KgWG*f1YcsKHRNy zg~p>(NcG$TfZ?R5VTS;Y{Z31|L({uFM=X`9I2>?T|G!o1x-#YIjSND3V`MPKLrkot z#+e58dvw@d{AbQo(wX77Mz9_}G~W}Hc!S>WY~Dffqi8C*yN@PZu3Ic?^WZg}NqbRv zEk4H_KQy)b9|UW~QfmO?a6ezEjz0*k!wT*Nt~_g#x|n@qFo>rS57w(%vDCphd?VZvEg-z;+^5 zxEZ@4H)>7b4#rwj$(^Kv95i!qV|NB<=;Tl$838t;&u%RHCyz_~m0R`ugEr-j;L z-+F}B8GMuI>+$63*%P;0sBw<2iO1jV%pKl7o;Z?ZlRZ9xy}EcU^V}kB5w9j3MAC;` zx7Nc8i3a0g@*ePbELi)?Gz1QQa~k6})rZ#M<;~;C9&<^5(1A1AzhwB(EvvavBc3-S z?bLEiw;LsOlYFsQA^(1J#_gaS+`lK&S|mqJceY+!-f580W4+oQtZiKUZo0_YXuHVX z_GYDd4uTG5ITG;)W3bz^_}rO+VK*XItxpCHPij`*V*kZc;(#C27-mS-y$G#u#uYau zIv^q1zEjeG-x4?YJw9@`;@iJh{k=2(c(R9bQ1?qdQY|n3Ol+9Q4)-RKy+8S$9m{pA zjJu9+%%5oYL45*+IqaUh^F<6tuH7b+U%pY#M1A8FtCQ#2MQT(&i(ieBCmBEW7qFA3 zzCWmyh_jEYKiJ2wIg4QTA?}nlne^EEN>Vxdv};Oi9k*s7A6jbjvPDBFV&vsXpnG_%Ib{=VuRvbgH4QR7<*R_*kud_UB)F zAoNXpM)PVZ__{a20XlwOWIqy}xRaK&KX+2l(?41~s?kKc@od0CSF760JKzJqIrZ6k zcqkBUno-bZ>6?d=e~5W|Un97Kf!VmEvl+c5Sx{$>I6rpW`RD&8OF+zerZ}*Qhr+nmCXZ_AJ$&IZ2nCnF@(<_T37MmTW-s zeR#O-$?a;*GRT7@f6?*Eb7iIQde5}>7WVTMY)0o3N4{dr24|U#j1Rb<&FK4USz_d? zoM|7|Pd6jk;K^p!T%?ruZ!JA%nN>boti2d5JISeFh+a+PO~dh{c(Cp9j`&Ts1|MnL z=SW4~*_EW-^qOZ|eV^|a)A6@z3~#eYowwSZo@w3^pESf7H@Wu64R17=fngh#mLcAs zs?xD?p6<44KOD#I(AMJMQNx+4-Oz}yF3Qgv=e0a9BjgtR*DK!qVzO!JeXp<++Z2y> zJ`y|AxFuo3YCL`hP-TWWomjM9kJHk4-wdQ1X5`MDK|@awKfH+OFyB?ajW{fD?;8yT&7QMq;E~NwZ^@!>;OHS=1cZp^)&5yyC9T#kRNdZ<)l8v8r>@x z!z;A>MeX#U89Nh8_v%Tfi@uUQYFGkoXc{_L$(?Bon8|rEI+C^eU#C2B@3h5hFrVN3 zDtF90n@Vg!jWIB9_$*$F~eWo@!r*^(1q2qgInFRk9)Oq?l*N4hzq( z*Ryvn(e8`NC9Be2j=+;~gPJi^NF|r{MbYew`cIsgw?bT|Z(H~KMFnv(K0}XTC8EdI z_l(RrL66=YZyBS}aBIAy?A7Ir#0T|@eOxl1Y;E*fG85}xMxRk3GjBhC$}4&Dn(!~z zO9m^MuNR8CvWmQ9bnz|Oceg`_%IL=%mEX*5AnG3G9@>}p1;1Oe^4r35-bIS@UMp>F z$JQ>u^QRmkmpMM0ZF|r4@K%!J96XjdOCC^eG#vh*Mx6IJEWSqd^?vrKeOTsy@JDCU z=!4k6u4}w(ucOi-Ym3j~I!`+1(T;lQ8G18!W$sxVXB%mgWb2}rlCyD>?m=Ny?}IvT z#%5ic{=Gi^`>pBUm#2S4Oe{p}w#=Wo_bpxKC6CF8b=2FjiF2DQo}GU7pKKYwt)joq zO*ya9c0uh;_MrUQ@et~w+=J7caq2x)N-e8<*n=p; zK=u>Kwy0#(ZozKyMf@l9k$0fKS#aE){Har*Y7K&a^oy2n4^}*D%?7XSc*oV9;K-TXXUXQ-S#KoKq z{^%z0Tx_bE2{j0~nw@4r?w6iVz2%i^-?k;RiyldiKm;M?N2T^oFLUcrJZTvvaaqs2 z^sk4f5YKx4#WYs{|{;78j?e8WGzj?lUE|S+nT#{@}s*P}Rvb971!G}F; zT-wnQJ_&wft(t?^-Wr_2`PkJN(nccG%tv$1eKwq*S~GYj{i(kTwpkNerV*auRue& zF9C-y<-i=ykD$bS9?$1i$gi*0e|C?uhnn*b*?lF;@{(pw%~kRs4Q=}d{I8b!`!(b7 z#3l0U9Ww@ZTPqkXHuuT1w|(9S^E~E!9q0F2Vl)xv)8jPy3m)SA&>pcaIrskU(#x+^ zEnCjOcScG!$6YhWB~@b|?BABprsZ5?k&5^tWDd=Gj8x^Ry7_)RcUPYp9(y4FZt|?> zbtA3Il6$AM^8Nr^5o?lXog<083YEToYahRyb)=Kto!2CCZN26nKEPLKr;jv2> zEAGCSesefn=KHV+@xgd(y>VDIe(ha6<2_s6NtE`eppi3sHWI$& zl)+Q`{BT$^zgrO4x6UpOEAVxdak6D0x3z5i{J?&Z4i z%-nNnFXeC7il1z^fsXk4X+NIXTg8uJk&YWXvikZ#E9UIlpG32K_}JMBI{Cir zr2h5fb)QYvr~Uu<(_dwFIQy>aD#X9XC4CYqJV~Z~FO%~3xcoA>ylkD?c>BS@rEf`n z+CHg9%C3sNX0-+)!R20Q?od=`^L1X!R|%V4+P=-HrRl4}-QUl3KK~sRXWEyNy+|JI zPimjmCsB)dWq)t|O5FhgzWCBD1hvc^F6-Zg9V}H_PVLRBwZ&@g$w>9A`bs&>$x*2IQ6oYlt6i{*-*0uC|B^mAiwh>QCsTA% zu+a_~$J5ktrjGQ}>11tW92{1pHNB$6FQ+HVRlAYn?P_~#f*&=k`lS9kiJ7X6HJr}* zs;s0-tOTX3CZ~Gm9G1}K>Hnx%h}#3JfyNe zSns>AA5>qM?NgFN^UFu#AbP;A)^DcqBlVGGJ;6p^0y{2HVK<)}CN7%A2+==ljdT87 zOP<-zaJ%MQY7JxG-#k5k2DF9Khqc1Uq*=Dw>SApN4_(Q=g?T&LljuI@Sm{0*@B2lc z*gdd1^NAw-#Q1=%4G;c$UWZ+IR z@j|uwu>LpR`}KeKI!}hqYk$5po!4VeuFh)()?{<9@KZ0 z=i|4FZC={AO(%C9dON3kflj8=ardX+-Ind-z|E5Fz29%u2{mgwsyWCogfAt3Pyx*Li%v;E}u!G9k()}@x>zBK=;ypO$uq}Bo zT(`t}^zz&~Eq|X=Wyv%7##?G%Z_Am(E-gpxS)@_KNmv3`fNtw?-Jnb#+ z`bLS&gwtQx{I`xrSeChWO>?dP>t~Ifc$b07Z#X}dii3`M{#s$fZLslNdC0~-*vw#z z2Ihxe}ot}R5tQQ%!eG@ykqn#G+Xw4O7_IgiXw7J1&T7S4gb zH)$*wX2<$BT8{79anHQ%OI0Uyebbsh|H)!Z?RfjkQ6CmhC$1W^Yx(k~5_Z0?q#nvY+DWy_3}LVG;X;Olh4-E@Mii*|FgL^CO^VaLJw=_)aeYm$&oVQ+&y``gkL~fV+bVbQ)(+?Z?X%Wp`>meWD*3xL?ALebId8p${rZj$|KSFVqcdDADYBLHZoNmpJ^mQ7 zJ|Fp8J22Cgjg4j7Enm>dAD_Xzq~Eu8IAhs%FnJvYxyx+^ko*rQ~S4Ug4IGx$!LTPG8H`w{~pvvi)*=Z!KO+!Lt353t!&R+*as) z=6jmt9!~4Hgt2tWOPQACY zjov)cdGFU2y4+&|#O>&w2&d0*bK zPNO&OpTGNIJ@ZzQMqkpf?7N(KD_Ns29j9-Kqzw86= zCwn))Dv4Wa#aDMU(SQI?oHx!=qka1V-g{}X`P&?Um?x_D){<@}MBFulCvKd6Se zU0e{ovzN`cQ}@e??E6MaZz38|*vmV9hK%I*&&KSW`}394cdrc&l6hE;^U98f_U;Pr zQflZf+5?%x^vaHYePfch>~rJJ+*C*7iooTpj;6o(V>#AVd(q4EV{o>=WAS{=_v2b6 z?=$<`>-BCmn>QJHZ-)A2^26S^?}W!hzZy#hAp4-tSL>VuPpgkN7~N_xW6Oay>~GgP z);p)m)o(SK`=~#wUfJ(L&)4hwPYW`8BX&DJUgdUP*^z}gJ;?k;^te*Iv4m=?=kC;+ zlHavo0C#rUz;wSjh~CJ)@O+$a@5uV=)gG7R4L;T;Z*Aud4VJRM9BZrdzFQ;xpmO-% zEk4e^QQ!PG-$h!E0vAi|D_R6y8~${wu|3V@SX+*_uR#NOgPQxUemy}H{x+VftmPP6 zo_4q6YZEl*kD=bcd*OaKW#pG5ZaMr;am-QC8ZTJo&BC>v-<)L6UhSRYh@;xa%l^|c zm-*_BF7xirHww=uHOjXqO~?+-A$fI2Ytabz&!iPs!|xI&ukQGR_NP#(<$QmibUFK$ zI_@l0cXq3=@MgiS3L<%c&+FTpE9keBd9R@V{^Z48sjM}LR1t?3uhmFyt0$i~C$Bwk zxEprm)t$K5`?o-IfATN(#>hSP^HH|m)EI@V?T@n5H?Qva7T%O&XD#moiVh8yn~Uez z?YECEC7XUYKBLh^`^?Wzl?3d7YJ;UE>2tu#vEM69U4C?XN#Y?CS=$lgZ?yo+fjjL? zT&XIYtsTj}2cAu}rB6$ZVB{^=*q3!9YV$4~=k8HD&j>7G{G>ItjklHN`FJRP(RfR` z8*giA=mxtqe>ScEof?s*lJj?>+FkItePo@Md|=GAh94uoR~&Wcu_LbSA%A;oeMs*c zg-JU{k=+kV($@Zso?Dxf{U&vRd6zQ{7_T`#hZ+@oBJSE)uW#S#crSEQbYB~7SGAW* z_des3Gt9qP7|$NWnzOF%_`2;MxJ~zs2`A@y33SxkMZ@vdgw+3kR{GwIYYDu%!^hbP z%xwdB#NKJX<;M0U-mdQWNcQtSov8DC(eVAs^QES7JNuSP(-$qCFMRP~x<>PZ8kGm9 zM&#jUC3_k4j70}Lzq5`tG<#X~jKIP?U((&#WLD%C1(^z*?I>HW%qTR5HF+0^-NCIs zbjEcpW9dsf@SEXc-}m3bvDJMUi)8@^Jo4u{j`(Hq$d$5DS>R3pAQ z{oSL*)&lovD6GyMcYav#Y%R~V9sPT+=JF=Z8`b+>t%GHV4o)1T>S8Hdd;19D4^=?k zz{mScMQJMdeo*UD>$M(bt7GZc9DSKRSur_O;~R-aQNYXVo5EKC2O8QO9>S zlqH?Rv^NettBQ$NOviN{3h&o@o`-LwCSWULoez-ZVcU`sNX-6m$qidf=f736e5Y*3 zp0v|dsT5`-etzcZk(SqrZg_X}-%5arXY>#U=pQ-T_S|yT>(xWg+)d0^9W!0uwUHpr z|NFCC-_gsj*D6GGiFo$=?d>6ax46R_wCKG3UVE8j){>Sxug6mN-=3;N?iZE#wxI)y zHSn;v+v81C^wa0X&!3#mlt|-8MXmjr_cAuOYaDV+BdYY_AJB_N-y4Mo_sWiU`Tc_Y z&kIw(Jr`52>}Uq>%~F%#Ms<0KJ%0Q44j0gjP7vd_z%=uIv(%V z-KSs1T2fFY&oa-DxbrWHrhRr}Z)JN?=kcVUVIx|4-fvzH?KWz8lAHiZEnVtl5CSA32#mkBXl;{8uI!I1he$hIGDPxFgXd8{9uCo+W87 zZE6fJi?^qn_v%y3OY5JvURs2|6aC6FNFL64&zz4!wm#pWf^8NVt`GlwXi>v?1GI6s+mlbl67(B_Z4XQ^RIbbQ`8!xyHb zcr2e!qv4CShD)q`-bn2ah?Y}z=Uv4-)K6CHx=3fJ5yhu`(nM{aPq?ND@mjZ}w&Xl$SVDeQ-yl2qBqx&A zyqqkW(V`hex7pdD7qT`!^DkEzX%5pf7}5iTORI8q%Ils7#}6hfj5CqzzAZ6( z(8#b@Q|?8Nmu!zs&ES$MEjxRoT-MJ^cI~`%#Oucw>p94TTmJ0~%V*Ca`|@Mrvu8af zIGtR0@QmR+Z_JjxIR)Uicd6A3$i(!``A0?TVbKzyF0t9tx26G(zf24xX6!TftOFli z6#Zo_Y3h#8gpfBnk;dAy;>M|FHXE$J=w;~ z^l#sdMb5i+{`#oYYq~s4PfMrfaT++)IUk(jbi}K_2lO@h77=4C4FMthxNS2P_-rh zWY3SJ86|!LyDck2V&u!5D~TQSRxk7RdoXenx4K#u+1XD$^SkdV+D3JBzy#5V0+ zpGAsN&q8K$ zuZ}j(=-2_Y2jzRtdge|Qco$=XHFp@%@9TRj4(qo-pGX89U=S`I)o+Idg{q32fc^R8 zZT5RIY3V&Ea6|4&M^B$|R^Z@~B_@Syz1_NoClY6aFQnA$%6q!<#Apv{ z*3cxF2SK>mC%w?AWdX(c>>t$Mrk6Hya!ZQ#J)ZW7lZ}q-nDecAf^&?92kcV7W1u#Y z8+Qk$jf{`*LimqFYawC}j@@(hPJRB()Ru&s>8PI4_V!+AhdHOWcY84HC%UhvB{f`6 zj?C6K5iNTk6%NRe>^@pYe;?HtGVb^5X-??SDYEGE@v~EEcgG20En+KUZCd8yev##1)l>5}--i3vIy!Ph^Q4_TKuc<2{OGoV=Yx~)-unLk@$VfR{4e#t zXMc9|(!u{%&!^8fE4$RsZ(cpPfA;y>!N+HxuOIyP{rT23WcuEbnK~Wk&eene=Irye zga7;N^S2J(`S%NkH*ekjvv0n1@afs-s|Wwx+2?Bq|NQLp^@IQG>~o#``4779%Lo6% z+2>ad{`J}CZy)@V|FGMYI?s2ZY zbZ~O>=;VK^?>T9{XH96I*tQRfXJ{WXM~kG-+x5LQzE5;K9*lhTo5t|$l_@@2TB|V* zxu!4ds-<;nPtr*;JT)?F_Gpqg664t)*He`SWP*nCpQyv$RNKqHI{T#|f3rr3HOxx- zd+(oEDec_wnD_USHlFw5E6Swh%~VAuwy?zppD0G(f2L)etn_f4faN> zTayk==Jm(bg0*cNMb_IhnUDSMB;T3W3ifMx;VoFEr``NytvrK=rTyXqqI&X$r?oYba0@CXKDSfT!SdY;E+8w{xM6wR~KE<*{Q+{lZ)Sc;c|5f-c%Ab~P*iXVt^| zfWr;HE~>ES>~H%c|37hW1FC6O-TCegP6*=do11aGxw+oZ?=aXBw5ju1r$y#^&Z$#h zed?pD%CaLNCvBUQZ8~jZw~lFoNC+W_gdv2BNC+aqwnC5~B2FfRAR;0nK|%;a5E+7m zVGs!-B4N1e_x#SX;)~inz&jkGvup)hr?wW`T2sT%Z$< zrVVo*N7Nx*#31;=3gGK*(2r#>64z?QFH9qG9fXW+LN!cceUWHQZTW zY$%$L7jv>^R*@q>+4W9&_A0E(>ZJ_JEF1|cVYE*jOOL-se}tvf>ea0Mf%nLP+4#P* z+}0<-C-f6B_J18dTp9Z-wefbzo#WaO>s5t-aJ!D z;%mf@zdX@b{I1N-((b*blVKdY%iKn2#RFnGwmZ zk+PB!y+euIQL~keC#1N$O;liea*cZ*o;0nz4I{HYs_&ev^6j!%eMaQb+Tb}JpRBhy zgpS<}+O$8O%Rvvs#oDae?HLK8fEfuABi?@?{>%C}EyXn=9c#k|Sh0Fkv5}QA2b9&- z@(JZ#pop)zo5@;@U{qv)MvU5;_M29FC*}vWLfhS-%{LE`4@lMAVtvn(v}0xBeePZa zwFlEW#u%-n%`f35++(fuMvufqaz-z&zUbHJnXy8OoxbUcPr+x5UMnSLztr!S>z}wwKdwX`KK62GfomRZA0G_8 zSQlFFUyDf+bN@5Ox6&KVZxIiXWa*XBnn=ai;w5xSgqZ!FnYfQ`qBEcqJ>RXk4?H0H z(mJSKb9c(@;pn4Y*O@?mH@aC7aoo(l{R(Nyof9U|jEB*BkX5ZKk+XR}_(eUG(x<}` z6UlH+;@L^k;wfz~(H^531;LBS5&IB-auxF5%1-r5OM@=G34Tm}0!8vy!~%Wh0w6X1 zdU4V$YWG^zs6nF+h{Bi)o)CXW--%V23#2`R`92tH<{g%dt`Ah(jFHa=jjWM~p?*iM z$^#oyF8e!?AO1r8pKC|EtvwjmZJ!BVWqYlCq_@}G=X!gi9X^nKHrtne>bSkv+W*Kg z_s+E6j{I^Ob8oGEE^?}=y?>_t*#DC4$bBQ%oUWfc(_ZN9wJ8VndOXz-`K9fR_F`{u zwr}=!oF0w*a_V#bO#7wYUTc5W+w1Myy}i+XHu6sUZ?<>z_E!7jY+pFjzSrAp?MCFI zQ~wK*bNBW}`$}(bwj2Lz_StHG_P=F&yS+L2bKz`zW#p;TI2T*{yKG-N(+(qNovvS6 zYk%0=8|}Njz16;-<6qit?}+@>{%6}C^y@qAEB*ST?fcn&>`c3u{C{k%J=@#s?Q+WE z@J#zmZ?Cm~_mjutUkRb7+^@!|fTa0)Yah)%Z;Ko~*Za2h_MIH(i8Jlhp;!~0Ppq}W z-d=BC?Cp&y=idC+)U^{aQFSs0UG~ZPauE*NF6JZtWNgNNk|pVX%(cwpMGKC5CG3nn zu=K}=(ZYw|z3@`@N`FhFqcVk8r-vSE?8$FL+O$vOt=@3-L*)PFS=eRyk@PZpZSZ5# ze=koxB7!l;N&3z3oD-ZPdP%>E|KW@}zKrZebT&tW_z<)C1 zlaSw{m*>Mbf#H!$;w>b>9HqC5?xh&ps*q#L3pDXP?LWo883zRP$J1!@`9~V{lITBu zl4qhV@b^i4KsPG0GdrWo1s9;5%0627!|`>{=|9sIj^ z8QiL|%NwsEbNE13DB4~OD=QT0`mr`8icV@Xj#so_i~VXwR8rU=a+^zR!SDb zi;FIm`B)--RwQmuKlh`JeJyN>a|l@FST9B<9}KVc!O7Ot8@OLoopz_bfAwA{uDgjg z#62Spkr3`;Usw%&jXCo**8S;~#+>0ai(a@IJQF=@oYV`brKSl_w6T+r z9CBud9eL(zSI3&)spT*09r8= zpJ7#XDm@1L)`pzJZ&W1b@V&R9N1_B!kG#Jd>yjh(!E>tp)bv=h_4f2Zh1*ZQ&ow_e z;a2X4N;(%jplRFKP;>qL|4Hq>!!Lz++)wTK-A&o;Gj!I;r^oiW=Vae=R74 zPvmXr0x_--PI6Y{%1I4SGCfmvk92F9OIp3tGFGuME5u5%SgZk=;RE129!6YN+A6X^ z`uNgC{Qug}p8JY}xcm8OE$F{dNIFu-Q@+rs*I>jk{#g0v{))+~5xLfWD@LL(@)9$_ z!-uCRbSAjG7XN?K@qg)8o;P`&G_CH}Q^$Z3EFOI#C(61#xquM{{F2&@T<=BE{|tI| zL)IBHD!Q}7iw=ls#f4S_k}vO`Bmf7*r|E&Yi`@+TapqUa!_j_9M(hluxpJ_gF1RH* zs&{AXF}{GIsg0|zNh=kBnklJM-|S;;2Q9;s7A4B2su|@u##xQ`*qLiZzBQkofz{B$ zde9KPIs9O@sI6_pf2Nx5S82rmxOTLACicm*z1F_i+w1KW59IZY_5o|C(SNi3R=>X0 zUSq8^uE!e-t?6zY?VV{)9M|-#Zh4tNN@3pVw z_5I!U`lMlhubs(0=i-YqaTe!QQD4m*KchaDydUy1!_iJ&nz)0_;alJ#ISqG=NEqa! z1+(`6C*k`%XGb@w5-3l627Ko#|JRQpCo7Mhc)+8g=Ts_~nZ8xGDj#<%C?d{gUYNVm z&`j=yPt16E7%k`@wQ6}k+Nuq6pIm)IZ;ZrJLx1@tUS=I>QSXQqL%X{8d|1-^kN5mb zs}ljrBSuG?tCE?KCHMN_Av5Rha?a&Gr!mjiFxH5mZ8=w}nZfN^#KS=`h{1iSr-K$M zC-X?bGeYjF=iJoN)C}l{daHltfu8!|m(zKwK0XqCcB7a6ZOmtk3%QGf4B?A%s8h0w zut-O`5>&7z{D3=YR$y`j{7s(fN%@Ulgm0};!Q=kYIx&f~Xa{gWUz}K=BwINFeg?j( zliqn}x&~LUy(_`ftV@o2zZrXx9h5)|C|5bxdLIuevPSjBNq&V#GCNK0%$k_@|DI;P z-KA+}!Y}9|zF4nZwg!$fx3Pk0&3=x4xJUVeCy_$VhYqry{3>Qe4fvY+Joo-^4EdNH z6oMsI?;ej=F-Cf|q*d7yQIZF&a#fm8Dyl=f7G0Z=B$zfU9+hFFBzUhx=?|kz%VCVD z#~H`F7Ata|qtnJ^_W>Ce^2*9@(@3q777Y7;xnS2>d9z9^Gg$jqu#`$m?@|#8@e%%#gGcWP*RpEJur|eWji*wOm zjeS+PA?PqZET#Jx|vFDUSY*Uz>O_x4WvQg1)n{xR>3^UvST>uWLQtB>zp+i0(g zeb8x~wXJrpx3}8|d;4trbZ_spAB%ll`#;(~lI=L>{4=pfJ6&I2Yai?F_4d8q4vZH2 zwf5O;uZ+D_+gt6;y}jK&-`i)~TOQ0lJMDwL{b>98zd61h=bT&Y8BgPEY_xax_GbG+ zZ*R4qj{RNxY`0JL_SyE=y}i?(iG5%DJlejQ?ajc6DT~du_UYb^GgV2$=0^LEV#ckb z-Q7Gl5beF(%a8WC_AT*dwBsGp;>2j5Z@0yd(Z0}rr?)S*kN5Va_SxRPoM#udj`mu6 z!vhok-8$Nj2;AFe+UI+Ft-U>I+h1>A&w2MZ+TZ4w`#bGjV$~Su(e|Zm$Fl%Gk^SRY z0R9(veCz1kM!efN+nenNz0X#ALcAP(wkOQ{_17da0Ohi~;;v)nGkzQG{bAwM#Edq0 z5-n_b2hG^+K3nX4!b?<#F-roALib zet0xznoT^!yc6u|7FEtd;?%kGFLvA$ub?l;Olqn1 zLZ^T0`7<)V5OH&?Msmj@ti;*IdO}8(J3)ckEU%+Hoe36&@?4*JGFN#Vtq#eKjUz4j1NQ^_*tXb=P~=3`x%;Y+iUTecVJ zu&$JQGjN&mT53sLbrZ>(l6eRnR0Q}3Zi8`c4F~}W?FhK5U~{@{+lZy54ahY40{P&Xp^e^X1AJ)i>$kbI>xYlj^&xe{RYW znG5d253u%07?J!GM2mDpq>C=0vMxA}r$AfHfW~pjKj0EoHLCU4kabgdk4!RS%WPXt zTd5gi#lggL{D}9LUx)YjE^Pc4AmDbM(wP8tetYtLdg z=o~XZY>`SMGEUs#+O)8&HmLzbIlUPYgbFN_kyB^Usj77|A~Irhxk^=(l}n}e?Y*8q z7olZbPW#U))98_~yE#Xp=BbzoZ>MMAO&shfiV>L?TGJBHM@Gi8qakX(^(zvd;`yCrH8{l;U5-RwKlwA zo-|}d%e_-qlrNZu)#)>NR~V5-zN00g_11mt50hUke`UE3sCQlzxhJp;7*qF}>sQ;GH@$w+y(hJu+hX6rZ2OQxWIx zhNbwd8{@+9C)=lE?76iV73iV<(OLxm4&shcYRor!HTvmKPP50fDgG-bq*__K>txQC z@>SE&R6GgZzs0{^yaGWix042_~6(^3vD(>99Qo?Lg|%w3SOrb zGb$cSZj9&lPRn>l-^dE!0-UriS{_?E>gk^HmE>FatMo;#=%t{+xb5l1^w4O5m2)t$ z_Jj8OE>3MjM63qN!IJRY>oTt=i_j-6UpXgo%Q}3nW&f zaoq@xCXQ#N7@ce2aO(lov3ynw`W}zJmScu^8wtS!ec$Lgi5pj@m4YdK!cI%!myxdX z@oV92eIv+&U999`QlU3->}n&o^xbG26d4OZlOk#G$$Z}8huUf$J>Ibh=`l0N1Kk%7 z!b7NJRm2tJHFC{}gnptS{F=Q}?r4Y@S@gtpb$jGLnGY+e8q&zIq8zEw?{vA29Ne8o zB|GFkc89qa&hhuC5vv%{apoMn9rF@LwMuAEgQ-9=E`Krd&FD9OlZUx8oHHWBWjwC$ zw0KA0m^F~0B9vc5lw8c9}WbXBq3m%ts@??YhhfIuviSCvyCH3~?6`@Is z7y+#-Pgv4~dU%;qhBB>_cVfYH-^IfU@Jo2SsrJpQZl=APw?uvYCwvZV^ZMFu`=a&m z&6}|`@!r^TiJEz|&rJI=w%6KgV?V`qeEp}lH`-6TN3eM_%I)vXcASd&TDD`>S6E}; zycxSk|2Es(t^Gx|<5e+#lkJ_>-jp;v8v6wgIxo*jexbM5+MC=9*gV=@&pn7}Z?up0 z>znPXy}i|5=N>`y*>3Ob?X&Igvb`5i`5*IvGc~uey}#Bz)!Xas3qD`Bc@)n&{@yVk zj?Txkj=jC!Uhi{*(PyJQ*V~)zi@hDs6ZZCY`*%Jo82!(-%e}qR{-54{wEa}hdohF* z|3el>@x0>i_4ayu^#gf*qh0Ln&GyH=z16d#8OZ=e@qxE+6a3 z(e?HA7rpIsgSTV9%G&7uWLsJ)UOwMUgJpmpz^OzIe45%SN=>gtRK-i{^D4U%aomaD z_{EXXf3NF<$xQOC1&iQ@6y1!gRp+}BcZ0KuK3vatqJVL*ANQuIXKTa6H*9!3*)u;E zBBC^Ilket8i%!9%plXa=a-!BI0tDODJ=i=W5ecA^buva(sxpQ$KfmbTiOFPfm79TF zi1hl6MW^c4@eIf+cb~}P63vZ%5ziqvt=K|MRwr_0+&AKilsNK&vx$nvIYwlJ|IS_J zjPrHoTVD7cf_yrx){-&9Oc#pA7$eRB5t2E;CpaqCr3@K+)>^6K%UL75%(&+IM~pp3 zCLkoA>qnA_t&k0?M4yR8ZHTZk6F}*;6 z{!RsY9R13%{b@6aD772+I>6&lRb$+Uu}cE>&0c00c|SW5p6tQGjfYw$(#NKVrHf7- zR){B1_q1o^zq|`|G49JRycS&-qF-_fFH$t2b6K?|8*yZ!?l@AO^R4%z5arb{w3O&c zH4Ey-cZwav*zWXk{_~y3^$8^LaEuR4{~_k*yGN`w-!y=7sf3ickr$_K? z(#Wm-7&HBv9M{|AzK1g9-y#m?;xDv#zV1ax;8xIy7V0bE*Qa7`_&Mqh(ttl8!>ToM zRq1BtD9u=$lpz7MRIkWr4_;_d^5r26f0X~R{h*_i6X=g-| zyRkyO3-ggi$jg!po`+HMwwJOn_(QDED+FN54jAJ~rO=MLcrEQK5umrCYO|d8Z zTfM7SPnJF4zjy?#<6eKC^NZQQVxj_(2x|i=v%JhEYs3S-sQJ(a`>G{g#ct%{kHxa3x7CRH|(t-cEROJ(6Nz;_aM}@?C z&AA6!`;N7Y?W0KlZ&A3P;~)RRbhYxc)%K?z>XC^YW5@OygMMQErJBIbzEpqKFz zjb4tw@fA>&W0TV$HR5KzsXT>hOo;hX#5{94SqYjsA4>^m=3XOdS7txOk6LTijF!1>&Xb;Pq)lX2dR&^wb5`h0 za*&M1>>K>Ns;Tm99NU^Ayx=`Ycq24=q#`}V@``v%Px-@n-jo_%xypRRF>}m)TGqin zoaYMEdi4a>k*C;6oAI?pV9yWFS@ktYiyYPs$nyJf|RjpXgj?;4OX^ zLDJ;+Pe*&vrM4d&zzeWGv_g74hnM&x-$IfS1u@WradNgNqm}W4N&&R1qw`hbZHZ;Z z3i=RTvIfet$$Xp5Z|*LF$_ekrZlk#R`UAAQ#xra`)7$Iqw|aYP`hG@W> zDy}|z6yM1>pY3?Q>!-!TXOA}5+n4kDR(vlc>4`ng4~e(W9tHOPSZ}YlKke;}_Se0= z*~7 zty}%C_>I04nnbG962!q-bHn1Y@$cXQ%gqQQ%8vauBQBEB3Dipd#1vZrRLB0ZfMuC__x>b<03Hl!upJ6 zi_XXMagR8Uw{l@OSkZV+bo5#CU9E~}-6hTnF+v?iUwmn4`k*kN@%d&M5b?~&~w7I zlEvP12Yjh|RMrgf-{=Im2l?Y$h=a(tjeHcodAbdHh_Yx6`)Bk0H~Kg>Js4rpHD-6>w~-26xg9-RTlJyt zH`f*Kg44W#l{HrHv~sM*cY`smHtjmmr_m;FPk$pN>psxCtT8388(rh_I~Z6bafa1B z6)km1F9Y6@H}qM?Q9di4dx7vfE48A6UkOQ*8*=ZW^Xx|SV@DE>ryk5H5HX`Yu4t8( zaXt7k5 z5~r%fJYNiK@``wd{M?O8x4}HG?(OyVNN;bn+wr`;eKy;3{rYzMTyLLk-|y|6_PTif z-2RWYXR{qx=#nw(Ifyzt^|gmwS7=y*}w#JKH`U zYhg`m>$~mWK9KDwP(GOL{d~Xv&f4~F`;2%j+I#I0@l~|<+mDHzcGh-w+jDW2i80q> z%-BjUThQX=x<=R=_+-tA&>{PV(+YfsCT>GqNr{elS z`%aFzwcGw)EVr{BG#uA6ch(=>ZF|S`1oUgaWeszOR|kAGuSf0ozvT5eZ+G>0?Qh$? z+CnVTT8;vLzO%R2+Y86MIto6&=9ni(@eYOc-rjD%a?GEj;PW5%_D=hSV_qGt#k&l$ z9XR&2$MhV$vBTHl!7(Ex9c);HVX@!F5p<2_f$Yd>0#_gwY%*?cBH z`iEW}ukmO-4g=;|ZXZlI^O1O;fz_q=M?L3}c%yduhKxkS+Yv?9Y3eyz#2*tYKq3|6 z<`K}CWwjAskd;;LG6Lb(-1~ZOL`X9-@y~n3-jl?|1k~!r=QGsCw@J7|b$Gp=>MI8fqSpUlyz;2{_;K&oCM|>y`yox*b zVlLi|MXhrjCFL>7P)=JtU}R6#y~X@y%b&K zD4vB;j_gh&OS2&4pL4_i^YKe!;+k7cF7$P8UKDP*(xr=rKr5(?y5@4^lQvO0G!@^| zGS!c3gKR)*iFcQ)()D!4+-_@4mCNM%^Q0UWB32@95{Zq+bHq%gZu~|6lXaiFmho6}6q%Sez;P^>8k4#L6Lb07A!ELK`nR=S^jTj8r|@X}4c3BU^lAP?=^}KxGAgyvY$+|rnZ1`&K#mT&WK61_ za5ZUh?}mB!O_WSUO{=ixNEJYe&|)(p-=UYN6;FmY$~>~N9{8l^u)5$X7u_I17$&fM)?S_xG*>=@6NnQ|g%X>>KnX*d2)1r0re)|Bt49oJ&Fo8PWP zrl0@Zhzj6ATwBCSGN((QsJ|ssL^2sA$?_OQUX#;l&1LaQt~3HYfnVTrvje0`1Y%|6 zoYb#b>+(A3hxIXE*?I9Oyjctt43A=(z$d$SMuJ`hNPsXpy+AQa9#+~q<5#+Xm9k%iq`qYPU3x5@ruf-{F!l6Z%dvqHgo5GGQ5SeT+_>tQToJzGQ&&2+xHyX zH2RC~F*g1PPsH7#5bpMGS0QEtXBcJ6KF}4tl=HwNti`|36u6atuWG@im{spb{aeoY zopJ8PcS`{go3ZD*E7qi1F{g-?fVp^!DB6Y1aE&pkZ&XI=eodWf(z2aNEQlB4KKR9m z=qvI~%tKW|PphwCo{?*O&jQUx%5WEcXn9IXDdd|s)0b1%Y3}3 zn}zxc(J`TO?j`XghjGC;C3Y3;^%SAb(4|lX>+sYV(-0#LJ7zb>I9wQq#;E9$|>#+||47zQ^ML$7j zJfkq)b?+VTNM9Q0iw$Jt(K~6!WAsC|#P-x(^r`er-i-V(+90Pz_o?<0O)-+3n@6)6 z^JdV+Y44IB(wbF(6!eT}aqftEkLNM%ZKg9)aw*nNKkf&6ir&+P#SZW^`OMo| z@a$xYW*Xz)XamT@UoJ;m#0xL!FJJT>{DriiitCjLBQ^Yl`w^lLxb2#s3Ld1Tr=+oX zWu`WzA975%cq^!24&L0tIm=hA1edJq~E!1Y9X@NGmwe!*HmWAi64sQzGw-Zj3d$7{&0X2C;3d7iWrNuU>K zAau}PKH-|!&vL3(Hg z&x>p6?)0U#Be!=){dw7MKqJ}+iX)<8+qqYDce-L+gnsCi<7r`XL;EDNwF-hRk5A=~ z7SDWoHSZOLfpGH;clx#QoF{%Dtm#~A!O`)sxk^>&;?jvBM~#<}Qz{cL+h)V;mF(|)eEA8o%Idl}R9SmQtT_F6k1 zdl_C|Z{Lr1%+kId=Skikb#K~7n_KOpy}jMu6nhHO^|M>;)yLx;?M$Nc`u=Wv;#i(X z@$CloXr})04qVQ7+um)jc_7<+?TOyrZ@=B!=h~Ng`=EWlx6ilD*cWh|3+>&#eQ`S9 z;`K}ItNr@r_KK+OPuCB2+kfosz4qna-fusiYdkpD)_eP)efXG%oIm+yZ?Cr>&vnJK z^skQnqiOu}o71}kZ0}BI!fo%huf~3X?fv$K*rTz1t{wLFL3^gR&$sVn`$FvL9Lwk^ zp0WR<v}Bs*4umSYrVbSo{9aVX|BWF_KDu!Yu`=&Ux_`e*sq!TT-j@1=G3?yy=h~n5 z_CfnWZ=Y{3#GaRZF0{}0_Qm$sIoFlL_KoDvm22%yu^%_}e_MQ8q_=}V$M$mcw*B@S z$9jJBwsX^d&0mFW=Xs7Xj{3FPjCB=Dd_F28i}439nZ7pT`Xcn*aj#8L1|*J$9^(|~ zrrspBT%FQ?ld*s?h-^mCms_bC@$2ZP6SY3J?Mjf=I!skBmNGkv#uY zV~lgZHG0n@_PyrYKV`gk#JpKKEJT{S6vRilecJuwX@*2~-mx3&%9G>ul_KKlcrFOk zqU^@CoqR8m&v&U(%gFnR#!(|YWs=W=i7Un@y)Oi(;rq*>tY$EC8goz9vr36sBH0Xx z?{eUbbMb$3C6F*HPDxkXF7#?`e>tZIvE&%$Ox&A@E+v)k$TUOIl4^IR>H=!qSl=IM z9rtlgUJVs#kOvkB9zz%BXQeVn7_q4+Qk2RaN=CHJIG(Ad=19)ZKe;aRC~x2$bD$;bGK4 z^YP3p;9bhJcAuEvud|8H>+N=nF1w`1HIa!t6)VhfMf!Mqc!X5+p;UyRz^nzHxa&H~ z3j6!vJnxOrEYCD1YM;v=ez11xF{4kq67(t^dQgqis?g<c{<4qTPsKjsUhT$zOBN#$+90dA9R;?oKc&Ai)DLytD;aZf(Ebda23x| z`$yYQUq{NAsj69cEF!bkhBWR@n(q6F^-<~Lu17C3nuAp3wyOPp-bktuKU3=$tGFlSe6Ta(-;YrE^tvLw=s6SaT%ig1$3mYkA_$!iP zCMaL_7Ujzqo#vD)u`}C9G_|vO?oXrRliYKHXPox+y^v$SvYU+CV;tn#TsAo`H1KT1 zTc^tN&1l!Cj|WYOHnb8bao1<;R~3+PPI#qPV{N0?DnC^_gT`_zyrUFTSBZpU?Xjd| zJ*Xsur1j{dPndsgQ=Ed;qW^eWq=;`V#3JhRw7s5~N+tg!O}D1#%zQ6Qmcae&uMNefxT+&5NMtF7eul>G0w>fK|1zHEz z^@vVHnlYQZ7JOH_dOK_p?(4tv=~nav6sjIpd?>_5w&FYM^n2QXv7Nl*y&;EXL{VOg z_;Wg%D9`IYkhIuJ@kvQi_Txgk6&Hl)mWoB7kqs#o-$vS6!9yqeAWAqZ?)WaDi=@| zUzlvH&ViSmErQ#8VJ;;&a_^rbyL{WvXf^kuqI77aKwtdB%I~DPPs+~cR+Le$A}D@u z8C#@(R5YCQc^O*Aqx0 z@o|Tmo+pjVIY4t2>g4080MV4^fZ>q7O^fgi07eBVGpAxCW1=TkYP`(7%2qPASkp2) zc_}OjN_hr2|GhZo6W23KqMg~0|z`Vu|uE>Ra;@?Q+X!uy}L~9O) zJ9vkxS(5%24x+nbAI5R)%=U@)a03j9%=nw!ETx41_H0W@r^X+j{}|7gAeE6biIKeO zUei<2CnaZ`B~n3${6{vA2Sr(LrUBi}sSdPQ08^2E9v z0U6|qX+!5{<8Ew{H-vgFnK$|>36KbDlH1!GSSw1b3J6v2-Pw-#LHaU)sGX^Ics8O@x;(?l+a*{LpDAsi& zM&q8;3oQoCk#`{HhRQfKOYj@eqoDmd+u=Z)$- z7;}mgo{9f5e)>9}De*lCV0J5hyrl)r#x9`2Ua5IX9Zm8~3v*tXdNL3EDvx$2)<<+O zCde<=nBEZVm;1DJVlV9x`)Ah_D(IzVF<)vXycdm^l#)Z^iJRqjs4B(EKe3|N1Lv{B z={(It55%*z?z^uaor!N#_xASmEdu%;?XI;~xbGhA_4YzKrI zjp_N+S2Pz3HI}QyCdeD(4+Ut`>!AOtK6reo4yUYpN^5h2kJk38lRKQ zvD}fx$1sNe107-|;%Ds1si)@8&y&b4yR}RP-}PqO0`& zc`h=2w)`yrudf~DAr>@GR?hCNLMy9Qg7=a$xsGpgx0iP;x-@UZ`t+}!e9yNgpaC^Q z^}igm7CMw-G$h{=pa&J%;gQ}KJA_6_R-JOY74o&RecF?*=suL;;YIbM1>EZip=GOi zXhIgA8y(-OMbtAA>bsF0lGc~f!v9-O$QA1i7kwR9CcmqNjP(%Wm)Tua_Kcp&{A$c) z455C{TjKi>&S;O#X^-c2^w7UO8+eE(!HDSW zBqMj|(kB(>ktbF?%O3FPcpr392`$(1@_dJw-_s#_-@^WKDrHtxzRX?T7^@etOOLji zdXIm=k4o_()^ZqB!5j7lkb_#IUmoAk3Dw4oIR&R_4ZW$-g5cqh`wHgR=^^fA;iHz_ zh!K{*+@TGfR<*2^%yoI$qvjh&j6HZ|D`+FldJg3*!ZubI`)Dt^{is#ONYEpek2aiS zi{6C=V}y+UI)vLi;iCU|hf0ek0p^ZTd#kG|t{``^`=Y1o2k{N9ynep5*Lt>d%@#3M~}7kiEJOX_K^5-o^AyGr#TbX)Ube=fFn$;(tF2OToW=kF*ZM&gy_zpb_SdhF*tC1et)yLf+yidhU z?#p~ctv#(q!LLSKDrc@Hy?Ie}+S}k*x6y=*pE~f|N3+J{Vj)yLWjV+13m$OxUp>oEJ3iN;?I%E#4m2j1r9 z)DKzv)NQWJC;qv=GJuSf;I47^+6YNjfDWq3(we9`D|O&>W_3pj8oeVcAVe!MX~rxu z9ueCLm-0;gK8z9MQp(3wiHe?&yNJn9MEpK^y^BdY#6!-%)w`hKC+mmPJVjX96Jt`z zKvv>VDmfpB-kh2${2~t$yAfTGNq&RsV5*N1AGpqJxvGO`gB*PQP0mEV4uDwi_WdXiM~-L@*SPYGb(V(%#&+y_Nm|j@*BtD@6~lBjX45Z zMLvcn2I-P5jc2q|6VZ$sUER{ZAv3?YJ8CFiMM=&nhX>qUYoLban*)#|yh1)u!FuyN z;-YitT>Mfppdar{feXH)VA%)cij580u+L6v5#(!H(`lMFuKaK|`)PBPwTZ%@v1~w^ z>4V%D-ALxzpNzk(vk-;p%WCxtoOL=)x6jvR*i8pJr~(D7-Q-j!-Ce|e`IZazC2H%dE@i)Y|RZFaX zqfbbyQ3|K6HFdghgS!gw_s(pstMiW9%&rhYp|-dJ1Yo=_NoAW9EA> zS=Q6RN$fPWj7QZ#`8c@Hp+Ki zkw}h?JwQ7k3QuE_r`FfJ-IGvH(FiP7`zz}~!!yIC0x06d(w$|>;WmT#sfNGvKx-c` zN7_6()7r$~lC&@o-#JJY_{+ws0m^QcX}QT#e{%V@_qy}jA~vbVR|dGpNZ zv)%rr-+Q+0CCz&~?Jee<(dW_jo7q3U@x%9%CmLc;;U{zL=gzcmCe87z>0A1BzpwLq zF_yM=y7$aTfp&OiS3fBBg4`&zUf5W=i~$Wp4zNdq8rpTKN#NsgU32c z-j*?H*^wM< z7yO2N^hd-_xR8FBQ#;G^kG_^YUV3ANg&AuGvL)gi9Yd}8S!zRWYDL|31K zTui#c+}w-5OK*HqZ?za}o5ulUUQ*hRF{l=db%?wZ4q7=7XCtYT{P-9-^#G1Ye`?v- z%6KM~If;P8GDhb6uGn#Ey-%z_xEHv$!xJP!bhGceDx{DruJoe0upPq3U_2%ZFF|0tnsQXhVvVNgnfdR2uw6ZXh z64Tn%*N2bCo9kI3g`J>lFGj(Cmh|=}O@`ZvWoR=mmb~l}kp|l99=e`+W2eYpX{+84xLG!>*+v#&mK!L{U=^kr2EFnLl_Z8`aN^ziR494Oywx+Uhq|l@B`+Y z{1*=n?X1Kz8d*EAHUSRe>?-~Y`-Y!Z1&VL!`9a6Z1oTnf0PejfXvW%E84|)9uu}tl zYO7o#vfzvH>cq43iHti|TJrjctmZz8`_l%PgS-gK#Cy9(^iohcuiJn`_2Bh%FgA!a z-HhJLZ?7_Q@~IU)8S75Oqz3!kR%&ma<*BFDwWm29*C(FL^OMv3x#%FDcSOUNV-I_D z_VNp5X<4IZx|epAq?dg?-V~Hc^n<5b0lJqufqw*Z-wmX}KD2KLD;?BwInB@AcriwT zPIvi0K>!L_HbFXPs3qhBwQz+tqtayKmcbP2U5Z+VQ>1 zcZ$KcjxMaV&-M0tdy6d47+h)8cXKKg0cYY?X$NPnD#Cv|czR^C~ z+nenldwZ)r`(XCjZr|$dv+bSnE*kIMX`k)wN86i{&Un|*hjL!tf#2I9yV$q-^M9QY zaKt}GLlK1W!tWcJ#iV}YIqET3%_^wX{HTVNF9Zp%lXWBa;yLu$9W3Tlbh4l!}avCG5f>4zOu@-T~l_$=i zX7*zIKEfiFcbd=S}NN(IiH{{G+9 z@zT>JI!T-<{sX^4r_T#9H(%s2^CL@}M}*}#Tiae^$-~` z(L&^iJz85e#uY`#$*61ADPK!7#&t7a=~d=e=y+E2xX);r);LByW`z#MgihqFHn>Nr zw}nf27F_<#xw7bb_Rn1}c1f%PAL;4R9-uSpbv2(7m*V<;xt@n4uEx65oV%ez@IQCO zQse4=s|50emCAcPg?ezhG)o#M)8^b*J*$}4`qEP%m8ZgvSr__+eSQXPwK%e-&MPIp|R*%DKi2ts`Y8!kTWdwEf zN*VZN7q6a=I_0JK6<+xCAYR=X*~sCvXV$1B7eUYUXj|7F-)9ZF@LkfiLRLVm%xHin zWjwtWxoV@!~vYoa_32ZIN$rNzODdn>+7J;T@Co51;Ul_O^&M`=p^l!%Q$uA zN{l5^Vtl2XyHLyx%F7xmqY}qb>&EytN~$V1O2>Ut<%S?2H+tmCNw5#&6}9YqgEU;_skzfK05jr~G>f{!_#EAS z@K?XBR9tzEe>Hy9irLY5_Sibj0FWd6MardB73H9s=#fZ&ob@!i8EgJD6;h#Mm{y}k zRR*H}NUN)pPI~g?%BCm|6o4e49ciS$5aqK1v<4aI_vn@Q4bEJPUs$ua<~^aCpbD}b zI0A?5L4<;G=O_=)Jn84gTwvAnK(CloBx}4b%l*}u^PMr8sK$7sSH-Us#zottH_zM? z#jXc+@S(I#k2vNpqLa+;uxkDBm?de+dOLSlc;0Dh;#4p|ERleQ#bzeY{%J<_gkmk=KJs8?d`Sp z5$mpTeZBp+>>p=F-fSIs`zWf?$MxauqnPO*^Ll)x{)rrCr?szHU)?_PGnmp4XG|Un z+9rD9jLEaTz207tbM0=lU$RcS&2yzc=Furd+8lp>yL~p-9_K{9)Z2a|ekba}S-E^)AOI0rqDOh}?}aasR(eFR z2OdxB$|x_6sxz5rP+CEbhQ?rP+==CLW4%>I&ucu*IiPFNxt+6&PdeAHwx?3^NPOaq z_56B_U1*WW{o*vrqW9p82=x%g_TQigXti20*Cafjn3wD9g=B>T|B+Rd8Xc?j7y66# z>etn|-_br1qiS8NGnbcFqDWml2=!w<9sF-BANg9?W_&s_y^S7FDQQt;56Dg2g6^5w zAuZ(sjnKk>saL^+dY)(WxFXf6C%xece&+k9 zYkp^8jYJD5)#s$IKAApd3cM5ONKE#^1FijZ{GV%Q;=AnM5GS4G+wi~X-u79(@BXvy zVMlwf?fJ~)*=uLcwy*T|PK&MEX`G`o>+P$(z0saM9{=dfX8XeNIK1EEcg1ICkK#Kn z4~lQ1eYX8lZ|}5E^!B6eo7oPG_#rXVS-#Q!2gfvn5qUQTYdKomXn)uHY_@H2Rb1a{ zf7sjG?fbobw*6DTx1Z@fdldWAd|Q1QGxn!nO#0W?+s}wK&mP4$?2j>MwD;P#`}KX; z?7i{L^^Z*V9-Y5*HFzI;+m~Y>-bm{A*UvN#Qz$=BwK_eo3E>UUv6K8QI*#?>gVOBm|Sify_L^g@P%M%?&AN-mpLsgZJxa@GYsB85n-Rwv zQQVK^uH?4=UB&>(6-MXWD7u_$)B_vgvbrM;tjDKfjVJKKyhUzMsr^rJMO`O4yYf8u zn{)VI@Hr7fYk`u71E1fG{}KmzLJ}RPN4~pc5r0#~w1N$XONLd6QR_foqt@Syn1DaW z>qF0c9R0&1@$1!z+pafplAMw1#pF#G0gh)}NUKx>kgxVwx(iRN0@Mgqot(!--=Jvk zIi2H*4p;bv4-xxfpUh3Pl*^)FvqtB=|9%j0(DU2i4rIZBrxbB5fjHH+0(cnHGs zd0eyqUyHxUQn6n3*Jskna`~=i%8C0@0?e3nIumqQKc%KWJ|&M2qrYAR4dh8kuAmvE z+nxf$m*b_CG`)PMvwXw*<8AWp>gC;{aQIddV$amSs2ic(V0q4r_;+T6(ufWaL*WO$ zg}eqSf`NIa=v-Vk2WDTdv^Zy|N-V2@w}nl7e|bvG2#^_%+{ZV2h7Nm#qlI0HXH-+6 z5FZAG$Ve>o&SUS9vFLQ(TS>uhes+=p`INE$J4`Q(JfAuXhDEusgL3n(k*M zw__Y-OJr^OpDbI*Xw|U*? zBL{h9BxI4d>cN!{iEjnz24qzXUu1!|5p2(2eZ$1 zd&KWd#`Ux9cY1p#zoi-1A8j|x@pd>H{tvyq)*dmJi|gxo<~rIN?W=Jvc%pf4v;FM9 z%Jx?KQg3g!f9UPA?N#P)aqmuhQ*S@o{;aom^Bi~d*=sMvd1A-kZ|}-=MVj{ay}jNZ zN;>y9+Hb@;=&AqyX8TIsyB|4Z(ivylKW=`wa};&@ul9C~V?G(zH`-q0deb=PTl?MK zUTfdVcAO=DRh*}u`drvWJ4Y8c+LwEK zv%SjPb?4}EYtQ!fTKi&e$Ju%F`RKFJuJ`t4et&g`cNcvmuRnIC{atUbwT~yAakl-R zdV8(?Ug}JoZ9o2I?9Ne~ZU21g%u#$}Hu-tvbFdG-I{i`Rg&8MC&sJ3?qD-EYAQr!C ziu9tjdHoGv3Th>ajd@yG6rMvXGj}^5o~g34(d*RS3RqSP1%Ki}tKLgx7HXuEW|W|sHD(>@XV~3IglBcle1hsh@)54UHSs_6_>OPl zE`O1;QEd{vkm>s5DiQ3oQ;oZESHAm%xF-rvp z)A=8x8_@>tePwn>u2v0LJ;$A~LiCWkE19>I zUWnA7mN$XGQz=6mYVI5H*PP<}&0qH#d21eH-o0kq4edlaX;~*(30ei`h%e$wbxJ;p z4X_wAg}KM`L6y;u6$3d52S9q%O7F&fi>~wMVjiEGVoWi>X}WFhil#|PjiOeA1wm-M z^^sZ1PcSay-;Cepb!SnQ`yWK$%mk1GZy@r%8Yyj!J65aa`^Wv4YxA6qO1wD7xcCO_ zkz7E&rVsMu9j9wn=K&FEudCP!8JFLYqkL1%CpM|t(1WaNL@dsYM(0^Uyaqkhb*g3P zb4p*YCarq3It5c&nx_)+Irx;-Y;N@HJmm+KaCX#@)L5uNAMvvA1doe6(b+}UsIm8` ziK~0goIwEt%U}EkGjK&+MxQ*@R{AeTmhYR-Z&iU&up;yg-IKR|)6=skXf1qAE25YD zl@2ppv@-AIoRQYSxaun$xD&jXbHP}`=weGoOwK^y{xau<2K7;dOmsB@nC-)@q<6Gld?a}f|74`tixVhU+lA=A=-2X;gAyd}JQcrF z6UJKLR_@rQE-)X@i4jwvti~77KN-J!&JFFxr?}e%b=>1RkPmj6=P}H&tj)d{GiUTo z+E3zE#boH5$7KBDJc1f|z%%$M*NfD0edN2I{A7htAdE<^y{`F0y8~wUv(h8JJB5-FIoI^Vl*fuTvBB6n8kCSto|Y2&|k4p48fsQrq?$w=gp#s=%i-^+@1?iny`Ho)mjKfe zQ&N5z#qWgn5DUFitnF&<#NFg*dP{6p$xESoEJif(BzJNC(G$=2I|Fwx`DW0W*cxO6 zKdc6m-Mf>Q@9s=oU|#J!aeD6FnwhyOcNJ4Y$$=3cBxXei@D%iM2ZQ|}D?#LsBc853 z8#u@O>F@EL$r%w*jw|i+9YM!ry->?4(G;WcxXa?RS7R2G`CB63(Zi)Tf|d~h@;4sS zx=ixKDi0_wvlB4QDh>DAS(xk6vJT-lTf4FwFVc(u-Focc=RY3x+GnHI%C)`q)*gv^ zFYTkX>1dPf-QD(@j&-Ay?wrYxwkL0FXUWt=ACySPW?kff7#pX?Z=`%?DdWIhTh(6 z@96EV_VM1{Za+wx_s_OZM-AC~ciVS+d$0X<_K({8??+93>Jzp1*FKo--S$Mb4|dxZ zvVDHHeZRN&+D`J}!tV5*l4+a^F@DPN;%@uIhi1+4kv`7B6p^Kee_JWcZ1wqA*Lbc^ zBm#YEvYf7ZNmec8P+||Lblrd@eNdnqgC%wC?3;nW|4NCuijMMVHt0;4k)}W|K);87jNaxmMRyIyK5W zz0$qxW~AVDSWBWyvm1Ao8j8t`{99vDkaXi2E72lA^TC47rvvD;!USm@W=b1a~ ze*BUGS)$p3RGB3uZSn`J(6?DJ&OL$5^okGAgI$?>W)_1tHM?1KU4b6GedXKrL=U>7 zUrP;;EThab(oSl4Itqi4>`N~AMaOMa7gz5JEW zWzP6Ul4TnyiQVYBm{Bt|(dQ~&o<34jvnRHxw$$p(y?A5g>Cy*>q0Pp%jPl+Ar|=Y5 z%uDfKD;0}L%F2K{l^PaAf2Afe8hy1WP)!+6_K*1=akDBVT9XlNltj({cuRH!Lex^EW1;(aCRLDncQL?zVO(u2qb{He*@^=)W zzG#vs);{&>RA8_{B$527{%|KVb1OpnVC~FU&+|`dv!%B;C$19J@EiDm=YwmYD%ZJ) zt78V?xpXywc&{cZRpg><7Tt3oQ=$~ub*#yP+L*8K+Z;J3&K7Ogcoos-ltR7F2^-7P ze~1pHk~iySZ7ltRl_%D}d@j}fYLh;544f2SsVE#^K^aT9>P3)r-L%@hz)S9uz@dUEb_^{0&YwuAPKS zL8ZhpQ7y;-N<1NimsY0Y$f|4H3kTKg=llIy4_~)M&UMQ9WQtDLpo|ZtL0E=zd?;cy z@p>6!m7I&RtFc02*(XAhoZBcgcQQqIFyeY)&Wigb&)VC>qkF-%ov_x1&zk+xzWz9>_lD+F$kdLHm&P=D7EK`$TVFXy5Pc zi_?3t9sg4MaqHRZM^SHny>;bi$BDt--fLg#?fv$R>>uB||0CnEOD z=B*JK4W~am#TR?;e9p=;-~~O=SYnr1g@{0Y$)S{YX8O*Ov0*OR-Dw?9P9yU?Sndd$ zJ>)&CLS8Db()oLhePvi(R-%|GD>B6;Ba&L0)Q{S_s-492Yrz96RAUtEaix1lFmX z5qnDOX;|75Rz&~1F`{&`{*24y6e3M*8e2rW@Cagb=U3wveHDkXx{S4_&FoxRDa*>2 z6(iQB#qxd`ycw2?_lDD0wb61B*OOAeRi9tPTXb431*OPEj&Z(;lRSEBedf9N>-iWz zeK&LIrNBygLb7BlN9Phr&ZS4!I~o_b6MU>EWA3r;$r=vhH~Fjfpcz)u(#D+=--p-N zQcu^8TD^3*n$iz_pOVBcGoPpVYs`DC^8Q>OQ8~CDEicSA>gUKu<#D?0p>+=jC&~KZ zLF!oA-)KqKqE~tpczkQR6Iu8cvX|o5RUdwGUSW(P^7GUs5!x)6E6R;gQ)a9;Ge0>! zzC%<^fjVu^=RDId!x>^57#Ql%SFDq(?58Y8eb%!GT@Q>FZ@yc>g&RE6$Af?T&NF=< z?(Ow<`GLH?(LUYVo2`leqW@O=mEPWNuk>s~T#sk^dV8n+b#Fh~*2R3$XSaQ^xA)pP z@n2luZy)XLbM2MlzYWead_3E6X5ba#zm20fGw>U|z25e+9nX>Ro|Hd{zvXD*Kr=e( zD<|)ho44hCH-fk5k6HZqg*$YnFpipsmEcQ|ytxm%HArU>oRtzzs3d~-gbx;$x`>w{ z5A-f^6_T#3k-inl_|0m+_)xT<-$eS1Q&BsgEaNVtH&hav@Y+cOamZQpOXORNPQO_! zdadq_^*K>xdL{S8m`5tcs0-(y8|@`>q^8OvIqQm~f!`|+gZ|yP7th2FGtbOpW3GYw z#50Rd_2I;a+<{~?vOeEgoY;rE66vu%-jcs>oIrJZg3#jYa1+v0Id5^n@nSK;gWy z8}?J7k1>76jDB-&A(i1DOe>>Ly+Ic(OUg59orK-zR!ps%JK>W!#J9&+ZnDZ<`n%%O zPBwsLs0XK3fc=dp;2)%vF+YW*IrxS38`;G+Su<7_7Muf=2D)BpG#%<`uA%l2BFK+5)d`&w^rwBLFl zugCY#dV8z=V{gZMa^sAhMDm+K;x^ieI9=+n(#~z4m9>-fQg{u}pl& z`Aqv{Z^yaI-d=D2qqpPvcri}&-)x`C_I?nb>kW+a6XKoC3FGwkdi!2)Z?r%43}f`U z+P=}-*BZ~jPwU#h-Y)m{veH`qrExX2XVHv zx8wVHp1a)SdwZYB>+y}fZ};|Ed$Z>~H;>N8yNr8#qkX5hH{07i`x$-W+j!ZIZ|uFw zGn<=yWAE*~z1}|5+Z*j;y}j9fG5HYhMfhgFzTFNzUm4?^o!+A`@#n%$`(D5PXnW3c zn$c&s{b6tKwZF~w#n!(5;4yFGTYYcv9O&lJ#r5{#-ri`R$@Zl)?Wa5&yLl9K&cohb zZ=dY#;6rb3wx3M;qt1ENGqZ8;cKf5=KHI*L?ZCNjPyWZZ0RO1BeHX%aLZ7s`5&z;R zm;c89m_co}T_^3y7jixgBf5e@yoKZDPsfp+jyp>?!nYs9v#cYJlm=8L zLdop7Vl#5_dl6*J#E|C$RUjdsem9PS6U6#(j4v31GF|ba%fx&Kj>|_@K_)K$xXv8p z$4b4{_I%9C*L>xzQGGR&u9;pAh9ve|wLqVoaXx>Ir;dULjQy!koX{oGv1+3A>Kf!h z>d+{WI?s@M!)TcD&9UGQTxVSC1K5)D6m_?whsYW{aIdp$r|%1A+!eD~J9|Fnvf`dd z!PUSAaw_y(O*9u(E}%51o@bn@6|r zcaP_Qvd%|_WF%h1o%f>7sGPBDmA>7Ov)`4?nii|ame5%Ab;}%C0aD*Huu(P-oIaC)~xK+qR(}b0)ExkKYe;wTD8NncdZjoO8n7hXg)Ep!T%oRx*^d@Ld<4H#waXfk^``vt1wJ%uN6HvG98ah-Y?K75hMN5bi*?)bNZ5 z8pj&M3?K`hJ*^!fM$O%1JY}7_8FlS`Qg_wZzaBk306c+;^4;$}Ri5MSL!l6BFfY#s zj*)&G4P1s6foHIxWgW^`IR2up%15+S{w=TLemZ)1EEj4ya@nX<<5>AgypG)6*XC^v z8Et)wWLe5+5fwvtm&5yxt41}Ru~lD-w**zljkN9>A<!BIp9)|Gms zAEjQM^>==)d3eSe?V?(&Cc=e0O;feOl-r!1QL>DWC1P(xF)E0(#X|6JZhyNmBPR&? z=fd>Q#dxBB{AbkqbCb2qD{;0w9&JT4q@;9SXd8F$xI?)wQIg|eupNIzUhJ29b9H+c3M#BSWS^6)u1D{WPgyQkr z7oOTfGemD$f#<8%M2tn}O`ft6JJ*v=#4IH3y4|Jc--!dQ7mOpN-?%bi7k98YLwt9l zPMl)ISj4#LkBro0M#gxe0qfV!%dgy=yumYZXFkP;oVQHUF#aOFeV?I(MW1^vFE6Vb-XFYL&^zjt%*2rJp;3Pykj&Si< zrbw2Ufkhf2Q>W4|m@}kDOx%xkmp)vJQ4$xbPxHUWNK!isYI8;Cd~S*rMy)yi;k-+| z>6z7?>?`&s49hz~zzG%6Gb%dMqT3lLD@XR8ycc=d`}BK}H$1Cdj*+vwArnU6SphTc z@zvEnDsM!y)c@Dxw&oh8b`Z}A(_LbFqz#9rek zt8$M?PQdj-Rd^1far!v%eBy@kt~X)^B#0f#;mos=zw>OKD23e7LNXRK+UkTEMnzEZ zN4_PE`>;aMHyRmr?f9~xdno4~Xzd$OW50OC4V2%Dy86W{(-GnJlTjPLcx8jG?E_PL zb87!-*8lgm+Y?#C-|O$j*kT{#=b|U`@NSIv_x67K*_hAk{oNSR=b(M7Uq9d8@7_vW zztH}vw=cF&x}Or)FHP@zcAU%Y1MZu|^~c(md;75c_ujtJUUUy7`dppf_dMMj=a6~F zv+a0Cb#HI9*SN+l_Fw*+dj!$mY9DsJTkN^~zIzkVwwC_eu}`3k#@e~N_NUd(Q!l{# z4|Obid6I5L8Bq$g=JDMK%ZSp5hW_elh^HB4$hY-gAS|^XJw;bC5)$K1YLmr@EEyNQ z(;Dx@IJr;FHLM=J9J5U#I@n@-_IAEz^H9bY7h+x36AM{zEu)RK1H8~YPi3{41K}ge z(wsp%#w#%sbn@TKWa=%fco?r{Y_ccov(}JOc3f;7-a493wTTVHa9L%BKBKD{X<{iO z6BrlTSf%s*THs(uNDm~}v36|TOndZ(=i*LQh6a>>cxmDtvl|Vwl590hALq#23EDyv zZ%!?$LY%x+9#T)F$BTk<@jpc2k&4_WBEx_)@Wt_64fo`^1H3<6)vtO!Ex)`AB6{EP zozCnib;d_2r(Zk>>DQAltoNy7y~T^eHQzL`2yc{D3MFzp_s3KJ$9N1c+3%pQ*8bUH#QEUC$I~ELnnPW3?INCt{o6L+aZlN2jYImX-dmu}d-lQj~FSPc; zWbMWoMyPjNfe|_XkFHvI0ejEKdpsy8ofy5^qH}TN)Hp8`&gH>6xMsXEE}|c)DVgDk z3ACuxoKa6$hiAPq3Kum8p*4(Cb>zABiAcyPQ|GXmxlScF4}%~2iadE0$4SB`(thVU-S_a>gyFMyF>&IyzBWJY)HH3xbASi8}zThmo{Z(Ip{q_ybsyA(Rc zm0Cfbmnp>Sx3+5apd%0u<1C*(9=|p;pDFoy8pY6H#l=Wfd>Nx>t_!)Mo6Lch6C3$^ zj7U&;Gse`)ADZgn?~S*;bFy>f!MVvw@R~@8-|j^t@iS}VQVJJNs?gkP?)uWxeAVOo zg`{QCW%btB!99q%E=0|U-Q3;biP`=+qhdw49Z4Esm( z&=+zS{*h;L87u*BQq%F!+)aGqi-7!=o*EvF{FJX?aQ40Nr#Xt=ZjA8m3MO7(-ixt6 zV~8`VivCi}2{p{6r^_#|ftxcf*`w+fxz4l$?#`Hww@f-0T?*OL2#(*^hcfG!F%VDl zteckd!|55?>w7}c>Kt9n2Ct3R$mk#>1E0`y>#EC|b5eCv+r7WOLkHS2&sJC~bDxVD z$EP34+blZAewcNiG>_an2;HbiYDm7j4nYck94mw6Su~s`1>*vjp2Cr@1jDbiB{-`U93Mf+T9AM5Qn z6E@{VT;FJ~pK`WnAGG%2ydLMkZujdO?f0{NzO~m*Ia~C<(57$nOmkgWZ*R|gFU0!^ zd!N1bncm)SADD8yxHryV{c*N0wdvbE(>Sr%k4`yW^m(kc@AUS1`^c2Kgjl#$erWafzJd@BFXYCViTlBly~6@LkBaPO0YJWsYR#S9P)x zEt_F^N(x)V+IdH-K38vm9)Sfwzj!Y0!8=tYs`k%}`TF+sFZg)Iu*Qh55sO&!{k8ZD z+avqJwlaId*8D1tdYqYyxdPEyzOdWq*T3MxBJ@rEEw6gq1KJNQp8|#;o~% za%QSog-`tDjCtmQ@rZIDS;pbtyw9!bP3mdt#wh1o(aVU+dVSk05)yy7pS9>(aU`s z{i5w?Z-+4>5|77yh-S!m&^~^d%MVnkCCdS&jULpRUCnOXn{OCTj-uE3CJ$y? zbl%q5-HAR)+Z=b9kE3mx>HgZpQ}GG^R{k~D^`HR`q&|(BsPxs)`kg3@ty$~AcG(+1 z`ryqPnHp*$@vaYOf@H3N_KvUHh zwOMbH9v>O9BdqUq1yp56DH0p7EU3FUiNcIE ziO=-}NGEv;pRvKY#q36p)p<|iz{n|h%-G}ZNoB-H8attf_6}{Voh!%)1mF(j|I6O{ zfNq|Zb^m9iLPVAx6A6jfJE9G7Wxs!CMx>|v`)_8}@9c~-vy+85?XK?Fw(Tyu^=QZ< z5g`!~AtEC3Afk>$gh=$5h=@o?M2JNAM1({{NQi_;Nc^tXdEM7J=X2lpcV^ZT1w-sa#&rc|F?4kuN+PntNEUWuzEwY3f~=y}Y4} zF~(s~%6yP7c1UD_ax&eVC;DUj;}>ma)n1R{NvoOTYLIb<9{le4Y?$qx*3K(_tqUAr zScQN8-k4pDjNwF5SGb6~Hw9SMQn6%OAA%Uis_R-Y<{Wb%N+; zeo$T({d)gl`9NzQm9Mw(=*Io2-oEpx2- z;m}`o65T{AL08@4)z)>sUtem(7JK8-^XRb}?^ z_~n6Bv~W3k#9GF4YNsAq@5Q>m@xt2vlnQolS!))1Xn#Fkbgw;TC)(uWb@$Hli5%Fx zUYRHk{j3>e6rMKF#!Y?NVd{x}NA0x9i zHAVt_SMEMXLd-kksJ^~e{h($7>e3Gi(-|>Pk zW*Al%$%;E-?Q7p7zN9zq>A6Kld{<3UgA%b!HK^CT*5y~7I^@~WPiouS%Ad!`@L4pP zahq(YKRbGmF^5h|C-(&rz%RbAjz+ofRQp4Fo|ufUWL%FzrfSHluR$+Uq99gKXtiQr_b*z{x3LPB60b?tilt6$Ihs*$~~_&CFH-zu>?zZ*A;IGME) zu1+)Q%-G?v|Hnh1r{i= zu6PLO#b2cDv1^p9Pd@dTiN&;K>(beOz5`)==-OrtUS5u9o6$x@me~zbCm!LW@Crz4 zS?k@kmFsKcj(F;r`8?c!e&SxD$&4|q?A}`Ro2L-=T567rw{z@~gAWI7aCp3*^&|XS z*GfF0|gsk?Uk*grJT8 zLrX!vv!?g+%6oX$qs92-^jO8%vG>%BR;Z2&&CLymVutT z_JW2j+Xb3Kq(!^QLr$W-$2iUsF=s|!T{~Z{*XR?NJNmv{@6i_;{rdhhwdl^-bJwA?z-wv}Jq=rc*LHr5noP5;1#@K7|D2tbY)m&wUR3d|7SuhRuaR9+F^{L8jvlprD>(hlIeK@t)x zKFwzOt|;&ZJd=*pNajngjEcozS*#!+A844h**v&-nmFW{Xc>#)VAtg7{NbOcVfQ=q zUYF{Kxn?kql&e3+ZR%fX$Ml8-kW->}Jc#tW@{tuJqCtOWeC+?Q>Rr#$I%S}U9%=Qa zaw+3Gb*8i8l}45%)WKuH={<^^7dNUuLUP8osA)aLu~VZ$&L)@4{#vb|f%Z$=%XUXO#+KA7#ZrF>%1-guytFJ?Q&dQsFa zxPK$YqSjH{G1gBvK`~TCh8yDv&p!N z>zgswH?tjMy=FoGX5~orzi}4HM!6nCz^5B~n^^~|=a2l*sm1mEt@484Nxf%(yZmlm zk8?x*w6!Ku&Jfuyf7sePi|^URSO>dVi;MQ@@*CEX;vA5TtSQC$8XM(L z^7`eCva8?UzHx1%Jl@)|$G5e&%C}p4yT*WjY;~bgi||g<94Tv|=%g#K;7u!|`+*U}GJ?4{>!`<1`!aDpbXLOl6cL(3@9_rmt4r&R#G5ceC|k?`nOGbW~Ao5seE zR!YEyaG4#@_F_yV=J#D{aFK|0Gp;@rv86}DF{|2->-ipwzL9!Aay3sd!$+Is&te%jlRHO!9M+*zS5^XFVUyH|} z&ISju2T(=&jrDIA(!)WsrOd~)4z4o_S@V-2J2~gLx%bU69;tV@V?BR=IB0@%;5~E% zG)nDV9-^1OTE~R~=8d&E$E+VS1HB3NT#ma(gvEUGxzW#YuVaI*9*aKU0y<$H!wCep z7T3@Os{vgL=y(0|iTanH&wWg*cyp{|@`g6Hs5Z$D{+h*j%P96*y>s~#mVWYMU*m<3 z_!e~UpxQ0FnD9>OANI)=Y!4o!J&C-HlxjL{T5n#&4rhzM9kU@g)B9l@Mo>zRL~He2 zh8_h{f8g+8)lWRF2*BEl{otqYSyW_=yB#M(4>`AcuoJ5v#S^XzVQJK;Sq;$!(*}|c z>vfEG;kt#81t#WJU%P&2b>;LORC&UJGGfXob1&y8g3@ z(tTI%B0>hKGjP|_Ka{%|jys&+@=PvN?O>KzIdu1(mcL&0ReX|`yB_69ue`;#Ew3G| zR+LLb(Ohjj$xFZutp=ZlwZg~r#$!C9%1S*yz0Y%T_j7SCV=QaO$Sv*fQq{wC{kj6e z$gIg_U{m}2l^;oMvYVE!9H?1A}5prIK2W8jXXy-<(+k4Jr^cm~+ zpEp;F_Wt5LNvtky#H)@Jlm0sf3~$ZYCihtk0lyg_2Wh+*Lkt` z5#yR`xQ9*46p@j?aHsWuGQjCBGS_9X65dTAYtdsS8Y4>K8ySlnmt5li#J@*xilshM z{y2V3{DsZ-ox=Xy$M7k+&>7%u|fwL5e@0*Qy0=-O80Tx1-G8AUKC#C-*{h6GdEvgCXCLx z=HAh1ovyd1_`6#$ zy@{o{i@A+8S!^2$E(MBT<#*Yn1c`UfC2B=J%X@FJN#~7j zxE}?brlO~|_~lG~!7BM})_lRmxaZfFILmGopB)h=6s|i>PtIGPgLC)|*2%^XR%2#OzsOjBC7#fuXfx#Z*e*Ol`eV<19~N992Ltn<<5Ruu zw$b+wr0rx~(Cl06V66l?@KIPGJ-;LVQIexqL?2wGriYWp{eJEK7`1!9@@D-$MLZPy zIQ1s1d!T2zN@H&LNLVs6v{It?pmv~+-mdrF7kKhyeEEEP%eAEu({zivyWX66fA@^| zGlW@rxxwgRIo?OOD_&i>2I?nZ?6a6@3wFJZAMEldbUAP zx1w+M=J9{?1br}?YkfG;4K|5i;eK#HMPgtip0EP2)}_$1XTnZ|xe6mN?S^IZJcDKk?1--90;8tvSQLdm{@m zHxP}dh&S+5+@SMAGemrGd`)J(HY^K!o^@*g9 zl}M2XaYqg9vxcuJpXJOY_tEv9N_*d$=*sRRC@>}~Q*B>7$Xuij%UIrNasrJ5NIK0z^l#X1-|s)G)T67@y;D?^lcP{9%GLK; zUB}~(wPVI&4(`v=*Rx*4+_YWz%#7f2;+9gbUx>rp;(zS>d41G;-yZeL^Or7OrPlb# z*4`{Hi`u8xx5{s}_ICM)*4`;EkGiJ!?3O26`*itiYo94Ei@K)woGow4cGMa_-P#-F zMN!MF_rxZk-)QZv@`cvkF7LW0@7XDzZf$FvK6|=69(7IIXUcE4_Sy14)GzDxs5`!^ zwc~q4t-V=37&TpZvmdm5y|pW=>h%j78?o~0Jr{z`_q6s_`BH0dm-j|poPKUZKlhwk zv}2Fa8?qgHjNX^+sLX#g+p(YNmqQ-)+1StYg>1)urvJ!x>}NX8{?E?Ki+^}=e~9$G ztsVP~T6?P;MLoOrxxZb%A8vc6oQc}J?cI7FgzeMiAKUda<&6tI+}J-`{wl|fy-g29 zeZAg)uvvbqwYSP~=uf>KMS9*ndr8!RMVHR5l~=AsDwS=t6s zBk?NtiZ0Z8b3*kU8ybD*V=)evKIWm9!kc6duKHlHWVzVC)|Ed0{+a`f_1tR}Vc{#B z0nsY+irkH4hC}XxuN`T}Q+FiKetdIv_QWK5PjoD{HQ&URpDCXVJMX<+iEH>)JP?& zQ#TL!g`D@L^$`|Ik99@ZG;9+^*HJrbxEg{jA{qi2Lk+P#YM|gZQTKS!7I5nv5ub zWQ|nNyoNK<^L#>qb_Z2GodrJQCI-Hwi9EVz}m+Ab^lUN0+=oTFIV zUbevAf1Z1;{S%M;HUeXIG$*g&d48#ytl<9YGpzAt{xR0^pbjcmy$^gKQ>R)6XGUA^ zaWmzJ{22vH(ko8iYlT*{*gcmc@=Uqp${$(+MPv2F>{Ka1*Pky&!jhBr$0kdlwXP4X39avS63%*IPff-xd7Qa4d|s7?n3Qu}o{lH;ygYm=C^P+c ziPa&rwCl)nRf93}>q*GS`Q{EZ{E5*@&jKykBevS-O1y>FtoqTI8t z9vlhHfgAX8tPj2+Cu>Rc1|rgTU99?k9QV_&2n9V`S1Cn8jLmvKJ)o0W13-g#j_dAn zWOTKI{TE$7yB8R-$&@?HS)Y&=*Vi^|;om@MshNyDo>|QN6aS=DGv3(7^7%hwu?GW- zM&k69@fyA8{MFX@jlJF3SFgWhe_|4IF?#D(t8FCJU7I_9v~}to_+cxO<~E{oo*k=y zXn6V*_-!TF+=Xa>lyW@%Zl5D_gL?dt9zJygFQmO;9ca9}9PNqm7%MRIc`V#bQ%vdwtqh0E}>;JEcv8Y3VP1v=h z$KJ2BXT2MK*!$yE8}@=5X$##e%0(z4DUc9S3k_)ic7U zJLNc3Ws%jg_e6K}K6+5bO&%q-<=W`osJx=9oNd8x$rIX%qqvH$q?Fg&B{p>sec=uC zcj%b%)Q5EMr>6J%fv4Jv?&v3C#)bV&{!0z+;FRyuac%KgiuyaBrFe94FQ27&aokt$ ziTcsovmN!LPiH&oM=!Kaw0SY=N8ebqFYRq)EoqZ;OxfE>KR5PE`O9n{#5-`-apDZ5 zI3udHH|rTi_5OIL_+Nf_@ocYwvs$zLVARpF{aWiyZ;HC(ewF6Ukdm66 zH5q-6Xsr7tVv-z;a_t~%n&^<(E>=PQ!43)#7&W;koz&6Fg9UboEtZli0(wk)v|ff})$(Qi&VG=lkvy#* znPNd%Z^46j4)mz4qcpHW=uJP6k`TEq`!D2^n2ao*oJZSuN6f@FSqwc|_Y;38_mPHc zRaVlAMYlt_R$`^{8d^zy8!3eUiHgMOaWhYdUqfh<^BD<~-F?q9c3-$@Z0D zIQ7=x9`xdIwL&T-T|f7O`{)9dN8diDZ=RD1(0&-`NEaOODv3s0ba)@bD_zmiGA zHR@4#cI}UU^9)wc@5B95M&T0?{6#^QigEe`=jd9W0FQ84qOE(2wH@|>||=11@5#^c-kv&J>XK&o=dwUN|yygJV(wcKki zZk$ScgDa^8^kn8w4$B$p@Nqh?d0fjApnH`wy#>02|4`TaJjT_W^c?DA@14C}@Ps~c z{`zFDt;Pd#6|@Epb!6$g4qEN3af&<*y-ME)#v5XX0JTemVmlvLjHY`sn*^rpKR@Yre5dEIUIl2 z+I|=B1(CPtF|}DNM+@Net+&KKNby$}|GgYp<#DX|c$K%?dp_XZU_Ue+yU$33HfA)Z z24H0%{j^zvRehd8qOM4;XM@A-2Tuc+h+(}BfNfdz9=*SmfjmL?T$?%hWi-CI3-@de-QKBr!Z?0=`lY&FTLOqh+nK_W&CBd@%^mv>w)9G zHhdsGAmN-{=Nl0)XCgWoYkFo^s5!t@C!H#-S17j&bF5;-8?r)lOjFkCh@=-j(IiBdKUI6`-H%T4QE~7b`4TnJG{nS~|leIm5MFZeckI&Nz z$E;~!$0%7r$=Keh$m%z}W!+meGv?~*Og`O57D*-kM&ij!p7>~JS87XU)9J6&Av5)^ z6WC?G#cg%B*R|6RLxuY$x2X|@pK5KNtGgw!*L5pr_>pNHd=;CFl;jFK7?6zN@z4WC zwz@-R?d-;tv+?=87!S{9jXk%Bpm9+&>`4Zi&*B|TR0wj6q!ICPz7%UItv z=K1+I&JICxcz4gLu?~}{f>`{~dWXK>*+U6m>w>?z%5Uuy50SPw3+gLA3e+b?{E5I$ zZ(y(G;qm3|z=%)9zRti~+m|-x<%yTr1{YovFK*w6d*1ru#r55I7rnJN%R6IFAJZuzaSq)YjWwl80)dqw{}^gyk?TCD?JGb)M*sTlc|ZCWl76^p}j8G`tD0`1N9Q3 zKKM0#de-Kwtnv%`esA;uKF9L$8243O2YHZHa!tDgrC+YJ;T?MJIUU!&pzE2)U`P5o z6=VE2N<%09jM-b|=5C_17=PRwbT#5UboX;I#cDjqjyZOl;Cb-!^f&gcmj(ae)yTxj z4xe3c08V6vGLO}D_SamGYkmIf@PG1e`s`lpAo#_2Hl@>N@A(Db6#RF3L+4M%vO2q4 zaVNjvJ4NPd30Fbmd@T+Sbu0d2&PH>%&?z?-b~HBfKsu~%>hp=p*7)#n&xQ{0q|zZX zNNFwiuO#{?%-Z*Vn5liIugzXkuZfJAb@ef=gJ}`Q5~z4}{9}ws+Oikchly0|k$}g< zsr7e09@pV1(T({+EBS)eI-Y%O;NNJS-Da$8=bqY>_0%Hn&Jv|j>tWw4-(>rMER;}}`5#2yndMXxH2_(LRy zHbN~}7$2A?QZgobL4WuSdZi|+pTz35^UlNL`fFCG(HFfedJ2-cQ1t>V(`#F~iesig z#?t%ic_=xZex_$#>hE}B0IM*G-(O#QK zm$Y5RbgvR8!14c#np4D?Z#}~gS7w+m{iu&rsi*aA_$nrqi>$}JBP@@(x?0u8x_wT7 z)q6&_Z!W=iaWp;!D@Km&ZL)q&F7@U%5ANvve=ufv5dSP!_Io`a{#sQ)TUU3+r~#L& zwJ>9-N&S5;)={2|@oohLob-i!(sS#t;R4j9N9%bTei94J)!A<6ybDhRGP2MkTqidL z!?2Q{>+|-S8m~M(8;ARRztg<5pMBJ=a9V$&;-asT|HiVn#ps@H0tcUtoZEWftns^Z z*tZgiYVZh8zzkR?gLZ#?I9eBDcNu4_T?j8j`)d7l)_OdQ`}-H2QeWw*uN>xFI~vG+ zfXLEa5^$JV^tuwhppWxl%$T`q$>car_;X~9&}Y9AT*Sh>0q zw82;GpH)@I?~=jWN(XhNE}!(f%Q8un&YU}~IhQ``^cm@S(daSDC*Ei!a*(&o`_s9q ziY}lL-0QnNs}fXyd-MU*fSAx`B|{Zzl>5c_Rh&$}L`X)EGtcMksS!E4*WymO1UY`U zKrt;e=p&W27BA)eJEhlSK5+&=@2W8V%Gn*ne33KXP3CUf>Tt#lYwE5m!4;4S_j$4m zwnTQ-B{2^vza=u7F)A%%&3-p_0yWZPP2>5-CVPWZ##TMF1Y;&bPrK|=xf1ggZ{+?U?9UaVyP@Gb9rrlKfS34|+k2&TT9q6? z=g@BbhZS*lRA)5vUDEDJ$Z_zBc}DmwkW;OxwR2k8)B9oTbvuXg9{GWFxoB^cpS9+; zb0MyOxV1ORTdbY#+&GN7Xlu8-*dJvJWwbo*ZVJQ#HpLv-pu#xcWzwRs^8%7p6#-2y*IA!luxzxZh3|E z%(#BKyt}o}l&`e*+1&SB&vO0SoMY55i*?<&zFi({?Va*xt-V|8nI8-*Ej{&w%A6CYmC65!<>w`$nT4DgNhxfkD+hKQ;#R zJH@1l1^dbz9%FhhbmRHa`|)k{%v0%!iWsx(-rIZ`Yr7f0i1Zi@tY}mn*HMgcV^%fh zEtx5GKeHcW(zj8UmbnGiyY5R0#DUBJxm$mYZ_6q``Zep!#Eg-G&aK=_n0<`#%*=&& z+$nV}l^GKad!!NYjEc>o*2LRjnwwT(;|Vsi>_0#S2c@Ssl{@;?-n-cyBd)H6t4ZTKi|7dNtf}j0vvxY-MzcVygW186kM>-9OVb#ylF3F_8yHF5we0NKlETeIf#_k(V7 zl&n;!t$ohRSO+|~e#GMiwTy~}YXwkBg~mB#zllz)PM9a*=X?ggg73mwr}on6?v>o> zj*nhx;#_3Bhws57mtI}z9!@@vGD)2PE59yi&q{Z`F@lEc@yA`-nb&lSz7*6m2k}?t z`0%37V!7_1S4k{R{K+$DI*L^DA1xmWo5vf`A52drTkSX;v2GX;R*+IlUS(?E{XOWipG760+}{ zA<+xW0cEKR>{ntB2z7#+@n1YD)Lb+>rNJ>kV?efc!2r&{|=`C@CIEf3W*--7-)=j}bMy-~i}+MDIY z^~^W!*(!h7+S}z{TYIOxJLkK3ro7J_dzbH}{6lN+m7g~!jO+X5iPk{7SvNwT z;l<}QyRPw9;<-f3Crdy1ZLMA{7#@$=7|b3| zp&jJg2k3L+0Pv2_FiR>RSoy5!FS~pDb?Sl#v4`*BI2G!+uHJV_K(y$#l`Au`DVj-? z0#fvSd1wRqknK4?o=B7romXP5F5+LbW{oB>RwA{;z~rY%Dg9bcvUjAJ`3U?G!``aA znc^9Kb=}e$4(Ps*d}%QP6ea>h($K>ayE_UWwWvGNaIce-~^!gnoC#8%r;@g`c z8_*s$;cgmam0E2Lb-l(v8+1dj{t+~d%zZNJx?F+xZ(Cf?j3Z+tT<_JnBOrA;EElY-KA}NK6TYvr zKD5^?zP}$}uAf%Jf5#E}_@j2iX=4R7v3!;%p#UBylAxxV`|y-O+G=V$I=&yz5$*da zJfae`&HL2n)OhnVq{-;Z_C3vJks5tit7d15Po?y+i;UJ?lb8XK*UG4QuK9w#5)B>C za3TkC6lP4z?_No%*+y2{GBX*g)OsU0cQc-*PU5`v81y1nT|ErKg=buEO8qB zb5!hwI5eIDmOd}{D~!lGt6lW6ios@a)l8om;I$nk-|)t=IccfuC>Ga!kN6nS?I0|>6m&r$Zo9@2)X#Aeu9(BRgBN|h`@$dL?JS<)T{H)JM<8H;6uA0aZcw~hlt&TXwOvM9wX5$)jfPQ2P zS9~jMtP5d3Y8@@~fzhwTn7mc7$}eV#z99*zA3d_39{;2^zzaC}_C|$%sz-#858AR3 ztIMI=8gKHU$&Aaa=*#`r(7^Ss%|-%j3R*x+%2>%+Q34~uNoLf2c-}enaP+~5*k|%x z+(D1YZM_|Tkpa7JkH4H5me9Aar+9#twEC>5Y%^(Uo2QyxugnBffdl2jodhl5zRxxMk+$TbdiPYxw(xczg zW8-ONp%Z+uV!GmxIxu>Tyf*rD=y^1#=N~m@{I12dN(uLj*$;AHM3DEb;2BayURrj? zqR5o1w}NZa9o=Z=I1W)#-ROOH4}@l0i;*8n7#Zc7UwRg7Z}eBhJ3Ih>&&;Ar4X(0o zmvLZq_UEhK;TOozqD~ek`Gx&0&Ix?LdgAGg2jZQ)*4``cwuX3mV`E-kZhi3d`G=27 zlvQgVyj%HC)+JB#U5cMu+2Ye&=hnP_OBxz) zZ0(izTd$1vetCoSzGxqmVm&e1hvm0h`>1@Pwa=ATS!X7;Et&fm!E zu}kWU*^cVK zsC8%|R^Bm8*5sDoT0y^!27V=&GZoZUu4WW*#{}Ae6%l!IO$PhrTF=X|1JI*7vR^d^ zUGtp@ui_u^OFauu-=w{bCvuAKM>M<~`=&F+mt2lf$&AI`u7cu)e>FzMYBJwJUq|mW zqFQ|qU-;D8j1B1*h?klBk->}B@|$I^ihg^|EKwQ$2mCY21!}RbT&u+kBo&>4rw6K& zcX~Z@+f}baByudMH|ip%%n)facJ~0CFC8m$hrYmd;EdkH{^jZ`G{~dWoJ0?L4fyX@ ziZXg%tUR2)oe!?1r+k(*U-NY+o;BI6dhkSi<61m=r-mcx%$}Due2O65k&NbBRX|6{ zw1`g`-&22HTe*z3nWwIMBDJk^Rou6XNU{botr6?3S&Pf+24m%{;E8^|?*IXrsr_A| ze6^ZB_&5LUn%FH6J`thF*NL9Qfm!4CmAJxhj1GtHU6W@S!_4i7+t|*ix%+X2GqHHO z_k6z6BUP*a?)UB2`@j?G7h0m^(jPG*wx0Tzd>FmcLCg`%VBK+ygq>X} z;I08w&3gq!pMX}IDNHMr{W?Ax+ITw@+r=B)jjoFh>1V7WFbh08cu{|k{+dnTPes*< z>N^#9A+w!ls#H3%^jY+|ud-z%>6A*xsB@sPt|dI*$4Bnhf^uWnEdII}z8rn$y)moM zvt}2WVW16WE9ejSl-V-BtUmT<@ZjC!ehT`{k+~l~ zhmJ!5`&Xf#*@*bp#hYBW!OwAST%O~>E~o3YceKlu4(I3-*b!q83A?5(N9W`vd^J+1 zE~lipsz%~}&@wHWnKANXaYY##)8LWW)!XAY_H~ToAH-k%OcErpx&}t|i7})A+Do}Q zKfVf@0<*s5R4L!gYk@oW;_v!<;Ldlo_GWokU`MZSmCv{Kb~zsyu3n$d>-ihD_sZwm z_5Jd#);=f)fr-86u)MvskIKKb_PKHtn9_UB*YBR$zEHlB*W+7iKb|ziG2MHuy;bpX zy??(RZDK!hh~2AmjyF!1ceVDJ^4ZotTfV`3uWqo7p!|5?Iml(ySbz4@6Kgj21^Pj(fZ^0@j81(;uMoUHzSC!5 znfsMidSs`sXjDYMtP9xv^2mBuGFR}js0J?Si@2I-Om7VWV7`edcp`J0Sx|FObq93w zWPK9Kl}DmlYr);WC!T<_AaQx$E09W@_=7I$zeRYdvEr&8&vI8A+_|=hWQhY=6V_`^ zE7j21xk{TcvfAU`W^+1`EZU~8XQd4!l@^znN&On@_sgDNbT(!)K4TAEbFj#aWj!BB zO(Y&7F=O4-?yPZA!Qu@DGqS0_M@Q5d&jK-?fwhrEq6+!0B+!3rfBctVpa|PfCg!FyBT{Qpro?mnTHtoi(@y&@CbT%X%%%J&O2? zb(;CzY9ms2J&||nlwEL^88BRJ z@0H(b*Z0duTKk}Uv$YS)Pq+Jz%4YVzKQC|3>-(|Cr(NGK?`!RY@^`Hrpfdhf$Bp9f zD_c9Tcx!K!Pq+4V`M1{IsaW&%fxE>j#)2N{R(IB+z21AJYK^ve((WO6Sv;c6pl;P^(9 zS_T!O89Xo;GOe_KF@avm(daY%C~|mR9j))~xj+8y??=-A&1&tm%!$Qgsr}kUM@v1U z2fI_*VfI&pCM%yKx1gI?02&t)uvP_1BuX-3dct0NNV}ug{kZRuc)p{#asG}A;|=$+`aYGT zDLu>#6wmy~VCWSJpoO;ec4d-Ym*3$idHFhz#czzXPE*n+j%(TDn|N8xNFG9iJWKs> zX9XIy%)QLJj18hlFadKxPw5M+L{#P;>hj}vE>`JHbayfC9?u?ACmxAw-I^GOJPMA0 zIpA4x3M|V%P>9`d53(ihVTm7&7JW`-Gu0J(U-#CS^eQxo8`nu}HXB^+$a{UiA0SZb@W=9Q;P zxhLB7TCB^xzO}c@yR$u?*RxRTJ@be`?fQP%j_2$3h&4~N_Fnme*4{5)Xzhctw}=s2 z5mWxCwfD+bTRYAMUBsiU{eyD3wGYehwDwW?k8B^z%R3jbY3m@)Fm3Jq^1!0zvUPA! zUb3j;Y#ki7y3f`@)Nb1KbLGiJ9cSy{eEC>wUx?W*<`@UZQU~E&RVvgs>l=J;i(f}n zBH!_vc(ugBC*uJ-{ruSd0`i|7GtJDYkx>Wv8TpKkOO}ZR0$i+_B8e#iEx3c45**jHjA0<1^q-2a?{j8JtWr{?e3*X+$KKw28DbeK7hZ_5cB}O zp2fJwm4dN00`4F`mYcapsOum6U@ZxrkaHM)lptKE1zWRc4ail41c!Z3A4Cb zIfd`D(!({@axcfM(bdE?#$O^=2)lFZc&&>Vm^bQVSCk{^=_359! z%>g`1kUJCKruN!zU*}@n^y`qPf;s^`md)=zB*(Be#`+74o#%y#T8T40s!8?lEdbL#E+y!_q*3vGk7 zTKlm4)B^Kt&yV{2_T~-0ZO0kz59Yk%4EMLT_Cfj4m_Imed+)G3)7nQ3n{Dr%D_?2X z&sUuD;=nnVs?HM!;OV*O^Fs?=faeF*#(g8X=P0hxXC%rj6zd_{q^9GusNkZ7;vGE# z^~qadK^cAY!BnESg0#sPh|%mgOdp81OpBf(kJOGtSyyY{_y??%{_sd?*Id&c9*JMj zVQN758|${mbz~@p7IKIDf?MjTvqwXzhNiAg{ZK}ODWzmn`Z#T{?+e537*FkA=f#Ze zdQzi0XTI_GEPA!(ix;#ejx6Wlq4I4(ED1_kXEDFdeYzcYx`UKC6MtV7_g|{q12yPb zjSoFYAnEt+j9%o&XincJ ziQXUq^hND>C|dukB1gPEbK9@Fk$Ha~ZOoD#=VCm&nvvbkSHu15m1})>QN|>AX@#rL zMm{Wmd7fU(7FbIXj1m$4i)Ufy$Z~D7XKVaZ}LDrMz&q5;7PPni#M`j#hj>|dWojKIV=u3 zuhcu`nRu^j{#0YQds(`xT+NY}ZRe!A>BzT~2ox;a4jjb;-(Rery<Q^K3(41+Gpzb1dy7U`NF zuAWzVJyv?>VFml~6gn_HH#My-vklP$5@*jqw^=nYm zqK}?N`qVxB68@05O2wkDKp0K&NBFqZ=4A?qm!q{A)7};t3pjuJHo@|&rJnVMlV=DO z>sJ-B=9OF{hthB2(bArf(K_EV_6nk47Rc1+W|gl{wmRReUE{^YGx*!vbJG6$PPt`2 zg49>(@6x>%vdL;P(&{-B@?TFUGwiZ~#^)m&+SO}Au8llZ=LW_d^ZJfF8NFvIaKMVKvV#+&wux;L z14~`Uq&>4(j(F>7h3nMXpmB=(vufu4PGr@qvufe(JgPo?StA+kcJf)xj?hJsCQ`{d zS5~|6-HxPI=x@6>M02{oo_gxkxeL*UxzO9{2e2jetLO$0Y!%~E)g`Ngz}=64c0SlnRVG(D_zg61GB?No%zNRx{-l2| z5)BqlMY*Wr&cCcz7T4k&wLi(TjhM>j&j$78rMTept`AuFpnYitlaP4vg5IJzstt{2HWj zcG|mId!u5zkHp_by7Z#flCVknr)|5&DxN1(BTgCjeY!_=JVdS&;OpKLR)IjaNIOFF$32b65a8H`O) zzs}=ecXzt0l!p!v+WR+uaVp-A4u4;-apq?Dd)r&(sn*`E>l|L+sqawR-Yrjt-?x3b ze4w?@lz(aMv*i_0)2R1E-1yVh-YEA(y~698^*tNgTjc}o`gYli^F6)3Q-0!}Z10wD zwf5;+1F84S=j9bqW3atfJ{0Fy+TJfe*V+f=_u4&&h4*2+=cv3O&d0QUu54yIYB+Cb z?Y;8Ht-W9VskLM8X7(RzGp}gvqtNI@pHXA^qt@OmKOcOrW8K)Qbrsv&<<$|NZSRyX zxAty%>cx5eba^J_6)&;>X=__!`BI!?dK}t;X6}Wr5$|Fb=r&#gYav2TJsEbi`YjgM zh{akaS65Z3y)(LNu%Zn5 z^(*Q0JoUWZuMafO>$8)(j9A@Un-_^9crtyj($i-_h36@ zedHQ_JsdoN!{9RHsK0Z4MI4L{5e@THI52~#$_!s@1Aa)Y$P5>0cJ0HTt=H3hjK6QFZqAv} zxjHX4xe{aFt^zIEol-k;-d?T;4e%D}y2^2P^lL>u|5LM;&$@H<5L?SN3%R*$b18B4 zPz(=u%z)f6Mg+oA`2V^rKXXIvi2bz8j9Bd{Y-*z!pIlFxI1^*kLOhi=4|W^BT{q<) zdsE2Q;3RM1N^jD^>X2Mv*E1@vUYbxw~ln3^PW-{k@o{Ud~;`w^nwY&Nx(`h7hSx=z0j#=TSx z#=V^Ahh7c;l9@f2kgp4IWsE(UWjKcVC~ij|z@F-xI>t4l5*)r5y}7b1H7PO1SmsGe z2}^xSa1p z!UrgQvhEmRCm@`JZr|qAdgTv2%&QlLMrzE=pNK+)z+;fp^q!NNw7@RS$738TIaor^ zk%`E>b!mozhHB47YOwt>N0ky>gGTU5k4vBeq9sul$!A>Q8dm<6xZ*b~MFk=iW4duW z6IFlh&Cz36Xsj-@x_##Z1#m z#$0PzSGb?(YAm#RB9<}MGfQ`nac5S=j1N7AnoF{)EF%S#Fm%Gxj#9TDjKAL!{oNls zPjau&^os9r!5jQp$0~5zsau{!~MvuQz&LSPd9-p(1GSSj(oloMly#^lm{n}$XJR0&N1I}^~;>Ej%dgiI+@c^m9Mek zJD(Ze2?;ni{TOo12m;d6{-?7OeZy&U8~K!TUar`W==Fic9C9w~dsb3N<^PSD0nnYSCu@Ea&HO4|`vz@6%>I z;#-S$Jw!16ruMKopGQQS5D%88W*O^+ z##}W0*@!P4*9T6LidKN)U%)8Wb2(% z9M~~o^wB%aYS4 z++L8*GF9pE6K`~^CJL1%XtXB4Jdr_XX4}xLM{U5FKaczvNO67LB;JQrouLmLV%wOP<_mN4Hdr;ND{?LX*vW&F+6!-h&`lpl- z_Lb5}nXJ+^l_nZ#wKK<046;rWkfDAq-?!wO!JMmvAKZ$4gAXlg-CI#Vf2y@N%kQ`L zR{4|G-Yzd#)WEmmJ%pFF_HO+alzqlGhuiftbx)wz&z676>rqR;zNnLLZElpew)STE z->tn>KHJ*cGI^F9=;XdwR&n%-`?6hTRxcWtp~~v{n%pe zTN~w5?fPb`v2Sf{l`kx6;9FbU<@%y_y|uMd-r3rx%R3jf{jIGt<+*#Z&$H!SQNynD z-F~3_c6@Wo_D1=s|B>y@^10UDDv!P-uM_DO?Rk%3Te0r_wRU~K?rE%j&JW7Jom$)< zk@Opjdiz#HQqI|`_e6c3y`Z+Y%V%19r>&1{MI`rYzyO!=GEwm$#v;NABp zE{>5fqm!$-=3&?zJ{W5y*8wl39e!A3w$ER8Bh4z+KF+7J9?&P-~EkBdI5K5G@Jz=_Jby39dz-u z&rqY`F0)Cw4yTY4`IGA=8Fl51*YsFjD&iWefJ7+ynd6N4>3#7V@4Fc3kNx(em$T~pp?Z${_ipipkzN%qLA z?_Qpcj9!2ntovn!Z>#LadENgvo??Ehzn?CfxBY!1emyhXA;nb5)w^}?nB2WRL$kgb zEUzv?=hZq7tUhf~q^-X|Cit_dU9Nu)JEVpH|Kai7KZ#f1OB1(y$~~l_U~A0yFgumX6dF9*w;7yB-rxoKLz zo)GUSF6o>{XL(bLE9L}7Ui><}cjUkw>+Hz5IrTrHE&Xj;xL=}~`a^WtG3dQV*!8is zf3Jh+jdz9%^w{Uas@>?x&FSyPFPnE#{ap1;<8R6WoJH0J|E0k84~8Z`6e|l4M^xk8 zp@)OQi_yySq#uqq@X+il$ux*t^TC0$bu|H0v3r!QMS2>LgRSU^pW ziXrcUzw1o*B}_Dp&Cq7J&fakhLQ+fmcyEW3J7)O6ppsI6{q#{TF<-FJIFFJEiz zz4Fkarn^1gFMrtD2lZQ9wV(M>`SPN^yS+CrKeMRsa?Z@3wRW8E*V?g{Img{QEPJhe z6r5Vn7WL6@w)R%}VDPSv6(8sNnMDnCJ60N>S=4v8qdxl8>?i7@Uu*ZADKAZ)FWwP< z^*xzSP$3}BPqSdM7`_X~iWF~2aED$Dl;$oC(FWKj^8zq+&v`QQ%1R(7f{oY)T+8|w z{m?5YzgLv9PqPW?JiamVzv8ZOE#3;9840*7*BZ?FTwim)hx=K?*6ghVBQY}TB#wR* z*O)JBi@#9mA@k)9&@1y`2JR=|FLF2Q2J`suTPyYCxvrLx_poAq-;cT}^jn!;K0Q!wU9J@O zuZ-bAl8)q8t^g_xtH0)ni3ZKFSa&0rqbiaWWN6!qzoGY6qkSB|aIV_3k)!c6zr!VY zC{5(GRNK&!r)woW`(Ks}nnd2~$vi||p2{7VR7OYnqV-6s*CzUGlYiuk)4TdTx0}c9 zp1XT{LtCJbsv=drDKuN9+qhELS0kf)A^t{UFvET2s*SnLPvH~(?nA-( zqlE9e~toJZCuJHxu^tZ+V;}SNkv~%x@ zb2$jw`kr8BB&QfdFLS$it4G1Q;RdUEo_yx|m$c%o@IS7{ux`n>tXPTEj@602f|+Mp zv$msuvbr@3UQXYw6D2STHEsMlTF2kXZ~x-S{{98`63czM*DC*zENihhYA%Rs<@r+=t@c#Zb3P3kWkG&to6Ou zMGf%6qTfr=qF3&?UO8aZcinq$U;(U__bhp9$!e4Sj8QU{;T@izx9UFiq39h;WA^Lo z*=cE6Enh{y89A{+^i%8%k+)(44(`$2(U ztmqj3q}bWD@oKfK(cV|zBZRMb7k5@-lbG605zJ9%}D4 z^9`1-M~;4QyixbY{%qvdwAsh?$BQ=k|DQ!Z&2{$1{?MY$-q=SMZ9WhE`b9tUX!E~| zm#&<<5odS&Tx)NZ-)ZeQceb^+%a5GO`*+GeN51Q`yY(Gl+h@v$+C68>x3e8}h&M&9 zT@W@vaSHjImKH~UoDh|$Pwd=oWu z?EdUSwJ*KaI8&Zt|7z-@SQh!yBQtkBjND%B?-eDzA9e!w(?*ad6&-LnU$}%D=xIh? zW~L9dJ_GmE0VI`~6}b#|&f>}Y7$Ur_a7w!4EXmQ3OJzNUzQD@?m zT(kuH<1DwnUY&df(~`Sb1wzZ9BsKHm;y118a*RprFk6FXeMh(Z5Jgz{4k|hsW3(@J z(}5-ZuN47)LAs+h-d8!eyz>NkgBH*@MwSbDr_5d8JW-uq$9JbwXXt@gj*UP|)*feZ z?P$SIYgdWou+qfHqB84wDSsrCGxERbZ5VT0p+#n_9B0o^f%dPSg`0gJ1n-P>;IG~qx+ss4OJbMQE9jL|NR)~JdQKY@Xjv*YXay?MDe=4^YfyuG#eD+cj;tP=#*uzgtGnC<;}c~5KamA`N8{qhnp6g-S? z0zJ{%hvg%!eN?{P+ULp@Fj~F;eEEaczEJ+LwI3|UV6=MAYs=?a`?zrKz1J_6CtCZV z^66~He(x`)>;fJBN4vgNemB-j>a($)@$)H{K!@y;_xf)6Mr)rgUy5}Oug9MG)RR2( zHuk1#jhUIEV_=?HNC&&|lq7X_6$k07+&6;v=L`fa5Y#Z@67PE^JR~TAJJ|cJ58y9r z)A*Twss|oWs}`~27ko=c3;>0AjEp>D|FO1mUqp-h7V~?$#%Cf5QBI_i@z!YBE007B zXMzX7x)}p|q*k13C0x@>yNmcz{D$uni{R1qMW7}l9`{f8KvAWpe^ylR8~AUcnllz# zJ{EtIZ^2)@nElF8=91`>-x*79Gz;$Fq2M4p82jwj@kH+j?O+)&4)I zaq`Z6Lgl)V9tmogW1?x^httk-Ze$}^A$PjQ!#faN7g;Yv-_=ac7g;yX?1b@oiuft= zL!&@={cDcv`bzZAbK*(40{TNwL342Z>98-NCpLt<(52L*b^T6h(Z;D*VP_fDPnri3 zk_(+P?mk4)$sI8PenGEeb>Ji&6eWQ_)Rxpb=1o?BOma_NdIss>O~{jb73Dcw_`yok zJh*l%W{~TAK7AY`GXf)Vt_(JxR*r}8S$7zJvdXcq5I9Gb z$8{?74KIM#q-XY`i^a(4J*UoE#wu_3>pXjgDssT*;8pYewA5wR`muDgJE-Y?583r~ zDxbLXJbinQwJNf3o=S;ykCGalvq~?Ky4)>uvC5`DU&Zz7s= zU1$BXrmI=;88iH}%ymyT;1K>WX_iRbw1HR^8WhP*nZomV19eIi+gNPpFL z+@5pP-ImWa?HYeO8|-?7Utg!ODV44hcqs2otuRW8&h%m3mz*TIQFE+8Cd$;tu~NJ! zzfoUA@1b@l{<%AjFOLAK$9vGr*rOEQeZO)9j$f%(PsZR1*8R=P%$inSj(IRDr|h6d zAP6i@KA~%O@<*NX<602C+^qga?SWfFj$HFH2X(%=M+%>IT<;m*py+XSU6v=l>${Yu zRlvj}^28NIP$2Onz4do5$<)EI9zK01Vf7T7|9pyaUvBOo{=uRtsrx~oDrI+Pny?n_ z6|esN@{?H2?Yw0A|NjafX-$l^R`yrF?^HD6fBW-`msvMG)7qPb^NhT{RW{>3+uP;w z*4`;!Ywg|gBTE7^{E?SoN+toO$n>L*%zvwqXl>s#e_qV8yW zySy;!i?(;_*&eoc%j50(>B9F8ynd#hZ*BW*c~jINYdh+-pK9&+MncpVy>6}1_EvdI z)DdlOmoK#TPI*Jr5xu@!KCq}MZbi-Ve=lm5oKf*3i@NewtY{y#cJ$NQLI0vA%^4Mc z+uEngql=p5R-7Ttx4Hf`{+?Go1;c{*i2J$H3qD1k{SNLU;k~Ipa1V9J3lTkB+4C-Q z(Ol2r{7Ld>Ju53PWUodv@;!4lT8Vi;bhPulSK{GeU`zK1^?E7KWY706){`DxtPHzG zb#J`qC#ve_V1jh@@M8UZ3$x=6atroLl4)SW-~($!L}KUVJAjw!N|{*5mCrGICE~bB z!ff*_1oke14;+u&>*@06!4+&3%wW_6^?Npc_MTOtJj)?x2y7k(2-PcTz!} z!K>_$Vl1L8`LEO|&AwBOCv%-tj(8@kxdQPY$y}@4f_~1dfL}fCTc64?d(TNTy)sJf zH+!;imtNoi`l1vbk6E!-kS7?&tH_^hg*|L3N$acpo+BSG?nWAq#+~FUt~%y=G<-ty z!4&+eeljbv8|cjpf}M2yiuT=FtCgi{i@ZoHz;@s>k>LJ#-cwOPaBwVlAId%SkEf9% zSHyW{yzXwtHnF^`K?^m1?uJ*OBmT=wvgQweL5*ak{)+yS8*&#jd?K!QEfcG8-3kks z^H$txo~A9r58tnMe`2>`p5_-N>KMJgz{so_S{)ftn>5qAeLYtB3!hvCw@<%RMb_vl zA=nWP-&fa_v8nVS@(g}ZukjogIEnti)6A;fzruZFe%Nq{f0G@PDfa!C?+B`?h+y9- zQ#@O@ovGd7O&^V(sNMZ~a8SuJKUQsS-vgR8`VsF=UEYsAM|)S+a0VH>XAC|k2WYR$ zBI%WRVoB6^`xDIDOg>k~&1YDJ;s2%5&$IX$GSOSL7g0{Ey5eW|VR7kvo)`HfSd6Is+VqPITLv zC~r}~d1lLXEM%QOK&IE@-mdTN_D18ot}^G|H{)lu%$|8G3tr-jxz~6G2R|0l;z@OY zs0nZFIs5P=Mx!pj&Z~sbfsRJ79Xw{|6rRBK5Ns^%%X`*E`Q$L?gZx_K_b&w9pba8} zo?rB1lw_tJ=>K(;Bn4Sj`9Yv0X@VB>^L+pL!>8({x{rnT zpWmOqN6!4p_>KK7y#M@6Yj2fLxAu1V>BzUeXSeVUukF+2FWU7p^-M*tpDq7;u`g&l z^5hpR_WW$ezNY6|d$XRSSnuE5D*w{1Z@xY{xm4-&*9i+ncA$y^EZA zdmi6!YVEyJ7Wp&pOMkhw4@z0&%-i$$CRA%5m3J-n`D~xxD353V=YzH!_xx6QVP211 z`urlV-j4l0dZ6IU%!;@)LyuSbfp_VX ziR$)pyFSKQT?;(@aDBUIO3|I?cM?7NbGW&@|4Ay1tL8|(>dmZqhW}2ZWkv$m0<#u5 zt}*8N*7}}r*Ka>(6S*6;#OM4?&Pv=wYT`T50pI?ETkONi{B#zwxe!;)BZ#KNTxV>h z)qIZU%ozJhpPFa3$q7|=<~=^|q|rFJis;-&N=0{_om;XtuO3(q#2$yr^n*=%$C8Z@Y2jw?PqPQf2Evk*xYFP zhJ^2UV7&W~;hDCDPG62Ys1sp}_U^wEkxz3Mcy2bBbsq9b zd4tYS7fMMw2DU}U4CYThK_&UdxaSaBj_b3l-bhbwW(9TfEqzeO#mrTU%Z&2r^2e1= zT>{YU`5#FiR*MXmcX4oyngW#qbkDoctCYO&$n>mIFTiu`j)zY8_0j0Vypi38WYT8Z z@XPP;ktO7;Qj$=WS$I|?&FrZ`Sjj}ox?cjx^POYskMvHRonG*8%of=ggP{?wQopjw zB2QC;ovU?$o3%$OIz01^pqX5ow_DQ}!<(D|GajoRT<3~WIQd{^Y>t!FqOsIia)gDCOk%`o$i(W}(HSrRKc5X5f#;dTPFf zX3Z9veZ2CL7V(g=eb+_1)b5a9YRa@KIYv)wu1M{^$}@EsjgkLWm2>1}dsxN)>ubJ9D-y*5Jh0wwhN z@U3d~di<=`>hbWY_&h#&zjjq?b>B8wftU~dVys(nMX8)TdoY`puWpJtL1R>~&3wOKvWmGxEr@sJ z+1K&HQzf{xxE5#PW!-2e&c6F%yMDU7B<`!v#d&v^vmLdc-)ilR^7$WL+!N>B@xOY1 zoEH}*lSTV%{m#_E)ty>XxlV0~cHHn(wxg!?I7 zZ|3!Qc9S|2*W=mWU9|V({!eC``xotlxc&q*$NdL!o!ZQ| zj`;t)hqW)i8-O45%iQ>BpFD}$Ssijb99n1At&Y*XnH&5fEc@kZR z7P;eE2i_Na$z1ws$@87(;lirZljrE-w!}?Yp^#tfKX(0tH6L=lTwB7DT_+@SaQ&J) zM0{dm=HvPpWBhtWi9Pqqua_kXV&!z*4w&2JTwq#wqP`HPSi?qM>V|lNHaph!bNCMM zYL1)x62xcMqenAn^cNoaWr=+M4T*?$Sr^ZH^Gv64T`04Ny-K6#ykkFe|CB+G!>)IE zl2Pt&L8qCObD9P1>$15%k6Cc?a`2+t2y6u7Mhtl!_UTvt7kM zXr40x=^{&4ko+_b{eLUl(dYJ}|J}GwtbR+Z+gz;{ht7;q@T7XId$=B}cWaC5 z>dv!}!#woKT7&!N)4OOF`OX;jPVEk@Gm`RV750)V5@1YnjedrsdbS=hGmmu?Va?rc zjXOqBENn^x)Q=H27t-#+s$DL1qLj|wZ zvGgkSG|uY( z#XlKG`V+^YCnswGzfmb?6mgjAfznAY$1yV_NAA?XG8v7TqTQZv$i2%v%6Z9M;{Z8S zdV`a6v-fp->gA(xT^{F%eFuoPZGC-}J6+4hx?$djUBf%P!*UO)Z;m^iA$p{2z}sRv zQ7ecMjT29&Wc@OX7Ae2ijhTEO^AhkF=mVc4Cf3iM#93!#T)i1oKNS3IMviR%!T^XwBl8*Toa$>!MobgYS}hax}1jYm{8?DCbSJ7i21~PVS>) zQis1#=lC1?<`tFTE_z&c!! zVy@VS)Gz|`{DmKSRS+zr7<;<+ zNa^0Hql~9?O!o?^HSA5$M`jdcCPpxA4ZY-^{BNh;sIR09O=oWJeNK8PeJ^&5-k_0*ji&u!P0vPjT=rs~wPCiM z(HniBFKc+r>Eux}PO@j!4EaB2Tr2{c!HWKKN5;3{@mQbx{*KJ5BUU6rc%({jn)8ad zzH=M7d#z3zP7Uf+2B@SCgeIcr$DuiW#Tf6PcA`&Wnv9^gLr3Ipk>b?6@Fya_x_7b1 z>~thb&$jk<`Ju(0wA1_Z^77W+E6=v}e*NZh?Jv&JdO<$Be^`EIkuRQ(_rxAu>{~k> z?}`0QYsX%-#a_76akkZ4TYIN`EB2JtKI1*HPqph%9F?cz!+qY_`=!>7Z%nuLR{7J` z-YzdcmG|$IuSZ_%v%BTJ?fU8RqL{ze&lGC7w&UB@*^WJje1ExKk3ENf+1gv>6_H1J zeY?D|wRh?nVqV`ZpKjMrmoK*Vneq><9p7S(ytCdPHRvz2cI*R6nxh8&RBOi^gU?qk zK2+<@e-L?NZSO_So$dWnUK4x&>h*(CzLxF7QhxiM#r307em3?E)_Wq2|NCs8FXc_a z|9bsG=t$(I?}_u>u7+KrTdr`4eDHg`cS41cm`%+>e5>ciXSoxd|KdfBj%qN`8himB zQhV`tSsg>0yABf-z#p!BE$`i-m+LVCbTFofh&p9Q1?Fxbf{rqYqwHuV7Eo(8DonFH z;$!aN1Eq{7OuEOqj{&{n7izJf*2kjf9?`T{-c|&Uv1-E1iEYUl_a#7OU%8hn(1s`A zUcVQ>toIt#cupj-ZbqKHkyT$jUgs?N40~9Zzi|=oi&q)ZEuP17ic0*3Y%UK#XTlcW+x1)n~ZA|r@1sfmdVse$n%bzZOz>tT;Y3;w{vn{kb5 zqm^;+jG35kw`Fe~eM1Lv-Q6$jjVSRq)kJ1b{f-#T$wuSqgq2~RgUTGeV@6}Ux{bev zj;^sIn&;Wko2!3hW7g@Jp*TUB`p*0}*XkyG0b|@+jNU7-ktKgI15P^Q z#38JClmrONw*&cw8Gx+Em16Jrn?tOK^MCd=PVXdcU5+`SyXabfhYl<7nM*-~>lE0< zST$!(@XWIzx^*x2)bZiif8zGuyBKoyo_W(Jqc2iJANem5(F<5n_G)TW_kdYj;F+{& z?B6PivPR?S7i|-L(7V}aO3vChmWig5!Q!Ei4fO;2R->E;_C=rYH+`ud7=M(N2>c;? zD16%pI-~LVOr#-wx%-cd#@GpmpA1XBcc^V3RdfI;qshum zO69vbmHYMZ8|J?5BtX;9Xt@M;vr26gV4lp>x^`yG*bj0h;_5Y$;?)tA*DCV1ZmKn9 zKUhCAnKdf+>j>XT9SOgXwkzL}MxvgKb$ui>PY<9yjj`xXe39ZiuRm+oV{O1no?LYH zNN66u18>k{D0Hf6qcqV{V@s!Y^nxeV+u#Q}jqDijTF8_5n01YD9ZhbqZrRt8Ggl+t z;ccF(z2Hmw>Y18w5(QRjz+Y2qV4kiI_sWj=P7jgVdoIQrb^N4pI$zYZ)f%G~F@0xZ zv?TQL_H%*e{aTGpj0-x1Up-D3$)Ewx%WwZ5b?*ae=~dtTt`U_Y5`2Aqy3YN)ag%LXjd;ibye;B6&qb zeEUi%A{UV$MMOkIL_~^6DN^JjBKP-M-~C;`_3XXR%p_H46J}=Z=ULBMzyJT%de(!r zh3{#f6?+h6Xti5WsQe3k`HfV_))*@G`95ELs$&NtU1j#(H=O&ZRox@QU`H@efZw$u zM@twQE(;Gs(b- zERE)j0%oMj2n^@jE?jXN8=xG8-(ZviH@S|Bh;I?Q%&+#J#OY z$9n#tYm8w#3g)Z@!e8iu3?=9NHaJqc$WQ#0#(6aE3iFFGw&V_N-j84G*H!GS*hg|o zoRE5l#SyMR!cYBJsptwTjntdx~Gb@;}F3z^dQckg}<_X$w68JO%C7 zjfbChdp0fKXzi`?nw#c*X0!6n*4{3E+S)ti3$1;s{IlD82jz~a-R&Q&QLd}?z1og_ z6QB3>*f;Tts3q3xv2Wtf+>U({FS;H3BaVR!<3tJYk$IbaAIIk7-1V*?M*Md$y=#xj z?r-gJaM{-<<=d^jUVh!$8|B;)_t`8TZSCXb?^^pr83%ne{>gH4)G%v1fcT)VM{V%4 ztvxBfZteB*`KTGH|3V9f(*6%l~eZ2f*yB=qUMGa8bPnNH{9ksz@Q3I^kV@1;5(GJ?F=##8kWC$QZ^S?ax=EEVf^_J54T z8TLCd3)IYP;REG=)_YO?kN);P;w&+&zLt=%dWXm;o;qJg>h~oGGa@u7pj=29h4VT* z9CU#K_(){Y6%{>$AFvfx6a(IhK#mkf(-4ZPMREasP zo#``}3*P4H5Lb|5_FnLo5>jUk^4Q`49!9?1vvP`;Il*2F?!y;&f2Kxi(3f};Srs+W zd}muo+v8ORR0k1thyWk06jcN>iqZB0CQE@h&k8tE7S;qkx-IUbR~kdo2sM<0Xh!g1 z?4yNvD|-`LG8cF&ma(id7ZmEhrL=fP6;BB^)3UdSdj3>UgB*-m6tf(S$l&47iw{&C zgrEfK=uJT0SLtnU^_GJ|{;Sp92ZDWSCJY;|DN#`06@@+Q7s$K_>htMu(t)eT3 z0UDk|GiCkp4?xpLMSZN9k}L`#ZObd>qLFQv>fg#eEYpf@tsi_30m+l40tZpGudol} zaAkdXT4<$H>9C@#;9x6tZl3I0Pk+g`C=Jcio?!DHZZal4B7UWhW}&}4o46&3)l7<_ z)2aZ2xrkT6bHjPbvA*4gURmDq4di?-{WknjCQaVQnhJBH$^Dnyw&JSZU=}XQZqRw~ zLhGTgvOOe-QGrphhvW&q!+qwKzNXKWHAZJ7<#2>?Wc@h9Q;|haRX;;s3Di)I=gBnS z4pOuo667~os3xdt>MYw-R2^}VmaZ7)iP4LdHaO_qd|2Iq8l#wBBk#_!xhtT1e?a?m z{0nxni^`~wOi7a>C%iE9g|pTfjYvkbT}MQF;67t5OZ8z`DbKOaLs9HSdWPhi?uc8; zrJ<>wKVPXVOP_p{f6Qtx_C#2UlTZTg5BcXC&dYV6ul~JZHU>C6Ii=Kf%hWXH+(n-RsF=^$t%!-NP7&zkVx1T7hQDKA};`8{vTT zKp)BeDEeYmWK-m4=m*a7bp5%pqoBKX8l{fe53sJ6b}e;$QQA~jK)0O`2HCZgfjgR0+`Fx!RuFBHs+mU^?BTH*L zugsn=&8JM;;h*cGN`HkIef-P2^FxqbBlgx1%O%7Vz+n410Zk8NX$pFNbuXu}B`;fE4x;;+RPG zj~-9OA5mB%Oyi3ELRuB|l+44YW!sOXe!9-ceBztN=|^9dBUYx#n(=!;Es2o5)_NrK zA(!?lNU|hc7C|0w@$GkEv#dqnON2TKeyI;It)i85VKt?OUSjz>=caQ~IIYww&kK%2 z4AL9nd$^BfMYMk!YW&^VXn-P9RY*?^5ZvgTkS|7hdI?P%;99zJ zg~O#tUtz?;-x9jb^VB%L7<2^>Xkz<7t)JYLnh278Eoy)_RL|&Ce#}%!E5a!6uCw#R z@LTcNCgrP)1$4v#cucJos@i57K`i8)N_nPjn{sXC%o(*xe-!_KCp-okXfMmgzrF2R zap)F{P@u!DvJu!~rOX<0-j`e$JyM|}qf&XxJ`3%PwvcO0_Fe}r_ zRUok1i+kz~#?ych7?nBqahvjge1R>2tS9j&@tb_bqBS`zOVay^l7EdCzA)l|aD_EC z*gg`C_;0p9y&H%9;np6Pe`@VX*^PecvtItSwKwW}th&Bg*9O!+UVa&VS?v?$V#F0{ zpDcgsb~tR_$*tGJVgGfzzFyuI@rJH%l>1tHv;4BPkL%kYz#K2Hel>i(`kyTS%9;xJ z#rWTz$0U5m<9o4AP_M`S?2ECsq4uQi+g4lO15rD^8_l{4O+}-DPx(4l z0^3Eds%pcqewVNTyS_l$+dyh()JwF>lDwW30`1>r9>>CqItJzBkr)*oq;E&puEw+0 zc+o??A!9SFEp~?)89^C=^zD4hKrU6hpc=hL0q3=%_gqboS0o-$GE88GQlKTjKJ{mM|R054mE20_R5D=c)r6Kt7 z49q^Nw1SK1+F~^Tn5D<8_fXej?fs7e()UMyX$7M&zN`h>cO|YkGrld_Tk(vdCrJyO zMnAHSDmge<&DRd zzS(BD0whlheUxuA!fyNmZ(zGMenWqDoTpu+7c^%#N7h29tUVTgj@GAgB`RCnF%D0{ zJ6m5W$^H7#)xZ|Ku&0Xhu>z6@Xd*5!`_(Gl)UUnbcRpY~T29YlqPj?ANR*`PWfT}q zqqlU_a!vHn*J!c%=#p{<@Uztcdif}%3XWoBfHSSXELG~za-7BZRM#cH)YH`RuKV{_ zETr93N8l|pXhj$*lT9r~aPkM%ZK$j0SoC^-jDs}7FZik`5-SJv9&uGRt)8~bzyiEz z5TnWN;M1XI&MNI&oRtcN&JCsKlLI)goX`{dlen5k*MclpT~^O(TxA{8w@V6!Frq)w zCuHr(kRIun-v5<;jw;;5vCX%1x+9wBTYE$GQSgc!S|!x#!A8>M=kXC$tMEXUQV zFqIyl5iOPD;l~`?5GN2dbAOpDhhcgxd?X2?3e+ZAP(Fw6RO}$z?$f}q_p3)-6|}Vbjx4ORws4p%o(~u@W6&xfn#x#6 zFyjL|T14DQy_~jWeVG=cfNOC_iLB)CG?v4(LwS!^)-z^ePUMn*AFOcDVzx_xInvH* z!maVQa|Ga5)kgg;#~tjyboj9O;Sdy|+9Nq86FFRCu?5b>pvmf*@-TCe-;8C&8VkG_ z|9(rpeIwj$c|m@1BT9nhpWKeZ=xy#3K?JqS@W~tZ#2^p29cz=96$@;HyLDW!5uYQf z|KY5VC2E1LqfxQhl_57LKTjc4`FmwHPcl-Q3rOY-{&hmTIM1$Bsx%wF?Qf- z+tpJYE{lgf)s)r1E!QAMG3vo|H@-S2U-8bcvwz8&(VeHxu`c$l)*hEPuzpmpPs;mR zd%gUqwKvMmtP|Bfn|d#(wvU%*+VvCVb*vxN>nF9AL_5~4p7r%u7ke}B0@dr|@;9wL zDPL{v^>Q2UJJmiL<(sX&Szf_APWAeUvfkP!%P!~Oa6R6)`3GN*^LK8$$=4_4Pg;Au ze5tiJ%CA~mXAB(#$?n-YR(^6M=vUio<*h+Gwa4Y}TYFO868=-y*UNruZ`9md*Eh>I z+x6q+Liku+KT)1>dv>gRuC>?7k6U|O&V?_m{b!T%x2?TiSZA!)w~v+0)?TaU4b|&A z$I7RDeP^w_I(S{LpNdUI$OU+vS}W8P)Yf@SYER1d+V%Bv*>pIi_mMsmw6?So2_dJ{ z>acaPp|*Hu!b*K0w8XZK9jw#ni&kO{GcI2Aedv<+C9;B-nYW%HS|3^u{0W|@pX+kf zNi;Kem>M==Fr4?cz*@RLgmO8W9X{u}sP<7V!V68nHRIvl<{0jNZq_h}7O?Sp)^@<2 zKox+buWYPf&%LQ+V%TiPA!@;Y|M$q#@Ns%OLwR6Eo>_-Zc&OYn3LN7;yn*(LkGZqF z3Sc_=JI%<4?WM6|4C3vK@QC5G5|Gi`@XPYb7L{oTc5E+@@e3aYrh4lLNug>0$8!a6 z)Obu(C+Sr*r-~8yA?@49rQ9O)K0y9U_j#87)yD_WqNK747 zPzTq#cINAr#a;@5ocZ{h`#c9{6m9A*Ss>LGY(S5DRu#BWku7_SrEecxr_deMe(dTVnl{cvW%?g`Wt%@LMsZZJ#NUy5Jls^_MxEyFwTC zlZr=*4^*i{=ad&~Ow|;@V>lAMp@Co*HwBqu2#twlQw>iP)vgrpI?@>^*c);LY$aML zsRLSQ!wNE$8|meC^$vQwN;?z5lQ-d9Bhrc^?-*~yAMMstmZcaZcPvn&kRM=;K{VG} zvFT~N#wTlu7n7&Jfzd(Z`lLoWAF%@_;^r+xK8=iLva=V z=(>pXzL#fxCG#-pm8M%><>%l9oMkp7j4!c3*S=0}nMv!=OBS9VUoB77*94)7y{ouu zElB^!oXnkLgSk8@Q52Gce!&&E-fOJwV9yC!b5d+@0?34dmn*c)xI}qCd!Wjl39fVUcdq50F7dN zN#t@RSaBgE&ur_NaLXw*81$R&Sz_Y2s734Q0fM$P$T z+rdOJlxSvOf~@V#pJRUYgBMr=MO%*tZ=R|r(yYQBty!#_or)*rskD!ZS{qc=JG1F! zvDoB8vgzPytB|`GQ$N*WSGm`=R(VRsv+fT)6?vPokv`w_N`jy1eE`&9cNM;PS<->N z-%W)cDHefpk|Jdgi&e`Qw$^_7_odpk>9oAl_orJy_j%vxtdt{eZDe zGBk=mz2A{^n|G-xe%@F7Bz#F5Gvo`ph-E_0`CF3acm(Ntc)p67F%J?VNNq*&=hRWL zvB-@4bRTcYj%YkQ3!_mlN$W9cqb}+uo*&(k-C%q?J^!i-LS>Wt=m=Nw5XA7>Au3BJ zc!`UN5b$+JqehQ+Ah%FVg&k0oshWi9me>xY9&U(^#8rw6>F1SA#?rXg%T|(ps%Qf< zBVyx-Iq;zJpTsx(hGL55<@x2E?UBI+&jI}XHTDW>Tvd%Vu52b=oagX%is}<8WkZ=k zA{U~$qAO9D_>_#*qcFE3HQPqu#$$~dXZOR0i!0y*?+vl+x<_VAodqf`^V{Ac;XE79 zBen8_9^u+N)(pz@w6g)I83+3%KcNU<7VzP7xh`65N9zx2!^5E?IFcQGsXEDm-v`k9?*G*0hp*F1fQ`n)(qrZYkty2^xP6MYFr{tb7bf5 zTS77BFula{v{B#%Tv!ZQU1c0xM`Czh@#tbbM!d)V16fZEsx`Xn*|9>lQlkd%L5%%G z=n{1n=`Ot9i{I?wl&og&Y0yR%JvmI2g)YKxbO)#}M*DEPiu6lnfLVM=YG4WOjq91& zK)X?cIO|YD%cWH=@6u33S;;pYt+LoNJVSEA!-f1 zQqP)J22YIQchuf+q-b4;Yq36d(>$J;#QNA<=P}GA_FnM4;rd*>7yei7Gg~V^YVC3T z{$cGCYec_4kC7&`_41dky-~i<+MDGg^O$OKdab_Y?3{Xq;-!^5w)9=t+9mgMbukt(6}%T|Qeo;?ZV}KYYW*K27j}0aA?Y z^MwTDmfw-^OYRVffj>~1cl1S86gdLh zsKHN-NA)b;I$QkOFqTjd8@HqnwFKr*?(fcVT;!*@h-4yzjKw?KjEx7#Jw@2ZY4pG@ z6XPL)IsV1qgEW9U(vqyj!6R^EyeDeRrYL6AaP1>7xHGKkDduwopR=Bd5#?0{zbFA^ z@Nn33&aHr>?3)0J57n_v{UJ4S+-2{=h~zesrfZF!qfjH(4$4OZ7V(OFPS@bH)&q~*a^{;h_FB;`GGre)oK^Y;kFf}faIn&{ z0`}6TdM{PjV`NP6AQGFWP(lmk3yv{W(X`C^9E+rw{W}>eQ7CqpH~*L8F~`Zb1oe<} zbo!RAe#P7=$zasSSz1LJHU7+kGSXl;sc1hlT5>n6JEuZpYb2fM^kMRMIiQivN21Y8 zNBWYY#resffLK06`5>GS%(Tc`o&O?V=!mVZ@?_JR^aM~wCHc`ULX=l^mR zP<<{A)A?q^9%`?bXXkOr`r1bM&^&%xj}K1&ptX;eAGAIv%BR}1C(HfwxN1H2Be{mP z9_Ro5L%SY(d;IKpJ-9HRcRVdyv7f5Kus$t+75k>t-YP$LpY>UJZS0lO_3d(d;Hmab z9Lzj#Z%m{2yd5zdyMAh)h~d89+LQ94=ZbH+eZ}L%#^8^6oQUE0rkb8TUS4N<#>U`J zw03+8E%xm`6EKN?ecX0A_#>;I-`SFErbW3_rG=P5_73@n_mZ8=RUFxCmfjyAQ(oi4 zD{=NC<4Jz8>b!B-%P-zidV|$glqi3O4F_V`2K5;Q&5RrM??vCV7f%RY{JrtPQl1<%rY%Lk}ZAo~P#P}b+<^j3&f z4tCmRHQrGNu@4nGudMeriCOVdj4WH)L-kU8w`oe2vG}Ia(U2#01Q73mBl|FTZ<;-F z$PjTZ^Na3S=iKcI=EB4=8FEB_9jqJ}QhKGU~D)iM7e%m9H5nc^G_Lk+aywFb>Th}aeauDrvJ!?oK z!K;i4d8N1ak7L;u^%3cWW=J`j-%E|@(sL4PGUWbClP&A(LB#N0RZ&(l!~pKS@G7R+5)bVfse!T3rYD{J<~Td}fj)38pJ^t;iT zOU7n zW=?N7v}5vni7nepiq@=Xd{ey!m_NqMNX*UK}ly-|MJ+MDGyZ}79n%bC_bQU0Q}PnI9M9l6(A|I568 zcV8cupSO0L8~0{kUoUsJcGSK9Pha0GuM=(K zfYuY`Ypu`8@{0ds-Y4?H-*4@;^4ZoNmo39Eo|Na~T^4e$jezZ^=4a4w>xi$9%ja5q zQs1jo|Ml{NdET}W`RhmLx#mXXufJ;7kC&gf>nF_JaewG>;{BU*^L%$BaQSL$uNP|k70&TS`QAML-WYF|x6gCyjq&mF z-qt=*?)UhUY58JnZC0T^7D8vs?K{n-ur3S$K_`8^mx$ReNOKczByj| zpWiFL=k}%Ta_XkIes*@2cfwv9x})~Ee6(GU_rO|vqr5)e|52aKa;&wFm-}1$MEOE% zpDdfNoA(bH{&s7xmDm3#UmureTYFM|(Aw)|>-FxlQ9jYyo3-BXgU~T~b#?-3Z4#gF z?Ay^I85Q2f@rmLLMQGSwY^v-#Puqj8@=wIxve1skc~Vi1a~}C0`N?72bT-CTy^Soz zk*^{{JbRAdtenVbSRd$X9?nPbRf@-+3y-`QM^MeU8Z+l!=T-E{IGNo=MCg9|h{#15 zggl#bhf!SL5BQV=3@4ptimAo4Ku3t`J2+jgO5a92EF)u6c$J@oDVpO zFsR=^X}#GhFT4sz#eP{=GIah|yvLss*Dzu~8}(b_1$;EwBt59vijT|C5`oF1L%~sl znz}8ug+)pAxnIk8?#^dc#bl8R+YyK9?G#5eu9qpAU>--!_rgdr)qub*2HU zR=}=2oGJoXlUI2pEV6RY#mF5S$Bd(j?Xb3i42d`BuWTQ-1FB1MlrQ&dKE?uB#5(iu zwfsrWyK4M<<7wBomMa@rg`uswcK@{S_zN@}d!ft}oS-3=A1=6dh%fEyTB31Q>5_K% z*xeXW*{FDD%w4$_cf~hkgY(=i_wJjTDydn7$WnRdoaf0|?aS%=+f%^@ss-egL+^Md zFqJ*Blmm}^bI*NAq^t^X-5TR*=NQ;nZk5kknpjm{^f-z>@k{znRH!J_aUFh( zcp7aQHHa6rMe&@hNgt1}J0;w@S@$QN> z-5+hd9HV#_1ua#CABj;}|LCi=%lKizkZa+Hb*7GryyBa=gKt=@&5f=>G1+R3x2P@G zhuZNrk|tVVTXq5-ODZq{r@wZD&0%lE;#~A|#Y{1g?Pppj$B?e&jRLO=!N2}&X-T|1 zINHe5$i6MGV`$6%UbUOHHt4-pysgQ|iy)TdzIO5GT=Jjk|`GTpIX@4RqRHK7;Jq3--^z2jY0` ze?k|s($6!BG$fVcD_IOUq;`A$RXkNZf@Bk~5WRmO=0k%NZxDkIYsP8ez)ai&4z0Bd zBRvDXdye&ep_xxYf`S?e+lzz<0&x^xk zUbFDq+MaPIMtG>k16XidVrfn8+!Y%Yq++3`%}4NC^*-yRz?!$|5+*dh z_cnRQ{IUmTKD>=&mAmw1L^L05Hl2Y*7^enfk)STT#xE1Okn_r_6Keu9QJgF%oZ70; zay@-VUw<0zI5HRI37Hwm0!~*4n1u*Set`EXuf)AYDY1lO-(=M^a(~*aGBS3(YWDzh z;0M7g-;QLYsAq_5Z5M1+>drkvV`AVq2gD z@&NRvo-|nRQ?U2yYQ5AY_o+!J$8kEH5fUmWJK5&Rxxqh*ueqWtLCV+^#GO~nR ziE?K{+Tf1jAgGPZ$cv>f!cu|-H8x~Z5h~nJ3s0j{iY1e#g78PS*ze0PSy|?gR3aPL zQRJnsEM$HQUGyZ_<|x3Uokv66LNEF!vY+A-W&*y9)}&)dBG9Ei*&=8J)p>ZwLsHi3 z`RWRQ{5P;WCi0$2<{|$|nIO}mI%OIux_GeCgx;ECc5#IGVGpEB@)vP>|)-^~-^UVug$wWl7+Yv=1CJo3S=aDn@}Dvl8(U zi70XcQ+9YjIb;%xftJ8A#j#hSC7YUYH?$y@?O{zVWgKWsMEHl5(&q;}6RhwCIpkk! zBJ>Bwop|2X4;;y2=&jt$^~2N=;88Utt1I$wJR?8f!@AwZ1dEJ4(GTU^=we!OXwyfF z$qQ(N_7mkfcOmltejrySJ%k*Li4Lrd^wbm5nPG4H3#yYuhS+gN7{wpa3GXb9YTUib zN5KUrJc1)X#W31gjl_`aFf&wiBu`t?rTW3uI;XCr9Dq6A7rw=bwR;!Z`K_Ohy#)`% zpL%UJE#Gl_ds_G9*X!}E;>)pLptg6W<-4uDRlk3%>$CE7>^o3l^s4#w(_7{DT6Ntc z-AY`~P0I_$``lJ}`;mE{bF=dK){ZmAjr+Ns@>d>b?^yX+Yp<0{u@9n-ALoC3wzVha zXzV@F_4V>}YsWjXt-V=(-P-Y8#@J(`{wK=s8TY-D&2O4Mhoe7dz~<-4uD zUC+8zpPljr({t}sx#Old1AKa6oBbDGZSC0W5ql_fJ-(OH+UwRJTxAuv0H1<>I`pI(9?bwU)$<~hdfLnW9e%9KP^8MKJRi9m3FSoUJyw@9hF?9Vz z`CM!3J&+5r?@M(&TVdID*-S-al5$xq^a)*~*EDn=FU;Ey_)x9fP@klaYIMFT{~-(8 zXP4LvbWnE0v#xqS#4)9yP21u18AX5CM4#=k90&Bdf^7Q5n3;2#_#5wirQ!mH#I0m? zTm>$4TyuN(iaCf9$>WiSoS!pw`$|P$xf0gG z)R92)2w8CE&Q;L?YN^@+Hrz+{fHYU{7BvM3g$KNL4zQRtkxdVyMIuy3MZ;>9^nfS; z*&yO_%&H8y&+Ul9$a_R<(QgRhFrzYs9m4|swVpm7?;k6k@9oi0O2{nXj(xhZF|T*y zt}A|vdv-1bUA$ij>RWD+bU%+pkbP8!r;L;ARhnh)_0L?c5LlZ_u0&o= zrmwoxVbAwcMctXV=ZRZ%ZeI3tUi@{YPRcdU}4wyZv2ve zVQ#IitT9?Po2Ti2&jLrulu$R0y^fvko!U#B@qI!7_$ zG{*Nk^+Wr)dPKC#I)goMeHl5x1_L3qz7YS);wzu=y|iugR0OOwPxNI}WqkF_NH?|! z-LhtB416Y3(g@VGo(djGhKD$@KDrZJ$9C&PCC1Vo#?@R-E@s9x+!?W7wT4v#uL0wy z;Fi7#nY_xe_G5l$!$)IR22yJILdHe8MQvV`H|qAxWoqCd(8QdluM3(#R1BaGR1nP$ zgI7|7lA3}8U2h`(*1AFja2~yGDYwME4cJ{jYEKfkr#EslDnGQ)Cz`Y`Q(XO z%bZT^!IY|@YQ@gLu)$ZuDqsWjR!KrH`L&l7Csb2gB`u?7n@?2p&SuSo|EczKek}hgYmv=jCi7NS zfqJ|4@v--a_b{=?tLS6O^f=0nrKJ0mqbDOD!YaT$po53_ZReIAi};VH@hH+Po)EU+ z|Bk@G)lfVI_MdfWB3nEbqf19bCpZNy$N|;L2w#~GxbeT%ZoG%ZK8QIv1qNss89L13 z3ih6?Q1LgCkW`=_m<@NhppkHlzO2L`T`4JydoUkW906uQ%oAv$bD!jxtBusx9W5~r z>sQVbfDlTKVg^aLat!zk4mp}47hp@7VOCQVXrL!r4SleIcx`J6YhT1Fz^ij>9*iqs zMux8{N*~|LMv3mSGpaC%$_K$)aa3|I-}XYo37C<)&bSO;S74fla8+x{{l782@=_7 z@yM7Dvk@$XEAxJvcobZrKF=8~N6Y^ef8d661KHN906BzOwi>|3T)?Kv10!Dz45>s& z!qKI^MvoQe3C%z*Za8&?n1xXo&%7YQLB{a%qCC*v61taGQQGnFJT^}K7S+;b+!oL1 zJ(s6~2UwTfK{A9isevt4ZFL;~UV7KgU0**^%7;~Zo!xn9TK=WAx5{_tb>VT;H*cTU zzQ^&tgNQU0>Ec`ed!#KCe5EC-GjbX|nU4@(W+z-6|iA_Z%y1yR-5ZUq3jX^p10b zE}QmoZqRFk?zR6tlX72cub01S?TzxI*4`{*&l?{UeNStjC?9Wa)r=C)`l67 z_D*0Qy*t$Mdl2%2M&VUtmCr^m#ogNbqESzUJZH5-_EJ%`SGSdyF^4Rip2LQs-AFgp z)r@ZMt+jzGan~^b)l8p8AUh>{?0B2=Nr2M%sAD8qeb!L9+t)%fud#L3zDM;l4dnIE z^S%0oqQ2HkTmfwq&j=@FJn}o}rM+qT9$5lB`=jyXDEO}@HGYl>Jp?^bA0w%LqvwaP zqQe?ReovM%<2%PadKT*|%a^Nb^w3w-SruG_>iSsQ>&Z{#xbg_9hhuefiCtTSIzK;Zy{WklkOo2c-^^m3{`>@m#~eSK;Z% zLnQNp^bg|qV(p9y%?IlG^r&%4x+st3^G4K1yG&N=4*pb}o>uKaYZZ;;3hQ3b551DF z_P1wyYz}{xdIR~(y>$dQMm8WCjoREv4SHmJm7WsnD)-B*1YJUFwR&>cXyhGzyszlQ z&mj>Re_F1gJaM4T+#Q0u|={X(iiQYk*uKAiqYur=u`TGX3AU3 zda;5qlx_CV{b9|$dcD_*wXGMUfDPOuCPe=h&ra>Dir6JE^v-U5&x3glm2ew1Y!!vf7TCEe*ZhyHv3NKD2Nr@DWdX>fc#uzgn)* zd1xlMkU+KjH~un*?MIcwBCoPCi~!WKooV?6*~J*w)>N`Il;D)4QKRE_Jfqn3(dw-< zlICR|WX0dFW3{+XEEB7WT1#`L-pl@tdW%_jpbPQ;PE_vB z#@`1GzTJQhnZyIZCB7@p|HSLi92?~C8PIPOf8@>aE?hy2)1L4Iyc55O^vP%GnLgqm zo{?|Ds?tZAOnlN?txNF>c>pd|v!0Khj7$vxyTY?n#w{EC;+kYs7C|$umVWSL4-Vc! zc1pft)ttzgM)r*MD?EG(fh+I<`*LmS1tV&1Fo}Q3(bglz|H(Xun#5V8-WxR8 z*edUv=Sq`}*wfScY?oj9`sTFUG0&AIn_FeSwP)ogt-W2p??XN^+1x4LnCDHC%~Rzq z^PFh1dAhuBo)b-uPs^uUJI+#V?OC~Rp8HIWZpLJ?<0d$bQB=jdNr_YkEdL z_`K;E=g7X=^t?y;;I9McK3mB6O*(|$TcUdli=^Wx&`R`8@ulp9-j@6&dn(qDmqNnuGweOnPAV$2ADUwi9uEW*Y3H+I+2f=*Eu%|U z%UoMPUaz-u%G&{kUx__|td@Y864a+98N z$R~0Kovr7L&A3BZ>7P<`gRGkCqVf=fd}4LvYTgW=5vcTU(1IF@MNb0U&XrXwQHFrEhbs6MW}s>dw2Gjy zeZ9tcbSe*6{Ox!SjT7}{0~uW>d#Als1j@>?*JMVGzt&=nF_gqxV;1NjFW+-pGKp1{ zp8;;i{NRrEN(S_P68EpY^J_RWxPc>?4f&u(l-^|CDjm2td>*=Q%u`Np95;`=3a@L! zojNwF9K=pt35emZEa>&@sNb4341G3>ZPoMo&Ia+&VYP?EdpM${=3IqOH37e)D5*wk z^*u@Di>j3p`SpI-9y%ix>z*J)g3W`hK;REjrt{SQRdydqR=$VMSyrV>?2}E~k7aO_ zX78*XdauzMU@MS%HH=c24LxT(bSY`b87^q8;wq1W#%pHoS<3NXK&)BN7)Aqc={ha? zNXHY4tMOFMxTpcE?LqE6@_ zn7!j3zKQF-oLu{4Vq?naSO!Lrb}{~PjL}oSw*$by?%Ura{@TqfPGM`2X1{OxRQ=+f zY_@Us-cwPI3R~{)HKm*vW*;hcU@yLdeP0QIBRchYnd77CqnPKVjL}n2BT(Df4G6F; zi}ImtW|f5}G6h<=hQ`|tV>wx)B;#C$c~-9@fBCkJ?7}#{0C;=sPKYn)ba=^cDYAev z^1?3%S|BvUR}X=9^jn)5+a}#&?p40~#;lnjgk$7+*yWc`5mVzo4*#x2MXa78i^C|n zDEX>ktq0GkCH`6b`=R&~^{(}u_pH@(u+<)ypQ>gR*XccfZdxL%o42=0`QVXxdsfOP z-QF&R8YMNf^_@~4a{E*%N9Xmf_0w_R?TZKX%;7J@Z&hA~lH%1&#m3;{x~l(0<9KtI z|FO^gyRXE}SbemQwQTkBOx`c(niw$;`2m@bVh!)lVs@>XxQc+)%^c#ncoOfXzugy0 z_P?scViyc=dKqDgB?Jd#J0qN@YTiUu-Z2eU2S1rrBl$@Do#B*r;91GvfP>6i(ysBb z+^YN0H(}X|Uqm)w`p5ByUW?Rng$UgHU2b5{HNlKk7fgy3fEw7fo0(sZA+Ym)-%VEc zmiaj>;mamE{W24f*g!E1e}E#Fp|v; zPd!+aC3pd)6@SZvK~wJx2TOb$^!I*3wa4WG>mZD|Gbw+~+DC1#mpj~!dj4w++k1|c zAG?3pVgAE@ZrpRM{BXW5vl08m_!ivv;&~zp*58ln2YXLkXjUr$43~9r(7cH|y zSFOMZn=RWVAA?@n78qvomaOozuCMoHfDgJ2tNsb!Ue$8E184J5`G-G_8eYPSKS3aX4euuI@6N`f_!tnut~I?iR$bMgUr)1*8j z54pljvPO8S#QY#|RfP)P*iVk4oszIDd-C4c-Siqf-}@?faW&*mktFumoMAlKM`d;9 zD>)YUazY~1VT7}RCDzq8J0ahlQwP3csqqHT4c{dyUYv6Xdn%2R7C#!lV;*McK^Z+GIjwAD8h9G`w8L=UGLN?EFjV9n#NPX763dZ^?G>kvuEO zTYMMye9QvIP$KumDJ#z^{IWGl=%JKk5$u3h6%A@oP?ft{3+kb}@uw6!fV*@)D-ENt zz`A=WX5fB)SqOQC{>Fs!s1<7|!UJ3UcdrXM-tHU|>8bWtq9s_lcgJ(KKmE6Y72Sb9 zmO@gb+`o@!sL%*1;u+CRx+l%$`NdiL_rqkXh1FqxV$|qzXKRey@A_laNko7YKWZwjfY5_#<+!Y^?3OtG|rSxaD-%EV<113Dt zzfEGPzN1NKMoJ7mQ7d3n6>M*;zm{oc_D&wl(9l-w2Yjr&4XsA%3sw_;*ivicr|OKv z3FJR1*V@wqFL*-xqp&;F!mw+C7^?+c`Mw3#Ojd05IQWQF<6zgWJ<4HPVQE(kf=9OZ zOTQvJgm=3XFbe}qB>$?0C+QYNq#xj)c)UD$W=%+T`7n95P1oC;I&aZAPj5l+jL0>V z7gVaIi93sWn{<&sed+QpYe9x}HROUd8@|;Iy=*h&$8$y7(DH57>)VG_)(B4c1PsXu zxj9;ghXrfJz3j*#pZML#0e(rGzISGGZF5?lsIl;w&GE5m`OJ}d-*_M8A6q-#Zkg8` zHskx#cg$-HoALc=z70i8y&3PLe5PHG_d?qB&2m5Se(iI-{G_!{l-IXDC(B#s@pu4H zzTDc8(|F8yA7$S##J9O_YVGy%SnIRV_E>EOUauw(VBXDx5=Z{19SPL!t-Vn`-r7MO z;~V>Zj<)uRa);rJ{XYCx$Gqoq`I5%J$T>)FB}du25bbd})7q2rg`0eRz5JqG-z<-6 zKUegRZ*sTxiSi2am^#kM@;k5cprUbJ?6 zhe~^(;`;IOt=2wKZa19qEj99?*Tw!W$i<}2X&H4z zuU&HoJ4KA-+(5rh#dET(*dQ#a{v|SFzmk05C}^&z;cWD9-i_taItSJ8^CY{M!YK9r8Z}n!0|E8dX-?XKaZqGMHs=xT4+Rs>{fSDECyXNhF@u9WRzo zV==XJfefJMrg^kic@5-4I^-C$Ifvv`Z=G8z*Jr$@4HUWhh9AQAP&SiKfsyprr=q7_a3qhmV|Cyqk(Fz0L%AHjBcRHw zY9n|?>D;-Hv;BbdY)DuSd%qUO`x8(F+87qF1%Dt=W=y0eOQDz->GL_UoHd0U;**)> z|5>7v;gJT(jzJmcx{g1Q&p)o%Bem36fCCw0_RJxb{Y>L(=Ba{C+TPph!*ud6iS6m+ zcesdRQ+wbvl#wk_Ht2b8soH27DThcMAljE!lc(gm^6I>w@u4cZdP}FPl04J&a-|aR z_^l-6*yaz^rZxgUb{Buu?5toAlw&KT&*OZPR-idSV14+czBO62Wiy?__HLIvE_ z67l3>#Xym(?2c)`9k)3hD=kxA1$*}4^MCIpo{ML_5+nNvZSW<;>HYsacRsj*tSjd3 z-@HbinKvspp3Bh!Qlw|mWO%O1qxK@e6=%gn(mMT|uWJ*1;2n|+mPcmP`>H-GfEWT^ zp|936c=nFKX&SWVE<2@t#<^jW&#+B&U7|nD9ZN0BavBM`o@c0l4b;V2VLMC-W)+^Y zC|T=GD6w_c9_T{sAX@ZQIB}+@0e;*b5s%9I{qR>OnL~kFyZth7Od~&5`=r(|J90){ zO5O-O&=w>U+EW|B_Ge8Bc;OLN0bbCjr2UevH|P&Si;ZwK-?nS_^jKsbrsiuBEJ| z5fXN9oWTp{6$b({*@O5hD)Z_c9Jo6qPfG69xu zYbTw&cvcGG6joe)d+Q?~LBu8d?_E@v;t9P?oRBHvLmrR|vMR5OlT|=fJn1m6lH6H_ z*`?{)Jd}pIob;g>O|lAapdI!gPgE4G`*TL#-J}kFAxVE2&p?ZeU!!)ichJtZW?#l_ z)G~Ia^&I4SW^`@G_s!e&_?~rZub11YYt%j)<*C-*EYG+0@$yz`3boIP@>FY|EH_g- z;Cj>o_FH?c+}+ya^4->+lvh(zsQuT=Q?0#GKH1vwUKKTk+UIzAwzW@`*HA~O*WN5XdYsWiNfxoVg%a`1aGdp6qci9<;tggDZ8`q^RczmRD6xe7~JSR~O-tyk~J6C2{1(xqdD`X+a4CEp8 zw7dcq=C0`b{(yn^uB36y!>*G1Lqe6=^2RGR6YGZ+))63>dxP#NDYJC5WM6SD@FCt8_Tz~TKAV91!NbYYWUsK0w!Y*mg!19G^G z#Hg3q?)PWMjVe@q^}m-TNl#WX`V~BA3RN_M_PFZGPS}G35axi{Mm1OW@mHS7d->lM~81ViYi7MXdd4McasZz{@56y`7 zxp*2Xg9p44F3iuG0}%(;@%q?2?G0hShoWur1@php8x)ahG-h{{pOFJs585cVc2S8u zyk)e9)z?G;G8Vr}heWAXM72TD5?DDlxivUU4`I@4bU#X;L7=aCw}W`W5tidSQ$k-7 zk?vUIpa*de6a~xk(Pn1iF8FR*XUrvD5#=Cv=#((*rBr;-dNI*2Il1CkeM4;))F9r{ z_ob8r?nV#BLT7Z2E2Eef<{P|n4T>=pWlJ82h>^TS{K12`-W+kYRu)0FSC(Cs9_m-p z4I)K&fwdG}=%E@1nCtvnG@PtVl+~y@yAEH>7l_a!_yt#!V&*+^3+>IX9$xSIWM1Mx zste+jcSp_QH)AH96Vr^I;SmwI_HqnqoSXzAxKG{x*8AtkPl(D zol2L(^UXy&0VYt_87b`^e&k9P4CzNMl@1VDk5p z6KOs+A5F2ANZJpp^{kTep$r*+D8j7bf+z{3j!%g=u<@z8viR0w?m!9U#8eO&3CU1= z?lTcztXJmOrqjA#p7?zn`N12G`1-8;d28>Kqw}0#JUvzZq_t0%U$pj_x)!W)&X#|g z=L+NLx$?$&elVWCtGwB;On1u`v?zjoeG^$Zz~?e6Q!($mi)0D!5$VXQfWPjbjp7yi^JL-pO@Ay3@{c^=1(q!X5kGe%1LVi70OaTg z@r%*YF7ZpY${ZG_m`gP!cq<;lQ=N{EHObvkej?*K%j&R>#S_${(Lf{|SQ0j^5)fsA zqxDd2Je_1*c3FG29Lc7wR4#=dMe^m{HS%`>SN!U))kLHB?szZ+pOJ+(~Via z0}8CrLw-`UP!9U1f62G2tq;U}SVLAZdRj>Pdat7^jvIQP%=6Mm`%P6j#KVMP zaeP~BFqNMKYi7VJVNb!9zmZZf$vWJyLe3q$AeJ5*r;#}`zn8wltPECU5muu1C*my* zMG;vu7Kf2Y=EN3arBmib0i=4=bPBHwRPxU981If};F#8nu}b~UKgI^CUJg|K1Wx75 zf*5;;3cZ2c`h;9Vf5{>;V$GH}mv_+If;eT# zTAdzjbT?kis~93Ja>d>A$C zcPo|LA4*HA#S`GsiYNI$c{w~p<6b_!@0|0}bFPvV&+f<#J5C$fmmKJXF!sLc_sfL| zf9-R=9*;yOCeu>iZ>i&Lm2ztC z|0i4H^7r$&V6rtSZ)n%o%et@6N_nic$K@05GnG?v#Q6Xk8D+xe5_*Pi!at-R%? z`S=IpvfJ8|@>pxf8O^P|QNGgJo8`N$eZ1Uc9vz%0x3%`k@{XweRygmD_lQi-yCbHH z`nax-%lle;QvRW}*UL>&A6K7^dKR17o8_O|_2cD(Q7hN=6ZIV=wNIAswRyM7j|@-j zHzYPJ|H%;`rybxiBKT-B~;URhS*qi;E7whHEcZC^VQDYH?R6bp@*xdcC^9Bii5zK_=tFfD2rI` zi}5FCyBJp&YjIFO`?-N^xJ$)VF8a7Gl5YqNBXjlyDMEzCiX)S*riE7C!N9hk{0iPB zl-qL;YIx|WN*z4IclcxBMYCfSb@HzkNf%3^J z@l=D@Z;`aW&?xHoZ#Z`DK$FDhzVnO#fl`{0-}y!^bxo2m)Q+L{6G``Sbh%Q(l<~jJ z0fn@_GNh9w9X_sFuelgcX2b|Zl1duyuqXGc6`>+w`B%;}q^J1_XBG9Rio-hFWAplj zEaHA#fs)Km7K$tn=hj-1^FNK2nYO4dT^ARLBXb8QR!MbDvdqPiM`4+P0G+~GAQ_9f z)61c+IOa74!MsY-Wg)!c!WpwWi0eR)1-!TXk7@&veR6)r5 z%$|Hm=ro?BL+|%Wl9WRLp?6Saz1wzKRtUdEFD&vO#VqfSKeq-|ut2ONgB4srTXy3& z88*2bd%RdP-e8yEcC<1z*@j}*9(E(D!dqqS6ww-VhN$n$y zgd^qMBgl#_`rYhDO$b_G6VVEs`6-~mI0&%5v3IkBqojvR?m(OdDT<1@+48s zQw`^w>*D<0^MM_hEP6lL0Hlg_S85jh+o0(O!EAM$k-S=*YgH7H6$Df5|Jr|?I-v41eRiDMXI(F=RO5b}La6s4P?~mKh9R!_`divyemb}GXO9v6R z-x({0JF$1`)_`>{-ia8_ht1=?oU^erZf9_BuS&G!!!q||^p&JTCE$>pkD7cjAKB4P z*iNdA`?c1n`-+VEh%kK(8Y{dEpLTYvqOP=TQJUyUy%T-ztL=)a5&~%*S5+@f7;NA4 zMl?@c2psrUfvLYJWs5M_tEu7zC((XY&3F?C8x4oGS}%FLRB5s1n- z`mmV8$-=pcjW#0d<9H9yC#$(;3TI_C%yn@b*oP4wbrPSEMIG)lQB#>s565U$pjm-Iu8An`Jj@EovVxUu^9Y<&9DI()E+&nA=g$d$G0SeE8NLmrq4q zs`ig}S^u@Q*UQs4`FgxR+1i`sO;OiT|KsH&t$m_?f34y-otDqdYjW$;t@5+ho|W5Q zRchU6eY#z~*xDg2^ZMU}<45LW&Zgy?t-V$L z>%0!PKAV;MTYI~HTdl%5+bMrHuY0X;Ps?{&d#n6QYtPCHo;SV);CkNryVlCNd2Mg~ zU2(?#yf(HTYoh#D$B#A9C))K%SZrTkFVD30M)`@y-j$|d7<*IId^ zwPU}l$BFN|-EVl}-QAzG_KET_)Bm0rC+cv|2hXHONIa*$pj}A2^<=p7LOzvx1F^3B z5>XKmzdfnz97q$Uq%AVvprVCG4p zA4M3lJv{|(iylKbe3$3|YwJ}fMSjC?%HZ8*K~eHXc^i5B#8H&M4=vs~A5Q>PAG<2Y zBPwBDEHv>qzk!8yHU2mKGM;`oMo$~v?^bZssoYL>UYIDZWWC;Bqt1~p$9&3g@gv&r zF^U;>gO=DmBxLAYM-8ezBFy+J*OrynX&iaRA&hua*;YZTC>hI2p4Oj&hjqp$Dh}j5 zP2Oatx;NfYVn=;Oz>HjhcXK;L+N(J zt%@D6!U@YX)KJXls376b%8D}#W$dbrGShHwIIH}N*ku@N5@`S#xdzfoM5y=yKc}cY zvkOHX!WbI^XY);wQBb&_+4MdWnBnoUA$`pN9ECTPCuUc+%?=D~P9GsI?>e~<<4J~J zew8q3dcMhyD*#ZRY(#lrUlSmE<6dUl(EQP$AyR=w1$x;g@llpQRTZSZuX2kss)x%i zNFt=gS#6hX%j}Yv8cprvsN6qH4h1y*j_TArM>W9gwdt%r;yW0X-3R|O{svz58psMI z2d8n5YNFzGFi;D=DPAHo5-+V4{FZ&`&pA|9IJA{LZx{pl5CrsQoW=DGc)%C4EO+D` zI-e4rs=}fCcyX79Z8g&9RR!kjsjU;viI-KU0K=yakx}S^Es_){w{wO*s_+rn_qvj~ z<_G5MNv7CSF%r_J=kQ2=e?z_+IOT^Q49M~w2kGi?jvQk@XvoOejD!+f$Y{KMaM+X6 zcn%o`d+%l)#Z&kc_=7HJClTuuSha-k@ZAi?X_Y5E+{X^@Aa}#vTWB8@0BRFJF>11* zm;lZkhVw8}mNqVX`C)7!$}LA2%&RviU5}A`_}9=gpn1KQh1%>@#HtV@@b({eS02wT zMF8oItnG}Z+5FDzVRrRQi$GZG>g@-f>7kgJ|HWxp-mIn}dsOc-hRGNsdmUCOlb)&S zqr6|TiSN0*6QT^P~qO-_+iAq*S=m%IJ)i?h$!2BfqqF zQZ^nLTC7J?m&Z@R8~LQ18;J2pUMJ|+J?tMGxe=dAm*ov)C!vS&wC_f0fQ}Uqo}k94 z^-BDe<2kTdC54I)F2)%0Y<@=>sClQrejx3#-hqP_NRK11RlGxTy%GZj*~zaQNU+Fe z$%9ej6TGtui(;Yun1PjTAjis013y-_;4WD6Ov)S_0&4go3LqsZyYdIB`1VpI9bvzo zBrb8~jX%W++I=i+Y`v*L%1fGixjqHIL@CQ57$S>M4od-EUVRaEmSg@UM_k1(@Y5bx zJXGqeA{|x}c?x)#PkMm&b|o6zkQgwPWjh$h|0Mcvel;uOFn1MJ( zasqVQ(O-2s$wVIyDQ@)n1=0t06hjlnzNK(q4t^W zoxiwNeib!=**&{Emv?r{7i;_C^x$Apc3;Ky{pp3%<9ha)+B@~#(%C(i&Ys^X<%7Ub z+tXT4_)a_{?{~gRly|Ej@ksIqDi_#WD%+vAJFq?2Vd>3U)YXuP-g7C}*sYvJBK6L7 z?ishFPzOY-q>FIF7MB?%2SaZ0t_ANGBE{05QP4(F(Lv=X63I;V>eL~C?YYW1*=Fek za)&Gpza538m3C#l!M;`_%PNZ&9|<@w;{e2Ybp9@5`6>QOxN ze+TVWpNnRh&0O}do;{saUyz&v7xn{A2@Qne8Y42Ls8P->QZlABYu-t13PS! zWbu0N{`-NJoaII>0`!1~tRukdQPao7H>(%e6r`!=c6v(U9LWhjypN1U=V5kqKGrHO zgr%C*wVa)(X`KzIIR|T}UO|eqgGQ%!Fy`&?N78ch3OM1Pc!%$?*W@ioVk^Z}-UY9< zA@&~jt3tVsbC~X7xip9M11U7#w55;OA#9*?FI~0APx+N?T0B=c?EG|}&rMhV^Wm`j zuc>Pk`v+&^{QJjSJNEL{HHx?%`)GgF+Odzeu1m!AsEe~Vl=03+UHld96Tay7)*hF) z9Z?_7_~$?RbKb+3TYFp{bDwyT>b3YH`o!kuk3`K|?f52uug3=jUhnI1yyeH^5X{== zcqzZ~^}yx5_&~;)jSJ^K)^?o7|3qt#>wf5ZJ=Ot!>g%V*<;}6@Sl1`z>DFE^Uv2G; z^7h#Ksy>_LFIxL}d8Oewb)q~H_5RxD?0)$aei(Ryo9i9<6IQ(I>v; z%Uh+-izxdgp|J!5DLDwhclg2%G!CFndelhU!ycZ|sJ*~Z7 zp15h=XMe4HtF_1VTfz0&{hji4UW1iSQtW__<4Hy4s#L0Skvfc3aW0T!rtKmM zuuVVQeiJba@2Z-EuG^Db4GhQ?uf!GNDQq1vBQRzy8a)@(iX-Vm)^J;Bi@e27%;Xh& zkF7DFk?_G2G14+MavUlr%;l(tTn$PQ!GZHIQ&$Dc@peBCIgjf>cAKqmqN(V`im#FZ#*9no@AmZ;v{9 zMS6HUi+f3#{}#VxLqucf1mzcL$^1ls$gQNGypycRvUJ#(mtsy<7#Z;c@jn^xsDnVd zDw^gF-9A22W{nOY|B?q=j9L6P#6x{UGE!s3Lu@CfGWIJq{vN2~c*fJph$W`y43Y*M zvbf6OTy>IsTn-!+-LuAm#qoYTAh%_Z?rW_eT;b4Y{GByrJPh_jRY=95uI=}+ zu`9`@TjpljOSan5idI+>F9d#BA#ip!gygpkhjPbhV7nVuhh18CMsC3Spt20AlncL6 zTz3SJRj8xdEH(lS z8tSO3ks68f7_slR=6%f;%gD%!_LZ6R-WIT9%ixo(bn;?5p3e8|t^4`5g0nsN_{iKR zLaD=~V-b$DT;M1lk+bjC5$})a;c7s~eK?pl_rA(0Fl2sJQ_Vf|R90ItqM6U-xhgOkhu==jc; zsL{i9IdGQs%BW8@Z#WNzL%Wk&*;7(i+0Q`T9m>cXK;gt9*IwY0W|gkU)-lScX{lB# zq|ZI&vqxXqaTGwT?<~l&2Avo?Bkg{kX;84Ip{$T%QRtiV*#e60!`O0Bm%-dC2q`Us zk{Pt3fp(`}oeIh+5=RcOHPnjo{eNTkakJvOMHJQf*ES z<097p4ucnnB*&J3)v&VH3ra{2nGaiqhGYGQ_^hJnOPL27D?OEdz^UXQE1A8g_)TEu z8BGKEBkg4e7C1)iKb-q=T$N9Bq$-ak=(472FRxwatE8I_*n8|bV`zle1NBN1>k{BL`c4) zXl(23yLQ5C*BbHHqVD>MsAF=C8Zl=Hs2$%-iaKv?M@{p~tvxQk7j@x!J!+JnZ0&LR zw4aT-B;NuF)M6LPJ)*hD^T3fZ|qyNSFeLA!Qdx=k0#RiR$#U%PBo=Ch}ENhNO2B6h3SFi9K!y58!EpoaPqb%M{KY>-k!xK~8 zczxMe<}AOh$}+Z25t84T#OFYF$HhSIQ#2MmI1!03^LKk>?c~eJi-uknjy@6bpKYt_ z&OM(0*4lFNk(gQ%0zI*23kqX@;2<^F`kw2z{J#Sz3X)*dyP_4#FZ7S(cz$(3ts zZxcA6TlT78^IWB(D%NCsS}&Ku?IS#jd9acp&{a?{h_igH$o%!)FOTVypvpUmAeYRRhS>fN|GqrU4Q z8^Juwm0Ly9|MBa!mILLeemh7uofwEbUOTo_R}jS&WfK7}O4e@lN4t=xN28TBU9A_` zBPga)UMBmyN)EVB{f^!`m5(b(1A0&F#wwt^30Fo+vBu%=>?QiFt*|)c|S?8cGDoC{MO8BOXjI_@H}?~@vsiu%lvA) zOB8e?_2BE_gKyTp=)>1!fs)-tveEn+HI2M>RaiKidOWGjlQ==PB7L5`s@C+Nobu!4 z)ic|3Fw?p?<1!i}$RDSTC%?y&$g(REf$v~L+{8TTjaTv8`~2YaVzu}nsHZ4P7K|8o zxpq8?IridN*NcHyT$e>&T`7j|^z5l8?}&UVca>ik&WuR^TytHvr9f%F>Rr5WGkvHu zudhkEKk-8Pf23YGjG8QDy)~<$L|2&^5M%XK(_HbS@&d0MD?Sq3?W@xAO5oSSaqYUV zcp|EZWV5#M16DEXSu5D`Gq-}_-H)8D3>|Q z#h?l?Jw94*TxrMmwQ9+`(L3cRV>VZL!944^qWobMH0&pIfQo4~PgQup6|j%@`BkX>Dl;6WCo1e9_~C-;(LLg}8>%ZnUy1?OTNF#_GA(e(FYRxmm&0 zx*+oOo37p-R;65x0g^)Ob>mfAj|2D7H8`{!n_;zII%Tg#3wdefGvBGcmr}LT*H^r* z1&^%dH0;XrbLdx5aA*tQCGX&ZooLb12MjBYv1%e5-$Wz+3%n=b_*84_eCMCXZ}Hma zJ3IQ&=tFL%&me9kx1$$SV(*(F!W%#}tOp!`$NXO2<>u@GY_PEMEj}S5?Y$zJ>+#zj zE?4tpRkcp0v8A#E-Qfn`kDS4L(XQKXCP;ct}5 zaL%YkfM;-$>*?X;pBAM--zC9jK&6)=4QL;6gfn{VHM2ceC3X~8RXm$Mbabft@XY-F zJyX%)NAX*-A}sp78OnfUDSG;dhp88<=rRhJb}M#3ifxe2Nwe||SKj=kqDSV{TiRHaOKQ!Nh?oi0QI|rxgMY`vZ0Eo;6BMkQqKmnz_(wcV$(P1JFYPM0bg7DawfVnuB+k%PE8a{ZBrSw2#Z#-C}tPqr01LGPOXMmN(Q*&p#9<->EX z!)JY)cR0#Uc~9&<)u_W!upMN($|{h(OTjI@32BHfRDWiFDJ!XZ5N~40LwXIUf5+|i zn32lvzkQrz3nRg4Q46_H3&~OIbX0`U%~88@ra}ph@&)YaQ(eB_PmG7)+ptfz=Pu1X z`O*3OM?30V3)35aZV@v-2`+3Bg;o=3V88V(Nvy0e9zKVi$NG!U&Q6B$yy*5) zsdO~nk~tb2K2~myf90#S6O8>Of(2>2v2pP^@={6vm;U6nVKRk)Dx-7TIlQOnilq2$ zU}&5xcs`{&wPBG5(3}1`Uk6?xV^C=|oqiKA-RS7VrC4{cuN7FI6uj`gs|e5-DMwzWGA zLvn}PVO~BOdqC>-i=}+Mwc~xy*rT*R+ud0UbMrB``VF2&oYPj{c`(;u93x(6_3nC@o2==r$Q4Lvi) z7_TXcq7bQwF_nrjQq&C-5iu&}V!Xy{q$mn8rXn{Lqv91)5o5#{F(O9)zx98gz1H6E z-tT@-e+)x%nQGp3_QzV!dcL1$J!@?}!?(nFeo4=~DcX8wXWG`MzS9fQ)-xZEww}3L zHBCDkZ@;j$m(n{j3@U!n|1P<$r&GG>ww_Mui}_u7*_-*6-le^qena=%UP+(2E86Sn z`!k$8Gf7KL`&c^Bv~~VvhGFN#WNSOU-(#ITr~ZE4*S9CC-}%+1y_EOrYAjt}PTy>< zucTk|xVpZYzF&CvGi&L1(_T+soVL&D+crPhv^UdZ)ApVYk$5iCXh#Da&hgIi~1(|uj-!|6w5bA5d&pIzbha{6J}Ubk1$rfJYH56|N}Hl;U53q-Z`evR+m`G9}t>e*jF{Vr=(?eEd}e42Vc z*Z#a4Te-mTY<}>dWFz>ZUNwt1f-2Um@$7N&j?V$HCmm1OHWZJn>uvRES$Z&SLvvf# z<3Ge18CWN;(}wl2&j3d}DxPz64>tm5`^9n zhPNzr6Sbagr26JYES^j`)5FpRhC)*VYj}9nhapKj!VFyR{b$HFTvWI%C=S=zkD|ve z)wwoI_mD;?kEu70W6j;d%)1pa4yToMGhOrgFY!)^&Y}mR$MWu*Gi@C&)o+!EWltlA zm&~le4!WnSrTQbKz^C8X&$!0Ge7#-zTMU|ZpJ1Xrqtf3ZczG;q5cWEd^`%w_8Iw05 zsUgQ-U)#`A=-KwwJzcf_ZTCU^v6a6v;M4!%l0~0|j~0CvPMd|cZ}jn}7+{41s+M zdm*7Efe<*+hd#f6`~|kfbqf6D%9+S!_}Q?p#m^wZCM%CFYR~+#W`9^au6Oi=@!+rW z?qs}hcPa13_PzTg8~%z0SmW+;b+>zOW#Ar~d&qwX&kBg06-VZ&#{?J5*x84!&6tN{ zEN|JXYTqa{yY1FRX=UdKT@Mz!^_&T?WnFEu69*ff`OeQGEX~c%WAEGrNS$MS_UwG? zuc)nSZ&7aeIeo}Jx1~V;;eTw}mdf~vXiF_T@dMNA%J1HNXxdhO_j_JHZR=d9Pe)t( zf0q97>GdNi{eHZAG^L-LUe{Km^qT2)@&})Lm7hPhaVot{@g(pZ+u2HQeT~~2lil>| ze`(r2wUyHJ`HfQ-(iO#{Jb!$0CjI{O-Qzo_(+jWl^;47W^z8#~pV>T{{kqWp)iA5EWZ z+LQFjfNl3J&iw7X=|^S@(RAboL;RQiQ6mb zmz(x#&N2Lsc+R?MA}ztX7Ct8$^O@`&Qek@;|z_(|1tpB02 z(d7rl%Z7SOSFNqv*ka@qs@SMwBV(l4DqL)Hf?@9mz_%7xOR}OVK zCoot;z+8FP{Cq1I$KTk_xaf`x$I?GukTXj``|wdLFJ{(%O zucohi9q*6zS@%)uCFq?z!3&y!`MN|k^-Rv>H;G8>^X=)EIIu`Aer7p!)6_NI$N(WN zV2ZI~y{+s{Lnc`_uKgBg?Ks;Nzb@9^7oRs?*QTga>K2CZUbF`s<6UYNS zT=TGCsQH%@*Qmw&rKyDre+Lhy&cepdlKs*8ydXomY)gJow4m+mSIIrUL0kc67#92# zc3uNP=mJY$Sqryc?a~ma6fWn4=h&N!}f%)g^uAV?qg|e zi@9=-YzFn0kEsX#hQqxN9bP>l=*nH6;$gqDuSTPWnDeVQRc!=}&Vy`eq&;1IyRL5P zy88)vKmyPKMRVKtZ`)8{LUV73=h6GmX3fUc<7#o5p)(;x@|ja`XHEOi8F*l!5zXN~ zp^F|~6h`o%4avbuFYSMB^br!v$}3r!s6fUCEcJvNx(iP{toZ@ift&$i)#6dTgI)m6 za_-uB;evHZ-oQc@y?rw@7{{EkRL_T~5IExwQQeE0A=;K}#s1jlL{w;h&~MpesL#7S zmS;rGJ++jF0gw3d(BD24RKG0xU)5de zTl;1Lk6#ymLpfyFr-$Ad$XziV70bZuyz}grlx%VFeSoR(FDDnZWsDV=*q309V=i{? z*;?GO$C$Jt-T04aGh?uptgiOEH5yvRh$`Tp&}+=h*$~$ugCEakLoh*EX!W#w6li>2 zwBpNT<$FS1+`xko*;?M|4LuuuMI?v?Bm)qUQK>zLYrqJ+<=@B!-Cm5$!*#8lBLjs! zz@oq%;EXn&1vw%9A5HEED(pJXdf&2h^1&gj=225Zm8icVA8Yn;_9pWt(>}XC9$Kw_ z`;5lHYTU2qHw9hT(fB@k$QE9nb9jBWGM;8GL%zt(SQYS0go$S!Q9SdeYKg3uBY4)x zT}K=ECQAt%@Pp5f0pnqzBY!k&Wf-ligU~r%7bVXb__)1VvgRi=uh;$A#SHa{2CNUu zOsR|T-8xg%)%+XzefFuH5k}xOwEgfbEQ4^P^Oj(bvHN`?u>H91bu}fNYpA1g!+QXj zL-8V`I>UMcdRk;2esbp^^0^}$wJ5oxvKXzNO1H7q$;zP0&=uWlU!zk7rsJlIoZu6TdOcxWMVGVEj`N$Z5dhEP< zMq?l?{)VMJKHG5eEpQi*hg==3d~|Xevv$L4O`gX17oyJ!2Hg5k& z=8ec+&$D%fB5?Pxx3f4;nj5>^UB@xQ5;iXJaP@HZqhRuKw(sP@x{&O5^pbhmPj%F^4AN@Rgm2%nw(Z?=()h<8%Q6{X+vf&5P#u!041`DSH#?)95t@oBhL_apPAc( zbRCto*$_1jB);y0H{Z2~VUNivc;>a&dp^JAy6d3Yt!jkD^zIP6p`F0dt-+kq`K@=o zYa&mFy;whUm-g0vU%sXd!H3h&>bmZ$t?$yQ{>W_=Up3d)(p&Y8udk;MH0>klD^2@o zx?6Q$`56^l{X)~$nY~S0H8`qW@-r*xdedG_UufEE>4<8V{LFg#<)(cko&Vmrel-1b zw3ptJ9#G9ueqNiv*gxjB&X-o5k=x7ZD@}VPy`VZHUtdjsw`s4XKW*CU>8fgo{LGQ` zO4Sg#eKcK-w$7%eo+w|}#W-%e}ORcV_T#6 z8{cScuE#06?P?D)C0N6Vjjm>lT3-@7uu^0lghp__<)FBKc3)+zb$YH?8CT`USrlXv z!fW$46nqXwtp2p&@)Kk@&__Us-ivH3(GN5-gpT534L16N)?0cP-`tkR7L2(<0k03c zr@&~zaZP`4!l^MO(^7P@*A2r5FcA;Lxu>M-(qk03#92rmn0Y#0mfY!LLp~jw3 zp+LmTj1D$f;v75Y3hU>cC1xC84eF7vdEYeq$o>$rLuj19T;xTZ0kDTc<^d@N+gvFl zyN1EmACD^DHb(GXs7g1?<}`cjH7$bA+E8+u${D?B%MEr|A$Gpcr)oGuhc^*t=Ggx! z&>a)pULSMr6x@Q3phg>8=&Uk>a<*i@wkW*j6BO<7F;jbHJ{g2eG}n;V(4gSZd0sfX ztaC)3D!dimB10bQ5rv0e)SS5sE{jg8=~ByLJ>xcx59)m+1$>~N`TJa^@WW~aUC>H= z0n1~;^UTESw{@27V8f4PCEmF-cn574epcYW4Gk1On<>Wrgo0o57|_JopUenYon0zt zk%vU_Ewle928@|Y=@aRM&x$pH67@5t3>36pO| zbPm}^I~9r;Zek-~4*DN#FlnvB+su~xZL4hkSa>-+8q+HzCF*IZO1P@NO8?ecUG9fd z;v`j{Fb8z_iM9NOw`tDmqia|bqAX_WDsSvW+_|VbLz=h?CGo4J%$#Qn%nDlgOGVE@ zZ_nD9WGM8Dc`PsuPe2oUrpPK+EQ2Ng=25`+RgLSMI@egu;J=U>OLpJ<;f9dm;H0pP zwt(1ON9?X+v3y(3u%u8dGWmh;pceN-mm=kG7*^b~I+)?Z^X%twuevhZfQX&MNIkho zOI^`kJGydv{CRT=GT~K>q7R)3sQJ6#_(DS~>k@Ok(poYNlzIZF%`co)92 z4l-rn)E6}_ek~)}it)GeB<6(g+&8D}v2P15#}z~VC;Sf=pcfpk)F;%IFPDG=>r;Gq zvesZ08*O^i1KPH`^W8ef_S%*qA}dBNxl*hHGQ%~jOp#MZuV^Q)1;a0J8CKT5cd=n` zs`4z8cW4ut^DXx(|M3dtB~DCsHrbc9q})qxYhN1Y%jCB9!+k#5+7EX~`HFm9`{8~e z+Dgg1UO9?5mZ0Jlk&eQpFT-QSnDDRP<5o{liwqW~Kv<2Iq@*DXX!S=;y3%0wJ56RaB+mA(C zustz_L0zWbnqF60CA~xW5T56}p3g;FFnnqHyoOD`I-LtysyAt`9?!GW?FW??qOD=m zN2YBJn^vZC(Xi=N)Ap{~{0~}bs6@ZHEnNMrX&d}}W!eVLd++iyJj?gXcz#9Ce`(qV z9=>J9bsb5U&(om|Jf9RF&<390nYMxFfZ*BNI7X#G#|?jUOQZ752mcXhm@Ev z;q0Oxoef}Bn>8KuPSNVf3AzmT~S2VcwHN9hrm%beP}n>o9x zoU=^c&_J=DcMhZ^mw^2^_ONrbz0nvUI!Z>7sHre4lz(|7{Myx9Ib? z12+3!wTD3t%)DXBVDZt6zKY)#HWUsZF1POWQ+uK*_7DDxtRgY0xzs%4C$Uj}GHjYP zw9n8h{!2}*Yog)#DaE0Qy`sSLagBq;gnx-jW97p<@Vubq-MS{2`e@fHM)r_w)_6b0 z54+cS9xm<6(ih1b?~z#|>$ddZ*p=J+>Eo2<&&gK!4spU&f$)^BJu7&h)_-+1^f+wz zPo)|c8Spoco|T>n8x0O_egsx(v7_+B)e5V#^t!00IGubycmc2WpLiD@461>#XC&Qd z5O|!wqoR6$96==-akVQ*;eWj4uK!j>-W5dfDf;eArp$Y#xA!+DYlBbaI&i#usEY2b zDS{OVX>g_Le(<&^-FGxL_2^^)h+p?J27Wsp7dEM22Wh&}^oM_rtb?un^liF&7aDQW z74hc@`Xa2&p=cQNfSWzs`erA43_>O|8kY!}88G*@B;SeA&ImSZ-lvqaY|rf0xu-uayWOMg zWokRx1Y_X6jKS9!&|K_bgPL1v+sCObT)c-h44K^zw-7-Rh4FqFdqa@T?jPAtzr$Mn zad8;3xSL#eN>zEG{H@NitL4vU|HPRbGKgfU;VtC4=7L)t7yf)wy(4qzX(W)b$!K^5 z#h(0?96z4WljP-yCGDL;*(((uZjY75;xH2MxDo)*>HWF}e8;j>72I>LTPfYGo!pOn z?5aO}gAGC8`faXYwc`X9Jloqn>O^#a689-CERo8cn8_L6fadMC0H zjxcT4B1=e)&p8SBA5P~l=!}jhTk@h>$|>wE<=8BZS++#YLN*JkgBlT(Nt$N`&Ic8R^sEnZ7^HsqjS8GqxfW`j&2=?9wr+u0gt+P#m!)qr?+ z-TVz6%C`D(JtV6Y>{_x{UH0*zPXb$Hn87Rh)VndDSF8|N4-)$^6XIqnKG6GMyk7k* zIpVfo6WI_j>}-nPjNBdBE$5b-5S31i3;4Bu_%$_ULQbFuk#}T$$df^1 zdq(IfX5+OPxWA1Tu8^r5!i-_LdCnoO#RrFKvuQs0{=l?Nu6g?|Unkf6C(}0hnF8#yJRr{&;4IbDRv;(X1kPT%9kd|*qSFpGV_K4t;`r7v{9!GOt|)6}Kvqs*1eT&hBhI#VL1Ps8 zw$?Yzh_ZrLSYtI$xsITIgRz{;!83rfuo%SQ*5-ciU^9#MS+Ulh1*=FNqq089DkOT= z`k;(KmGg_jaO_{F?=u<=+XQ!kwfcSHGV>f#$*Lo=gJkk8Rb;o;n>EJUu#$=1(MVhJ zLpJr+!Ddcy0~jBJ+?qEs-gOTXy?;@e?_K?#k;kz!J>g<^$~S=_&RAyLv**qo-`*6T zPV1E4ul1j^$G3BxvTje?OX-`<^;OX(uDedz&$~|9?IY>Scf~VDv;5@is#CrwS#WzP zuhqD%?>IEqSJLa{llb~-`jMu+mOj(8*V8wf_K|cdR{)oAir4u+G6_^4U=@W=XAg zn%;aJHGU&fMzleVm33je)*@Du3q-uJSS>a7s8q+HkBVk!uR?=0*8m}nczet^WUbv# zSC8Rim36qq`*Hmjc}u9rXi$@g*!rf_+YCd7M+CLO5;}}G1Alk{(EF191r`q?%^jWz zK0B_rnSDP`#a;Nyx}Il;xX`{r)F!}3jBG2&_`F+FfWKK!LHkDpK;$q4PxR$l=EwCm zkn}%250=>zCW(?ur8c^MxYsu21175SnC}6dVT8SOjImg+2OBI!#nz(larOcumD-Kc z*AT{u7w`rG*8_)d)~%^5quRc~jrjXv*TH7IYYuhaKw*tzo{D>DH)OG(Kc0J}__X>XVDX8U?vb(wHl@uByFZ}Jsr6R-``_%Nl0%X9#z zM4guAVa(3s&g1I6kNX&ZsKm#cEJ#p5X4#N%*bG1h48-N9!3HC z@Z5HO%9<0JU)8mVp0H&FZf51DYuNj!XJ5C-4et?s*#|{$P&GGuGGL8=*OO8&?P$+q zm#=%`RXVrIDh4_TUiUhvpY^+Y+O8n6Auo+pk(wjGi*SD=Bv7d0C5 z@HnmwMfVV~V!!c9z;cP%y8CQ?F~e5I^nIivste7rk7xT)b0pfVJc9>#y;;jZ3xSEJ zrkZ9}pM<6$I~n^@>`w-#ZV7(R4Lo89#iw(G<2jlO z97P2$<5>;y5}bitguQSZX|zx0Q(g>@qo|0ck;b-HTsRJR+rF`5+Wq>))>Zy9A${M8h*MnEhU$!izy4V`cw5Ki$Y#eO3_JpqRK6VfeiR=kD2|eQK+u3p9)ou;$ zp87Dy!^?OvINARh}d;zk2kbN$W85~ zg`9V_!+F7GyWsg*7hjsr_-5*At)tL}Xw|?$cTRXjXU^|l*iqVwJi#gb&Hr{M+c}^1 z;c1(ES|Zn_>*Uk^B-#_z*WTsptgmhqATs!B7gjauLsvc{VVxB{4{hRyvnJ6$SRPBj-XwCm9DLq&*#jJvu*IR?L%$# zN>m({x}5NDctY0!KVLuRU#&yVYt3R;R~RL-44cB4z2@*uLI)$A;N#N`o;@GOYEf;9 zOx&Zn*7-a#-haC_@@(wI{Hy`O3j_P6XUQ@;BB-ST+_U!)Ec5?U*^}ok?5V|leU$syB)zL?`&*vxzbj`d@n@ts*05AHIz z*L>m`n75#vVHADzu^AL3H2WUq?)cxv&RcSBm07sGBx#TKa{4<>dnLX0uDHIMe!6L| zrMF10`rY+(zjUYDN76T%_R;ii|P@P)^j>m(p)E?d7zs+^4VW zyoRQ|njTYr)YsS2uQ%=W^akZbef>z@!{GMObVB**+*bbe6HWVY`nd4!>r3g1_At1; zoW9YtSJH9S|NHuC`qiermR|pt;`(~}n@#&j`aUfn>G>sAlb&eWOX>4XdpX_xkHj-8 z=~e$|v{%zBUK{PT^wUjyJstSVas5cT-n5UVuSQ#RJn{Y0XOu_(WYbzhy+=EH00^G$m_J*RI%`MU7gw2!7Y>Dy2Fy6E`JP5W^AsJ{2)>sk|N z+RN#LzWwCuE9v)|_G&uySL6Cx`Z>3k!P_4Z!5(>|P@lkyat%MTr1O0WMXqrIGdrfILFx80qu zuK?#SHElhAPh4M4AHFx*E9nz&jP`1J>Ib8}mhS(dXs@R~Y}!ZC=ie09B`^0)+k*2o zQVN1?rHzp{lS~#`f~cL78U)>O8N=u7PnW^#ieMkr8mg=^7Zxfr%n4v`VBc> zzJ4@)M9x=ki@ray7VX37bz0c;^`-RXrY-tvk<-^#(ifZdYPw$wp1!`8KGL+;(?|YV zT$g_Mr=oo{eK^{Z({H%F3ZDPk59eppUP^!3w51>ZdR$*gA8XpH=~Zuy>uc%LO?y54 zlEON{qkfL02i_L#qv;Q#Ej%AOHoY!9f2nCNrQ;iMUHs6rRbO*FuCJ!wZrW?xM{B@cCHC#y}Op~J{|4#^qK8wA4z|BCfY~S zXU|UCn#(88NBeO4oww)qIxzg;PPBC%P}5#cuiTC6((_GwHGN2KgkaFSYw430qP?EJ zCZFHekEFN0BicvP_q}u477V}Jw6(tXPv`4LfZ>;$_EI|ZBXNB>U2obe=@0&yxUO%g zJrwP=^tE?Kdp&*nQnbZ*SE7A1ec(O0eU!0&t7$K#H$4*9r4O6-N_yncxW1a+_E@yn z(s>zR%~AcVr&nK%_L1}}Pe%J_`oz=Iw&wexzY*=j>E7$nUP>Q-f3ziZ&qZ6`U4K5> zI(O-xjrLl4?w^bHdivBqAMGRQ1OGy_kEUP$7ik}U3v)d5lhIyEA8gvo>FZ5Fs|d zt}mxwZ`v#Ahd&nASJNN=tI=LdKl`smdp&*mXQC~8_p{MHnpS>p+7=97``4p=IQ_)G z5$&b)1OH}jXZ!nOO?xSQscA2#zxnZaW+i>AX|JYBpNQ*g>6L#g+Ux0yzZmT!=@TzT zTYl8PHEj!?l}|-m_Uqq{_ENh4---5e`od?Ty^=og??!tyJ@fBHdo6AM2hm$tw0KHjuf()Qnr>#OOjza8zhbm@1Z zy`H}H-$eUJ`sjZf?W5@j|NGp|cIU%QdnsM|YFuAVulpaOy^_Asv{%!w{r$MUmOk`9 zMteQ&d@b5X(hvMk(LS1f((P;)zS^{x(jWd_en!`q({sNc?UnS{|D4-dhkvzcFQqSh zJ+3dOpZ{N?y^^l{L9|!X@&7g2@?HNh+VVY`_L21C|65!?nqKpbXQn+R{HwTfX%F5znlq@A>0sucaUTKcl^#Uir;vA4$*tU%8!i z_?MgZQu@%J#P#KL@&AtYN;>qdXs@O}YTBwp`G4a2dV15hqkSZOyJ^dA{=d`fn(qsL z8tudB-Tz;-m(p6g3w?X^p~H$1nznqryW;w4`p7Gyy_SCRABy&RdfWFz`$&4-_eNVj ze6%IY^$`h&MEtINpDaOMNCdM;Bm#;WC13cF_n?5 z$Fs}CQTrIK0{#cpoAWhbg=%?nNFMdL`sEsX!N^@RG9x~a$Mbs8gBcsn^jvM;Jdo~I zoA=3=Q2*ldT*(`bL1rpC&&PTw*@;J+o+o*J&t=HSY(a?~!N3}kq3e5s6(I29wSCWS zqJGI@zM$(*s2B3JVDbsk;{{>Cr+Iq!0C)iV8@X!Gr+@{H7?=G=-ud=?eiAGl*VVY= zQ#!8*d)?We%=q&;G6&K-^$x4Rj7J}Qb?0GSbM}Y*Ld=62zb7>pxQ?d`3D3SKV`?{J zjT%et*3{x#(NF7bAc^tG`uz0GxbvW%cwSu1=`!6JoYqx1h-%O?!X469 zW&l>b8;}ZaY9ZJU(}kVgSFBS31$~^J&Xj7=?sx%r{7&>9wGm{{yS!umFn)l9yd;&U zH}q`5(%1;Q>KoYLW2j2rjZ8dQSzo1Z@^p+h%dcLU@Y%9g^X{f+M`r~Vp%XlZJ^@~G zz2-xB*C)iZwb2u(nXQqRvHo6>?uZipUf8Z?fhB}C=w+~l#$|qJPwv6#-c3F>w!gVT-yyrR)|(xk^otGH$a6ym z#wDoM3;j}yy=Aso4_B^lPBBqi_|Up&Caya-KQ^;|tS&YpbPVob-xW5LYWuMP&vdJC3tixOa}B%_-zkB~WZOr@>YMIk zeeVhuERN-(Pyszz>$L(s9K|@$eB2uz?y>eE(H7KAd1nC` z2h`fkvxB$cRL{}%RY*7*8+ocd?PGeD{*iIVPmc;Bzq^-Z`ANOO+p#wqKc6Ea^Eb34sRmTPR_xSLx`+H~$7*A3J85%($03hg$A!&Ab8rt}+{cd-}U7#4o0^B*;@Ip&8#*D{6iHlPf&YR9^0%xA>8&~ylf zxNa{SdP4m%J%TPni(l1~ev=%7HN4{nVted1J`Ft0&MbShz-o+5bhXIP(7bGIz({Bq zG%wbr^aSqVc3UrJ6TlE!oTpCc9k4RiIY;SGr%=$@GW4nG%qaLH)cS%I$LLTAo`$m{S~A}t z(OsB=&*B%)A#ytNDKd{=Y-g+`vG+jkXd0PaG*X@lID z5BSGD4rluK(iz-Z1FBo{ah!Ki7GgVVQ4xD#pzC8cmTETJ!QSh0a8dV=&L=8Rqp(tV3QFZ`dne(ACxf z8;xYL9uwJJxM2}rZ){Gx>IWYjStKj!90&C6+N8FQh#Ze49_Z->FB)sX3T3Rk%;yEa ze>zJnTxXB=$?5xJIG$)E>@QXQNC!Hg<`twNw34w%oN7yL&uI}!otKR&x(-bNMaHvo z?$0xarz~H*Pb6M^hk$%rIuXj4_Hak!*CLZ0w6S;Po|$j$H$!1KaNK$T2~i&$XpKpn zh!2BD<&^}FaaMoxEH(JSrQmgpZu8>mnqSa4=yG^!tk1yK(C=(Cc2;YYDkmKAaW@t5 zFn{u&>@zA+#B6@QNK;v59_#<2GAr!3AQEGJfY_{zWITtRu2--3(=Re%?b8?G*)HRc z76~5feIiKb`CnKjpCt#(JiCbB0_}kVT#(1RtiQ?YdR+rvtg{S7wq32jefAExdH_tK zCC9n3Pm9=(o~3X^fe}mLBR@ULL$hA0>CJi>dc62k=rixZ^zN7gQ|^2qV+Fh*>*O8B zC^Tz-fE5ph=#jM&BBbblJ7WqzXEy6PHj;70E)}v#b-p-s95x0I0YCYoeji-`e&&fq zavTS(;RwS_%XZ5nY-(I$XY3>SQbvksubqE1{?KlZRGPNv9Qd^4WYKBlBihkgdD`(S zyJCvgKBK>^t>Jt$7x(ruylAtMowt{YF7INva2fGwthtn)(YrC@GBW2P1lQPG!v}(< zJY)TQSuHS2ega>W==X&RdVE7;793yKJ!FsbsJbu)=ftnqwb9jJ9$P-7b!Mf(RD@$q zLtrJp;}dko<*P)%-USrvyQ~%B19;Vum;es(Xk@{F_61#`9dSFEYeRu;e}A4o@1u(f zuJ?4s>j12mIsO>W{l?fszZ?24!k*ySl_l8JiV$B$i29=~arUIe$b}OrI4OVGGa&XdRZl_BWtDa{jEI zW;M#|LHvUM(1hrBH2y}`_;@!rBzI7>&Lpw=@6NNBO8EK2qF|kMAov0taD^Tg zqhfGB`8(SpxB(2yCk>r(Y`E~U`>`CbSUWNsAVIqZ zmW&ze4({S>&^Idxxs8~@3Qto+%rV%>6UY#1Z&SCArOVKF>3-d;w zWE!GD;cVm=TMT{sR(iIDC#*R-8##%Xm9e7s0sV@OgjZ%Oe^2YJCv+d4WxlK&BDY?v zvp0+;Knjox#)>+Pf=l}}_-ju~x7b%O&W8N|)bY&bMMK!O5+k&$YYJBJ1K}k67jRcw zt)MG#p41cY6THui+c{uj9oIU#VxHA@-nPdDp1Zl>?o7sIq2y%WmH7jUjD7*XWj@f=B5bA-fpXGNCuN%g|)sF#CB zfE5mnN?q%=8`T`tp$k|OwrxX?fF-=$GB^9y;LTi8u!7BEMzfUc&S+ClS~d(bJ{}{~ zGu_Sj!ulcqWqfoun1lcE8pt7_+l-O3y3X^a5k5fZgwlh3I8z1fI=iO>?L>`}rMC+` z9vSP?=p$lx=XvNKtm2EoHM3YaFx8J}oBQ>|o<@c@&8-ip&-?Q{W9HUn=6hEnLW?pF ztSBp5u9>us0%GIR)s5k|PqGXk0o~awYQKvGL}Hw`!KM~?Y)y<6=lHGJ=G(u(%7$dg zv7q5cF6>8+S`6Iv)#&nA%U?2YJ457&d~=Ak?wYGc%ChD#Voqh8U_Cl zj<4;}kX2sH^Qhxq_zj#F>8$OcZ5I*j)vTXpWv+Ok=QH&pgM<}g)d20cp*CY&(kQhz z7P+1I-T@k;hKY4y8HKzG$gx$&y8Z|xO^8!zhF3c0H2Pkd0Q|?yy!Nsz}kB6tMxuLn5QrMxs%&KFW*!fy|!s0r|e`9nG{qk04are_(7nj|?w}pih(oJcE z23=hA#i(U}q_ehNdt}eTxWg*()eUepHa6bAZ5`eyJ`XzB`fMAy?#@1$%_GS3L$D5wr6WHSZun_5y(>VCc^hz>BswLogIeypu78@8?zuop3b@rOR(nSTA-ojV>Z-cjv;f-!m^*AkH^lI6&|_9DWX zhdscDz`G0|75^T3(G%WLy~0ppl4Ds0@dL+Kg7Czxndp(ZzbpUZUEB7esl00MT-ka3 zZJSLMts@{bCgT$txDI;uB-+WGW+5&Mp%1T@ozJ$>YLZoirm)_}Q!Jxg;~Z*wouU#MmKsZL%TIm++>-6Au};>641xVpo`r+#x%cD#Zaq7MyLcnKCg-Z`tpwiD`LkIf zR*URS6`bNJcrOU{0KeVY(s^{izB_h+>fjrj8eE0eXB5WhgAJ{0ueXn0JGy6nHw5Tl zLuJ3D@13DJfW_!<5o$g>^$p0iLRb1lTNhgL^#R92%r+>&Y^^)t&YPtj+GPxPw~Max zX)uIO&$l0jKDyYW#q!mBFir`4Ap4r+bpzx01cegY@+0lRm|t0kKr{0+G{dtD+TRSN zhO|QT)i>WROrc@Aa4f>pL*tKQ?|8-lRY?U~htsO?fvlpRV-8)7KaX><9pOoD3cuH< zaWXa+Sut<)VWpp&#^-@OxhmQBikz!bybi*6JDJ|_R*6)~e2IOjzF<9#n3Q-WVBFuV zpUpY|ZnE`6dl%X7+NpNmNc5~053X>wudljrSic&}^QCtp>csgc*du08;;>ucJ?0ZS zAiQ1YCb83u5pyf6#mFN#8_zBr%2^YtUC6LIA|<{>mJ4OcRI%=83j}qa6m`9lSzE3) zB^J@jVBOhZw7%^)wkN!9+jh^tOLzMkV|4424tBTV)!?O@Q?cB}=a`HHHHLn-mF4x< zHx8$_=rqc){>b+h?Z7&`zv^pmo0UlWUg%xuALE+itg(siiLH@cGz0!6UcCPr-{&{% zoyTbQ0^w;QSNq`n5+{w#u-khroy1!9FHPfH8Rw9)z(gu!Ah$A%d+MFsc;RHC7t85( zras;ydbMPd499*rdCWuZ=Udi0ptZ4Sucz=qAJ_K3F^2s^RlV$1=Cts%IBN-x=}J3! z4pu19VnP2dKE@&ntXjZ}<+z=3$~@e3#~Q~Da^gsWiaYo*d?z$Iw!3f-c@B8qaVKLT zb@BfGIj7%O3!L}+eEW|l`ta57A6R3D=QNHxDx$DJRCu!2uwV*Lir5n$-5xgiIV5xc zSn?aUZYd)7<{ZMdU?Y~r(xJuB15nhXVX+-khm{HYZkjpg5Ks4Em?{|JX)(k>nmF>H@F5r|c3?4z9;+}m6vNEtRaOt}$sHF2)`RzD4Q~5Xq@vCXykE2L=6?Jn zYjKt?dsz5%_Di7P5R7Ad6muB*J+7?K1?B8GJ&95HJ)zbK(RZwGue%$1))`&r35{8Y zbR9mGx{(ECm4m0yZ`36DYgN=)V^haZ6R0!kF&}sZsq_jEvClPW0M<%~EXQU5Us^Nx z4I~Z!`91kNa1&7#itq#(5AKk)Z|fF+-3^_E-)Y^)jtSQTct?PDX1W3?ARmsaj8U&# zldCk=i0yX8wT$OVPjrHJtdQ6BYBacr5#Sr2TjZ6=;489vyhr_ppZDw>O?Y%LNle7E z*Rrg5S1r{sNUd#@BN29FP`~vi^}4P9#`k^C$NQe<0PiysMu;!M8*WZa<31I(4}TZX z0xB4%H%p6qC6m-H;iEe~F|N_1&twWBWp8Z8xzn^eD_GcHgoHnxC8d^**l&-1htE#w z|6MWVQ}3W2vU%s_C~CUA(n|bIL=GNZ;fyZk3i>!`bfP=(2rmQZSc}bfqi3O@+rE(_hd@IH`Icn=Q6j0U-W4mS;Gr`*5l4l4euI!^Z(@g z@V=;q1k#X=%X6u5r)6U+!v!`S<=cY*hZlu6IEiXf=*+jiv9O%!vWN{Jhrv!j#}arX zAKo}fgxKl_sLbzorVcSjPrn|;Ma zJVY|^uB0Sy;`lavB(eyuaS6Z9yMECMX{s%Tpr}1hd`+SsaxiE|tPb%B8NPFwldv}A zWys0;+W_P7WH$pxB!s1a4+APgG0~{#W>*Arp3pP;$5X^A=xg|;N?>pX6GNd z4=32OVto^ytaqtc{`evd5=@?xceeFTRGH4!YQRAeAGUXu@@}bVL#Lyy@nda`3cSRy z;MNsWKm7V>UO?Dg%z9>xiH45>u!Bk z(uSU(P5?`TFYJ+qsn5!1?CpQEo(CgT{}HL74Qj6C{xNa!$=1~vqn|?SdUiKs0KR8U z6rSACD15c&F=5v$mX`%F5)1b^qKkfqXjelXV;H~a|I6yfRt}Ai9S3h|M9UK;GDqf) z_<>t6b4x02_HHU+-{dwb;;%))C014H!MP%n%1G)|>c z8WRl#hZn6{D21IMug(34Kj5#JZ$FjB-Wrx7W07jdSfxdqp}h)pF?K($(PU+>9yuYe zV9ZK~#~Q-&FeGSfXc%^pj5^w7OVqoZdC~7$GouyIT1X9=9$kZBC&BRl|?l9wG zNhiVqb+>46;PvTW#?$GHGuF(&2>ze14|B<^?tF7zbBp(Du5R}dUPjv%qmMVmVd$)y z&-&jrbp717rXF^(jjwgQ-x%UFXz9J*F)w^?>>H7%*J^`r#;JTtSj21fs%G(9?p4e^ zD^+Ec!17^Fr1qqE>z?eXUe5a3bLr;*QcgO+4Q{YEMJ3dxAa?fERvX+Saedk&bVtD4_RGkh#5zQq zKijrvh`(+IlKTZ|c%x+8u&v~B@6rGJZ+NUdoAG^N`1$OIfD7uD^+mBNNGJNj5Zog? zvg!&yu%^oC1!z?CDfsC6{=4cQ{*Q{$^Lm0@O|h)~+`EZT z*&>=E4rDdh5v08nb09F38Qo4Uta0PW7cHXADYIxr)|OF?cnKl zq<|ml^D`{X7cytmTn(NV<;+=~i{7+Moy&BjFZ6m;0b*tGNEqFe!T(CrcjDdd?;&Xm zG>0=$mo-MI|Ejauu2%<(&^9y?oZ!eB+}f_&+Tj~|ji+$eFxL07*KeM2*31e zx>$*TZsY^FM-HU+5+Zjn(e-QUhuniBbXJI&Kbe&9zNjo><-$8ovE*n|+xNhIzm9hN zW*toy+_9Z^{G)yCZD0ZH1r-fE%rnrP+#~$p2+wvUGB-sdq3c7|x;}c_ql{Vfa}fSP z#MDDkAi51*cUixt_>deg-qSc|utrQ~4X+A{C7XicC%e& zM~%HedvMI}-1H8ffA_n7j_Ob9j=%F3`x3*Se4ijCx?3zeb9=mdY#$aA&!p}9n6r`b z#Vp@qy^PcAgyaUR_E;6UxtiF1z(vuJ^G)r0&ZClj7grV4net(|VRtYQit~+=Ow0QH zTA$9Bj^Z`rM>u1IzUg`uh98@^q-taS3r!r}7I|Da`2L=^(KmQNXLWZ|{~pvo^JaIP zcybYFhNSXlvTDf07<4={53X^ZA+yP@ zh49zWi}Uy_{HEFGhdIstEovWcr&TYy|GUAi2ZkJZ6dw#ti#)-r=us+g?6)8{WSxpm z#~*N2`8+CG3wNI#rl4cs;mmdWO>5I)0g>je27xlQjJ;X28_u}(D-Th^g|Z;!RW z%8$*vt9ib28T*jhq2IE*8vk!ob`Brrg7g)2h+|r(UiHP>dn%s@NMtt<_|aqoC%QwtKmOh7;g#Q*73-7mJDi9OhlB9_;(V*Ic^r~9^jbG-#rBEdO?FoJ z#G*avRivu+jwiZeo5Gm8nNN{1&)0H>1}%Bw5~ZHcs9=zc>xyi>3m7oH|?k9VZF1TUWWXi zMfw<*wzHaxR}Ujvhbxe{bDEdeK+75icF(cf*Q376Y zl?*F~L=6Ws z>W?__q3fs7m-bkIiXAa%>-g@T?@)7r%#=LMFm2l!W>#y~kxx4w?31~piMY~p4VtyF z7m{1Jg{%@)anRmgJoIvfRCkqO@u>8rfMJ{y$YhgKC4z^H4lAlzB8V67V@LvLeO0(*_A1z6 zc4Uel9`)A_>1lK*HV0k{o~qABm`xPp7GPbhw;SHtYnP3d_5nt)hwr{Vz56zL&mDSB;JxQ4^QF+7B{p#fcYuP&cTkJBC?J< zSSLKbF>k;?}c1{#n)^hJOXXC|#AxGkHX3<4E!WuX( z`^T;E(G0hPccY3jED8PI3C^Y761=h-)MpSBpX|Fs|Ddn%Y2jA#ukc6kdvG`v8urfc z%+OHb-4u!<8_qbI-dG=Y3wdA5?VxErf-N#~#%>^6lsiG+myc$$jL+JS$lDRC*jCuO zW8VvPzB}X%Utmm^&6l{BKfRy?b{yXXnPVqqoN!R+b*F8JEff-qovS_2o70qwQ0}{d zHfSx&4>=iHq4&<{@9$pvjLX%_ojNgtq2E2(_f1iZv-FOswIfUQPW?@6y1$cL9H&y9 z%NH*2%kk^+RTe+-4}}n{`;UGs=`a7QP3pA$XX2=k(@vsxiU{Q6<_dT z*7hom#s1um>#)j~S-@QQg!nGhYR625{br)*_MVdB-NoAxQMT*5$x4%9rCtO~LC-oe zv<)aQ4Ef@V^nsswL0B38ZaX^%z#=<($uXHzpxX5uhi?i0MaQxGm#RU}#5>96;k?wY z`3rsE4!k>J0dw~Fi9!Neu_{>61~k*aR~q3h18}UR9kdc z+AIfc3M=F1U;4Z-Bpdlg%85$7O2FPnu5*40_X@?x+wk?38<}qd$Ndu0l?Lk;uu2ZX z-^$~fsk$ePLv3*_d1JK0c0Mb3fc~1Ygnig=_Yt1amT+`g90_L!$GuN&a=Z4O`rl)J zJ9{DCSiR|e{oYB%S8sjJ%Pa@%hig*KpSf<6_zyqs=`8DaieCZ`d)W@bfw9VlBwyC( zaFuttaTf{00Z$q+IJpIUJcIA+_FKC|i$cBma0N3z<8J-IZ zgY9%?9z4OHy#H*j?j6r3ACh&tUz+p&Y)#0J73rhyo&LP46BO&0zKay`s&SiR~R+S_;95>aD>eF9(~dK}I*ztk=i2|&tx77I^Mg<$W3 zuktt(1~--G(Yv*rMg98wq<5T!9P$G^lAn1#uc;L47&UusonABmkb57`1>wvY(i*Ba zYyE+9I^g)=W^$L-Sk}X~`eme;MPRpI2e22K+=Ey9u4ie#8C!m5*3Gc!>=NNyOGuZq z>71+zoq%(;>KM!ad_F6qZ(m85k6F#-oD^bKxQw1dDr;oE{j?uY zYTM!Jz5FbCoz*wwhpWy!Q-{myMEDWD$|~lQ`j4wf@EG^QE#8IU)$Xf$r|@#&FS3g^LlmddAS2Xn zwx6&0sDDpyc|Pzn%-Lk-yza&-HP|MjUAzren=j>gGPj%I`}q`r+EJ@mY9AL_@j|+9 z2s(6b(Zc)TR7VM9WS|Y4XYGr(gLZvdSH}43=Jw2sqo6mLP zZZcwUVVmRV=gxcHd*Ui^i{#b&{ejK}LA_h| z`|-pb!xuhAYmRyH?C=J+-sw$iNOqwP^#!aTwWXi8UTQy`bCI#3r-*6bn&))Ya@FtO_xUPFr*$i}T*U70m7c>tEpl#&<^)YVi>R%& z*I#={G5WCAKW25?Z=&xW%~5ky5l!Sra z-LoC}eU3xWLK9)|dgd8?@FCB89>=xw&hP|2CH2%)XX2Z2ZC9hN~;JtOno6&)TQo5=QL1@_sy3`{`Ww zv*@AVc|VCQ0Hb&@U~k*^h$lpapQN%7l3asdRLxz6Fhjet@r~me!b3dQ$#2Ik{d0sM+u8no3k*E?(*Jr$x z{CvRG)=ITc+s-CNE*E_?PZM#U3U}f~@6@fSZ(Q{I2b@6#uhtp-?+jI0@o{F)`}~}# zi?bc^|E&)Sb-R|z5q#JjtTVI-ocHSo`o{_(lM#XUX^XBtLT6ph{aa@+R?%J795M1R zwZjV4)M`I%S&g2Cd=fHcWF>v-VAn56Q)!4^y1$3y>)-`|fhe`{tT{ zEZ+=9@k~Ph)|o(bEWSKa9j7-!x$CkHtSCZDG8KlWjm=up@H679=-T#U)goh7{D3}P zMy`Xb2;ZUb+7~|hb!9WI_W0?gua}DIx9&}|M){m(WQ=2NtzE~w>BuV)-4b6SnG@~a zo#$8gVYrryerxg4``p1T!qZ%RlLALR;E@heX-Ung~<9dJV@^uY5 zSstVUZAJfMFrn$li^cA;d8_05?VBCZWPr#7p|PBUB;$;psZSO-Cz#3m;BTX$pKkEf z)-Y&;8bV7r{06@aok?!pV2gc9qkF9+C^4)vSSzN2)3(VPikbv6s5P%HvX5^$zcbul zyN@BwKMx}JFh*~_&5h2a#u`jx1&WQGrB|PxzZEJt7R0Axy`DTfwOV7^d)~bFONo`2 z4JC+(z21e+b;cZjE@biEZ26F#s~P6*X@*p`x|-f6*cCf?`=rJ(6ZkjJI6{gQJ1imb ze6ii8r0?^+NA{rjdsi}#=3LSA>CSJzSHUR&(MvW6>&`ddFZ$&ggMUhwujfZ z;`L`;YrcGB)pimIBW9y&#Pph#Ky>IVt!$&QHRK(J@))d z;#RNF?$3S<@bZx+as||}5O2Ar?V>oDiU{;1HA&=HsH`H=>H3}jfKo4Iv}XF85^Y$| zAg+H#*3B9&R;P*-k=^x*XgOQqc3UfZ_ve)PVn+|zykM`aK~$ao*M`#at74^{0ioMZSJlXWN`FA#X+f z8q~+XCs%Ec&1XG0pN%g{yo`sy>H)q9Ye!_?#%t%hyI9KJo0uPZnsW%?2I6rlM#=J| zk*p+N)Z$5eW}ityB`O)UVb7P$xBV;hk)J2C<`%UCWRHth;;d#e2xRDna(ht)<-D;o z4$fh^e$p#()W@+tNfj?zFlImO4?igSw)1uPl6(gQ$!S-CMQ?qpXY2VauI^0QaK`(L z&{s)6|Lt)~QF95Wu@gTy$=|~Bs_5;-xc45j(s(uF+V$|9m{C`6dj;H?4Y;~wphLt3fS8qB`Q zx{AF`)``ehv%18!MYPpDdfKarkLV426YHtisk5UVy>Eqk*e$*&1;p&r0GGoQ?enDO zQP8=t8%ztr_1W3H;0sD;mRSuz+W z%{qI=Gsuo{;*(_I8tnWeYXkQ{wYc|uw4)Kf7k7EfvdtNUz~gTrdq*RljdK!kC>n6~ z+sEituUt|~7~fn0!uk$7YW#Hz{8~7^%wa=+dleX6fCrBM%YB~>gJggUEK2R^#9gY$ zSPk=hd2cg&%;Zvr;YPaf%b6kH!oiPa6`c1^>N|-~no|qUgE1t}bdRt+`oIj9Et?a4PnLy?V6aPS1sTu%c@F ziSG=DU(2%vb7>|zdO#R}LRT_k1B2o(qI@$rwdM?Cu>|DcE6ZKJ7!869J&*TeO z?N!5NrH9kP(i537R2CwUri@Q-1i!HY!S@QlCHqP62WDr&)8z}|SYb{#1~=w!_^r(w zM37*|RgQ7)uxAX6CBp3T1zbZ#eVIuui`}Q&eYK<2*?E*x6@5OpXI{7rOqs77`@%m+ zRxPoW!}&~bWDUsKr2yZ;pcBm(^u{U5a0VV%(bm{)SLXs*>;~X|*Sc+L3@Xr|#;m61lw8+Vy;J?bgJ=}` z!8b%-qsyUJ*bvXg+<^waswXyc|8TSSF`5gpPPW6Gh6KeQ)mZSRt$=&NCnSf+NT>5X zAhqXaf5MgrIkENPz0tWoF?kBNOlxSbRkPzz1j1a87faV*%%x+c{H$ zENtlqdf@xvSs_>K)q{RKVY~l~;IsdSCyJc2V$+>pms9O0Fc;6!UNKm>qW+;a-X@fN zLF2zy{|ZcHZk(`#Z_3I1%*+xx5foS+Y!>_g{M5*l9*Wlo7Lnig=DSeqc|HH+ltYQc zxI)xsPVUYNiK9Z?d+(tjc(Hy5uQ&30NE)LP5h4{p#`kpKC&O%xa&PvNu(ZXe2lqg5 zRd2d#zm_W^4rmJXm@^y_b=ZvSU3_>laE!B8?49oOv3KsY24Yxgl zr!*(HA|e9MWTJP_0BC)mm2CW<*3=HVUlUpsNV8yYgF@?qR*C_DT zCb<`X{V5_;bi7YWpda+qtVVzfZ4F9f8L=hb%Z1~B9XiA+;OX>P!P1R{h_;vs`93UJ z=qI!pXJnWkh%(^GaV&e5`=KNr2Dz+l{f_njc45r3Leqw)<}sP8eY{q$7NZ zXEalvcQdbd?{$bM9(}PGtei{adO>)DC=tKM5K}D?o(#D6_mIcsWn1qN)na9V1oG6S zQ^$XZcj6ZxlASx&K;U3Uf8l%KxiDj}h0j*-Sjz=oeSIcYtr2U_XI5Y0-%^EOygNgV z1+$fAye{mv&u|ow@uh%} z%bI!{GLOZx@Dou2aXf$TXk5SPS+MHFY6;aTaIK$VbrU~oTX$K9!9zm>)$}8}K&$eW zqg&!W@Z6#nOEqeJ0GtClJlg;fB|gSssq9ov%s;**y$(4qtOXU+h^whuAnwK9JDVCX)7;w(pktH$~u}(-A^Dnr9=EgPBp5N_Kr&uXhw!vez=@A!L<`@AB^Srz#s9pOI5%IlUI5rO;srL&itS38g zk$z`BYdQ1S_MnL7piC{{mRRHWqM&khG~7S?)VA)!ukZ&wTJFM5b!Qzi!&837dZ`_M z+OpU>lhKCL3=JM$WVz`BPO59wd2&a2{z>(YEd<;SP9E2PJjGS>lzk9%DXT$V9|6l< z*s)P?E!u{aOY}Lpj$#Su*D~cb7$OoZM1em%$Y*uOZ{j2R`v^Q0`mL->krjhW;lmQ! z6g?Ajz|RC1VV!KZykfzcHu?v6p>20&Ko$KsLu9IK>kTyA?$qL<<(Pff#yXyHzR~(= zRvw5D9ZlD3Vl_^!mx+nMvDZV)wP;b~mV3l#mg?>-V$}w1;9Abm$~$`3@`aXrm;Qo+ GDgFN-x(!VL diff --git a/gamefiles/TEXT/german.gxt b/gamefiles/TEXT/german.gxt index 7f087fd0192870b91d22e7934617451f83f8624d..772865dbc7c9e7a78c866d40e9656e923e9829c4 100644 GIT binary patch literal 461790 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�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

{)2j0wLp^j5_bl@t`yWMrvgnv85vOp}rAifJ;k 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

2R>+{>`Ii<-Bf%6-8Xt zq@z4RVycqL&LemP%mw_4vfJ95FIIaOGxc<%gA+F7-HFvs6vTY-4`1*5q<)H7L@ozuY` z9&3F~NPwi6F}?1cw#W8*-@nADFNwQ^@!hh_FB%eLL~=WLX<`>guerS1DhAD zx)x~Gi^Ai?X5`cY%lfO5R4Ul=D+Y%;$7^ui7k($6L&z znaKpepXef;K48qKACg`!@1NYTUs+RmJFN3tSz`q}=v(k3>cRC>6>WSRew(sBD;W-7 zHEWTa6Iqb0b`3hP5ic4HP#;)5#~ve-4RcHCtB2qCiXnIcdNcxO;GlH8NzRLY@Kz*(7^s)&VNJUSRa1{4qRGSGB3jK@Uhz>-+h0$vP1AH zoQ1#S5+zQ9ZjuD@P!}z0<1~7~-q87zsfq*FvOK_F#NobQ?(_O?E_@8{q1&M$@L@TT zrF#6KoN--;xP)UBshe>Ab8ZT|G7cK;hRa?DG=f1ISbUC02fT;vUn&*I+T3HF9Z%5_ zI(@GrjxBxp^fmfhwv`IZ~4Tbj7JJ}_7A*STE#3Zb>H4T$1KKbOs;1`S$C zlovFyE00upyi8oXl3_zH#!WOOW`jMfP9@;R@eaPszY4EZC&r`7KRzWoP z{Sw~QcVg)|RdIXl@Rqs{sNfQ!VhG}LHjSln&866aP7z%RGp$dQ8)s9D0$c# zS~1-AV&l0#3*_)u z>>?(o-ZsCYH6jZ%6w8#)^k^o7=LOVBLk{usU>^MGY^k+=nJ-7~Z<+9~4>cxpVb`t*!lV%~5| zq`pv9x4|IK`s;#ewqF^p1}%cNO6lO*(G~t>uk%Zm)BS+u5_v|R`MXuya*UQ+&d)6` zdbMiXJqVUt&d)8+`ApTGPFF3roS$26^QEe7-@Um*&pppfAM(uK9KynPV1Cp4Se}{O zckW|(=4ULQtoFV6yFIyWdFE$cKYVVvsWJ)1s%=Ws5|Ki}o}vHbJ9ET5dmvHbIA ztM;Mvn~rn4SK=LiZP;gPI(@Ec&!o4$!Jp5j%T@nD`gw=b^3~5*eU9h5B=TIAuioeI zyl*;vq-rZ){cU^4^VMh_We$*JB!?$x;WDSX%OVIW@s-)Y4yi9zr9Ic`T5V_fYx#|Q z(;%{8_1TUY9Q@{fy5}U@^VXrI&@jM^o@Z_HKV~T{OZ{W_vPfhG`%X#bt=mW z+N|{ES;t@Gn_pe|=EJ64BA=pL!#O$LouRJ#)$+Y>RnGaORJ&G(yhxx`wFn)>~I04JXByHPK5`Ec!^#Q*?x&4 za^El2TBI|`iOYJhe%_(Bj7%XT*Evsi#yPM%kL}(*aj-bK)NiySFU?7KYO9G3$S1i! zBiKEc?U`>fDR_oc)yR0)^3COqhs7pm>-7z^cG)_8SC5!Jv@G%xXNJIo*U7{VF5`mL zdRAJu;wq~eIbz3CSoMJS_RC6Nu+^4ccQa#lYje|0Pxa47j(T)ew_~n)6w2$%S&xqM z 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 z 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 z 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ɕV!Ryh! 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≻o1C`53q@ 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%0DXXl>($<@2r9p04tpIUQH! zWA60r{oK{s1K4@`kH7F-mE$k;%p=d^FT58!PdWa=)hfqd_^T?%U-(&UJ9XkOe6-3Z zTKl^yXHu`daakw6!xyR?-+^0Lds}>mD#v&DQkCO7`~aCs`j7AMi&c*Auv~RLa3;RP z>&ReIC%yx3bMNK&4xg!Vd;FJ8_0N4CwTjnDhF?0 zt#a`8vSdMfoqOURRXKS3K$U~HFI4$>i1nSz`oY_6RSw?XQRU$6BUKLG{-(;o+wI@A zY#Y3tu5$49Y?XtzKeoIM&-_D`Gso}0skiOBydJD_=J@+n&K$p9<;?M>f3vKgIeveY zGsj1(oH>59%9-O|S2=UM^ShUA?~5E%`6pWYRFzM(_BqQN!1)(d4xBfAPj9=yZnXDS zIdFcl%7OE1RSukQd&RPT;C#5sf%6Zm95`?L-esM@`L-$t&R?x^;QZYx2hNwja#=rc zzRL3b+Xq_vk5yjFsnja3XQ#pU_4@a3Z$x(ElRli!V?~IZAn^#;VC~=wPy4~x~hTYjoYwRacP@Tjf zenZ>ZBk>;*qw9z2O}$F|1lsC3ly;<^)&?zGD|nT~e14xAi&|Ek*!8x|6Wz+W6DU!#3)jG2U**E69%LbDc57 zYsUI(pPue@7+e1ZIxq|1Vz;8J8CZ*vA)_sJi5(WZede_y4E3bcxT!{a14Kmk-rkOn zi;rOL4%}6o;2M@(GWTwPaIBBvnOs=T8MweJ_EhTEObWxb5>VFO7~^6fVpjuu%xt~e zxrmv&&w~6W_;gnEUHLt@f3y2X?)!8tlDG^%PagofNr5^?aizm2-_{y2dmWfdtq5&p zF3d*>8h1S2uS9&AWpqS4ez&ESU6EIME|Nv9=lC zIWTAU;o}3l|B_ucwab*OD|`)v%oS>L4$z&4dR46N!ZCWKr3v6Lyj~)@MaFc;T*aKM z&B7_QVy0&^C=Qe#?xQM6XbgI0=L^1+G%D^v%E^`EiMnnBEJC-F?;Mp3Q0Xl8&nz;= zg+M^BrN=C}--!0q*;S5UoRu4jzF+ zjDtBS1An^vspMa;ll-3=0?u}Za&+w$<}4Ab32;06-=I2FQ9f3)1_NTXky@d$`RFWt zYN@u9Ps8(fm0-vbYhLmh7(+^sBX&L58eUPOOCdEz%>Y@$8r9CAdAL%;|#tr%Z6nDPOQuO^B3BB`&7;5cv|vp;RY^1 zil}KHJAsehnca{GXn%7!ZPlt8Z8;NW<^0uXgVVqbIX~n<-NQ((|A0?ExuT@@ga78* zO+C#1y(_8hdJ@`>*~+`D{;}(#ZdL)({o3i4j1ElNHTVuWV4RANffL@w_EtP6l;m}h z5%!gEss`J6b8IKObj*1X-4KJW!VQn?^}e9-)n?wplTu(5ZA1%Ty4vC2?e&0l?4dK? zg1%a$E*Wf3H_gv`KR@5lhQ9oJDXsZ&E&gOm?i^NkeKrx=XFI2%pMVOTul<7;cJfqC zM~>kUw1MlxWXEU$_2E(Y2Z^H%&x^LTnuvZ@C&P=BwN}`F-uZ$}s?}TV&-py#q&<0% z*5QC!Bac9AiwAQq?d!IW`CWi@kE9+GQd50F9W7w#Cm|4S$2q78pjG*TaPZ}{pW7tI#`mG7D<#MSnq5l+glGGxa643V?N^E;Wn=vW z>w*pegTRgipck-D!*eK(82Y&EhqjBAOyr>a1p9C#<~B;jdBEfwVoDP}(d(H>Dh1!@sS}iSD**ByF-G?5am)#CK*cE%j z2LKx2s?$~IUUPAymFwc1bQT`++DO(;evw~fj!}F&J6Rhw86F&zbIj`E-{RyiR08gUA}s2`Z`PT+v&=5MzgV?wF@n67c8)_xA6_M_CW;Bs4JlIvPE=>odoPF`eN;n&?hdNN6zj`qE_TU}!NW@Rtg3&LE?|EpQ{GE=;_x^)7&@Plt^KV)iFQzWzyiJoRDc3n zAv3ttFrH#JGBFf$Ii0BJ*8cyZ!%J=*-+|i16ZC<_T;%hGd;=}f_fVOWFUT|BJ)9@N zwpjK8X4DCT+u>9&@<4cvr__~i7!58%+vq#bJtfxY8JGGMx0a+4Ded;T4lY9@mpvxp zVkd1y5_nuZ)8cCj^_Srl^pDsR`lq`z4O!CO(m&K3HqP~IR@2o|b=QTT%VPn;Po{tH z2X)bVg$r>*{ep@9)u4-vw?7{*FX=mqxzcq+A#lpaf-n4VctY(|TD7p@>1l9Z*kqLg z-a-1w*4LVX9Iub31}GnlIVg=SUOTIOmog`A5e7p;ukGa%PsXksd5C!aeA=OZz=1M; zHudyx_2t3CxwHmrKOZXvN2}?cO3TtFjK^%ti_sr9GxALD0bVx$aecj1qsqCgOu7T> z$&3P4u8r%&k=&)<;argZ3mMH_^`BQc+3F)N zS=LXs`fF7_mOa#2De3(rTm6nICtLm3RZh10hhN&-Pnd0DXS@Cdffm>5q6O`#rJ1iS8pu2C5i-y4m1IrWS^ zh+L1?$xHp>fvlZKkr=7BKTuyJI5Whl=q5wu#McAFGTDHL!(nizf{l3 z?4#NQc~%Y{Nn4^%E$u&VOxGyM5xD;v&eh7h15VAd2t-=mvIEEih*8aB%6f;~B+>h?>Q<$_4l6<3Im;`>o82JuB!$bos5p9yWyW$v|L%E0b7x z6FeN=K7TG;B=q#^&WT0u*ZzLK;}H%d8autj94&*ghCg2XTm z`tVf8598wpXyNssIbm4V6rAkeAH#ch<|hxXJzua$|63h)q*;vd-YLg{ThJd!dHFEM zJEZ$>fMcFUR7M%XceO)Tr=YO1PxmMKWAFg63(=rn3;8eoW_cpCV=crQR?#05q49FQd}xVtuy4YFUzqwjbqkB2x^MDKAm!iP$4=dG z@9|^7Zv2IO&%v_4naVkHbwfQrq(9Q@9Bx;p=SSMtrt+zN4-EaB%8K?I@JD)it)DTY zd?qjMeLX%%FCS>XHFPoxQ_&60|ge@-_#h0(pS4Xfbr;x#edyou@{i5m*&MEcyIfTEO)WME77jv4(II za;H|(R^WRS?akrMPi>V}(!*2_Tz?*L3;LnrJLYJAe92+(6Vkn(JJiNlVR+q4njD2@z`~8YKJkq1HU{*@;Oydby(Y$o3y3uJY2~^H+y51;0F5gz=E|H2D?tzBTks}KgL~#HkZ_OM zc(ISikT@fGEf6({Y4xV`HFg72>FoI_J~NQ_ZNBxVj@|ERS#E{o-#y3fJDHbfXPTI-Mn99Bft@o4Y=%#46UQTrM-YO?LVlR7t zp6KYCRZeu&qT%}UL`OeTWul`h=k)8JR(aDs?!EpUx%ngW>E*3Nk5#@i^Sg2R{FqT$ zual_n^@+rKIZ@xQRXI`L>k@_a=h>t5t5wb(rLR;udz4=J@@1X-vcIXy(dgf(@`>#G z``?#!wsTWgl}`pI-?4oDlj*a{_Xqy}WBL3|fxpV9vbXL#m(Sna+NUg^BntiFRKC5v z=DT{GJU`I)pauSv*V^Z&=j-juQ#o&ozp3gUY`-v-54Dd><-_e$Q~5~ylc{{PZDdbb z??3eY@KnCN{ZRIc`8;oWpUP|Pn^Sqcz5RQtPTrk2l@GR;zoMQWYOkBhhucF_`AGY# zseH7(?t7Q@!&je~%CVfUtmg;XJyUtDU75=3?GL8%M*I3yKG=Tt`>O4swmX#%x0k%C zo*!war}EMEsVZ+Is-McYx9|S9%laF6hu~CRYY$H4_4emed857Z)m1+*Oy#`iZYm#c z_y4=9bEJK6Dj#isSmnsk#%q>!4&L7GnaZKXR9dJOyY2s6wmp=6qg6iK z+H+No48AglU^;yxgJdh-p3hs+KIQ}K1Tps8bs*0LxB0ew zdpb|~A*#XGG=H)a&5Gac>cy%pr(yf93xSP%1{niJ#!onxXO*vE{>&Yi zYX#Jp{dzqzF5WYv8d>2n@d>|yKCy@8>0u=~PeUwHamZfEr&C9N2@GEBBh#~%>0-Ve z`RBQ9tGB=yY3zT;>F8lQ(BPMid=FmNr=}QXe@ne~uukj*M8bD#FVV}VgQZ1>a9GTW zv#^0L+&?Yr%nz9aqg_3=^5#aQBs~jX(EXFav6*VD`tVJQ3-phv$!-{MtxYzTs|fSv z%!+#fiC&DvF67B-fAHT}y@6l!jqo*~>#h04dl6b^jZfh%Nz4V=pzft!AKduPU3wUP zLCp$o2ixvqsGL7sL3{ExM3Ux##_I1p-~5Ka3sm@PtTK7N1}qSri-~jjguiqpe}Mr` zfM@Zwpt`5bX;b?k_!iioTh0uwX4QQ$!w%2D&?mdh9?!hdJg(u?$~ikcj67+HuJTqH zWefjKZw_yZ@tC!%f!z2eU77b@z6Uy2@_=rxpTH*Vh`*$aTE_m&K)KJtjE)>D-QcE0 zV8e4)Ka^KIkH^g{R;Eo)ll%0@NEnOU9DTHxKIpsh3UHqHx{w{%zwSajHb1+!`8LjnLyYE(n#rWGv(j_&H6C!mldEIF(Mq2Y602U+R0kE@ZJnJD%-a&~X8OEL7aA8 z#taLsr8LkJ7f@&acUlvq!*guMI<24t6k}Gjf_J3hIK6B9K@FZUH^w;~sEIeo(PAf& zHef!UdSs-KHE?Yfiay}2OQ})Zi2fm$g-pn&@>tR9Gm)ip>48;5Vyrs%e5FH+d|pV) z{kLdvLa#EfzSVRtXSbzQ<;9pMJm8)|@`C69bF})lsh~NcHg1X%Hsh? z@G=r)zJ(`9yt0%5z$SKlKO}9Nmu; z5qSeMc!c|ml-1g`KTvsvKFp6fpiO86=ZOdM*!2S%nt4KQy}ck1IKfeW~RtWT}tfK70) zIukt;=2W+*!BfbN)Z%Ttdx;R}Z>RSQZPAyD^d-H@>XvSX<4P~8d*=RA*-~I+O#7&8 z%he9!>btP#9tmDw@jhOFz9w9W7W58B=l5!cDb0tLo>#9kuOI6)zL;9pMW<`6 z!L=SJG-M|9KJd;Q21f&9&B$4(0oj)$98eAoH@6~wJ22y}Mf6L_EPY}*%(Isy0oTp> z292;AIK?X*eZ5`(;-&U{!R6&QT@Eev!go4!m(zYTW4SB#=H!v-lbCBKzi=@;1Ag!> z@Svd8{JC7Gy+b?I>J$8Tyvvw+V=Mi#^R^`LLZ8u`XPF_R&NUX;gQ9RUoK#UV5W$B) zLK*q@6oc>SGZvS3=oPL->&O@CEan0J$QzGc#Mlck0v52t?)NKPjv2ulo2d(apbGRu zNA2ae^a{2WPI7lSKFByF?+GDVqfsxU^{O8Qw>^{=w}u0mDYLvaW6~#D3vIxvioPJc z%oA)PvxcLP@sIaez|ZrTUpZsum8(JXqLEi`aREbkFzgC|8j$Sv!%YI45W%9DX_Bno|jyy8Whg((Tbp3*P0r-oh-eX<`EOG_(x&V2Tq zCi(=xy=pUV%{aS#KOEK?2%tLjCdUJG+R4FE4BSVAm+n1`a{PIorY$)YHR1mpY}Nz^K+jsD}UH$V3owa^)!I?;-n4 zS}SwJN3BZ-rT}o;5Y15-but!R+w1)Okq#*sDV{d^Og_6GZk@8A2i#xWgQTr`gQcl&l(S z!ZAPuy|HO{BGALS59jmcE+25gPAJlPT~BlYVeKn1_Jw2V2du%XSO?ZC(W2ne=m^Xr zIdVI-#EDs=x|ai~+zW=7`KA1F&H*~I3mJH~GKTrBt+WS=Vo?49_edU)NMAE5J9$RN z78n?x9>5t^4W2@tKat)T<8p_KZ(7F;b3(_0rHXx^uXMkZdUz_xro4n?1Bbo_{9nAU zycFNzOG7C*i_w4?Z-`Yl&NlIDOXzQG2^^maHqZrSo2B`N~Ad6z`!eeoEEJ&WEi$0T>?H z6}>PpZjV^Oak5R>QSQYW5)S>e+1HCbwlfzv1R80R(PBIK(gA1#lmlr z0Ds)1bS3>WcSb>?umjE=U5)oZ6xr7svtJ>*tg>7D?OFHd-`#IMab|5Z_u<^IEN8v{ zWcCpB=UMMRpL*SkJfG&rIbz+pkUKWBumt ztbL~KUF`w)3Z#5@`<s#TiT;j`K|4% z%koxmvfO8|ww23wo^fwM%3JMkr}CZcHun(Z`LS$d5N}(-$&XIuyW6i#<$K!Cxj!KF z?`^wN`Hk(5r}FXkUzTO|G`!5c0(qnA?d^`Ke4u@BDzCMFn9A$zPWKR`{ziLnDj)3k z(txWo2M)Cp?i)z?aKC@X=SSKb-8YcuN89JCyq5bKtGpf_bAQ0vnXK_|R5@$y&s90= z{Bv$-dr-(~bnmBXuFsd9MrFRL7MF82ql1)c3P?hjbw4yaeS4`7YA zxjj(jdvj8u%5QA#)$RjW3yZZi%Xv%Pf%b)|yw=|5dVij;wnCfisB(Hgn7L-FeO%64CG1 zzNhip`(5o7&5W&9>$5WP@nviJK}*bUyM8fn-IX^r-XB=rn%~WM%G>?^>+3^B|K@VA z*g}M^#FM}$CXciTiT@Q(|B9z?CqIq%lD;@u`&M|GoErXh<=5bBY%ubTmxS$pzVVd+ zB;nopeK69atbe=5$Hzjq;IrWO8kHOme4OmVH>!MB<@(hOd)=cj3PM96tIUrRP6 zBSZWSeHfy3$I|a0?r^s#{;N4P;%jfsAhyMyGfzto1+-u9<6LT9UcyP<(iO&<8!-U77*DtSMC?J`@d~Ykh!KfGfPm=y>JoNxY3NP351$W8 zVq3<{^tjF4fjMC!yF=cESOtH+R?&zf@e-?lvOC-jO7;@00mmwp$mDRp1Mh|O|3#=Q z2KLkV$I==atwtR1)5$=wdgsod&b8k;yX&>8Z?=~-0>9v8uT#i#^G}Bk=9ghQfyAXpBX)ZFGk*gxMCnlS(0>O)9ub?Dx0@P$gEWP+P%7@N_BUf{&P}(SSCu8Cv znCGEy`=b9vV5zrUB8kWzoV}XCHfqqG(qeG8Zwo^Tw?gG>S1F+`F@>=m`;mx-(PLNg zbS-xnKz%p_ZbO3V{w;Dha2h(sIEruKq|$y>6HVh=bbj+&ELTl(;>p{%bOf72}Ej^TeLwlej=9=7f2V*{@26}Th z1vKBUkH~R|jq~ZnbqDx@R#1jHZ+8k1?UGvn=g$V$%+~Azn$-Oew1Z!Kw-$WDOw5`I zAu%O+UdE#Dk()u+tge}=VW`Dyy??_QpdqiOkG(ucD$(8axSJji=5M4~%2>i+PqbA^+uBR0aiZzSw!Y zR@FQ+SZ$CSq#v1}PjwpkA|Ub%CvcMo;*1`37-u&nC|Ki|xg^GsP$2wO`{)@RWR(xcXvl-;sI?o>3ZMh?0(8?d9TfoiMclPHW) zYmQe_W)`JswWN$k2@Q?cb0uX@ZR6FA6&2P`*jF}mA7!;I^9Orq17Js%;Q{9KQ2M3J zcW4dQuAm=0h@>Lz&apC*jLQnprF_GDw0Ock@^|_%z|PEu_k&(lyAgM)op^?wx{xu+ zIU^_TtSD^!f9$;vsOHyM@4H5tBGTLAsUB~yS7cr(rijVO?7in-k>lCfGilP9%$_q% z+gJ{c;1j!x7M?s|If4j$=T>YXf;c(MIA7tPJz1U z6<3(TTl(4iuLwuuGgh;Hv?3R1&FRy3r*NU|&?Rz#{(SvM!V^-*Q_F6I%gj#~dhPi2oB`HK;iJNl)A7wZ zb;)AN9pGwNPN1wX3{F9^cyoWei)VPqRRT5tNK0^)`y#;J6M?rReY&SYS<#1+%f$jx zLF>*vta3aW%vGUC0lhnujvR8^&9yw!1~V@8r1%AvC(|-s%5KLY(!(48m@W9LRcGUC z*Tr;9LZ`ICM;}a^NG_TfeOnwj)kEX7XLy=bQurx&320_VVI~XMY8@AlVmpjMxfuyb zM<-R=-jJl;RbwHkXo2Fa;o~6z$a2l;FlxBv(_K#C@9CZgqs*E$5L56k5aIiPSu^oi zB(TaZmEE-I`lVq(l^oYpqG3ih3;9Fi%d@qnv9!@tv(^aFh*P?b(QO5%;AR#oKbtmP z3ktTu2GWM6*zMX^eZ71hYxxv6QsYwEaU9G(>6;;^74r>h4*f!(@TF@ol|VRQ>?Yy# zGb9%%w8>z@^^MlA=nn~{J>+KefWO3P$|c`m^u^GQ@yUU_rw*s*TYJm1;Ab;fa_!Ra z9eEF$*1ReZA!*CBM%R;3fY0FxpnN;hhwIYkzi-gC$#Z+M(Sx^T2U+@+zo`lr?*aAFHYgp=R-{> zQnt@CI)P3vjM8+@aP@n=x7jr$ztU<&so;tjqWq16>FY*n!ZXN>IT+r8;>=y4JDJ;3 zOYxK^NGNyz@(=ySJ_q)<=&x06wFMCn`unktW9n$3^sI=TwUN`)ThY(Osl}&o>2`W% zL^a0II6K#n; zmt3gMAWH zFS=A-FgJXqYkOmfs-ax_`p8-d%C`DTl|`5oQ5lfTH8n1zzgDf1L= zfDS+}_w4WQ>8(OhvsF`!t&V=c2^7M&z3+*95F{SI|M%0jzUZ z&>vJe^Tglb-2eLd(>dp$$`9whoHxv2K9kHw_IdwAz7N?{%FxZok{%Sg>6h~a4Kt)n z%ScVuYu38S%AlfuKA7L|=-JLB{J8GW;3(q%X7#8New&qq&yl3JtZl zH9Qpf7U<{!J&s+`nyay-%m<)-@yD1$DjC^N1JE94Yl1JdFL09Er&nM>;(&+z z4g0jP#G`%uilJ?>Fjy}l6wju)wG}Asd@HSJ)|ChXc!uT2*SXa7*psma$S!^glr^uY zbss*ebjSD5IzAHE83*zF&vY2!3o;{E5}t|)bh>NR-4Q|N4c!iIcJkqOo-o2$v;k4J z^a4W8vbj4{G)|-U8~I+DHR(x9Xgqw!k;5|Xfl5Z$XH&y7PvxX3Wp>ko;{!iNVAs;t zEN_#~l0wG4zy=%@Q85ZEC0Xl{a<}=B&WX5(hf6HHSb4{ z%u9T#!vl|Us?3=GS>+zADX=&q#-YE?*uV!PTE?jOq#yX(TvWw@daPim+O615OI%ql zFi-2wvXzI3w>B&XQhg&W(e^R~P-X%Z1%$+q;V?Fr7yg5Geeyz`LIcnfC61w%t z+{HQgfva(+UND?$hOc;vTqFCY3j4)R><*$oeOhj&BU(dCfYo{%iJS%2>8V%Kvk&&; z(O1vmgEo4iaIPL0^ihN1d7%~1ED|T=9SgX6*KK(-*F;z2mJlW|V_zu~v7}Gd{-|?z1 z=5J*POQ-rSng#hJH%5kNH~mcGcKG*+Jf{WP5wG+_Jw{!bLw?bt{e0JX%qeX38ua1W z?$psrjAuleSMrn|3JZAF&dwkOXj0(Vp7R=(r845KWiSH(ER~~DPmoV0w^_8&P5=dx zs#OM~*kb%aU_nDcDecv?Ct%p@zfR927?c4k-0oza9o@{#(p z@NX84mTH8+wUZHG`DhyomNuF4`&5Gf7kCE_d%*{Tv&d*8OZIB3w`vnDiLGHJKG2Xm zb9R+Tp(tLq8weR4ly|=1*0hxZy>K(R3YL6K4Z4jw_w~^fjk=lE!oJj4Uk=+I>dLOBBBDFI{c^lm7`gc`6lc>$e zZsYuR&O)#9*{oVNvfDWSA6om7DxXW6iR}I+-&Z3$d<%9F8ri{l$f}kQ$wD`wO_47o z2HT0AL5lUY@CmSsP#-?2_iKO9m9Dvme8Vrse6)yUD>M2RFQhGJ$h`0T`dns_DWnGu zL?5~9Twe-a#iGHjNFjZpA>l5vT=byiqhV`q%UG286eBz|9DCOAMbL+}f5m78-N}%BQFHjm#~e6F-=?ux~`Q+HtaPz|KmHve0Iu zKbR-zAw51;aFQhh_ZRavzBm?nH|6pSuIE>3Ad9rMlg~yz)WqVmT7WvxRQ;zX2qa@3 zi81Jr6dcp})3d1y?eO&Kj7S4&O1G-@;FT z?%rbd^6j7vYu`8g!~5eL4q6)Uus#jkfG=|NV>YR%|5P6rGIB7#gLiEi7=ybV^=_y2 zXY#92H*v0fie%Y?t1RJgARMcUNV|dgD^sB@!c+T(wMK3Rx;l7{_TP^o8+@w|72fmw3?vx-bq_Im4-Bcl##%gldUVm0TJQ_-OUIr33XR~u@<%In;tWFL zda!#VHIXcRA~1o@H+q;_BB%&OS>27aR82I7J_ml=wNQ(b2Aly0XFMg6LGvRata*a7 zXb&EA=Ng$PTET+Azf~^$*e5Hr84(oTOg-8g=c&o{$hMllBpaMNpRpCJfzvv(L49;B zZ5A$pm~UkP(2cCk;>0awl-A*GY#>m9FML2|?wD1_z5*ANEUf~zIE~KSq7bvft|C-* z4_-d;A^C>7B?KOlXW($xst7<1DAqlcwpqe_(lc~`osTNJw^|%kvh1ytc5u* zeqnsqJO3dG;9|%M+Cms>WW*1gc4I6(aN~S&WtJJ=PFg~~X~FXad=!Oj9IIH!0)p99M|@^N4m4{Y_^s*(lhhAvW*f_voKJQVz>b|St5W}g)18S|hN zS^$1=but9pP4Be*2^Q=8B6H+e);SKPDKY=aLM^!4u3S4tCzz-iut;#^@ z9csOEchN(e4?mP(h`8zd0tNqhpTVKb7gl+_{Z7h{Y&@FyXtVv?fhs4+Nqpq<#A=Bb zzAfL8ZN|5gzuq)J{)utk2-Ic2ii3wVOYgfwm96%UcBJ1lcz2tn=gMqq|6GZsrC6N4yp6vmDS^HLzkL_2aq6L!QkwW_$E7#=G^0&+H2PV(`|EYM0PsL9=xqwfe z*IEpyrYCnwt6S~Ekm;N-ep!kKI^G0W436OI01_M^gSm-3ze?mxYK z;{1Jw+Al21YwgH^dcNL%b5Y)Cf3+wdZr>R$^W7uuhZp6e?bD0$vG&J{^6~bCDre6y zT*`U!`ujs8p#7n%HXq%NT;HBl$^1^4H^yBUsW%NrcM-7aT@CErgcZ#L_)xBc$T)8`&~ zdzZcE4y5V)_u%#;=a9Y2i*okOFUncpkb2hHXkS>A54V3_l#jI6MUJdgz4~ySanl^~s=FUhj80Sl(!lEuJ54A6t}(nzNyOV_qFd_ln=GFMR~0~uqdy$4=>8eUPd?lVZO`5PedNdf@9T?N@X>z zHGM;G%EpItCmK5gs8{*0dIL=`_I@1d`hYgjNx7$^5#OK-j7#i)s*8vRk@CTVe8Yz$ zI;?yk(5Y$gPW3p@SnxbvB;Gb!h_P^X6gLRr8SxCOsP$l;`sMpZSE*-8hnitDlE0o` zE1!aH(qrc-8h!Mt1}d$^h=?Dog+9`sbuNSU285LfqCdS|vm^W;JThL|sYuVrx$=Zy zWZ?31U2~mE@6eO=3uq6*cLK?jR(HY?`(a`47|uTU(CJLFb)Vy(@|XYe z><~W36N_?e|ABhG-X2(#H`+5*e(-Exv)S7_zuDd&AHwqe?Zb=mR`)G@exiMId;-f^ z@46^I&_2H?zrB4!?7ej!Y>zF<54FpS@;lm>7Ufgz++9`wbo=6>{BXDNwsWT2b<5k` zmcM^t%Z)aW5Az;1-*K($d{^<4NkFIV&;v`wmf5h|uXyTxs?zVIJ8>jvg&DM?wtttJRfhBtcWM(+YLISIJ@Sat4l2I-7XpOrxcT*NB#&{~QGpobeBlB=4qp6^*W3wistc<5K z3Eb;axjk|=w8}gsv#e&2FQ+deHZjES#J<0j48M$=+;w$CFkf7z-HFny~913d5J^10Z93P!!K}WEYDv zdi&s)+%&cHz}WjwW&!&0uOzK*4SSnK zB=hom`>REHqy6)ue7Jo$?^ypx`*!VW-aXo$T9nPHS?72=s4dOec=xrZ7v)3!?!{gw zas5{o&)3`Aw56%P(XKDbhudGzZS30l&DQRkk0Z-xSTU1!POs&B!A~#BC)!sR<&*7g zv9H#7pnYsnetUaeR>}DM!FFj;eyDvzR>}DM9qro|WW810s8q7@^SRKIf7Ez9{ixB#yyBG8 z(G64GR+2uv2V;)iec*bt9l%AB@|% zeKEwE08UJ~C!VfzJ+v!KoLd3Lc6tww2U_QGiTmk``~-OtXDqS1WRz#Y$K|vE_fZqy zVwP5}bUVo$q_+9F@S5@Rh5U*Zh00l!hN2g7eGnmt^Je^+n z=lM7HWL%{aJ(~MusRpo}OZf(7^-8LjL&^T! zlX(`P*v$tT?Bp+A6dsd1m*^P}0Byw>uq$=a$M8v@7!a2Qg}%>rJjvnovAoL16-UBZ zTEeyFaFd)$8=R_*R3U#rsh@VS!-?$$`_SOIz|78Qu%kZP$uD?p_#DI21n-4`XH(bn zsn8fT25~;!!(1b0J{Mon({7|Z+=tJ?`agiD7l(q;D%ML z`n|}Iry%eSyfel=^pd(B-)G#0fwp8c?#c%ucvr|i8Z3gJS=w`Lk5Py1ND1(buQA2n z^MMp^ly}idyjyE=ln6A=r{)|`SYXW-@`XGpQ`7av%Up3!#?6P;OXt)ImeuhAv$NS` zFxW3{k9tSIfp$>-fD2y^omSqaw-B)AK$(Pl(LnAz2ZC{G+@=2JjXc}QM^Cpjf9V?R zjWg+GcYuUBPHtY=od28U*=DfDxSca}{T!>7sm1IRcrAN+F#M05W%iZ1sGrOG6_+os z8LIdIX@Gh)bH@C6MJs9rh*|z@S_Ct7l z{oNz&?-%9l#=WbaA8Xea<>T#ds+^ge?(y+%cIN&N9$zo7^;5PjueZNnJkLxH-e0eC zxV?K(KGHtDDChQOJicD%SbJbmKHi?Ga%OV=a#23i-jOxcz5e=I`-w$)z5V5)ywTpA z_0_3!{yp2-0Uj^%_w!wPKN*gOQ?aq-!I;T`x}TZb@1Y--V;m*C^rD`qI>Km0-R{1F zgYg(xJA{vchEmI6qtO24fz^ta=c7joMt7u?PAJJWI>QRQ5UY>xLDq-a2-Y0yUotX1 zyVZ=4QZ@RxnwpN1cS_dK?zO)AdRk)iX!Kguu@`HM3W?`0(vF=$17ayy+eHTLMxNlg z;PU}3`&epb3}1BYM#PWAGtuj#e}#$4Nz{VA5^xw&LqN?YJ#%(cna*Yb=k zRIPu9JCFl-R6hf5uC|R4%Ev-ZnZrYZ;7j})ck6(W!mcO2O!@rtu{?12G;0MXmu#a2 zfCFC@`1D2a(DC6|aR=8-dq8^klfNk+nWFm0pu;psVxQ_(*zwr6H9Z#(F*cO1tpZ6hm-wd5~admBzpi)yxD= z=~%fz+6B)*jNc5`F6(Wxakg%p=RF})Tr07RWbl_g@CzD-%rPSv+OT91Ek)~3ckdBg zLsK*&@4Au`dDWL!;%KY5zz7`dQCD8TvxWX+p8%YWPG6?wEd6e$r~0jUuy|YFXGCo9 z8L>i1!>hp}x|a)CPK~;Q7{?h!JQ5u#s}}R2Qj-rfqGl(95xv&Hy5?xIFVPG76RBr(I6{VpMV# zwoDC)w>~H_3!SuV&!%nsCFCBi@l<0q1r$|J6AQqXdS6$14?qP5wFGzoP#Fp3EwUKp zEun*$okF602Bc7(C&;GlPGOniOI#LbsBzHB$Sm0vT3}^zS#BtWoj5q3bCdhoYcljK z*4kM=>^0N{O6>8Kv;#Fr z+vm>IjPCmq3-Di_^|<1P7v;6~-xuW#v&y~B;r15?s{WDoO~exY`O)?xi}JDd#G-t> z{ZW;ZVP@}Tub+5>RbiIb+TSnA>wT4%&o|nqi7ROT(BXdaj^!im4R_V^qit%*`L3owJ%orRBpM+2|xXL_Lu%pm9wJvAF6z&wQv1j z=5?|x<^C#Xf9XqA&i>Lrta28YpLpZE{ySTHp~{bBKW&xYl^8a$(_8*kN!hq<6>m@u zpUw`c>yRJ!G%{<7_lkx<%BN==qdE1hoj*~I&!(>Dy^t9kI$|faIqi)nNE~nCkqn5? zob*HQ=n;O!7Od_%EIs1>PWza)b8n<)Ri`fZf`?gmLx2Nw$Us+K&={w)PL7k9@1A@Z zgY%G7^JPh}j8*8Od>yvrI9Frn9iW~niwanV-bjT-2nI^TwP3cQJz z$|#-6yV?fYd@?f-za9;?-RB?5hpjB6b^<*y-0I!ex6gq-n!fP7+~1=A>RM)YJn3^0M_x?d(+n6~L*5sA3^Ybn zwOh+|_m}c3)ESx?{2L{kw}-dMAuwWav`jZG1D-4J;T6lB(5WEhuY0cC%~sZOHHzQq z@Z%Lb=Q21Go+OT6K513VPxn=VeOg(?F??^Y+ks?wQ9upEV3#O_7L8GqX{HnJ>GkoL^p+SIt-x#UoIW+LU2mKFuXtd&edV3DX#@Q3 zfQ7=@o544bBBae$3-M znRbw~k`ZcuGT&)m?i_qNFoSf8ojcL)C0mSs`22WYyggut!r2T> zggDSARSu9ab{7LZ9<1w)upiEkg1O4lLmA}_O#rfIZ z5|8$h?;VM4W5=9BLGS8OmlVr8$ShPst57By0V<;)-ZsAcc%FD_7?Ebl%T8cYCK)fi zF#}|#q-+Y32yTHISz(5v&ep9p|7DHgcmKLVV|H- zStepQpa3THfxB%PiTi+_4J^QLDm=BFzj`!4|)O#c|FZ`7fMSGT5c zm&ZZdoB3>KE}tGgp1khaw6oc9vY994MOA)G4M{tmW35fre_(vzhFN;x;&#B=1*qi) z!(c-#`l*zM&Rjhiy)-`flGof9h!kK~fB;#b<-&GB3%>Ok@M>$tWX+Jx^2V}%1}A!! zeqn9Oi$Dy|voZi}I_N;|mz}sfb6v2Puf!yGNZ*ssg+3OwaP3=@zu*&~fIp@*w6E{) zqpaCRr3fxy^&$2Q?Eu8Qxt%o!XZtMOX1>olH;t?lHfhY(nlA^NYO~63OlR$!HARn- zoA)kt?LKzWl^;kiaF9QPsx_-Jcn>(df26WYRcCsR(wOt6#gR#QDc_W6d;w(eTHpa% zHS=cVpMS_JJ8dkRGaUN3>^+j{P0w(tUO(+3i(tZaipBBb#5UnH>4m1m>qjplvCCtF zt6h&H$B%ial0WPV8WFq_fk1gRJ?|o;`K z3uCJ{z>_s}Mo&0P3-b+lYyJ+K#hxcD2{HgbI;%bIV=^C9wgKr@p5c7gP@xAeZ@ceh;q0=YWCGwVh@_Szm_{WR#T6=%$`Fy>-*?ddtZ1mfbeSWz8 zUOnGz?Y~ty`G+4f_re0b_D1t9YvdpPQJN-(B;5lYijctKL`g z53e(qvc^foKT_r7A3jm#4i@?9IP=P>L%Ivx(cmXF+oEkPcUFFijq-1cAD1$DRDnK%ZX z1fu;yrcnG^#2-SL(Di&c$&~#gIqNsltx3W@^BP_L=5vkkmVCLr($BAXU6) ztg!!B!S~HT1Z6qThEs3QV#qw+B)Bv;YM#U~qoswH8BlcNlsm9cz;I)seV{b$Vo7ET zI&j zcf=TK*xFNPuRvftR(OWu_$l!7Wi#2*6qp_PO#8zm3IFi2cj-er(e?jc;#_Bpq&X{(NmX!q4XIR%$d4|Th znDWcD0Ts_?ysU)c9kIn|ezeB~#5_PIy!>T1LfNj({8qk&J`0>ZU75+81bze3f!`#J z>C4OlaS}7l;MbLGU>R$KO~bEICb3e!v)egOUxoI-C-v?QH$JuSt$!*{p2+tnx>xo{ zbTA$_Pw~C4CMWoFd1IFE<>A34X2IYH@bYY6bi_)7`dfTd+~#>mYH49~M(oi(0sf6)y(NxH20bfSwqe ztuC*fWIP|7Q=xPrxg;n-8$>{~4WFu8h--&#rY|H2uH+wcy|hW6dN`EIZV+MOwMbo7 z7ugFvb6ysH%xGu%oM53N&Qu@L>o}wIYTDFGM3*=R2Og1CqUiGffBufh7_+?K;JHYsfK!`u3AUwc0-~edMbG}0f ztyryh?S9yq9Cg~)4!$+M9{FPsA^Ej%@w>$=2TB{8zu3<84)bd)le;gE>RC$`9pur8my;5P$f~ zRX)|)hchSE@f@Oj<2TRC54U!(%4b@8ca`H0|7MlXw)SoRdR{;N@cXKq`MBS!a^~Y+ z_ojKB%*XxvDrY|KcdGpE_}Eo`H2jizx`W?RJ}8kEdD-Fhz;Bgf-I~kI<6WlVPUQnj z_-o-v^6Y4&=}!LXdG=W7z4=J|3i3PCxSSjZdhlZYzZ1z-DyM!J>$$adcm>PnLaf3t zW--vR)K)){PesS-tLz6IdI1?9Yr7c*`mNUM0H3;0OE6BN!$ONsG$7G+Whj90(Y!_L z1ABZkx~(yrjld!-udKH}bT4}{$nT(?v8LO3w%O^(Is&yJ^{|X!5NpPW%BJf(Rx8eA z>Dg2*G$L@6RvdMKS8G`zs9UryI4xmt_~B@z(;=cGmm898GuUQci|^87eiwttk4n!1Vv) z$(7k9hYy5v&V`%alh0=OiZ$8$N#V$^s^2Q+V@~AN(&>Mu{--v&au{V7kvnqrtSr3| zxf=Ef%+);Q-Yh9zHF8+E#==Z(5#MUwk@8MHqit--RFCd&-^=n&p+UE!3()G$=%Rt? zqjG*P&3hzrMsFC;*arEctNFdW{NZ6^Ep2bSXC_2EoXoF!6TFL0gq2b=8E4>M7(rpB z86`R7TVj0|ddkDMb0HOgOE zjxd=ap=W$K{D9}WXH&5kd|hA7cVW{3Y7t`}IBwctVLn3a)3yg1K{e=2GVue0DMq@F>}W*5Ch?ymKu* zz-!=0kGp(NAg#F+@uc5N|Be-Ib`=zq1y1v_&LETNhW^@dC=a~!!x*58St&*erNEuJ zzTvBuKB*NBJMA;+sj`dq$XTqmYb#`AptG3zbbL>E0$8O!I%4d~r$>JKwS|A{JdW}X zULE`OynV5^0j8zpEO`7x@ce7N1?f&6lXEl6$E59B|H9kOF5~T}8%DkgK72N9p+)e8 zxSN{DW4AvsJ61kCc{ytG-MOdo$5(lg8G@aB;0&+^Mx19n)xWJu^HhHi?Ty5IF1%5h zUi#n3w;v6zg~DhMUmg9++HkNB=6Dl6k^a(`tTi#*g^mYv{XkCsn~{5eAoO%C9ql+W zbrXEaXplm({?Oa?0PqTVF2>C)p7So$B${E)lQ&$KVKfHsv8M~}NB+3q&HS3yiTXG4 z8(jN*@5QJ>xn|V^Qo~pZzr>$X1^!0bDw3Lxq4IZdlfR2G?l))LtP^r>6nTQuayjzk zN-J^|`FnSsB0uQJvhP?Iv-FR44ByCaa!Gk~T0>)ZRtPYI@lxj}+L62A zor~R?IRmN9A(x|;pkL=prxt0<>@d#=rT4CgL{2WGm6Bv-lJP-7S2}?Yv%pZBRv6QO zlRFdY*|iP{v|t}RIah79)`NV!`F$h9BE%%l#jM|n@7#_W9`l6 zQBywNK33)ARKKz)A8J?cnzz5%+Lx-F9OieJU)^9%|07jC(b{iS`DAN4)aasS~s{|c%F~#cUH~!HEf(e49MQiaT6nB)tADyyx65w zi;cEHd%3dVN4uqFE}LKJ1^?)=jK1dg>qcC(3ziW)fD`wWQ5)OBh;1Ls&pdWvfVzxI z&4czOV~DRj#enm2aD}_%(OSlW(^lz&mN-ilx>ASnK^=9PI#6whcZjd!%ni1{IWMBO zg03(+9qpjU>fTl(n<;mdHM%u#?WCXTp?H5hnf7@$BVWElnaE3C;LYa(vliz0&YxHN zv(~{*0HGRtppwY{22&@;Ln{Hq#3 zE*LYt`oLJ;8XFOpzO4Rw$?5)F>Zq3G{r#cOJd+!Xm*d=2IeW4`&Ec}G6;cu}7AN;^Yf?8?B**$73Tly{F?FuY*1YXK_CfI3MyW2koy0Me435>hrWOWsvhT8PnN3y_|Jx+`~fMp9&tdwoe5jxDYOTB4dX~lo-$9 zyB>-fb&mWZFq&~GD};W$lnkXmMTNS2NXUHLM$J)@#p_^~{_}KQb<4 z+wgg`%4g4QKXND|;8d}*2U5s?_rL20&hqT(d3h~=-<02Y&MKlmOF8fL69PU-WmDfD0 zop%qdx6?$flsB`Iy~>Gtf1GHQ=UZ82Q{@w_eLK-A&rfDmPL&h&exb^5&+2lbSn4Fw z{g)~y(tSVCD$h>^5k#Vt6X_nSa#rj7ewEJzuUSF!<$S-@3YM}O@QgZ{*%f>#B@P~i z$IYZ-LwKWP5#B&2y%3sfr_E#X%ouj8Ime>AS{ps5c7hj>baW^Ff>1bfz`9@8U6@-& zQjuGIbR-Rl!*AKm-~C~9guIQk5yjAt-Y|YWyzV+Yd$&(?w;YOg)2{4yP8X5<`}3)D zx@tCfGqb<%>~q2AvZml{&PrxJnA_2SeDAspMXZ?k50CFXk!z zU&;7+m)d0N(Vkj4><~OMG$;Nc_q4hf@oehWtHtS#Mtt{8K){r!*3$Km-7-z|Y zJ}dtRFPGBaGLF@R@M}ra*F$z{W*XjMJi~7qd$94qlux8(>JiJML%NE0r+lOipUwgE zmV8)iqK&Aa8}SJIV2ps4Hx4VU2ItE0XxqxR=*v3qO+<%Bp?v^eG>f(Ye&cPtYUUNn zhtfwu^W%>Y(Nl(2=s?<40}2IvHD)!z$#UFWGb_ec-=E)&3TT&_6?O3@qtUi8Yg_O* z8wCu=9$Jj}hIgG)J)3XrWWCXK8K;cX7Fbn})tle|dG{vi$Kur^sc0`~09J@v6s`1Q%=Dift#J+Wh*@z&((>6V)}z~ zsFw9OxilyTXW;iTW@H2^z+-YS@Dp8w)8YWy5hq5WrS+Hj2@b`t5N~FL(Z1?xwJa+U zh!Qw0RWJKiK38EG-WcZ;IJZo^HaG@Y=|QWCr=y%Q9-sj`N+=Z7HZIGrc1Piki#)2>L6`$+aM_(ej$V#m*W~WWfz%xEZ zqEriU<&Hh25!z|lojp}1(auJuaB*=t{vlGm8;YZ4>fAwPfM1dRQ|S|UZl(+$Gv|RU zP22H=6YSgI5HQbsWOt`p2AQTM?E>0{-Tk!2It0fy3tqLBUu6lEowQb~_vp7pp7b3R)~(DK2UT(M*>{%0pGpX=;x`pca;3csyIjU7 zwt)G7_0jrX@A)h z;mw_V@I>^=owqO}%r17ZQhQ;`bD7R@Sodb&!5hL7izjk9MM+0C&FLUV*8>}JISa&a zmFJl0HDIO4>|v$2CxHL*tnUxZHn4d)=W;H}>+RTqdcM)lEXs$=dga}t?Td@&$GqXO zw|Trhr^V`f0=dz>_mvFa8?{n>Phh{{k^0H-{m$a~M*EjV`LH)U_Buz}FKE3|KYIcf zdCvg#V?i&~^AoLc+f*Op$(*@qHnHy&d|#DgL4U5w59TZkvyAIxAD^glvX6gS z$jXgyIb~$e43yf(`8n5qy2b*1gQQB$7Pc=kSVo3OJ=RkV&l+m#RQ}^)BuHqCODl%f zV;Lhh!^#NInPysy($JzsM!R>>;*;sgeg4jyx{JepYNzG2huPxID}i_?En<_v z1M~J^1{>hYC3J@vdpsqxb9%={1H5fK2o1nH6u=88Y&rkv*rfxp?yXnPnA5$|M~e0L z%py(+KnsKE#}^h-FU>c^CeX1K1n=r#% z8~lYHSM$Lh5ib(q7)jmk7xg`v*K6I{(kgu!IeGG>dlh&NpW|PauYz|_`5*15-*2Rb zQZ@^$%Na=LhI=+ zqhoFa56Bv$f-}4gV6_I(E;~Tgd5i;!8*77yvBMQDfz%?GWa4JQ=5nrg+51#tI5~&d zez(Jdr;ctkhC!woxzY-4OSd9@>LJE6e0_A>wbTRq#BTT^tc@=!FKgnf`IXECl&lq% ztlv^&xCVe4QU-Y@|G*fPr)l0)F2esoOOr=KHxlvSrRz7En*iTNEX&Z2k)lDNDH(t< znhW!`@lEmPnNd}C!Q?EzZU>WkR7R=to)T2+FsR|$2dF`t*Ykvkr`lKVLSgVfTj2jn zzQb`~L;TnK;F~jOyj^69m1SM5rbdqHrekL;pgyBNIH&YhS}QJ6+cVnH@2Nn6r31F7 zf?aom&GNoh1`0AtZ`y)C_$E)FGm)%{q|8iRNNbhXqs5WOf}(IXItT8v-n50v=#>s& zlz79QNLLv!uuNo)#(@u5>52B6;u$%U^4KmZwk+fD6THMIN;>xD+FaSBt%TORBi7+Y zXs7&2Kd?nSRB~dTk}<pJ z^zbGFqo^r;Xa(4je6T!b38_U7v_W*nxryT&)Db(SpPo%U_?0~I{uexg~R#yD4~rJ`|JpOEU?iwSW)ZYf$6>Ojdn`6l-51uLlgwDd`Rnl$ zxhH%pziel9$-#L3oIuMrytmE%+jg>()W4D%&*Y!$%YHuXRW!6J%hNb#RijPUz#9oG zS;gh>0Jh`nv3?AB!yCYZ2Ycr>w@xNi(DOzI52TR)c=q7wv;Dr9{`-CRwb$i0%ZJ+c zF3M}|#G<_3{^O#&(LS;$A8yYq%17F7EXqgQ-!96>+8dHXvi;-jNR>0|@k5L9q4vz8 zyw-kmQO>=Ri}K<2P020wb`BkBM;7I*NUL)4L%*>oueX1w^7%vUN0M{u@19?4f3Ya9 zx7XcO&yV$4k|X)<`lHqJUEDqK>F_c;`&re5U$%V8#XG}a=lU5b`=3YR+!Y!@Jpj+& z=&ceZzLH+w9gcl4y=~3!Jv^B;RFC8tYpPD>grbM?O(;3RruOX9zZ~fN$P@GaFZA&o zN=e&oK#tw6(PIU{A)bO#YJ3GwYre*)w&o$Y{rF@uJWqC;j|4~qvPX( zZT>g&%>Cc06|I$b(=%pl54}-m)-tXEvtH7@9Asr1wZ~q+9!`jFYa_3=U$Un zFo%4wt>rd2JzL*k^sHrcO|fs2y~65?r;~YGDuJImLCy$A9f{ZG{GfKIynFZtf0B4e zKN4Pkr7L`IecsZ+Ido-PaitJ(SC4IKHUCxQ9jas??BZ#)>nC0-?Pl|Tg14YG};9y zrdrQA53~xmSv->n?qte4`K;$toQh4wMiyrq0Zm)4U#bV9JuT9$c>^d0XAu!-7r+#8 zK6#fL`R9rFz;`7OASL(YLofP~|MPIvDu#!=U|ZBXZEZc=RRPpTXp{Et;W5-vXgr*i{hPA|2*#mo2Ng>RipdA;jnPDFUExSo9n z!-f(y*3F+&i-%kdYL(T5ld*B0{jEkv-&GC*J8EXkSt%r9EgwD3YoR%9>dg}UQo=K- z-|<$4Mkbzi#RR(Q>t%QL_CnU29=~>*^Xh1(FSCrdp}$tCbTBc{R-nBcn3+pKj|^@B z!{+|6FZg|h>lu8wy>+VgJ8gu=`0wG9=eEwTACCo0dHen>T-c1Qtn&Ts3n`zw|KZN# z-+G|R_qEfD@>*Y~XPtGU&R&0`y$E0T^5ORFM2o$Aw7sv&k%Ql@a{Q9NtMc*8{1Zh| zf3vmgRldLVn@{`mt=7Kpu6dmkt-V;~ldb)8m9tLo`?9*B*Uu`07pfcw>PuD5DucIW zMMJOij+`)D<*YLJSd~ww-zqyq?t!RX*I>uU0ww>94CCx@=^1L$4pYT&;5G!dgdeJY^P(%ohH$ zv*2h8*Rx>@;X88CtmZ=tY=tk~f9?&;W^b6&bLWWmlN>+KkVpMu>fybiH=IGDA2b>} zN8xpT0|HvWr^9a7tO{%GYTfU_yjS;x;IEDw9-IeKdYSJ-=Z*Ddd+!@mQyAZ(|Bz9& zC%)6I=7yN}WgM)k#dpGQz$f$GvC$a}{ZT8=x~QUT=WA z!UZszc^=lPR`bCP#60Hz@Sf=vn4lkiKAs$ZpKG(;t9xO1uVyx;eff69kFI7}ZL99@ z)fXR;|4yKE-V_MHvvIF6#;vJlRsd;aXN3^b?p{hdr|*uqF%r0A>O)N9aA-fq28T)A zRgUEsW+1NiEO$2DV!5Vf%27D}0xC`x{S? zamIs14=@7gNbb#`l*U-2xA@}V@`%P4BL3mxJaW;>}j=*FB7vR%0q*1JEJ)?I7GP7Gpf zR^uS^S2|os_r3YHnGYI`xgfNt)}dx%(Q`=Y3%&ib^ZpqfbR^Tmig8A>3@`f5Tp1ZX zv5ADaMyFQnFtRD!gG+$S8FylOR^q|mw1l2x6jSWTx8B#`$p+JvNc7-oALF)?n)zZR zv^Fq{^@9t>-73u5l3M@=8GxZa_}R*reUi+Ph-(weh^(yo>%TrrP{ zwxl2Fi6(JHmQ;Zscwaj_%ebH=dV;>3T?QuPuT}|Y6P+I&_@!2@nSk@lJ6N>|j)wb! zTt$2}??C}Ln6cEnGw{LTWI}G{7c?||T*yaym8D^fNN{OBNAK!~+wH@XXUM9v4#YX$ zWgDh8U$!0YHJ~rDXHc086ddtru#A0S#EkO!4wZL^4vN4ZLU06z;!bV(;kSgM$lgRNe;|ULBjy^arr$!)Gh)aL+ATng#kAQMC>f zk)PE1ZZvg*s@t(iW^ms}|r7`2UwvgFL(6ck%`th4$xz6w(qN zDj0BIyB-#6U%{`OUwo=Ri=4>uQ$4_V(6eBuY~SGh%IV|H0uS~nB~0qwpTw_r<@PjF&HvKwtu z>oK6le)bqy#uMQTXxi2)*Lnk`a7tD6=*4&r(^-$_@;2HZ&UN+VR=5-U<$1X3E%1zV z!PnXvDB=!7*740UQt|-_4f~wJi32I*zq9ZBfvpFVlOiu;dClC`{SU8^=Q@~ri9y%M zbG^69i7BsEIXSPts&eAXK08hQ#FQT~AFy^lG37TH>-T+l@2GO(`yZ}y;`^&rPJI6j z<^cLWypL2l@%^7w`R#f4t~qRp?|-w(iSNI`Sij%E`JpPG%8r66pH3WaeBW>2JX_^6 zS@B=x#P{E2e80wNotLYe`2Jgs>DSIDz9&AuH{U-Vydwc6uUMU1@ddUB2|~hMA9Cwj zM!d$4=p3l~QvPCT@G+E{{Ub?uNf~BMj2h}Rjm`FstuleT>0$Vf(^d4(re8e1)pHn- zFQO7wGy}n`_q8`7TZU+sH{8jDuB)hxhzSV1^JyBB)xLshOnETyKuI)_-VU0={)x9( zd*He6&;srN_eiBPF?jiCIBcnl`5p4-M@eJ9LL@!Db8G+8^y>n^?;R-O#!8 zJNBjGk9<9#Sk|<+vi~>JGqis`e}`u~)upqH=1P9W&fo#5r@b5T$vo409P9SM)9AOn z+KRX6PrHIgOGH5Z@`C7t_MiqFG}XjJK&*_0lik8ypVYXaM{` zt-L*<38wa5+CqhjkC7?7UgS%7jUuWY_z2xDr|jf!{jNPI?_t^tG+rG8HpqEUAVPBX zYw;)3+l9Oj>_`aw2HfSF$+E=szb6?j}11R;^23%9>!RJr|uG;DH4gG-iR%4#^ zF%M}&PHu#AkWhL@7r_PQ9g&raNu)0AUe6mB^A|p%XZgEm#>&hQHSm5#^qgV=<0c_*<1Pd4HB)@I>Q8c2D%T<0bN6 zyv*!p&A!qq$K(7$l~efx2j+F+asEb?GmG)ZRgTBWIrF_8W-;_W*K>#tTh-se}Vd?I&B>Sgx(F4=3_-wj~@T;+J5kKQ$Z9`Ey4s~qq1i&cI{&TQA? zT;~M6->GuE&o5KnKGnzj2Y8&ld|&%8US=;JYX8@wyw>-~`h2~;$P7`hv(fHz_9yM+ zu2N@nQa;kY+ZmjcgOoQ`{bTL(i}LaI#J`$951#*JQNFKz;G66Dp|gchr3Bc4T0`d6m*!b$f-ja_9i$ScX0V4+QNdFUOqJ9!WM zGRm}qo!2gN-X?J=J`&o*c_I4d{!MaPWH3Fo7Vim9TUf~tprdO4?0&E<#}TVGN8FA0 zVK*)Ar;WM4ihHeCxBjvC7Qa4OnQ%GJf4W`n)}Qt4tOvZ3dH9n#tC&^on{5_qeSEI@ zrmJW#rblQrji-3#yZ|)QhNv^ijF6APil9fSIgP^#n_&0OsIbgMLQ?S>v4-A7aZ}BV z!EHbS)qr6yTtIzi5bQSsAX~Pi=iQRQfaLdU0&eGGBJh@d2 zp^v7e)AnJL2dfj+()cMUYVKS5hJcfM0jUdZE)_)6t3ZG>aK@hzHzRTm2fYOCmg|6B z*8b>|P-hm1mv>9T_h#1d$H0_y00JUtI0T&{@9HUmALA_Gmp8{R`1?Eg;A5G?$2SCW z)-H@wPqriHb+3~%Yf!LqJJ43_J9^;Mu4px`cL?bJrC!r}xh|zlrjhwk@J>X*j3v+U zwuvXu!@K#_xEC6lfvBu7p65>LGY+}SlRiL8lIFLNKd6qiDUvZ+e ztvB@Z3mGiZp$GH{Z7_P{PTC+cfU@*RhN>VL?@rsPvUB9KE;R)! zJXCYZSa6^xCl7_7YUu#5b16^3G!kw8AIx9NFO@BT=LZExnRbz1@x_`RF-&V{OY;l6 z`8LhCBER@go+rkMXhgqgJKn<#j)@PH98U)iRDUZ0M&4oEpz z!x|yMd#$gz0%(Xd8<~MW#z`FMX~-{GG?Z5`5QV0?cnVBv%Ssbd`zu8Kt^d93Y)k8 zT<44%=@(qx%m;eaxQesnH$Ci^QU}QzzBKxe@l~#0n_!+u&2=*^GU73+!Jj~a+)5cG zWT)d_sj73%)jZH^uf8%v#;B$eI@K6v#q?9q1V~)*b!o+-uClFmKn{HuD9wx9t{12P z*3jkN=mNw;M~MeKF=Q7#p*B~7u}4rD?&U+)a25?|1`;0{4wyt z4x@n=kV-rf#)yp4>!p0iU8>7h+hT_(zb)HwX0ntVXp8)zEukbZlBY$ZgFmds;4ke} zS%C4Dx^LPyyM6R7%EAv$p`?wih>CHLB~WJghSVc9V9#0iNBTU8&+*NSMa&0yGO_ZF z?N!4lb@1Mx9{$c0q8dZdV(dnRo52Y3BCmoASIcTu>~A$^3B<_3m`R7`m-7T$R%fKT zj~?CetASUHOjjJUHiX#+|E~6-cGh2nep4wLW4)CZA_d_Y-bUwROBormBNo6H|A+@q zMj{9Of4XxG(J!OaBgb+`KTbmDyd5C8lJUb){0bj&(t;7dvfPv%qdllUX6k6=Y~Dnx z-^d4h$V}0IMms7sdEbnL@#}?rU)F-G+_)O3h}3HR-cIm~_k*=0mUI^)5?C^dZ()pi zJ@10Cp*4{X_qs4vA|-UdkYDb^xso@y1Dz8NW`V%SA9^{{>JGq9r53o~&0jQ7#R=X} z`|*4q=hslDG!4*bE6^@{V@?Mv1oq_5t<;9P^az%U`=vF|E>lG5Llbb)+dUZ3p`rO^+;|vg`QC)Osqp$jx4J z*0~D~q#gPaJH!agF!RK`4r8EKvJzlk8#DNN>Tgs&MQ))5<0CAVYn0?N{23_+wn`_| zdgro!v%qLZMGZtNj9Co=r&Yv1^(yF-lOi7t4@*h)f-x=Yx3oyBX9x*1*0}NmwSS>< z%KSFQt(LzPN6!NHR$!g(PeFIXQP}i@i@98I`sr{CtJcV1xH6kD8cTjYPthCdd`7&J zfAAj?K+ewn=woKCw6a#2@k2>uQvLf&8UMxP)W@keXhQ6ymVtab5+vqowwp*(85-}y z6G$1qpo8F2^1tSuX^|M6yhF>V(MiS^dJSSv?V?qI!;JRfF!b-#mz-)6dL3uPLoNJr zuq2m(7b2o-c|u!4zLWl^eOD~1p3qkpNBR{z9rv{CnTjLUXUuhip3+eIu41BPnLxsg zY;75u+HOGv4Txw&#OA zXiD1fsyi~dmCt|{&;0BZxtuqzce@Nk&cR>kRMSULzkqYc!z$`&=0@%-YcbW> z@{MwV)-Y>cST1^~p`yJ0hg-}2OHN~_!*MDw(R1NwXmd3P{7gh5-r&u?fN{Xz0zSZ4Uf*%Kgi72>ezyZvp($GGG)tuNYA-BFwY z-HG(gDr+-bODD~-Z#O$Fo=mBHT>6(sXTc58C*v^|g8QY0_8mN8mp#Rpk#X)3TGwm` zyoR3zT=*$dO94)JqwEM8O`VTK?B*NtwbL<31jBb=1IL^LrKZR4E^Ls%6UF^}DQn1nJbaypyE-k-1TLVO54r+^6;@}&pfp&-6 z<#V{5DIQt6nGmcCQZU@Op;cvvF}kU!KJ=qpdg#JgpGy3|6KgMaW<8QSVsd+J_2_`6m! zfNOnrXiABT8`2Zz|P4DXu69jKc12rXJp}#e#Qd-Iddw$cwT4ma|gMW zk!RjeWCV&g8KJ0B14 zLsgE4_xUQv!~0T|4ZnT4pVu$4W`o?%UO@NlA18-4J znM0%N2V&n^>h9(@M$TxF!{t>hYA*U!@|I_ckyrGvFBqc-bsCb(>Lp@f=Y+L!%vPZJFQm=FuyzSdvAPnTz+1t0)|0J>sC z2;~{TRosA%#Eenmhv8$^+z$A(H^)L-VAFgW`o?I19xAfscV_h9aP4R5fbxgRu9n>5 z@zN7J4i1L)$~AN~?%d2%q;{-!+zAAMs~LLjE^#L7+3v|%fAVSV%Byp1;J7*m z1TJOF_Tq^YNItd|PNVLuL$mkXo~OHq$Ghko_I9X~uEdLFt?(o5=a=XJ@2cB9|9kKj zQIWj>ty+1(|1$jGhK?HAW|^;MSAr*%qbC*3^<7T z(Clb$u*~U+%aUK72O5PeHqg)m@-cWHejI)zP=E#J_P{foGz*ULJCcCve#iUb6YyVr zfxhG6V~g^A?GG2_L+$St<+b+y166;${o|s%(YUeAb`G~U>tFO84}Z8QAMGbqTjyB$ z9jSA?J)^IY8_u%-_pW(6xgG5ji}IoN#QGYf3hgAwcmbYJzsAh z$Sw`*Y_vCImxkrT?WILIcco^RhR=_-H)UsrD~BX7uOr%RW%$_+@`v<@jaao!uC{ z&dJvPQ4i0S)^$=&A0tsXlfW@1imB2GN)W6TYJw(O-#5-j?4T;-+LqN!cpViEUl=KhgwtGNXIdEwM@mb@}8l;kyeWa_{+X4or+(ci_dd0|BMmG z`j^>)XSM?w79V~m0-x^Thu2@s7?_&_*4^F<=iL(leLCNMChsvi`^M+y9<7UcGUa?D zu3A+_JJ?ga3+%cF#j#^Al;?59%VS1bhCa=kF5ikXm?AK4@AT^Z52?#sR_Yf^q9|B!5O zUcK*!mFc@DVo%dGcaeOpP@`{e2d(n|T1d_PT~;`WeTwH-E-Pp=R#Om(qtRYYTG#=IRw~IFUdhLL zOT=hq`rt~e2)YJ}@g6H_ltis_`EV71lVN}Zkq=@rEFTh1FCWiu#%Luw)7ie#=iF_B zj3Fb-QMPgp_tku3d79>(SNW10%$3w$*3oKuwKFzKZ%v!2rwR{DAydOw#?g0nQ)fWD zI=ZQS)XI#yj0?NGte5nmht}QyhM)cKH2`aanncmeVNJ2MiXrh=uuab^DM=r*v3N*k zwf4i=vJD+?-WmS%j;1^^r9r{yT-4W_FQz@;DfGiTTK1pHLz?=C2N%BKi(NwGbvTuL zp&3NHQqL!^vEx4=SI8$4fIeO3?pdVlN_>#=XW;US`KJAb<952IV;)A%M9T4ppP$R! z@CDG^`%B2+)t9%0rKN{uxpO;O?@l$mZ^P@S0y#eGGL>9epuQj*4PM1W;Zi;lljP0y z^6(&Ci{N*>W<6kM2P^ghFX%(?i5@iu)mz`6I?gUhi$^+4oO!Kxf|g_)QWVP58ve?2 z^JjRejvF27oHI9G>hTPZVnk;}cPPxPjc@M{A91nzgS*9E34~gd>fx2bC!Ol;JB9C5 z@WQyLkEi|WaU=JTkAT+rpLkTv2B;Bjx#nwbFM;6iWVphtzBAQ~&)I@nJ@I^cg1T5$ z=`L3cS%jXi)E5xW-B5Ar5$xv=*dv^5HXh!e`p&O~kMsZD$Y8Ivc{!U6ZKj?z-&cKA zxDeUdFD7^}(b1W9qD_52-XZHfEces~em$V#RE`t5p>KarqTu;@L$Vry?1!Ia&t}M% zdVV!OpzIAzk2NGV#IGYltUIw?35VqC|d8B9xFfo( za~k0deGI)YFnX!i0Po}oXL(ES6T86stF~7^Mr@*M$^F#+<60epUVkBNCFdV)%3Lc^ z@lKy}l5%5}9eCQ!N6kmf!pbPD0#eGF&Yd}hm027FhG zUr$>X^KB=!{mpep)aD86mcjb3r%u(x&obvVveab5#?EBkCQrt!A{<0Mr}Vyj2zRq$e8s*sWol4X3Ui_W(KiY z%(N?ad>@e}-xx(@8leP~tC>0}LyXEkwakBXZ+R#91N$|rT6S6;Z?3K8s;6_YaGI3h z1Sw{5&!-h|7O)HN2W9jpu2no zO_2^p1m(^B;%|>!?UXX`$`c){%eI1^&|K1uj3(nCCaL|&=pVSw++#&6pOgDGAI*K0 z;lfiVf8cKqq>%p}*gTi}({jU6m9vN8FRPp%-j;g3PG)4US2;7I-<4V3{ya03FH||R zk}b2mJWuuZpXX&}nZGbEr+RxZv%J)y`k&6rnZ#`O-{td6Vz%F!motgk-jrEh>Sy~y z`|!N{&XljF{Lq>6=eFO|+MlQVa0e(ek(mkZ}QO?S~yW7^?eAmj7$>WSC&gQUPxqo^u^5xX| z?8G~{^PZngKQ|*C)iybSE1l=LqY>?H-X0tCN=J1$Z2R|#LULE}V^?}sC zb|b;t!TTXUKvakHBk!#I!{0zZVx6bs1B=G_*ZS}1##cYiR|dgrJ9fs+$nh<(D~|HD z>|@IPoKOa?@fiotzm~n-ot5!=jY!hyW3ODjdU|aKTi9v%1?va5;7MQ02Z@Forrh${ zNHgP__CP<{;NA3&-horW<+ShDmQ(M}92FkVPI?*ogB={m(5EK&el2PGe`Zwp;P`2` z$M=4{wmD8-z3zN1`Daxx+xG1#^=zn*7v%g5bMCB)K||sfLJy-pZ#S1Ztixlq58BIE z#hLI~zP}|HIh4;U$IP8`Kh$`#Qx3i)(lW*|Dyi9cV$wUO3w!xEjRWpC;u;zYDZpPP zhmQ`Z{5Snx$og5HfCuK3cJu5L!P^J(-JPn#3UUKX#l7xo8hB?U)^yImwHT|lv{2{> zsCF@ZkqZJkV4el*tMqgore1EXW}=_VnbmzJyIr=@2B#*lkNH%doy~_+IetE^@y~s3 z<*U=<-T4)dl`J>yq6^`X%2FF+td8YEYN5-tZhQk{6$KJ+`o#FCVijx$aUb!cvvKex zo;8|sWCx`Ac890Dc`Wh4TkHXJxc zvzu@D`alU5oJR#$)Y}cNjACyDc4JjIN)JH#@IK#bWn8U)7&DO0h`)O2+Rx_!!dtJQ z9ejJ|QnZyZ)I8LUv^-?!wU*asgR%WQjOFpb2VzfX?tC=2>*KW^4=dX75T`gpbK^Pc zQ=?s84NW$~#c&o}IBos4!qR5A91j6GVQvh%-yI!-9J+#f8i%~L{8pL>{flPCB5|tW zg-G3tT|$B8RCM$&Mk<^HoOzq_^XG*h&7KG~!XRQb`|TUO;C$iB-e zzc=kAyK-MLL~sVSeK~(`-p@#jUs<1m9KrWvMu{vfQgtD6MSg#piPrB!vrboW;y;i% zwyvuU(CxIL=cI2y+(nKUsOXcOupdkBe{9MrU7K!5Do21>=NDA5WQ?`AhTu$7~lpOZ|ageM|lF zIvwhI$EtfenUykM?kd?a561k8^EK43c@iMe2iXc#wbzw#)Chs`YQAC3cKTl+!e0-agSU|1c9^_7RfEav)2PJ6sKh*irX}Z9ijn3H@OknLjGJs z)5go~uVy8%@+UO3TqgX$7%UJaMtNJ;qxVZW-?2z^C;cD7quc9yfY(CuDTEBOv_c+RNKeLBjS(%o@K)Y4t zhz=c8Iif>9svOawE81V%Jp5!F0iWfF%s_%3v3Z|FSdc!5_$v7bCQLe9U!>Q%5blJ zyArbFb=Y5^nD^^Z27^S&(U;8e^F;C2xE{uuzF*$geo(5; zQ!QdgtfNJbr*zO~x~wM11wC!2L)ilGyWYs|_v1S2T_4`^9)c|_k9qGe{Z?|UrR0b( zeg4E}`7O`~-p_A=zPplj*LFi%+?;Yhl~}R7i|hTMl2VDkd+|1{$jWVnRWnIz5N|U& z7%AK3F}TBi!n^vdm5y(dCh8WDTY5t;3h&dxU|w(M?3NEjy)cT;OZS_l04dsf2uI;9 zXDvhP@WoO5((*X|E=nRK7QO8HRl!baAuxx%g+sSAb*j%v<)ShPbfielmXZj=1%tP zfYvfK(O%fq^bN@Yg^+Ro&&8Z#zMPZO7D}x+NNhh7+TcC25uAwa%nI^LMUk%NBFZYOyLON6Hw9d^E}B)O=a3Eqo3EuT!;FYeS{{01p3 z)Axy#N$Blyw9F?;c+R)#Rao?%j^YlZadk<3s36z-Ih0VB!jG(%;UcKij}cWKSS1Yl zLEi{kgtkGiYaKHDplc_2hcQ#84H3=AutfMA+lD9MhI!tRYqV125NhfP00-{80}mj- z&X;$6ut!N3b=SvepZBo-Fp~?To0mgP=Ow3v9kUU#b2BWTVMNt7qBe20VMJT7PVa|J z^fL06zllhjSgyP-WNZyjV@EP+&9tUUZFNNgji2wiq literal 0 HcmV?d00001 diff --git a/gamefiles/TEXT/spanish.gxt b/gamefiles/TEXT/spanish.gxt index 88191fa754a77daac35fb1f34d8cfe93d56ac9b2..7a71144c176ac5129e3dd0f5479d0221193c9f56 100644 GIT binary patch literal 455278 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 literal 560592 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 z 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 diff --git a/gamefiles/models/fonts_r.txd b/gamefiles/models/fonts_r.txd new file mode 100644 index 0000000000000000000000000000000000000000..b6d50ac29fcd0f4c08e048130d298252922dc6b2 GIT binary patch literal 524584 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�AU);`GlqzeOU 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

b%}d=&U71g)ecH;X0_Vj3cdlg@v-O_!2chwT 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�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�WFnzymIPt{i~g&o!q^UQdG^7)zQf3HLKL zb^iz-TdSE-7ES)W=7=q&g2h%HE?3qN{>LoRI;!t$B-_`dBQ7vW@DAq1F+V>Wd~jZg zI<>L63%uaSSE3;G1vgub#!l#`PTMr-ikPpmC=b*1jF!aUI--wwwzd}MVR~h9BIf?= z_2q75HeRn$ijPqo_&JA6YZa{3=q#nr3F6eTmH57)<_m9- zy-mwphPZ+CVbYkibo)GZy@}?2M)-FvP5Aw&M=jBl^gBv~m?+W>JhoZ~>PB9he-C|v zVqOT38b=ReF7o+p+vXKr=CZSOdhk2$_rL%BZ>I9V%H=C*{>LrYl+*_ji9{82yrnN3 zJ&F2%9d1KR>wCV@g>9(j);hG>12os&dPkw&1m17%H;*T-{XVCtJy1eCV60BAq&(qm zoE-n6WN%i_R}bEppJ`MJN7?z6Le z?L>rhpl{obUPuQI_@t-c4qYGPcPGH>ws7seiKqj&a0za|K=|%`E$?ac)0jl$n5qk0 zY$N8!USL*#V-kHXxTGZ>{=@g3ZB-IJ8EGvNst2xLJ%n|aa(kI*RSsQ8MSYu%aG9@c zFAMRhoJG&UzY%ZB%kg|C*7ZD(dHhONC6OhfFU*>-5j^~k9XmHL5A_G@8Cx>t@AKBmi(^u1=KR7(D@x<2TlIrQpkMIEgxz9yEAlO454m0+8l ze7JMhRQwl7q>60VMOxD0Cy1Zq8}nV1pXO)(0`}u)`9Z6M=0c@o-Ia(h2U|UU@L4}^ z_Q{l_FXa|IA&`!+ZP#0xc||fi_5aA%&xXuB=N}i9xi~5S#B|&b3a^HPxudR zA4NYnDXX+ptBnGla<4x^ec;*G`_gA%p9fXHX=+`7SgQUI{l6T4+JK(o!MN5xRR>tv zn{Pa`VQ$8S{a6`iMEq}%#au@G@BTDF9BaR6$Pb6D(1D8fr7W z-$wI5_3k?r6bCTx*M})rK7P%nD&WtW?Si2bcq_%JQsQ@CJpXDM9&?ACViDo}kDb27 zImLC6a~Js~7YGb{==J%EW*@z7DYGT1aXpjw?U?GbTXwBS-5lco z_`3J`PQ?Aq!sbNEw-S-~L>$gzvlwjDKX#gRxy0k;8(#k_*_8+>SqwnIiyr@&dPlux3 z$icc_&XuZsM~ygOXmx!`{v7_VBiBX_+8J9ioRsxF{@k6;<#Ldc6Q z>%|J_{9F^a4SMdplKh^u_{*pdR_St)Cw%;!{lSiG;3(m46k|@D&6u7LLw)FQ4&L55?U}?L#{#o?qV4GN1hVrd168_OTeT7IH8>nCNN4tl>fARMFL+dEH5`G;%p+HfAsYc{vy z^FDU_!L~;T-y!p^uYeyX6<_P6_~fgRNagmGRmbymh)dI3 zGi}Oxss~*9Y|MX8&yYm5UCAnWJ4=0LVl37^Xb`8WhE3S#Lr9zW_$A=`k^7i~?BVW% z$=?ER&hWj%HNrp7-7HI(F30O>&2x7l&-2%O^&fR&Uhg+uOYRY`7yaV+Dyjo~zW-T5 ze!trg9yx{if!rUzfnQdz8_Mx<;om@Qpg%jW`kFXW@3?@~V|pdz@uu z^f-A&bblv{t4dM2NvC5M&JS5B-@B6USEIh?CTqt7WCv!wUQKp0O*L0UI7Qw0LXSLx zO&eR1$iGbii-nFK|F|3Y7PD-_fED<%^&fq-pUx{y5GtTga*pwz@Ol?pC>v^{?_Xos zm`m#fj9T4P-Z1Gqv~h?t=Wgz{A{ua+*pNYHmu~O~ZBzXJ-)7BvMrBW{I`E3?DZ>93 zPu-7oz%qN)@#;A$*nv^+&<_6}{-p0p`}$L<&!fl*gZCZRjPpYNqrh2*&72g_2M2I| ziVwE(3UAcfM>TDV+^(5xqcqv$CuX^I`?3~!64YC`m<`kC+m5}2y#K`5kmqCM{Z(%k ztS8=o&Uv7f;sCZmz8#A?(Bho)N*eGVxpuu=Zujyn#++)>c?`B7^neQf#OrtOAbztp zZu`y(2K_%f7kL};pxKj3^>w=t){o#Q79UFqp+DE2Y1ONN`~K0MuOuX- z$g}aeqo#KKN*t97w{0eWjFw2IQC+_vIr=O;&a_DEz>|}CB-692;;M2`xn)<;e&3dQ z%=w`X^tHZ(_>?LQPVo$JCF#9ge6-Wj>jQ5!SZ#Y~J<8#l++3_XVGdIec7py-3|~R` z&rSY!cY4)+_En&r@aN6aX)4l#TGq82Ft@~YWEB}`{kKAm3Se(qm1~nxAlyHC?tp{r z;FYKIjA^I`=G>pV4tW5&*S%|$|FQp!b}Fu0L^9gnNh0+1M1kkOHF+lVH0pdsOr(J7 zzrp-I%z^IJM8Zz!gO~#?)lR;X^I29*%g)@CqT^Yu4wcu={h(WvDp8@ISMsRzql#?! z*M}EBUrzb|#w+24@PGE0>PPHLahZRs_Sj711126Vg^vFMn>*Ks*TK^_PK<_-2U?rw zVz=^QrnDEDNdFN8*I~l{r)@FG)K4uH#1ir!nQsC7D#Yi<%sWDH*5)AI970_jH8aGk zt8#QzQC>uX&CY4h$?aV%A+;TkYz8c2Lma+fJSEgM5Pk#PUv24Ch!@WBe0uCjQMJV3 zJk<|b=TKg_5S8knIsE7IxFGC{$Ne&=zW?yJ3;d>&ZyK1`N%_TEcAqW2;W!F z#bDo$VpgFz+nkNhjg^kJzYe=Pp-^~MR;leOr^QKeB+%P;hTcE)$M|IW-ptH>nO)F# z7Z*B2WY5ZpyV0+M_X*-5BlUmo*!nTQ(8X{6B;!G<|BcwsF4hkHU*%QJwx`)Q)vU=Q z+?VgYf8~o<{~;Lb-Lx-=km2{KsxEV-BjK?9|L~_ePS)6lbsY&Ai(UWtH&X zVm7fvRYm%a=frjBwVnLcoV7RTI^sUq>*+j+u_;#4RYgLtUT&}84kRafI>Ebj)ovx> z5O7Eq5`LHGj!u%!FMhNhy1&PuEp10$xL{DIX#bvKZX`)14xvBacQx4}NBw{1t}jCI zV$Q0lS#fU1FJvBi!d5K85c=fBWP1Ch$u>4E>er{G_KiA5dDMhoZtbH3?m59+#P!iT=;*BCOlN`fHh8H0PH~Y5#|R z%lvyg#er#Aai{}id*ejunKJuj&NONowR5x3@7F^A`(AVDQu}Y7LB8+qZb995T$3BL z+MWi^CiB(m*ES?P9*&qz?`&XMe;oFv5MQWERYDIyo#zPTDT|)Q{&9=cmwC5t%&U}O z?yqEbiXaf~-s9to(U)T%EZ+8|8u%M@uO7vIU;OKL-#9^hkhLee!K>L{hHl@+`?+4h zCyb!Zm&`LJcOoDB){^(24}KqQiPi#NCfqE?{PqjX;}#i0$opK z`H9!)x^Lf6cb;%-tn(os``G08U}*@QkKbeCSUDa$ghP39`(@S^+yiStKcFIt`B=LB z-|@S_FIh^XSRaRY)E+1uBRg#Q<@_ETx!a`y6UCu~l<5g^u*24Y;1<+%Y_XajraGXe zRk%p!`$I{`KG+i{Tob{6J9(#Opyx3>-@UeCA3aV=of}WTSL=G{{%q)@Ek8Se^9oKR zNlOI(=fgJ@{%m}2Kp1JD?}>Kpi#!Ir7f$*QQJty91PY#KB{B!}p%tu1UpOoy|DP{Y zq+#8EcIH!$lK-!KYQ`gE2lw6g)S|Rn+1|ds$q4blmD!n?|Nmhr;eR9Nc-ERw7*gP$DEl?)6n;4@iQ~A|ITIpi!MoHI{J2p8W$w1tJ3X~x6Agz z9-wQK)ex?R+Modbz*+PAp}%$VDsS)x)dB5}QyRnxo)R1a9)byGUfks}fp`K{C7 z0nh4WUa1p0Fy^#k`AaL}N+-WqHg_@MiTjIfN8V=1hYk%);VDthkF)#vFY~VgcOP$& zmf>}*FIYI#hwtG(`N?}2{ePbKY4hpzt;OZ|o=Vmz6^r8RxYAdXXOMk@mKl-v_~MPv z|254%WURyd--}fD>E2h8-_MAjf&Cw_|BLIs_g<_WX1jJx_7VPw7g1FI5&vI~zTQ|* z_k6;4XTAyb9r``qwnoAqW8T>`=cQ=qSx-DMx>skW{XeW0r|kP2g{ICX*;A-Hrs;W8 z;c*+V|Knd4E4=K2L9K|90tfcnR!u(P`ndC)0sB01t@jVu2!HE~)E~Bq?!f;r@3A^3hy1_chBPe}c*jO5p?0R%;JOZCUZ_*}s0*Kagn#h@Scy?A7Rw0# zljbZj{l6ly8+PaA6D+s;Xn)5BucB@x{y%+_v6%4f@Hcp9o~-e3VHD|l`MI0V16SS@ zu4q_^&*$#+Na%e1ZPTabQ-`2GL+53Y+uwP8{OG}l$^|REUtJ*?#QAt*vwR`=5W85| z-kxShK2tTa@w9<6pY?f(*mxO$@Kv#j;Ihp_HvgJ%2JMYF%p`s{Zhol{JGz@A9dFO#zN zX4OrTh_-OgH~>|U7G1)AQSg>|;Yn9mE{rRy5`MhbgEJrEfzg}t*$|NI-Yp1>78 zy7(pd@7V5a=s~!jwAZs|1bO^uaxLP3k9orJ^f}HVn0qkSXB>ZH9JpTGE}bS)Vs4BV zOZiyTn+NAqziPnydAA_|{Lz0eXmk+HgObzz*}!RRqQgt|_n68HzxVO`PS~P}w?!!} zr(ehOxIGH$#;xphj7UoT+`g;32fGepegD}zJL&n)nOI84>FNcuU$2$hyA2n>OG3PO z+H&}FB|l3t4!iM#XPnUzU(i{pKh(v?|1MUA`k*RrjZTTY!E5 zCU`Tt4$fxn=Q_5$2wtO5s4<5nv!|3x-b<@mVP7^w97p(XUX@!z_`lV+E1&ZJsOie> zljQ%}($Zt->#W(7<$N2s7nlN=_uQa~^j&k14jeY=gYV!dZ|Uy&0`tC;rtJK;H!RC& z{Mu~Vmo+OZTbtK&5xD2xXi>*j1&v;}R781v%qnVOP@f-0W=vPfg|9}hX>wUOh-1+a$ou~dyLt8}*`b5m}U=(;> zF}Gmx9UbaU)Z6+g{(mpPLl^4eAK$%j9od`3HE5)|G9l?t(-4nY+hDknaF13ro~C$E zHhuzeq>_E({1`Z{;G!Ml+R(u`d(;b0dht37PHM4kAN9R^ra^TyrELr9{CeD24fyh zfyq|rMQm{P9xLU8A=oMTKep|@8N&Orw&ur&Fh3AHljsW_mN#i)Us**fqA z>1_>-r2=qeZL2@Bk)1$)4NM(R%}pWy9DD1R0gBtyCUz2V>}{M%VN;-NgGWaU@~hJDNywhU7~2>0$9Bit2@<=E!}{37GpEj;EI zHn!}Gt4c*a*LSQak?n>4Yb4x_n&ZG7b>C*Uk&cl4un#2q!lw2zvIBE?+bq0Tt^Ks$kI7tA)bZGimvgZ~hgA-Ivdn-( zFx2Pl-`^iqf&Ii5DOApE;JYOpO>kw{iPLiKg@Tx^lN%v ztW3f_Cztszv+FB;=>K7zdLik+&cMh&NDpK``rbkPez302B@q5mGcBmwDp+r2QC}=@ zIM&z$zkPvgJIxE7;B|@h?;RogOArqog`YF5V{j4f-#MFmh&TJaw-D#g8^t2)hm;>& zjt`HJznaFw+z8HlT5Fh^(~;PIJUkVjy|Ojr=T`@}1c*0U+=2_&pKG_g)jNv!H+jBo zCO-Dfy>01uANn#4_&)4QQa5Xo{CL8Uh`DXdl~p*>>3o()k`~6{sDJC)o4}p7nzHqk zIPd1Sj}(UZt?Y^MMm^#H_oz*5?ZV@rc%Zw9l0V5N9?%gy9pWz<7Ru$(YT_Ni zQp6wd!(>T3o!4DoZy_8#5YpAasd~X0#A&(x?@#}tit6+Vr_fJzLQYQM^SJ&jO})5H zjq9I0?(6NudJLQEa5DM(_6s^4txq(%j@U?N)ZJD}($TMx{@AcYZb!dX;vgQwyKK@$ zgx{`0rO*X@Mav#dH^Kjh_)rhxJNvFH#+#1cbMvC0qy0YwWjXlCRwngq#eU#hS(}3P zm7GWGyNxvev1I-t@c&`VA)NW$|Ka^F+^6uD*^wr&E=X0CBB6cY{;|}A1>kR^uP616 z@q}}4fA=Kmyn$dt-Eyq^8yohdo`AmB;FsE#W1TQzZUm1iG}~)i-hiOL;vsFp-HZYWmgG; zR!j9kti(J(c*eW-89Sl>w2r7-zzg}dJ13$#*%oGMYO@f|E49C`iG|KH8r&VG_gNzCtT?iQ2X_@#kTIqW9CFaWE={)Vy` zE1u^^Bbw1J%&QJMg_;nKNAtg96z@%j(0t;Jce=f?qX&_<60z@#9s3%8{N2y=JRdL& zpgYV3JB*pKy|Xd@p_|8EiYV|~Z5EZoN)cyGuM%VkM#qyOuTitj2W2!_cC8< z&kBnBC*H7rN`9|MJZ#*C_?#0Ck5hjba|UWT{PU06WC`*JH>q=BF3`*Fm&}0P_X1a{ zy)(5x;9nb0{7}qQ@L6u1lKkqNHFXYHR*9+idLik=)sa18#M}0tKUPhCqu+2v1htL3 zXf6#9FY`?{R#03OHdu|czoQ}OgMZEA$_I?#0rQw3Q+d?5&Xc-P@WvI;b@{0{Y@N2p zN_wEo>u!4;=a+=3pWDf=n=AsG!@QCBrjhJo{)D%McuCp3x3EuaG4n4_tC1I2luWol z`C#Mkl5z=WtD|@OD9(?*>=F8X;_`&}F8tmk|2XCdMBdJ%}Mp2ZRvC6 zD)>L>e<{U#tG{2MK0xE-DD)mfh8XwxcpCkn(|)Pv>9yZynX-FxmlHn>k6(LwtrhFN z1A*mhZ~RUhaEN12H>kSDB3rn>=_D%mhh9wih^;btT5W2H%iD(izlvDsry&FJ{nIP% z%1t;v{P*xwUa$@Pm_zlUNTh3(BM;Q=ld9#EFT&ZQBf!Oye0MkHduMQ`m*#}x9rZ_i zc9H<0e6zeuVK##L+_k$P8N>U_B@VI$g)8am%4-x0R zS8cXY9`hUV89T4zF$E9$3C!m- ztV{UecmLY|XNvC&xdlnUId|voi{Jr|V{EdX)&)D1Y1L#O4Uy4)$_ovCi}gm%-DdQ{%o7-`|P}iId3of-+pZPXI@5TZ~dd`?^khbcV=>`TT?g;qX*^ zcRD3qSeKE#>iz>{51yThMp~y6wFCRh;aF{9-GqmE=p5dMenE{wN_JtfSWqukqAqFi z5)XVpaKA_SL-Bjs*AH_EL32Osjm0PU6zSN%`)DN8Oy`RhnXXgZNuJ#L2JC<(g%dEh zh<$`=-V?z0vF_Q2{YUn5eqqP~eTUb%1Y;$R?#)61ejm3`XjW34ckpyP9Rc+6sN^7B9&TcPL-ISwj>9F zEiW=^Z5jo`2}!)J2ty?lw|nbL!S0H1tp$d+D+VFVjY2`l^ZByf=lT2bpJNW^<#&GH z_xBfmxjh8-KYMfK?dyN}C;S)vs_SW#&8Z!b1H3bk@e9-g^vw&H3$t$3_FMsR->6kB zDk*;d@8$zjA*Me<{##bvxP3YAaLTMRzE_6$Kl)e&Rj~icX18M?|E0x3oD+N#d0iK5 zD=;mXyPgmXe=q8KS2X&HkncG$c%k+c(7TH7sH5v{%uS;o80h}~)YmT1#Zh~sh2p;T z_35zt3fbE~mAD9=O&=Zwd@Gp7W_*$0^42$~BP@q~X4pGAj(wgjxMU)DE?N7_8}wT= znlnrLAF66mA`Z*@rbktPFYh_ux`Oh+2VXAx8NqLVZ_a{WUp?wZ{2BS3#p*TSBgNt& z!(R9ki!Wr1#p60o92{hXKbaRLqmOSn?Av*t19Zt|G>O2IG`6C)t&QY#l=HoDg3mL? z$Q1gdB424EJK^;Xd-zck)ViVca#?}dtZD(=5BD_9R+8T* zCZa(@N88%pzCe6H8YC=HK|j3tsYCex`o9f7ZF8tp6wm41u7SVzRH|)w-`p<50c@6# zhMn}g{n#Yc{b@)1Udk8T*JJB%+&>MgUw)td|-|AA~Eso#5Uchz4GuZtH;1Mf58OyYnLO+)qcjE)U*g z9l1V2eA~IkH{eXLayI>@}ub0!>=xEqJioP%#$e*7V_Rgrz>}pXX|A!rtn9&Cw@_+3X z(7(Jqq#@%6ME}a&hd&|vz;UH-`?deK|0DeU%HK~?e^>ZFOflf|7OC9z4eCK`ZO1yu zKQME@2=$<+Qbm{K3w@xnOT*qW;u_RGyKu~|lZ{hRHNpk4xby5`ua0v1-i zyJmOHD}d{>=lyrdE_hg~j7&s)SR|Gr{{J#3>ZiVME>`r86nggtE|ASvqCT9(zPEk5 zl_4&$%i-v*!oFmLET#N@Z^fkrIGaXhw1uD>v3cY()M0Y+i??op@3V;~6hqXH{V{3E z&NL42uN7*@4pR!%b?}pMQ%b=}@He+9z1UxNdcQA{=v{W#W~03B8&i{zr&jii=q%#v zR;GTcv>+XHHl0s$3w?;#4%7#ukMP4|umjQWQ$1HmaOfP#-A~U6=bL^{`o7C|&D)!f>oN*VuorsxkN@;gFYf0>r%FPJ|Bs|}U6CKYr&}Xe$*-aRpH^$r5#479 zKU_q|_w9Kpgb&$|J_c-P=FS~&YrFT){;%)u2!>tngTEJf03j{8hy(tcA|V`kp5XH) z@A7EKgJ`vAq3>%+No3?7Qvb5{O7^yGl=s&=ITsgJ{xa7hiHrJz-*Y@9?i_`03)#Lk{>R1*BB?|z@!jqiT-`W_?s;d_OO z5b~p}d5T>oyK8#IWAN|6-YV7Px}o2R;s>2n*L^?u*)}!!|7An}jGG~EG(Mr8{OLnW zxrMy>mks;Y7osjO^9Q>!(Wi|aXozk75BTRZ0z)H2rw)Y( zt|L4idLD1rrhxzG*+JcH+>f~;n0q!+Rl$7Olf7bO;a*W z@?Kuy@_vK*@7OTeLOr0jC0rVfIWQ#$S0_I7>VK~7Yf+%Dup_%c!pp|^Z?mJsx$rwG zcGw&z8(yLO&UR%5;lUqGV^V_uJDR7SEIK~M=gzM~lueB;fDnzq1EFMs#|>-ZtR|f4C!BrLe-@^*^I=TY(2B%NPS5uyta! z-O4sF@q^cUXrFkoc{|aMNo0W^5B?M_*N%N=tZ4}P68b2?zh=e0E?S%ZWg+6bwV978 zdVo*Dx$t1p-)Ahtd3X-j;&G`!XUv$AoNyiQ*}l)a@Vo{|6#UA_|Ekex>HUgidnfgg z=+qW<(R-%U_WOG1c}AgLM1C5J*@b*f)CoF18YcYI+;~Pz{{KUgPVh5C07MB#li&}S z4&-LidgGTy3&a;34{q)!d^t8&aG(0W8*MIA1ombAzfg&V`*t0A;t8@_U%t|roLIiN z813H|`2ObiKY-u&8v3H49|Zcp$Jy5cUW?1m%X;Pr4}Ntd{SW^Kf6DVOvjxD{Po~%~ zzmVnuT13N!^{+;!_~x_3e@Kl<71h^@-i3Tv85Xl9_SN+%%II(z&#g-lNvC>INAhZp zC?l(!8_5fKq-OFc=DSxkA4455^7|?T#Zk2sXtRx zOFH;H?DD?HpSD5{iq43qA^`u{Q5D4x*<*IK2lhB`7e;h+{`O6ZC+k_=iSy4BTr+b`T#&O;=J@*azBBDi)Px=3+-rtK62J@miK><`QY$9H7^ znD^0f?o-TrN#ojACWjct(z9|3{K5s}~nnxLg&a=N&es0N$$dl+?q>|3E(YmW-tvam@H1A)o33q!ycn;6DWV zC%ZnoWJDnQE_c!+BYW`e10A<14lJ+Cf#3fRsg^Uwt>hQt4Egq7z)ysE0KKUN|C_qf z<7to<{8x6TUA6q>;>OLMZ{5Z-r#{zt11nqpMe;seeGGxX#H?%ss0%n$f? z2{ElbfZOE5A7+rB7yj+Xs2{_V(Umrm(}CO^*a@)zf?inU2Ol==ZK_v6A22m$!ViOf zjCnR2(S5Zh8+jw($FH6TpN2hWN55X^6C*>0A;O0)=fw%k;bYE$nPI?-CCZs}fi5kk zWrPf^nti_NhAv{7*liRA^{pRIp=A`$QwzxeX?Gw}b+G(Udg z4C;Rbsp~M!|9nS1wCJzR&FriD-vvk?$j%vtzX$fbExiujTz&lDec3w)o6 zPtSOW&Tm+ZZF&ayhD5CQ;QIBq8c(CI8+X;)I!AC2q}GEA`hig)pQwVL`9SF;^U zB=`pCusybd?1R`a2lO&M+tPQwjOhBnX#R``@4qCCfxU)2Kuqc+x@{jSTEK&C^WUN0 zOa&Xu?MO(%eUleua>65txJ^m=T#CpPMe`gi=?`v_oKPra@N-3!E90`a_VCyCilmBu zdahw;=4;Xi{_RIrE8>ovP1!Ixf&F>8tLtiF`6$hQ2&eq7N7iRPns|KUVfUzel;EBz z$}6VhXNpHI5&z$U#4vfebcaqmq}}!EA2u7{$RoH;9h`PhoWDZuoY}QQylQ1@hi# z{p?)BN;UR*aIoVx!F4Rt3%-j!Dt7{a=VIgm7*m{kH?WM1t&qPP*wr)Nz+OmW$(PPt z2mH7rGo6NR(8ZX~ZX$SI-Z9foaoT6UA46Y`LUv&;FiG>@q!wW(+1H#-4nJ!ei}^MB zy5Rb@UYC>XhD@F5DABF@EkF7-yP3&yZa=~OspvxR11nptGy_Vo{PJHaov6~YR=E@N z_|Vs}W)1k6o|$dh2PCH-7kwfj`%t`0Swr}eJzx$_M?UvtORSfk*EwH%2K<1n?3>Re zdoTCwlM8l2S&9MAP2+N>{3qcb=3H|0DZ}$z**fh6o?qB-d5rwV_flU@1^jg+{|U}b zpRmv9c&H*IiR8d*@25o3?{x)v6J-B+5-VI|OuC~841nld2pEtD^vBf1aG8que0qA3 z?-$?$_V|`w^aV*Z6lLcw1Ad&}d+V!RJC3BTlVtq$y&W;Bo|cQ!m(cgCCHlfhYVm(& zSE$t|sSapmM$OeT$Ccdu?>vo|0(rdFR3A-qfVEF5?SE~S6rcI~)%!FTGPLdAdDI2) z7Hc~49LB0_=|`eL_nddM?LNt6%>>2861dpdj#;8>>4^k8=#;xUJ5u7tac*W5`aIjTcx1MrhKq%Sy^+G4<7Fw7$CU2mG#i`diXQfJE6B= z?r{HwnI1eRD6Ziwty=@bp75D5PYCgoi>^y}ub!0zJO$VB_p$S_D#GWkt`}2O<%*!9Kl){q>~?P}ZweV{sMZ5Q%C#tqlath|Wq^$BagfH}Y zQnz}Hrwh>M9qoXKA7p*k97b`VzKnSr$%TO#rSu^jJs0wu%h2ytCfT|@wfOVwz5nLj z>0%9=eS%c7#HB3$`lD}GSE3I5`Qh1BiPfnbJ8Sw2{T9wuog}^g$+Hsz!T;^EV%P`W zyatjl9Qs~#^m}UXe}3Y6IPwDAe5xb+2FdY=ql*?1T{g=Vq4)M84yLo31@=d~o zaQGoq+?kv6ZGayey7Mwe{6>(fTAPP=!Jg;3E zMf6{?KdY7Ka`_M9fDaYynN<(o0Un`_IA^;DaEwfMbP!&xj5}EvQLg7Z-RGRRo)5FA zju3xns;ynf`!wCqWB z0{(Kj*^GH_)q<`ro9zCE)b$H_K*>u(exQQi7yVvsYV-%e_+78O{AEmy9MOg#&Mz{0 zTFC#?Ipl31yT75-2YeWQI@TkYD8}~|3qvP5;5;hQSrCciPe$&X3m}bIv2jO=@(C>`-x_U)z&7dvIp_p(??{He$Z>_o$+z<^F*cC zQam48S?>1z(CX6ISmJWT)gULrg$szX@wz69)(SX>YXR^oeo#{!&H-Wl4@ZSx~Gdd{tbz9PVzTWObq|LBoltaymv(Apa1AUIimn+>}4 z@LTN0WpwNsDmX{}`D49?f5kj+Hs9jMoI*X@);5GbUK^SJDi|-|-`dc!asuzI468az z@gH&emR~2~y3&~$#EGrEWVSDh_(X5-o(jx`=4Ud!@C#V^iF2Wt_lkId$!DN`u>nqY z7x=>h==YEWJPqjbhxUL^xhf>k{}-2Iu;3TO@2{sP8<7W6y>wIXXNm9&bNBu>fn#~d zp+)EqC&m0{?GWYnVIGkNbe<9&QhA@~KJ2?b)B_JcJ*}A#(VU-_II)P%Ykeao>JK^S zQKK#l{lI+L>6i1+|5bhQBK3W5Q8l<|&hHwZPWUVIJHzt90qO(rUV}_RN6pI5e^2-z zifm{&dMdoUT_~DJJdQkWsR8`Jg*ls{BJ%$=xF#mT;Wr2mpPVE+?z%0~7>4i6&MujD zL;r`G4)~zIceZcL3iykILPVGn0XsfV=>AX-zwt$H5A?bFHrqixvsT$GO%B47{7*5c z4$nK}35Ol6=kpIvWnBlqIq&trzT60Vxyzq~^97%AnA@#qcbc4Cbf56dv2dd6!6K95 zjpLYYZkihYS+B zi0?Yzw5b|X%mWtLUf|DMaW4A0R`NFmW9Jg!fyb?uZvq}z{CzhGU(zj6A{FFTbWKwO z_y`*s_rhhidzd$0F$q4Qt(onMhs{e3wE$aW|<-b@T*C0Qw`onQC}1!GKxfcUf3(aze;{1kH3C#y$bV>P2BcMelg}~ z*y{Cw<06sBr037@iYH7W53c)S(m(6LKJMU_PwoN#6lMJ=m+mj>3+?sriI|h=M88}; zKX&BdJ}ZBecL+ZbDsf#<@}{&(&~<1B>~K6!6d9vPgB~a}G%87d@UJ=7q5}VrNCZ3K zl|+uXE#MfX_IyqI{-CWWUC*3*wb%~&yX*6mP8GBA*;-Al2hXqhaX9k;|609sbAIrf ztfGlqR>bj~g5dE$P95#IkPmpG?&sp62*5cjBPXBm>SRMN^3n8sYgdXE_{Va%&qhfu zbo!f`=)GaBZA!u?g>7Px_=A5RwK`2t_1kH*NiU(gcocy3EjXWGp{Vrsd+#7V`#M|i0Jc4r6tl7~%yv$P{iZ3om(t)6%6mB?h$1v(bTC@V2(B$fVvEH>{GfMgHS{4B3l|3FJ&>Od z2|La3^YMRFDs2SEucu@#+D~DHd$AsHK6FR{`vG|1a6F;M`9B|y$fLinyxSK}_8+p> zKeeKNgCblWPx{1#&g8GHz>~GwO>4=1XsmVE>H6^K#4*5=edl|4jDE+~+LR=J{`SX+ z_2iFene>=wUemDHUGK+p8akvR(m#hs$6?o}A&#W-xLHzlW0O6IInLmnFmP;A7}J zS3vm&=ws3n-MR#S_uuk*CaS2vi6-@F$Pv~2OlcC~V_!f*{U$2D=f+Kp?(Y zQg#mV5&pLsnnSmd-IdMGlKhEY85^MbLv6lKNA+j0Kh>0fsEU^b5&Uh*NBd!q9=9m$ z@He3kNpxczo&UYH@d(+UBl-FH$X`OA8*pK6`@|1-XIf!LxL2(?4LI{Hk3Nw_{)Oh|XYQyt zE5Cbplf@0VI{$Lyw4N<4j!zmR55sdJrEO0VexDfJU!-Rd)jRXck_o@wdClo#HO7uEFnGgiKE(` zW6(?EqGMvn|FC}PFSG8UUpdNFwSX&gxl~P7&||VDBd7;-eZpo0ywdoRX-6pW|J?r- z8ws9{&H1E{v6D7Q1M%-uWhODf+irH|cZ2`m|F~5Ry5*fC(gfm@85x7iiSFhD+1rS} zmkn8dd>!!C=5B>tKpl|nx{cs!xMc?)DrAq;AC{7TDP&2=Ecp{h6N4@S-kf`xG8}$~ zVq;>pv>SCq`3}L<4Yiz=zn{ zMf-y3Jj#Yt)K@ld``Fh6ztP+*TMzIp@=sq)rDI<;Io^yU91TT=LE7h!5AcwCdKRf% zhU?OpsIBB*0as3;Y(id$l~>q&dnc;E?`vWcQ6J12>bLDdyo%jU2ydmn;f7n&$Wufe z!|cFq!mHbwcCjDNv(-l`Nq@a)oQNbmF?95Ao5243Zl5cT?BtrIHPOU3qQ4m(#e10e z(pU>!SKyyQU-gZgIk6r7jt$5^T9*R;uLJ#8QoKnLWtNcN;l)pkHrSu##uTxb>KJfy(+A)kd4om-08vh{!i9m z1i{I4$ZR1vHP3#JuT0}6N(u~!5*bWZ7w9vAdwk7YANBvc4M!2h8*IV}JSUBP6S#Ai z@MZU%{zMV@^Y_1_#e9M^?&RpyK0l7}u@d;F zt!(d(>@n~g&S`d?kEmYEbg(2be?n)L(EQOc{u6XKCO$8%Xo5dVRUVbRdnX9qMO`1I`~sSFR}*Y@9tr)HSd9s zAEo@v1wLZQ``r%_H{`O+F=2o!r|dud7W{ymR&T;?so1>NK1}w8v#w!*FT9W(^!Ek+ zkhHe68~TAiEbk88H`+2Q!+vu)f)w&;0~g{QaR7eY=!g$q2l#U?fALHb_C2Gw?+&f2 z^+3x)-cre}%1+w%%i@FE$ML@9tEFO+vzdK9x}VA4YseygjV?>;=sI(BqLJ|bhmOz% zJ5q77ZwtX`NS9nd-|19IFC~?4%x-_>nxBL8znHu8;7FW2voib>w|28L$nx_2$rkSl52 zz7{w5Q398ml9EdOCuA~;Kgi1^X6X-9=tGgYE3=;X|FUHnqz@dvbbrGz`jfFAt$$Na z@?SfYrz1K*oV3o0?=Mp*D`5TbTatgB?!kN3FWHg|c%ag<8uD4r1og_+9>`gt=mDo^ z`YMG(hd7vu1^js>9(@0;&6mx7{BHFs6DF!a5A#bm0#8^0>P=~%T3ij#4=ebYaUqoC zbJ4PP8%G-@_|^hdB^jZ~suh4LWSQEr36|d9SMFG~_4f^XSMp@S!C} z=<0!9H5Uj!4gG?<6bO7weC7Io{`j|~?-jk8)kpkX>i*<%556PadFh;X{3nc4zF^~6947ZcKC%{{JIgrPINsvb@R3wd|pVFADBsvz1TWaw=fPW|K%Sy1UW{kUJfa%%wbYc`Ucc9-~ZX(T^i;CrHc_?MgPhl>iMfCnV?kRdzm9- zu}F_~hKhdk2IMQxl?E!HPx4Zs9r;35{?)JL63BmkYH%L=t!Ig=-n9|D+nW2eIC76R z^2EQGZCZeyt>R86O5LyEyX1lS0Puld5ie>cdb72eO6k7l8+P!WQA1b}`UrsT|NO@I zJkh=FwD`3IV2Ljnk%pAMg{MfvaS9*rZWb(g*)=eN#wy zc?COA&^1i^eaLkz5K&&iX@@NW(YIXgY@zcPd?~~9{wLad-%0{rL`BJ5;dt&ue#;6E z-mmrLQyvgEYS`-|xpDvGv&eH#;{t-ERS&(s#-Tx8R3Sg?ZEuHt$5x%l$|e3k(itQJ zU9gDNq9l?RIf4MXR}r5TNKXjde1NzczCY#i3d%n*xoivirYrc}d$gaoo-n>ncA`#O zP>@)DRR{H7PH@)MH=ZIt^kdO6=r?$c84n5QJ2}QWgG9;Hhq`^#eg57*^N-w+-*Z`S z7%Bnp1EZI-^?*n4XTLj>z&7$iqoSb@=L>5rDLo&m*vq}%F)M%1;&M15{Z(={^KuvL zMfhP7<1sfnjmawZXO2TJa69L=ga7kK%9@?ANo8}<=1BIO3F32hG;E-L?K=Ep?apqe;_?}Li ztP}FW4pTpod#EqT$jm_8NnZZy=E_gfkcZ@QTF{T+9-HoO(?R}o!Ow-SA^J~V@c+Or z5(T|P^bWU`l_QHwK4Q*^zaqm94N*7CeD6EfPRMh>qK1}_yt!c1WMtj z;U*>?OpqOKOEENc1OF~oc-8Txn?#i&gEcaW_1%hYc_afM1;3uzp)kMefCzFSW{|Y-UjS$~Iu}8iX_`pV8@yk(H z%=&U?Fi(T(LwWe){CqmflMuJ!OPjO%{pep`G@%d(FXk>L3UA=KlezEcuud*=;*gQv z6aBbSM*hB0w+{YE)H{vFsgO5OWidAbPYco4j{H7W#+a}4Y2f2z?AZ@#e}vof3J>;6 zmzNCx59&{%RnA1vdt+>LG}(W;)ECGPUB3QN&k@+vLX+1wDF+zSkJ$J?4iVapm^XKCtNjK}@OLP@gL4}a)07k~FG>4Ue&N{4Vi?`;xGNq@tfRnVoI?{pkM zJ`3`Z6Qrx@Ii`HyJvZKub_tFNtTW(zKAz?ZW`wNMlm6ihtb_i5IV8vUII;ut>ubz( z-^9$!B-w+Pubu{<=;0eOd|{Nge${y~K=dRC-=U8I{8q!S_R{y+OnS&s8TVpWvUZ#s z)y2Ci4iWt260?lp{=%=#pCnc03SX=@$B>6ME8M%8pvPv`$QAs{Tumq)zl5b)12=r zdjVIz-f_H^Lqg)BdJuG9^@ks12i==-<<^?jl2PRuA5nuJof1 zn4Uc!@6029p)InBQ14hAH{sLn`fnE{<3zv#mQ(Bsf=$P){F5_t@_Z(QwxePR?V zk#}ol`@hP!PT+nCA1;dk9@wHUUnYK1vS*!z=*)9$2K)(lKI6R!u3^aUOh)~Ytk~r; zn-?DrE3e;mDx2VM30j{@$M+9cuV0W0HCt;)4-hR{^5g%jKe4h=QDf+44n^-Bnlj3i1ZvTLO1ox%xc8 zU6c~KocO|qpnnq)Tndb$2i@48%4EZ+8*mSZh0*)7YFx1iu)lUTY(^hr z;DbNb-;L`M{k>1qK2?sEe&@$;d5{=!YAb(m|335!N#hb9{$5IW<7ocj$KmBxmcdLd z)K5k}b|3@SbA0r%Vf>x?$9It)DN#A^Q@{FM4XH~LILtxVxm%l#=jR$m+UfaFb40{f z#J+iSnXxjIwS;1w=v(AaK>uX0KOdsG^K493Y(caDOF`=nR7n}Nz`a?Z`#SrRnn$uuUduC^6E5Y}jDv#F# zcx}qs3jSTmE0xN+H2496mV`W{2Rx4MFgxf4b05qLewX?kA0MH zxdpk-=A-3Sbvg1Fr!yw~IIraS65{WXGWA>%=r>VWJL3l)HDgXN*2`SM!RCl^=y5~! zdkLO$NyU)A3iHP^Ft)kWu(vD5|oG!q8@3_xSyWuYHF|({VQy?6X95INp``ubm$#& ziKK<(fXJ8*y0@~2L?X=LvZ6q!{yg!u{Jh;eld7*85PsHu!CfK$uPhAy{a-F!noE8@ zK~P4?%dc`L&&*t-xui?CzK~4wryJ_c(qE=FFU%i@7GXm8Hz*DM9r1-lQqUj2<&;by zI43J3Q;08!>~7cvh~K9qhtN?h35r6V7@yJiIO6wdXgJ(4=!P6f{P*b-MDMw;ZYd=A z?|J6g^CbTU_iN@cPnCV-t~3z+ijImF{Qja)LFUHuN_>uo=$OJStu18t3}SJ6Ob_U0 zMwzIh^AbgV2jPu4zO}U*cv<@OJm?bkLP_R81^9HHMJf)5e)UmrAdjv$ikAg}-uOKo zC1oTJo{C=GPW$Xwop{*~JW+-k4I~E+{f`}a;1w))#)17!L%*{`xxi}tpXGB@g4bxjXB-Upnf2Xb=Yhvk$VE0sk5Me`5N^gy2# zbsX!6K>i7|iBh8TpWpP_{ovz@Q@_b4JwG~HX(E2!<<=VM`q~Mb5%QnkRvJLur;w?f z9wo^+k#TT2+3{bv?dhR8gsO}*D zi6t>a_eIJ1?~d{4IBRic)BNG1+M_RBqxvJ%pQoXIQ6`TI2b}p=B1VSv_-;X|c9UMO zY!H;BXLn|0r0cOirZ0bBrlVA{6kNf||MAPUpIPxcNE##}df8uL?Q_E~Ex>_9=SBJd z@tj(UOhcg3+npWu?QGhr6Z!dIyS&92%x4!;3=?9UIM4xcuzE5wIh`Mof znJvu}2Qf`YlONh-iOysHM;kCU~3hNC@V+@L8Cn z=Er@m3I*iF;^GveQ8W&J>Rqu|l#X@%d8`F+-oOb4w-orwT6^cU3vu9@e8GE7CP^Oo#Ek+NHSu;hmaVQul<6f_^(Wc=@NXSU~$}opZA5`4fQl{ zFkA$^(Hcd@tXoeA1}LJ}&vSA{2HL zD?Kn4PUr7#Z)tYp`O0s<74ZGMVR{C642a{0KJqBR&l|6sCV6l|6qZQmMT;VS0D9zC zwU`>|IJ9l{AkOoe7e$LG@27~H8YFt%Sy}Nl$#=}(gnnGe&U>PpNDogL-_=C>lqXsf zPxN?bB$6KoJYv1eK+k~l%7>Ly@6@zQI7IoUDsSl|U4PH_Y8LnoXEJ?=_aV>pXTj*B zvXPxo%GV?TE-I-zm-N2SD=&`{+)HxA!5%!<*j?QTd4l*yX)eB(o9_s_j;pzNQ9Ag4 z8q3*s9&-*cr^*lyea^}b^7T)UUYvKi3HBZOn@G-Irsp@OXjFFtr* zkH0SxMMl%n9U8fa{O;4Y4cUnEq7RM}`5YU-ha4k-2Om{3vx?;Oh$9O0WaS_44c`K~ z;5B{cyaZRdM5M)a$m3VH;K{8l#6eTQORSla`BW%rFO@YOpXNzjkf%G+nYTbWe8m`l7x{lpe? zMtcS12=dmWSI*FW2dPfv626o;RtM-klPw9)bXO%5&v&${-H1nJx7WQn4m?n)+_SXK zwzk+Xk_+Dt{m4OcqH?oKX3_yyk7u%n`kdqs?o`oxW)6B1DPO^~r6vP^<#m?bP4L?> z;rN4j`fl-!PzxO+_dI!m=;mNv*cn>ShHeBLm%Q-kJ095Kb615NJ@!Ym zMDYRn33sWLx=Q?huYMckxQeOmt*^R4kIqDI1Ht=|-|Whu?-NYz5)b6>6M^Tt&fwV5 z5tt>pa8^0mM&Dr{s_jrQHy@Y1GujIO&F;@_a)M{Z2N4#+gHYwM8)4;oevi%jbvJ(B zZIq7Se)h$hivhas6Or)=viE=3w;K8u^1^tb6#5hDmCE+w{amng{;VI@72R!E<;JmQ zv8a>QdGoQ{Z`{D!hUelRCisu%Z0qtv?-EOIfj(7SxZB$ctB_3>rD(_>^;)JyMBgL% ziOE9O4QZy^+kTS-vzB*vV`dW%Remnn&`i&>yDJ> z&?ywFMc3FDoVe^zD8YY3SEBJ$sd)40mPvv?`icM!iy6j(+6fMEZp8tDzfoj6h4Z}B zWN^4~UMxRWQNf(L6G%)XdUuXXE#O;x?nm2q(DzHF9^|=U{h24$5Ip)l@_+Dk(V<1% z(06+~TzctW43yF{AlAQ1Bm{-&9&9{E$@c^%CG9!LTa9?IjHe+3! zNh*Nvpg*n5WpM+49(%M7>srj2Y>t?2;Kk$5m!f|e`nnG&lz7QD3H($mJ!Zt7ok#gyk}SNBRK(hA%Meyaif7qY!)dQAk6_W1axiU23x zF;PTt+&1kHNDo(PGIgZ4mAYkjK+pW1)Z~41pGb(kPx~@3rF0U#JKugtO?-Zad9sM^ zw;vK4{jdwgi4R%H{+s4iuJq%Gv#Y%YxS#W+P6NJHwsd1;C_OiJvM-C|Mt=4O-w}NU zPx#j);QckxpTMstD?t0uVDgVXJ?FAluSMOG5 z3gL%M+X%R%al@vQpIdnuUxIwn^lIcoZ14Sy_UEK_2=>`xj+vFAh}-iY!J-;ptgrXgMUQ#JK3(r?k2Qbhbh>1%cqejBCPsQ&?f*gv>{7tU{Twj==_ zeou6O>eh~Bl_|+?2>so;a5vUt>^~Dqe%ZOg0O$|>CeDiOB(Ea9v*#D!vU&h^H1z|p zjL~xr&c~_|cP{1-_bp_CPJ#hycn%AZ#lbEoy6ch=e~b7R(aDLb3U>W`=~NGoNLZM6 zIphLAX1Y)IA8&L{f&aMqMd=xtguh)zbspV6x_Z74@8gt}E$}~}?}5MIQbaZ4)BY^* z4J*rfYj%Yna4x;59Et!xF#qdJ@Fw^nGPY5@J^ET$UewZaytk9JlutV1n2V?NWSHuW z6d(5aN?_+NE?B^UBz@0%|aS9|2hovCVWW| ziApMXD$U6yNJ_)Fo3sNPX26)sdA?Fg%{oVYJbtWs;oF#tXY6t-S%z zkkk2{&*zZ+W++_^_`*{(b6eL9`$MKwAU~*(joz=0d;@qh*L1au?rR^*Lj9>5b*%Rh z-HIr$7VMDwz!M+*(|EpXO@GHY_It(gcHec}f7a=ux+CPB_`o-j|I=x*s0ywz9TL2V z|1Sv&77@KiL~MDK>_1bG3BN~KSLd~#(Rq!gQR4*s^GgnH)5G5rCowBM(68>fEazhy{=$eE`wqE$YZiTL;NLqq>4ltS z%bmhIu)P(o(afe=do9xi7O@i6V&|yhjXT-YsMw96v@qwDN!9j$VC5p%eep8rO z7N35+n;*RMQce<{Um{#Ah26tsk-{L&mzcB1t|;FF3T-+Na{9Z z;GG8-{kT5#(x&!s@Y9YRDah+h;}mWIc!vJ%%1G3M!0+3y$&NVg=8t4$!9QVTdH0>r zzpZSaYVLK=E0-9WP)BjNo%xOMvmsCK?SP-~@bN*d&<%V!F-d)f5;&vIds+=Tojg4S zJrDNf^U^3c`1#gGtw8o_V5$k;A}hb$r#X-gxpcCrVITB;HW!~*L&xdy8yY;H&lN~9|M^^lOicEYY>kp#{3Vy zSc5*;ReJOR&HRr1D-TJHpbz+OJ+VB&yU8OG6CATFcxjS)8VLR^ zr<;NaPkayl4gRb`wj2|X{D-{dMG2mbr#PxjF7mbdfsfZt3fm_~qSyh~wGdH|o^mbtfxPR~EH(M5Fj zRG z1Jq~ewZ`mhKb{jCEkpeg`j9l&A>ZrX-m6({h|3^O7aa#Y=w@4r?yNT;Cp2&aXA#D!!% zDkS3Q!VK$4pB@f;ltdlSqAuXxw$3t`2J$KeB~h(2E(Cgf+s8kRDXBPi(Gv=6Je*H?Bl=3MI4y}&z7PV2CpsNH<+p~W^ z!9QBPGMfDVxfz>s>DZgGWhudXanv$ogIr_54~0EM`rwic>(&zghx-43=>BM#5%LW4 zS!SM^@qn(!60-(8fT!uWQ31Y#`1PEI_`mSdR$V3Np+1}PEL6NKTJTlE{%f-c=gE$G zuE`|$0cUkfs}1*~FP70n@?NK@t0(^+x@UcX>)H6IFiiVZKP-vTL(VJfOl8DBPC2yM z#84KHLz50XLLQD- zIGzrAY%>gW(C^XLc3_uf#ij~DY{j~oT{k0%9w$#n%@TdT5r3jL3Hb~i$G?Mpj`?Dl zC4e64dVag}2*KyIrln29uX{gkqQ2&Q?Lb=@Jy$A~%IP?y9V()E6&Ve37uo&miaWK0 z?;p9NFmIOP{jna{mFRz_8zsIVoh`gf?-jl)l=#6Hqic+j*cX`CH z=)?2G( zo0|i;S@|2W;w`{$47Q_wPa8P7xJ=ZI>n>#`xro2+=*!wp&vl*7-C-raiZry&4SZG% zO_WvuFYD{eU>~GmKGD%tq<6NcY}@Gh6@iSmyMaHmb#CNAZD11Rs#Sjc&ez>>&@o6N zm8qe3ONBP*)h_hua{ig-^fV@VnZz2i%>#6Cz69K%? z7!0L!f0vWyKv~(J0|N&m$}5<=#Rpq zix={R2Att$HRxy5UUnLE&rJ!4Q-I&d!^p3vXVdc?$KSyH-~4{%Dw1Em`5Rlp@q1TE zTRr{Vv!=hFo^QEu&_QwO-oekHk0NfOJT0R6HT}~$u*){E)Z{Mo6@dRotyUA=|7zdz zU)|#q%j4o20 zp?yc6PZ99}jbMtR^SM_ityYTfINk9Ck7#dVB*Aa0)-8pga?ZBx;!^uiTu}FAJF$?j2f|S#PLM^kP?s=C@`I84*MYQ-F!nk_51U)Xa1DrBYxoj^qLs(#5`U{SrXPgI;xZcFS%S@|1;s$ zF82FBD?$mb11F}h6CMcKc^B!IC3E*5(07>G#XP`+x3wA8CE>Tx<~&5l)_CLrm!luW zh0`&3J{!;L)PZks?Lx4G{{AN|&6k1Q$7u#gf3bZq_W|*VVW)p=NqINF@>t77H}VW> zc3R@V@7bu+%t#&xGs0su_t?}V6Nq0N>m8^g{XcJbSWErqmq*7gC-`q!pPL~^zE^Ux z2>Kt-)h0^I7V-dM;*`V(wAZuK^EWqhRQF5#{(#0FiD)Swm7?2CdJdcAGC=2i!fR=E*;y4E2$$e%snk>!$Jn?9i9;D_T!|510rOcST2#Gi&Aa;dFY|D$zU9qE5D zTQOG?`>^i2nE>(s_5?5Vt~7RLmFIvTaP=$NkSA)z&YsFGggt>d7vc(L$umvoIMUI- zvclQqBzRAq%Yj@jWR}o)+ge|I^Wc86E@aFNOc=!xOwiH;@E^TW&2f%j^_YbZwpev-zC zyER`R zq<-h4jIu|7;BkrRvj}(PQ5+86l z1oR^u<2*jQ{Tkv!zin9B$YcJ@H1b8i#J&d(_5&_@{>zMCi+ZXy@*jl{4uIbHlIEEq z9690s{Z8-$UQ`zGtrhaUeK>viH~b!Uetg`pAP>Fj0KrjS_6+*`fREnYx0LolsTT6x zsAp-4wuAok?0#U%PxSqu`QD(1Rq#y?a}(qSTQqbdo&N4V_WIRs=t&bsleruG*(*K! zeFgf9WoFhI;qBvvrmfi5G;X=~SRKJ-`nC=FPa#|VCie9A($LMb{)@VGFY?WFxzh@u|Dc~0aww}SYqM#Ehs z{XAAVeLD%)*>3cru4e=C&(1=>gU7+566iaFnKqBswb$Sa5dUDVFwy(q*L(Nn_(1>A zQ|u*4RR1BCA-|}bA05B4KdIW!2X(Gpn?!xggC$a0&p^Ke>l)|nk!^Lf{^**mO|*{U zvyu?<2Rbds9pDqZ=HNW~S61-C%!F1ATL0KJaEjPpZJXy*#N2AG@6p@;Oq6<2H^*{^7S7bu@Rib>G|OMh5WX! zXMalk>5g0eJ<;pn)Ri79^sl0KewN?{9xRVHQJoLJUzGuVjyvCy{*2@S-0}&43tzTk zO`9KdYP9d#NpQdC*mVN<#O@xo8A)$co}D>Me10Y`Fh_7S`aJu`@poyUMZk5O_~ch* zR^&HIMMmiL@E={;c`gZZX2(=-4Z&Yf|Cr<{KX{=%f#9c9sH7C1tNyOFmFUX?2R}qT>vWNp=G$;eSunjn`u21)&hy4jia*M^ zTVmOCI@aByb~-6Pc++|f_`e%d$>ht^f%l0qt5Kf@eAAXdf9l~~N24OsLFbu*2>L$q zPcBZm!C$I6oF2U2!xvfPBI5rC<|8BNeXk#U=S6w>;vKR0NA!>84iO9Re__jdg7=WN za|n6>CwcbaMHCM_yZH>_!KD9dG-s+Rc;AV$!gcWbVZr^ap7m5!|F)^o4}Q=PSRO@i zKN9X$kQ^|X<3O*AK_{|k;`>UwAfxpMJa;(Qhs8H%;SKPlqxCQ~QyAM#h2 z>*hD|@s*992-=^PxrM$Wx7wGtk{*|0+YI{<^(4w7=m}{oK_nk@L+>_T$(NEoSl2E_ z9wzeL_IOqR-pH3~Z3Deq8Nv@+SCE(BhY>^i=}-p=wGH9 zoO}cLu}q)SOZrQ>a{M;!Z*p>eo~(fUKic$WiGmVvr>!{CKh*b&U*qk0}a*X5g^w&M8;adHvyh5a{r;g?I}oHl_au-n8h2K7#Lt3)kMec4t)l}Sv26RY>+)g^z9S<~w$5zE*|9Nj+5gP|y^tP@skiW-VaYsS& zBkCVC5B~(eep3F|@UuZb z5~h*Ifjr<;mxNXiE7vAsHP~G}#3up^^!{Xr8FXIo`&T)sL@ik#cK(Uv$fO1^!pmMTSoBqiJU6{T}4tD_1{;!_4-6S=g;pZox$~7 zfo8}M1Nr1FI>v*~Fqxta{3C&D^xhMoAF^=CCGd@I&Z3t>e+;S6rlgudM=Vd>3B9X~ zKYyvv0KUt`sXO#Rrcte3XrI&nf3RS|52*h0qq^TbLGXX%g~eEdOsRF1OO%igTD3Xl z|ARl`YdtB6sOvst4tzAwb7%w0+TN)}oh4H!njZ@R9X8+oZYTNuZLQHV7vSU`Io(ch z*Vjg4pL2NMpqk!`UsAa?SB7cgzulZQN5nWk?mt)J|uLSI4ng$MSe6F&64 zo!Z%r`~R5tKu+?+!fX~N;!$$J48I5b=Dz&GGF&%5K(vVP<%9N;NUF~qn)Sj@vXB#t z?eHTYj-wk<6WvWJ#da0;GpX9CBDxM(*8}K=nCfi?InZ7_(jjU-@ZqBf!Sh% zzX|(VNBI~YKHg9bJ+6zTyDhf}&K5aV!>i9x~ z`BRub3j03@6`!_xtw8ku!ZG7q{=Wjvo}!@-E_rd&)@aP3pY}fNzx<#1^C1;EEPc;E z#-Mle&Y(7h3u}MjbPCyf79?7^K#!;H>I4_~_0o@oe9=R#DZo$#Q!)%XeRe{sOd2|8vv%bZ`HMMs*2dBI&Kpm8SblTrR%fc`3}MF zspICGJ)o~obnZ~1`z@$P3KVz4QwbU=dqNoD?n0T=u0RFGCHj(rp@%JfjfrH@M{K_rpcZj2nG>-s3*aExi zS5)unbE&S=-({*kzy*AEB7Y_i{I)$TEFJXDg`;5;^gk}NbwC?pD&_Vo!T~oAlN*QV zeb^UfX>20kHfEfrx?Uz;RzD6aQj?NLb^zr|=|x1h<0q72)ahvljz)-xKdfB0D4pQ2 zBzYhBwi9!uh0V~zc(;?ACA)6tMSje~t7?tr#Fq%~)M}a^>_D1Je;>*30|v`s!W)q+ zHi+~`U7!*4j6ObQE$G?Fp0eH^{W;`IxpETw)XhgcYz(05!w+^;!(YXFCxhf6xG(&t zkJ>_r-^A2C3wr0L&+6bMoZvN<`b_XW-qtt(Ik19@i;F{F56mCKKk)gzigx9%3I2w_ zjm5OiUzF(gn&}Sj^Ucn}|I6h~sQ~ z37x-jecJ%>aZ#XnaTl)tx}#G<@MKvRbbvQ6dftNgLjt$eb#lB5_XoJrVE-mCQ{3B6 z!_MSX$ID@V!@vK*DEL4rJ60-=kej-Ye{?WH1-Uuu_EyK3uJ8(@YMk_a^+*s;^1!K# z2Aw)s+w^dOhacmg_4oHDeb6i%?j^aP7ph^ud3gVQLFb7tM@9+)y`SGt#2q2H{|k3P z55AkTuT>om0i5p^41;f!vR|JoITHeWZ;Ky#2j|%{D*rL~Z&_8_Mf@%%Xt@pLd`litrPp|Iglr-x>De zU17YL_E~ImIDd})ik)>Grr${`v<>4t`%YHu1|MWu>Wr}<6XJg>gHZPwZF+IhZ{H=j zhbq>;poBblJ2_K`Mm^BO!Lwen4>u;RTX&iJ7W3y)Qc#!6FZ#*Gb>REVY>qfg`rz1& zReK2jk2gfVjIKVsQ6xS_dbuccp9tT}N68(VUC=us%-@~>zOa-tx9^i*aJ0F3t}o6B z!MKO`z@CXxc{e?Gx^IH)h6VGNPIQBRsC0dxw;a~03Xi7vm@eh!R?_>j9+(B9|Jz?v z|9Hd=46DV!ul%L5rFxRnLg?G@*RRMw9s3OQa=EEeld+%pwhazSlE;b?3)OpahO|NC zd3Q0H#8w9X1M4uG<8hvsg`Ps*eku20*sLY{uclH_k%)a9(b(Hbe?M2g>O1TwH>*(( zJ27|aoU9mnBl7Q}vt!A=+mk+~0UzPp*G4%AA9V$5pnt+n>7O9^z?-wrpQrbaxF*Iv zb@8sCr`8a?SDp5%30@J0AA^2@IF3TmME$3Bq--+NcU9ILS)Kqsuh9r4kfZ!bXC(Y4 zN+yn&m?nH18Rh-x{wCS?&+WPqF^|qepVV%wE#-G_&wV)>`kxi@GTOAl^xcGbA@zO9 z%-j+|cyPeBXe0VUaqeN;TpR%WBH%L3AICpDmoJe~=?mr?(? z|Ct=`v$;}(eEl4D*3MqE9_kL|~m&&|qiJdlUTFW&F9C!~nA6(~`2U(EjInOPeUZ+fyh=37-brrE~eIqg&I4fiJ9m zXvjfzgX;&*+#ozql`I7PBR(R?!(lhFEL~hiwCN(|&j-xaeLwk9LkYoukq9fapJNc<)6)~d zWY0B!rTLolKchLdiv0L?zI7D%&bNxC63S~Cs0@Q0ox?AUsD-_>f^EGy+z$M~ci*0~ z_ne8l3RTE^*g3fp@)2@=#*1Bghl{XTTDpKA-ogkQ(S2T|oF_VRHfl9Qe?bjOKU~KI zo2@_vKdQG~3B3V%{j)coc@6vV4VUOn#J(FJG@M_NKh7I6OW<#IA%D~?C3uT$ErU+v zM@_$9E$ZSg?vP1D3c#BeOD;e@!%i`tL)^;AH-G@?_sr?d=5FA}u=MmG>0Mv%?sWXT z7W2r%99Dwwz7xhk&?grl5=B!y#&c;B-;219L?n9`-#gH|XBd2x**+bZB)1h|9Z_lIr%vU-2^CEi; z{vLMw!Dtug>(1%rDbUMNPf~3pdU(_-wuXSep5gtTqWp#Vl~(L~0{X1qtD=2;XlF|a z4|@9Zt`fe~@Pe80Z=P`)S^)>9@1J!Oyhl>Mk(0ikX_KzT%5~P9Sx$IZ8pKNp-ox&^ zjxM}Ula&8oh`ukZTbBj7f;mE^xPFX(_^cdy zW&+o~#)o;54i*)vZYFu0=5BzWznfo`|L9gZ_^RGEyq@rVY4`zuf=|0m_ZY!FFs%7B zeFwTrVl88XmR9%$;iooFr-Yb1{Nk_u{YehI)Us4c_~6sE^d(~7#`pB0ZXfgR>^t9} zV@2CG_#<6>hejnSgWiGg%o6N7i;#*NNUvAhwrr=o$uWgEk@m&7^rZS-=mUZ*pb2=y z2N|Ri;s?*p&enIsUXI6L>EOK=HHdnJ5#7I#xOdS8;`>IuKH9XQVpH<=?WFg6r@c0U z|8l7W{Qvv;^WDIw=-}9u_#WPzcKA`~ftc4<9oU6+{9;C18TR*_;`_duLk3+M$@#SQ zqI0CrBcIhkc>Td=S1!`NEY-c1P2X(`S9X#-c<apLmO z5bQ(u=r$jHU#HFhe1LvgIHhypcubEcu6>x6-yzA1}*9Kl-{N z-aRu2`I*4=_Z56V`G0nwq=CNQd^0&5*#Ud)>w1bNa%VRoN!TzKm&BK%PMFl-ptmpF)emA0_%WKg_sCa>3wEg#M1XWM6eF z%V00PEYU~O`DI3+81O6C*{^|rCqKNcSVa34DKnU9zlZe~E|4C|8&xAT2mO3!N8Dvr zmjBG!HET%D`-_$6`xtGi7v8SfP?1o9xF7oeMVsb{=ZO*s{tsJhms$9Fxc`x71^>!} z=ALfsH`3FJY2O?Mi=PX}-n&LE>3zS64@q?KE0|rSaFRV}ln(dHP0$Os{^+?F@O@X) zz%<=g+*Mf#c%V;B^J#)tTdP*y|C2SdpbY2dz4-5q^!F3DBOd9-zW>zu zFp>5@P^!5P`OnR!rL=Y-Zr0Fh)_0-bn=MTU9mn}ILUZ*v_Wv=J*G=>4b#9x^iTgf_ zfBC2f_+Z}OmQ4O3w6BLBIDxxo7GXXZ;)0^k+C<=izH{VsV#TO-iP8l-z{&c(DJf%Q z@ArH=$|o+EgF&WiiV-y$dw$O1eRd=C17=fDplgki%bdD;#a?Br~2cKUiJ z%#SIC!FBhE4U%o z$~L-xz!?bmm9lM*PVF8?Uz8P9%}1SlqDia}(0>hn(_>4KXMp~&1=B;|FPt|(2L98< z`(1_K74U43DChXb@|v?sf}ixch+;Y)QMK4b*PHbj9mKb?&M@gloKNcgWG&GzXVa4% z!FjLOf!{k>?#su;L=Q7eKzz~38b&=!A)lCwcNfTUe}9I%jObS>-P?TYd=3{<5mql~sLr>iXRLez_@P_wg+I`9XnB2|jqs1hJQ?r@ZlqHS|L?*q zl}b6+|8YskrcERVMC&Za2oL7zr6SS;y{&?i{67;D6E{zC^?-j~UN_>oflwO} zXXTltp#-08?K0Iko+~j$7>WK{b!I)T;~tX-gPvD#1t|l_H-Vg(`meWPr*nP6td8)& zAXb2nj%wZ2wd!EZGl}xiX3L)kCEPhIR%oacd<&nx(ULstwOvA za)$cbB0tB;R?axi5qxcRH#W!MyIiMLDw41JWJciG&np7e7U=)58_j(?2(R|&@{U5@ zb5V}g7SgYzipD_FGlLKJ3IuPfig!_6l;p`&V-AnJm>QeVjrV;iCqBNh0{%ZZfTQ8( zPg*iRl;D5hi5E%;{(6yUJ{>i<}St|Y2hujCSt|6f(} zD$C*DPEC0mRgC=JWybIQK7s1EZ1lkjv=rNO0C%ZhdoatD)=JwF4APzOL6|fmm%;EAn#y7pt&1;p9_SyTfkrPBcl}9 z*A-lgvl;pV@=x>&hqol9bn>ST@4mp@?()Ad{nG%2dVlw?b^r8;G z1G$o_$sj%_5=T|hb0TW`1=4>rGgA_&{>b#pUi3#qJ((ftMdq|QM9AM}5K{}=F|7ZUO! z!8`25y$1;X#(9sF&~e?mmmLH{R_p`jrMcHrhSG&coyps$^G z@j3kOzD|1uaX$X5iMB$5d(x)8KLlL(|I%6mTsTIZvID=5evGnF%G;|y(qN(c))nrU zD#QMVs>Rg=e75baUdh?XW^C;f7r_=T&4M;EUMjac(Xr3xwh zP<&myW_t+e(K9X>2`<(lOH?-xiLhz$e%#NAM`h9UoalpR%><`E8Vs-pT`Ya~Z8_nc z_;8r46mYAos#MJBw}KgVij&2wY{dkxfQSei@e$jwHy!!QrcA9lj^MRv(-wiA7b?nt zUI4r9Ud}Fj2Mez;K#!DHd{lo#nB%hwXD^+XiJlKFgZ`|w30mMA-;gORrR&s!QA_&b z$@d-sy-e^Km8p0x_QjT3a}{_xH5x^FFzWu+qyHD`zoMcf(eUp?ek4V_C))Ji$Lfv| z+yjp74I@1GjbPZTG+kjgPE_@M`ycq1L4HUiyp;TU2dnE|hF-zDdc1BI^a6FuMJ@;H zh>%&60KV|%{-hTP?ith0xw`2lKI)GfAVI}qwSe>dIjIf%x`DZ3+g9WId2eG+D*3yT zlC+=Wc`T!PZ4vG3h^Fm6`S%wZkJbZT?3>9xC-nhPyPrKmeUz=%`Xgny&bV&h%jo{k zE0R+M=>5#9Hk(O*{MYr6b)Y9^v=!HQNPj5UafbGLTkbjw;X^>kZ@(PJ{o>Iy$cY?= zF=7hp+v^=}1wA?W`|W>x2L2(|zP{K(@Y~gsmWSssmB&f_;aEYw3i4t_zSv!W^RMQg zO&W{Bb)4AW4{$&|DEem*-%cCUksZd~NNESYpnqOvOAG1oNvVkzI*!nXE(d)1_sSP` z5Z;O6;`|7X5uwG}3H;vFT2(aNf9X!|NCNOIF*Ui8@+A)*kp>c8EH9BphE%wC?S*ev z5WQF1gyk-LPw4cc!DK%lZFdc!|C=GML+{Qr$+FP)w~69E-K7sM5!^Fg6c>>{!2HN> zFn<($Kor?P_CfE>R`0j#?l8EE!^$D|B3-WNZovJqrsv+le(_)EPC8t`t8eW#MFQSm zu68v!amp zfjy%aQ~yV<{m~hs$M&1oeFVpV3IBQ7fOn-ewXzKK)OA+oAUs&JwJM76QF4#=HA-Q}dnV-X7%l+4C2-Fj|H;n? zPlgM}W=laQN2&x1!NVw0XOMjFDRg#p;aJdSYKZ=?znHv^>|^6_qmAB6^ecb+T)(f8 zF(1KO|2*QXzz3y$*Vko$_r6L2&vCMuLY*7@pSK3^pHse%YH(_X^3c3r%fuv~Qu`93vi0J<}b;lZj52gTXl9krw`+mQP z@;^fLRXLa0OY4y@rY8Mf_Oj@F8O0l<#xU$3^0}EKf#oti3Mqgee4D^P-Q}3yCs;g_9xh9|j~zkoTU$yhFD4sa|RK?#WW3i$Fn` zo5PCn?6c4l*n4MSpkaUVrgdKOGdj{W!vwb_P2WrsUsH%0qRSya?$}2xr9AqGrc_nB zaJ^yJ8=sBq&Of)X$iWBYOPvDbKl(AQjxYm{QHSwUO9Cu{5?sF3Mx?AC)eih zBzhIqr9=>&4##(1r1)PG0s!Ra3tMTm6aDMg{|0eC=>LlY9;J0-MHsN4H2>LEwg_|w zn}a{>JSGff`Eszj4SsLXYEE5OM16tgJ$;~qjys?Hb_>M^X3q5{;P?2pzVRmV5AErE z8TtRHgO2(bew_sN{w|{gbsoI;55MuF@3C5qAHyDIGFL3{-Noiuk-wFL)q#Cr7+_)C? zs}{KldGorIStp(w>}oqo^y6;QVP1PT|4QEW7jYf*)TQDBh&$}IhBs3m=%gw42*vwO z7K;YK2iVkyoik*2RK_}&l3YGopoO0k^y)KW_&N~eT7S#SGzF35eV)9e5%`2=qmv^@y{H@2l2aBi41ULP3dmrZ)da9 zJ}vMyn>T3OVxsr-q@)6pmsL$4OF~RJe0}(7dVA1~JLTk^GT?_z z(Ez^zGG*4sXO$x^<|r*KjW&()twNNI=>0d+jmQJJ!wf>hoL#UfY4Iki5Btuy_VOK8 z@;b;rE(iOVY1IE_1NLuk$qRdd5B%19lSvx@*Sxqzz2FXr-wnGH*kxV3-e^PD3xhIB zz*{CDpFBX31A2S+vS>c}kxL(Z4g5)9`Vc+*V0d5YIga!~tJP9O^l|FMi7Ma=GxxQ$ z(i&QFVlm*$wT;#`l3&#o6@4NG`}6g^8TdI9xRc_g%Ya9$(9mKgx$v&&@m1OAr!1^0 zuytWyeBRstApY?t3m+nVLa}G3gZ7DuOSa{}Z&#IE1HVKL8&z|y*k{HX+^AQ=lfF`A zlAe)NZ#_czW-uJT4S2Ek!2fH$alWG?eg)>Ru=Jz{59#?-p11D~AX_Q?9QP1Fu+- zq+^(#A1YEj9s~TEE~NSB&{tLlN$I<750j^GJ$t6)yg3H*0rX~?AAvm3ZzYh=Wh~PY z@py=71$*UUN8G}!XcPJKh|XVsvl@QC%WOzHq@lXsfH#Xo8-NdQ203;H!#?=ki~C>r zzy9w8FNx%UHV1sS&kAJbW%+@8(Lou`j0;XTPEE zUffu7&V~K@aJJ3eh5P+ka|8C1laHQAr+sdg*=LB3b+w`3d+^(&r0B?gSB>~m%b=er zno@@dFGRhSzoz?#?z*NzaNmP7O5Ou}JZw?92%l`ibQYcqj=y3boo}f*GY8k?A1_>p zV@`1A&dK>RYl9G%S8{n@h!pgDN+tZ;cwS3wY{?1^^#rh!$X?SpUpYnc&AGOjevdO3 z^c8?FauKZ#@Hxyk;RWz5_~{IBBH|l*zn|35d#F3mHw6;{lT!}@FX4}}i={*t!s2Ct zz<;haHd;h-h||H&$3FQAo5KnIh6|l>v>z~|badWhlws~l4%=*QL7W8ke@4Me(KLS^ z|26>rHfg+w^u8w+H~gOXK=P)fB?SMZ4;0g6A6|XIZxQu>cmGHJpYIU;BnNtcBw(?K z$h0e@HwM|$_6G2OI!M8NkW9(=de zgTJp(xSA(${}+d6FA@HK8*0#$!A?j_tVaKbGQN2E(KHv%|NVB|!Cb)q)2f;z^oL;w zD!=dR;2WOqDFeKMr8gfZIVx63#NY?)?Ys&2z0l8TG-dwmr zBuc<_kyZujO3}Z^ehz#a{;&b>5W!0oa9j#F^3z6P89m22T{TN^j??RJIgubUipyCA_v}m{y|bY>MPm(2iZKq|BLuebvNWrsRR9g zq4$Nn5RyQAATT0+ZvM-s6#=cs_r4YK-`ni0VxqK8I&FD|-Mx*4gBnlw-{>_9FfPyOA>hJ4yd_#?t%h z_5V(Gf}U?WWiq12=QDfet~Utb65?m!!L}O6Z|-Kh0`!f(U!57S!_bFFwmgdH*iTCN z#HjC_o&cSeVXpBm=)K5?OsYRAH|4O&b21tIT_SA(pSjA%>!k*=Ym$>1ikz?qGBZ;@ zB0EzNnVQ^iSQZgq`_<(qI(Zrz~e#mZZ z0)6r`qKQqeLzr`P&o9V%9nOw-=~^X zu{1BiH`8_#_|1(S70e-c?##co?L?n%CRi&UweNV9B_(Z9!~e^UH%`vLFT`nY9rV)m zr6V09bN7u12ExY+Z#}^I1h)FN!;kR!;gqilSc&4r@$|h#fZI=2?uK{1jIB|W07~d@F?`WO-xDjbLmz`bqD>+3 z0MARz>P>|2kBOd~Px`$0aYZH3#k98wbzbot9Kf~G5gr-1eFrqHym5Hj`+Uc zi}UC5zutWFB|kd9u1;ek`ahU)&^AW%|L~9OJEhX$xC*(|KBDrtz}ICWQ8o69FB8&k z=3rm+fhV_+{U>NsFwY=|S(O(@%Yg?ESLj7ofhSsf5a>FG53hXhEl5SaD6wQd?a#{9 z+!Xplv+05dt)Of6D^~~lJY3}iMbgMJz+HdUZ2_G#^@GB+9PFQT{_ib0*#ESb=LNvd zWRtR}`W(b{$`otHi5|;tJY%8#xa8ZD>O{Y{(Gk0h&R32J@rXOH)-rh{(P4F<0`va}xIZ#u|tR~hzf zE%XScu%)EJ|II(#oPLhzRoq%|(}VYl4z0m+y7|VdZs-v?EUoYC4)9^-?-y(V-LQup zaiBZQF+AQ7K)>^e<2>RJutR;WtcgSDZ`U4+dUWUoofqSkil&%_`_&pqnr8!*fL;~1`rUPbf5Bam=R{(-J% zSJeR@xj&}0v=Ln{45*joU=COy>qc>(U%_V#~!y4QUGyh zvFxuCu+v6HUEuHV^9spnWIvr0iu}iMy?S8QPRC`g1;{5x-Aym`332l7H(yC5xS_tc z33&_bgd)O>?_;v*@9EMmlSh(X8rWHoRL*Eli*^gaBW2g-W}?fLN1{R@$N7`19)1`D zxTU0|?WXS#CEA<>$Ji)K7W90+!+DzYBR*K6+(-ODT2-~5&Uea!0M|0!w|46QJuj+e zwTSY6g`xf%F66!Z;+GT92ND0%k3#=J|EF%PE*kU4G5-yDf9UTYDe)utzbO0${{JA8 zD0bgR6!%>oN%^7Z{LCx(Ad>=9BdP!27dxafnFR00+QMbVa{kVa0YM}pz7S=$oh`@t zjJE|F>4#`5_NJ0|@j`~J#)ae6p{?*A=J0W7G?xR7Tdgsmk3$0bmY#t>6nUjPZ-2ZW zaGv$~yaeyH_Ngfk@F)EAV?6{fmD(gi!O z-Jx_6JhvE%hn@Icfpd4#`;Hvphlr1(-7)kl*ulX<9pxu#w;L_wUtALM;=f1^8DuA( z^FV*8SuUpdKJpCiO%gmCGrStI>l8sgFZqM~3=Q!6AU?Zi1o~qR7i*D{oZ^cWP9?3) zu}eps%)_tG+%hNM(=7UE^3QgvwWnzw-{BtJkBE+K%Z-Q|=di6vSR=c3^itLk@$cr9 zP0!GCjmBSC==$^SiZhE$&>y_BVFXW!r)M+y%X)fpOEDLk_a?WC2_Gi@y|943&uH*+ z#Gghv8S+11AFK=y+X#Qg?i}58F8r0S|B?4G#w0R1)*#dV#5gnQgY(vj5>WroG{YHc zIv-RjEhqV(k)a-jbw~5xBg;YGxftMa74Xdbz+fnczMpK?1Mbj=M1g(;=Z(pJpXXp- z{o{}ihW*^$?8~3y3zN`Uc1mCiYu^ze5-HTMK#WJY>T>^lqHLYc}hsUy0K>Y^VD(K0SSP0>4w_qPp)K zetOTY&E3F*no29|>J7}MF~DBT;j=!^LVi~cyVYPH0=(Gd(H_hdf`2%#GveLaa=s86 zG2yw}P%=XC`D{l?DZz(-3waILmtd(fY7x%gID8mz&t{?sGwL>}E*6bu@OQcV4Eh4O z_??BLa+?1>^SgAK|IXhK^c}d5k8%bFVNM)x^z@>CCiE|ZS>!^zRgFRE=#t1=BZZIX zeU*;$?Wq4?YVF7{$$v?ZOh)hxgB?R_aeQ1H`G1T?V&}lXdI-|IL5( zM{)@L^ZEQkmSBBP|NZ{~Gtt)n{67%?7cUZtvNU;bzP~+td(M05?`_Y2@2%XNxA2$$ zAOFPvxzyCc8ZcB-~C|9Doh@U*p?yTm_8JbfvNW9Ivpa%*4Vv?neOmt#Hu@BCkF!1e!IcBl2V+ALNpDw6)G*2Jc+ z{J|%$HF58#exEvi=p9z^*)RW_)<&~mqz8JYO~^~^Mt-^uemL+W{&y1{kV8sdEdRcL zjq5~Yx$BULMFqFElDyfh8}27Qgs)yne5ilw`X2Cg(i(gU>ep zt=5@ubk<8x)yC{S(-T#Gs@BQHMEBQRs~u-$)?cr>R;MyG^HaV1YlBS-0s)ZcwZE2Uy^jfh z{Zrj#%J7Ds&)m&i_FC-~^kKiFjYfU$u_s&Hn~R^!Ood zs@YhIwPCwLN^mXbch8W1>5db1bmJI#7wBK(;^%!N-;B5quWE}>;P2dbzx?G>1otM# z_wgIGxc;cT0{(_?%OW6uIMMNft0W&}Sx`$%8;);r`Tztq~sDewa)|G&fG19W}CP%HSDl5=MnjU<0! zo5GqG;qRXQcKDa5ze&n^$RDO`)9oR6Z|?O;i0_nM>FGf|2q$hG5Msb*3W`sAiNEQ* zG>2{jyDfY0faFhDZ1{sY{*y5>*MAJ=r)mTEjWSAxe8V7HKHG4f{y{$WUiwBv}(py-O;$RW=={nEcDGq`%e5_qtFv^0!(Kdoa7F;u?;vBX?FL zg8qm0uZbSxRVIZba(NclSeKL}m6n5Uz21O;4YhX;g(}pd{k50*Pri=%aW3flzd!o# z75nQ<@Egor`m#>J-KriQ%LD!YYR1zRT@l6269UoC$HeY+ul}=ZiYghr9#W%}Gl`2_Hrb z)YlU6&3U3Y#C_3^EFSvttE~Th0rgI$ywUEP?E-wQD^|o2K7|H38z8S>&sU&NDf$CF z-wC?LJgG2V(GC5wM5~2-Li}K$Z!SMKQZBQ{;JV%dGy2t*u~4aSwEGa|5)SUlBYSdt zMlt+srTm8vPp+o>c6<8}heF&|C@@nTD%%%%n9keVoOh3UsIk2ErDIp9CW%3W7x?tuQu{`_05EC15SGbjID7qT~JAoiI9 z71>###g@kxTVqUZTejY70{>5{irsvzF4)vMxV86RCts_0W0y?U2)Ie5C#;R2=fuR3 zQ)7H?ty!NcG(sL2e_wcy@ItU$o6W_#VfeTKasc%WAB_T8EXWhhnlb?ED10NW6 z?l^v+E{pShb#{#Czu-sN*w;acuCHjT{IC9z%@6b5x&LEe^;{<<> zw{$jVBOk$*ks%QL-yd1Jg5aX*-Hd#q941zzYDnK*H*cqy;2<{0 z=7~_k2VEQL^nnkSG5#sClPi~0h7sQg`(|{M-b4EQ*qr|&%QICl0lmr*-VVP9zCYvn zc<_JnKb2CQv1}4voxLH?8*CvO2@8HqHOKzNt*}M6A^Vgdkj{NpDcJ2}DIOZR%+_t~=mHfnsfwacD zlgxU;4E;8*!rCCxM_2GHFit8Zys&?l+P)v_-ZK~8-VgcyozB~E_v97U_wlY?$a_xg zO?f7`;+1^EXQ2@U|9|%9rESD|bF#@peBh_8o9=_}^VUqYvj z=bkroETn$(VNi^^4!z2HCR;||LEc(@Qhic4_Dk0}vJcq|d{w<-jvuuA;jNc(o)sx? zKSJ{0-0r4NNv{cI895O)iA1251| zm5nA&0MDZlunYlQ8>{Y7e2S&nnw257-E5}qK|7t_wMR22H;#`^?eyUNqQWJm9^he~ zHgydA2K|#9XE67QX<!2g(G-M8!NrLf$uIeRzJvn*%dE|qc zQqNqpL!(TO-b@?VtF^D(9koZvN<0G@n_J8wD%d?wyvln~sO zMQ;YY5gC=C{u1#=)!C)+XM1>y$N+g!#($bDD9Hc(QB7th@s%yfib(Q5_t~Ukv{yj=QBV-UUm|(3p6pKlMShEj4{Tg7t|0iY z|6RsgW9UDdu;{l5caR0U|e^q z!oww_AI5u*E=+y;o$pV;gKx$xs{N4f-nN^muDTeLxmMZ}$0PipYoobOKGy>`+E%tqxAia$-f zkvs@3iZQ3X2=HgN3-Ka?r=NJJH-zetY??yAg|AAjw$XDXQQjt^FOkR+PS=@r?qT2$ z>-($$^p3ue1p{`1mzV`a)A6!mqmAG=P*sb#Hs&Ln^&K1F@zPXkwK!&e3XzQPs#+Hv zP57Mh#-6SaeD{dpfOg>Iw^u66h(EC)RV(znQsmtUSe5yuK_c**QYI5>-4vhl?kLbD zLVirU#$0rM$kwSto&@vu&YTB6@&2P%9&{tmUfmJ*#Tfbz!T%IQ@kPI)`E&l}z>p`A zXA*5vJXusia{qbv4qXuZPZDLxb7Sm6>M-O#=zp*8v8lJG&TTa9+4RQii>(P+2Eq7o zWmBT*jikMM-Zj0N74fuK{{ySaG_xzV;Z$w3DQ7BJvA=el4-PJqlKq#LH{g2>_#nL2 znwtwguu-?Gx?Pxsx`&A_h>{cYv6k=D)9 zM(BCSGYhg~Uvd~9EM6Q^;eg*ou#o;dId$Wv3UFK5KG;Wp?^^id>%?ay_tbNF?@h{c zX9y2$B0c&HAn&MHu8c9|u#(uLXA#d}qE!`D1i!1dJv&H_%*L((K9sWGq45ggP1Cvd z7UEMVtR}o*OFQBelvgnO$CC3gz#Bp6P?NuCcFKi3bQh0!V;ad9#j>N$5abt#6we40 z?{e{4*dIAe75n$W7~sipe8O$wU%CeIoct-_%RPjD)>$*~T*k%0k4W{$2tUsGoq|eA z_fh|uy^kL|K>Q%7YSSiI1*m6Ou0Z_(Q_3&@jN;D#zxzAT{nMZSsCn@pL-r0H+T}Tb zen%B%Gdtbn;c|0#cb}?|?{(khxNEgt+@;aMf&&#QlfS;>hd*$_myy-IrMFV7Xs?1FcwYG8_HC4^8}`6&@S;hrhmA zh&rBk;O7lhO9i$^dtvZ@>Lj_!*NorPj>R zeS?3T6Z)dUH1`oWWt%le}^Ge{_fNtN-!h|API; zY2wyrMVl^ZC7^$@^Mo1!{pap5_e&bgpSi=t>kbAW?~vENTyl-((wrH$p8@*gL@@wETID&IS4nZD5r{jYHFxt%*5-Q4b(x43sJoSfzO%={lX@+u}j z{iOMB-8dhx;O4-WfOCJpRGL%U#k*uR_2spS{F?|E=0VRpV=OyJ`o6+Zin(nLHdZ!! zh4^#L>Xw!RbzOXK;p{Z=`3UDw=Q!wTI6|u?ya;4`U;^ZAax&$OBfh%k*=oX%!j#l@ z>Q8bz?PCSW{nd6qJ<+?+sO~JodZcdA6O`|vO|=fuy1t~?K=dtZEzCLqx~q(}?xg&) z5%(10dtLk+dJ*D3UF^Z7Ju@EIe5=R)v%d$a{DiP-O^DA`C1;FUVD=PS@5pQNx{ z!uxQs)x(zVLrzXHiuqN5-}S#pml7Y)dK8MexT&uXaRlVmt)%+YZ1g=HPlFxLDP+o? zGKM}Ul~Tz2Y^K-xst8|}j;Jk!7ZYD6Z6kj}^6T0;Ij?_aWxX7D(2}yJ5cJPkEOrUq z*XHbl+$!hW_1Lraz;Jm|FH^2=;xQ&w64WV z@VB?Qd_@0ofdAiWLq5EauT|2zCw;o*8t~!4udN#vTf6cH#@)~Vz}m&_@Q&Qt1o_|I zKh!?X@+wknkzs$TyTXFx{deE3jjl~e@xqR~!pc`fS%Xc{wN=LDiriWUUpsR9pRWP# zizB}(hyi}&{_kqU@g4k=FHw9CodB{YHv`^m)fYz8pT5J64srLu|2d<-IEv)rCzDS2 z-5mU^r_cvJ&X3p|qPzK0>H`;F20A{;o_$F4pK*2Pa|CDYr}b^1SKfTIuXE1+8@!d) z1^BEp6uyHz2hI>E0zGH*e~)gtMb8hlAn;^+hoBywFCk z8}!Nr2dY~VVb?ufIpQR^#~+M>KI7n>1NYWAzz-XY4TuMUgPysIx&fMV858OOT%E4z zHq!4Ea%%>`S1g(*B0ARx+CQOv%@~+`y%hS}-iA!%p`$*0vj_Q#=u04thW>`S*XRE^ zKya#@wAIjkBT1>|E%MymdQ21N=v%NSH+*1N5;R(xHC~_`{chgPA6OGB1|skF=2cu_=Ek5h@&{}BUu@bB{eR{`)~#s3 ze_zVPUxH01`9I&DmJ{DT)-ruK25{fqyR8p=o^xgxEaQOhr+4tot1@uMqIW0`tnN4_8B_O|{lx4u4h8*DhC#qKw{acFo zsc!6d-|i6|<+J@E?OhAxFfTfX!X{j=936rFjJo}`XPzUtD}~Yb6S1FpdwO=^I+miy zT|n~vIn{CG0W8c{=b2HL`f9#%EU60c=FEP6V(L%!?=S!IG~u0jXkeQ1mZedN8dMkZ z)&_k%(d~F?crnpu^R&B#`~+j+o@A;UQy51P&%}3~@m&mooL9M2y@Ut)o7WBSOL2N} zbO1dU?4%5NikLH)l0x)u3;XF0XXN?2S$7 z89)Z_-q%xldau>KnkBlLQt%yCySaVx6!7B4n8o{E6YBeuX8v`zPF0bdwkhcc;P{1W zpX<#9|Cg@6^Z@=G&bgyCA`kw&nTNN}slXR5{&{>b27JJEW(a*d9Q=k~*pZixI^Ke_ zUb6Rupr%>q^XyvNnpT3lMblbe3OEbGe(1ra{B5^z(}VNYH@DA@1J1U0iwv|@{qB~O z;MQ9yUqJjLW@5pp2YRB+rGkG1`3An8Uv=ZUKsIoP=w9w8hQ5wDX}fl&ctF=H&*2+Xgw|aZpO_B#FYY8N~A>*l+iWcS4x#O^MJ{Dg*jZTR}{>krBQ_dl0zy`1Fm zaK7N^`FM!5QwjV3jq*L4E1P2W`YL*wDx1bxdf}zEYqcs<(yrmVWdCjJF<$&v z-4%ZH+kwB4pSOQSDEjMO;eVNVEaVEWswkcx)Mo2aHIMdd`HU=*AKkpYR?$Na#JZ=Gccf_=Lbjvmx12-enA0$Ru`W& zKBOYQ&N)dq@C@~sW()k0sHaWkZsI*TxlGbT_$1ON0*}hre357Yy+{1TC(h9GT+5$@ z{tEinW@yKm0Q+Cg2ZP`LcFAMu-_v{L5rX^i{rRub+`+g-iypgz`NQgngQ>q=f0Cp6 zGm`ryUAr_>=bZWN${AlT;Jvc<>uux@zJ7C0JK2NnKaIXj@!vy3|LZwb@mhtwd~?!k z6(&wEY8v|!;sT!c(vz<6uT|7nEh!!|3~8(j{BG^-Vudxd=P)6~Zf_JhbfN%onwK0}T7 z;4Cc##pIvUS{1fD*a_x=w0`(uIca+=-5yE*mgCMWrSH@EwaKmI>4rp;R?abCXn!dth*k3bJ> z@U40la-Idtte(4di0pRi1`*fKUnZ8RzN|BGBSYc4Ne>iGzof{kjp7W()*8|SrRUd2 zfWG;Ir_O#71ALe~GkA&U-dx=JdKdV9*+(6r(D(RX#E7mF{7)a%>OJra+z-EUjqF^bBYO{9-AC+6Z|bA8TS8GZcU4@lJ>jp*^FG` z6X9zHPbZRJC~wH3!ugWpnjy#$Hu16Q36kSstlvz}x!N=uPkc$`v~gs&Pn}!ozBDT?=nT2q&ieW?oCuBG287|J~iykN@J)fpr&MD9L;^uj1tdOGldvzhJ4 zk3wF~tOIyj#+S=xz)w(ruFe?7{0Yo4lku0(pTk-sAm8jVo0oWOZvNc*`2D}9`SXer z1?CQ4<^_X(X+tVMNB>E%@6WtZcyck~z|Fr+7`z64@Q10ihXPJY1M#ZNn-=hYe#rJ#C&hh!ar)jr$?h-jd>#J$ zcUZ9DgLy>n4n^G+>c78vaAO*sKNS@Xe0UXk#_czQ0q0L_d)9OvGO?IhC;VQethw@% zkK(}}_NMQm`oqYjS~K;pn;!G|h+q5{|8Xzj(U2x?6m-c(%amgzCpEtJ$MSHU&hiQL z^e*_}ixEx291-8LlSI$W%?qS+_Q%^o5&8F@JDi?G{MW44`MSZ^4TeALDFYmrJn0vv z!u12u%Jvw*M=5pg!u?#}#aG}j!h58Nfj6&mhVj~A!YAMP!gPZ3Y+LYET+Ky>Cc=J0 zKJC^&c<1DYE=opl&bf5-@j3eEFJR6=4*KBz`4TcIC$Ly!u=08Z69 zoz9d}5eP!)Onr>4ing6oUo~0+hzcpTJs3n$N=w-SF&jIO9ndNuwbaHa7inj-)}1Bow}aN=_F3S5Q@yT_5$@NqVYuLT zrd3St_{h-%CsNr{PhJf6%by^1)taVv>z%$Kb<2T zc7ZioiU)xUVve{8dey|LVZz$8Ao04LMJ_ckBFna zr1!H7O`td8!Mb^i)-tw3LbXa!%&umK4S|L>@B{jfVCNC{9hnckYi75#EDEJOZc;*) z6Z6a1aLaAZUyHeTlW7t3JH%Q^1AZS zRT}#tCbe zoJahSv~c450px=muIrs7*OSlLlWdUpR}4|WYfPMc;|CiE*Yl`;9dc^o*ucqg@Bvp> zDNw;qVBWmgtL>1Pi~HuKnf60z?6Sl4z+KbWZwfV(2V(c@ZJX@ikHY;)z2qM&j#Wy? zPLvjVD<~ek{#YFR%6V+%qVN#6ye4jLgP)zv?bDs;qWdb7`7F{W z)uw?yI*KGmEoA2%4b-24d_-dZC8{?ljHs(4J>+yAMxPP->n{|eE(|!(WIuivDjPOq zH!80Gw%5m(?2xm!QDT9e_=9c=e&0N{C8Zzp=VVMuCONNLhBT74)pI!$%>!xQF}&WT)FjNNqa`J?^NrfAGI^z*{$_&nWXu- zJ%4_8@MR6h zR(&dAB1=RWg4uyV2Z-+9pM2dPxInRJZ!P8fKP|KYA1-3+3cuatS5ky|X3v#_&g|uV zrxBN#I7Xk0`GMP6-EYrkl7FZ?qBPJ^J+~TjZ_SKGVrd3Wh(0f|km&o#l!GHS!f%(u4$)x8SSqt$0Vm4>5Fo^J=Ad7oH4mZhF-X{Fv zuvc>`{w_un9jKzdr05`dLI>nMTU2GCsJLo6Tk^h3-nZ%E>{;65FI6BJ#L)sOeA-k&U4*;;?pviY{LMu z2}&QKKv<0XOcnYBk=*t6w)$ES2S!at-7N0g(VPUl2p&SnwVALBoKZEBF2k|kF3)bq zbyH;WSo+>pRd6zWesJkzn)`eA*OA}GS}w0vKLdZB%ZVE$K54e`z_n4=B@w8|-y8aM z?{`$6d~I_){9V+k@&yX_K8_v*_<1e*!6%Ll9|C?b*z2JBzZR=Pd6o7LFANDHeP21} zk-dcTI|r?l|6xRWHA;%^vFoS&L56scF&NUbX#Z%|KuSt{n=C)>$&dglvmAK#sVm|2{!Rd;1+W4ORCl6GtD=AmSfDdX|yS?_ne&l&-1l@)M zC+=}s7N+L_=)JOH?KZ0WbBGH0ov8m&SN))oLjD&8jvkW&9~vmTsv~>-*zVz=b?^s2 zExoawmvjyy@4goMXk55Y1Uq>0Rx-(deZ9n!=p$b~TTFUbq)G21eiE2G z_q+9S^Yu)~f40TYNBAFO^q)UL^s**czk|QW2*Z>Eq{nLvg}%kG6M>4*aN5Ux*<^BG z*KbHkApJkwvINI9+z1~k!Mtq7?z{niep-eI@y1P zdIWWks8{68z)LXS!b*7oGh11AqY2;7o~dwJJD_j$Mw7cAqEBgs{};|GRcc7}+KiJ6 zLm>a+61^eRK=K|?B8wrsFWPgtfN+3qx*cWodVKtwzG$oDIb zj*e2^cQl75vxC zkK2~E8#s}c^)noW++rT3>FRaz&yy8Zzzfn?ks(1T1D{0tkLJ)ZHt{0#a}ismEa1rx zw5Ph_P0-r{fk=D+`gtN^bkvOeu9>&jm_fI!tjliPU;I&(j{NYWjVoTD=bo~A1NM1P z|7>pr(QV6QDC#-qF-eJmzC`BBpgFUNNmn~54>zVC93%gH z=4nq4;=8WUs68alnf3RU(Z1V>trruckWX;%b$RgDSf4vf}jUji@dp*_{QOEa`#o|kIgOY!1q~K@CKS& z9~wGWf~;P0xWCw!=q-p5co3au%#yk3uKS{_g!IBHMZAn&PdE|3AvNRQR&_nRaf9$b z(}k4OGSGdZK6v8ml7RfloYla60`j|SHs}A&WM@Yw##2s_A1JCk^A+m;{QVi`6mb8z z&H-!fiB%c8_||Ny?=H;xRI(0qY+e4U;j5YVJyZ(Mrb|;)AN{utIE|#eVpJ>HfeM zdzbli+Tafc25weTT#<`HI@(iOcd}uU>^|>Pt+d1c3%c-Xqd%Tw)7BSiiO%Nc#t@3z zBPFWxC_GO?R~P(jGv^hTw2}BCdBkkAL%vMDTpP*1)H|}A@_=uod{9b$zaz&5dk&nS zSHV-?+mZ8I)xaGYL2~m+`kvcTvx@kjeu*duIOU;0b(o&|adR>!&@Tl4z#0$SaR+;$ z&?G0nZz4Rhl=6X&$!|7C!GGxFh2g{aySoR@$q*O9&hf#!E9~4Y)5rDT4^9?%PaY+uB4EdjkkRHb=-~mtMPX78!@Wo`&J{#fz_C)X1rjZ&gdo;JcAN3&In@7DdRv)kXUZfb(w zK;Ku61aay#R%C3@Md7-*&WKT>+q>P*Un6_tKba1^2lEcc)HJ7pdt>8m#2JWFyZfEc zFO0RXYqt#VZ(6n#dJK8puE`wOb0)~wg8pOV50@2s5}zoYzYV1Orz#t)#8-u3nn0=x z>Pbw#OnpqV&mIOovX;5w2viS){#&=MK>a`Le=zdC(DPCg0s-w+%uR`Q$AKS2uW;*u zw5RS)BR+7L4XV_Pf(_r?aBRPiz7Jc`+{d4-^xw01V$V6s2VTx?8_ERz_jO*Ipni~1 zlf4}{p!S&f_89U$+A-(;BFg(YiudQuhIYACs17IZ?82xSgxv8Wuih^oRT^BmDx&|9eo|g!~}t%C~=eo%Tm2 zWb4iJ95~B^Jfi!`p7H^T14Nn)@V~EerxySA64i-y$H!(Of5=Sh69Qj=`~~~^+98M8 z1?8ysy0`msT!S0$^NH}`fCsTL&uhSUY0NvkZiMuzyq?z(9ewiT^SuO#bUD)-p*+S-=I>X84E~E~dC&GV6vS0Q?c9(w#pD`w=g9 zA@7UtooZN2dEcW8eX)-eaf>QhN%rayULdqX|D;^a%q02;OM^oQ|4)*y-$KW0>*X`Z z-}CmK_pBIsU!i!47x{%Y+u&eo2JIisdIp=+5rjZ61Vlm%R6fRpm19$JRDi5ygMHt33@Q|DS#~Z9egVdB8eA zao`!~aae^zN48<#5U#s**^2&E_&<{FY>FS7`_nS%d2UY3$%%p;9nE`nTNJK4+na#? zelzzDGw6%gIbq=q*jGFE`t~j)2AH6QyOM46|Hl+a{ zNaN95_vm0hn@kv{MfiNs_F`V@WXyAbEgE5&Yq?**m>^hcj!bI=_+ z>VoEqcCb;X^yFQgA>UkU2qoxBfyZ)K?(@hti(vy_nkX{q5-Uop*>axHWHj_8fH zPuK+>^Xkn8I*(R;q9D7lJ9>RI>Hp0)y5gU$yo@SXo`1K^&K#aUo<#M&e4o-K(-vo_ zJikvSJ~*c7R|EgeAIZ3L^c48TUu@>x`9HZ|K{`B(--?t@(*N%?bAuEYlwT^)kw2hW z6nci@fy}(xJJ18nP}Aqo-!+`~kwV_Y`DtHN2T>frP5GusNpgFvZ!zk%)-XDqX2Qg^ zWA33r=azSg5Bx>oIF`P6+822>=Gs-dF1sU8M4uD;E?!Le!sr&(J4#!`7FA0zFK!JZ zYHXmmjI~Mz-`xdyy0t@|X+PA?NS?;LZ^+FjpFpqUbNck;VaPw*R5yAH^kw3+v-4<< zd8;uP_%ZgXo^8wxz_ZsbW_}1Y8{Ce=4V<0yVaR$38x^)HW|J?fr-TA+_G9RUVqhZxy zRfPK>+cBHy9-#8@Abp@y1!mP?{#;^i?B=NagC&nwR+Y*t1NLNIoqS07K-Y7#ew=}P zP^YW^7SUg{zo#5Wc10@VJcT;Y{=J_XPgO`u%(pe7^{6x)AMegU{Lcz?=_0cGlbWNS zQhZ<#yx_SLdEzfl?OKESFz%!AAA#r9u(m+Ob5fkgm=eDt`d_w~E(L(DC%2*=>=1C- z#sr?^{jJmYk zd4JIR*l~$B>;&6gG29`;{dmPB_5k7cjgE8^-NV@Pi0@Hv){y-IeVQKDjT8=-JJCK<i0rqzg0a0`^p2NSZ_)@Sa=eAN%!; z%7FZ_>WeF$t(4|Jm-KIW&=KFtEd1&$^aE-&j~vj|o>*5>9T|%{;H#Ww_G=q{ zXR6_T7|F{!1$}Vt?onep@`c}*YVS!)QrQI^=>_EfH!g0-mO>A<9vruloSGu5ylkIlG?d*Lvr{AYFHsQK`+y=f)bgZL{N8`kL}hX$dm% zg7;6_p>JO*mB->f%s^ry>=5F9%gu=QA)lr7KF5iE3Y{pF>@^!fcpvnF!9SAxawz7+ z036ddb?WIlO9c1;IAVe>u#x;VUs0qL`iRRO82gO)IA`6hWHTF}eSB6W>{c;beY_>H z9e%`v8;gU8{t=a%5udhmK7Zb;ru!dGI`1Cr*U8<2nFi7gY?>z>Ka zO3ZXoAIJnJeEd<=1-+I#k%W3Lt?TyIXQ&P^!D$`%5_;gm7_vE!x9_W_J7v5$OTPAw-+bG;eB(hGJD6Z3QOqN#6W2DmhMmwIlzmI>INPKWcA^<(x z*yp^b1?2)XSovrx4za?gAeTHeY%t3VO&R`i13W7et(o zgzUmM9oc-i*LujkQB$G&neGoUzp{wqox{rEL#T_~x^pM; zzo}kgU#}~W_vCG_ec-P9pS5u&$$d4ikwEU@4+x9IS}w!TH_*pn|LEp;S$f0yA@;!o zQ$(ieV9DBlmw!sQ@5%aF2m1drmPOcCbe{Lmx4Y(lM0J39P3IUH^o$6LN8iW(za3k3 zhIHhGMPZNY4*=IwU_wSZ`GfBt{~h&(-5c!xnEb)c2fc0YgAZQXG~t3CV2)WDHBpG~ ze(VIWOY(Eea)xO4thUsJke%Qc zpU3lTraDq{e<3v*Ei5}46bU19l#zJZ&iVv3ujb{ROk!n zn?jmHVP=DbRu>&hL{wjKl`TJKXjqT9duVHR6U`;=99?E6d7ZyR7c$tE}H&x>6OV>x-fIWeHs#=hLJcRr&=NrEs@m`(OXbix8Ml>n90PuxS z=sRDABleigCOMCfju!;r_+dv-AnJX&SY818YTrP-cXBtF!}#9 zuX49`&%+QIE-iI;Wu zB;7wD)4qLU^!6@vmRWiI$ot@fw6BNv!_Kn}54(*N|GmQgyqJ?*o1t^nr<$go?2L50OECp2-e;SfF?n_(Fg-eh&3zwR6IK9!n_SVD1qY zKz>@L)Yrj{66B0?4;ab^2d1ICj#HY&08Sy-i7zER%Q$7i$tr#?FZb|^G9X) zz2kTL`bh3OFLCHkiC`8ilt#MsN{ga^_)r)YhWR7#_mAE{{fF(4O{3v=L;iikI!9&r zJyY%_T(jZ#y%Aeo7=ZgnN2etFrVg8LHH@+Obp8UP!fm_tS*W{YZQ;h96z8Ru)Wwm0 zXzsV>0Ow^2RBR#X{jP6wfalK3NIWbJv;zlvL?jG?-&CSbI8sK>SCo7EF6hWk@saqT zZkUyb_&U-Pj`(rt7d!VT;$nKvj;=BzJx5-t3?+T6Y)O5C_#`c}Zay9Fs)cyn%=!q0 z;2%4;qGFef_>WIlx%W`}`AaKhxNf+wC71lk=fwL#SNMlIs~*3TiPuVCf6#AQSF9rX zHa0e<3A>tv_&8=Ox<|=bJSsWtujRd{JOukQ3|JU@Cpx3DHGq&RM zd1U`rRr5UQg_qWU9`}#^^L`}E_7}|U4U<~*m z@zkfxyKTi8dAW{W!UHu=h8XUn?{ji;IK2#YqVgo$RrCX~x6Up*k9;B57P;kgI_&wa zp|i;UppI{L=y#wull-~PKysh+m$TJ~|4NcIFADwOcXyksj!`~WBKpNS`g=Op4MIAR zZ#DmI8PPv4J=;}#0`)bwXl^9xfO!YycMk=JRV5JrTiE?>y`XM1WzzFE$MdNAMBJY3 z1U|Bc@$?ZPF2i1c>FYCO_UZIW`FFgFQcw{ueiTYkSD z`=QU7&%$2>;y0zBllZ`@H0bDf;bOm<{DRQX8OyN$m7T0`fbMB*zoO5V=;&Q!yqMC3&*V&Mz==;b>RyZde$onL{+W9u} zLwhnEb8L(LV$N_muA?8!KflK*+j9Lp;)AaEPRb9Y^>ihUoG@h!O>H_$xNz-IvYP5V z-m*LIr^7F}pzmms!VY|BFhKsVaw`4I*GT?t-Q^s`f9JDbEhYP&tg*WH*PncC+>P^` z#pD$71Lk-MZsLeN7#jcE2Nc`4x~iHmR}SO3z&% z8WutNwrNs&W3yW_WbAboSw1;nux+oqToNdV8g*w4G-um!gz+>;+W54)5 z@`Q8v{@XGamyD#FuHB1&S6iM;ESTc8N6yniI<8$CU#K(rC z?&sK9<~3DXg38;#&xhe(u%R{Oiv!UAXfT?A9&3^Xfm7&-+Bi#?X$jG_zOCS6qDz67S1lcv$0p-CGbaugib#IT9lVb6kpuk`Ipi0r3#_R` zCl$NbgXs491s{Qe6MO7(}_?;Q(K8pCTolAXJuqXiE zqlkV)*ADM#X-XgTND+%M^8&(sd9_hV^fwER6b0b=-4B-{{zv^U=E(bD|G@kRQv})l znI0bQ{_nuT6;o*MpkTSc#~l|=@tQ{T&${PyYT^GO{EL6vB-MUaH}T*!^1Z(bZRHQb z4>YKvb!DgnANuY=D$N5*xaIWeJm1dT%vt9;2)fTJT7Ba*>^}d|$N=b_-#mN-xIi1L zSuxTm!*lriqUR>b?+fSE$)xYM8GT^~u5t^TD$hhh-ubzE7fB&UTP9l0())JfRm|Pd zvIe_(57hh(6_7lB`hnDY49-Wu@D4&Xz|BHD}W>HoBb_)91b9w)koo~ZSr>z@pa zUbG&6v2#r9PjP<8Z)O<+@V$bl6VDH$?yu`y0C!6RWt%zPh_-_RM zq5hv(WlF4j{^)vd^nXWaADJ!#?kCO<5JW*wTxHUS(}%VHv48e-$rVnhf9k2u^SiX; z8`4(J_$Vz^WDNgJDfGJC^$TZO>a&%+sG2_wePC`l`o~8x7wD!u<{gszk1_us9e7}K z%^=k+4yIOc#(-1*0Me1*7x+nV_H$HWJ_#@{|kuOI(nK{f0J zcPe!pco6C=c{B9$c9t_M&9DdDCyMKjn<4iCl`!5P^yBXq3aNkGV2G`@;TRmeZza)7 zQmMpwlvY`ujJjDnw>z`)BH=rF1@&*5Fb8@di}nvc@9F7DdRu20izUBLm0u3Iv~!+f zF>7X}CBF>j5qIujeSR%$A-VgaFAI6S2BrDVj3TQq9ry$z3HL<2ZsH8B`T^pz z$AYWjH|}7b2o(tFes3!;>;peBd^hIPa8V^6%&Jm9gV#$pnY<83u))5bK}7%fhQ<;Z zUaw121(1Cgh(baTN3fIjU<>63M|g8R$-B^CGCzak!b!_v`o4IlKox-NGQlWW)) zqF=U)N&e@H(f1jtT|51;U33hX{$)ob_7O>f<~>hyX(xMJxs)IF4wY!GFn5-d{C|V% zeh?2mcocr#p7za6?_>VQ29?^c)U-=mckSBD)4&4?P3N1a4*=^^-X*&Giv&uNbDd#_ zkdFEm%RcY{m;J_>nIxCt9)_0*=Q#A%zmGz`Io_ILfZxx~6G^-&Z_`_qWu^QNv%3C1 zKF{UuZX6(fxIH@3Nco-*5=0Wh_w1LKc_QzR{Ka1A!K<9rZl<{a%&dhA1Qg#_8dlBr z*KP;CZNOf6;3eg}p59ky^%!K3n+VhQwYE3x?k2Ci8}{ClLGfmW2b)M}9GDsSorw zo6|k)AUW2heRiQ8{2Ka|8o#%VTPl8fDc!g1j8g$RvZ0tq3A%CKB1s*|cXq-zx@Yj5 z`Ym?oE6lH6=<1=pHlJKKl@mW08@t?oo^`O$gFZjzD|Fwt?Rw}G;!j1NN(ujy%Xwqx z$_VYCaz6TbKyU5F4YMC1xt}7Cyia<-yK2=Gn)~EPcibR5usk{%{U24oNBEcZC*b!+ z<9ElX|KGK+$whH~r{z{6#rNTYD7It{!o_+;I$Db7Efv2y7;@NZR&D0>~` z^|YZFeP3y8ZP%nXo-1c4d+j*+W6w4#6Nw*wtG|%E4*dX4Gx~YDUfs{v0~hAb7fnF_ z+qmSg4L6YQXS+Ij;;xb(Sn7B{c>krKPSnSnxUoqmp1TQio{EuCDTO_XxmbY=2mEIz;fbhFu!*0}{q3+T?8BW)QasT#LJ7-h^ zPZI~=@2<&SC4_!p1;Xma0PwL;-Ef5Re)UqZ1@eMDZpt*eu60?Rk?Q`>mv5N53;dEO zr+gmv6gi84KVY7XOCzLt6`jqbUy8Xw;LlVS>>9a+eLUC;i^fjkgQQU+Q`{Y7!uKkOy&*#)`n>CDAEgI8FC`KQrcpx13oqg!RMimnmXt{2`Yh(j{37Ae9p{yibV14+zu{XCh#PE!|N4P zPr@y*nnK$TO=DXwv??RDJm@bCC;xA+j}UX8)@oM?r<{5PdSE)#2I0VA8VURW*#8d4 z!y4u8%hs%{k|IBNv{&!c!tTm+m6b%l>@FU0`c*SzB&A@->L>t8=mmpImxW z{!Tmmf|+wufcwyV2}29<2gZEe4Z!bE7&g8^^+QA9LK)}`e6uEc7yJR<*9&$7n_!UG zpzCJ6)#T$u>>e;d{^$Dm zAW!h~{`nan)v)5bR-XF*j!gDRf5N=S>%B=aJjqiD$YvJ5gJdBAA@O}<)Z4uYACeZAUIbZ$yKN_hI=!NRfs>r`P zc5eG(_yw4QCPP29jT7j0ShoZBtrBg7-rde+Sw(>q_p3VQdQe_RmENCD=WJn60O7*o zzR4y!SB9c40QO)oU4eMrgh~e%cB6=0k(-FTehp`}gzHf^z%);0S)m75Rk0X&U>p0c zN};0XUe}q$liYtGe@bIVo=>1tfDUPlzVTDwFm`VA=wp4Px1Bvd_7Hy0-|C*EJdJL+ z`#N23b~U5Ed@b8C-1i;v0e{w~8mMiF+{Yss(H^({J(UOiLN+1eRyg_w81?x|^wj{iIam;;G?Kzhp;n8(Lt zJ00i){h9tdP8=-R6O$NA^}jbW>kp-;~4KUJ|kqlP^{N^&orYD4~} z273(3(Z^w8op(36>v$v~s|R+%kNLLh+YRL3rHsV$hBID&DMt--rI6O5}M!C!Mv5>OKtK`U7^dFF50QBGRxrea&=(~%ziil5q)#K$vf1yeIH>$_DZc72)RKzV4_qI+OjBIF*p zuYc)ms{2otX*49)yIXWt=mYlY7LCLPz0h~yH*r+AV;Odgf{x5}oe=%g=+6*@ejYA8#c7=^hCZwSiu- zRmn=?FM&t}+}_0LkpCn7@OBpZh~Re!wpN9vBY!x^**g(Gu(#U%KPCQ3yJ$=-hCC=G zg;nI2gb(Io9ys>p1&70~A^)#P*&)tP%lQ5LCCL9vwFZ4?0m;9>Ll8~+Um%#0M)D6c zp>q2HqPc})?H%l&r~D5h!lxRAkAAc^m7i-doHq3U7}8SMLGr$4Z=A&~Gj4 z{rn>Mg=>+2PH!RopL&)RMQO1I_UKXgZDw|(O*KsV#`(<&_;Z*CyYjfO9lzs&XV4?$ z4-9Ub5F&nMHNw6D(hs>QEk?qlEIz*KDCh$jvx4jh)2HXlNDo|(y~V=Lv+2o}`Q%T^ zuMO=dKQ()CgMeXUbw?B0+y|4cUFffdvB0 z{}pS~RYC#zf5XEa4=Mfw{nOW09Mo=pYtO?m#DC*A;#^ecwPo@rZ7KNR=KZ>BwI@)| zvG3naUqbE^6Gw)ru18+^FzW#1|L-4vSW5DL^>XJ;qN~+h{2tl&v3h~K&cpoI&kj)i z=W)p|CnDhoT%Izek*=F3YPv{tKbhP5=~Xw5Qx5yk#%{=RI@Uptj8^(f{o$XzyT@Bi za@~MAJS3k_h^A?X-dXWKVUK(o`&s?TJ4Nhv=76^Z^S2ORvEeh}Wu^8tR6ws{FOh5S zXaJtKs8D^Do@;bQhoBwt;f3t3KC%muHVfpZm=i5mImv$SW}0o_BZkAAWGU$G46dA@ zc*B*@2Yj%I6@GRRbzMc=@xr@S(i0fB$~Q>P4U!eew`keyR^u7ibMEY8n!i*1&R=*N{6Ez9w6+zX z&x`$H$kl+kzpTA!5Oq5y_RQLGf8v)XzjOls)3Tb~4Epu91K&$%B>Ujyk~9G%T$j zBROvH3x-_cz^!9rbIHJDc)gfXW`VsNPs~+DsoI>C5xgiJeyc*WIv)MuR(AO&{h~m3I!O0@(-`Kcu zV+3=OK>{CY*rhH+*BJ=OX;Wvu4oayW-o9cS=T!T`gm+)|~FCA6b zCjk3^xa7Qv{D$ZVJ@6yUWq;lP`+#`SkhO{QL#S_aWfbZ)dnTKmWKSA`vNwaS$UiA} z(EUTo)xjjsU!f3h7~gLYnXl37BEbtP@(Y(-+cJ~oWx2%N!$WnL(9e*)n z<9mev#mtP6-T4ptpT^vFBkQyGYv8$luU)ebetRn0uM^~wpD$b5m~1;F$xweWM<|8-@=FGd;0ty~iD3cGnfL{TU(oA@ zXHQxwA2`x`u8iWw2(GDu^u>+4I?Qp|&J5SOK5U14?>Fn+{=P=zv=d3>-hBVa(!->lmRY z%^Nkd1u4-fB)7S}*#mUk6yNMmbYAe7p@GgNrjs^04^-*q5`EuNPg9v$y5G#04*ZTm z`&rR2e&5(KX*khUa!frJ^&G4$A-0r0|K1nb41LbuM-)alz{?lg=h6H(r9mRG;O`7{ z%;SmsWruBD7Dg6+DWpK!x5wdEp_p z^G1{N&hnqVs$KDS z8|v;Bhfhmghx5#au0mYL-kmJ}7;z!$g|BCj-uDWzBA#2rI%G|}9mk1!KQr_@EAoCM zkmT#|gr5+7bzC7|`2qASr-;42q>Xz8^*K(+FZ{M(-$FWWKKfp38m`k+2B|5ZBhWQP zLocw?5(O9AAh(Odr5}?0_N@v*d;)!a!=aWz-zJ#~eTw+AsXGDggFAKk8ZN{(v z^wE?4h$nQ}rgIj~#0F{jBjo>0y6U8KpVB-t=!<>w%5BLcuiv~ByWE2B;|H?(+UfhB zd#ak`d*X$wZ^%Gj>()H%^)Pc0#NbMEY_bHzU()Y@$eBgj$ ztyiVoy?=h+dkHZ_f5WBDq$}*pt7!h?eavq%c%MH{{{HB-%@42FnKOFNO(M_R#_&SH z6Eyd8_lR*n%>!RAm&?;3*NzTvGx>j}+^!tV`DJ<4>dR!$xr6|J^7jH+X&K=?X9k*f zM&kA7{`BY1r0DYs5lI52C6Ww*Q1plt{-B^s7fSwK_CvGL%&lg|vx`wbS;Pic%H@dv zIEkiuG0pqPlzYvzLvEUjE({QT)dS8IX*ha_*G@qnCKFcI)lKvro*mjp&n0=XtdaHz zYs&ai;-6@hz@r`Uz?j5rY)2hA7b;nX=gXddhYyUx^S2C*puYlhe8)!RBzKDhr*9Ko zq)+Ch%D@i;Dc1AFi2HoX<{Ysf!W?1$v|hqzmoyKh0Y_q01G(@kidivNZ6SJn+V3f| zgO2GAodf!r;Y0h#1}#j*n9dO{xJMP)Rm9W9I|3|U)ZIONiTfB zdjp@qyc=OM@YZ5Zu4L6wxc|qyr;geWA@5+jVYWd353Fdp6oLF-ePys0(ch~wSW5D* z%2ytvb<$yg?U&Jn+ z?YWoqch`bh!1vZ*A9s9`8P8MTpG4Bbj0hJuNVRF~#q2JpnVrWCLGOsi*nRa#vp;;%m+z5PV2+_E>J~9mqXXy3njAdvG*M348|q zU%p{=v`_SJNsa`<2{nP5Z2^Q24wV0f^mwy%vYG7oS^J$Biu?Q}LrU-qbD(Q1hv?rm zHXrt*m`$ikLH!86H`phf?t6Y*h52uob2f&3p2W||{ip*qbKh>cnNIRwe`%EL)e3KIenIXTyhzSZ9Lmo}I(I(QXCe#kH(`#fokFQNLm;EW-ZTdrTv5ME%z^ zt=jwL{s`&=^WlHa3u0ipyFcvyvSFJ44DpYSME&3EKR)b&eCM;fIy=vx4?uoB#5JSR zl;JcP3=7+2+CM|?$uEp^#qYr!c-GGJo+J973^xW+-_N&_&1vbN_ojQBF0TW3#czFcVM2LaO33-A~WX3G5TMfk ze#pd5>OJQY9p(CS>7=(G@J;iIupiSJnsu%id~mz~D<1IozaW(Ai&@lzJ^c4}8J-j8 zd2x%sb|=>=Ge>i==rJDt#?UpG#@tY#r2F+ z)1Mp#z8bZdB8Yy;t6%=41J@;Go_$DkF!=-pk-RS`RSux~kmJLuW|AFhQKYvLJ#(ab z{5{aq7LA;68cktQ3#vppO*Qg9;LrFQi{O{Gb9;SSvPcgE3W8>nzlS;9ngHz%Ry5yB z6ova69>&HIPJGy&Is!ezsC2X^5qapp78Y6XyJGhS%%=K})t6dO{~M{Ld_MVoij1xI z2=DJ#_9s)_ulV#{HSxpKzE9cxkRSTD>7T!d{p0TW&y@dN;z`hu*-lWQp-d@VEW2g>^k1xt^i|7TBCjYx!ekZoGF_zdKjIa(kv)WVLK4>s_> zz}TkS53ghY&s8?>w!MbtLG|Q@DZj)#fQJTK+LxFQ!)z_vL3ZM@;t4hJL(aoE#7!oa zyBvpos+a@8O(sS`U)1|HZjs{eb(RN0?_sY`eEfFO<5H_Df#x#>ebmucj6Qr-=S^`j zZ~|4Jx{CB@(gfrOa#?nKi5+&E4HOzyw1a*JzNxAtebR8`>=JtJ*Prm720e_7#qVBA z{8XJHqxX}BCW`3(5>>PS=WNTdB|TB#LxqY5{*O9N%gG)K?7fEpdyw&a&1Ij20#{-h z4=+HSmziY}I1BNkYkWZn^ai83+xi9R4{QZ>?;X6O@pb=wak_K$r2nH+vR;nV4q}g} zFZ{i=6&iy?Pk!I$7d)n*9;l?cnolOakiYxelt|FO<3*1dB>#O-03`npV;tMRhQ9AL z)M$Rh9Iz25W6U&B-%rMJ_Z*}Td;9)u*r>3qKK)QMG$#JCFaf|jjn^j5AbS%o^Tz^o47M^;1Ax2Mn#GXCQuX2JzD zQhzV<|AHbzZWDbvtzF0iq3?t5Izad>JKx8r9nb&Xu&x07&R7Q*BEFx;-0^Ru{v5V9 zFYW^I!IQuD)k*PrS8P%``G4g+e}v>$zx!%8@y!{%P#A#c7{?g&B&U0Qu?Y<4qnpl( ziT)vK>{Z2apf4Nv5bAj!+{`BWa6R#TG>4c#SG`tlf?7{D0iixsVkcFaF5 z!UB*;_1 z3roj_h@QNtI5!-9_NArU;_3N+m-$X6=+8ZFZ}+fsX&e&sol#ogICVRL3!*=i@5G$u zwaC+Az8mf%6qy%-{%l~&kFgf;L2OmH5BY^J+`Z<$Ud@LT!B1cp`WcW9*ulnho-H7K zp4XZ(V8Qoa@QsuZoeB%za?$-89qDd4-8}iztak8Wb?FrED12_T4)wcu-$%3v{(J`) zEo1|UZv=uxQ7Txi@e$Df`ERv zy}vw7*?~D9d3858(;l#_!>bM*z+A9x>2tSYJ{0>ccjfH<6CCs0hhh1rPAHl7#{I{r zKUnr|ch42nUpJpkNC2M4>avaA2aOAL3AC8t%n}QTz=I57qh7Q(5Y4! zcdudP@{I~iiDJ|`%Xk{}ucYd|YLef5&em)@p3i9B_;LFD#jTU$MAyZ4p`*ZOKaOTz z1AWoAT@?g6aLP-*z>OkUsV&Pu{I#ew;wk!^r=+aPANF|aPj(^Md$s1wPs4|Huunz| z_4|YF&r0@kr0<6v>oDIJb0>U^@Xyki$ur^5Cz#uzQ#>U7utad&Zx}da(=Drt=%4K@ z#C!tOZ;vi)CO&GNEUSe+;ryBnPKqCrPCp?h{wPS!26DBQi5tBG?_n)t5=*5-@1bn# z2>BIhl^2KbI=g+<>Q#~2%SwM=u|LT@e{A_vbbKT%%!7{WS1u0(ALO?-UK*zO&tfbZ z5~YgsY5wz!%GDWLZ&joI-<+|jNptyw>+7{~Z^g;iYuhqZ=H52i2kbBO^`SiAC0o4g z0Q^AdNr!>@y1l$~x}E6%Jo21Qv9n@TMqz}pKeA*M6Po*Riv@Haxn6mO_(6R}(^m_+ zD}E!<|4`$TQTxfo5%`1LJj17i6LFgTGSoQ?9n#761-IdOjTWS!KQ5Njl=blBk(8Mx#5mJ#2?r@9Dgpm1Ha=bjj5l$FCKwC_>{pQGvuv+PfmR1 zwqIE;OKJz+A37UCbHLcv)-P5>p#Hz8NGzs0Pt(xZW~%=&wCLS+ARej}LZZ7uk&HP3 z_t^fH)kfO?h_c~mpVaqDVq;@ssLw~f&~=OI{wF3AU%e09r{`h8e#`^bF8MfhCC&eJ zB%09w@23^`?eo*J2PzU0P#BN7F3GcdT^1a7=S{q^ANu}>Ull)3bf200?NZ_g_O$x@ z{S~Vi{>-7{^!m|*!`K&dg?sn3+MDLTCFU7I$^Q!u{-YFn9nZsGO!aQ7LlbUL{5Ipj zlqqBn&UwxA#vYf9^iZ9E=>JFYe&9pcyWG<$CHl?~O#c$}Wm5WtR`3I-QCA_JHnXa| zJ|1>_K9Y}3q~p29y`DsO$Mv7!_otz5XsU$dtoC}-Fv)Y@>Xiv3XS^t)ZaU~wT6*nu zqL&$>)f6a00pytESi9sAiMM*!P6}V!sRvBza%7_~ApMn=F2F z4$)B{Gc?ip!f^dI+>dK9pD{vDApa@#Duz9;K2lmvud6w6 zND-fRyBb>~2Ne6!|M}MD8!@Gr|6=ja87Car+rqf0&*SFpx$e3kqjTB$ zN6{znaC{VV|E{u~W5Mc9V$655j@$b2T-l9khfRg>J zHNPhZbrhl{J8SvHH&Pn+Bm_Ib$8Ap8{ z*RJg>!d__38QYA!AvoiVcNXjlx~mNg>50K?(cT^4KT%4uf^en0ohbwB5QmtGd{Fms z1#|f%*!KrNzbjft`TzOr$?uz%pWS%BpI$HW@kT$02>YKEeXBEOestml&;Nuv-&@%e z=>JDwm(*8DeZEtjX9nn)bJ+hX?R{Vdz0@@KN%@7VmyT2aD1u%|WmKwonFaG7o5C}} z9~}Fefn?PWC$4atX7=`A4iHy4Y69L1KX2g|pOXJ4K)v4qY;xrJj^TB<&rZuh1#n>O z+4L4reyGwkFib~({|Vq+MX0aRsmRYyOmH~O@OSkBL3-OE;CvgbcZ)%Pp@)|MbmuO6 zE^Ic#{#qg>*aHN7NT4jfW*EQdf(swY&G?D=j3U85m#{McPF`q z5AEl!W54Hg{4R@GDyG*puCeRGhoC<+*l&;Dk#3!I(%-B4qWU25L4@hT`6$HyDN5x4 z~)j#lX>Av`n zM}W^1q%-Mk<-s}lmtN-a&%e(9XFZP~!BYXkDbWHI=<|}7$4fy1g>WwZRR;(Ja=3{> zf|cb{eBKYB_vJHZ%BKrnR?oq|IQ?&-=bM5(zYU2O&YAN|fgm<^bNoN^#}&bYN5}8% z`0RTyqdar%%71?UU+4d`_~~Et_@7OW>CnehXkf;F$Zybej|2a!es;_M>nrB!A^+>w zZ7W1I-~X@A|Ig<4f6?bZ(`UNC z=K#DjK`Y5`X6Aa>^Z(?ZO&3J}r*rrRv(@1i{QoJx z|NK7bpa1oJ*L1H}@9j%$c@Ofxb?fTO@4(-9api$2Rb=n4mCkhC^mv)Rt01{Q40CT{ zZVJ}6hU`|)of9Mw#KpyK{=dKff&a(v|L5!ft8=%$Df|c?_kWMS^Iv`6zuy1P{Q9rw z@!$JAAkUDll?OgU(6@f$#)SXs`MTo+gb4rOe~2A~-*b+_ZT~m^U+n))!NrftSC&3{ z2l9KZbbj!gf_43KR;lOAd5ZjnILPnCkFpBipM4kKjC#3J*E^5=wngBrs#+!d+P%yW6Y~hzpCDSZm2t2@ACvJFN|( zOkgk)wFvDD1v@f8H3YOGr8={{wPQ7ei(HCyI<;DFAgC2D)9%@7-BvAv7sPt0tt~}h zo$o@PXEDzCoSyyecg}nEp8DxO-~OJpvRLc+-7n9@`~30h)c@+=i~ar+z3eAi!moq& zKGlahwMDMC$hG4BMOI)g=zrzU-{%)ef9ur#D$!mb_Z!drVf<4~@+L3-*9$LLXFmA6 zH<_>225h@6n`YHA6DFa;g2{0ktX};>@bm21bLO09!2HGQll9Q|BSwJ#&x_84(&d^F zu3LtG3CyzG}2gPqKnX&%iaA3%v9ZN-io#{3d49J7ov!~$w7?S0LfB!~)-M3$U0x@@A z-wRCZ+Tick2G=+l2I;iQn@s-uqW$qPB+uMAv;W5ac<_Dvh<}s^L;dRq_rp!*TK~0; zFExq!<>keTV;`jdXYnHDqkkP=_UJ{CKNDV^`g1XUS2Sa-sto&i{rdGIbZU{`dEkGT2U5Hi{J&Oo8N`2L{C0{?wEyGAxe*cc_xI;SekpqPh>r_&@aqU+3fOPt zY|A2RnXulgj;g(OzHr%pRuocgd~mlLz!W1OW6qo`+%drdUnQNBzCW znf&JjXHe8_@|QB@B419m-A%PjDQXSxknq8TOyFJQpF zpRt+B$34s|*-y?^JblE*Ft5HAKTBY~UmN(5DsVc!kC;yvm^63Tr;4YZ0ZvX#ob{jm zK0mJi$Cd}sKfgbSkUF;f06&TGtfhcFDjffVLVP#Fk}j&s%WAZQzB=Qw^~+m*0>M>wM*ZHWpMEMF4}tu6 z$dT@>U`tAh{RQUvuT=f-4L@jv{Sg+X7j$W>w{*UqyV7b=Uf3{lWUXkA6cMre3M6?&yLtZ%C;hA2;v-#lfNe!{kKlx3xtxHqrgIhsl_H;pEI+qp_b;?Dlv; z?Grjq9{S}J@OxfvZmPi4tmEOof0@BBrTDi>_v{B#W_o;dkPjO-jv6H#|MNI;@75%R z+e$yFT`j2d$L`S%o53YPU!Q(TyGT9bLT_%M`@TGwJ!R4OEgjK^O-*vvq3rAH>o~4! z-TK)_IdS3e$G^LEC`eeUR>?GNGQHUY{x3T~`1M+zj;|XN8HRYC_;bwlycO0|rt1qr zuS*JzIG@trO|T(eZq|i8x3^2(HO!Vf~A13WVdw2JY_{ zZ&9D??mY+oFaG1F!^bVMx|BPwJZG(Cp1bq(#N`LVMEfG))fuqwRe{`X*@+_93t^?j zkPl$~X8mQ+UzsyEK~QUM%SJh5esNmHpQ~YoDK2@Z>mg5ge1XzpwKlI}uKfF?lc7&n zatwohR!D^(_y7Nsz59>$eg^b8R5sD)(0{*s*#E2G(cmwbr(r@Z1O5+ig~wO2V1LgP z=DEW~GvA>6Eimr!PaI4+GUg>MGb_s(`{4UKuAchxr=$LPbu08!{42kGSs34}>nt=o zrog{WP4B7|)a-59!&;`*sa2Mi1_spXW`4LJw`iWo|D#5Ze3k zVcxR!eXo!Z{Ogi`_F)d&EX<2nJ)WBhAN~6CS9buU@Y#{Y4N{1L6pkYr&> zg8~`hI1>5zS7nXW{I5T+eJ3~zy z_wVW?I6SGzSiNggFTscH9%Ux}5q!kyW(x`man|R3{tKU}RiC?Xp8miG23VtvERX6gMWsA11!$|{k6 z#MoV#ut$tP_%W-JT8!zn0RaNDz!ZK)F=>$r`OB2QtzUTXd;N(2vE*aIfIq!L zUE@D#3*KP~r~S{+1;fHEx1wUpC z$JLIXUgR^~HDwQk+Rl>ZIRL;SAYwP(qCL%hzceJ?YM;0iv}^v%`2HsPkf__)lG z>~h|}=ALx_3_0J{em#$@FSKek-52^(2=2_buoz!M`F~rIE4H`y!f8U+XLzg+kDR=h z;8o6YYyQoyI)ck_zsL2%-ypcc=7Ig4+D!1r&MD>t2Ust`3KOHQuBxgM79|dU8P8i} zbE)idxmUP(-~I?oDl^uN2@DhY8Tki?HD7Pa>h4{)2=*4@g?i%u2#a9P;J?E>_@8BE zPBN^5EGnl%FRsUq5?cxnaSzui77^GE*v$KvlF`re37Z(7j0{t>x)z`q@hZp zJFwO1W2!7JE++fws;$VB+*@6J-#_&lD#8BjY`h0l}ErI1^Yw_OCMqbR1C8% z!=fqk3sL&HU z!^!etVH0)`4Eu%0SbG=23(Q*0{trK-_Ckft#a%4-Qh6~2{J*2l(@xfpc6yADJh|bs zIq@H~95<=0I&q zrOm|#1dO5jRnD{OoSg12$@(MCGL64~O}#M1S}`w8=6}VmRjzyZY1D$>fB)q+8Ot}X z?jm?vlFn2UUo!75ZdEhl_*+ly&Dqq6l%ed6s zo_=yag~`R9{k;Drg5^mJUl~?U`D>c9z$zP4NAF7%Y}k4F0>RT} zR#-J7!h8w7!ZVs>{k@d`q5qA1YA&@$KF-#e^YWZjUg>xj8?&Qwrx@Sw+f;h~GWb6^ z@xlc`r^%EX9P&fFh2iRh==+UWQe6-dT=xh9wYyD<+ zaPF@CXOJ)V>Sz9Ws{(E`^5t`dDeymiEsP<c--dSeczf1C` zLwSqlrQUA3|HI?kS$|H_r>mepn^SYCye>0m^^)+=7 zAL~o<2$jy7uVRAqR$@25030n4kYepYJwIgFhhFJHr3_{iWi*;8kM0CLv+MfPIMiK~d`e*bnzV zuOCpXpBb9}5Y*?}WRI!jN0EPPC@wA~`w8|qYcPO+2jhQ7vUR59Gu>@M!h*4VYlGHq z<1Nah>^tv+|KaU3Ooh#&>Hk&NQF8rCr-Q|L0F?h1Ww^N6$;py_gnb>V{@r6_{S~X% zTwYU5?R6dB#(B(>w-b7-sfkeO`%O?m9kN0pjH4RY&k6v=X7#2B(zMqICp{BGPDgSWTR>n5emzD}lmK^zj z?<1U||A73YI{MYXD2ps2Ny~&)-na+(fcS#ja2@`I7~lONeey%}`}LYX`B9$yACjlX znbv>3cXio;WB8s42`|Uqm+wb>M4lDpyP$*r?mG_kEXW`G*Hx4Kv@J<)8mLbj)X!Xg zJLa{gI)w8Uxp?gnn};heETQ^sbbhR9;linh$n{g>T^yzX(fz4+V!tOROZTg`Jx=mFZ1uMB;2mV+cprG+=ZYC4a*LS0Y(0^XUo0l)Yc8p-X^FZ{kGTJ)`K5S#y zKl~|FL2xC{u$_*!Hi8e@4n*JS6Da>VdF1c5H(nt0N~fDovi;@X2|j4Euwx&8;zNSd zv*kR}@rwz5-QK3%2?b0rmwmwa-FI`Sym9k7)4C0tXgvVWw`tNno-VS!EV_)XL&@g;34+a2UjkITf*$wb7n?Ae~)-t$bB&VY!5*#98LcYlb#AEZB6 zpIys*mp%DZ=+j3;`{I|susyi`9~}?y4eV@DCCb&k?!~_U_#szQYI}7N2UGapLE%5q#NR zX8iu^b~p(4{j=%NuVWft`z668*=5G&uItwbMtsm57k7`!1JR%N53Kuw(5EH2jJ^HH zw-4U0+;%a#U+DXqU^(n@bNG`_5?qxbH{H4Om%k9a5b=U14F+oeuRy-9{oF~a@3*Bh znu!e<@IQF}nrt0^?(MTSf~O^U*`6E+eP22ggOFYUPv|Uue?rtGs{bqOZP97Hd-oFh zRA-y9BUSQmkYC{@;lMpYuP-trt?tUB@2}PAWfK$a^zYU2IvtKtttIQLGun;iW!I?u zDYSaoZ$7MVJkNmnGj)b4aH`1vV*iKX>iAwC_kM^P9N@htG6r9(!yn<^Ok!ij&g2uG9S;utdkFB-&|x%g5PGTv%inwTCa++Kk~< z6&2)udep}xC#Tp6)|r}E-yp;n2l>Sb|J3!(cUZHO}!G*k*-Me@58G;XI z7qC5dvgqHZu(pM)*}0v@C)%UiR3Gl$OXWqSo#8sZw#}l~=M_ZXxg+tb4*3sD+OnmD zt}|(MyiDgMSkE`HJ1WD>1S^rR95Kn;P4Mf^CSzI-*m>~zk?+(51(p;N9I?c2=Dn;e z%Fkgl%h{a#-%$I(2l2yz;+N~l`WLemahX|PUnjU}dR)ZayLVrO{vW&Tj$za@PA%r0 zY#1r%Uf#b&=j%T`e!gMoBZF99DE2=K%#7cu zzE>$YR2oj0Pziqn%#V33{@{Peqm&2t|35kw<8dOt4)8x3N>Se}pJY*tvkv%YnT`kF zPXg0-Y+gDuZ6JU9@VeQx%=0%d<*nWqIv}6dB_f^!{N|OK!T63a$p1yQRPO7Jd!Li< zJq`Lnh5~qkYcuAv!cwWewa7f5ebijrK?lcUe@vCsB&id)vpN=B;H)NF0=-#_` z9l>&|oBe)XNtzlM#sBVY15CcesG@5 zA||!^vTdxsBLwf;Znp^u=i)x~Tf$VMUN`U8bz=mzQy0wySJz}{l_|FDRAH5<|1)81 zvh4d`U8MPWeNr=vZO;T}$Zm5f6Cs$`yLQgQ*M` z5wmY6p@(HaKW{!q?b*wA7q>J&KZnqZ_*gc*XN*6=K9CQmK08VC@nSr%8w^e8p=MV| zPu3mEpUtsts+b9q|GvnnRVNOKSIY5xH@mD>a(y-G1u;H=`U8IPF814RcT!x4_mSFu z?0K@jf_EAFZbZIA@GvK9dabXYKED|MpEGA2wU^|uSHi>4A2=va4q7k9Ha1H6hSrSB z_Hm&HJ@w$joY z1TS)?@;{BLt402RaUuU>NYe7(eEaRTJdpV?d}=^{{co7h^q_wH?}owOYZrk32W)aN z9=FFYO|;jC#kIt)-X68>{yZ7EVVX&-_nHlTe=cs)$+)Mcn^Dh=fmFiykpul~D^Nd= zfN+giFDl-v3iiCS?(45feCJrUoBQRm^kd}vPIc-{ksKFDa9V~J_PG?F`!a7n7g%>U zfzYQV6~rn7{i(g~zaTumI`?yGzed0xm^(KmnXGq0Unbfm`&ZP*3{y@0U$@o8H8ez0 zeue(kRaaNhcz?Og!A_jmNbQdWu%D~Hl=6Y$No8E3Ek2w4UIFiBi)$L_dL19D*@S{Y zLa#(T5bB)rzrxfO^7XxY)E-#?|9)uwlV5zB3jKAn$@Om72e+Tghfyn^TN?Cz&@7iS6CRV(EK4_eE(_UpGOzcI*%tlO}T{+SvAh^@Q%@WZ3;%V`2zCns?BabLPSq z1Ru$sV(shSMc>~_=RvdEWoZ)LVw6qHaBYVzm0i91dd6|)&96exzkCGoBb1B5zd!z2 z;?FOt#Q5IEQBwZ#uvu>EZ0pKB&SY-?xX18MVtyI^#FICfD}S2QrU>`Je*T3$@gL3} zK)mGlmu9TUCK{Yu)oXeYB=(J1B(i+rLPP0d$(qH z#70I|HWK>kY>zSVjKm-9vGdhuyKj34{fezEWNi3Es*kNp4%xgtjeUe(jo-^zChb2t zuhq1*wNd-OEZV~+EL=RFtS?9XOL4HIuctfPv_e-mwLc227A~s65JlEsfjzwZ*BLy) z71jc-rRCTOf}zjZ+VD!cf8kuKyZieu5PA{#DKYWR9fG}VTS!*pSel=!ur;Y38#OA1 z(BY3LG0*2W1gFA(uBnft{N&`@RPB6vI-wu5Tet(o*Qh^z*`{Ufxl($BiF~mzBp~}r}0GbdA~iENafd}B%Z%^v5d-Fkv~gn^6ruAE3FDPH(mO@ z_ULw1WTeFZFCu?AapJ^LWc@1W|Jv}d4+(xIztX;=QOYMCM!y9F1f}*T;XqF0dN=4eeoJ!uU^a2TpXzuVR1t`UcVccggG%aV8h_m`fij^M^iK z$Tz7BQ4L5Zi}rxrAl94xBi0|?xA!+4bcyyp0;+;K+Z!#9Sycu3nPN|G7nX|l`Yh%k z?-KjdIkA58OV{uwk?ueP?s3L1JMyz-*IFTeUwP$~-wF(h?~STJC;WZ1f75vIbky(d z8}j|DGAeD$(j&dMCZzh)Vmih=!v?!(K~h6y|9{;x{Xn@dU> zN(ntYsocD5`TLZgME#YC4N2%;ql=xt_!l%j=Cyjb(i5eWUz?*DHhIozYX9Qz4~eR8 zpz^5*`qDGmK=1Fv%OZsDwo-nLGaq2L?b=2Ci85o8a&LF{74rL#kD5DovS@!m8OLZI zyCBu~`NYe(35F;df9S9}m~X%R<{Y`c67l|evA=%M9uGAas8+8|O(Xb{-4Rk)BI)O9 zr`I?qMXGn;ZCcG2jZsvdU9!(NwJcw@j9l+EHvN_T0e?lkyXWj$La&6r&%Pt&15qz& zln2z(@3X?j8@oHNFDC037|S&MZM_1)AEz_yh#lzX9DM%Pyb9atlTT22uFUsIGCW>Q zzekl*VQOlE{#Uz(cQy?l7Ycs0@agE+zCUkds>tsv4jmHqAn=5Lm9RHtio!Z_e=&Yk z-PwcsZ;|S!)tj_z?(N&Th#z=`{Lh~k<5hEJpZ0ywzy0rKzyD{S7x_NK`!*GcZ)G6= zzRGuzsP9+s9#zNnz8xeVS7BmUE^17zI8O@wUlzkmMa1);l+@kSUCip*GWmcw|7G!v z88ZduqqV`UYgG#Idx-O22EXq%^wUI!g+&rPI)92&xGvR`znJZ`Hg_GR_U|*q-%j+$Ic?|;R{nEU(BVME`~2UeK9#vOP2z9%@&T)?Gg zTt7yzi)&I|`tnO^ABQJtHSyU)`+pdXdGcc;$$DLq7XHRW>Te&)uxJt!GpYT8cms=g zRtZ_JFuRzv+zhJ!k>3nKJ3=6#qu!V8?L9~Bk5I(#D~HtQHrrAoFfX8stUnOl#QKdy z{FnTFR*QP=+V{p0T;+^2^_=aY{>wqsPd7C===bx5z0q28kJk8@d=kATI7F6Ru<+B{ZSQ& z|MU^)=UgH6LxKOfzP=u6pTNITWhUb zN#WwBV2IRr)IsaLH`tP>>JoEiy-(7vF>>2$139r7~iutk*nL!mOzTYu5^_R)} z55@aqM(^KBa1}2%jfpyyK<05&nh&U+TeRqk!1({};o{#V`rv*D7mXn6S2*2VkZ%y> zS7rW!q)%?$swebq*`d}uZS8dbrsZk5%+#)CLT~1@@TY5Z1czDU*x+C(-;Djux$B~+ zyg3wK!B5z6>J(W&HOZnmcLwvX2KQT~&BLaoNb$Nd#J4b?i`t8B`1iT(%`UROBihA{ ziLAdxuwT56-!x0=_eDPo8!(2Wf6qbGx81mPi}Ggy>rpMs&)G$;_leiCEgh&|8hoB| zj#0n;_O9Io`#3GAcaZw^E@v|lIM-TE=zj62|1BwXaR|gQU+c|L}wP*167$2ED`B8HHwxm!K@@I1i zK4@lG^gG%KzJz>3hI4T-!DEY3jjz7;N*=-6vMX&L$t8PXnlseOJpGt2p&xcmak@Nd z^!cVFxmg^~=0N{&;iNN#lf?ZwE75Kj^-UoD^CI3qFmG(|eXcNjS>5}o8RUK)Mn-+6 zvtfsj(4_d(<-?S77G~bt`eB%tW)XE?1$R-~-7kD5FzvX%B3ussPf4`>kE;)Wz5n}5 zt#3Ud+WRo~F@H{-6FbtvT#DAJWL(X4K^Jpz_TEan*dKfMyOUI3i1z6}|FQ2pd7o8~ zuR>!@nXr_Ri}mn9PcPbx#aqdTAAa-QL~y!|NUXRl4m^G#jL2%U$2)RFWBec!Rb zI~%3?A1CsmKivZRdGLD{A^z~>#KuN~Q9q!uC+E}eb2QJz-MHRC^E>FD;1E8c@_%|Z z;z2e!5 z2meR1WPL|8qpt0e>^qUZ`e-_Re%}Z!^u5#{s$<)f)pvd(zbVc$%X;4cd5n37bAC|& z5BLkO$n~NO5$)&yzw7^1m?w#Tn~DK{U(D|vS71D~icx^SYqxiu5msgT1>tXLF=~}( z`J+e4`xNaZMqW(!^8$QtMI`joq5=MI)0h?Cs+Et>by`spsv1#&>w%JEPBhMA7X>vx3>@3W7&yMJQPT< z+|;CceDD5q1Xn;GX|7o+z}t zjGxYu>V=wZI#WbLCAE)ryq8_Kc{9xyRzUxkmYz64?kCnGM2Y$5!RIf8enk5#%|CdJ zTJ>Vo*burK_P{4A?*5YC!+8wr9~4RXd!f_Ae)-Z%)Zbr#eB^`)`*zUv&H_!!ka~MB z^f%@WQvNIB=W{Ms6SY5N;ODMmt@L?i=BAK_J$vZ)y8phaDSyk6AMo|P+edy6+!@l_ zdvYzoQ^C&{`}$rZ*lm@W8vLdFiXZBui;vB0CUkw$<>-h8gO1>$3`P7aciyMpzcM?O z%gGh(f7I`sDf~Vb{G2jxUOegdJjA+`U+uZqO|FOZRL>UUS%dFe?dW?tYxacyFwfKN#ED!$v-TEew;lgVQ}85{Bf|v0DseZ!hw1gv7Yc{uXz4b z3G&_Z{twg>49K4$=fA8H=R3b94;SNe`1Aj!URw0`i@-wU?-8c>%wjNqve2kycJKZZ zecxA%s3(~iL*;t~=#@L}((fCG{ka_t8Dc!Z!}u}H#xf@B&ilJpG0&e~@a)PL+Xw86 z(X5D(PE2%oGW z*I%?^{#L!DznhUi%N>%R7xzEIeD@o&9`Sm%%h{Yta1s0oj1N3S@FDciU%M#v2gq#& zY}&GAzb5n+Bcn+_cC3V8H|J5^yVlxDurJ~vllDpcRF!SPyn-B>Z`2`Q5In?xslxk7 zZ7!tu^V-}j7m0xP;QRAhWn5cl7ybPM_@38urTQN)?l&p2fqs7;`TCO^cS`ckl7CfY=dCT=_@9#N)3e)c@E@o>vcSp4$HYvc z@~#r|TXK53cL__+DBi&4Jz_5lc`Y!Ym&B)5@{BqK1_8NW$r73Wsq;0oo&^2IV*gMg zp_j8VMp2+(2=+s~r@aB&^Q~UR4BTI5DhTOm>k$N|LY!avWh$#>5FUMgu%0k5Ukq~G>VI#00QUTb1vAzS^A7OaDafPt&}fU| z%Sb$5iaje6^5FOS);~P#9-t?Ts1@;tkun{2FXRK}(P`GoMvjw-^C>CTrqrxgH7ctW@kD^&G^4ILS2?>91{y(o?p0j1tQvX);%bq&_Z)L)iCV403W3Ean zP&q6|R*UnaF+cNRIiBa#-O35V%^7l0_dB6qIPO}{K)*b&9`>?(bv>2u9f;Q&>ZN@0 zVd($4b4P}d_Y+jgGJSQc3MlQCaspq_t~EtXXTE}uu}59M3f&%Urzd9f%% z7oV4#L;24)o{0|*nlO>9ugxnk?&|6Jg5XMfne|uwy>vgup+9!Rh7Hu7D?oe)=GSSm zJ{0rp8ftb=Cb-ZH{>;s#{V#6R!^JIrjoPONjBO#?q8jM_Mm$XuSh8&!xxNMY@ztwQ z&osE-5l>_d!GR?N7h=9g=gnKx{;t40ot+b<{FYA=!`|+d_N!R`UO&Wsal>8>^q1n9 ziU>y2m40kBxj*7t>M?ciP?L+r+lBSsLqKHh@*K1p6I06nZeBaYCg@~D@% z-WWviN~?}dxm!==MOp^K!n|lC^wG{(_QMUkJOod5dac2w*XaJR7I|&Kk<$CGL_JD= zem?zshAnX$M@*9J%j0iU@T+UP(#ie85ifjXJ#@Mz?dzWudi|HxPu z^W=n}8bOVCqvOrPUg&d_Yo#C`?qGbzF-M(oY*{(ts|h%ag?VUnNs(5w=96PHbj?Hoy~XEWXH)(yDe^JP{Qc?ok%M)%NcQc*46m)dth}7iec&IDu9oCYXDY*4Kc|k9 z*X+E`vv|#ccD?*4+p`IcW&RN_Cr&&i(OqamEKPmp=H1O z?u%}6Ke7IO{YTO~3!nIc=!Wfv6@;!weSb-FD$U<_L^r7>Pu@uF5%9m-V36tq5RYQ3 z-jwu_-h_C_#F3-O{X~D?H{6HT8~7mK;%-l+{sgP`s3N+gd;#PIJEsc%=iv7%gM7$J zne!RJ<d_{LdqyLU1wfP&u=Z0T_HfC)=dFc5nAs^dClSy|;6oSRZ&A1K^3ioPqoj{I3*2 z-8B4(P32d{6lob}R^lA7o=*Ro+c0Qv|K06>(H;r>ey!@=HxSRP44XinKP{f;0|TSB z3F@qXj~#DbUW|I&*%){s)XFW4uZj`>zMQW8F=YL8bAhrF10o6bHF;EZQQ?mh9EQI? zD@&4>+>-h1(E1)_zLU>vllpI4V%t^Q`+Lri>lYV!k*_K)CRqHwtB32KAb6US<#KyQ z)BV6Xz0tR_GO4|ee4|mQm-_dQApY0a*G0b{;`8jSi3VzKBi_wU*t&)8_X^O5&cAL# zK9S?3d@<_dS$kp@-7jMO9{15Z?~vyc`MVeT(fEhR|EcX#yuCg8qAKBfNr|*x%kKDS z@-2c3asShozNGJ42m57r$vqUqlH|L_oG3*fQ;bqnI2`%5Pu-f z?ov&fv~M4whoN2q@!mFqsKNl*|kin?}oj_ z?rVJieL}y6`p>N~l7DqA`!a7m+C_iwnWO`%vqR>kccQ-;k58Z9ny-r(`n^L_tzr6 zG2+zRU&0>IG7qZ)YMgB$?^f5<2n>d;yA)5P#cN@|%*qm`_-2anJ};iHuCA`ft#OsQTJ{ih)X#liG@EkysV;d(9A2c33rbX#uT zugU#HevgWh^e7t|3{>7#p#Bg3l8dZIeW_;OKB?d368hgE z-e|mC%=gdQw5f-zPlf(Hefsn{f;)@_?5R_?3JFd{{(sY!{d)-(?fsBPLP7}EnRpGx z9gHTp9r?iAo}5I2k)Ko77nex!2;>Wnrq|N-)0~W^ufCM>8*6rOb;I{=BG(r}UO|83 z6W{muKhBVw`DXWOg2jGinL>98%$!6!=E<*1 zeJri)kX6fsm7bU}o|*o>{<;6}?Emx37Ux$Rd&@-o{)JZ-<9wDsuKlMOzY7@_FV^4e zSWoJ8UqrkjD>W5=59;$VUrXfwf&yv2)*|d*r1PkL*q-gw2t6IGU7x{VO1j(MggnszUOew!m zZgen>8$YA`deEjf9qr;ca(!4lqlP&_<<%wR&m5VVbpLf2UB+Mh{wH>_UhKb5!N5I& zotURxckR|1g1ttEX6*1_s=q~le$$x?`w3lcY9Bp1Lgyw}ln=9J&6e(u^$73N>wRHg z2tp&}myTFQ9o2w&oP+!mhkCr-Jw5pZ7eT*|LW3N^ak*7V^XAQ?-%B4?5nEf^+e_#R zA@8eqN&bBY@-KB!k!6G)9^a;2y{3W2M>-IHEw0%o5W1KTyq9a?37%?o8^deg?jiWH zt({G|Ak~)~u{TGL8nK@4r@HJzw(kD#?vnK{I?Ii1;{3qDzi$!vwfTmWfAn9H%46I( zm5)a<+PU7}EPa)%uQ18khN#9<1g|s~YIi-gJB8rI)&k|3bBJ%NT@QW91V16>3)9on zvj*l-;XEVwbA$cEVmx5@;W)(06B7|1QLlLJOGW6oXTWb6&eW{Gx4wVy{;>Z;X2Slz z4Eb|nMc4$?-&{;SzGJyKKO5t7*NOExO^64I{W}&*GtR5xG8K(&!D2k4v~&g47Yo=X z)rb)z>He*?6{yziKSTLYh8(h_sY`#NN6W_Q#SUL$x0`Zc`Xa=Jf;K_7LWdz#Ld ztI5#wVUHvI% z2t5q;oI?amCFmLy}*P2=gd-3{jM;@vNtXtYa#1>(7!VI$;mMUPk}%2!QKxx6D;}{7lzF9 zo`Um-Ms1Ypc~@rmBt4{`97WdqV%~Uf@0XMx4jEml#3A*P2W>jOprD4 zc~r=GLb|)ZrSb>;y(;j7g4}-^&Lil#cgI0+p|zd6(=W^=xY{l^?U*3t`>xuZR^?NB zza{i%pzk|7rTU#quz!jR3#q;NqBG81T-*{z)>lG5uRbcp|KzMz$?R@~fVyx09Oksj z{?GPP`^SS5Byl{W4E(Q{bSC(U$R9W^EfMj)Oa}9$7bi8Tu5}ca<9xJ;*YACtq&G3l zxy=thDcS=lpn0Ma@&Vf;=RyAbdt)&lDc0MH{q{KC8TvjK{{9>1SE4@Qq}V@u-e)@F zqe4G~mpvL886l{L|J%cF>{wn7`LOfD4eQAJ@NxyJWpigI6I^R|tM1(UB7xvazChL1 z)zwF^SZ}wcp+1b@R?L4=6iV^g3fP-Vl21~7;ur5xA)ij|!`CxbSUp`*{b>O5|7iE2 z{NMZnuS>VvXgr{Tk2QMUlkDv<#MjPkmi!CIJGSie)2GSv9JaC=)ZY{nd=UO-U5!)^ zUk-a|_k|1R2wjhPcmb=ea|jN@yfA;6RG%2;ME&>>{zpBey4bgJ5?Sx&T&hiH&QW>b zHMWPWa=Duc-D|XH0#Hyyup9P0pYz^(1dHeI6c*!roWcF+W}8Arj~+LUV9fL6<~y%9 z5bR_2pdMiB+XPRGXEYd>FqYthRtMA5BmI32@bknGJKrJnMb0>@@}XdAk6l82K>so+ z-dARnt2dd=X0qNVsXZF=S}6aow7H`Lwn+09tR;! zXV#u&KTB{6@>S?Rruso)vM}p+L{WLZkS|jmT`uK|3-JBc@0d_2s2vYgwH3cA+Q-Rf zHiZbQ6nX~}pslpVafRh=4ngeEvmbur{okQ?6TptyK`oBT?>!{D-S!9nO@ zP6zm3vOn+phlsBX{{1@m_p=g{za+RE(?nWI>-Q1768akUI*m^vd!o6}FU33L5zQgR zb#--QeJXcR6)|={mCq|}IxcErJ>~xjdn~RuN09Z!Z@8_IfzrI)v85LO97mI!&oxRzp>dq|J^Fk) z)PKIay^1~`&NE~)&=5*~uh8gGy?=H${rWLJvp3B=UKQ z1dHFVxZsaEVNW7XdS;lbsDIiTgZHUs9uoTvKZZVSb2zd@`&s_jg888lTKEJ0#poY= z-|+K0`Z7$D5YIn-kU#(4SnS_jFk|zjfqGuC-Z8;#YV*l0Kz>ANX>KVHbcVI^Ki&?W z3V!tu3PSwS@#gupfiI(f6#mPnw^2W3VSE^z)#Op3{EogKIg5Iof06vf6?~I&Syxx5 z^uDyr#I1XK35GqOnbaul-%8ZKo)hhlLH<~Pc^GH!VE)G-?#y<>ACu;DF0d9xHylg< z4WY+@|IeMld0m6+kuTTmX>6qOAgD;k9=mb(GeQ^hUnQ<43&E9`=YQ>*>9@e#8CMd`OfH~3Hwvx30=9s!<_Dw|DWBxm%i^qkk79y{yEjhzNi<87+XpGf6P-+tz3Edb@F?iHksxZNz(V0 zo7^Fdjbnoe-N)?ajti&G6I>CiWp7?RM6XvC$*pWzF_o_?5buD#I!V@J|7tdFmGT2C z#du}PXLLUl@;dfzWev3-t853@p7N4(a(%JQqr`FLRNj}vUh7*ENabaf&C9u)+y5fQ z&u%lppAJjXBL9W?i)vr%k(ROJMEn1`Gu5GHrvHBE{QAE)zyHwv1!m+oGNc4`5ey^q z4}v{2{Nlr<2a>jd-*-%q;;Yl0Ue4b2Cf#4t(BI#GLDGj)!2jzvOs4XGo3)us5&GAX z_lNpcRf;{A%7bmdF)>@eAoPzBZ#vU0=}U3Go+s}YNrXP5r~v(TQhvQEwMl#P<`t?x zrJI<>ayuM{d8-sR%T!NARQQy6Bt%KkS$e(i; zQm8#D_LCsqPM>d)RcmZMR(FG}FE?Hc>FBugCxUT)ks9MFssG`G|6f^&e)hrN*V|mG zsD>SP2^Q-CkNy1TGYKvj=Te2OU!Op5@w%qbg~gZY`h|$srghfR?=9x%A{%b~nykNK zm#fdb_deC{mC;Qhr_bG9Md+}Hc$q@#*FnBBWP7;O?LOTy z_?vG;1dR{HAwKf^-@m<{&=39 z3QJvzwdfZd?R2TKdQiW?@Hij&{=A^fS&9GY`Jn^z#%65Bw7mQM1elMRb?=wK-{|0P zBqY2x>xcOJhv)(mjd;NNWavxq`-t_z_+ypx?)ch=#cOeX^`noH_fcglFh2g&CaRyW zAU`u_wxqA!MhCNOSw7WgRkkvfZcOA3a(y%3%q{Ql?I(B&>^~e|LEqYaZX zL9idp07$FlTm#op0DK}B;~gYZ5|cE4f$mKLUEoz%|~w${37Oi=b)gM zVCWOgy!|nB|M_7)WmaacozUfMn`$lo5sdhr8pm18A{h0_A=u9+2yQ{Y=^yt=^TEXW zo{EYJ8ZV92IFv`br1_aT$YWpM6)VW~=vPoR^A>8a7lgQ&h}ueOA1tt0Lc&mhMAlbW z=Nqdllv;uhBA>CaK8ot&O4Q%nX>+s@`lVPIJ9hJy&j}XijRp)K)@S&s(%WtZK@z{Odwgm!pWQOHq?$KIAX~~jIZ!g|G*I6q{Qx}`#CJm z%SAT!(Ea(kjZtqiR1WqBF4_4k)%ygg8V3-cWH z`5%2Z{9(Q0u-T$KbtBMqoM}@S^4j%s@PA_R?1baY^M5gPgnl|859TJrz7XS;ZrZQ& zL;PQh{=Q_Kr^Vxb2nQqxwP`*|pG=%DFJm9All0Gv`1`tZbE!Ra#X4Wpc~p|OKB$-2 z9|LthC_j&2KIdmW?bIHw;Ca)$Ooxlmix6+l>2$jZM!r=Qu%_Sey)QolmkZ%`h&bj^IM{4<}#fr}`-j`hUD`%ufm35B2HYz2Dv>xX60I7+F$FaXH>6 z-d`@E7r=i?%9HY$=;u)<4LL7Utp7Q2LW+mAVEvj>DPPa1T?}KHMg3t^Lok~*N%ev{ z@cXvcC3{$b^Gb8mJE?q*;~WgKWmH}r!u!Ge04fhEa310A+gY@JbE;FvS61$zbYJvm zb#^+^$lp_G*Kv(e{?`d!hc<6&~sXRt} zDWtwe%CE{z^VyMmtINstVm)+tRTcHuuf*!u`KdN)FE*RJ#shtQbiZtKGXC>0z=&M$ z_fj)ge|;C#?{!7x*04Y~m5;rFg&!_=n%^#{8yL zj34TIwZr0_Y{vBrYl2wc3x8kqx5fU#2l;VOzr&**oTtM?uMZeGj_JyPKCVannQ;Yt ziG0C}NfssQUF;9~4+2w^7Td5k*e?$LMM-3sz&vL%Y*HM52KqZ;j{OJa0p!JBpQoks zaftc;708E_1WNYpLYzNk%~-yiybsjNs*59sz7LtYzgwC&b1kDOL=iOM6j{HzsL+h@ z+*DuSJWFF&PGrsM6j1vC^#WXBVOJ`-ekw2H>|Z2# z2tEvXuw|4~A9oP(=rq2$nb1RddBi8e&z>gO2lXwf4ynEr`C|6xpJ2YkpuB7c|2v&| zL+pbl)vtf0WC;DfKCj$IaGT1-%uaJ85-jR-Pg%{|1S=pv^17sc733?}9EXGYA01kY zGPCEkrDT1D4gNr6P!Pqihn=ypz66Ik%c7&A&<`^ByvYA4(>i-<368TJFt%KOc_G10 z8|E3-O8!q6>U(2i_R;4T-{0e74fOt%h_7Pa&^dCwLU&OcHb$EF1N%&^sNGI~uQ}GE z9KJ^Cw>TKfXfiYZLjV32*qf7LBzc4LOL#@y-1X%CwMAj^VWq3P2rkaoYBCd3<`P^4 z`{c8`JLunA1%Iffu9n&l3ox&_xBu2_WPO}D)z~Q9Due$YaKtryoER@}vN$pyLpYJyl`8=_I{wf$KBS-;iF5`Y-1BW<$C=y2=TEVQ$I~&L_D)k8f?D=>KCJ zAC>o&*#Bs!r1}H#6K?V*nDc}CAuPUtO+PC2_rSknz7Tro`t%}3BM+4Pfx0(Z_|Gm# z@&NNTG%1AIrsq<2Q)`|X|)QrXSe%tJx=;k^}{wzQ|VQlyl zl)pv&n4Ug!CV3t`>JL#*Nc~BCKXseKLgk4A_P)QrRPX9yp-L zUxmh{dT0H}4+w@lU@)KWEWrx+Utb8fsD3Mi{ztu2I-%=Lo)9k%D5MzIr{qfZN2L|> zzwnRHMSnPGYQiaki*R0AxFLq}pVQXNy<5BgG@m|4y^6H5vKA`;NMZE)~l;$aTjb*ahb}!u@UaVg+q&^h+Tg*$5=B@h7 z)R`9EI8ERGkqpKZ87QanRGF_A&u5-Pe%}p$qoS&p`gaFyP0;s4>Zedo;OOqB_GGhB z=ilBYop0J6?bd|u+1Dp97Wn&xlf?Kr{QbY-SJ?B9t-<^eoE@}fwjowj3q6@ zqYMfxY({;6&%5^L4V5+vv#Td%?kXnpFJin9^h;tx>R0X zhP{(=p`XfU(LZ;sdY9T?VM+7Zl6uL0507tBq5YQnPr8T#RZQP&uafsYBj2H6EaGR>f0U!YG-TIp${!;Czx2|t=>CSjS7F?ZKe?Yy=VfDG!21~F zAJMCB+=0rHOh`uo0mvR;mOJK7<(6C8^3E?{rc{XYfr|AWT57D7J+ z{nva{n#X~DR^!O%D)$puf*}1^zYa6 z7Inm!Kq?Pfta5X2KIUf*zEAj1A)RTR^m~NzTF%vc-~ge^(a)Tfnx02+IpY5r*QI<~ zA>s?}x*Ga^3X!kr$(81VVxB?Bm@$F$d3{V;|KUM(9&$g?{=<2%H3T2zWv1W;$)2im zx^ezvB=tYHWuQW*EoT{7FZvG;8EWnltdBr^`oiY@1S>F~%H1Z#Q^FB%xO;a8-LD5Z z>@SNHuPH?SC8D-=2hP74md%%fb0O?fQJV0rD2|U@qqK55xm1DscTkJOJk>i1k3z5Krw* z>4(C2=NHM zUGl$+>^k&|ET{Xw2=l&g-TLGNSugVElTS+WH5KwJZ^*pi7SxxZJ-m{v=Zy!H7iw2i z{!@gMsRd!#JVGxtHmTqaQ-4~#e<}{(CiHUfzrQ$-neea4tIEZI9D@Dgn?f*uq?F(| z-or!%OYh4U^Sg7eN%lp#RnFe&N~iK#{2s-{H!hRw+eLXBI);8vr;Ul&yuX3UQ-#%K z>gqasfvk7)ZK_-ZkO}rNBR&@;{rywGuiY5vN$3Zowd%4mY2EJTsOq_2y$j@Ui|0y@i*^1v++;u(V zngV)aZkKpo59$NHr18UndZ3XinOGm?sl9%UypMyZM~kSF;sbtsn|4`Gdl#X1#LCo> zckz3J`wjUx=1gu6rTd`1wY*NC{?j45R^vZO%2!pPzoX3+K)+8|QX6~gRyVaLe9RY( zF+$%Ya{mSB$31aF>POIKQLxnMn1s=>LDW^Fzvi;17+b8ued;f4|tjg7_WfFOfe-44HQ< z;>4WWx5;`D51mgb>i6{Y94cQSuhqU`GAa+txu%f)`}c2_u5Z$||M|_~6l1?~L;5xJ zCWq?6xeGmneg*ZuL!U3yjCzhC&*z&IXO4<2r~Z)w`HW@Dq=_PyHDk;(u*TO*Ee`<^%5C zi@!&nzXJYPOR5ylZ4YrMV+7$_LN8<;Apu^gKe`a_7vivn(B14s73y`Uzv<+fl?_oP z)L)Ua4(7=xqv-Qgum`kXUEl@RiJRX8!pDUy4YNYRh`r-%-+#z&* z63(k=mFkDfF>g9zcjHb%SD4yV+rr0Ed&CKSk-ALESBUepCr53i`=#70Gu35C{r^rY zW6E{3zfA6@Gg;X8-t*A?E9MIt8tRV``aynvNCP$~#Wo%0|D9+hSk#YQoznX#!u6#? z{ObXIF-Gc7Y&Kq0rna|x$@QoYX6iA3OTq=JbcYmg7yJJv4LQH38T{Rym`LrjW=_sl zCP3c|%AYvMYs6RS`-l7t`S+e4`aY`gyeIIFtk)qwj&Z{42|k2;hTD6c{(WIdI&*%$ zbRIz%{KG}Rni)sd^QfPz^VX<T4eotdi;rimVs8KH)lzN3w_~rzA`H;Q{{lm(F*C zep2`MCR6?F#5{yG4SiI9G#f2UcfXKAeoxLh7@<+hXE;Ic$&uJtC*bi{ud%Y%|b!Z9;S8c#;PY)Ef|m&^~aVn3)e(vA-@Ov`!#Vqz<@lE`1gnK zKt7@P9dsuQ`1d0Q@N@9S2Ia~9e!umbMfnr91K;fEB@&6fxN=J z#7@-HjpxMp1m=4(%#Aw9e@o@ODvZ0M`(F-unrV^zP1r}uk~Izc$op`!&8TnLPwl-H z786A5iFCeZ5$xUiFloP~0w>Ov=C2(@{q+PfKRLLci}?9$|E8Yn1dIK%QInTax~T7Q z{6{mPJJc>!ZA}gRK4N@OCQ~Q~9r1Uahw)uaFzCjkT_02WO7thh#r^sgp%=p5t>-vO zzhd|DHPPnXgbx27@jR(tsS5cmsDJvtknarnLf98W*6Si%+KAeI`hG-tmg8{O5jysx z+U5P7mSD`I)>wx$qA0kOOf)oPz3HvsRn@_bhc1x4UgOZnFN!$D#818r$)3e{g;j zaEIdb8}=*3_=!(G%i3WtP!t^5&gl!a{~bE=#51hD5c$9=27mAkgMlybcN)&+EqXpm z%BFJv2YW@7>|*b`y{vyG?4gybv-tU-?MFOK`M`=?CCK+1&*d#0^sily*dy|RpAo&g z_<6}td6Dr|Cizke{de~IkF@N2^!~cK+TUB`?k^HwPbr&EWTRhH zd&$mKu4?@=5h|xHz1x@nD?a=m_XqYRSszk<&-{B2l9=z`tjr140e_RTi*pZ>Q{Vm2 zIwS|@fi!Buqr{cC?3Y9#pI5rzQUUwr!~JuF{i`EYvZnB*&ag`BulZ{zz*{R5Meu9va?F|HE3`sUjlA9M;Yvh5LnLLJ5bW&P#YpB~ZVZ<_)8UFoP%)vVnI^Iec? z@^_{Fa-+&k@+Z!>;=v>F0Ln0XH(U>Ke(+-02#?{S|#i9R<&|7|~ef%CU%@Yg{9V&9D}Jnwmd7#hQYqLAKABW-&6)44U`XUjY?X= zUyFVa(So#^rh!^b|G6IAH=6X zyw79sT%3oh@gR?kpFPEFAN60*cLp(&oV$?oIQ?gW9`e4kIJFSWN%j@ zo)zY)3f6uN`LaGZb>jwuDgMLVhkwu94ftR2i2jfB@A-l|$FBn9!$tXNexAHBpUYwz zKmUl&u(0Gui zhwIld9#PX$QK}+VwS=8W4aFZgw|?K&tHQ7Pg$=Czu;f3itIAoCm1ll{aZ}- zbnu&@c{%H+v-cl$Z?dht*~aMy^)ES`-`vF7%`mak>{!8pUq8`K6 za8tfGry#8&!dTD8SLEI#ynXUEmrs_1zboNli%Cg$3)uVX@%|g7 z1$_Ugz0JmPEI&_L@W=7Pw_RZU3sL{mxh(V&gNqQav}1@(C4)!K$aj5jsp!dI#538Z zMn-V{OZoN9t2fuMcKAmKQ`}AUG7#@TP;P|Fqm;fS$C~OHfu7iou`yrupgKzJb^Yx_m^xkhT^6}95T0N4#4fC~oaKD}V-%xa!BoH4vd59n*B;-S?(O|5Yp3-0QT+?}uE=W*jbQB= zupdlxsVHY~Cgywnk@H9M@l71>a+|fAyLsDnbl>7|CiZvV#P)X94t^v{>bR83VAP+N zIUCB-7+foOktMy=hZ#)yJFbuU`7XlzN;A4ROyytD>v^m{#doBuD`oWp3lvfXy`Q~B z?fXlNee!)c68!$7`1>FIJoO(6!To?e_%+PqsP6$m!3_ESfZr1~neMaTe<6!)EnCIr z3vCqi&m?cdzXbQkHe8<5VLgyRD6GYk*{V+M+e7u^dubA}g#8{pqrT|I?=pVouz3<*hM?ezT1?;yY9!}mJ|rrVCJeDHw5 z_29qDuifYTHy!moC%RPf^X&tE*4cT7%L`PV%zDJ%zzp^}&nYH*prcMNZ#BmA@0qLZ z6`s{8Z?f-YVErfeF5vboN`E?1dKy`KJ>;u>ZRMPw84$nM9iI@(+RGF5vJ_gM{o#D1 zphpsksXis2Hrq`KapY<>!g|Tb4K$7+AX$_HHvXBE@~a z?5mo=<00=5eN9xze>K1VEqX!gdps(Sh(qE3>y%?n$1g=dAe-M&S9^ua_(h!lQF=am z_P6{zX9m^^V-EN5_7-oNA0U#$*c~$ak@yy=ot)TIK1gHluZ29eanl8Uo(o+IZ0kj_ zowe6v|I16q>|pSVxIZ+unc~Nw&ni^TyZCu1LcK9;7N-XVkms$ZUg~Af7kC%AQh#g) z>tMgwabzp^X97M5H;!j<{sn&yh07S|OAqlu34fK4kf%Htyd3^8moA&~XE=gCLZ5w- zwYPXfAARJ0I~w0BPYdPrgT}*Xji!2h_W1tk0H0d+{82oQd|mweh2D8WQnJbaJOlV+ z?R+GZ^~e6fKf_waV0*;#@9n7J^s*WKk#2y$k3OHAiuv6z?R5|6-%FslPqwkKSP5^oHUu^5b)QMCGHp zCKEl?;yw=KlJ6(IUm6|S$;V6mB{YrId^{Pj7lh^!JsZDPkw=1^32>a=udP*@L!J#T zTh+$kB7ZLu+*>w^!ImCTvc^Td`xy*=E+86&pC5w&e=1@wVeL52f^=8)Wtu;e)&pxE ziTm`>|9t)axA6P-wp0JV$B%Ewr1uXF<8gog@P0t5kPd}pAh7uwZM}pghjw!LS&j4B z)4pQ>YX|+6iOF}m861WCh&*j9KTidqzm-!i@%^FnH#|V(@~;8*){61D+t~9IA079d z|_sLua@9@{#cHg^a zl810!=e4dn!P=?3^L5sv`eUB##_{q>)=urmrN^%nFu29NR-T;P$=8?C*z;P*JL0w@&Kw5)i;ZpF!r*$?H+!mVG8inS{AHm@ zzSLp7@0E@zW9@W3%JWSAyM@?aLzyXmN}(&E@+RL8Y7Zx>;ZpXz4*LGobIF|yE>sc0 zr7?}ugBb59;Z6!P%7^qKMiniHX>nN$Hp=sahMIH>29NZQl4%;dj31LEgHv*W6Fu+9 z=R5oN;@^LDf8-<2q4oi+R=>Sa1AhVJ|817bWd)soH_M}iA=M^* zE5=nJq=^SP{>=5)qy9%8KM(N#u`QGB3TDsK{p-vt({LF0et*DWCQToEOVyO!*oLRJZ{u8P4@jHNH2-Y5QLGK81={-Q8vKZ}i6d zCqB919Ba=2eJLw*E@g0mE48N&AI{)9yw9KJe|&gej=^3zeE2p_AL0@fc5}kR(^xy@ z&tB+!eEyQ5QL@VyCl6%p(AVrrORYJ5lY;-hU2fv{nb1Ge>ZF{0yyPaAeSa>Zi9J6; zB^OS#mKQU)ek9dzHN5|dQ20kb;=kb^rx(ukwi*!cho9x>YqQb?V{2O){QnG2GmOeU z{D%YJe>Fb;qu&>Of&4=SiIZARmZIP#Tc7QIdZGP+$=}Km_QG@RH#z;UhkP)#%oM-p zqmT;`xu$sdW;r33dyjDbkuMM-G^B*{hkWP*8;bY7&%Q_H(~^Q;+8Ipu)A}KFGPf|XRyJwmSkiXa(pSo{bzfp$-YPJZ=TO? zJtjEpUv$0SylKkMmJygQ%PKeJ!$3TsYtMVxD_MWo$4OLF z4IfXYDq7aomci*|3F0jmHE!eb`j0U19sk-Sk7-@u@069z)c1Qfudl3@!;&x)&Cv!yweJ58Mbe z2*KeY=NVk&t&oeOT=w^_tXAW!k0o)q9t&zbB*DGXHxk;WriFk-Kv4Zo*qlmX@yZzuE>u(SL#E{vq&t)+9 z8{%tB@t|ttM?Je?6sK1Xx;pp6?zb1Q{w?l$Vg35O4;ZWkKJ7kYk|&D5uj`DsUV3=` zpiKzj0r6f8Mzvi*TUe@M@HCxTb$FCB|K41k(KWf%RNn&ey{fK`ghv3{lNHJV^>)-*gsC8sJM~HzrQ^6iri+(VNQSOebW*+z_b48f?ifuI+8zc z06oxX%n57Hx0RFINYKjQ<=%SRtgON=2K%_zf`0aL`==%7XXE8oDQjP;9pMW1jR_3C znbK?9;v8qH#ociRahgWAWa{pcUX zuYdLDU;mXqkw~PctrmaW@}-s#g!3Za5cF`Ju=&dbgB|B~>GVQsyzy%Wo8f+Pm*+E2G8p%h z!gwc>zc1x~@CV}OZyM@*ofDHnSbuuIc>j@j6>2XoE3v2sZ^<}6){SeNCKV3+?i5^6Qzi;2Qi{}TS_PFGE z^SC@<4tzU&cnn{U6>;`MFISgweoo^-Ixb$~_-+9GLO3V4&sgI5yJtE@_Wc36d?6&% zWbZ|OZpHYjoAX)w4K3{Z4@~;uO5`W~blt(ttexufv+r%^_*!qPmsL+OeLjM-4 zY*>F^*C?T?vaE^0G44_F5oP-t8EobnZF{J@`x1j4Les~M8FP3H{N3@hl<&|=-JhA- z+J^i2yjSksRNjasWdEUah}Y3OxBvLFQwh#@O={$Sd;I=K>5nhD_V@7x#6ht6G-t?3 zom|%FfcW-4`yo;0EYYbVLqa0iehkW#x_5LWaeTK#{eXxAQqIqP+#z3doBY3)c^gMs zkE!PP>gygQ1fN}k1K2OW709DV&y5OxJ~C{z$=;?J9Z`S@ej zZlTT-PWAS3{IEp+@^hjozmtK=%jE~2V*QUN*4Sp3cXIydi+orik(c>-^MO8_+!@O0 zpVA|WoD)s?4yb&6>B9Lu_C9;ir%k742Qyd={#{m9P|9FRAAWGMf^;FcX0Zy!}nA--{$L2@qhEd&-wl}z@90V zPpM|lJNX-I+dDhXp*|HZ(q!YQd@a>qPs05gnO}a>iNbjupf~npoCNW$8GtLZt;SG& z+>6NM%iN=dh%#vn@LRrmr|5Ld8~LZpA~fF<{q(cqHf6CpA$7?b&A z;7_mx_CqQkIW%gp-lz9o=v}9@^e4m^f%~?h(g2B*Fmp$&oD`HIKDaL)QW)kCm_9PE z$r#7>ziym2DcQgO2!ls}o|8LWu?$AO3)|~9L-_gc;}6LzWvrd@`_M&i69!Xxer}cp zzprrwzCV|5%GZC*8}jFmKY~E?(-X?yGFCfOF&O%+u(h|Bzn|JWwoq~7VSh*1_rJx{ z3^w3CA%xa{W$mc1+*O`c!Qf@ccNzJ}{T-!G`zkBfuy!+ye^6BwzrUdVmM*JCd9wCq zZ-d}+*z|pKz=yoBoVQDYdKm6$GXy3@<)7kyt;Y+Nk!f2ICnf0&dP@NmDS z$Gr1wua{J=X3rP8OKHBITn1YN<=I}oREGO>z1h7QYcJFzLcS6s`IyXHt4x)4n!EMI zw}gLBTtD1=e4DaKj`NmF{cZIA_r-O}df@ws#Tw18^JV?B@!@~I*N;zB>Z0+CD?uMF z;;+mpeSm!aXRBN`EK$dy?aO zuvb)4e*x!@Xn#^;wK#VP)z4%HbNTt1>z;3W;GoIAcg-F8>YXmGA6lr5a$N8Kz|I@a zqj3M8>Hcpn^p%O#`}VT-k-DR<9ppm1N7_seD*xO&(Vk- z+@7oR)(Wp(uFPibN4*dqd^wUok9>l{w`HY#eWeO}L7!JsFZ${S%gMkf+#eCdLmUvv zC-Fh>H_OESX7^zKo+D)XQ#YKN$HAUk-X08CPPVMyJOJ{e)EfDss6QGJhFE7_4Q#9) zYmpm#nd>ob&tTI=SL=)lPCHcC_39>nHd>jG!dxGOwF5g;!zmF0lgIWFt zzeN4W^POo+`}IjdYP2Q7k7e7reS`X!r@~>9;Y+@)7yQjjx&3J_;!Q7I-sZ{LSNcZ_ z-(SAO?Ey;AgU%)0d_Gh^n9)9j^nY*MicG{u_d2<3W&RmQT?>SEF}0b!5A;MxPOC5J zpKsGZb80_d)WhxXI?!9Or*c)_{A-p^LA)mFH&;i}d=^A1NJfX@zRzVM2v+}jc||8x zX++a~>ni9w=UPqi+snMY5HDAf$NFFMPPe_8UHO2)_2bfI2U^cBq50^P(~)lm`-yZj z!S*ET@BHC?!OtJ{NBc9`a%VH-$U)0 zO!>necfZUA*D^z1GSv^~J@uOB^f-k~-;^8-`C!}voR3UD*t628yiim2%gvv0{^YRd zhT*&{{pl!%L~tI5gP=hE2v|`4NuU1WJgSlEmvTRck5Sf?xaNk z-ky_)d`mRmdW;474<&Lhhb~X}my?p#_h|pUjnIGSc_*>`@Bh;mAGi2IUU8}D>rdwC zZh97bL!T{Aq0f(#jNNcK##N33UO{1V{bM&h==X?T{pvvy^*0eBF!j&6NaHWaV^M?O z`?w_&@9VS2`r`Y_kCk)rd`Zaxw3nX_{-&!%N58iZ_N}2_PXK?$1K+@YefI+2{2;&R`_>Qk-|CNB=y-`sRlogr%M;&a`b7&( z*E=<^pA)kAzNc{|N0BW`=vjgym(Agf31Jhd^G=m?f=>1{crbvFVNfHnIq(1t^dHj@ozDw zGodyDM`GzS?&-fyhyomxcy*C2iGJ+)k98;IfZus%*1zEyGUB)1+;5ALw&xDlXx5QG z)hUw=*GAYu287dHGf6vxdXbas!80{sp#hS^^xe`;|8su+US^SEea2a>rOVm(`v^6PoWi9_nnP6cT3EoZ&$B!FcV}%L2oEZ{ zU*kuRFP_S9eL@=zc>esQ@5#u^1x5aOE%arS9=KaM>dGqbYpD%j(NzbB2jqBeh}DM! zufm2j969-xk(W>VzH;n!=-}k>C!Tmpv^i}yS#P$}%uRus%%RYM&9!7e08ydF_r7g+ zjkk$kYo^w6Zd{n0XwF?Y^BHVNlWfeMGo$Az`1O~!VtmT1Pnxgc{Tj`pX}8I&$Ht{6 zG#!Hs{7$sDx0FmbAV-^H|7_{M|9(CGUxSfTdhJoajpifz@o%_D!lc(iRy7O=A|y2A z{Q14m;aXn#K)D0!M{~^HCNtZ19)7tnLnSBeKO8&SLw?!Txnll#t03&hYe9cS3`+A9 z^^kdQhQSBt)r7pzp{{>eb7Uku2nZ>5a55Lof5{p0AZqYj;IqT{!v{qxoh9TXl9iY* zT;7iwj6a^1B55rd5LBSpS3dZV*j+mzs-8rlM%U098q@h$fF&IB$-J;A*_ks&Bk09* z9>$Cduz`@+l+ccDa$~J)ux|2+IGo2f-w6_3C8;%*p;0ddrOW(kziyjL_j{?K--e-y z{5Lti|GV#hKmE(${JIVFJMz8U$Cj(*;J+|(lYqff^k$QG0KecUytEKLqDRY7bL&suZrwFQy5GQl2L%Qsh<60(JVGRvLB1Y$^!n-I z{I~7bW50I9+1qK3xKxU7eF*K6ke74{yI-_OV$l;NBXUAkphiV$>6M?vUJw%eriT^y z-&=jNSnMS@4}@F|RoG4UpV20EhY<4`^bbo{Bm@Qqice44C$opW5jBtRZy)O{l6tc# zAR#MtgaqOePb`!?K_mj%5muzSiKLM~gFZRI&3mo~A#?sOjPdwK&!<4~*>CI9bWQ0G zIqd~AzF9%#h39LeU-_U$QM`6WoVdUeIkE(tms(+z3O=tSX|T9^ z%>*A0g>3fhg{i=YVM_1+x||;W=zjj*=U)WAoBORVqBgC@;mD~=P~+I~wB$?R%a}1P z$bqUio18PK(Q<~I#M2o0Z4xiIVZcV8ud3d#VYt{cP@>2B>yUFBDJ@&Dzg9|fEAmE| z)GezmC0XqC7R-UdFNWz|U0j@Yu>CAV4Y~sxJI-_1Ki@SdvF#RvmmvpD>XPnX82q}f z$@_4Z=?=WezsB|cy}_=#aP(m(4hNek}O)4Iy-#oZE& zmXPal1&Y;czDCaE5VJ|A%_d!gO(HoVFyWOx{+}?Z4(kDV@}1wip8x9oseA{WUEa3{ z_!s5($~60yX?^@&6Ci4z6v%*a*gt#43$CA5i}Q(D2{7!dIHRzn!KguTabh4_L?<=7`!T_#&yak)!c_kri)T_9O=2i+8g|9R64CGM#4NuuUftOWP{ja z?n4>Oi#QLTf3|iL&f_p8Scv~ZsoQZM#59o_>2=VH>AEOc+>8^}BH0l1yxMHs8)`Xu zCuQEeKKT$LBAqk+S@f?T=a-2ThWya4zi9sH@^}6>u8Em2RcFoFObBw_afv9QF(c8}9 z&^*=6n`8L-S%LGi^_l0#vi7(ob&4oj!>{jr$n-DbdoGo$QFD!$jq@6^M~D5_YLgGN z5I71S@4nGT26_FJlMTfIBx`fxFWqtjrSCoSr-@R(GcPnx)eoTZ`Qo?h z#r*^N_~A62H)?u$PNDpi{!k-UA$ET|fvuO-LR5WhGx=Cq==7=^tA|vw_89*>#g`>!rvZRlSYD#oBc6_XP_W?CT$`IDg?Xk8z?oL=PQ$D~7ehCmK0S=g()b1!5Au zyS(jL1|LODx1%k$Og>CFKRvfAvRJ#(Td%OG&gI`P(W%wr9ZWT_vf|QJvi-iE78iqGeD2jJaPC0+hRVW1@sE15?wUaj7LaEHLe5`6O};C_2T^90GbCi9lhck} z1e@>wSvS3t!S?^t_kUC$J=$vCuYYTxuYHkYbNtT027fuRaB!$0qEiLra!d$8m zAN#X>uyh>pb@P%c3ON|H3@*g}S5-~r^upewMm}+y z$>%=mh|m!i2VEt%>^Uz}eytRC%2 z=bv$cJ;A7)VNgbc-qM^}|Iz#3udlD={9Z)P@%2`@Lt3bPt7?3e_?(46>`qJTR9?ia zv|_usok(lQ;HFIEq%w9Q2OP2Ms{!B({cg+{_QSl&%9FtiKX9M-xLsIDM)MjZ&19m|_roFrGnU zZr)`5Uz{Pgdn*|}J`d%MW1;D;`_`PvVX#viq5yY)_Kw)?B{7Fe*%0TWj+z%6D@r?=Yw3IpsPE6Vc^o0twHuU*W0o_s4!4>pAN1%78gDjRgh~EsxWvZNH zDCDxy`_~%9N(xycCw!Bj_IvvQ`U__6cgza?5?2gb=42Idv0AYW;c zl5P_B$DBV*)n5;klSQw1UwMJSFB#_g_*Q3T~Z?dtP!M-{#)z4QAqjz{2|ofy8Y%mS-~kUgnPam8cQr?(V#DB0&x5 zKcNOBr4R7=`K|rO{(fkC{6pW8L^(mtqg?SBFYEJOLq>n4gT9umjTO&=(ZB%LfE*>g z_n&!|*-IVVyk#fU{wJ6`|Mhy*OlvMLg}nx&C*-R{g<=KG8QM#!7aW6hb*?C>!{wtd zLlr8g3mts@wg*P5=G^+8pO2%!x7&WNaQRB@;br%oc#`wm4DA1y7hE`8=zqobPRJH6 zZ%I8QcKL;OQ`!30xhm}bnqtZkUx%E40U;e+U&}`hmA6xxxxAqT|E?J0!ui3mIJw=~ zty>PU_hld^1nipA3u;fix3D{$weJ8wsx7_2&)-~sx!tG>z1LX#@kDR6(~i|#pZGGd zNtozls>!BWSR*@s9x?7cM5ZUQabNk{Bj)9C#qRE9b#9|Zrle2@$K+_zbq22vl-;for8|N5y-Pd;t143f*d)W=VX zv&^HYJg-B{>mc(7Lo#^Dk*Y|p&-gQCh5>6k@ z)!qt)WXB5jzGH!M1#oWIpHX>zHHr+g{^qE$x;pDPk0C<^FrnkRsfL{q z`yCnhnH%d*_y5!o%K;3QqK4Fj2@@tV81jeR2G7giG1y++By)B?u$95D>qdBNykp9_ ziJFu$$6eMu2VgO3est`=5XSl|aeh<|4m%i(oJNYhQ>RX4@F>)jExW!Tjlr@dHG<1n z7jA!Ap^LV=*m3Ey*iEcQ*I2(*8kjF6EQn1L-2%)lcc(v@sg9C8`|Ohw#m72UEIe`G zs|K}PwtnxmFQ2A4qu*QWBnQsT*1Y!GZ{h!G#B9Sp8>57NF@8AkU#5E9XL6oRChQNZ z*ElLgH;Euo#GBEafUb(HZ~E{V{QM>L726X(wsL#OSBVD2AX+o>A-!|L{i&skDMwLT zikaHqKb6nd*S}UVU~pw6>yH>{yQe0!aC|))7_G?9|KbJK4t-DN=)7w?gHc0P1@oFe zgYywHq&Jvq1{b(`E8NCTdWy9}zOozO`Zv3J$?lxLG~uDV_;{fzO7`Hw`Sqf`^{28Ic5A791?GWDkvtz> zw{^kjBJkr=Gv9nqN??DC{`cQ6tc89T1AiEM_`eL#g?=}_gFM;fI?XaDO6E9W>o(D4 zN)5>-(ipXu?2UJ?fgVA6l|X<+jQgVKo1FeyU_7J79Omae205Q5cek{#`K-{@yS9p5 zT)vaKX%%Gu5>7u#kYhJ3;7khZ-wHA))i7qae8C;%OBSVgjCI(yL zJnQO@A7`+S{}uU;WfmrSgzw$y=;HK4i5$F3F81zc{mneos+y)yejaut=Bok&O)<2^ z&_6#o^){y;F{mlKufoQf@>jVR>Eplm?(NwjzAOxs6KT`2K%?y|>UsVmc`;~8Sb?LN zGa-pVq2aJ6*FEYp_gnZcC01+4`K|4D(fU$@%diXvwx$li#z-8r+ah=)Hg+$xJt=b-J2j(05I6axJy*W9_By)2 zsDAG1TFUx2yGGer?@!|N-U9Q}>2zw=el$>FH-*{{9o_F zV?2sFwYr(XzW(X1%|9P_o597n|J!d z^cTl4oQFB#0X>ih!u{4~Qh&HU{kZ$Qe(+cNfib8Vva5R`$1n4sJXy#iIZ(1Pn}mWa zlRf2FT)yILXKM#rkE8D1iW#S7zRut}m1L-1I*QA`#n8X57O&v^!wmM=tdURsjrFJZ zzd1j5a{ZwNHCE1_KF`meFKU2XycinF`cr%#J9fk~43^mGWpVyHcQROwnv})mwWkEad! z*J1yk@fhLE;Nq}!Rr@aoIevTzduT?}`8ljT)4xWRJ8{Qt&|4`rxLgH3EJ^F>fxJKX zdX4mXAMktRkW9gTZ+`rX9LaX*|C;uyDIzhmymQ{niRyFB$q{p&e^^5#8u|duL9`Jy zyD5K=P<{^>^8Sk`+iA8k&Wqf=0sj{=^T(Ft4;;XqNp3K*>~14+TGQJM^Xb@cin)$a zOYGK6ycEI4ix_NS{JsYwgTIXPQZ&_NaeCK`^_%lZ4qEuz+1>2w;`@*LFgvF)CVP!N zYH}JoTDiT*9y#lXv2zo9zmD2_TVX$cNFRKmk6k!(hU@>pcj1YrAAg#)Q~WO*Ie9dL z4XP`)^Jm=R{G<@_V|_jJ>4)!&f&FkDehfYuSf`qopyl!ay)W$AhWnd`{k6y;zN+A0 z4}&3Z4t;$6-VF>M;SsG^e|AYPgX{f~gBC&b3^u50g^dR`ZDp_)Ih56xo`ydfvCJdV zDAY6(zFq@+Bm5<%oF4KrR)eI3hT4m2Nffrc=4xQA?UbIh)N(TYjB@7MmMi}o{a^Wz zKTvu>`2)@mayYkVPQ(2yY9=;{))(4<>c3azUCEXae6LwQz(wlIKlBx4g29BTqv>Uqt*GU zq}JQ~JkgwmpM0`$Dr-NA8VyEcR1|}ikeB|N_|8uZu5+ysww$l~fWxX@2vGUYf^ zLmvESg3A!r-VFV8?Dhxze5j#McYid&iM8vno)a9`aD1>=c#-%0wFSU`AfS}k+aU*j zhQvnfwq5QJGGJgm&P!Iss1f22z4ZAS%cyCf*Gb8}yGqGBp6>B?l}2pv{Dj&6#{L8U z>Asi>y8jgaZ;`8M-&lPZPW>4p=R4$zN3q|aI7g9luJ-1N(eR&ID~Ac+pvV_4c6M<2 zCIdOUFNI$^!p84|91@nJ|KP!4%;(hh$^5(&fZjS(UFG%!J7d+m7+mk}CEIl21+EV^;Qp`7x#>;T4*gh>mX;dAV49Qm zpyyt`pT3}HCue9+vvx{P8XK<|8BFE<`MOSizRY3o@9YRU%i0TJZ!7bkd6mIfKVklR zVemhLvGu%Rcp>ytD;PLI4+cITRp3PJH+2aSbD;nIF8SY;od3vFEQ8*IUU<7 zS9AL1i~Hq}@Q75_UVt1fE>14|d3wGkjjiPUN5CGr|Ih;s>rZPC?BCzHn88xu_vjW= z&NICrCxdN<^xvNXA@O}#eDZ6N;w(bEkh3TQITQ*D+hTJmy~ldzQ~v(%u=oC!J}45a z4{iNEDw2Y~IDjFD-G9>$k}V&E@5x}F?_}dOLrxoAq-H6D^D*ABy<2xMSdII^0Xs}N zESoW3oATTIeE6uFgzUD>=WmM-A>>2M%!g2|4HOyh|%Vp!?4kt?_r@ z(57cN>|P_xNqvjk8>syzspGTHS-TGO!N)s$6@#^^JmIrld$~P{$_o>>ZhnfjmjpHm zb6;8d8iQ$0FNqcO@rU1cp!(h;HT$HHHwRT*ZDs8S%r`@q!tF)&uum8d45{bspr5y; zUOEO-|Mp6mDMz2VN3;-Zys4q`ALzeQikw7&5&PCse=_*XPVxc1$E8IENJ%vOgZlje zsQ&g_`}>e!(ZtU@<{D{CKGZQ)XmR9v}ecIQpW8RokjFnuN#gX-fc@Ox*~#%+0e-SIVhNYGnqj{c4>#Ac z_h})I*zUj1+g}7dy>}6xd-%Nq*!zBtTRNA)RGwd|Y3KYEIh7T2wp~bK?S-iM`Q(Nw zPEV*j=>Pit4XmBoBU73WbADik`G>TUysd~zn5k8b)Wo) zn%`Ib2nj(B;oocT`K|qzz#b%rh(N#EZx67zBSD&t6`{!SG-iCGxP!Lj3|6Ih*@j-| zPNUvq$Vu_qh9Rr_=Od77sEN?k-OKrz4{}JQwDxj)AADSdRlOI3+4}im{o02Q zuVV1)uy;oyDK~@RZ!Pp3uHf{w2>N0|Xz~))PUWY8l@&J`tN?y*pM0>C!45i!BHNJB z$Y3AXuahIf`TH}#-#U9IaC*{!8V%=e$MW%7>hf&|RXteDo~JozQx8q%^zQY*Jlp3E z?JDh?Kg^>(IPbH+J$nK2JA&6gA8d~KYc5x#>KGw<$@JyRywl~0T`7yin}o>L5`|-E zy6t$65!s@Qm`4q3ePPfNxh(aYThP}+;7N1bvyM3 zF@NNHcgcIO4{TCe2ldBKLLbFt<(-h&L@(ikKksW4?+bFjGwZ#t&Pulx@4%jd`MOOX zX7GhPm0&D8g7p|TP_=xJIp~LGX+%dqJrT%J_jCc`KbOyokrTP=gVB6HjzPb1IN1(@ z(og@jSkIlerpGdPu0QP2y{(+SNzj%w|EoMI%iHi-~g{Ho0K%CQMt`c%}?ZXE6ow?3wf&! z{M(#NA4cJS*8cu_zke?be~~_YLj6#F>>^il!f~HKb9C82!N7d89G0#9H}pIwjSw5jfZ=XcML?nJv7Sp zZr#@p#2?Ts2*lo%$c)LUBG!BNf;X*6i?^KA-sq|Bqn|HJ4ObzLT^1L2i&v?FNJ|-oSatd8N@D9xis9onG+f zfk7wm{l?csz1XFf*4q1hhn#h?+oID*k>o9F(3_2`ljBfCAbtTk#@b_Na^>!oU|fG$9H6=!Ey6C&lM@qzr#a;&)95S*D=R&wFaQNT1F(-ZxBNKU{(z%e*)vUBwLfLB-! z?s%G062`2358E?nPBHSwd-Q$w^t>+8Xg(z~K5PN3gnjHuyzeK{+?TU<8Sr&vW8Zjo z&quos{CB_D_x`{B05~7xUjqC^eDL4xr{s|uzSv^?(2hU!|NbN7wcq_dtlRH?=68A^cs7P%tk@sE&kM!4UtA3?|)h;duA=t!P8 zOg;9rUPfLDOP7VkUf=mS*5h(g_SZ+zUvqBzu`A>)wPTR|WEw*l5gHiSM>G8X<7EEd zIuCs~ZMBYWXWvgGrCYBISb!L3Z`mt;-rl0*<(Hl`cO~GN4Yyk6e-8+9pbK z8XGkYqU(Ub>*f=PWl*#%T32Tf|123t%wZ$-Pgl)&GdfD_QPyV;^j>ZmByn52_3T9W zL|MU!OA4E{`&;*luCo}ItD&{7JN7+$5HiIuC8X%>ffBc?i{DBUi;2_=vpR}9zQn?e zY|+6WMP5WNzlF6zN^k2_LCG>XE9&;HanwnXVBA@5xI+8{184I~`Z)ZVIHtCp={Fzy8GqNcy>%U}a+UgCrMS`Mov zs*Ri6xQ$^N@BwMjZ^Gx!fDD)BmO6!E;>3wgqBk4>y#}41tE;t*j}HhDr!DunPNcg> zxJAnnqN2|G^qmLzi1*Xmf8zsc)7Rcl&*+}F<9vr7|InA(d=R6VD}HGCRG!p2YJ^*@ zaQx&C55zH+)CM4#i@b?eR#wpQU=Y9`#7HUjUYy78SdXfs6diXuxlO15KAEq-b?Y*l zUm^DY^;lgZgO!lMn+tDnovj`|U#o5{n8(`bolt#OSBlu{B~^M!%^MJNW%I!rD>1@r z@X;D8S&S}P77}v)x_H*h9Q8H5lo;>D2Uic>Ca)Nk9}If;DCH-?RhE7H1ZEOCSNhwH z`NsI=#88`gV=m@vb8@2DNWJxnFgZDQzxSfpA$NOo?F6r{;%a5VKdf;Q(}wmvrwlU) zgKRROv-i(`8OECw-^%AN@rY8q`DQ{68@~bb{VaP1pRWNiNkOlfV$!6r5q|x_eQwjr zK>zr}8yW0*o!Uz=|MsyjF@H*4%%|ZFt#IsTDWEUYmz(>oeO;$jB&;3gCU&l~FIg*> zsTTSu!e_txuIM#VGINr%%Qe*59dFSv-l!o;qRY-Q=h>Z?Q@&YNeh*rVv9-|$&f+-S?jdF%s;66d@A z&BP!!UaC{u3cEjJ@KN|^B*Li8VBGoIP4F;ghF0 z)n|5m z_{Tr_vF}-iMJp;RzvSbi^xC6WW!?r)N@r+O_6#1X7 z;&&)I_(aEEH{F>lU<3UsDW2Q>>Y>BW_q+Yb`PZt_v&wIn-j}Yr>jC+I+w{B@=Dmv@ z89d;v0#)w#ia7YlTh@q~j(s6%*^E2$$18y^DfQ_o7 zt-XFvDI`DsvCVb9%V)d~(bW|#@ULB6}?;-8;@uoI@qfz%} z|NiTV7BMG#D^De{@6-L-*1L+^K#j1eKX+vf&-;$L^mZ;zRmH47>dq;?of8qsV557J z(6i5p?_V?ETY2$({v+TsXOXpS8|z=^T5H?AWy@9uvdc;+koj-d{9rtVjZo~%E;gSadn*w0|Zj0l%6?{MgwpBHQ%I1j;d&Ov^}Y?Wqf z6}Y3w+u8jsVDE8CJ2%9P$izsz?;@C=Uaqi!4JY=0TrfYRQXNh2WP|r5BgPCr z=~Abwvj~~$()F51a_Sv1e)y1*kVtAH1+#l(e}6sS-+~_pf0&Ht<@gNH12%?dws>ZJ zc-|5=ou!)b?XV$uk*F@^8*y@3Pgh9)dfnKhbbt@Vn#x5KhG4o`smA(`t)@O%__b{9 z+mBTxvHkFCALC932emKnD%N}7W~CFJ7qi>ZUSnM|Y@5ucUTYk;%B#FXD`ZQG)r&mE6{)P)OzDl;2cJX=w$l9ZV3auT7WYP7JOrPr|yHy`OXGwbLcFZ#-8Ki+GdI6Y3Rth zTETO;XSvw9RggWVlw}6$6}P&>Q<=;~znApqSi}Vp5N$%#;K6zICqXl&3+8bBE)Ins z+W4v-@x4__+M&olU3Ra#rshlJIhuS-2#;F9VT_As|9VKxjqcudckX_cDs~1a z%-1T8n+IL7Z9W4#KC%AV?PA81dRIBgd^-$rZLT>3vp)3I0*6)?SLKSotefrqN#d60(TB8z}(fe>@lerwv(%gtW#P9CqE#nA{HP<{q zePr_PXMfYnynNIOqUp>d{js8k$=>}qI_DR1{NsR6?@3~CrW(hOcflE29kAQnzX7=u zx>I`>i(Oi|CH5c_IO8(q+3!WNu)txh*=WSdk%;irB+>HO9EoF-q$SXcj5%D1HC5UT zi&0Cd?^aEdx~{j!3w948r*c7I!HqWX0kd&r(2w|@EGfAo4RWg>{UzrpUDMKv)w$v) zm92%L?c8V(y4Mn*cdRus^X9-zR3168rN3$0mdXd!ZHaZ(CnhMM*L!UO22S z70FVA12L=70S*q)YDEi+0Ai8jZ-hTfMh5)5K(h15PIn5|7?UG~zIUjC^2}Z=kz(E6 ztS{@Le|K@+dxO34$6KLL*!$Z1(!blg7yrWV%E&A7gSQUeGV2G4D4Gew@&60u7!Up* zTSLMh{y&zQNQdICU%N12?%d}h7tT#wh`;*%zdmY#BZGeg3Djjd)-0i6)};++m$(#N zdsS0mHO8fA`z%c*A=hTb?<8e&G-vjFIZM;3Cx6*9QmZM`>)+XVY*tUXlzh5pRLU4@ zqW^5qjEvAcLLNJ8ouNr?s=2kfHTktNdnx{#aM^jJd~i{w_ob1D8!lRzpxHGt@8)Kw zSQKR-JF~aXIyYK2a%R!7S2f}R{oC~W!L7tUdwOiCRZqwJ>jr4g*+>mJdsd>qb@|w$ z>DsiCka%l z?c(5Sn^B3ye$`HnhrU@iD&t07M)r*CtOTsYycyZ^v^`ax*6*)#(iR8z+TgpfW<9~- zyAL^Or8c89!y0ZF&~NEq4!yt5kYT3!%ORJY9!^z57M&c{@O^3io3l^e-Sc4Y2W^iX z9=s(gD$3}xrD9#_P3sr_vh(D+i0V-`KOH)`t~cVW)3Ap3*F|3L+`aJR*rIl4Yw56t zx3WKaexz*S$xnC2Wt(L`*YI{x@|`CAPlqb9gT=Cu@jF`$$#>-OyZ7LJ)0w0WF0#}j zKfUIyb(Y$^$aXqT?foj3Np$>?=Z;(-g?ZXbt-rXn?szhhW@%<*Tzj=-WLX;KAB)1n zi{8q9NqfZErG0gFX@ayVWN}u)u~|zxYCtTUGRncdK|&&WPD>-q!Dxf99D z{4_n4&Q997-W5kyI-e|D=4aE6yOBdNe%2_gaQD#mSwvQ;DV{a#Fs-t&d(W{~iC%2K zxw$l%lmx$acTZ`u!5FC-dU$$*b!B7qum-1C`GIr6caJ*7Lb}lWbO`K1z-BUbE-mB5<+`P=MBe+pBFJYNq1Pa+^#b)|#*w#yCWG|a#EiP)$Ubk%4 z{>vK8af7cn>R6$l(!Bt8cTQTRd)_%s>akaq?)rk(rPpTpdbg7DrAqgPS#wH!?=OZ#=8noZHY+&zl01GVUEeY?wrIOwyA2`34wojp)+QxE4fA3(!KocX)>{TP z_LN(Hx+g24%Eh@Xey4RtEL>eruA8paRGLXoB;fnVol>#+*sH zr_jh&gY@N;7;nwF-lq4ni~ZmeK77cQYqMVK97*0T%1Y4mb~L@e?%1qIqh24dGkaa- z5zhgi?%B2O(i&@g@7B7;b6Yq5WzYQV4F`6QJF~~7C_MSj{+yj}Wse=ZbN$^zE=3O2 zl{P=`iQk!!*i?3R&o}E9I}90e2G2#@Dakvt=jDvx&ZfK%i%JuMOF$Q@Ko?TVN@niF zxPv2-T#Du;SXxUzk=b+hPEdrvC<3B|PDjGU3fd_bUxJ8S1rfAT z5TzgzK@^BoEu~(dHFB{b1kr9%t#Yv_-qEqgh_!Ml-Vh6Eoymx3@}B=n2%Yb@=R4>8 zzP-;rXTCGbHsQ&7FY8_JdYwH7R=Z4g#JV)tt#)auR6fQu%ABIo)1zYRGwOo=CAXt`dTm`O5BX5tYS+MGaA|#4 zwY>bBUpt?krowo#&SQ=@KZ+*}YR&QH$rzudTlT6zPjl4UwJI~56>XY*D%ZjZuvw1znfi&h>%TNK~&eQN@H(MBHoqTVz6XeX8 zWG}|GTt238!F!4r9L!k@{&Sh`nD?Y~a)Qg5Cf&5=PK;{_GfkC}N>~juQnNJG1#_2n ztr$Nq8D^sjd^N9v+1sqhAyS28j|%*wq{r_FRUoe+uh7z6YKV>P#JDHNG)#baazY*W zdJ6bKs$?0;5AuSs?nm*n-QC)BOj_mr`J5)bz9`5=M#u5mjG|DThPm`8K1obmnY^Kb z3oA#T<}pqgohug~m+Omj9>sH_?zUrG$IoN(w{_J_PT&EvG*&{+05~W!)`%6ctRRHS zXQq{R6Y`T`nmBf?kng$%vY@jlNY}*SJZo8+nqMH5?rokDwR()hnMcP(HT<#AFIi14 zoZ~H!_s0}+TsJ;{P)Z=j;+gy*Qk?Nt`P6k7@`KU4xuwYh#K=R#wa&c|%EXTSj#mi20Fa@_>(nmb=b-{UJ2u)_ zo|2KzDjm?Sggmt8n`ZDilH2T6O^(9+N`Fa4UFhOP>VELi%Gg+);|cUX1ID#eD^nZ6 zchAmG|5(%Jz}Wn>&FtEz>gf?pS8MD#H(tH^^y9Ad=BXu3`F5QlwQ<>-^KUkf zR6fx+6zo$C*VGSGOP@7sD;ImsZL(`kS4Fqn5T~okWTT3~IM3F`az@`^`O|q`F4OKp zp0&6Z#tuoP)2r6YbWP5Jcfrrk4N@}wzrc-Onl zfNMQ!&9tg{^A;{rYdkxvM&)Ckoo-d~<9F_+*FI~;mM5vNslQP9W*>0a)VZ&g>HhMT zXX`$dZp1ff{J3dn=5N_``c zUUOr46E+RntGZtPxk8X0QU&?Kb?$Ymy0EhUY=2BwWq>zN8O!W0FA9=xW0*48(V#`x zb2J^tJ6dxrx-d@Yoc`YCq9Ecz^&0p}Az|LFT@yqUu}o2@n~Lg3TF=um%)7upRNwGq zb)k__j5Qr^h8RZvC_cb@p04rp;({cx3&UL9+ngk(`G*3;Cz|Q`H(LV5a-3Hbw6T`b zcCF|)(0iNbBna5mxNco2Xx%(jQV_nMyQz+bIztY)sUEMS$3b6&lG6MbyH?O(JR?11 z(vv*gXSr-gP(NZ1mZk=X@5JV_^^_lUQ#mEzOQzk~c_`;-(5kUhWN8BQI2O6BhyLW? zJh!TK37R)u=k8No$&e^HWMA!-j95AO@e9?`C}!xad>`dciudUEh(hsr<@8!P^1e)~ zwa%Ri1Uju2Nvr#%WVg&IL5Jts4g9eob&$+c6=&#%bEU&IMWGDa#8Xu!1u?M(>9WEk zF(YBQuK3pISh5~?Lz2ZxgJn|^Y^K(|RDlm;&~qC782Gd#LqFY`hws$xFS%r- za#>;4&|rT^)zKiywjs{Ej|0Srv>xRZ1_U+5j!H)=1H>4-^eV+ph0=zqU-aE$S3^U+r#LdtCzuxbI_D-Rf%BI{jnjr4;YAv3xbl zBc7eZHNy>~qsN=4*Q(J^H(TCS<(zW1{3G;d_h7NJUF)>ktVT;qo2s8$IHG!tXGP9{ z^lWar%DRwIx@vAVm&r6P-0p9HSQk5UyiT;Nm-(fP-tH=26Xf80DrTN4K#X)nI<#Nh z_Leo|)b4UiPDes|ZGGyUJ5j6MYAn)`*ERc63?!EN^)}#y|9(LZh2{8ROqglFw15-k)z^Vo6=-EN_9PNl{;b z-?2#zuN-=jWi-@Y(XnI2uCn2pUn+fl-7s!*(tnh{4;;bdjY-SE=gdhS>>KAO#*N2I zuf;es6hm)-uULcp8x_Vg!%8m$XJj#1(N79czq;KG<35OCU0mj>9)&Uul;0n()F`Fo zc+1lq26oe?&XNor=#RT>YU|vlAA=px{Obe1Zrs%MO|v3<^o>oeZnY8lF&~FiSr>M< zIg=3ZSxnTB)D1ZB#rEw5!!^9ZkOWq3w71$_xNcQRVhQr8Q9Gy}`pC7gKGo&3Q)j{7 z8S?6ZjOEaK5x3hcmlqa^bD`hp@#-cXCmpyd@e6_A1jT#K0`jamL=}bcnqKuy^Xms! zR#W_?uD9kuPOC}=q|oDgRgLupQqQhGHOJJroU!Z5>U^F*RN&cZof#vSqF+){H92wp zJn%Jn85=j;P!z-ge#z{5v{KrjXPPzjIi);nwOaFs=Ao4Iht$J2q|$U%V|m#7 zg?`hjoKgqI43cTUc`hz(63Q3S!DtEW1Mdut2HL1|r6orh3p~71s%X;9t944KZg5kt zFAwnMG-NS#EB6}Z^j_$FB44dJLGho9Mq<|rJ%@pEAwIm5+BtTuP6>pZWWu|kCj?{A zd*Bb}cINo`BAmx&?P)0r?H|i$(tu0SW0}>DSJs8TNSZ5n3_E1>X_-rXPJp)?(pI|2 zfYaD4y-RtL(SAvTeky?crv1g!;k)KS=se)RdEg78)HAT(Qi-ymY%jI5s$(T}p&O0u zO~W{rk4czED`&g+8(JHSf@XVb>!O_NVdnsrxvi)2mf0ws5;ohrPs5DT`nFG$))fD^ zw#G_~FQ*&=)QB8JaeQ;zY9|BY%KE9s<|Btd>u!1-=@R3+C0n zoyt5{lHHX~36g%P^isivpgKzz4)qVLKGWmoR#g|;4g9rU)(M>TIhWdBIwm*HDK)@* zaGS*IO6nT1gwb&JQaei1UVW^*2zuq!=t%jaP~BW>Yi+r8rkYDQ)2o)t^;2C!BiE&Sf&#)z8DbrmNsinfkG2qslKewLcv8e0V~K)Uz|Bs{5%@ zVAlzc%A9G%&>yM-=ikkPo~Vk+h?L)Ko?g|hvr#US-E4Motb=@YEzE0B$~WSBQQzIY zb{OyN-f!u?X`WU!Bpp(}rmoM}mOqAel_qG6`uKWzZrs`a5Y^;_{Amwl!LzgMLs#B3Xsu7|!Z$&fcUH3bM?L`Fsd^!J3t@C8=wIl--QA62CuXR+F;AqoF!R&l!SVY&)qX%GA!# zz8L0JeQI6kSZtoO1bFJPj^VtkIvNCib6f^}(IeRgJ+ns4W0{!xQs`H`o>>N*$zfT| zvT~=?Y#pnqFK|jt92@*HC1-L%jFQojXlQu$r>X>eq<+(*ceN4WT zw&yh3Q=bETnZ@*4V;sL?n7*Q*rKwh2IcEymkzQJmw=}9KXiMzpHf1vCC(T=KU4@VX zu)80v4Dfbs(CH>etqB@(eT$iruqNnSoV;fr_@~5@^jQ|H^{7k%UuiAy{{B| zo4YE1#VgePbiO_#!k~1y3A>ld2aitJU-*VS7|P_Al5nFOVGGv7e`PaQ{bg6>l!V1i zXL2xp3*!cKns1<&4t^Ih@S3`-{9Z^D{A(e#8rQacFdU z+_nvcb?E=@#n)-S>6)m%jB>Q$@u=L293^C=yfcW|HmEp;euKUy#R&o4eeF$(>y>N7 zb6dM(ZbEJoPJ@0Q{8oq>-VeTQmd6d$s5Rd-$7Hn*tU$lS#Einfp)J2`)6_=oH!qtq z=sj(vKprKr>+C9541VtQthqSjd3!bN!I8?jJ-T-2&sycFdu=z*hp2egZhfAeKbTMn==pW%KPAqag5Rrw4=KNa zhQ6eJnRMFEN|s4$n3ABtbG;8fm%xx70e|GPPYL8d^bAY7%E5QAcW<`16y^>nOGj!- zGBop?`$uY~guTp;IXO~Z7Zk&2@SY#7)G_TOycPBd9MxzK_@@DONs{=fB<2(^ceZyw z!@z%q>(|*>F9kwIRv2bqEj@0GP`n&tDBv8ET?m5TOu8Qaxz&)b%Yc(&hcGWBqx#bT zy>TH_gLdtudW(tu(Y4Siwf%XwbQ$Dm^-~6Tqcc>hj6JlG+DVMgZE36P*fGSe^LqJIS@j#wTIN+5UY(7j`r%FgK5yc!FSqNAQz(_0UGJ)j-CE&C3sE%;rr&+mvb<1w`m^7kfSvK-R7>F4 z^|Cvs6biT6<%KayXXxV%GLh@NV<+Ixb50*s?rSb9M}E%3`HmrLAg74X;bhWFMkm;L_t$28Aihe+Xgg1<`^cXo)Kj&X%_&1VwWVqqc$}IR(uH;-;*}(P@ zRppc@R=0-(J2ll+A1f~_bWY$tXSQ93{YuU-`SYM(kQbV%r~ax__axJR-@qo!A6p)+ z53CQp6Zo`jzo3GVK&nDz< ztleF?Hb1AotI}1Lc233{spQG#o_Gd(p|LzRC!xc&aGFXAj=0$}t!lM{>*<>cD0f?z+Y9Bm)ai}0((41E4essrVQ~QAj zyU3%{DS=2|q937u3K}%ens-+c%wMDfpE;*w=VN{j{wCJtnX1T}!93S%t*)8yJ1XG^ zm+2J8Bq6nB2h=V3fjd9Q#TqIyya zT!zU8;61z6lnjAf4jhSb4FjJ(ABXc&^DgWasWd;9+BrO>1SmNvRL<%freWSMThi@3 zTm$(E!#G&BCMXvETk4N!hl4XEHOZS-q2_f}Iw$CvVcEQ@q99jR(r3hREF+=wRMOQN z-Ia{V37p{uo^>wtTZM?TTvngMO14Js20vo2^lIv#Tm7>4R0{lJx^_2fiq9C>y_a(= zyr|%d8aTZ0t}8is9L)FCr&8Q**V!n8+ZTTD zcU416&vx8wNvlkk%bkz6T+WHzroem<{0;yrBfvvCwVMO=-{fs5hF{Gop?9EwESIIE zM)kFU|1geNWdY^|GIVuLZm<$ED!g1U|5Kkq{c&C8moxs9J8%|!7Zv@ZTwz_9lB(-j zJQw35_j^kY#|?g}|C`ASAK=5_4UXlLvg=5rs#&uW##)UEufg^5r=uhoTedDe3`wltQP z-FI-^*y7O@Ij2s3q6Ko|a8#;iS7VJe&rP4%l~y@$s_o?Qmf?m)iv;tVH9wtShl!b+ zm@kbmC@$@5-Yx6vZg)KaJ{U;w>j!_y)Qjg@(RrwD$j5!ne^7nlb7~{CBbDF7N*GK$1JH?_JE{Rlmvn+87)^fUa!Yl2)9Ir)D8 zJ|Hes-cmnRJ2P86&uBNy7Qfp}<;}abfnov&)4XQz1N1nx%jK~QX16Y^+zPvzj=gdsb3nu*JEuA#yOYs1oryT(A!viRu?+k zJ38IqJUL;KcdSlHQd0fJS&gN}d48|aI&C746=)iYTe0{?CEg(QFkl5@0vbyW1ft^XUp*!_*){_)d4df*>D@V}`CY{_^G zZfF2Ww0Pe#Zpv&Swy+3)Uo3FqFXBtc+5pgl<8(GWW;;?IWF>Rlf zmDLoIPWBQxk$1YIeKTgvm_nvt(*`ZkuO2}#7N4~iJyLjQf);isqg5Yqc!PuN&O->xIdNf*I?l8Bh} z|Nh1QM(uohKY;}y@mya_e9Q>jA}(+gEV|&1b*A z=grDnWtJDd1!xt6eM0EjLNbF?8)=ET{%>CNKk!G~jaod!*K|#PV#GIe+3^2l8OKk? z_M1)-&@c4!Kg!>K4*(zIAuv9veQPoQZC}+KtTV=%w<2Vzo~;pGaHacDF!_mT;u&{V zzc~D_H+CUcOqPGgW%}$EWC26X}?kdQ(mKyFmU_#ZLZ#GgY)H*y2{3hc-%;z!~r|K;g)Gb}c}R=wbT#@*5$doTU!U+yN4^|07r zi@lO2=OfH}I#zYH(|_FcYlM$FI?j@FlKzcgyN054H=OZpPkkE5&m9)cfZbDoy$vV64cqqaqZ{&-(e10{3#FUZ45Czgfm!gzM{s^}ix0PbK7 z?Bn3?`B=|05Hj-Gn7!t`eO4a6#K!SgpRGNx^rX+7<&TFT4|Ela7Glp5*vrAQ*3kP) zB3>Eq?@K~z&;|`Q=6D&bzoEzVO0ZXa!X@Ric)jE3@<;7YQ?U<=qk2E?Wh%c|Z|UK- z_~i3;uNzDIQrO;-RhITKo1#zAe&P@j*COW|@WG#OuDSQC_d|G1VMM5m*zs_H0 z5rF5Z&_qO*%=qrj7keIR2gAhN*whZoN9++co?WQFoEXPN>Mck1hVftDrNkmX8b50B z*kaV~h20pk!T5lVlUSupDzU7xxPboJye%gLx95`(^2PN`+P|6^=cb&pEF?0L|58~d$8a<(J+}@cpP4ZwqwmP93j!0?yEyyp8(h~e&(*H=CZsHdW-k&E~ zM65_4eZJUePEfl*q%y#AckupR7C?9OurU)k2&KfH) zEP;Huz0hhZIkNCktDa?#t9`i@Gu#@qfh_i)WZS(Sf6b3Jui>`w4Ard@dH>`oS&`><9X0%Fr7mu@KU`-;}jL9T&_ zC^qB94EA?y6U!C|<4I&(2XBlKk8J+MePaNC2Ta?6yPC5F2xi@-mR9} zq0M8FYkkDr*ALyzTkO_!Z8pW_=A7FD9Q0!g!ks0kc()lTj`uS_++bi1_Ja zwe+82)#Ko0X$b=kFK4|9&@+Y$eqyd8%3+dE-m`sg)*!}rWOVda@|^$D*C1t&WA96^ zqOK>{7m!R9Obw~U`#>u5TmNc5IOX1?V-^%Ytjo-ZB;ovp@mBjSk|2-N57&ip_<&lT z{341+B$_No{;v0fJ16h9aKihkyPRpp2Lg&`5I#%gxvhZnnrXg5^ZvivUO0m7KI70Q zbe}O}E@S%qC~FgiK49qH?i)jp&X_$DI`8-x4@Cc_Wu&SjYTNEUvRnEt2JYzK zr{qN5yT!gR9$%E!F|)qG#m#gy%Rb7zA12@1{FwD_=k)orJ(n}%x!IACE`o2%Ax&5| z>vkMpS9W#u`ed#BG4Er^BFLktjBONuX2d^zdShK0#;ay7Dct>o=rhg?5{&mfoDeDb zzmD?-#Do8(tyn-P$H$RDwv*MP2Nl5yTU|J^A!Yb|l$v zJD1h;%FXYCyUIbR*7W_enO>GT$s;y)+bc8el2$ED7;48}#HO;#PiU*_z8Cl5n2COX z+#IhfOO@vONgfIIALXnQf*V&;d9lk6`?Mt#@?No{#`im%nIN=sRBKj^YM~8ScD7Fk zf4{u6*nIwgyMuiklAW1pY_nv$duU#(iPjn(VsG@9&+@QulBpzPUoC8fY)@nf?_Rga6U^_P=XJCM03wF5glgZ1zpXug$CU*Ie!!><7*o8~O1>|&cBfVy!*l|p+wUC zs}Ak+CO!0}ZH0yHi}37MR(maO3CA+pC|>HW@Uqz$xBAPH_1(*8f81++?}KH;ku!gG zSVa-uUi23ITfX`u;22hWIW3M`H`ki;mhCdjH~9;9?t;95d+|95h@Z3BKVl)(cMrv1 zTyf_lSR|=JPj7EKd5C@AjoF)AG0?@0&dr?pPEF>oUz^wW= z^Ob@pgiHoEVdsW`405Mj9k_IWcEr&WnQg&owx=Y zy@pxY4S3L}%{>|>O*G zik>lyZ~AYi-wu(5wbGULB`uv{JN=l5Rn;bn>U(4hQyQ?(m8m#_X7?Zhcf5QaT;nct zWb@5*vfnxP$T<10%rxpn9io$cX4=swLAZKrKjJD(CD5-xD6B@lyzw&0=bY%{tplYK zv`4k@H$R?}nd#X+)k4MKX$*Z+=@2CdLn7})nrRDLu`rm!E4?vx)kzh*^Ih}8%(2@)&2l^S-Y$2$)(&+cevbM^1~zdc&@DXWZ4gEwGksrzdBItSIzHR zmH1Qm#f%@Y*%Uh`oRHSJ(|IOsi}AdB^0J>^W*$VgD9TX1e^OrzW}Y`>@0zr1zIV}~ zt;N7kxzT^ohE}d=E6VFmy_y!!eOR<1H@Wo7#uxADe?18Ott~m1Fxl5KgCzR~6@i~` z@2~6n73Nc5@l{j*X@ms!goV&zA@Sx@`NPD?;@j99z_kA81{Agg3oe#af(888bdvjS_%<8{u-v1ko_uE;aEK~~o#mJT= zk5~cy{)+w1z+Bjg@r7`_3UhyU`VEMrac8AwdROoRQF^P+OtMx!g(9m#>4d&L5B*C< zawgYVeS`9{UE`Zi?6xx%ynY@izy10r^BhIBkZl zui7v|&bwRKXGTbJO~=a&vptS*2kzI@vF#>~a>PD@FXwvgx4f0My>Aiw-W(q>nQ<@u z>@n=DH^!c4#oPzIfMc~iXVs9*l(6%pq95Beqf4CWx0++;V^rcz41Br^vcZMx-oO`eQf^ulAYus=6c)M zxR|duIXu9psHkKDkNxu4;$T-QBxR z-BG=2VT=9l&kX(4&AM;WVG_f)pT8D(BRw)YqIzbX5Q=$#Ml{>5DH;IUoUk&Y)AF9pI5cd4Jez)W*I@C(-W znrZs}o3w9E=#K(njYv+GFnF6riRcJ}0xL`s;y!9su6Kb2n%-9_9vJPspB}F~Ofh!G*$@eyLf!Vmu`XvEH%QeEjEOH6ooPdaId! z;4ZYy8MzZEOiK z9+Iqce=^f4t1LZgUc%lTFCy$q+oo4zA52qG_!ZdSNX(rW?>jMGgElH+%X>?lxXQO8oeT7YaM$G9Kc>euGIZQLoRo3jK%27 zV4wR9@HzfDDoYP>Jr$77kPldw%5lGF>f)hHF;~rz6Uf6=H|kctcyIT1Zb$ZKUiTpV zXtCbv@5hA2$=k;*s;il`!T;o~*=DT7$CU81?&r_HmuIH^fTxb1`pXtGeGdHZ)cIuA z1RZrmm=}8+`=%O8+5NEXLS~qA7RY90w1oxP0X(ima+HygfB=$^_(}=9yqNGo+ZR4pE^q82=;O?$5tm9Ej7`=zdjE3F%>f=#^2gtKYKC?U zVSo2&KKn1`<7Xq+t6IUG&}Wl;?u**em2z|aIpjVjL>_6TYe373mB#ka-^BI>qJv5o zrMX^g??><34!{Fjw&YFN4;Ho@`>Dk<8FRfqvt8J$|g$Twf3QGRvSh z)oa=I$6*gdGf$5M_TBxkd+C$R)^o_cl-?(>3TKBKJY%mb-pKe!1+KQEc*m_ z4(>qR2&-g&z;6v{3HJ5+lhfgQ@%hm6jW3m%+quO#G2Nkt^X$uZcK0#Z$BuKK<~LpN zd6cZb-0+J{9W(FkcYJDUj{*L^@7=Q#kjrYk)FRjKPZ^nCndzij@H124W~SHfjt|yl zhMWZ5rcLd;Y87r_&nZn8lv&OQEBdat>QR_4iSD+R3M(#mwZ8F7Li1=;aN?NZ+;x;W z$rRW>XOXK0)`_vu*+S#|X9%60q9va1i%-4wHv179KSJl5IoLp9Wnh$DS5A&%jmVc6 zVx;o|7Qk;o4sk3YE|g4cx|!hxIQKtgJ{9-*Ke_OYVw4a%A7}-ASIEX)6QIwQKwj81 zQvG+2O+3W6qwz0t?8AVe)RmHKyCVVT$)yH0tv`hkwgmgMtJOA^=J!9_@4ox~iaMjb z*RqwbW+PW%e|F@Ayg0)Bex`*>@&x@o{|Hx;6h+MEI|z?(u}cQ_JT;Yb!1H5;HWg<2 zzITF9qwk;aUp#RCp6@`0CiE-yKVl^Z+G{Gc*ms{uH%zn-v~B4*Y&A4q9>TuaqSHYi znaX6yJ58VKR5QH<_~-CHjZN_TF6is*ZL24)Un6p`B@Kp&`a%)Mwz#jm+kE~}$kTx* z*l}mP6ha=!Q+~FmCV70%cd@atFxMyh6bf5yo=Tvfjr{EB;b-rAr%&=_ncgTP&SPJ8 zU1@>*)%XckuxConRU41RPhCkqHKO5G$5wW$Hd1@_E*rG!2>)EhK*Ps+D0D6R;UnZ0 zoNLKR&>p(6G|0lj<8qiUcNFVqB;mqO3Px_TkHg?U(%D!j4H2)-7+5xK_Yppe1R9g|F7>#>=a3}$MU0ITVhw0owNTj za%o0ylebach?sq)aeX5E4NN}PYSXgBju>Y=!Mgv06510|#b3goJ;e`uY?eLDDxQ@& zi4P{H{?H#2S2HV&(gZ89F&eNj*nbw@$K3=JU-+7u@3G(<+JoDVx5kq`AFcl%KA-9Q z|HYpk1l}&%K1VNlrv(8E985Gh4bpZ+vV#NdKkWLY=O_9VT{^QRocd2RjT~5x7##S2 zd18$yRzq_^qf}{UJn$A^_Ie$8w2z*Nrikz2h!X#x+_fZr_}bwA@z@cY)mhH-nJWoxkSyvFfo zewqV*vZ&~u(BDhI-&n>yAup2sIJW(LKjVGuThHa4p}C7qrBIY$zqc)7o0;Ar^s`r; z9{a#dQ-04LdOB>T9qhm69@-W;Xr}$`k8oWY8r5c+WBWbd*LV3ueXZzgZsG9H@`1`T zUb|+ZeTk44ss*YE{Y&RNetcR#alJ{954|UCINB}R)ASxz9!L0pJWjYzSVJG1r#-mS zk7Hk-n)=7~*PZ6CxcCDb2>U-r@)k$@)wlF;_Sg;wdq&s381h8lbZ7m`phS*+jl*w{ zXTwycf7%&rEj?3Vrq^YD?cV$sWa?mz@eu5ZDoYQ{FC#C*!Gkkw-y{N(#>ca$M`ZyofTA zIgl!(@f5M8Zt&N05)S6R*ialSAWTK+{T-q$lk6}>D#G>sbH@4GcD`e^k>51P1NHx@ zQ2wPS`qB>~OuVv|&KEGuTu|;sr&~WT&L1$YX9+*6xKgsfe+v4OvF?}nZ(i&58kuEx z0ps5d>({dbXW{WJ$meK3eSSOI87MTKJ^DXS9+__XKlPb;AYlulS-{^+VLihyyfPBO z5PmIaHS}rKC#+$`mzj5KF~9I@QZd&w9(q{U#B=V^5&5g(?lP81K5}lP!Qf)Hrysh@ zxw>{ZBcXi`AJ~w!!~JWnq2({o|0S=k7z}J3@HnfEp3s-zUw(e^(}j=+)$VzaJ@qe0y?&M#evn^ogXAr9J;ydd$l_G|vkKMhYj@7G)ld%x#XK2XPe7=>3gRP_2 zTkU3gE$rXtl6?Ph+Q1Dz@9u?-MU3JZKVAx+_xVlElqO}9VbM@Pjdrg8+k6EKH{Hkkp>IcxXGDyu#9t^50V%Rwwg%$KmAFx@&cq zKM7l5S-&YethmL>5cNKt-(zAk>Makx_EGAZ1x~nsSk%{fm>l!?Jm-;?;#urxWl6{^ zTjuj&b`I)8gn&gp@(2ag5w(Gg*h9m zU-yZjn^kMKx6$~4*81&~-3?WDe)-%5{u(!ByAE^{;(r=DMMC>qIwnu{<+rb1VAkfm zsDpdwY0ZRvTmXJ*P)2*18ysv%u&bwwh0rjkx`ka|g6cXFvZP{B*v{vr`ykL2G zkIY<8^`}Pd*kGpT_|ynxIWaM83;m@}PvuLDcAm4TeuP~Dd~kVSz^FUvZx5i)qaq`J zmOny{y(Bhwf~NX7cBo^5pZ%ck`>@Z3>3S?n<$+}#6J@3y;IEYa;%nL;#=^0cb7w0Z zCXP=)d$4_$jkzBFE&HIvoS)kRTHV-CYOa6ieopj8K~E2`d>IRrk_0?ckdxDX{q9%a zQK5D**wX%Rk1NINTJ}22D#9Fnwm#37+^FBW;@X+MYmPqKxuY=(`BvLGp_P}0+i0H7 znC`X?`fgavM>vHK%q)>%zPO$3V|)7QQW7oghlY;b!+dhfjlew~rHDsx7>kNw|LL@= z=i3$^snUE&c0Qw-KOCyRz#7;muqPbr&h<+UopEmB#1Kdivb#SrdJ-M%V&6-XDgQB; zuXh(;q=P1j@@K1zd&;S5h3xc5pOuH0OmF?#URlvjB0YB^G|E$avD;Kiz^RS71z0U@FUq*5dm4*yRvs}*)m%g&poM_*RW;5+KA${ z$;>RFn44`FWIa3?CV~lEP|f${>KnKN{#lz3Fv$)UNytH=c57k|l$`z`0y2Q&6{R$X zNy!QX)<^0h@Vhhc00Lge%Ov4c^Pm3*f18_2tr_Ys5egv~Ae+UYUz@=&iH&Q1@E9e! zCy1AQhydV#SEl}7;`254;ZOnfM;VJ1{A;p~l&u&|7*W@+*MUFt8Aq$T?499AwdJ`$ zKQUR{-mSsGz1m%SniJ6fQpEx2D{5U(JS(&pKhc}*Tf9FZ_%S>zZ*g;CGgG1*NAF_7W{9!jI>sp zb6?cK$Nup-=-<9;>`nuXpOO|d72O-T+H2^&arB{k0iRPq__@2be0R-o>S}J!HN-b*m-uk({khK7G+tzcJ-}X0JJcI~v1Qu|X{@pBQL;bgWjF>v8$C9tSvjK)#F-8~$VkBTgB>5%SFX+BKPTtizhdbE+*aZ8lO}nma(+4N1ei=x=cSfm9Uh-9gfxQ$q zz<{HDjl4dc<%vvu`JIeoJ?ohUb4VdNWY3s0M%Mm!r41El- zMf{Y9!7p`Cy9x>t-8_*6O3uf6G`2)^|JU*FaVH5zs1Kg>c|13`T z7{?pq{)K?e)LsYs@@NCxk8ZhKLh%lxo(J>Z_RO`Os(K@>Jd5@_^z>XdOv3wuHHG8t zNb5pYi})GP*;0Bwju@^nU5^O9-5zvwhPHkX@?M>{+6S85IN!Ji_`mwAH%BoZqqQ^o z9HuN25O!;HY;m4u`Rz|TS!?*Cy2SA>=8r*JXmc+Y3I#;nq;z}ddGyP*hHu#i?qcpy zCnszA{%9%oi?`43`@7My? zCDE5S%48<~!1)i5Pv>`Ta~tWk+VtyRUP7L^du<2+8ZUu9wZazFTOu?4II2*z`qrP7 zm|Zi_a!RJe70H;0+z5zn>eeZlPMyrIWx4E8AEwSUuQIFh%n4?dDM!xHe* zpQXGOP5Yqn`J9lW>avYexdXjNOQ262X?(+FLVnTt%oxl!8Y_+ULffZ_i5cv8gwqnA z@A<)3)tYW9EKscA&(vr}C+73%{Eoi&_lu2{_((z?!^MkXNbG?=Kp6~kuwA;1(R>MS zGM&#%hJLnDHyyjz+j_{$|Jv{a=zESr!qYY`aaf};(Drc+5)DVPz$5D(Zs`b`?i1wc zP=AkJ?;_?CkoSPB*g0%$&>(Vv(f!uGGS;%J%PROgSRQ9&q)*ngi0xa3@yO;!N=Leu zEU+clT4?mFGM^zWrSR*LLu+@41XO$vE}2C+Ab_Fv3(~Y$+Zq)lvzg8>fWM#>X(`S& z#n&@ZN(r)(BOZIxdN1r)M@Y8gYzwZRk)I@#{_DagVaa@dcsX#rEbBUk@3HGZ(iXx` z1iw8;z7S8(lI#N|LeCw*8>z5q{kTJ_&_p5Hnh&tqbvSre|Ws`Nf>OP z1nnHQmA(&I+IDX2Q@0PFw;MiW`|!RIKa?50NzZxc`Md{jXg1`HTJ189$6++=aP(j* zkoUTYjbYzmKis(EYyOs)$Y}NIz3)ihtaTYc|KDFXys@)M)AyWxr0ql=$`4-r>z~91 z#*nH%WKclfcj}&FY-`zVV;f#r*l*`@JbrZ&KXhpWwQH$9v2H*PG`8>6?#Gp5OYnSz z{Bs*^D=j^# z6Y~eRng)I}(=`5&TiTIerq8>J?GL!m`YV3v=l^!co)U9Cjh|jUU^(s&=zB%&Bj5#- zI6{1Dt;o+_JIzX0B^kMQ2$*Iq)?Z1U>o4E^{BTYC&@lUX@Dctux7*v5=xbUi9{bCI z-^?>nEW317fheP!a+0Yy0-rQwM@F0JN#NJEw<;>k^yj#KM&!@+@YixVP5C|M`iHP* z+^`_QOj~(yZ0~J%oS@NuTSk)IVXjZKx3E`qOUwX(Erk3l%X|95T#x6o<*jaNGSf63 zMBerp#-pj!;Q3wKB@_PPhwcgXu6a6od>@OqcpmlA+;qIJYduPgclb~2d1^iW8tzek zFw(okXBO6ztj6J$#a^~8DRjLX{KI4HNOm&pcZXV$z{v0;Bgsps&UB>njo7EGMM*t+ z4jwdK5(_Zc4~!mkPls9H-+nwkDpBlg>F9!d7+()ce-+RQQ#Jj|TpR!~P=xru(~Dtj z=^ua?^!(%s#@;_k2u&QGO#P#X@8RsKUvq#6w-h@Q3M<+|l)n z{*3a#f#H!l zXnNU1L(C`p_}NEA-`Ho-t~h)@i@t z=x|T=F-vOyHq}3iq<0%)n=2oOVZEERs~+SHc7s0eXt0#alV?N!zCuLBAnervem|?H z^~SOm{Qdp+bH|@oh4oZN{X#x*mRuL39l?)j;VTM z(cTyJ^Xpxy{jMEus(8kQhw;#m+`N zm($6f)lbI{n2o&5%+oSDzu4E>ld9i^_^c+@X&0@gU6hRWJ2iHh4%cf>J%D_Pjy8nR zdRmfwh`mPBz8HTZ8bO;%@kI2ituZWn<`wf|#aKN2mrRsz9I8i}b~YtLdUBC}(%7F* z*_|(i_6b~`OG7KY7A=@x;oEH3u+c=ZtUvrW{hY?}*0U^~5Blw`xQTd=bHESQdfkNl zfWO1Gpn;hfKa`)P1rzq+jR)@j_N7FYGcwYm?7h}-&B4A##Bf|v4D1*vb_Ug0PYIoSE_{J}ui-z%9$=|QDmz!g}0lkmJ_43Qo>v|{tUVahKZ{00pfs#hL3 z4S0Zh2jOtT;;A%#m=>p1{d^hVnz;l*Uz~KT{}(fTy-G^gyG-c2TdfJg;oR&Aym%iu zL}MA<@6E^W3_HtjlnsrV=}FKxvXY_aM*2qIRhm=OT9$bH#v-3E=I%Xq3GDe;iDvPr z;id7A3z5R4Dw@6?AKaGo%zGSrbq#H-dYPG#- z>Pb@SPbSiq{Sw0(RskOx#h;(oHBtYYv0Mx;6qO(z*i27Cdk!D|XIC?Q9{j&!$mJ7w z^LA7D1pGTQKb6;TaQ{=|EmOdsdFQk`qria-qw{?Z1%5`n@RTjmZ|9y9)zw9Wv|UCR^=)VUD6ffC17A&b-?Hovnu@p?HmOo`1^lJ2kza4l$BI&j=%bLRt_h{0E-10s?5f!FKSgLaJfx zZ2beM1}^}e;WB9f!B81>r>i^F|LM_~d@GAsKlz%b*-U!M=sSL2A z_s90`v4p?rt3zuo5RU^I6N=&cdwRU=fCc<8zX-r_Z=~S^T*6(n3ZF1YMn=3~p=>^2 zjMstsyw+lCYrErg55+G^#>=JQpo7PEJ*sRve>cR)w-ujUbH@OUSDHC6lc}hi;FsXU zLQzI^_xNzfdakfSk=koxzPZ15WfI$kPE8GF`kmbzAFr;=34XlqzFk60dN{n227 z{oOs|1Hs`Hx0JvL@i0T;u>!rt_V-<#`;6XS)QAH+<^6US9@ z?&!UH6uKD81Mq(~7K~2N-u>MAhI146at`$2;nhz}&)3Grbb4FZ_wDJ-r>g<=teO=i z4$O?Yzh@#oAuaKNyCy+DPWM6{O!9b~_Y1@ex9WpxBK?*?Kb#%yjs6);|po|LGf+ZU5@DP{UsRZVvTt*@%1^^nE{g7dY2i z`S=orqI*A%&t+9K{ulEpncHA*U_k?Z3`TrLxZZ?Ujt$Lxbe`%9;=It*8kU{6$-*8N zzhR=a>_>HzJS5lvVtMU*@859HI$cYQ=Sn0o(N-V*ntzC+5d~oUo{WgP-)2>p$M3|Z zX`s_(UYd_scfD-*Th?DFASI4mP8p}?(}ho__)ez&zab~A-~T0PTXdhVDp>cbNWzPu_ua)PRJ&qUIhluZP z@_Np8t<#Qd^MpJ=PU}$;ku%%2S5@&tGE>pd!Z68fwr~G;58VYsBaym(uD1JFTM$)baWN9TQ2rcLf}dZr z$lh!#r2NfDh>rHMgmLgc2l)r>Z?ykkBMU63e87Gik+h!J&JQrv>q;o)k+dSPgC4K5 zE`V-#NKRg0NAUpCJY+-FX9WTgP`sgmJXrC0_7V<+2Hn479umf0YXIWldu*n7g~T#V zB}<4f?5nR@C_Sc|P8`B2e&|s}E{NwsqNFI{z#3^y3G}a^>#3_DKUi$PP{#tXg~btP z>yjaJf8X~`6k>Ev;92Y4mOkpY-cpi#n|6Yno2?Q3u4hiSQ}*RqY;`nuo&{%_eF*yofZ42D9{S?=kXKGV(TKZ^RE zf9uv?%;ZQd@anx^&a-BJxN-Z&?Y`R&#MONHp+kr00V8awwj^wpus$<4iOpx*f6$%; z{x9GU7L=C784B1_`WxMs;H|KkYIz*+c;v&u!(T2-yFXK@_&9p$RY~sk_YCi60(XInmcV~3vbMG;Yx&*iJCF8g==#ByFF*N=&V|vE z47~ipLom^Q$(XON`nc`o9*=xM4F7lY3voT{e-J@N{q&a*k?V)?<7H!Az+Trzt>;W4 zlwWy6F%s`;i#V*;<5PX{&lMVG{f;uvuANVZA9?$7??sPtUSWQo-mw_=T$D~t<9%KF zetB4&x=KKXG9qIf#zL{0&*?=S?q}ubWyWjT;mjSvchlk%KhrOJYN<62JI`Ed-Apgc^&I%yR43)JxHUH5&DYM5CJi+ zubT_|Z8>TC<&)gndb-{)I=!HV@(u@kwoSr#v_WE?OYA;KfLknmUY^a=skE<9w1v>; zF?pZgqC^jy^KGH<2)~-=e4ElJMt_ISP%sfMX@&Wgjxvoz`@@X`h)G~;MMt=8_vGkr zy>_HjyHd<8M0|3cW8WM4){AW7>4(5aIYZWt7UH)#y}?%->(D+;et*HvD@15P7Fp2t zV*CG?;ZHY#=Ln(xZaMJwLc3ilemnW@0YU+hG|bfy5;&`5ZGdMIm1nHN0QMyj3swXg z`8ifD1sB4D4u0pN-pudx$MG^B+S*hK_#fjBTT1YS{uDuguTww?{5A(HxKHJQ#(Ibd z!Z&9xf!7Xg(zy1=hVLqdy@IF)^rtKGWE?CB1pen2-JdBSWEOi z_wC$L-fv!KuW2ve=sf&|zfeG=)n9znccHJYudqEn5%}i#kKcr)Xrm0v#@;-CIjoxB zdGWuo_bzZv9c$m{NTq%+Db($)u;iY z2E=OJ!CO%g4MHsHw_DU|D^_bQwu-i*)+)HQUchSX#T!D__kUJ03*393^PTrQ?|aUB z&TkJt0#D|$W}bQOGizpReK}tV_2?|Q0)8pj=4-9_r0%cIH(VLllQi6#bq^obq}LUE zye28aQZ5ROPn@=>+vxWL9b*c{VZE1|J@>b7jOWGwY|(w{V?=? zRhybKgyv~eGhDCm-gUBt0=-?t3wxOVN0W-1sXiOGmGrN!dcX*Q+v{92D$w6fWfx&@ z+$vey?+r;2&P!W*W9rnmSI$|za`L87l2>c?)=nFIKELMB!h5gUL;bnnWwnN8=T|u4 z=tKT3gPOZsSy`pHsyy`6hrL!j27B_!)olOraaWb`tI$br{j%Ff^(XFSE`>V`eu$5s zH2KW1Y3o&IxJ?u<|8`kqF@>}g+@Dp%KUgWBoE@=<+ba1{rpAeGN~KbWs;{}P zh<;NG0->SFzjPrU8SvEX`M>?f@bfdpXC7Y8uhQ``$G5-LY{7bPir(7qq3P3-zDJ&# z*4H2YLuKTtT0X6*c|rkG5+>(F4w^*k+r)1dcj%zsUw9tes3QA4o_h@Z z-j&mh_8%$e=c#$Lfe0rG=nw-aLoHvOd$QWkix>DAUt+lb`h5e`awj#X!9M}uWlH{d zUO3_dp863{_%0a>2$ZLa8`aOf-Z-EX(&3FayGexo74_S)bd%obCqWSn<>xKX`2l)O z)7*^sC+v{=0eLge-N5pXvF{kzj|0lEUw;4g$T9XKu$R=z(!|};gxwawNE{9RtFH?4 zbkVa7?mqoaajLec`ab`)lR5&jm=glR|i+bu4+5PagkwDmqPqz*Lb=2@1*UufJ zJ=pVR#>fReKgdo=PII+HKZAz^2B!RvUSGWZ=2RMl@6Z~yqx)|jt` ze%LcS1oCK0_f-jtq6dHU)ZrMt1OEK{t%Fa;$3H*HyK67*NQ9cZhXaUdK9IuQ9v-Lp zgpcJ@T{rmhI5k%lC@*CASRC{Bp8A{x0)5hVUk&|IU3OMq^b_17jIVx(m00et5qr2fbUx|S4S{!D&+`4>FO(jNMt}91 z5B$=k)1Obby?FNeP{cF%{Xx4%7Jc%{wcyW>fP#|O^z&}(#rJacI{YWvKRYukb(-0! zuQJce&9I|=pU%sgo?79($@^63wG7C!GpmOLEogc5t7o%bRr^jLT@zW`Z zSszH6pZZ~WY#Z4xNvQ>$tDWIZT&_1xPlHW7pg6u{F>iD=R%8DV<~P%~;D#yt<~ZA0 zKLhrw={wtIPPc}}70EW6WYCwLcI6yeoBl?5TqGAa9sO|(e^A|xo7;WVobKV&UP4Z1 z;k>axZq*Q?H|$wUL_EE~eU;jlX$;#B$R{nyE;s^CrxKV|YlQ%^h^8FjDZ)5>5nxxWqDc^iC zr9Roe>(_sUjQ$GrmQwA*u?3kx#IJJIUe5{j@j>>%nJO*(S9h8Y`&K=0eiDPdlgmPf zAD$=L3kO5(F^dYz%3i|T=?hXDzoq@?@sk^x%lJLt#?11@czmfT)wQTSL{=<%2-7#*hzClapZS?u*+*H1?3EudJywNyKS+}gJZFV;<~V=g+^ah*6j`eRN_`seff zvIKI#$Im@A^lvPEP&y>Q86WQ&mg}7@Rbu{%M!r8K>I40&X5~yNo$s;iSjOvRPpwd9 zDPrYsV0=+g8Sm%na!0M~Zj%!H;K92S|GXq-aNlm6Bm@Te&$H+NPB@!LM8AnpK=oZT8_jnbdN-&kKvbS=1E_bwmq zx(0dFe4}a^cUTtd0}F)aC-O}Eqy>_j-ltPyzq2AgW#*wObuBjyl)#Zc99XYQD71b% zC+{WI3o<-USz0^0yJcLL{2>1{vX^&HzFaj#HK`jnNGj<2^Kpt*_#2+VVAVvoeK6S^i23iry(!ZMl0TzM(0?l+>p%0uUlj?HgWC-J z-Z^|n7cfX7w4Muj5C(bB4ZN<3GmIsBB}G@AkN0y%MM@+p(*FYr6YJlcB#j8)W52aE zNrP}eb*IH`M;aT9N!`3B;(gDha}&0E1>-oo zf;{!#vpY=mUo(=u1{Le-4-47H`1MN=pWZ!SADyq$=-SX~TCClqtf*)<68*REt;fEJ z*%EqgL*$+I_BQ)py*p|G=p6ySx@I}n1GnwyyjmVPq+69AZwkfv+HenNf|4}c%x;5d ze7fSu-TgQ(IRPbHB^IsM{y)AF8A4WRj{{Pow@<*_o2L__*GPZg!rn3qN1N4tIy z(cAg+Yfik|puWM~=e`aGe^l8ctM|UYBt0|zBb+dI!~7>CKo0z8rOiF{Xv*R1Ztt=h;d0QI8~P7?5`IvZ-Y79^%v>brrILh$ z1JPq2iCHrW@irMoK>O(@#wR3b)k4ySrpNGNT7bSZ~ zgL;7++)ezY^I9iO{TKb8=I$NY$LJoHt_o0f!4rv|V{!3naA}~qySba0?6vMaHm-Kc zcm=O;%C^Ej0sAL~yHqVWU-`o(*i-Vr;`-&1M)?<^F&Sf^FD57E+(lj%J>d%Eab&Sh zH=cW48rg5q$my7GoKDe(t|1Y{OasSol7K;w-h-&inC~^E+-ON$V8Fnb}w3-xud;2=V(YNhIb+g5LW}=zUonfBlXyczOih_tOY}|BFA= zf;l1d$B$mvl}S`8o2Jzl{0sh;b2iH_H%%L4%4GDv)5XM_nI@bD$#GkOzl(UETFP;+ zsm|!zNS@+6xB)g7EbKb|^Kz~1sp@S9^fl$ivs;h1{h8K}&hA>OckWwe3%Z_%^PCYs zY8XQPcMbp2j;`J~4=c}+lk(k1v%i^sHVyuCuJZa9ky~#rUhrwpyOI{#kMvu~kU&1C zE_-9{tACRZfA5mKuO~m+JBjscQI?@p_;t!M*iscRfI-aayBWMqyZ$xdZW?c zKkw$@v?5vEkeW%q1Yf~^z@)6RGYS8JTy_tlU&K>JV(pYHCSiZXYxRD`pamjFB!6K( ztlhN1+CPs>UJQRP`R!K^b2e@Z_X(Fv{z7$RWU(V@&XV|5!In|Tw~iPwSpQbUv2LG* zyh--|u|-$jKrD#+!mGK6>;qjwQl7hQFZ@x{zY_ZRZzgW6s%JuHNY+pS zdkX$=x2&#NePjEDllT1OldBsVr4BEhe2`#&WzAeTn`dca)*Aa8F`7#yiXr`7 z6^VP?ar#-BRNamA|CGry=d*JE{8uEjf6n@U@Eg@0!8pbf%Ohg(>F0j7n(!&SU#Q}? zOmj6IzmX04tsjtom3M8gi5&d3!&s)Oyg0df+4WgBn-)5Iz6pD7nEYT)O}7v|S07$D z&;)sMCi2R49y?0jKB72Yg!gY+7fg9MToI=lqlr8W{yBB#PTQ&==Q{K@hOff>Yf>?ONJqctGXhtIk$fUgM?e zF6|-}w0qRy_VyYE;KpThljd@o*JBVEYF z*)>X>M>k2`7Ve7Wv-r0y8m`(dmp>ibN$;yy>bHQuPn|k-dd`&Bi<0+FIfD4Ua>8Q8 zv#Rsl1Iazv6+80nfq}vO#)U3P`Rl^0C?($bDjQeu$&=G2_uVHy1AbOcJ0=h2qHvWe z{7<5X>U!NIS?miD5&gITf_v<3x)Taxmn=4Te_FT;oR`{5EyXvKf9muZ-IG|q>JB;> zjpyOM9(R02K%iPlTK?bZzZL_1g}HI_=VWY%`;R`&&C70UjP}$0N9+IpzPy@^(BrRp zo|aKQAX_-|6KFH8i%K8T+@1y%o@ z{*8fuW8nWP2GpF|T@>;}gP2QZ>MQyuIqqZF$A@1G*Qc`-pD}#0C=I8Ebbh_@+pzedQrKum})tu?A zx-z+5p^~B^cWr3D5c>P?^luFOe-{HXPuFpSipmfF&w@6i|4FCevU%Zus4h<0h2xB= zQ&XqCWtj2K`%~XYoB2+*r>gkpAM>Y9dn+q_nwTwwL8)CdD^W?j@Mr-N3P_Y{Zcdju zc#1py7r`H*^-*eP9v@u1K7MfwrwZ`QFn?&pd8^}o&k9(w-F)1GP?bhxf9 z;brbaHT?fAd^Gs2Sl+o4TmNe=QCi@x>y~rNH4|1WH~Rn|lh2o&Cuz_bZ#F0`sGkro z?tk-#5X8$-V*mbEuz;T~99m%sHM&>})ep$J;5Y^34Xx+$J09?A7uQPiz}%@SP{J*c z@KTp7v`EA0Qes)W7^^AXMpRqDS|fV9FzSNXpMMRnKgP;ae@eabglE%t#LwkjEB6Zd zUZqnN28>TPyO#U2yM_Vw(&3K&EXj*83kSP%J@Ykc&ZF}2-|+uy_z>uS)b1HMK@X}=Sdoj=j#fJG|HT; zi)Lz1%6W4#Ezw8&{m+8D>vG{c%BMun3;3#HpBus_=;h6ZV<$xz^r!Y$=Q7wI|6G_g zb{2!(?fsMf7wOlN|1m2sjQ6uSST%7cdcOY}|23RmwTP<>-}7}g;(^tHw0{rj0l&0r zjB!WB(M|60I{8}L*Quq2j&fX%v7EkBTC|}jtel#ccfQHJt)0JR%b80G+&6l7+4GQ}a_%v1_)|)on&gv-HAncl@Pcuz0EctY z`EfK~_0ZoDlH;;AxggJ`TTs>Ja4}4@Vkgm;y%>DZuuWS z3Flq1i|2Ka*FyhB^*+Yw zxdY%(J@F%!kL%^oJtJ_3V>IA|N$vO(_-p$hQJ)C(_Lm_K*!U}9g=?0%6iV?9k^fuEz4mPu*4*WLWUA5&V00=ZZLuH!c@tr}|#+x)FQS-Mv8 zvFxaV>L(^g6}lNZGK z66WXRR&oAme6AzepR)2azOI&3ar^@Qo*sL?V}4l1%Koums5h>d@qN*_BE`^cpHkswc5?vsUpXTewXPRb#3^+(If&Yu4U@(w`NzBFbx(19}(-B@-um-($C+bg7swJAig#QKedjH5^H@>4q zdLcL?WN|vn7oL~>=|Tome%F9C1s!2L&kcuj-@E-Y9poEqH}L0C8_CZEaeVIQLH~G? z1c>n(J-rKqY5Zm{O#p-G`Mpo}7U@NxpE)m_{D`|Q+o|BVaggsR6W`ad^3=Y;YWRS` zg#RHYhlu?05AbHUJ*SI2QM|L7yBFCOY}6fcI zIMK>U2%=KmOD-FndOUO|P11(2Dw)#v@fJJ*BCRzcN?lTk5XOVf2sk zE5U0Pr!RgqKR}!x>i_N!cYnz8{}C4E>*0taEMI^h^bz|*_I~}s`XP5he)BplJtqkP z{~KPL7$@;mp!^qfjkCG?;e2>w_&}v)lPWS$KHA0a<)eAYL%=;bU++Mi7~h8dNR3KM zKxkZm)oOw*@DeN_(#JS%Mw}0NzN^oJKCC~~-%sCM_ofGy(DSC=ne!^kC;a$o0=z^R z<#)|F`5uD_KYKUzEa(V#^$KK1MxWM<3M@m&O7i5 z?M7}O^s_(@lRB2SWQ1(*2ro_#+Vp=0_ba<9=F@mzxtBeJ%B!^}U8MhYx;qkj-{-iL zSGeU*Vis$U%GdnbAksheKRO8V=MMKbDns&@_9NCo-_!kDO3TPlYZ^*V( z)Srhh&lCDDv;g`(Ijc9Ua8LS|@P$Y6cc0vSk`*U;*ipXG`1N76e~A#X0oqsr&bq( zRlxl?&&Qy&M0JsjmT?;CJs-Z0V2@2PYK6vy57@*0>JSFg_PwmbBZeA>k5N^+A%2#(rEe&wR=dy7x#2nzY?>Ak=Gc4gMlEfq!g(r|OGBr){uYoU zy#I#tw=9Q-+6yYoHCzqXDCNBa4Mg9u0=>m@_q^QtWJ>#dL7r(tLNHn(X$b$&hkn@G ze2@FP*9o#G0t5Y?^no=n6*83gB|g60o~7}Qoz;#H8gK8DyG4CS@UMO9-WOWOhZ{cj zQ%CsSK99oL9bl5TN^9vO@;3X0cK?FtVN6V)Mp?`>Rrp4BJ(VmRXX3BF$5?q3jp03E$MmM2AHJCw`@SgkM5a`&GL0-Tm>8 zwiIxGK!QEw9xg_-H8L-$M!!t*2ag~>3Nl5)E-4>{)s=8 zxc~UqKPIr}k$fuk%2hL%;wcjznvURYf|J~roFFd|55W6dlpfaA+7yQJkctc+t~Xc5 zReI!UY_eD%_$>RA<3sLRURw+3m*Q8|JMs!~-o!$hQHpOxA1(An`$D34-jhJkzm#V` zaQDYT(&KgCKq@Smx7X# zp9%J7IA`Wo2>K2C2Oq-xuR#Db#NzK?cBx`9aObT1ZUX#cp&tA_;&ANt#z>}2dT)yG zdYZp#j2G~EM|WotUI&nz@V&24L*n3#k|59H1pXg;u1eIOM8888)V<5{sXvI{g#H7} z>W3dx<9YQuznzdz_h8Qz6seUyGMQQ+4}7E-O*ibk9vw}vgTKi)m6RJFTweBe%{_OC zv6j4uHKpbNH^lQnCa>fH{6#Z^(~Hs!p`DlQ7rX_~ONb>uM*mHE>)t*$pFjkm6Z}DL zd`z^S^^f{L@6)z!_*2F`$ijK8h%lP4XEzZxjC%+e&(l;GV#bH#f$Bc)+Ad z39LTx>k(7CzfbVk?DqJHpue>$Usj&@qoMcMA4C}V+7h~VQ%AU8CE!1}HVq%(3IV-F z$~(*1_$q8chI2=6{PY;?cixBp3(d}?MEwD=KH4AK`(bb5eflX!KG;974&{e&z8vP$ z;^QNgsvfSu4E%xh<6KqXvQ2J#tN%u>JX?*XG)bK~AE8M(^fR_|iu#o3`(*Evv)J?g z6@0EY;wc(XV=1@dYN{IXK)+(wLg@cz_}&FYQObiCHF|nG=$zNxPNd&;2{Z8&PeS|a z=iQvu3fdTShkJndkIJDgt`^3>mY=V*q=x!-T9+z^?a&z!3|fJb(hF>!ME!xf$%bf| zS2m(PI0*9IZm%`8IZLiDedywEY>{anu0GSBPr_*iIKs`>{&Q5$+`VBGUvfRhZyaAW zO{q^$z233C-NsKvdyeK)8e;Zh`9$w9ce*l|p8rq$4~Ag*^T9W!#ZW=lT^RH|UbHN{gK2LXd$6JWclDtcp9Gf2dqDC3+ zEk}OUt8c&E$ldh1TXUBu`ijlUm$~~dY0X`y%wg3T_3-S3kdc@=t{HihXgmX)5nIABF69S@QLn3*KY-n`5RM ziXDXx9F~c%&huC2X|;}Be~x7N#Q&YcNjNl z55slnVm#I#IWzu1e3<;dFS&b!AJ|`!3qA1=pY>kaPs4cyG(!)dMO+I}<;9ZSuMox?Y3x$Lb^RBDxCy zaH@P(YQ(0d=Je-Ko4ASmrAd<$M1H6FjoA{jg+@T>A7PSr#~M2LyWkI%q|}$waC+$I zQZ@L~Y&L70-gWcvycy#_?^)N)7k}?`!uNnu?K=+gU|L27`VZ^t4{qiW&@Zktsm^N7 z+eUXJ1tH!ypb|#}FWE}o}D>jPdAFE2OtaK9_o3;jmx<^XQw!}!l3pU|Sd)ZLzfBYz(!i1o86 zx+m|s&RyPaUTzLT>(cPEYkaulUbwY;A<2XIoC9V&K9>8PyCbZ})kj7)qAz{8=dwZ& z&reK=_sEA1@s$(YJylyQ^gH+;3XPskDH{6z_NRk|^Qj09Hp!Cje*SPj{ZAvd7^T|M z>pA!5@~^s_E}pj=zwGH9>=5~Vx-r=FT1I)gP#zy&XUmd92KI#gu;Z6!&yC%)2?E#i|ht-h2}RrdpSf-TQvCp zqQ2}l;oD2|_!Z)3o$k!wEIyxK-bV5n{`9hEMf;=HHrg=YJs2LIMB}kufB$W)M(?1n zykP0-sWGHS;!my6)`-wWgFfVea#7z0o33Rl!Az{ZC7|Do#VdvJ*Zi^ZfVZg(@$Q}_ zbsR6yc(4WM`y^KQX7MUM6P3Qs#`!e%4@$jTmI+NPhJFwBHJkb8>J$%NYUTSGqLk4& zHw61cfjRsd`Tw{ckSg3#>+Z8Z{`7gj&#!LCP5-^eUU-JVlt1H-n|-+7xL-l>7m40M z?tZ}La#--o37>ks=77ov1vT8xtEn0;4e<$X4cErCO5TP1Q{D-**Sp$o@d>yDLt(h2 z4p#^ETxd?w_;O03cSAveRN6_9R@jQCg}idxC$Hg|mxcXr^^ty_cmd|;^3c$N!ZKm- zkf}+A^9?PR`w(Q zoqyLLD;xj6)c<7v|6T@Z)WT;JO;h=WVm-@~X#Kv-v895+)}kPzW8I~L434&3j{7+0 zTs&Zbf4z;eiPnJfXa2%%_4#Ouvyt>g%0j2_9j{L%*aP(o$=B?uQ_47VY~0U>FexK#@KL;hQYGr@@yYpUok#F_^|&NRmJj2zb|jTVHB_f3m+t;t#Po&F4npY&}XLMVGK1DHZ3B;!%sbAiU;D3e!2uOG`7j*1!@3vB$tZO_}-l<168>QA)>pEwP3G2=Hh_ zbVVk~Hz(}<-eZw(cFdi*BNl>a1$Q+a^OcxV5Bu0H&%9!;&5KXWBzh4jW;*)kl{t?3 z*GOMki!R4y=e)I#{;z9WaFY0+<3dVkHDCf(>`A_3eTdQf|4=|5w8tM{>!NQp4G{|% zy$kTem)-shwwmC+C6ot0-`gaNr~vV}NDRnLy~KYCgT@Q8bZ5#*Cww|uUnySoqE*68 z+%}7Um%o;e=k0i+^IAXo#^tzQj^g`MuWYa2yi@}fPd+BZzh;k~!}Nc-Cw>u_HU9f? ztvEG@?Bn_G&ny+rkHr|5Kp))NH_2m9x}bkH$2~Vhh>sHrfDdm&m!*YT0l-IX$=9h4 zN3Sr*>y3o5Xz0f*GaK#GoD%#7d`x2BkUa$Uw=mf4e_%bc6w>IvT8Lj1M@EYBe7yZ? zcEi;6^L5jU#u%)Mybk;yXvnQ7EoA+%qQCJAZj~^2Np@LG&ANR73?_b#RVTUU8(#|h zAAnz$KgJklU!yKlGnnYHxJOVZgQ>os_B9cv`f~ZC(UgA+cN&Z<3JApk?O(9+=|wVV zurfNIL`ap;cR0SdlEH}Y7%SH85%nqXY5b&lgNx+{nVM`#9?H(Y!cRS% z{bkSJCeBTt!M)H|ZPF`g{cm#P&H0)yPkj324-Z=MihpJ7Vi1No; zbT#|k=d*sFko8>bgcCdNF3Q&6d{o;op)fw8Eolayip?Uuq+3QC^9tJU7u*W`HLr{+ zXXS%TKPP29G3)@rP6&Y@Q))z+V^0uh%S7K@nxtAX({DVqWT*C zy94}$1y_A<|K(y3_+P(&^#%<;dO1ndAn<4BI$usG%r`E2!Ot-_R^VcPX`pygWMn%C(w(_K zTMQAQ(sp{UM0_Nr<>JA!p855*MWC8ruJH)A!}{@V)Cq=#Pe3IMGDiqSy|`V^Ok_VDw2|t7+jv67c*#IErkY!MEomp zgqAV5*0#u4&|LdFgF}iA8~>us>&sv(_%nI-nH&bEBR)P`*W)yU%d-`RA&IAK45s$S zlwVs`$-BNq#Q1YaBc*Re7U=P~D~n&mr-2@D!0Z#Oe68(pcBSE`Mh1r<{>FJdE6S_s zhKeFbT&mv9Z4Iy=WXX<8p7Z-%yz}eq{20B9>bpyPjq!f++gXo4@QX{Pl_l%qlc4|V zTy-cSORlsfR)o0ey%DF7p}n0g8EJeCwQ!s#de*D|<}k|?Tqx#@_6NP6kdk;Gu@se-5F$(YWF7Uk5hgdC}0fijp1PfME*#(q#46juIa_< zL%tc(E3jVSN#sB9XYSNBeh*^>N^K16k#l7`_ptmRLtleeiOW1eH9YoD>c_agT8=ZF zpFD|p={_RNR@i6#!}^Q;ZMGdYw&dLYgw?mg-Z{JO^IZ%Mw#W@{k6H0PgQG2@4U)XA z^}OesXiHf{4kwk~;&_e^Bz=SP2xGI-Du(c@Aur0u`nB^a} zr5PPJmY!iS(Q{a8ST2LhVGsN~ZKj^VBwuACI!7>=@Db)4)&p=2d2CI#AY-S@bYFfr zzx>mMUL5ROmF7Tg0t6pLY+{A=GWa)2#3Pf#??K)o-WA^GME<6$laCk=OD`I2NKMyUS^j8akm>cf_VWY}8$&Efp`mM8KH=xW-7R>&I}!YH z?-w5PfZ$J=)~arv%kr(z|J4Bjkm2q`_`2V`pn<_hZ5HE=8<$0TqWl57He7=#foLoF zqj@p0@BFlo{-<;~&c~9cMSKY3g*p)A!K_K~@9k|^FUWgYa(=`YyF;w5#x|$3(do1p zWZH#o#=5#2BVs4OzTb@d5|yVWO_p!LY#`Bm3@+B`E=V89FZ+}}@f9L%Su+jeVt-Lz z=kBXqR?JUTWTc2sl24WL!UA`1$Q}qXMMY`k45s`FNBJ8JuC>{XKizQ%^xc3S2Z5g} z)Cy4^E&;zdD$8Rq79mv>T~2yq$H3=U{UyLhW!Pf3zNzA0MEy{8SZSiWd>e1HTMP?Y zTOsM(DG2<3;NCD9_)+qP|@eMtCCDNl@U&qq8U zG(eQkO(kOtEqasqyl6|1Vbs3BJjhNfAK;WKOw&}Q_ucm?kw#XSwAyX^`U~^n0)DZ=Wt?Yl$mSHOk!Ss!HBvnOq1CvJv{zEi?JiJz>7i6#34@?i(bzxv%~^Fzu+vK9p! zD;);~d=m`&-WX)vJP711BrEXIk~lZk4Us>X8q?6$auCvHgwyHd4`=)PA58r?MCB4p z27WB!Id&L0tUT3UQXVjh!GvF*`k)T>M4&;RZY*W_!KT`hfY1sBgUP-%jbPFi&qw@t z)N8NNd<%*6O)H;3=VuBjKTcut@qvEzB&vUayFFQiEz=G6itQsr82R3iQA@p zIa%7=3k_d z!d_JMWaW+aQHJYtlTsLLLH)!ETRDRj(D&GCC1o(-^MEE>w9kS}(~S~|M8iMdu%z+Z z#_tvx%X-G%zki>`M#)$;GTHe>R0*$4P0&#xGUhD6`{d1mF z0sR?jREYKI`6=n`@uPIWN#+7A@1fXWj4$2HnJ?om3?eA9rz-ch`&%?$x;qgytbMXC zhEBb{O%Q{Cv-R@5OwLhJ{@EwkO|-_+Iw5P6I{z3-ZfYac;w6UuCcm`V-2Gw<}Ebn+mGIio#Em?ND5LPEN{k*XOt)%XQ0QygYPB;DCLI z-3v5u81{a`={46q4{#oZ{oXV#H5Hdr)WF1tewS*e&NUut`00G>1=mg2;cRW_)Gvm- z%sNE#bME&WpEEekAWQBpQN6-ok~cfPcjKSjyvB4`na6*#LI1+-O*Lp z%O;t2-HU1~s~-$|_TtQMZVT9U^83EdJ~*`HmN z)WYCeo40A&rVk7Z-U@mix2RaO$I@Znht~EBVfl9WW0~nmuQQnBb!rEChQ2j<$)g0_ zOl624qSIq9vhu_)1&abl18$^v(&eZ(EyaO>m38MDtMN?+^nd7vhU+O#>^3?fo1n-!PvY#~(uKUsRK<9V0c!6N>zUgQh@6duW!4IOKF0|5b6pX6C$?jj9? zsee9>OwpdlcxQ!&KQGQN;jgl=Qsi%nZ-kUqq_g@I|EQ=a6Z-8CHd*?7`;dywg;+s1bRy6E>CjAwFU{8U1BBMedn^ijQih{#{f zCDRQH`Rpk|bp*tgRvn7F-C~?~6Z-uI{~6ZzHud!N?bMkXqXd5;u5+`uNPh~`bi>Nm z*8xB7MD+OfT&K|gHnie!=WE}YN;X3#1Q#?+VJnT%pD31s~zV!DITQ33tcEK zB+{1!*f7HK3I2K5v;7!M@yE59>%!dL7WFqjX7cAd#S4I&Y-K}zI&~85pJtofSo)4y zE!4*plYj2_+UPV-xRv+PdYdwyTDyvkkNCM^>e4dyJY$u@aU22kuZ_uyNtD-!Y)n5Yr8xj^u_!AP*d%sHD@90Sa z|Bq_-*T{b0WL~0uP5iG-m6Y)t-4%jOQ4yJ?<_Z@y8l^Gdx41mtFgHZ{;Bu0WuS1l_ zwUECfMqCm3XB_ye;AW`TM(%OEAvRoiKOvFU2M=&&PLKDU;9uhPM;*~tD}Nd52bV}d z2>j^c%Mm|DJe@0ChUc|9NAZ&MqAz=v?o0%KJ5e6{9mt<_L@q_!v?VDqYt9OrJ`LK^CmX?;~V7MSrXB*;OFTMEE{szGG!)Mw9 zv<>H7V*iPMA|fvMffuRC^2A>wI`$zOviSOO`#QfrYS^k_MMktPtTD)K9pNsd&8}YM|uQ^(BD9&*| zu7zURbmtJwzf=-Y#>$gCEG&Fov3zUMS8*4=snG&E0!fp-xKBG{VT~)Y74cyg`3H{&M$&vb;WPM#Sa3r~UTQXA z>|Sz>2(y0`6;>D%^C#{pur(Gw4A_6r;k-p!4-Bw$js6XLD=+dVc;EGx)SDzeKB;`R z)4;1*uFl)kb6M50YTnD`!|xz_LZeKYdo=F>RtsEs240*QHHT4pMQQma^Lfb3`V?LAT8t0}m znCwkSReQXe_@Vl_<)Z!|{?yNHP2q_P!2RhQ#*x+KDvkl-&Qzc9*+Yox&;9g6cQ zHfvyyH@YbNsgH@dIm z1it!eOU@1(E;No0vL`DGd=v~O`uim(v4p`Sf9C&s=mdkweyER}HJiafre<4d&rGIY zps(S-A26BR`8V-At@hdNPl)nj3;5rjSwQ?GB-)So>zqGY0U%;Y@twSwf%A?vQ|3*+ z(RDe=+a%%I_g_pm!r#>Sjk+Zm^w^&{D=+3w^@y8bEl4+KE6Jx5x7VB%8pj98Z;6VF z0ua`{8BF?cnWmolBP7yqoqgNy`-?6z+7s7JN@V%O|M`0y zeLBJ)fAWfF_ISj{6oysBi+^VMH2-CrzpY|0>?MO#y^fhHkPnCAHk>`{mZ!i6?DOQE zv08z?Zt^!>mxo%5Vp7Tfbtm!<=9)^@F_`e{NR1cmA+pa39ClIO61@+3VgxIW_2O@e zDmR5?urGXygABdApA+Q?tyvb|8BFW{^PYP1%@qkax{zZi|jT7;!qFIGOrzR0j+$A~Wk7|)1-ed*X$a-QWA{#u8Hi}ZnL*ZQ!q zuwEqoC=vZGU-EJd{ZGkQHQliE+mSQfkXt_uJJAQAyFBdI%J%sD6^b9s-#@H9|L3Hk z&wVBO2V|f2U$gE{KrcynX9eO@=M(3?C-kR5kgrE#SI+Le~1adMG=6vk#-mrbKZ`!dMzjctY5yuO{2Ui0a6|&a6K1e@Tdg=v$C*q;EF#XrG@jtdF$Z zHxaUhMEc8nPTP?V@T_~S;lFl(4ZgnJrS0%&Lt<%#XkRL3X|H(v!?a%& z+ig8bmaH)8^RxvFCi|`|J(0<0@b7fP{NU;YmQVcZWmOWrV7{GL-&2@EgM9Jkfji0J zk4C<{V?V<;*~`bbH_v7HzINHf`uTh$rr&i7U&4M$ay*z)O0|i_$RF8do0Q^d4)nJ< z&e!p+q$9j@=iiT0ad2#%Vpd=6o?qU2i}L9iWDiVEpF6|Z+9-%%@{c$A`Qdr))LgQ~ z=wBMJnZXoqDh{RiDXl-a^)p}nS$|JH*4wVzO2bM+0pB8?Cw}DQ|s)CKTzHSliO`_K@ zTiha6p5phna^{HiWV8nwt{5w2ET7`R_IjO1+L68(W%!`=C&G`A#vp#SE;AnV+Xx5b zCSQyAwqnSTV3tqoFO`-4z_&XQeXLp27SG`E;Qv+^tUphR0gPrQFc|T7*@WTrVjE}VVaV- zaG{Wi4~oC}X`)9nnAY1`9~<#RJB;{-k5b(ZPdAk2X~pqEUro$UwJ&A)WG^`qGl5SK zClcXv^{(LOSU&MN(RZdaDd~dn#Vzprp*VZ}5Ru-R zOZp}kS_^$xd77^$q8H9)a1-`>WHgl_->q@Ue%|q>M&qn=HqZckiu2VYBPkmv((Iw8RaT|1ySEi8>okK!I`e;IY|D_(K#q4=> zo?QM*n==`V-HRn09?jf2+A9&0y4QHn4nxs{@yLGuT?x-|nAR#tF#8mxS-6b9?r%e6nxl5>CTl%3nTr zW+B03KN0;F=H?6IbI zIJq*>8}CBDEpbW}+{ zMw?2@(yG`(7XSI2CwXbgnJ3aS`RlfTbq>})+K(ca%SHJ`@-a-c<`H~1ZF{wVm8bQ- zay{|8I|=qZ|GPL|qPLeel$5c2!slyT`}#lSU)o$#R1a&L)&m9oTfh1X(cYuyooi_p=8M`e+GWYXKHGdd zwm1E5)fSpd3gA=xuBrb(QD2b0_G!MarhH15lY&gD(g2aZD~f(j+A*}>_#g{E?>{Sw79z0e)B=UI*E3m!1z4Nq4A4{Rn&&^C1kQ65RI~Bm^s#T6cmY-gvFkNVj=pZi;f4Uv!x&I7J zjv82UuDMZo;630cH3sW%n^=E{-@0?*?em9tkIKtS!}8(ZC9lczyw8L$eTyx|Z*Ptt z&+uc7c@=UU4-HGH$_d=T}4+tM~TU;VNkUX(Dwj_Df75Hd|IF znc+)Wa*Vx#OBeMm?e`cad)7lwjo|-7F{|(U?nco%{D5BbBFy>&X5t4jI^kc3O8Zy2 z_ARj|+K!5vcTUYEA z=@aYUrruw@JVbCOpwKYhxM9VsUSjPL{%2<9oMSNgZ}vsp76HCR^5{@pO5WULmQV5U zvR++9{)IKaUY=2@X8D=0-_w&wp19LC@OwdJaU_Fb4;j{k_7m5WD89Nry=OYhhd*lQ zS!Nc;hyCEj)Nji~`tn(CH$J%|SnifqG#*1t=T4lGCf^DECph>yZ&9Ap`uf^cp~b9y zqQA;KhbSLF&!&ZE=KsL*$$qS;$gG&rGUGvwtEQFwo$Xtspa*v%c~q!vw;!o}MWI9N zAL09a?>Tc&+J%_l)LL6#tx{^%Ouak&!H=zf@cr#FZTDUMH+f@!??9XZL+1pgEh-k!Lp`g`nyrV^ar5E(guU&t?W7S>G-!})gCFWyi8jX&#J zjvIn$Kc+vH{Oc%hU*9DA+_A1KfaO=f{xWAeMEi^UQ=6k_Cd(K6`7nuCp7dQ= zSw(7lKG_ozvOk5?Y=g&yn<71+YboeIC8hC{2S)#}9w?0w>l6Jg^T};u`QxjCO~=9) ziTpzHx-h2jTjUE2PwRo)rMYFS{Yu!&{T!ct#Og!d#3?W8KNi>lUoNeJ|2&{AkmXZ6 zE^fxeH}><#KrIbeufH_(?vUUeF!qj<1gW*<$9$i40Q`1bATjWBMA%@Z8N2s?;`tgu z9_&9`*nz$fAC-)v__>gX|8sJ1mAfYq|8|y-@X%Kq$eqz5bsKB$!e& z?0+sqE%Gn-e!VqIuCYCXIhxm)!aH$;o;XSFjB+#&_wEcYr zZ|v{Q^D{4E`J_*;><+xbU}M$Q?CqvG+abF7M%NBklg$vbd*EPE{t-R)h)opfo8)hS zRPA}5+rIk1Q80kD2l_NtL@TWeA2tdzO8nj<%__>bt%&y*I_%R~dE);y{jB16h<|di zLB?5y1%L+L*<6DC>wU`dukeL!^*8VHq_0DFRQ9joQY1Ti@ZMo|jWTg^j%fc2@BfdT zGfU)uoPU7hLDU*vUC-gf@=ECc&XLuA{EiX#7Mfq;YH@#;`Pq_`7IX;FPvCouq3PqL zmF@ileQKh*Fqri9s#QACexvoiyo?NyAHlr_E;A&Tm8bDpN>}y+ZwNm`ujyI$>2X4; zwFQ~%_ICM7<=3rSlLT9{jpA$H6y?R7J^%UVp5ln_^-a!fo+sKDeUp9HSLoM>{Yl6A zQM~^oQQlI#&@VL5$5UUhZ~e}+CJ+pB8T5ELsbToQtDbzU_d&iFwA*)NKU94YD(-(E zd2>4Hjk7le?+*KmYa3H6s16o~Xp{U5&noXD@x zK1G$G@<2~@VgJOcGP|2!(S9)AH@kh?B#fWR(EhyNzpR^p&XM>6J`N>q+_Aeqs}FlM z**CKg_;mM({Grn|RZCeu>AO`u*4Y?L_S@@R=~@QUd^cQg-~UPWU+air!&rWkZHzHw zi?7Jvz{jk~DepbU@{LtTZ7Rtu6@zI#u<-H6FEE(={|cP$!r*4aUoKU)$J1$jQrf+J zf64eNZ`0~0i$(cM^8EgL`kWf9y-*uvL*KN}`5&yk{>b0&%HGRhqSvJKRkmC376>DR z|L1mWeS+m<{3T&wDp5Yt`p0;$G6l;g`ztJDWfFr4A0uU12N*2G$0{?&3GjY?1I0u7 zJDM{$en0G_B#(=w^BrD%y10IZv@=dD^Tz%jyk9kWGJF4+(_rWMn-^xi$@t$N7Qw?l zN3s$B)8jV_t94v)aXsD-GO0GIj(X8~-Y_3#o)$*q65?G2(vI)@DrTMkZrDB6KjKeE z=u;wn3HF|^xc>wCSz%bgY1FLzczdwvvmHL9e}zQ)I7^?U?+Ax%tMq5EwP?Iu8j`7X z!%ot7hCfd4TE+6mga3>%&7yq)*qFQU3z1%FKBM2yIM2$HKE2)QDiL51IPp`fY|;dx zb^hiru(wlV>bURku<}dLzYW{k{1{C9-f81KF8X2>_T{*zmEOL_TtDZLV0|IL0>Oza5XcS z{H4TouV*lr@MSM7+tvJhp~%!hv+wl>H!pQP`k$-bR@Mfo0v^}qWK8%6#gesoBcTUmXQ zr^RKtb_SC^G^;)K1ioy7e_s&dBkFG>^v}S@JBj@_BL2TZ^YKnrztE0&dF1K>23z4@ zT-Sw5{#t;n_JF}M)^!`7OC)eI(jsl3=~_P{Q(|JIePanlRFG*(%Q zrnJtQ#LClrlwOY!?G=J6JNt)NmI$wdibj7JcGA1bK+_H3du8izqskf?;Yk7 z@|x$v-92iB{SjoketDiCE9pCmUnn&p41a)YZLtOVFn4(xpS9?wB=P znD&=e<9<;Fk4O0nk^MR|1T{k+?g~;`g?xNTe`~7|Y|HoGopZPrJIcJ{pd@j%D_82P+62F?i zW2wHuu&F_Ko<9CI_V*!Mx-LQAxC432^SdU`&Cw=BA%IW3c#grqW>ggl(e3S9+AGc!UXwG5qHGTCiyAcgr9>K zM*7W)tXY!1hV+&6=yXZGZ!v5d5Lef9mVV^82GPs*)am8eHVu>LnoH|W=YP=AcUbiay{a*3bN{;^W+E3KC#*#A0` zs-^d-2kfe_=0iCr=nV+Zu;Ir}39d55fbkS+#}alwT5o4GnnnhnD!i7Ge=wz-!IjWw zhU6yMF_`XGmYI2g!8c*Q4BJ;O?T=_Zz80Dq%J8SK9#a#e7c-dFqoKxE;zy)^x{s{# zVtDYo7zdS$iov8G$>bC-jrnfis|ns#Jd(5GPnFvFWYc`m3o$3{aL)Ox_K!)Q{5E@v zeX=Yd7xLPdZ$^DlXN1)_3Gsdr;nwqmJV5xXZ~%}*|Ii11nR~7t)Q`vj(LYG_wxaqTjd3E%W(R$Ul#t?BX;?S|4Oj zY3TN^Vb4$Y(tPiE()vq8JV#V?R6N7$Yc?dr>rQGIOzW+)>ZUY*dhE{zEBqW8p7?ov z*>943?0&+sHajb6Ue`+&VEy|cOb1d@&J;Dz*&zb?#DD%lH8LS7slTu#52-WT!*cZapD zixqx9WfXph@w+l2kqb-QmEx73OX!^P*%1N22l31I)mHly{WUoqj@0|qbEll-rg_!B*Eaba<>giknCP@Wws(HF_P>|s`UAnZ?!wbJ~O z{m(9cS6Tn{X0qSAmyD3;MPGw@Caze2O}q&+iv6CGUXzMqj(iWI(QiT@-2Jp{I`KcT zAzn-W%m>emWH7Ba_abXN-l;;zRjO=x62lWe%{`PU!5xKH!+ZyON%}d-`$3WEvsr)e zhjiS(g~9ZDl5TZeW-#f83Xd#FKP37$cqt4FPwThmz&%NSqxn-gfggmSc*RKmk8@E^ z_w2s-5b95Bg!JD`nY@_y=i~Ti`N*omD=JN+<}TFu0HR+yUwfGQ>Ig>y(8%8pcfVGI z@JaPQ&b6$ug;S2e{>R~Z6^H0R#Q$qFnS@7$5WwqEk;YE88o4g@xW9VGxFE-B1=c^d z-zL6+^rQCLq_uzJ+fl#!Ch~uS5D(1q3&r)zWd<){zgLfXLdLDpA6Q}RcZ?S$c}(UkLosGX=mfj$NgL9T-kx_2qJLA z=Ut61nK3CAcz6)MhCGiCF+MX~TEDbESsdGvM%SOgd^)C=PtNYB--K9Ox`g(NVN(ol z()uO)l6KAHo>kR0^qE`mC?o;vPw@ir9ajEBzc0|se=oz+eze5+n32K6A4>{{4rMUu0~e0O zO=2*~+xCW?K@1k+6^iyq{3RFmuPV3u0=yVX|M zJ3TGrxQ4+rf0#1u%H!I_;jIN)*J&r zlh1%T$nr`~`O}(XnOrY^TNjL8H<1tRD)X@CPg(>UN)q-fmy*?L8R*wuV=vT`h;$zs zVF&qb4;rTW5|Jo4Nc1c=m3)LuNos)5NdFi7e>U*Oc$_~#^)dsv$wIv{_vTJ|U<&XE z2LCMH=2ap}Gu}-6Ozj=!Yy14_?5bf__*7w1p06a2>G!S}R#C+8J~{sk3t4aX2!qL= z6&IbH%wUrLwN-x7__Sa2et%as!;?Heb;24CvkCs@yK66e$MA_{Pinx#^*8LF(qDY@ z_?rx-@zsVJR|eDgRSNei23O&IZXfPGhQYM{dcq?l{!RNEwTAP7=mq(czOX(dYGv27 z{{DT$FMhjMwwPT{>*Lk|-DL(7eWrxpO@}QL^m+&MiTM5t)_Nbr-&$I3Nb^JYk3cr)*A6J)KIU?J3Z^Am&N@!zNGuzeMnn2u?hC1=!!xHQ~qIv zF<;t`9w+@@J5Tz(^n3hjCv3I$U#ibuktFaRx+mR#eb4Qq43GVP!o$Al(t3BId<7?k zNN@PX6i;yc$v^yw^%tJUV9aAM-fpSdCrQCz;^@dmwwd z@ZU|yLwh%w)Su|@&@(=l*!2^kuP23;e8%7o&{O%E^%6gz{f9b#BmMq6COoyGXm{9_ z4~9);{b@fw`{JQv3?}~escFA7pA`SFHhrDI->J`h!_}}rKR3sIdO^KD#3v-aDm@Rp zd#lE&Whyovt>>aXsk{QN_fEes=Jrp7$8@3I;(WuNibRoL!ed4Ind6Rs`o$T#z844A zToCm2@K_XE>~E0w)4!c=W+2h~rrb@x-~SW6lm0K9-@C}YbM&Lb?EVV+SN#AqAp5~hv)lMhrmn5Onr;@ZpUma27x--tek8r0A5I^c!F~_X`;vU$ zc?_oc``MT;tQY#u7xlf$JcGsc02ui=p#C(8U(kB;_pg@r540X~asCY(?yaORFS}(WgK2%vym0;kgDHOJ zRVo|v!D;H$F-OHnoYOq8!=xY z+|qTA{-&?=v|jrBq~A;Q|HzoAi-e~}>tS^?%kQCjEl#VNdZ#yu*#3OT%0lt?Ai{*` zeae}k((@DCccvHnS9(6tKjoU|KapKe{IR9=ix(vr`mj-#RL=NIRY7~0zjyvth9~}M zG^XV`P{fPkJf<^2cJr1eq~z^-|4ez7<`lo~`rGFkKGWwR`>S!ctno1@g{UND59^&A`u;lT1DqXb zo%RC}+Vj$RceC*Qs@C5m{a>>G;d?ZJ{+r)fG&=M>&1CLL`|acpc)GRIdHtz3r^DjTHk>5!H;VDZn6HfKTk^A-Ob>t zQm>d#KYiAh!NiXuBO|5#CGi8Ju|%?O5r0v;)y`o3X}rubo%H^wevC`5PLdCm1+x>f z%PWgnf8y6`+Tvn~{_*b)#tWM;VY?uoX^j)VF&-{D!uo?=7FHG;#r+0kKH2A7yc90< zx~V_O|5k%x3hNL1ZhB=~w=^HL{w$&CDGU#KU1k5p=hAvi%mMxGXl*6xrbhI6O>vaj z+lBnVU+*TTi&!4}hune)V^lbUiT>9-Y+S=&ivQDKVKA8Jd868}jlpCuSdo~NB+@h0 z7o+{hAZLcB>m413O23Erx6#E%A+R5GBKzkv`vZKe{ZEy;WXkLW*u(umy>>!jw5w90u>_`qDs1=a-p!qbOw$3Nn zL+d+ltrsRAc;ZjGq@TO+C+?2tTNNKNbzPsI$S-Mp#8+o2^4NIvJ~o{CgjwXxlt12a zS#z4Q(F@(b^l`2n+W%hE zHyuRwyv9tO=98pOb>phc;Eqz2{MOZf+}!V57Lx3h{0FLklyK_pw}(2s#1$(e>Z!i< znnlt6M9h?@P5Xb;N0;pXl<&9d%$ntdrzX+AN&vYmXaS>}N4qz?d?@BQ-#2l-P?qxY z$v5UXD7>79$u-VS2}|U2|NPvG`<%}zRC1-0FY*JIELpZX6SNHKNu^w8Oh&Gjp)DA(eX(Ezz5m)y|-|KZn+f;6O+IS6FJ;#S(@m`oEHWIuo@2HNV$l+Jkyc$;r{(Wc}+wC&Xg~Dg65R z2Vk<#dW~(lz^=!BUVr08ViJRCd{>1*;?Me;oPU^~Za%-k*RA)POz zaPt!EL*^cH5ByWBrq-5>;RoRaIQu3Cq9;uqDU3=!eM(2akKceUG`->&|C;Q*I)^jZ)wcF6Y6086X z)<2y0v1s)ZcAs%|+$$W_2h9kLiP1SF!@Z!BU60quSG@Vs%hZ<|jX$@w^&J(D^B^8_ z53BIJ_&E~4r}_Ey#jl=X^Fj2VnhJHfzxm?)f>+*u_&tNEKE3;+$hYn9LGn}^>9twp z?&ALP7vKCttUuA`-SkZ8vtsKgy%z6UMft#Dqx{h8-<9oQFs(0{qDsqPiZ|cZVa<0W zd|~1H5`EKp9yv-miuEUYEYfE9Gnm#xYFBqOqc74Y;vShahT*-_g?w9#hhhWx66-f+ zQl0fYKpH=EP-6h=Px@m~-L=gEj0-4!{&HH_H%$HzzxueU#*Ou-c$3QI%cI$R(SHB2 z#~yR1@H(0^x?g?WW|4mI1?d|_d5*r~e3Je@E=FN=@nz#7-f^MP=sk(SfWkvBYw10pIMohXggnRGxtj4kv?_d zJJVR;Nj>g^z8iBX*;;>I;CGy64&_2oqxc4G8PSt?<%> zuH@uY2}b;8o>!eDFR0#=MyEL`Y$te}=Yo1?A9o*0WBrMr+E<}|Qh&>ZJxm*6wa@Ae z6)Au2y?c`3X+1|guYE~)KW4r`kar+y?tA5FWZWDl`3-Wx`@;Nv-*&=f$GDJ8yMW?2 zyEvR~5NGGI1Lt|f#-a+e*p?8zJ&b$>hc3wB;(Lnp{W){yoZvp?Qn?~7fX>J9GSq1u z`uhv^f5dOI>q*{w!Ms2{^ENdMQu;FN_&Udn}oNq8qX z$X#66^`uWMAGsz))g5XHn9 z9M(9Ezw&~K#uFOB8|tS>>zVZbe>S#A>z$t0z3MS{QQHvdwZc&Ci}fsURHD!Dmo(7- z$(k$b2NT_PiTe@2A>c1Z>$lGoZiWx??{YFvVZLchTL1pu2c+jG`L0I2FV>&-2i_Gz zzJl--!4=-#5`B_=&#>ZsU))}3biI4YHZ{AR>~C4wE+qe{nc=@pSlkj7D}rS2@Jn}*ufO>z>rec;dw9bP2Gjhdr`zODz&~uCnJMyH zbeeB?E}=U*R^kuD&o6YET-f!{{}STjcMJ9!`c7{+Rrn|@?F{b&eqb2pF3>Z5C(lt7 zJR1C{k+|c|-!d9E)s6GTc?uu6{OEk&v0c&V3woV8Z2LBIH^1NH#LI7%W+_$sR>n6t z^Kz5Z7FkCr$0h2d^G^kRUA^Z@2{)d54g~q8in|uCD$`}6qF)*EcXULrRIh@xe@C3L zCeUxBRsa7z{S*BP=YPG444_@yWRmwt|7j-XV#h5Ju7|n#Bf1~k& zbK<>~bpCV?hx`K#@&~Q;Jtx4vq4x1*@6$r(gH^axit>o&59bHIg@Q6{{^&dpVvh`- zxZ`+q&&0N)3?}(;TjRQd!DN3K+u$$CW2hCh-|9_UC+YjwPWANuP_Zj=OLJtdRR%cf8%6X=Btz@*nHmvIU7X;5 zsIrM?CH$-1X?K7!kxqU*%sahgWMx@Dxe4++?`D@k&vZT6Q)+4(X42o(ToA8!VCDfE zec3zxPWr1iKyQ|>`378nJZxBC-Egrt@rPx4S`PHElt4kxJ86 zlj6Ved%V-*%$E~ce?8zCtqdZ1eJ&ww9qL8*H_{LK`ec&+Ncd(z^&SD+(hJU4GYO*sKOy_g0*3OyrMnD|SEAr=7ARf01_Da`Ar%d}~ zE*a;$%7<>-?rt7rdIaay#UYxW-0zJiah7(c{e3$Z&{K5S!i9|9Jn%=`ulr4)brt^9 z(D`AA*JspQ5?|5znwUOG{*(TnVsri<(J#(R%RyHP_u+QI zUbyHl+6zkIbZPD%H`c1S*5+n+L=vGV)enO`(WZVF=?}A1@+{7x;#GawMWp{by17a8 zBhRTeiSvotYUtcSb6FLz+z21BI2J27!=yUr3X}i`yH;6W=5&iF9JNKMG@A#Yadw1yf4v_ZGazlm?y+%gHt^pem8l9IN zwt7)>KPbfioH@5fivJ_|U;o!v&M`dkgCQsP9-KTmhnxHdPT23aE_}zzKS1vqhq5x( zpPr``2P`jf4ppeObDeYaD(>bfKiD&9b@67ZACQ>nqHgNrW4lf5JD&@Z=d5_F0{ii9 zBrx^xRfzAdw#g5p{krz$WwXTD;CZTN5>q@KY!NW zCudJca)46O=e-kLc7!D5OZ;ShO+`vZdiOfkpYlnxzwNp$!O#yZ-}FfS3Znl}L#K|h z;-QhLa6DjtBYRQT*{*{Orv8^^lATCcMv^B~?pN3!Pit8ytRI>oTF=o@i4r~0 z`qjF3PGQ%RKH9QYj2EQuNS`jMy0VMmCu0598IH_kFywc_{Is;M#M27Q@SiPBFx6Sd zo1K7o^GY@2kLF{z|F)tciGFDOq{@h8Y`l)r4GDg?;&sSpY(0AGsKpEU0W%(M4`g`a zf5{!kZS<+7dI!!y^e5nzk^gksA9^$J)6FJJo1lMqhkQr&Vfy*PeB3qJ*0+E>b(Bf; zPWs)hg9kI1^vkk+ zWh1OGb^uz<96GOfE7#Od|52fgewHBqc6#86)?LF^329x|%%5#;RcGheqzJxcPbF^P1(JRsCw;B5vu>N$tM^3J^|0lS; zAPHKB*r@;LwShk{Sll1f|CPaF{2~GZHd_Uzrm(Bf&yTUF1V!evPa;vM~dTlGc zVwW8bA-7JcxVsr=c_I=YoQHlzHc?Ito+ezLQ((x10|0+gI}d%mrle%K#Ba%-vLAK% z2}%7EAy3n~zPU^=wcwoNVZIX|k>)=a^>6;NZL}n>PZt_e%oEHKJ<)kCGMP|cUAUg) zLu=%xQaljBJ-0Tk6_EHK{d2f`9RsnRP9sCwYM&r_jSCN#^kuRi{G1Ug=_{1KALU+7 z^dzizvR5r$9M{4Ir1ex;St0SK+?<>Q7o&GR!&5wYVro|ugJG{*=uxgxF_`w7%Qf+A z{`k|dmz+#GCfTDAuN&jo6e!U*_|w9wa-%eVxxhu1~T6p_E4?67!UY0lxEtWkJwgeG=GPJ(>=rwoD!4{R{l@^ zyQNDzUS{(RX{wJtc;hUCPa&Vge`~EopeM1OhRrOQDd4fBPNQCv+Ha!tevuuXQ?eoz z^l7#n0-p3$PVOgX<57Ha`;GWyEBsu7$>#hmea))|)hr(mh9`UC`2!#R#9-PF9=w=Z z%3!K5ak38!zkh)X^*D;3>SlPlf3^K41%q9n|L5_WB>6@9L|Uq}ABKM#^)!7eU0HwV zR|ZYK-AD!}qQ2lJm+UIhT0rqLi2teU+{y5;=auftbjV^bjsKa>*kOgQMjOj-U@@AA z;llnlK4$ZrWvg2(XHft0HpLSKJq)zkABi3&8spQ%>rEE=JzF-bi608|L-Id8`Gs`C zi}?xJA%h27&r_%S8;wa4Kce`fj5%sSP+(!C~kTOO0OHGPO z?1O#vGyF&P7kgK0J!bO%or}B>$;K1(n`K7QKZK??Y|z`)%53!i=Mr=}YkVg0_l50o z$NRfmC?6p6;NsYR82n*r!X!U8N&Y~8g)DV|rmukXw&zYlACFxe8F_Z_W&HbPF!}rE zp@Gn7$Bx!M0{i_;S{}b;^kyKwH%!GHpZ!Pfbpfm5f(v8{;m`gL4|xy-KKq8~J8*8= zhYTk995{E~D-0I!uk1$+y#5CKnz^f__#eUx_P>5K(X)^b_@7|tE2Al2sJ{_EIJdub zKWP63H{T!+#TmaEu@We-yv)3h3MJnTffa>}yOQEs*&&e@S_V zM`T1_Q_s%pZ|LO6AK>IZrGl{>HZziMj^oQE`lR>w%)xgn+59Ksd^fL0TqS)U>tUf< z?JeQwgWlaMMoaoKjb~Jr;Q4q9J)sf$f${PcX}#%d4Ep4-jA%A~$d2a{CN$JZ{6$}* zH@vsBVhQ2t`Jq3qsxJ(WVEsuR9PDZv&R~j9Z1(RxDpCXO{}V#iwH)jwhCq$vpPRxO z?@#M>bL5Fu5i9P`!=iiFF?d1_JbvoO9%Jx)!^V`}hnBkxo`CblYfim&jbOTmdI#e5 z>-tOtQ$xO4`sbsZXF-1!=#%IvDJe8wcw4xF;A>UYSvYT?jW?MsRPXcsDlcEEFF;Bd zo!3<~Wx5xxZo?Od$GI9EAD^$`kI79(wo-qfh|8 zzq?=$^!M|df#+%9xAJf34GuwEW1~jaPamIS{~Z-kS9EXiuY>Oo?tCN<^)zP9o;{n< z5Bc-7quo34u9}(~$`FsDk#m`w6pkFJ{HWR)1p6K0OIUx(*I)N*pyUrE`u%?Y&Cv`` z^t)8OWTY*eNcp|2p?}NVR!N@!PxLR?3rD9&;}g9HE_fjACrE#gt6Y>^6&Ha=Q~onr z#W@;^n!88$WmqzLCaDb`zVXM71$}`DBbxWgnH{7kqw}Bl;)vEm{L&EG?}tV&>IKpq z*F*J-4j3ydgvExhV6W5v_G=S7Jz^t&o$B#-A-@^CEFoXvBH6#HAa9?o7wRz!1VHjJ z+vr65JG47Dkw30)+?{I@S2NF7q?{_0yEqa*5E|__;ufv_mBFVApGz3~?9rJFCi+*- zqVryb0fqfR%Xblr8J_ItV`jFId=eV%j}P_Tqw_|DM)d?Pb{(81LIVAVx%oe$W^hL- z&O6|n>KRPezx?;zGpw*Y=MA42k-qRH=}*RGEAqsrA^quU*p~6(5*HIY{ZoG7xS;7X`|Drh zrZoQ9&{)Jj(sY{ydjC+dDX@QhA$~70Dk{}%G4(c~hu5lvkihNMdS$PI-=#0Y(H#Aa z;)yCsMoRM`_y?F$aAi}>;Qm`|&AL6a04&0ogW z42eJQNkDyB-wFw){eit5C+S1PzcmN|XnG(pH0)omM!)apFX>xCeVJ4XtyZCRfWKc2 zygAVlhlm|l-j(d%Ab$-bw=B^2swYQ}?sR?V`s*WS2m4UGUc#(-3{Ui$Q|!6qZ0+5d zji!A!ss2{h=Q3Zy%fJJOKZLJ7AI|y{z3RuzZLx(@M(aOdut={~JdM9=*c9rYlHk1<6z!JZd1)X`xB$m>cOFV62B*T5uvr#lhxN;4QuJOw6Ojp zKW2;>IYWYBe@a$f9zgFOgvVYKrL!2n5;&z=dY*~k9}Nw)UhI0>Ul^zLZDp_=`ipj? zRR2t%e}gfb(TBhE$Hww=$q=9-9AJ5 z8*wy7}fzo^uzf>LGEa_)N?{Ggz`WV?K5XU+Tw-#))qz^2PijG6_tc@eopxn<719^Z9YTKLXF}ho_yhJ1ezsnAeL;0FUMlVEPmjcgyxNop# zGj}Z@(g*hcd7G#75uW1nh`zsXJ|C`pX`jPorz`fTza?*e^UXKe^(1e{{FLzvgGt^h zbF-!WKhdLid=7OJ8o?Xm_vHOI*xS?E|M&F&dwKuw=-s2(8b2i9i}OZu=eYpx0C%DS zmW3(JUS4k;d46xZTgNwFM{6-Xnc_Uw$5P9&put~7*qLfNhwgZ z{NS(S<{QTOW}i$%EC@*d10~Q>CVQ!xsJ${yS9|6y!SCtyUmbi)g=(To|jR2PT^W)fe${ z&DzYy2S3qQtcW*CF!o=5uJ-;ma7=31#VESA6)c6$OKLy*;UR{HeRH9U??fAYy`#{@ zB`c5NDL&C?T$u~z^c8(a`crJ^J!mKRF=zP0c0sS?RCs$iwPAb{Oz0to^01oC3TZz` z{>hSjYdv(zpC9kOp@faE2S0Gb2FwaCP0%$qHo}z9W?m=OW0_RHX1j=|{7mQc=&;aB ztUt~hOL2A^>|z?zG>BivH>nM~l);IanM8lih~PVg_#MRG$Lit&nv`3)#XbcZ`58yU z30wM{SDd%Eaoj$;0DMXQ`d?nM+V6=zYtD^nWBmypeW^yWzl-?Mml&St7w)*x{}paM z*UIoB{eLKpNBqU1%psHE{~i7B8aYt@3veLJ9mBXkjKhBA#EBD~_5rIocaHlcOL-!N zbFo7}rQw77{ub=_k3U^~dqp;Kwak6|S0<9bJYRig^f!H`_xZqXp8`*hp`6PEHotn< z2X@~p|CYh@{uHu2X?=8*K9}&wU?JXw#0%-a(W4xuJ=0{ijN%LWZqF+?HbSl|_aN%KfEK733xACMF1?G$ zL1-PN$D`9$#!LF9zUD;A->3JD?MEYD6Y|`Uqi+f586`R^3rDD7u&mU<_sON#Rup5m#rh|gefF#Mxk6<;4@Fxjg%*GTp% zGsV9r-iV4O{B6)D(U)ql+iv_V{9@uCt3yNKA0g=v`49RZ?7FFjjYs;#igIf`M3Vph zt`n_zz?Uy}-GC}VEaeW)BT7&tmD{oFiNAUoto9Y+cZ(NCv@pCt|GIo5E=Oznne_eM z-lN}H&cJ|c=|lab_>hJ7OmT>>Xd;&&@_LJzJ>?yr*EjIc->P!4;ilou#2kI%_ zVxraGK=Py!@%DtLhVz7D{)Y3r-mwS|z#B`Si@AUBy?gjEDA`K&R^>ULPV%ZclMy(> zG3nGM$d?hBbAQU-#=Ywh=(Kf0UZIMMd3#+dcZU0h({bEJ$VbO1Mexs2hQ8>(M|zIr zuj4os{OduIJf}aty`S=hEj{`c=SluQ!nb{~ZU7!9giH8-`W@i!vyJ~1>EG6$r{bQ? zKs~_zM%S0$d{43;2;+794jx&46WxY#Z*jB9UZK6_Sf}dXK7mG{TLFKE-<0O&$lgES z#PXRr(J(H^@L+H19ooO`tXzln9a5d&{)Q1H?)vyIAs;8`y?!&heMQm&HEn3W?(8*f zv+y$T0sfm~?7b|}|LMZ<36mNEC-viTzKuL5H$Fc8$VlFYkL1_PE0B34CMVzJo*3QX z-}+G;$$#y5hm%CGU-CB^Apf87EX%(lTyN=ZO9X#;dFV#OCy0&mIWC5sTgTveus22P z?%roGPAASOEZip04}C}VBggDG+s5$v8kZt@u3Xq(B8J{V>oXb!I2fMj$52%+=^sRI zPyXpw$^Z4L;kkr9FKavu$)Co59FpWc`B%0Mdm#BAD8Gc0S^XzIIpY?pPwN8M{q(3; zcIGyJfx$$t7oR$~k6>EiWIyZjHr!+Uj_`{w(s`1i1`mBZ#<0O!|DN&#Ui|#cHEcY} zk1|Z3QqN$r@8v0~@&xG&10v}U{KHu5@5gv{&r4mVhq5EIXu3U-ba0d=P z#2mF3MPNtCr7bd!c(|a6!3mexoM7yh-y> zz|AXo9|@CD&fd4<&c&~8VUjVwVbw3YO7f1@fAtSno7nrQNXaiv!U1B!;x+LC{V&rl zo5L6La{P0ihkVE~6co+bJ*1fn40x05FYixT-E1)*;LlIv3qb$AnTjQsYx+zbzqM{` zgS-#%QBAb52hK^jc(&^-yPpx~`NBkui{BP=(OdEN>F(rMaa6W|~ zpk^b!Dq@?j^!z?K8xp2zbdR&^X@9-kyF$_ri2oQ1!vTXHFn>hfMnl47)}Qo|@_TRG zWH9k3$A`{?8I1At#)>?f_yx-Mi`Zt1udImfpPxH|{&2W=r^Fvz%u=lwD8q zfB3`U%@PdzKx(&5em?R671nxos3&G0lbLy0qJMeL2K`|Bz?tBVcQQJTK)fQg~_+Fif?EBjFS#BTOk8^18Kk}Im^v}1o8kLqymMO6g zyx|{lfvFIr4?9(e`fg~PP9-FJF!-u~eZ>airKhoHVvf1`S*p?A-Q zGFaHJ^t8k=nC$Hf15l5mzs-mKn6fY>hQWG6UI9*CvyKP(gL09Qe53vNM1`NU-=Y2V z()>Nr`la#er`KV1i*3HaCtb}Q`YVGsK|i{D>$NlnQ+&nHZH3+pCjGx+i263c#8gOM zmgjDE5g3e#zeDF8#v2_rg8s>a1%IJukpHdtOzKZM675&g`rhm#m>Tg9Z>I{0zKMT$ zS8OBt7X&KNbMmO6(}d3WAb*?DS2&ME_=@o1y?0v}o__E9E0);W4`Q}WRX@Y*#%9YSn`T;S``-9<@IBdMCkuB~<=NQtmnKZFtDC~c zBl=ETypGL3=pFgL$Jeg4;w$uU&&^^m=skw>qh{7b;ukvO^`Hy=)FtQAIKkhirS!?s zg}xh#vZ9m1JDg9f8&nAPFVi{vA??-)_&JokK71<;K#d-qCN;b>J5Y? zmkIPQJl|>f3+~+;^8sB;4e^474*0DiMEWM;+0)Z|8H{?e`oQVa>ljS-!$}(lO=U2} zgTM2c*`L8=pR7=Y6fv0mqjwYHlNjuT{m8a=QU8L{`|w0_VGsG?;>hU?PxSiX2KZO$ zX|W$6c|R<0+ZaHQ{*?c-ETJ|fc`xfv@jaG#Z&PpK4G{fKn`X_2B7a?ZdAW3d%EzX1 zlBmn{Dtl|son_e`w85mSu%!)Js>77(1Wl*M93+W6^z34y%w&Q^ct(D(M_ zKG%d7<`pbaI!Ei8`q#gZAJ54{2hh)uoIHtsNS=H8KsAusK$z(3%(oUB{r~?TEZk2n zQ?c9qp8g51anRW67o2*DS`0?QMZ_OGg1v*;^#tc3U=aVKwot4$g7U#C0S+R5P^8s* zHEz{yKf^;b_y1v2Eb_V<Amuz%K# z_5T<4A8OBR4}qTWWiagD?;Z?LGCa{g&5Z;@pYOUDD&3Fx$%hjLOY)E6ck3ppkD4q^ z7IOn1gZ)s5`tV}xS9!j^rw{z_cyw;A-)C$*ivQu;drb^pABOW}+~;V)4zWT-`~CG{ z?!y?KG>V@P9Eem8s;?z=4Xke_>hA;kKX9#P$r_$^ ziy}W>HY=z@0KgE)pYK1|v0wfpKN$QpI`(XOKc4c@!dlMvlYbLm0)I|)UjFH8O3P~V zYdiA4nQvG>*=zH4)7FOv`}+8#PC3@&Q!d=d20KgB-+LQA$t&EYjN;Uw=Z_t)Dqj5~ z(ZBZXC9evrA0I>?8>>caWUvSR067ncuTNQ3bCcnT9{;znewEc9AdLTDfux`R9;WB< z_Q;jwyGZ{w@%^CxOm!xSETPf$8T%36-`@zf)dz&}j{r~33$$Y@`2QC*Yq=Dmo*=hA z1m}r0L*MD(x|7XHBb`s~<*4v-fGtF!lyRsYptqCBxNX0+_pNWJhyBdcx52l@wWY^& zWd7d=eN6RCIPRnU(|Q{D6WgbJFNZ(TTlN{#muraLpB>i}M$)dyGVN#b?;AZos?XpW zxShzkAbmd;1>#gDnC>ecVJa3BCIxFCD6XGX#yGq|>{e25^ z62|3us2EJ~2ihk`YfV20-y$%K2X9> zkmu|PJNyCvyl^!rS`K^O@a?UA0*nu;A71g8xA!`StYCF*LzmkbdC6HgWz)AIEts zcDZr^iw}yAaXw;m9yIii<>8lpXjFfwT910W{ZF_F{ve(|mm!rHTxq~y72FVNZt4c;%zU0++Qg;1Kp5y7^8GrWuV|>q@*UDyH z3NEnoP;iA_{NR{^7qj?33i{;UQqA*fqAWY^8tP?!y~rA`N8j4+?}=Wf|8V~{twn16 z@N^OS-@}5uc5#9IL2Mp!(BDhp?*9oUdSCOq`rq{+XsJK`X!v3vz5nlE6}RBw;Q{^# z?O{A1tQC`tZPf8;wCGCZOYbKDo@tcJZyAoy274}Bk+6BwTC4}V%`GBKF;JDx6z zat33+y3kmr3t}+E{}`rRb7L^YPv!>&XDQr{b-)9pEU3yY&jx zFG;yv`Sux}M+oqB)Yr(K>~AMm;BioKOU&QVMMb9){~?kkeZbMtP0-)(@P`He0axZN z=vQ>lD%2+`8fo4CR~9^%aJ{&46nh@TZ>1cmYWJ~xeVAN)O`8mJk*_tQ!9+K-ScH0f zUFo3z3}`f9P$yEdC$HRlv>f3ZztI>zISC=({w;ew8_zlC$FOmGt@|N4{2$&0->APA z*$K(}=$OluES`gRijn8c(QXjx^TMHLafJP3R-Qxn=cD@`xii&CMe=4|NOI&ozT=De z|M&+_^)JIKvZEHf=$~WS#owH72=ZNe{^Ao*)16*T^f2HKD#~4if<~{FS9sdm;lH-xf@HD>d{{Q!| z$iIa80Kz3AznYFHKd}*hNbnG=KEbKDS&zE$(!AannC%oOOa>C_>r-6d`ykGdn?2HFb}(mgwFSDOYD5+g7=ejZgb$ zMPO~MFxc1p2PbiUY5V2mc))@~ANa7EhCb-~VgxSbD^74#Nc2zjgOZ%Q!EePz{O6F` z>0{Kx^rr}3mmRZ1;*)N4^z8iHq~rJDee6|aBpwAvjq{^hzj&NR`Wl1I0Hxq*#G^x|>wqm#C9wM~33 z;j6tvB>Mo-+b`)m2guXnJga?Ppue18iT?iI;NR>2HugX04-H>rfb#kq=?jmp8O1;v zKi+#_{13tp2Rv`!g0?fZ{XG#c_(|=0%RkJ?X7ayhDP(Rcg~M>WkGXF_|MF$8Y@gD- z{j2p0l>U&tPY95ea&;Uk@W=AYX>J-i+J!S!JX@5!Lkynf(MTW*!^4r`cRQzI;XEEuByY@_wO zVVozEkeS<_#Max5^*@F=*Ts@H-?y`ST_45gmF+93XL!W()W{ud>;tf8gwH8@nc=Bk zn%4NhRpp92ogv5UEUis)Z#be@r6>(+jImU#a9iOoO# z1o2AkBk1!X>w4Q_9lKus83qyFIo-q8>o1M=Kf~Eh1V{F|dc#ati$HziethNHB)xDo zK8Qc~ZQ7KN&PUDsPD_%ZeDb7P{|S`uNdr(k&&<5EH0qBU-G@&jfAL_0Ujx6BzTsOt z;IByxP^tIvyDTl>Ays()3Waq(=sdLhH!e&2s|k?rFZblH6_gJQK=n1BheKT$4IlD? z>nV1bLp&MmgZk2c9sm4D1|xna;WJ}-u>j-ws&N1A;=M_{3nF;qc=NwfJ|B^o*62cO z15LDFce)QPyVJ;T_`>Pk`G#3?-@MPZqqk$vRLc+TDx4_n=)FwrF2?ho4LyIK>*jvp zE_3aa&*SA@R3t-2-~#MP!4FVR&w3s=$;UIR=B^U2=g7Ox-QKh2Nn7}XxoML9pXe{x zW4Yw-BmPjI68H=2|9e=l_Xk?X7hog+vi@|x`oI2e|L>py*ApAr|9@RKQ}RF3{dXmL zhe&vWZ&XMyjkkP9lH|Xj{$wwN^*=+ork~z6bZRMAIJqfwKI!9LQxv!3Ag_r?$vzM( z`bSiB58}U(QyksDywmp1xPNlLwyUZNwMCg4%d2etcH+wSbp@c_9(pc1Je#V>|EyYt3+&bf(saz0HN=`}kO24|!&bQWt zFMHxSk0;iLwT~$8>C>LF9OUaQ2Q0IZuM`>@8ugA4pESLP_A7%pZaiCGH%qU_>ny^|#Qg?cgZxm7Ni{o7yYt2iIz zwaRvk50{+@`~9oYG2ajW5c05z?m6EuJ19k`?qK!+s;~7+$^&Nq66%F`yIcKrzZ*}fb+ z$U=80=~Umyb(3D7Zh|eKkLx^H$Z?a@{!<7~1$4>&k)HYvLb>_`|040PqN*y&@1UOp zed%VQ%L=99M?@d5u{c@OhD@ca%Ovm*u@OJLnAjoO^ReLz&eeh>S*BVWW=m}s=t>&5vJYb$c|eb{*Lm%zSoRkW_)BJkHzuaaf`{KCBT`r53? z>SroncThSB@|@Pgcjv!rwr@`6%gklw`Oxp{5zo~8b6WfxoY_uaW9Q);6CULttTtL< z?J9-B&JNoF6+u*w3+}+q2JW`YCs>tv&`+auZ)*uhjpzgE_VFUb3G@$l+?e0N5_u>Z+D2HO7~9vx^8 zI9LCR#6QUXkgsycVxtp(nQMA}2ZQPPhUC3h#bA0K(^q}ZF_^4-SC)uX}1!U65~b693j8-b6<v=grK50E>1@V@jd5eiJrus+GNk!;y zHvRq3+Z8@JG7p~us((!@w2gPtyX+`QjEEM;`yT#x?1#-;upJkh57xiapg~-}{DytO zE-1dT`X0l(>{y!crsen*Q9lvm`KC^7ILh#pUwExyu-VjWLPk`>`O3nCAWKVWY;3Q| z+^}OV;$1y_Cv3HR2>LYl;i3~MB(%KZ!sq~$qrGy8O~+1f%KU#dL0@`UpLxSgTJ96 z2o3on37OfGa$X;%Mtq(lN0f7;cd>L{Hm#rL)uY|Z_z&M&n8|4W?4KrGMM-BI{4|lH(C9>C;5- z=T_C+VfcRw@89t?!_)P}c_qQN@c58D5op7U;j~Jzr~o)DKu?jVGYrGxeM`zDVdF>@EF%n!iPn?o%M2bsRi+OOy$|I!#$w zlzqD0Rwv#q5B9#dqEj_&eCi(>dVUduY5b9`pX_HajUT@;aX>sX+?T(DZ&cuCVI)!i zb00frw4rUbMQ16?5bCSDx#eBL@|j`z4Du_%*N$_r6V?+x@=N78t)|gy`eE2J*N0r) z7krZ6$Vc&W76iba?Ax6d78&{6lqbf$G(`2|tR?a;%Z28p$VDLfR~zhny*6vCUBfrx<2CZ+-oWif%jJcW$>o$f*rFd0NWL(d_-v`*m+MtyXbZ4S1IcSXsP#{e=f@5BYgL}pncL9DSkaRB0`cES-2n8-)OEdpnIRCjCV0CQPz1Ws$8M3(iPWX?@z}G zGq%rnK73gmgGoM?xxmrY-voMja)HGbZV7CX^if)$Rly|_t$4)u*PkIDlF$gB7hjxb z3xi$Qz<97(s6o)*h`*exx9a->{5$>szuEtYer)jqzxaNjzaZuQ8xlXD{?C6u^(MPN z!E-MKN-$l&cIUu&;X4^)zF__7`F<(oC4NZ#-#T-D2i~?y?9)C1=Yv=BZUuvfI&vJc z3+sHPY-I5~f>oidtJ!!oU%_Cg45sIK|NXSl{|OfQ7mPcJyQy%`S#*BVlzh+HqUys1Jv{$(?@thtYQvtV)%Bao8NHD`FFd@Te()vbBhAMFvHk%~bvUtR z3*|S4?<>#$!@HX=Rv#)(!+9{uqG?orr-fg`*SD$-$7ji1y{h*X6>L27x_PU5$ML6Q zBSJKnN;X;EZc9vaO30q9;{NgwLqoorkpHVTR1_yJBmEyIfFs|2cbMNG!%ToBD6xQg z#GXL`p+bE?zs!gjsUbmtU+p9ncnF$?OP*{T20Fefb5J znS30-)u-U|5toBB1N6%q1;LZboY)LH>BrNb8sQCT+Eps5Kkd$&Tj5cm{mJ#U`A&Op zE$ANA1Doz|!La8}^LCy9-60M(fUUuZ*9q1%HgXl*OEk>&cLOc{Wjt zVqyp@kMLi~UL8?CQ>t=$+QjLC^Wm2!r8+;9`#(@DGTM*58>`HE9g? zz#mQL8s20u@e8GcT^WPPpEt+GpC|AW2bqT9{~fGy$jW4R8vn&_55L1;qNg)!TIMpC zp2wEHe-G31_tys&FF}9Q0~}Jw7tr`icPzij?oZ?I$s3qY zv=IdhZ1JDQd(UGqy&p&SDV+??QmRmTP}j_0!moPg!UYD?_y@fc2aNZgcf17C^XSF+ zW#JOqAB@2Z=VswTJ7^uy|8=S|-P@PvEc=&Z_jrm=8q=_L<*56aJw5!^-}Huf-(g2Q zXE6Gwe8ry1j7j}4@(Hd+ue^~IhT6`hymlGv8#?7_WA~zstG3VHQ~kWbDPh-$C&FB3 z^xnn>8U#)GeVJkNR28Yq!(BW~L+m{CH9nl3qWIuRC1)~1HI4X6eh4QWT@_Q+M{`lutlO}Lp!aq9S z9SL`fH5O&ZOFfexlKge_+U&)ThJ=ugYqfW4u(ge|bhU`tuvz_0h@u)9@d8bD6 zKV3U|Q8yfP_xWGIA3c4m?LB;*?@iyg;Fo9bt-$!hhmINs+K=NG@IpPD%tnnyxELQ< zxc)Cg-B&-#g*xuD%aqA+zLfSI>v=OOkf2fq`KIH_;PLsz1@^RNswY%)W>m)We_x1t z9Z%m#3txOk{U!208stA=cgw8%SApJa&fg^Z82j5{>3R`v_?C_T zdzhYQ?xoRshX0>n;dyg{rRSybzCB|8g&@PvhCrKdpaT`#)VjbM4Hx+4VI3 z@AHF(cj{_8GeM~WQt}fXn zu5dd4ObLgs{NV%sChT3X=P0Mz+ri#t=3h3qnh-Dcv?_l>KL5JO-!jHLT3^$yN{mlR zWcL&5L4BuPl-}69y}O~a>2#?^KIXG*``ER19}Ry#DTdB-8symfRiC}lekk`S=uaaL zO^eie77j_l6X87OS@J3Fo!ZmARd-}RD=%JO+dkqmqod$&>*Kp&k3Sw(TQg%bcI;BdYc$}qVx#M0&kOacoyh=4_3gED`uEF9PDS=L zj?2_=XSutR-^~jpeFDc_T>7Hv@pt4ujYE7$kjL(SPIWxuRLs4K8hXgL=MvLmW0k?& z-;~(ZJE7kGi7D3vdX?dpbicFb!(SHfj$ea6rl-`uX$z00_!t$J$!R#v1Uyf(dvmir zr{FTUMVub<1$+Kt)}Q8QNwLQeTR48t$UIwkZ=&}AcuD0zIDU`sA=aPhbM2+6lDsDR zJhy7}ZHA}&p&o~HKkC2#OxkjWr~O8{`99H)(1iZE1N+4eB%MnJNJX-=h*eMK7xF5X{v=Lj^Dn;7KV9Z&wqq*|ItW@;6CO8sLvPR=M+yU z2lZ2<`sv{|=Mm8O!Qy!a0-oUCkDmmCh=8OI%$H@yT(8~C5_%(On7U%Vjk zcY@vPogK3v-+t`tM7~VBD$mX%3-atJ#P1vPasK?})2jF{M}6hC#WBl?Tk^Z`Nplu@Mo&zc@y*UDrZ{8SjOxey{X2|cR_so>*H|1ix>VQ{*#s-6~#>! z`491rDMj10@x==_PG0JPeCs93O};gKEf(YL${*hP^!fB-Py73e^-$>qf*jPl@^UX$ zo72rnrkB4CM*fd)e3CBh55(N?FAL9eHvGO;(--iY>Pt-@#Y4E^0H;5K{&!%7)B28x zh?eNz15?&E^UXjue*~`!Oc?;LLj8$kUT491Fx{ufpN9kC#v&TCmWvboyWuc6SX}#@ zs3Mjc`|0?V2}{^`G(Stvi~F}gl#~|hST{~_WjIeue$CNPWCz(#jqLLgHuZJs_v}mw z9H758d5W?g5PMV zmtY$2_w|SJiU;OX;6znVc0KjaE14+SKl`r_W_W==DXsC71S7v$WsA>|l{s)KPJ{o1 z^-|_&>R=Z!T`f^ZdNJY}H@suAHoM_bk(+LY1?Z$eIJO%4T0PsP- z|IyYv=Vle{o1qzwvz-b!?#So2wZk369@nFF@^thc$Blz@9wO5JVyk>1etx_6+dw6G zE76F4vz*-*E!_A7xPkHs@B_K)^iJ)Ux2wK?W&fNkr}Qjk{-K>0Y6Ac6o;Eb`547Lc zrKV-b#M=q-Z|S0U-cjDrb#O`C`&EdS_VT-Cc!isb5bhj-zsAJIEbQ+tJpZ}2(GtI; z_cM3RlLPeS5xbx*b#j-Xv2h)ROQ5ebYu$us3{Kc@Q~q1K-#M31d4Oyl=5N-L*A}ty z1^&2HyC~cFO^1&;js0A`ic5HV;X4dZ^Y_E_wqNkS0Q#;R{BXPbqDZ`pq<0@vPVt6( z-;gz{ZwRy-YNX#>jEY#zk^Z)X`&GRI@t@k}DFTvH{9o~TL=VevKRH0YZcH4wAN970 zccb;RG4YVJ{{KB}UH^o~_EVw<;%9*idL()!81;2miOzW4s0`##Uz^9=Qu zwa-51?6db;Yp=ET+VB>h!eWu3p700vd<-pdj|H{{d;MR&U1p!E?!Nv>L;7Bf+3!_& z>sR0TeqjH<^*H@;%--+GvM0&)Z2yPscy`C*^;bW$nq1G;4>e?v`Y}-P(XXEK)`$7E zz(+zZchkQ;_#OJ1&;^9fzTX z>(6`adUyR2(ww{h9&eAGZ$HX=de$%Z{CvZb6(IsP-XLn3!#N$!M_b`Tb0E8;P#ECn z5k7Dew*H@A|L*xI+$T#Y>ID$)Pf~MP{q}+*&w-yOohP8;Ena@X;-7bW^TV*uyLb&` zP@XE}d$9Zf?#0d@|EDcXVr=#GgJ0@7knd>vhC&XYeCK;Sxt5HVC9J+~G#VwI z`u=WtiIDPjcuaR;`$xcuC;X9pzu#BZmd6M30^p2GA6CD6b>+&usp=FvKf%2u102Hs z#$KNn0qcV~yzjv;?)Oc8+vpuYQ2(KhzXMLUGs6Gf>j^MVGK;BYph2#oxWIo?QQ|X3l04G-Gb>+q8HM?OPNA&Gqzp$;{&!EjQ(!b|Nim6 zd*Hut5B!AHCqO;h<$Xq0;(CU+_qYH4*Z-S65D$+n0Eq&MFO-sLlZR*_`@OOIg5_e5 ze{a=}m16gJC}!(Z)Gw$ycYP+=ga7t#)Dl)+!T9+eP_mayto&nN6yTbOHXmv$M3bS< z)Kb8T6usxlHB`H&{=d=QW9{=GzuZG=)Q|%4D$&vA5bC}^Snyj+QrM4DFlh7C{M+Y$ z?0WW}JnC&W8i!#ltVrNZ`}6YgUiSHz(;u2q_fXsW(DMxO4gsTGC@Ky6+unl72C^V0UNQ? z$YiqZO`{f5t1{U8dC$B3&V9gVK(p;xX2JXInuZpmee2o&E@+4Lp%haOW8L?U4x`k6 zWSd8&P~XvbjJgcQ9Vjhf2{b><%%mNkZ~tf!NK1FTP`H)BETEX>50BZSzH|To2LFy8 z5U|&#GAq|y-_x9P)l0Px~Uy_ z(-Mum?!chnNq22HUq}-ws@fM8eGTr%{-ozt7y=s`8`y{S)pN#e?(wug>=bXr2fc)@ zWk>~Fc}j+n>X5klASR6y4*v4yfS{@7P?x4dSj0pJqZd8DEJzgabtQU*50z?Se_pd+`2uE`lMv+1bMA*0eBpU&OpQj*aEJUoaT0!EQ{y7o9Ru71p$!QV{?@H`S$_&| z4@}U3wQxP`wxX7B`oZ1cZqKrG!Le@l(;)OQ%$KsSMlEo*HAHMezV0{`RiMguQ3Bvs zqaPqPQpI96Rp9>I97l&JPz&jgfhd}vruYfm8RGw#ec3c$04(^-GoE-!gg(tFp)GLU z)Hbj$UV|v?z+4GenUd;a`#<5g2%UHLe+!3t2rmm|r5Mhqv)gQL0Dq>5Y`pW2Y9gkO zS=~RKe^Jjhop|Xdn7%76hE~URb;8rHVSk$|HgZ#v8_%)hsf~l=o$Pp$ZTIjG_NL#F z50u2SLSg^A#AkFNvbyW1oo6dT@uPZKe(~7;K+o_0?!QYYO2W<+iKm61!hbs0Zyn&l z|IhtBDrNaK1NlVU<;$iic>)P~1e28G1J|lV0TmEt#=`+s8aUze{mpFXs=EZ{N<|ML z0RZb(awBaUS2FoiKV*ogkfTpTIxt--($lF)uRn+Jpr)42V2pQxykj4|Q-g7sIGvs~>jx@~XJ}0cj*M(_{S0kqRFQ1B3)9a>3HaeD z+t~T(F4ILcANFhS!q{I#hcL2X9M6jeVx;_}hUM>LdVQ3UTmJGp*D<~nS0^;T^SNiT z!jFd&GU(H;n61jG9gv+-dhYWjC2!&SvC?$m0c!_oKUOT^zkX_Fg_oW|>lDce7z4ix zNo{B%^M9?pn657!A@BDw%y;;|TD_JSI)Z z;qfkh36<8e^2i){Y}c^oiWyld+M+C|K(9i!P$;1y6(zaUxOW8yY!OS8y>-Apbj7*cM0qva_wgMy(P@AW-l;TC|5LfLd)XC74s=nz~Z?u{uP5D zMF!dUQG|SepPM+wF)QejES3Pj%+_=DlJn;PVWY&<&!)90?U&0e<9+ul8pU->;|w`^zYEJ&2_!(^|& zj_dDI`|#hjdhfSNF5%zkNmF8aUsOByQYJZ04CEWlZ;p;;MY+3#!u)0i%fm5VBlqEt zL@aE>c(dF#yE}h!C&n9L{`Wh(FJSDij^R66TY@o;)6Nlh6)H*nIns1`puY#?v8RNI zD86at2?fS`q(*9HBr3$%SFEBIG$PW!)1)?D52_;VuM+k0)J2Sp)Q9J92@dwdnEjp; z{W=}StK`K(PGA#hZ?&2eJ}^Iw^ye`2Z(4yjpLeG)hOghZ^9_8xFYwRNrD23$T!>2- z1_*=Am_A3`&g-*fjAN`8Q~VDj?xkT2{6Q4CJdKRUp`1>kBDua7)63Ky!eGn52*!Tv zdWB!~Fm=|c7FUCOu`o;p9 zkD58$T^PqEwsUu!2yeuAu3Qkp?9h6c2mHtZd9-j#=UGLyr$#!w-*rn{AQqT`xgA1F zYqrwEtq|I3;E1*b_zt@t_ZrgemB;WSDu#8>Qb82ULC`HI@Phr5+n+@gybJ^k#<&G>cDT5Y!gy_>k&Wx@t)uvp*L#$>euvP;U9h+@9^*QpksIl7 z5q)a6G@V~q#_kXBlu&U8PdQx9!T4ev#h(=s6p3*c$TwYSKj9alFh0$b-tinJvdtDW z-Sx-y4bo74cgsR@{jr?BsIX;nG9Tj%9m4I~x0CTOS1jO{2R0IY<08oKmeWt4#q9+e z>VyolV;;uy<*Ytq*^9Al_Fc6xqml5_J{Ujks&O(O)9Fp>r{=Ne+j)usvKyAxr7;-C z0slVX7%9W}u7={PI)@3p1HMmPzR`;5uwDysn7rqWuhP^CVSS79U!gjwB!qj+HkF?O zp*oN^f@3R8lV{;Q@_|2SS+07ny1^P&dP_e*R!GYM3Hu&Gi39x@RIa%?4tQ&wE z42)mnFh41aWfpnfAgx;LXg;>rPxc|FkT> z0M}=~C-r3t!C{FuUZhM{jOn}OJ|X#xgY1Xzpxe1-nS$uQrEz*{zC(wrqdu6g^USSe zzH-8iTz$5Jtbf<5B_YFA5oG=pizOjRiW@g@1BYS!E3JiBF#Z^DUSY5W<5J+C&CWr> zpILqss*ou$on61^hZ$0TJu7dKY(J(Si%X}OFz@-yz#r&s1>2`aALKWc8->vkWkI<9 zu*N6kL3Tk3#)sqDXYZ>TxrMP`B29O5%85J-g!z!Iu}@(7K7)k6G&=fejJIh!rT1@o z-*?f$4xtS8OJI5^Jip~ZUn9Yy7``&iPVy1aq7JUJ$t!QT>-55a1||7EwQFNwKDH5l z<|DPuW`gdM{#tynSIAge$#}}tf zNJ4K;vXb#C6|3kX<;WiVe7!;e^naTGW60hG^HE2}XD5vJ`xPTam=5xk?=174AKayp zN|_?(QcS<3f%8ISJBhq~OIyngGuM#udQaU>AMcTo?@?KKSh})EN7`4zd<~p&t{bjoTa67{ntBo5=jR z1p0oSHkHWZP_c?{R4@g&zE8Mq!Tz8U!Y|Zudiv=_F7mvwQVBox8S#6#{*cDVt&%-_ z0^?X%kDAK7=at36dP??wBbg5y5{=x}iiPBPR>*Cj+hY26CHyAUf4FJpQH-}W!}nsCXpGlZ_C>M&E{u;9`ie)YM#y;5Q*hpL z1LQ-WDiV+nMLLR%KRx21(p9Ex4 ze8yQt)}I$(J7{Y)+!1tx z*k5T_Pc}s!CD;3B8EK1bg2?mLFrTi=3d#Ilmu2Gx26)Hknyhr%w%N;%RziOiC?_uA z`@!iUyvB*-c#Mx|RQ%S6R-(Ubl=lk%I_A~)KC7;!mmY*b^Qp2D^z(V;DsulukUtf^ zWv^oT`KV%Uw9G>K`*s5ReHU^t{o@3ikSSOch%wj$LvkJ-Am0=09b651NY)pj@kM zd*8R{YxIdGozKW~{wKa4Yd=3ZW;um1$Rpafbr!jQUsRl-QT6joOy8xJ@NL=K$@r@< zQ2dqvZ~pg-nhu(I*jR__hb2-WsO{!;j9LBHIC(>caR%tS{l8a|{=ZV$E1cEp)z8-$ ze8N+E1SPosUZ5*wsRbB+4C|A-qiuvAXBy^;nYM^#Oka}=`mGFh!%mffgbaR~Z1f9^ z=OuzaVx;RD##>D`Ze)v2iSe#D6?J^36GLQz`z?(0+UM>T(jl(;%M7kCkl+*2{n8I= zF#bf7AYWIFqQBJ|8+2*8093Uv-(r=c9#O<3vul{KZ~;!GKx8vKvn z4mIKW3u`)PP;ZxGdzt7<0*`fs40G-Cbk}9 zwG`%mSVREEErxpOy|OAYep!9LWJp2er5~&x6-p(sm#l*4kG3+m@bw$jwZhaS$03Y& zgMH1($ZlZF0s8@DpTpzhv&PEKD2r)X+iO1dAlUN?`I*5#kw19cGtvFvydU5P9)BmB zkDs!Ew-WMoGOR-3LJyHfTP*zg%GNyG{%Z&OUW^RBnvU^Nb+7P~9p3fgTJZOUe`v8_ z`eD!)CyyGYVH^(j%-|O9`aihFCYMfd@Sj(|qZ`8bFsxT^ywEy;@d-n$NSU2M z?tc&T?W0Tgll%S5G&fPL&LHFQZqDsES-XbJ_Z6%>eEm4FCw!R=R8>iLV$ z3tVwtRv*nj$@Dn8SAjL2hyR7JPG z{QgN?zdkNh6dm#XWf2xjkmgQU^u0IFtSKw|T@^Ayl z_b>-}9CRM&wg*bm|GwbA4>LQ*@%5%So1pxfiS%zD4fJ#>Tx5{fUs0(|=cgvi$n_C5?YtmAGkKmk;4fb!bsxgluK;=4 zHR2-uwF~BH5f z(yMDn$}z47`^$%Cz4n$;m=8B56-rEx75M~kO3E}CuTq2ki)pUK_?3gjLZ&&Q1>*%; zK}ehHi|ZJ_dN4z(L@nfbF6DFx$It1~(bS0B2>NRNPA1JYbpai&qDqW)5lYzo)dDub zi@*cCR>26E+O^nO6 z8RA3xmo{U(CRf7WU#%eHtrX@T9QT-p>GyJ|kY?l8N{m-)(`n6i@Avc#xAB^rC;Bmc zFX&sPP1_4G_62=pG)a+#G5BBjLNiFbsZvoHLkA5pMHm~_8F?1uZLbgPFSm9~;_g9j zHM8=vCK}hjm%|BXWVvMizNM{;3wpwPUS~P*pVZXr&*Saxx=&%e8s_gMXZLc9 zVgBLbVWWW0T4px~^N4+(!; zkXRd~mAzAq>#u?JnZx4skK9R#p@*M%hpZ3$4HESYPtPPM@vA zI1Kz*V-GSjFrEYJ-{@c=SS=R81CjT0*45Kb6p+t@8q_qOv9jl*dkX8%P%0pvWUBPS_mrvJ`N`bBG=l#5 z;m8Q#*PB3}XVMg}SR0z=EC^;=&9;$ z)HMom4p9NQ5-K?!`~j1c6XF{l4nTatfGOHjUxxzj7PfQumG`9}*DK#beupK~z=!HH+xK1}@0-pya^G71KH-ORL^f{gvu6o^mydML< zzvuL>ztq5wT7sS@`rd9$1|6jOG7aDFFvJhE|7-)%=QhH6ReaXF-aZ2HD05Gnm*M)u zhl`^kn!WnX7Q=e+^)c^x+-txe^Lnc5IIgdj`h+~!lS1alM(z2iAx;2;>4RYZMi274 zF+L{u745iIOytu#?OajVL}?kOAFf|7T^7Ck5XSX?sEf)}rI7bqqt#QF-NqbGjZKv? z{5~*X;QFPkJb%o7Jzv|-t#5KTF#VE75Ta6f{aL%fo@kElCf8>IzgrkyLcY&hxt^Ok z`C%Wvenw4)u-9?(ON`aLa>ix%*vO_ zyw)uke^uSiGld}~#w&q8a`j$+SCtn0U!YK9`WoPu5y9m4Xq~o}pPHmpU^;8BuX);` z!+0a`x0%N%C&u@31R+Vvc*5Vpm?UiV<)^xLVB9P0;8pB15&88N=pSh#5oA8UWhj-VF$yBDhT(g#@yq!7 zjcVU;i_>dw9xP<#Q%WkPhXFsEc{=(k#`Colzejd12;;pl|Cmwn3m9{oWB7Tx0wQ0J zXl%1IGYk@i{tZ$Y1q{WR{f)g<6MoZk@r$#30xA){OT z5~hCw_H(7OARFUYsUGtCtR>^gN7T-XXdWT@=V7o{zaJ4x#&^FE`eVK~o@j9v#Q#P{ z68U+xa-~?eLDPxbzmUKY{iXNnYK+x!J|T?d10RfI3qc>0Wl$J{zny>Pv>$12j!44K z-+ccXriX&QC2YMV$M{aBl)f^!a}?vf5HEH4s)Ic5CJje4@vndV3#NZn-7DPJY9aI^ z8jwGewoFWC?Kjcgi11gCzub?OE{|4|!ei$7_?4c{c zKHp>C-h=CJ0Qq)m)I{b7_+NM_O7D3zb+GdFFe{ZeR8=4v!zd{<-R1w|{#{WrmS z{Qeh7X+XaQR-eExpz41zya_ErQydpcMv-Tg~X!DyGZ#8sAr76AZ|3R29`;Ja6)}T@Y z2nVkJ z3dnESx7SH~YH18VBYTYSoA4|NKho))Z$oM$mpe3}#Mci&e-t_^NPm}>rqcl}^U3=4 z=tt7u%(A4B`>!airLTYS1>vXjpnn;LJ>SGrVx@FQVNN4i&$H{l0mpta9{tw&geY~# z1i1cch%fFnBQk$JGjziDY9st^j~LbyJ>K{*6X<7Qrw7RUvi8;d39tRXPT0=tezs@- zRQoL)SP$iEbEn4h7~;w^XyzA*#9nnL4)~+2dl`P7g}KG_(i#~V{}As-C*|7@VfsZ4 z$VZFiD~vx;8~MrkH&0_+5B)Fg@}8g4TuqB~=%&KXu~Jsb?jxa&YW$`L272c<8^#AY z5+mP!mf}GE9*Ad_#=w5@56yxH!ts9rU@t#bz$o$aYyf-kq-B(h z7nuJcPN$vl?*^Fv<`2F6H9*@d982yd^#{Rz;TZTj9=GQQ{$Dw=&%~IGx3Mrodoc!o zim;~H=SB8BzC*v!osTora?8tmy2q#D6SKfx#}p}SxPF%=6ygs?$$VUp)fd&UB_{>b z567wKuZrYE-%^9UhSTse8Q=98dP+C*r5;j0Mb91G{}lfIXdcM>pl>Jjn9k}$8E;w+ zVZ53h4;HU~5c~o3$Yt+*St+lh&nqo8xcn@D;f|Ki3$9>5IVs#+>u&1IG=%qK+-PMod@#k7?rh zkzr(fl-Bo`oLHcjV!Cgkk(Ubj{xRNC$r1HG#(%>SJB8bG)D(cia1~p*Gk*1^W$lX4@zPw(ov8Z?QvI!gVzVll6xQ z;y*WB$YVU$+b1t3_<+7AT84gjh(hHE!Fqy{DIOSYsNKz!&r2m#KtSJ4d_VAC@s6GI z>Khv%URqgHGYiuLv((}n-z+5j@QH&yp*l?$;ZI!PuV%YC0oVT+)?YK1eL&W`WtIJL zlbz?K;QOBe8Qt2BXecT_UuE-7Zvp#HA20qV|J4uHfk_pDcqOVP%r64pf1VuTC3P0k z-xpv#V^wxPjpC@Nu3+>9CT8!EFIcr~O2gc#RU&74Z z{@M%no1cuybeJv#e*)}}t-|<9b-$1qX)49|ex*QE5`^Q6?C4ck4{0BIpXV^}`*;Tu z;`(#suphxPdJ^NVW}k3I*H7lpVc@q#>()syeT7udvpl{0LyT9-sSqmCaSP)B82=}@ zX7c`lS^dJ))GqRVMKjVvZYJ$>jN$w)aj8Q__){6Yf0Eg|AEwe^klt#Z zMaF-HA%@mdsQ}i5pk}`cs76 zLe>iq&%vd7dK8#GPp;=3H=E5EACs2|gOQFrz!f!3FZj}{FC9133QzVqEx10nQboVe zYmbzATgQ<4pc3cOqEh4Px+CwWV zLw;ISok77~(kG5$nj zqmhGbSA%%@SaC!DA8IhYv9eDnV-#e3u<`c!Ukw^DUBHjaeaEP$(938#>=z2y0{VVt zhJxgm`6p*PTTKG_J;5Vb$EEZVeZS`h_E6Ao4lWNL^1!C?)!+~6?*4EY`e0}LGuc+B z5aJ;%%yqVJ+y&$n_}{yuF}?!pEsG+b(1Q-D#i>fKJ~bWuV~_R+0Vnkouy61kGn>hH z@n4_L7Z^SErw`D2wDq8kXLpVed-fIB|5Ms@Uk7_*-8ytX$nzamN9h~Cx4*--*dL|h zUQaFPn`#~f!Tx~evR*PD-)O!q9r0r~FnS8Be+TSKn)G5Sp|d#Fvx! zKx{aF5BTBCeO~_;_`sg! z9~jNFRuF!!>fB)|>-k{E)3uNxOUEkgY{<=w4L!M_3?C+>E7hK2nHza0=YI;V`V|+J<4sXAdqr({D*SX^b$wa?^ zcvEiM4<|Gr{kMSy;F@2ein~3#tqsq63A>*M67*vH&;Hk;dpnZnPf_*YAM6@|^};vQ zx75$6C0BAF|7Em=VV}ndYw(re&&kieg1ZCl2LH=4i)BB4-bPIc{n0aC|G^fyRD4?1 z-h%0S)am>bo!5W9nbnu`c8=lkeIDem)*jJ9p9$a{%7c6mQVA6%8;9}XayL;9`=g55 z#I3l!#!8SNEr-c?S_$?s`OVP*Ouq;IoU4w}so4YP1HgK$E%>e()58)w=$Wky(ZBq_ zzPdB@+)pw6wHolB6>cZ?m!ml)!i*y81g2k68>EX{z4A1xx&OtZrf3VMAFGa`T?P4M zeB1?p-STDL{<#SDfn%Jn?TpgtmIveZUjcs%czSvVb38eWJErIz#k0p(z2x2;dG=SwvAHIZ==ok+HiZr2lVuOvx$tC zCeXhRe4(78zlTgPo=?p@-Hq$7%`yrVHV)A3=!Z>#Pl7#@iYzyPf3aW^aw0C-0Q-mk zc-s5@H*4GJZ?-FX@by;?&=5}|XU9Vv@jNeYu_m)OF_U^-e>00`uU!}9_)i$tSwj4=N(M?rrVI+=0wBk5gnb^xa@zW2ip862)1p4yi zACt)VSOoFIO!v~q)>nN(NB6}bTz`)m;^&rLKZ0?Cp@XhKqh$O^#n~72dgHs89uE9s zZ0rj%9#@K2!~W$)GM?|LW5xH1nn?QxdhH~{uT9bGz#A>>bp z6&F7ECJp~^C#O#sJ#SKp@s;Y2;}l1l!Wh~-(;H8|L0v~LZ__F;JuH#tZ|T1+o`s_xrb_>dnT8Y?%^1%(SVE_!TC5mn<<`=c?)(QB&z08-9YNmxj6DI-C&2XPE&`Cpke*0}=NUUc;doNGAuCNSuk4k# z&u%H#s}VYfra7sJvPwO-WH^sJUw?vxf2!LY2JI`+HtVdl+EBi_t4pzaDj_nP&twq% zySV-Tu>U@yIw^=1gm_0P4D9j1YhEs&MyVj)l4_Uiv>C1RMCt9nVmdy5 zM;<;OGfdvgtElku_brAF-qqk{$2Mvob%_{Fq}#PV`Hjk$G5DjoH!>@Q*9zp46BIPhyvIUFb8zw`W2GJjU7&kG-Pd-uBrX2sBfZO*Cj z^O;?kTPK`M^{$7j%*Dd{Pw*U zo*??nF11>G;tCs2a?5?mQHZbJ7a6?+Utg*1i!!x^*JCWq?G!dIok#pnU6sW`nPQyf zukOO;8**Nik@aaEy+Xcu^Ikos@2%{Av0cw0{Ldfay;NgFeMPrnzh6UuK!EE9!TU2U zS2{6%%LMvzfj6G(uBJBXiEwZH%RJyWnVAP(!u3~!|J3@|Ka=?!Ca>cgjb~CZ{cc<* z{lI3^V64%qLTr8K12Dd*X{RG2n_U?1hVgNnyN>XmID?IAHV=^Rd4i2kX0~3%^>2f} zM^;|y)&0!uQ< z{#yY|NSOcs`}~ZePEqZY%=&V4 zsG+ihC)?Il{vS5a|H+2_;CzUdxMH0vAfBM1q-x*P^IiKGRQ0>qhMFddWg5V z_FCK}mOh5clQ`kEJTz36=c(^P7r?%&g!Ax&FMpt!bRNk8p8m&_|7&_1? zG&@dzgztByx<1a&uZY-ln_EG`bvX!s3fHRW93>oXGF5_V^z`MC1~NXm;J>ga6{*N& zt+ndWdMS)A3R$go7;sLw#vk_oIUNmi@bz4!Ifrqa))W_1r%b^(AlEPPgs#g6 z`j2Gn|mZs&OA@BRZ+$X&1 z@ajV+o9l(lby!bK75}WxsIbwL?HHTXb;6|%&-#-64bC@@%I*YtGgbPf5U)|Rlhj`Y z_J3JXI*|wWTRVi&d0u(B0Q9w7#%n(=702*{E4GsHbQR)Hg7?)o;PyYQTra+JLi}rt z*BuNMnH@>5V+`^yBxAdE!anKw#UL%_e`uSWhpZs&w;^;1=4T$Wwe(4tM;vM=C4u#` zl974hZU4!+#a8-x5>8;1p1ZLAO?ZF%_|-pMUUEbY89!crP6_vGL*ctAh_B(6 zl;;zB-;{pwzw?*>gM0tosv!GW`5(jTE0$SqePsd_qiM0Vydf}vR6mgk?SdQV87T0KQ@+! zJ0r&x&bBdwxR~cZ?`Rtg@1MaM6de|a^7pDj&rZ0#EeNfG^~D{?7+9+JiV#%S*u#wP*qff@fJf2zcD!4f^pEn&V#Z0A|E3wo9WBPI z4PY;fw36q!Ti7X_#p66u>Ar?M@_d;Fh`*;woOYMp{lVD%n~fixZo&1#5<^Ar zeAVI$*lOpuC4Vff<&~dEbUrI-_Lq@kAf^ zyL0XD{P;*XihhSw!0=U6VN*ne52b*JK0j)O6zqG7>hmS8-i=6qbvFRetO{WwlQ zFS?22I}o}Z6~ll3xgWlS>zg1y+WUuw`!L=M@%2N46J&k`fvzNRGZW{@{g)hU7rGkj z$b7h4DB$0`*<;1mU#UDF$5{81{)jO7iWpa?gr$$bBy3P;2+`;$xxZ9&RGu>X-S?~` zV88;7eF5~H?mkdCoZH@ROGh{1Yer?REhF;ta2)uzcfR=zzTcat?MWlWi z=!21w(KVR<>(97ZOiwo9hv#Ac07V7<3ezidVZUh42;t|#T<}M?oo&bTpIFsm=CS=F zCfMIN(zXx!zh%^V0p0gomq8!hFK6q!GZIdZog)fpb0w`rAA zPX{}2VqyL#B|-e{-<0^LKW{O@d2Opfp65Y+0aknHc@fzcW=SBwY4U??$hFG~E!dw% zwL1GtHbbnBeX2c0Je*JUpIz9q-+0uLj@b|o01AL;!V?b+`@^{AV*={h_`Y%LUr_WM zQ8Dk#xdT)BoeA{g41T14Q1Ie$tCQ{1y;>F5zXkFYTtjW}zx%7Rq{7Q~?R|<8{Oi90 z6X+BQC?+g?!P_Wq{F$!P~Z-u;*$I)!FUquqgPm+zAD)qea zysMYlw%Jk+^9Qv(H_L+%`psvsKgTtQ*SD@MT3^wb`_qqN`UP0u>92LafN=%Ho4kd* z`*$KQvhim+8>X*>^=UWq=9BRUe{Gue83Cq$RcR2vxp3xN7;n~g2<@rKWc|8E3-ecV zo~$Q>YC^^Rzf7Bwx7QvGX{L$GMoiDc^>$W*WE###-F0~OyRsd)UfL5s?;0bga{0p-2Ghz>h{Fnz~{!<%Kv)-cc^5 zKWLpMRwx}yG2RUJ4-4|HZ!hIY=z*%>R!qNNsg}ZWhsYB@u;=y3yzu~YL7$(mS@{O8 zZvgv$Tb0g=ai*a?s;Q!HIR z^?eZ7qu_nNy?+wZLq!)gf%A^MhYrDLhH@0*5p@L*#vh@>XzBgcPu2-zxSXIT6#HPV z+I^DZ`yrktH97kSp6R;QCybTf43n#Zx!(?9rJG@YPH;rPPu=amfnMG%@0cw(R^aB3 z?D>)#<)Pu(Nxyg$K>1Ss)O0EX))$b^_W$0#|Bv{Gp4I-r_6PR4S@6IJB|53eC6EtP zKv69NCcB?CPw80RKS!L-Ef|0P6y^G!>wV-z^&o%!!dl#Y!@kpk+`6caqP)xdLYA}p z5n3T19F?M!FCO}few-bo7eIfrIs-zV=+(s{EBNoh-|>!eh>KcW*MPilBlxTCH#Mm~ zXV)Ii5a$uFKl(&?_5BJ1#2X%cd1|~OQ~~jT`t6FH_6+n(Yv($LNowRB`r!|shPK@0 zQ-}{5OD-VuQ3L+NrL)Y;u-OMwtEX zvKYoAm=B@9J>_36mP(7#uR1W6!v5R$m)zKiab{(2RND3jz)C&kYU_oBJUgcZav3G7cQJURvUbG-dMiKm0u!fUk=Xt8drVdiNt=&Vlv(GN%sTuTr~0q&GX*s_t?b_}fd` zr=u}GX)cwfg2N4CHvexp7xHmVl~2Il{Sor+pV?%X!|ul>_KFMYQ2x&RF+Hw74fr!` zM5z{v z>b^|*BZPiCG41o|y&E+WiVClJ$NjyoA>{zrtH;J&IzGkq{o}Qh=sd`;q+gX3Qv=kv z@7TG?fb{}uRVocJuv^9o5M^$yxZvR zqVur7qq|iQxqHJ-8UdT#rH-MLilM-9H0eC_%K!@E1Gp7Vt6N^#(H~Jj4dgGZs>0*> zt&19nXKsm<;Qj{x7T@(nt^zH$FBiYeO}&$#=jLcOeL_u8qu`GmJq+VDEE=!(oal2i z*vkh3Xng%^=k&Brskm{A?OcRTY=rgTqv5mJm~N7H(7p>@X&7f3RQ$-rNAdHZCXnwr ziixS&2=)h9PrJ??A^LMTtS2;QpPhxTZ>sK#8gagtiZLrs6*sHh@5}z?5B^BYoiWnh zjGA7E|9EV_9pp1dCuWlI7+3@AowgPtU*EVGD@JYOqH!LeBTE>wduU0KaWo};yS=EPJ3uQu1mjV!ee zB8%rd^MFbzzgxRgiQ7M_G189K$SQ=|CfY9AOE1HIjPaW{S$@ar!$<@6yWYe!=uekh ze;qWemqs?52JrO}rWMlbOC4J=9%+?I3sm0q(lN*%_j&3L9j1f-Godx23`2;&jp3hs z_Xg>YEbSaoIF|~*6~5?+m8vq-WWGau9>09V(gwDa+32U}wcr{b{>1i-O!oN@%&#oq z7r|zW1z-P$NkvQhhK8rGeLBR0rpd6 zs*;T-ui2K5T3LCf=RIQguYFVw^7^egknfC&RLVeqazMVFNwjuXC>`nW-fy+GE^6}I zQQ3kRUqSS0r*01T6R*og-2$PXbO)S$ZD)IQZEm}8@wgP8Qn2?T zU^T4onSoM{Ct4cpSrE?=9o?-!TRkI^-A}wZzmS2d?s6FNTimp^3Ak7NANhT~)dA~q z%K!BKmpDrl?0G%hIf)RDkfg}(fVF@g{=e{`grXxLK5nXnL;l7aHzk~Nb7V3DvWn07SlD32(muTYVH%xpMRRn@1TQo zApgyFvi{u!@jYAW>&X2YAV2lx^2RIB-Zj_G8*eN+6)H-5Q(c7M>;4Wjz$0=AH?YDR z9}!+vOZVjzGWXG{opCeZyqq`*b!=c0%@mgW{O>h1^d+SDZe!f@#D24c-o)Z<< z(Au{k1NEyLRd%{j1t~DR@64G5$o;A2qY_-b0Lm zUkC#ycD#)7E_t7@hPkK47~W4?b zPMU|~XRJMbt8*!CCzXn8A>Or=vZ3v$wGBN3 z{%5LTW?(z3`}@E|RKt4W^~cUnW+&%=N>NdQ5Nen!pe|{k{io2z3B;ZdFkdU>%j;U$ z*LRn$YJ-%~ohSOQihoQ_=`&NN$gVx$Pj5SuPvqZPSWg!8dHqAH64UwSpN21J{|R;3atGucBg@ZrdLXK&ZCs~wB6?hb;ejns5J731pHS<8i{->iEe7`dIeu~tBag0M@KVHr0c?&T1llMk# zR}SpQI4qG9z9FV)CdRwLe;jt&yC1N{d|S#eVWdBvya@Y8*!+iQP$PTIVX2XOBY(IP zUmvzEoo_28<|H)pRE)G__+Im&svsYKiYs^v;@>8dK;Cx7fAz4KB9xW`t%@u zRPa9z$hU^7ssMBfeZaOk59}5E-!e+v{#8S$s31cv`yursstumNC!Dnhp5Uku<@ALW z^RY@Jch@e*X|}$7+`8c|#Dff#KSkd*>c@x7-fHwCH?3uE(u9p_(yqO04EdqQV{u+axtA9hca}veNsd(z!-EdXlNKJJ9 z&zDH{-$1Am&ZD;8I;%f|eC`Dbwo#wJ`k~_J7peB)m)!OR(61@3f|WPp(0U)bT3t;0 zx|FwY|0Tit_jI(`vF)2T27_W|2tKbCP%kX-3zK3|~0Shw_W!Pp+1y^L8>x)7adH?4a8W>-&Iv6J-3Y$?c`DcaKEk z`(K3ff8?DNdW<(he(w46z5CxZkk54s2lB^tHM+LAS3-SvfWouB1?`jHhQ6LvizTT~_#@`_5iC=4~TZTgDzRLb_g!L?)e-M4`Ku-vfVrO&wm{PBb5VQx9``+>bIo$q)0 zH0e)>_YhVzJ*dX@{d0Sxex%r*fpHn+t7y+oCj6EY-c)&Pfxr_G0+md#zwf|v-uwi6 zARp+=B;^?Dv26xdbKqZ?@RY{@V7qEpK|zp^?v9W5wAi9{$t~a~AS>P`1YY z1`nMbA0^_VZ-V?VUX#TMH+8$R{Nqz0dj<+>GC=+;$ghi9957+Yy14x*V6V&HU(O`4Lk%KYCZ6iGs&s4A5YE4 z!>qmV@5KxK8}s!)@n^^eLg|m^u=dKDS&!WE>K^)+=G$?~F>o*c5bX0H(LRCmA2wap z?5CW1^f~(Z@VqPm6&4WSnLkDM-?$9+Y!20#0k(^2^Wb6q)&oDwR$zX%q!0KTG(YQe znEfv3G%olHJ~%sO!~OS)>AX~CY0X*8do5n4x)%S$!E|oY7dPH!DtotswZ{}zb1iBcvP!hE_15vfwwDtRrhD$tvcVhzMQ1vGp( z3}(rbqTE; z(yJi6>l7!RQmq31-MCfZv4jhlctCwmsC1ve(?LtP@_}FDLvUFjr4!=Z=#3y#eHDbCox~hmAiRbu9CY zFS!1Q8uo7%~^OOEg zJfNHUU+9kn?Efn2VHU`X8b}Bd(+p{ZVAMsQ>YF{{Xc=sJkknzLYPIN^h;f~)JJBIK7nK?t+?C0HY)>PdQm95;_ zjp_FcD$$k)Mh;+h{d%no;@4Xmw--Ep`6RNT-;N&zd)PqlBiEqZb47=6x14+A$VT_e z!cQ|yp;Fz*<*sX#)dwtQ+X8Y`+<3VTdAvasrHAj#`h&*7cA*EGaI*=%S6MU5j@=~_ z?0wqzmp=`6XHPKIO@nyWw8^ZW-G$ZTC~yG3ESe5(y>}1SZ!kz`+ukZNpH?Q;37tFp zNW9M`@Yk(%7J2Lgz$NX~u)brgL_hkG1l$Q2uB51ffnnKjPN9ecFP#bUA@~7UfLMQF z9h^s!1wYO-Gwj)gFTp>rg8rVAnu_KBce^QFFu4jWhmdYRc=Mu%R(4EQRnFzdaTavO z3x*omXL#}iho3f4*9Q!GGHBw}v60G9{{6%AUS??s_1HhH3`@K)q`LIuxzqIuqg9m& z@rF#z`!`@WqtnkBI3l2`Oh#i}f~WpU*E(&fF#M-2ME?sn^(EZeuHNFIgMMhB#dog6 zx`z+2^iO6S?2GE^f8_2DwoYRuM;tix=5<`(KezA2@$p$pJ<*S#pH|)md7+1dZ`L2% zebH%d71+xaDPxDS?|sSYklPMs&=yA|IS=k_lT>Ol_l)880<;;T9$8X5#{RkW;&v^E!Oqn1!5+cOtir+*K=%}bQORsiQ^lJmotQ0^0SDaoH$YozPLQHUqv zJDUSO#P?eV_L}5`Wb*uhxdt(Ve*gX%WNmDF^0hy0()RN1jiR zk67{)rTT>)t$4*C;jT45^DfKa-a~$)kq0^SgENh%*^BK+`{}DD$d8vGw!Z3f37_A0jys*d zMzNU&wJ<#5y=3cCo*Bml`J&2x>%Nnfs8CpY-162|XTZ8?e!i6N?|x@4=6uG!)}PqGZ+3$yK}t)8pFUIgcZ{qnDW-iMYUCCD`7yG~8(wlz{0K^Gi_ zO6yD#?up>w$f^1*pFsZid2j730^Ej_jzcB`&8Hf5Md)_JZNWp{ak2rsKza_M1#$^}{N2BNK6O8^@7aX= zU1M(E$o>|5szfZybLao6x;F2c2(p{a=5!Xw_qB^{@qcdrYCiZI-hKZ^wQOB>kJh3Z zj%a4I*ZvRoLD4%;&yTQjP!O77^$jw?dQBq9hU}4VLw?xLA^$ElYu2o2>m=I(LW{uO z|I^@IZ^A!ESdZa0Q>+v*4qrDB{y@Hc(WqsF+Gew}R}66taQw$-U!ex-B3rku? z&A2}6pLxE7GkpqM*FpP17Kn#-m;c4yyTCPhr2FHOKp+9p(AG=3w>QyniA69i+QwEx z@Cw^gRt!*r5C|#)R;t)iE)s4kAl2P9Vq2Aff?P!G?jqJIAl|i>?w&?mZ$T`|MU2N5 zK_Gem&m_!C_jY#A|LmT#`#TIDl6>Ep_kHJ`cb>~U&oeWtM+#tlwV}`F6_fH+V9%^I zH@;4ALb*6txh8!C=y^SDylsrrM7h0!YeC-A zsyB1}xSFuA7Siu=ygbbJ`NzlSkQ@G^zI{OZ*CQ=Ll>u70Tuxu6cNm|qtFPML!LPi$ zVd&q$7x@Xt$in)3#Cy;`{;P?PGdY>d58Ij zcWiIrpYi{&JU?lnR(Vt|cLDprS2yks zLb~-GHXD6{u>Y_uB{Ycj%o;&3@^F_N!E!bnn|@eD*Vdj@Y%ET;>2s8*93hkmXtAB56Ng2mE3t zef1?6|MV&3g=$z589!qs>}TQPRpWtwLu$Re(O=;oU!|w(8h^wQBjFCvAF~zr`)AyM z)mf6z)2q86+)8H<`x{m3jT7mpZRw}^1MkIO9t3S3Yt(qXeo5(pGTY@q9@b_nvWNN& zN21q$eG;fE<|5EMcU4d;Qt!c2k|{;?OUyioL_Pq|HkQP`Bn|D zGX(1wC3Gg;bY=Uw<*z0LR+sqfgN2h2e=G36uYy(@YAi$GeK*rx+wBzP&fX%Z&TZ4Q zrus_|AJcep^Q|Mb94P(+1hcIX_o*@j+5#u)z-tIig$1E(^G_{Jy=fxZuF!hi{xJWp zlGC%Xl+VphjdJZlrEK|9c3o{WS3Fr4sg(qo_z=I6599x}MV*}>AEY#lssbP$ND^vj zcvxb=Bc_>Gw&!?WE+|<4fHr;J8e*B!ozO8&Bx?lw2Ts4IlghtYzE?L8WrgsOP@5wg zxqe5<0sou>ct|-g{)Op>vXt*vj)XK~R_Azsm`AU*V^9iN3? z$U=DDq>R7A_+>VFhJNnK$LkgLb0(J@did6NB_kDdey&*N(pKSE467X)5iLsqeQbHq z^2;N2BlNpwq~D@Zb34j-laJCi6}SrgUtTPyZAReEKZZHRK8*;4!~T&J?E~Xe!{6OKV;)q5bvC>kY1E0g>4-@;8~=QZrW6vMf&6Y?ROPk$RnHJs@hnUa-gLH zr~{toOR!INyr$`C8W=KKO7M|28atUT;&6eR(?+MR33Sv_u*dvcpg$we@c7gh+oSpT zZR3>1m&4};ntvbUgU_SA(Od|>9~}>w>HpXjE4y*)x*4e7i0d#j9d;z${wM?mvH12N zGqx@V{hDy}J(hPb>U+!ux{t>%SN8F6ZL= z-v`e$PHgCZnw3z$Qt;02M5r?y>nBj3`8YnME3@^>RkD=LA)8?J`z|bRaDR2-7?ikf z=N<~>*@}*7lE=T+(MwD>XAbfP3UXWcbdCEQS^(ay3G|O(z8GrB+}zw?DgNz>-!8iN zc-KN<_Qxfs@cCvssX7SO6Np$5k?|IS(Vb%f+ddfPvnQ!jt(E(Sd}PC$;KP&tW0M|e zAIH}$OQw(~E58=+E#?dnP2i7#_=6Q8fA72h`u9N={>aY8nP6|q$uIA7_>C9ebhU^6 z0_-ny?^Ku3>&+!}6UfVi9K~5~w)1m-lmhh8XKO&dzv?+zJbz{?1Z)Tp2Ygi2Nn@7UX@70ufU@~mQOdh^Dz`)k#(3?z7X zcHsG)F!QXdOK*GMEOZ9@YakxRii40I=5Jcp((wnGN+ zU+gbvj)@Gj3JW+%ZPSmHF!%kp=+mtC7h--e+4lflvmY&FtG`^FK!HCjsxK1ZGp@1@ z0zE@KG<@0;=0~BRU=#e8zU4-s_zDVL0e#AaQ@@f0zBW5391G(Ykk6sLHD<6-e?=!X z#t7-21Eo&iIS;;Lq3ax>zt1^#c$*3K*KA_j^S6P1pAsI~#(D7Zm*yQ7Qvi$?+>oAY zhic}0S2x1rCHtY!k(wA>4_sqw`#=RT{zs%}cz!YF$4sK&7inGQ;D7svycJ;s5V{BS zQ?zO9eiR)0v+Eh)!vBrrGx`X){l10g(>L)qA_{biTnc4b*OS7%wV%f8cX&``RaZtk zYy!l8&hcmj>ar!r#M7Q9XL)9=WrIb=fp&~fmvf_%l9KoqzC{ik4dO*mQRgWZ{R#*} zBW3%4Y@M``fDWI{}*6^9NJ`gu#rM$ zoi9Ug+qWwM2IjhZ8}SVxb#K%t2JVa;v@>&WPRMc5ZUcI7bel89mW%BfWs2;W)LR65 zX#Aud2fFKvhm9ln*!kt9vwuBjvUPlXgm$x>U4EMHfwoluHCx+gOF}b0PAfSvIsvh6 zg6`mQo_hn9hpH0fgyNySQ5WpDurJj5M!3-5VR|Oh-*Eq1f#XqjV%rdm-+=x>+$ygO zH9w-H{x>z?Z}TYaud4&v|CrxbyvRC!xKRe9y?)lPLzNh?!PmWFWCz`3{Ag~hy$bAY zl{b`MfxLP5;##yM*N^Y%=@kWU&-qJ^6ghzYnW9emZ`haoxL6MSaSA$YJCYCW3ju!0 z-U&X_`M&7+o-|l5`}5jO=+~le*${6oL=QKr<73p&dM|-j0oGriE_CwWP`$)nYXm1Q z?vLCAubKMk=q1DfiL)N$RTNBc_~ZNiy)a9F`R_{5GX8I+ey}&=zuxq0;ayLgeXz;= z*3*aE?WFX{E(5%Z?LhAiS8HMa06HoPezWtSiF!bPOiEp;^cjZz4f;`MCD5abZ+$&z zhnYbCFrQE)gW;mlXTFbVHY^je6y){Q+FIx6&w#>V{?VjkGZY58riBI4!_LZQrwiFE z7W+Fo$c&aB3@-=$z{|^E)&EDpN944x)YHkauQt=C#K$%tfcrCk6 zH`#{3{=Kn0;Aa~iVr{hq*C#)rW41P6D8*h2wih*Frqi1@juikI3=A-!}!U3eo`oYdq!&NQQWpQxKnK z@$8WM9%8rVs=3v3%~9(bc-G#qGZ&!|&@Y`vD{$ZMA0r<}FON#0PCxqt`A>5G-~K)d z^M6qV%sl|k$E)pEF4*~F9|y!QUkvoO_gZK@?O4J}M|V6rL7z-X32Vl!k)#@+4?+J@ zD*LA6cX{ZACcm$?%ehKr>PZ95??=tg$5d{FH3+;WH)2|$!6W5e9;0w?gaADk7(s%J z|J9c*vjf&=M#1?>xbGuYp%a?50zGP(w2|84pOdMoUwHqCifxQtGq zISm|pbY+*Et5&ClHgSDfuZ9wUe<_Q7%fWtkv#ELg6A!Te&D3AtZ>=tTEKO(2CN-q?(jU?G zt#)sri|{<{8&V@Ltktu>2_2;Ghs(LcAKYULhmg8z6;0a*BIIp2L1F%J7G?l#gLrP( zFUEVN)ON+5UD=+YFL}KBGK>Bpa16S7mmfDuo{hWr&-tCjITg#HK00v+LWPKSFxssG zeyR*pCxx63YUO{fKz0g0?umSk>QUcy`XWRmUCb?=_PKXmf1wbxp#rSGX!&7bmf;Z? zuRTm&AN1447|)qiE0u@2^p7v^Sdo#xi{hqlrcHb{euD^=fj$`UPtf1rMxf|e)42d1 zA@IU?G%D{nm58H}^V807k=O371?ad}r-NRiuvZ|tfCC#So zM;tmFOnWJmlA88`A{H##13#myp#N4+uJ`)J*8L%#)KB_$*!+|9EE6XRba-s+5bvN2S@9I4 z^*40V!-?nR+?ukPwU`!gaxO2M9d`XzWGl>V!tuEjH-0;W?}>dZNv5Fr`~uA1YKzv1 z>qb7Zum-*yi39zl+FQ)%6R}5ejnF$+^|dk;+3r{}wp7MdRmLxYFzmKWVV9Oo&U@^RshIku?4G2U1< zH-i5O=%3VQ{QIAz1&)G82xt+nr!aZ4&7S)VEIM%s&9jG6QlGr!?gHyC(d)K={+PTX zvPfVO;!sBhw5rgV8O?!Dwid>SM!I#=C;wIu6Y&hxHB)MEfbgo^9%wH^k#;vZfs`xRg2(^j&q;Gtj?* z{zG|eh^6+qb?cK#E?|Q}i|Mzn)p4rtp&T`O{3P{#ntPMQM^g4`;5SL(E0tOpOMFZJ zoW2V2jV@U^RWSZskL_`na{YvHsVNX|Gz=DWkf#tokL?YcDO!owOUp~wb3=^P*>6HD z>U#LIgXfKagubJO^$=fy?bE)#Rg8Zg>=ywIli%Xg6ymMJhl z|7k8*2_WD~Ydi=3S7nA@H|msIn(4A?h=<|U*Rra9fCR{4>WR7;@V+9#-l_c5MD6wY znOo9<*C@m*dTko8IY@RW%NqY4`k&aBu?0|WEj|A6f4Bv1`mDuI9{}=@Q>#>(=sCmS zL3~i1OL5yRFusS>)F$AcPf&9`s1qSr)`8Azg7t`}X%D6xw?Y`8uT3uXZ0%#>ze{|M zX+3Mb8ltSF>7QBN+z0E4arLJ#?K^{fU84bdh5@p9&86GIQ^;pVFvWdR_P_w+ciLQZ z*4a)$akpu;idIiA(BP;1$HD*#^@L1$U4D1~Tn?rgVoeseNTg4-8-9i6nCFCmJ&b#3 zl4BjvA4Hs2dEohAnQ`s$AU(fDzd}}j3#Z=3-(Yp4;Wg=M*q?e*zpeh@e{alI6c)mM zCM9qMST&_`yPDe~PqJ((hVhd5Js2OzxlLa6{g_wa^iHjPU}j2&(uTm_2JuqU?nK3a z?6;;j%d=*O(Whvvy_7&aYZu6GWoShBSWlzy&oPr4P$M3Xt4**v1dN5T{*lkCS3W=0 zac%zGplRRuQOM+=y)7NuF!~TzV zyPna*N4|Be278cs_(_@t=pT=%Yqqz%X0G#kkXf=TYXNcPsG>(f7tN5oktaR7R&+aaQt&-e2*S(a|VrQ>A-z*7;o2mA^B~* z#yss7tL7?`y0jLUyN78S)*qCedTkO}-^}<@d9+NK>EwZHQ%ke2O^5Ng6RNbXUvkT| zH3Rm)^7MMcw*E*TombJNVR>r1+HT|Ww0Uh1-mjs$jJ+RXfgNcl^N&_T{ZqqJD9pT0Pgc`3Fwcx3~r5O$d$$z&dP28SM{rZcvJyhwTQ~ z=5)~a6JY$gvDyi8OIbr#X$m>zA+0|C6$Bn(*m3az&}UR?eAiA&y9s18c+1YbmU}Qr zO&^JSFZ9_EeKx#<>KRyo_I+WS(&DlY*2g;4Mmy|$E6)^SqMUUU_u9x%&`%d`O&DoS z9m!jMm%6oiXjV1oF)&*KRY3i;N@d8mw0s0sJnHX;I~=G5`97M~B%e`q8P90IzUV+N zh52>6gs|R`(RtXIbV2|e=cQU$PxVwt1lq~cL&QU~J3PN`D)<|mY&%*lNtdJ4E(r?Z zhiruL!a9lW^fYCgW$<~B_bha6ogK7CUn{lCZmY)Aj{C#KiQ;Gp80 zV=Oy&P-1LA3es}zXM!m{WO5_JyZ@DKAL zo?H(585Y6#f5hrBo29!S?!xoxB=p8h*2s<}!+z`DpdY+Jb8Bl^0wV(~ zaw|-!?4YS<5YwW@((6DiiHG}Sc!Dl3pxmX&Y}y7RgjU+pyUSkz%UeZx?pfh*8PSgR z%PI6ye2^N~6sLP0qyD32uy6Rleo;V=lZ(mq@O?ec<<+@q0(hT4 zXVLcV+bQmfP*p0ncA!rY^-?(n<9!{Y@B5rzodC-LGxHm2_GZtn9EkvXpDh*cI;$AY z=2h7PFXDg=1EI68VS9(Qa@G%uD<1U1F#Q>a!4A`=cht^0KR~o z-wWS80RIN;-!<0IiYzRjO30VgHImy=F`RLzK|B_s+pVo_!9PJDPCt&_A&?gLa*-rAe@c6lE3+M~i zBE!ornJ5d|6XakI{E3~Hx0ZG~$;R=p3aD>f_@A+NeTx1AOlJj#v58~lrrI&=u_Y* z+J(SxxJ}mUfq|st2W!&gu%BZRjt4Yt*^F3SIa+ScnLZ`g$~zIl{0-D4hQ5)FtnL4D z`%-__KIrEoe-3uM`P4oDp_|V*z9T;{!|ahG!ET@rs5gWU4H)myG4$=G``|yl_aA1O z1M!>QFwVg5Gc+>dug4?&IuKCGk}P`|Hk?J5RqI1G@} zSTlhCM1+K<{z-L*kQrhY3+}66zlCyfc`MbF{np((mT#6L?pMcOuYSe>{hvoWe-jS& z1GQTHC+Fh>6uMsy`a4XQ@j`m}&fza$y)lr#x_$Zr$3=Gk{@k;l(TfwJ`R^Obiy&&^ z60WmDGKG}pYAqh)Pk{0GS)e~|U^gMR_>a>|;(-FWUtuyx;Ah|fjGzrMyEp8WYHr-u%U z66Ac2`}$OC{PSvRdH1epem2`|fcZD*&VAhMWo%9Eve>fh&J61VCoWocV3jbt{;qhPNE%0Yrpc%C7*+{(w!bH1lZ=IV1&9x%9NC}=8~Q6Nh}}K0sYgi>Vvlfv)$SuUhi@) z$n%p^#GHXl+T{^XYS+6<&AswY>dN~xwFilicm~LG310u3z0_I>HyHnJ_}=)Lso4;+ zfIqYO3fTYZ#bT`gTUviLe<#R)kB+y%XbZH1H?RfWKL_$|vahdrehglJ)y^8< zHWC^dI?`H7qg4oz?GJ9ut~+H?=_)YtVqdgZ#Xg&o_5?E>`tM-@LoVMxTXaOuq&1vEUD8B?QE#u2JpI!r|}l}-)jLmo?kGGwl3ZX`e{@pNU2|Sl))L2#@)% z)=aLZ?2s5Galqau$mpC*oBA^cer)1$6XksUy#&~RQcue*e$UQt1bLa&*N=rctkC(E zTY9wTth&~B<|7V&c1W__wls^!dW)f06*~g25<=CgSJF{FBc!dC9IEz!Jj6` zRVtN}|1`sP1Zx|Rf9@~kj~^dzfxoE*IA}7OrgxbE`t7P!i~R0#eeCdg! zIq-ZT*N@lSWW$W$ObhQ|xSG2`(Ubb0-045fq98Yam5!lre7BGb_6(L|`W^huAL7Vq zUgV;<{L25ve7-Db=e+Of8|1p<-{URtUul7FfBY2we*5Ft;4H32qlx~noclMG^|6)0 z^JB1n+*^Cm10Pug@>|=iRJO7{Lhm9U#8QBNFh>tMkhyq_$rM$f_{3NYVE#-5VGKjrx2?~^FF3?8}sqmrB}|K6qX z_-5RG_`L=h|M~x93-GT2HOr9?_LqUZ(E!%QB-hR$SWisO4b}O&9P$K@WGhTch8>sF z+A~9ghHq88oa8VY$47ddC>b!aXMjB)?3ti{eBb|o$I}MoJB+@L^>d|?b@iXM5wWzN z>^sJ3G*k9wHwL!=0^{>$ad_-9z7SI_#tyV7Q!`ikd!TvY#n4T{dH(_(2<&A7E z!t8gG5Pmg6m8Yk^W& zjr$tnp9A@?6N|zAUsU0sh=KiOqxt&AwhSCyh|^gZ-{bgQYPNi;nl&4V11PR}+1oHb zf+XtC#_N*Y@$c~#7;k}p{uY>yoeONf1NIL_s@`1$HHQ7$cAD3K{0IA(Cm-##?vaSs z2U}@@`8LSzbSunPD6EJ1#D)`<2-fGAh~7eh}QBq%yFq#?nMRCGh5|z z@qGU9p#yy@I?NVqBoHaI{GT{g&!XR|v!8`buVedQOG;$N*n?vW;J80+tUbnmjkmx* zQwvz>Q%-7x?cWd&2l_lo6#n6grXnT86w7hE-_>$oof%^NhgvP~EZV5{Y^bff2;KtP zT=E-lmZEtYl5qppBHIoe55T?<9tP{BjHmGy7;k}px)#9kZ!3 zfxiF69%8(@f9Dpk2D8I8VFzpeWcW^oAsznBg5MFNzoDxjyv$8POw`)U%w~{zNRsI(8o3ycW`x+)}QxsVikI%QS^I6pkb39Q>2_dteLCX%9Zk~quXn<21KCupe>5k=Eq&(%~A{HIS zYxu+dlN8v$%d$7#?8T5?9jr$E`PzcMt5!(g*RVvJylX#OJKeYz-!C?hLZM;pm9Ek) zpWzY}Dmh#~yW0Pi&p*NVkVX&K+4(uwIX*{Tp%V^3e4$bq5h;}JzT8EZ)7cQ8r_^P2 zE@IWPXn2Aa1>{GD4dUi|&h?Wjgyi_ApY@~iG7Z}>;`+N_{I;v{BR#w{z}EFSSbiV< z9%j#j27u($BK7SyxPK|WU%AVU>8>?P=y0R*8wCZ=w>%2kpYM0#0-bGbAA^`L%B{jJ zvdACul_Kgn)(5_LJ#nrIU%y!^tjMz(4DRFhuXl2~l8>K`rtyBuD|@z0m?LVe#@G$N zkEj~-ygxyh7ipu-@NRo`oRT_diP%{{mz~3)vcN#iB=#{2{Ut?nmL%o=4kXfY}^E_{qW; z(gxd??Nf+Ogjv@!P?GgS*kjqtQQJ<-f6!I9zZ%56#ySXU7$Zc1--*E!LDvq zxP3yx*huJ8{CjARE8uTYDr-GNtdHDqd;Z+oKO?W>3%~umsrH_&JyM`1o#>hUpd4zZ z)J-;g{sC@H*nb{huWn}H^GJnE9Ans8+&`5O5&Y#ozyB3|j9!Ydfs=dTr*`|Fzt_LnttkEeu? z^>X3HoIJ@>Q?IFl`Psmi2x@1?>@p|-RnvE8%!%vxC7 z+m^P*M$71#HCA4Nk37(ndNzfJNuc%2Cg4|>_nj6h4Z68kV15ox=hKm(-^scrwiRD4 zY8OPN_Au=M>t#wd)lQmV&4iD$0Yd59Y{cwWFk?C5g@%mOk^C|lFD5bxJE#oL*tPr`0zx9Ri26l!b`1GXhzVyv_=Y@~P;nuB)b%pN*W zhgpd=RRpNH+?QV3OYjzzNLrr_uVXZIZTvLdnyH2B!QPjn>n-AUlTS zuZH#x>#ude*x1u_?LZ*xFMZ@%2+3a*sGgS8jJW$pd%zkM;wn!Js-H)-Ti|(2cLmVj zR>*kuqi_7aM$hd}8np5ve2rDXYJtSN-U${%wx;s|?bE_0emQYZuMJm(tND}X%$;cK z-5^hLC`riIU*9Tx&z2vTEJvZohlZZnAYBoxc4ehpiyVbC$6xQdS&_~3*IrGtU}mpr z6W(k22o(BqBTL}4wUc>2-vnp{VQbgTBIiT@bZt7-r%oTX9T5lXxrRuc7s-e9W+j$8kO+YynJLQ^L-bdmh& z{%Tj#=1As!yJ%PvvB3cE*J#H6;KM-Q)X7^+dH29(fm%KoMb38vdR(CCSVu6(N1k>^ z!)WV5e^#+1MW^P;NPgT#t+bp|G%77H|M*6+_Q4L%(R^c^YQ}7j<0E+eIY<_IjjB|r z9&F3BLios$%3ZrHJ^lncC2M)7yx*8k@S?6fXK0Xpa z^4$XO^1Wv{G4&}A(4shXyB_D8EUh>4)8($7UiG22@+R};^k($xOKuIL=bN;WHHn_Q zEM&tLS_JLW@$vPJ(R_L_w13U~Ib-)vY>~Rj+wYKkwP0c3T5Wa}!CmP{!t-im=I>S& zWl3MEj?X0d+mcTUQ$m$0f;EA9Vc*((=KY;h$zA(3dWz&%CEpbq>dV>*UJCr_`l}u_ z1XlpPHB6YeieTUml8z&D7=E!-l_l}zR2SR01x?2#%DHzMk5@u@6X;(hU5TZ_@FyKH z^kF)}T=J~70{UZklHxQ?>nuLz*^jWia2D71!^#FDQ-+=&76*f5aQF2k_v=)ho*h;F z>K=j}VzZ>2@(15w-iXtpz-I1Ek)+UuX!?Ri>pGm2#L#noqE@&;lR%sHn5_ENInZZT zM(Ic22lT(-c7dH8?~?8OTeN#3#rrTN9O%)Owgqb>r-Y(jg4YB`3mxp8nEg-=X*#4| zeRYEAUx$KorJ1eF`=_@CmkL#zzhme>N2Yd7Yf|kb*X!9BBkix{Y$rH27P+$XuZ}() z@Z-dGA(tceCixDD(ZZyzo+N_Zg6$+OE;)=mTd2^3{dJIezv4hW4;`pt-v6RtIZqpt zdYqh}7og{Qaa^1Tb_@0s#0@sb6TBo@A#j$=Wcq(xdb^WqKZy(Xl*M4>VCc!^V zXNjUx)3*_vI_(@>yIYm`| zMlJmgtf$*b(;mR@lVUEz2A*o#-%?G_kiz^Gj<1;9uRC2RG1U9&2!1o~u0$jnX4c*uvERAhegnd#u0ZYy2cfo`l1GIkvPYkaFGs!@VC8yf`>oT6yFutM!JBzq$pg z1z&sAOl<8ojo>opp+8>RTU|#RzXXm>(`$l-t}(|NaC?737t$uIPnQKHG4ysWSSuCJ z7cu?uLNFz|owk9Ichw16*P#Q#EPQR8Rt5VBr}CWHHbm1)(oaiMQc{@bd7$c${i@b? zACsTx?_b~g&TR(APWP9UNumgLSkW$&hh2N0!HH-dFTaqX|3j)WPvssyLr)LW+652d zQYQXObr?o{2NlZ><&j{T*(h4o)5qO&4y=#}#YRgq? zzIdJ-aVCjgT{hfm!3W@aX!0ziw`Rh}IaRZ8?_fd(!FkYLJnHvEyn;TBL{~B+BT4>w zm0D2M(rzSpb+F#EaBTx4Ke@@L1;&+;%_P4dktNb3Y|0=FMDex-?u?7a{L7jS1vd+> z9Nx@a|B~jk@bl_2=6zgAQ%I_vtoq3J-860KIM7X2~RYNvzt{a{a3z`a}9fdMdqrA&f5-L18Ip z>ED4z$wE8A`{uZ0G5o1}<8+C(rF&F9T0lS13Y_Y7cgXe1gjdqpXb;0r&Z~s3w0Mj^ zo`dHfdK|<&@1j8TqPJUJ3pxLcLMym+0`|TdO%=hVg2_K>DkS*4s@c_&8IMWVntIaF zi{Sn;5bP1#Aw^|P^#pfo6w>ofcXOzx@Tl z->9;r_twS_61+GtT2fQi5=d~Ih7z6ju4m-=(nKVJ9>%=CEh_Y4WAXlMQvLwQv$XIe zir_^mtzedy?`Z!uZV~xYs8V0e^k=oJ7~V+rT2da~KhMk8OH1(5M7^sPjg_z2C>QKnR?&4~F`-c4xU(D{h#k8NA_l;tgM>UgwUeV4iEZbX5&QC}bNsSAPp#=9PuqB0M#!Unl zq$6HWc0nJ=ClfxVMV$(96-Z#{+c?eemm^P!2O|&HBsL4nH)Z5lGvNd1Q|R<=0wcff zfjrW7gawg&dw;b6_4NIS;3XG zex-%s4~szGfBcJKMqfAx&$qyv!|00+5q<(=SP;`+;*=xWFRizYd9>LR>@QJ~5si31JTnx^gYi=i&xPSXGxI3X)}o?Xa{hUh zTx7noqk`avxzSQX=$cV|5!-Xxg*(dY8U8*~BNrTK**rkXd#Ln+!Qv7F!3zT^Nw~A~ zIV(2Oru&)$vhYkf507Pr>4)@U|90W!!diGfTUr<>=fz~RWdwKSW=RcUgFOUS!T1pd zWK8?7Nz}|M<2Ew%X}?168WeFYYO@cIa-?`L*fy6nmBZTM5nq`BIsavy$MrbUXjxGevms zLL)x5B(_-)6Kc_u{P@I9#U|ZPb`!itqZdS~QyBf_fRtiQY75;<@++W!cBHM3Cs-5M zjEX~C|E1l;o{2~&2Kudp(a2LZ`>$>U#&Mb_ZWd6$WcnjH75T8@b8jde?lMh(%2Sh zeL^(DKdOMAZRn_BZABxIC&g*a1<8JrD1+IL zV8>WWv_3GN(dREG3q>0hiWtZ@VGg$x#&f-C!J0?(YIFQElVusyw_iv0!-oCigYBg* zMThFh^~zOxN%4_wSf1ehEKH!Ea0}v+9>Yj&@5|G%2cgAN=>dCO-Tt6*VX`#%F3>mL zKi2p8#WPOETUz6-_QBA0w1EnK`Q=w$h7+u*7qo|G^fkI5UCk};&SIY5JvLj~tJ!FK zA8=ETge+licfJd$&zi&z#pK!@jDB}9AxnCwaUR2u@{>!YeU^xgq`W2&iT0W2j$u)0;dV_(!y^ z%KllelIwXUc6iRIOk(607v$sM9Ya0I7lS@*+`S9;A8X1Bj+X4^RvSklTu<&wEeK`m z$4x}8l|59J)!}N5Zf2E<5kp~r;Y$1!4!_cc+ zY@Te};GL+^%hBfp)UFrRag2Ok6|3eI+T|CKe3yN9Wf=|b3_aECqeR1*p|?oB2F8nG z@86XXToEXgwDhiDMzC9KyQf}X$Xu@{T`O&gi(>lg%nZAE%a$c%lJW%N7=osoKQq->=btD&M@%=HE+_@5>7}?dlt% z55f81zst{|x4>$YV1EUBYrS|9o7}Gp^y~J)_7sBc;e9#Ha&IKKT*VUU@0l2Rc^~Yn z^5#^g|4fh7x@P5xXOi+@AC~U@@vMmiJLVw~9r+dTFI&n3dwarfUu53Ln#9w>OV!6e zCi$Mp6z@=7H6l0<`12Fh(eIt_C;3Tzu@}i-mWSr;Zu)@HhaZ4G78a4g$n*0m_PinV zI-}op2C8{oUFsxqzP&%i^Af+oyx&EjuW?aoFv<51)WZHAjSM~L1?_0sHPDYn(~=0a zsMgz)k>3wg(b9PNzpW|NpVYG=#}t?68VP}t#rnW4vX8svGxP{WjOQMC(BrewZP$}bAk z3m$DU*fALVGxvHGq&-ZSzQw%kD>&amzh_wj^6K&65k}u$6{zJoyX+_+=YzeIo6_c; zP4ImM*zZ|24E=e4J?>6h(-|xChC-_Y4@jcLyRMV+i-NOd#$&Rt=|{%ARw) zkt?EbKGwO;DmtclyOdgOk@y(ypONdAHR0bl`GY(uEc~F~hOmDd#s_x!xT{;!;v%_Z zPgoSAU&IDC3qKsV?N9QzCd;K8e^Jkrzm(e|%ZPgWD#_0YE|tD_?okQBOLS^UzhUl} zex9h69@~5LD9O(Odbqq{c?ZFmUU>cwbmTTlvFXbH{QXc%*5?7MR>ocfd z-4M2KIe>j~{*o7_SdTMiCq%j0>)ciC;zVq2LaMTjdHl!9D51z?T;onde!& z{ft!E*2av7?`uv=kN*zu%wbCvfmxFHlsFB+vCyB^WQLXzoCo%>Zxb{@1b0LKuIJ@2 z{QbV-wBS})vJ1&y6(|(3?RZT4d8BtpO?|f)ko@xr)Qh(pk1+E6e1e~B%CQvY{#~jV zNlJ<@Lyv*Ua)}rH-aF*{o{f}9TUZMU@IFf;wBlkIztzp%eVpXy1;$9SwY4n-Zvp=f zH=E5P*glXFxj4EVBlvu9mSpCyzKSBa6Yk&MtYzqHE6B$}?}j8oWD2_u{s*(HW2Ip?YZgL>kR*|2L0^=dWhi{Fg}y~5aq`^ohxRCi|^=1B($&IS5SHBDmrORh@qS>G@hdXgXNXl0AG0D%evHE&~1Y zymU%@JqwJF3(}({J&o=R|K>)BB%3XjC&~SI&|V2?;Y|Bh!1(V*nUjR%R~K~zeBMy+ zOR#&Q*1xiH;vs?^lPSro-UE#MT&rsr&IAV)$)CC3Ke&y4dYEAMJhiOeeI`Zl%-t=r zzDJL&@&+H{W%xYE;ue6Qpd#e#-A%=2)f0RH#=C*lG}FHiY2>a| zbrzruTXKW`lw)aYBRJuyP~vrJOdl`bE0leg9>?%sak5;Nb)YE0R=yAWGX-Ts1q?rt zRIujto9&qPh|egM8rlY!=UbN1qPQWEF#LA=F|{-@GW9aKf1E}uD54Ea{qC!>Wdj9T z=6wQxmR3uC_#G+l5$h-U{P;C9!H1I%$lRZ1GW_5I*oW(bRZRa7r|SjR?s$8V@{3@+ zpK*rE^yi7`9m2e#)(=Vk7r8l7asMXf`ip|~f~5&wbJyLU_Y?+kMn4Hc#kyJBXz-6m z4gBzFCD@yegFqnXR|LzY*RSvW9{s2#72CLD&yzsOLW>VG{=j9rGKIl>g?avq$s+&t zSJpB55+_#6jjC~G_(w%@J7suOz{sof>6Em)&k2$HJ7lzbM%@|nf37XE3pCb!!t~z> z6{WKH4PhaqJnXk9k_{QH^oNfvNfgfWs3{wL-(Wu|I<2U_5y|v7kWZewtM%37{B9UO z)Yg_SAh=7VkkmI-6aHXamaLY{YI!G5#ql#oyaV*dN-0)4;|G(vTs z2Y%t~BDT@5$#nBlY%_P(#Ogcb`dgDrWfcWX^FaKJURHO=h3SvgMU=!6xjdYdUkd(> z_wP9661+NCDDZZ6t|C}3TojnkVrLWVp3yGo+SETp@Y;Qp8G5PG`2{L^s~bsv zce-5Ap0xQs!85@B+PI*}U<7a2k=}imrh`8I`pLFpTmGY)U_av`Z5i`CtAh2ePR@5m z^MRifHA^Hj=UVwu-B8pw4x1=cJ-BNZxqer!UYgXwZX$SDQEXr+{WOJOZr&MLxoJKl zp9^#%|LzYutk>Ue5e%OP{j8~OuC0CHr2FYw$s02(nDIhy?dgC!5ur+uZ*{F6uc4(n zgbJ=iDPw6L3x5slZ3_F7aKzX?i!H33^ua_mx4AuwkzWD3PX{l%)L^YYE;A$6Y5&0j z3DZAwz#jO;d#O0fn!3QgSt#~m+Ium)->MGz29gij+|=uV)`69jL23O7b5y#sn*)nizflN-gW< z<2^l0{XcA!OLp{ZZX@O0Ga&wGWfaq2w}Afeiq62i@2#p9VYs4$(cji4pcm=lvR{+) z^NYa$P%mcWXJCa^F??gpf1M@c#FpzStn$J{x0<(sede*gx&f?HiN>i-ocqvT?MXpl z_DqQ7_o;sDH~%~;LqA9F=79Ygwzo9Y4Si{`fJRUrtmeM(I>qq2)v@e(&K|GdVCttk z5Rm^Ubbw%wBki8_q`A6LoL~?7;K|032pb-zD>UugrpAekzH~kTNuT=lG5qWT=%f0= z&#d%<&p8{=Ecm*3LD}f_=+&TabB7`e2^ElKx1A61i0FlrWBgnk z8!bfMQ@gAu!^ipLtiXmjiBSYs6@8iqaXWkTOHm&I6gQoJTjEc_j&i-gFpKkpxfAYZn@nW?zCY=t`xb2E%oN^WpqREn?cw&R@-I5Fgi*{0j*p*HlxT6TuD; z|Ja(^(L(SgO}n7BYNj*6+Y%2d9zTBEKya0&MOOGZ9eQ{g+5gy13MOo%2A9NX`U!1) zeit6opO!%Ul)`D^EOP!bUGwaYA=sULG$GN0^6DvjM(fvfOe52BKb$m+k;mY_6m8nn z&Gfg*TqMoD(Ztl>dH*-dYs|ed}f9eh`K{Baml-aVP^ zzdz>^BQM+%wczh|=FLYX8r(o);5VTmdp&laHCx~3D&XISPn?`GQR^OjkLi%VBBa{s zUAotL%Z0&m2w$tD$o-e5v;EUP_!aZM%0WLYo-$!G$>&703kT*;EGM{I*Dl!SK9|9g zyp{k}>Sad3>&n$i<~G$elJY&U{6s$$sjmCw@h~6-m+B$ZvlJOtf<>11b0EavhhbHQ9SokGWhP(U7feR2nx}`_YT+bci zJyrMET9Tg+!Ih{(v>2G|D%X&jC=xq;jcR3#L(YCh!?Zdsu}un zk5x;m5$_5)f3-?4&5ry)N$}d>GeQUtWX8YUnlrMAPa_$6T$(&x(H5m`C*>b#vV;St zycmAJHBk@to+L&eb&L>-Qo?^dDnHjTmxIBf__~bwj!Mwb(fPTZsdV;s8nmt?N${6~F{SGCkP8|VF#+J4w>m?r_ z|H?@4MX;|_XQ!kR+?lR-O|72E@EeZ`y`bMT$UF~kw^lOHHWn`j{vgll><%X19{TUs zZ42g->orRq^CXgZ=%2yHV3kWPu# zc1xJ&Ij{1QHgGOpB>9IlYzf`h$LMowp#NutJeH7rZXU$nxU6T|XKfKR@Avy|{Ep-w z0)7?}7POz>3lP7P*PqI~k8R0X*-sW!b(8!Guy?%f5r3NCDqU&tt4~x6ze?QAia0T8 zEWW8Kwp42Qx`FAh9-Gcc^r)_$oZqdpi-?Q6%IF^jdC~r#PcGg}@&k7J$9jJi$@EW; zJip+AthEgPs7h~9%w1q+?%%1BOKUA-@vN7i{b2toXL7ysIyDcro2aFYbR(T^dTmRr zoLi8cnl=@25E}?u4%CnRf8VEV@|)}!XT^B^+GzBPEYLrp_~abRF{^}e&qJ=_+CHZJ z;*!f`9HVMfpU3+1S;gzSNB6IXN>zY8vur5rYf?X_B0tHoIZV8sr6QT-@BQ>W7m~j; zj~(&8IjfZ52f10ntc__e5!|&8`EPzt&F~lAek3v&luUoTkgS$1DBeAXl#k16mYy8k zJ)hvhBmRK~Wt2_XhlAqeW?@f*{LHE0Jv!uOTR z-w@oZD^-}^X!0VsB3&(`Q^xf5Wy#U9jWO{|e}wonq5JKXACmH25HEcwRO$7D(*4)* zF_`~@lx^4BJ2OU;_vYXpCht`FV>wAoU_d))@e3+#>nlSBuUn$`KCT7H^8|7q!J~X-9*I>K9nHIzKZ|UGp*7S&Wk2s)+ zaPHkY>C27|m6&{5%M$o<91T0wDnos{4zohUHvUN_U`xaV-el;~hm1bZF6d4#;PDW--vy8-haZ2$@TZ>g zc2DPC6?47w>1xT*-kwxaelh6BPe-Uz1RsES?t<$S!(Txkm!7NTRg-+T2qc>6txPAl z9Q=oF^Shb%QIzK=O~~$Lt`GB<1oPh*izoHWgLvVB??!tE*k@q8JZUiE1i9XYcEEX{&@hf^K{88s|{1Jy!&h!Vz2)U%IYk+Bwfc*;t-Nj@5 zWm{fzaEBe&${X=L9W#W1#k4|0?!PUM3LMEyJ4O7LRl01&hO}X(KWHTpU}fxDxc3p^sP? zFIUeOGx}Ghu36glxQFRKm(umJ`B53n`&tr9Nsfue?87ksPAHkWFPz-JGCfOB*~PFU zT9TI~>8~I2UsfbjqKUI^W|Hz+S$?`+yL&gmixab?Uv59h=tGMkeu?AW!1TvM>GuNW z7mvlWuhC`6^moSW-FXmys@_(~$V+&BVXb!qb3cd&5>j(B8GSe(0$zV*PVGn@|}zH(o{=?7HK#n0|BCWPCz3w{;#+kV#PByykRM5A_Xd*Rtr3c@ z7QM>QcOZ;UF7*bqkbLM*JZ~=-hTp^eWbf^8jt6n~S!;Bw5Zhzb5s{}jIZdtPFKxp{XLG3zW$e>$%bNx0g0n?A6EE?J!m^EI*+@y2P7<}GAzv`5G- zo#zB}@N??-N%W`mpX@UmG zOOZAmq>XKjK|#oLhKd175F!cQz?LeGlxqk?xk&B5YqaZliD1sRe^}&b(HyL zi#QfZgmM?s?JO0MCyVIXTA9GEq z61i6mu1CjTR|ZC{v6NsOt7S@+a#udhn0y17)bVn-HQ4$(C88i&d?bO*=JOXg*~Q|2 z#{cyEPp=UEa#Pqg*gmjn?BM?)_#Rs4`?OnaTF7_OpSy?0`yPnLa|><8^F?)Tt)QX) zE|$NISzv!DaK%40H4_0k-P90zzIvEH&*i(;t9u~-o^4qF2Sg82sfCMunmZ9*0`v3e z_qwot7usSG^-?6}_v__i;qVPbG3pkFFOa zWh}Rt`X5`Tij^NRt?qkZe$gk<@x}Ah5Lom_VZ7D)xctdpDlu8mVA|SAv=Xgu)LseX zKcprmmFTGB)c*_l5a2%|3^Sl#F0^{3iKk`jvAv-l{FkRw`>_1URAvZM%wWJX!*0xB zl+Raj1koVQNse}7aET8<117{g;0WtwE;m7hPT4`3{2 z#xUPyn&4@mp3k~Jo&A}>{m=e6|Ks&Rt^ITAbLu2D1ol?GFMN*$4eBe<2b0UXu>Lg) z^H;df$Bq;WetLs2i6DF~4ofW-i~b!vk=zm!zGeyN9ep|THT|BmR|Ts^O9mn+_@pWHx^-!j~c6QT~(vX9dFE2QJ6Gt1Q6xQ!eKQ%(CaO{*(#+ME$*i;}l7~ z4mAiU1rgHBX0sE=fS+j@;-0Mr|LP#VKd{dWGwWe}?g<`GXdA&loL=JhO#Ho=95ama zZs129lovwRzo}FTH+8NsIC1CGOt}K~PYPLwHi`Sk!g_bh({-5NHrFUf?>1R0I^UKWy$HNlW`wn{{%>YK(}A!j=o1^F z&UYaU_C_)#$1;iVjY8&f!-E&w5N7Sni0Xp?P=smwdT%(BiEs?q69y9B!{g1Tj=4Ox zWIg8Bw~uTPK5TWx`|Zv)#D&&)IrS+xiF-NJQ?g_AALv^Y z=5NLKzY*3)Kkbw0(D^e}AfLi~aQ_i_pCtoxWefB>EQn9po-(>xA+S*2T&N(ee zBQU-b=e|?Vp{7gJ-sp$*!Iivjxxu>;-~Wh`5T3i}NM&)H65_RmIiI=wrOI4FC|Fu$ zMArj-NK_x;f%S=N<)*-}ec(^FLir#o)br7aiHZDK;Af`<+FP)gOiS5%3utEg91U3- z-fd|u*S_GN+*C*egf_C-==?0Lg}i@=i{)E&vsyH8H?<$pRbYS4zi7nw6Oyfw*oqe9 zi<#;?A+h*Zx13f`1NNq-ozW@@2l#zQqU^AHHS=A@5@L`8b=@F-?9UkfFaLn&`w#4& z*t@B|M|@bH@O2L!p!=zlyOC#3p4^Er=xc$g`Dq=X4;Z21MvFuQ!5`bV13%fR`_w_3 zQm7`Dy7}Vq?E&`S@Q4@F(edm$mDJc!?Ts)Y3@Oqyy8H)0T0+==uhtjQmC|R(s;xq8n3aYqyCw>U7`Y; z43BU3Y=Z2Q4PpP6N~LFU^)COzZn|E~U@4X#l^}1*puiqFANccy5p9pn2#>;iWYj23 z2*Y}oSADZG3t^ZaIo&cjwr|t{fBn9<&7uF$ed@rT@yW-pHKYESaDOIo;V8nMsa(?c zp)Vf)A>i*ylDpznW6QhZO5aYz`o&8JN`>Y=suUexU!xWov=eyz#X`LGqVLEz_EA-W zk==mxcecUw`b4YtHpPMLycWn;ErOtt_yXf+P%nlyio`%XZsxEDmXDP+JQA!aCFpuL zbsG}i&-5Ng*d*~NBJ>|0Lb$t-OD64OV|lx!C`#I>VdMEWSZm@KJ3jph>VHEgCZ~#~ z@%Q%17W1mvE%}JPL`sl1$Fdj*Un_t3&WWbs0)$^`i;~VX+ftz(8Hb9ataN^1PD%=Q zo~otVU`%^}KfcU^FESrI=Kpj5u>Z403;Q{(OH8V?5pxOiQ&eLL@XMmMRx8zPZ-F^0 zIzdge9E^Mmoxid0glK2miWaKb>S>LktS4#vMRID@Q|c?ou(wm?AddwC0hSNf_b!f_ z&zo?5e~>Bl*^5O<_Wn7lbzpCG#A`$}+>dl?l5Ab&j;*i21g{jreBCXRG5=hb|H~YY zeg(1N@&I;Lo5=f_&=jo51U@RSA%9HaCR%-Mc1G^qrK>T z8ISO!&*W`~GdUZK7g7AQ)r|0sLY}a5Mes6&pE+Pdu6T(m9WSbJ!bBi?ES*0t z3&-=pmRxaQn|UG*(MheEOl)%5_x5V_67!+cA0zsv>z=-ZzhIu|2^d+Ik>t-m!#rZ&MwgSNAR3nl z*45$htWD69`Cq9Qqw`5?6vD}w_8%hL1okqj%|{RRJ-ZdA)FAji7xy2={2y1uj4HcT zvJLh3g!SEv-eGvWu#O%V6;f0mqQ~gOobBv=B?xC0u9UPXnSl-rH+cPIslYf$+lQt= z!?jU*BI|IYUJuv%XtWrl$gqSUxCah|EF9kxtl|c6-F&vZ_l5OSDtIF38u07gsm9-LBg7M{6dc-F@5=G5nht5=OyJ^u>7mfRtRUB0#744my?-WsdL$TM{+X~7Cjlm{QSspIWA<* zm46EHg#i|Yg+#|k7wUP@4h zPdjBLsQ=cQ%L(zlO;}%#)pE(?f^As-3LySxoLM%G`m?lZ4)LA(e`DobvZA>IGy!L; zlPg5*mY;r$v9eTH+i?xvU+2^1pOZObN-^=;0oU_G{Rz@CR&oUOznMz}rj*>cg)qp^ zfLl|p^=EMQB|%%;QT#qKp(9$ag&Y)0Vu8zj;J$DpwPUNv-6wyp0<#R#Qi}>=ncPq$>g$ zGQKu@|3^@5elbX}k7@4yBm4f};(vee0B#_5AgRztO@IYw9_lSvSWkv(o6!AvNH6h9 z{BAqsF)i=AA)f)ZY@v98Y{u?YYoU#ul4IOu7~$e_}oyU{&fC$e@2-%!dZob zk|$xl%?OXk)e`;YWitqu%1xZS^R9ZG(b<ICt3FN7U3AleeK=*{Jm$yBBekOYdY8ShzWkEJZrQrY*&FI>W^;uZUsCvfPQZGY zKjXI#(QgzgB!1-CUWCE=kz2=XY(#hyP)ZBsaZn>NAbK?Zo zU%jE8L|$@gKB8A-E4)LQuKHCzb(_|)$rJc|-|Miv(%(OuhWfipO9dj~H`@?i0^?)r z*6MJCujYb28WD-@0~IxjfM%=xEkv&Xd;jgS20Y(yK4OZ?e7kKP(SvKm!Wo%465(>W zSm?%pWQB!xO&KW6OX|bx}^?^)&bGM|7^xEg__CV+Fz!hLytJHkW_z z?V~19V!s{BGgi?Ck$L*22Kv($wL5&s7dmika)H0?R7I}IpRBqyj?TAH-X$^JYQ+2- z4e>Iv2g~t%(g5~HbK3kxNB@hRYp=lgCYGkIL&t9}FB949otR%McLWM$N#9`obx5+3 ztV+6%?FV%U8lmr-&trLXt8j@lY25&pH>2{!!luEFM0EZ!Wtk|&;;MJnK<8sD_3>Gt zKkx>9y5Zc{=zD;^e_0UH&~wB3nmO)b;mzCQJHTIod6oGp^QX);!1VBZe-he5|M0h3{Jg@Zu;KR)Uvjd18o!}-6nz2nGTrMR7*x_w2BK&q;m$0{Y2bPCh zz`krrPx=2=d|%#5v0JrB}hyDx)c2%?cqudyIrxe?^g!6BD_DWpbC7Uoam z_vuwb1h$sk{}`XI+$37jMqzm~0`ZT_B4_aPhW3etDfzc1QUA?_CPBMzbtl4Gbb3zG zIy=5!s1Fk0ee3#ZL^ndczq0n;g9umah!^^(%UC})K>pRafnNN+ytE3T@sm)j4^`3r zt+abb(ecV`v2gvl5Ii4*XnBFYMwfiQ2Js`B7FWG`R?%W9o7Iv=nVo02aU@EVXYa%O z#R7ZAgT8(&kGglj{PfJ(aCE)O!iOmX9ZO;SSudn!WM2pWGeLj=Z{=DS*_-Klps<-q z+FZy4m0{cR)Jn0y-tFDi+kuYnhJ4eI$pUO2G)OEwsMqotq6fkA+Y7$I`ilqDYb2OP zGolZ#T`UZG;kP(`#S^}_kB=)r)|2k9&dZ`M!e$S4NB&Vj+WAlcI^L&HA@m79`_U=e z*7aAIBmf=rztBFgpMap1amXJO6a28oPUrcjVSfcNPvhgVPlc!kMa>pAX2|PurRZ*J z!x!lON3s~?+tW01>tjFV_BA5HZ8~yoM9tc|W!tm-+EZ?)vh!bL? zBocJKI_^CkF4 z16~Yw3q^FF1DR2Ney;jYdm!F%I@yZ-4IrOMLvLR->hGa7iKcVDHY1z`@~xoYeN11S zy^>6Ox?>j6*ML2rN^`}BjX?bLd2>k>qI=XF7bQ`y`6%`XLzvz>1Ca*KwrT%yi0|-e zLb!g1hNlh*Lig7L@zI>f$O{=x`VH#pUcLXU-iW`qN0D06S0ar=$A=WDMYgF@Cc>+v zOwRp50^iRSiC&^haqK8M-)gYeg)W^xfUuWJ&+FIMb|M@D_6I6$(g)$M z))IkCUNfFA>f}t0UfqJ{!`R#|!C?N@t*HN1m_P1kG+}uJ{%z7naQIV1Uo91L#&Xzr zyp5IfgiPOvZHPY6tQO``2XzS7?bQo2e_`rEcmn(b-czo4gXRvCXy^J#%ztZ&^Z`jp zU1g|0WNT`PT4N)^!78zETBF135teGDXtuvE3DHNCrJ_^D`w<9xWe4&!`5heyFIJWE z!hNhW2>WP{OME?!yn}FqqrQ5`S%hOC-q6F3#K&*aaixCs8}awLaYUT(&pS%+_q|fC z5bo8^q@m-l?Prj4A}SqYh?h&uxg~&FA&xl;>Ln2hkdMc~+eWwRpx+vr&tv|+0`b$_ zlxZwaJYfC7Hf5mGQLCYz)AW}6c>I1PvHbAHxW$AzWFI*ZCzE~n5aI4DBH&bV4jbWE z?PW>3K$?Z{^+G0DJaHL+PcPM=plt;iis&rxXH$>&WBEKRVUl5wlkj+m&0b7q6pZ8X zw|j4`VEs-HkCvdG;GUr7ML`f>m>!>;hUWFZ_TN|PUYX$CW9$I^o{&XE^x8n&*r{9g zF}a4<=sT@dv|5L=QPCUY?ic+Am@? z==X!%P&^*pYb`R_qc&&+f8Z}4~me+@^sD6$jv z-=gD@X~{-BUPd5awd_~-CJ`O{{UY+mKRJl-^}T$Nfo#C@vp~C8ls-R;-^c2NQbE{T z2k`f;$W;pSjeb~vugKPjWbchVM(2xxdSxT6&JV)R5Bx!P zsV%99eod#2@->8oA?$rLLsfauRj>PJeT=BPcE|o2jxL_64Z`iphv}&QWu-!RlUb55`=7_+vi$$`9Cj7OmUk8%5F z;plv~Am1mweHoSq-l>-)#~Nnm5WQSlD!SNGGK26{sMq(C;K)dXN0m#YZPTL(2#;lT ziHhe6asMrlU*_H3j>u3S=AoeBZX)>eoUO5ZaBXj|8P6{kfmfliwA6^`UhsXg>`FY} z@6KhAZZ|1Bz63fh8OU$zL;Yj3zluxz9)Yj#k*emk1=Up}`iT65AmlK_(m)%4e_kpk z`DusCo_;N%OE4MvTtDhx1^YcT+D;^bb)*v_epB}DxA@oF3)Av{5Dn}9)r{k>{Pld_ z@5%xO_mAy^xnFYIh+h-xK=5zy7wKehy^GXl>Q^z~|7%E2PN8qF{ZNzfD%9^`8q@pzHQO{_ru zz;lRB*CSm|EyeaJ0mSdk)EM=ME`WTN^(!x7``4)>QPQExrV>QoRCq!%bJtb>-93RT z3^kT)Ky_Ne<=uKJKw+QB&4AAbD=^{;~bwWO5uSl(B{ z{XQs}<|8@})@M~jI3Dj>h#!oYbNL5PLcM_Or}wbDj)webK|xj)I^OGmTIkcfz6jyy zZd1Ul-Haf$3E~yT)UNm2C9?2-l$eS;@IgPZ%oVcG0a;h|uzzAi8^T+(#|0lM^RPVK zT-f!BwJar6V#0@wgn5u@UQkt8}57Cq+d&cfR@MfZg#( zmGYIm#$X-TBH)hU|0UJdcUVU#Q1ng#2J)M8hC zc7BVA(|ge6uW9N4{H<#~8HM=R+9}N}x}HYD<-C0GC==nE<=nuOxuyFM-dGOyz^2FO zbHRSTLs^-bhx`$JSSjXoEL(>470CaJIz)Qm_2NX~s)YBIzqo|@KU@p(p^M%OL|6dz z0B)vd;Ohmqh`swdu)UbN0{Q*2UGwv({~maLe)}Be_cEx@loR;LtBAfOw^Sm%y7D)>A>U@nbCFnn zt%m(aJ5uv*qW-&K|BVRaEj-@cVSmQ`WHlSn>!6;zhCG;xu+gwM%6H%U2vSggpWOeF zM>zUnH`Eu=)OOw!vs2B&GRlY8ezYOg)it0 z<0XB-u9=#4j_>25tTO~tci_%s$M1mw=>3EI2a@{m_4gzwg=y)RH0XRoP`~^&a*m!K z9c>RSe>z?M)HRSVo8;lz|CL>oDZTuMk}0~g)jnXmE>{bdT|9rxaWMQ5q@EP!5VIc* zK=G`0`!uzCIc(SA<>h0|r?Sii#St5U-;;BSlOmp7!ubAwHRkU-g5W!x@BG!t{U4YB z^)Bkw*(iIBeYx%DT8QUl=EU!?L$uTh*p^5I^@Wytqj-Ni)CX8BDtJ$`9!bD8sz6ae z*G+hvQ&4X2lzml#g2xZ@u0hWioI5BmGFy8Q)+S^KgVbBi2zx{P%-t28=?KT^l)~km zGTi@W;b7csnz;ngw?KX;#dn=A&QKP1?^mzW>N$^)Yo zKYIvYZ|^{0!cbB=o_~QKh|`DnV|lj<>TR&^8B5Xiyy_UFpSRBugk!;eG0`=64`FXz znY_2{Y&^nag_k7O)LA_KvyKeKg|!vINOm?a$lo))cFaYG`7WXl*4IO&ER_w7HH3L8%@G^@b}sT{_4iY zMm(R7LOsIP-h)^^dcypjR%{wX=ZE#JAfnlb<;8W#=ge1rKr8nb&HV#V4|M}alXtiN z!G)=Odk1aL7ZZopD!9LyPa0b``m@p1P`~4iMY@C5sgCo_huUK=iy%L8tYLG}vsny2 z%r=&Uwl&YUKn-5lA5}2Z_uLA{!SE+odR)-C zqT_RftFj*QCKUO_2w#n31il}t^G0|N>{#@`20I%rv`z9-&h_o`#A)iLBPDTCY4M*L zu2v(uw{E2{thXJHub;vAm`|fewzDmfn*8s*5wZ;7-LQW}-mELW2fjx@M94+FUZCR* zw}yseeU}C6yK$rDE;{~t;X~2(9GAbLPRUr_^6AS9vkUk?%H5VFdaJlIB~ zdA@!Ag6$S%fc0wsW0!yM8t5-6R1kjtHQ+qD&R+-bOD7`e_diV?qE1~e)Dy7Z zhGTxGEo5;20rN*Y7x>*yc}6ivV?%~hpR<{-*JWA!n+AWE2**POXR6avwKAYqBguet z8GFV2t@+_NF2UwUyy>`JkF|X@#0#@q*NESnsIs52PTYx(;t~h=zLg!%6*68Yo+BOt zzb6C3|6M%%Kj`!c`2SAWHS_MvA)kQ{>3<8YE@4nm(b|^|Ph+NarZHud@YdT}kEH&_ zDVnLY%ekzb?V%*@FTeD|@IF1^^j=WZgtAM}_uxe*zrZ=J%7+B4b0rdIe>?2&!W5dg zpDEGto8=EVOruM`41)0%EIR!Z(M_DI2@G!%&kv3AC}FKx){N+0Qb}ND9PHO)hPMy* zI~*s5YS5FKr;cn3h_{Op6A=+*8r1))a)U6#>Z*U23Hs&>r=jA^LKA42QA;1soJDve z)blx6!N&6=Z9lw~k@6VPR{{TM&c~-C+^w_-?x!Z=@eK7Tg!Tt~A4I3?Yg>En4qz-- zlVx*x>%jVw4|4{U3HO_rI9TgkUD5fm#{(=+Yi)*lqg`1gm=5)k zIj-GpAwMU98Tef5Ei8|=!232C(fmnSJynAezt&e4*a_-C!+Q3V@el8!>&1Zoue7nb z9bql(PqaNR9^1pTuwSrkCd-8Au%EK2F3{O9XnKVNH0HKH4!o?o)j_%Z6>t!0pH--(Z0 z1^FNsBYhiD|7(R&ff}~4#EGXVtpwt&8`MsEE0q=m`8FEO))K1cPRjQ`ApT`B@TVzV zCc6%MMQv??QBDsrCK8FKOKVCkDGHZ3)Ch>5u$fXp#IK}56Tc$ z3XgLl58TD_V2LzC_^>H97SXw6OoGwauo-YiXGH66F>zHQ;}Q&tI!C?oH1acAelk6D z_f%Eu&HL$;3gW7`EZ=es5Y#&#CqGu}9S6y}#^CwGnNmy{X zr5BwKjwgM$l%yf-CgqY77nb4qwjx_E2@1mHlPIV+Bsx`Rn?e1r!G5!|dHMMI7S_sy zcV&r~KcM( zgs9}!&0VNJ&HrxN9+0%o2Kn{8oLMIJ-$a8vUHa1JZy|aN#LFgLoW=SEt7xUL^{k%_ z(O2i1gj7mi3Br)yKuWLGV0q0~EhfVv+TUEDPY=WXQ$9<-boPfub2qHlxgkc-KRV|H zUoid!;z0=gj}P{u^TmSw|HI9B{g7W%0u?zrXnxDj%E&oMb%B`*>T$sP)B1Y1I=zSV zcvl2$vy~`+5dV?HdW)jI0{@yUDSeRE1?c9r(;`?88{|R%WAuD80{I#x#f4*xvUldc z1o{{mu7p zYbQ5?y}wCQ+dc&(I?B=0V~e#d;azolbY&w@ru+b8<-i)^08Py-G4OPiLGBM6V$N(2a$&8 z9x5)Z4_)=D+#sHVdH8d@KGA}IsWZ~I0`;$h{M3@UR?Oe4!9I{)Fj0l*i&d~6wheMe z7TQUu&rH7cycfbFu>aY&ckfvcUIq0tOnmIWvbsaOL8AucFMbL2;2k3%j2>HbTMX}i zDL?#NwUrZZ2dh4>xaALrM$XR4M!cvTPf>isGm*UiUav< zhx)M~lVHCWHJgv;+dU93_D@glKaZ}r8{#Qm_^~VBuMz6=_TOXGAo_?>?XNa|jpvVO z73`NZ{QeX@pVEC+XLF@#XOF&0g+hg$A5k6rR0UCx60abBN6ZLkr>KS$s3)>$Q4=~} zT;W%ef&9@*goCnc{pYA=JYHiUK0(G`I*90!z}*SPMgbFHsJHI@Tk{lw@M_Rso| zMp&E84IG=>Zbo>OR1x6amZnD7D_cUA1czh(0ec6pH??8NnnfLfj9TkerI=Mva-aKZ z)au;4v$r34f;^J-9@I0Tns?myt?ehkzX$n$rrH<2UH`b#MvXu`plrh>H+qz~5!KIS zaA>*=qJsaP#=xE4c`BasHxMg9zlc&O)b#UNFMheP{)E!RvRI70An&YqtS$Fri%kBu zp2tb_eDerCLXcEV3_WbUh@S5X%;%M{Sv?4^0e!HyZ3TjmAFk(wwy5y<-vjpF108=b zp$=XUf0mk@kM;f0I41eouU+xP6>-s(hnOW|eFu97952!lO@ zM%YWMCz(v6H^N$oSFCg+zK5_Xn;Sr=Pc1_j_Nybu`r7v)+$}F9J!&eCQ)a3Y z<|OJXsIMlLNaGS2!KcZYdxzbDW29p9nC9MPZ*iCSYN#c^f^<;21Gw8zr=z1ZJ`K5 z{UeTStMN62FGGIF$_==_S8H84z22zW3UvENBhURy1Jr9$8$mz5NJY~7X?Q|?@8skh z`2O>h?QrM!N1+}Pld)qR=n_A-y)?(JaKt<9fOP`h{(906UHy;#_tzS)jL0CkG*#_b zB($Hax{!M$V~a`z_1BVCXU@Y~fzA(%2K&W>gv1rjEbiN?fpzxMoIOfmQP>)hs=F0c;fPBAn zS^Zn6|0wJ?(Ko5V{IfAvBRcYWry0?MR1YQZz4#Q*2N0hZWtdlHA^I59pZwO~Q;jg> zBa6=J^_LO$hW*7KA6qen@Mg$&ot*CfEy9p5Alh`W9pBGx*e~RR&zk%YJy`WnczX8G zq4$ozssDNW&*PUYCx|cZCerpMm~rhCZND>4jN|dAg!r|4^B-aU+InPVpw*^}MCXfx z_YGyJXA!Pat`Z(SJRn2ZL(28;Km1lJ!d|HaIrr&n;Rp}Kt>maL=7}8`RtV!DpS?*7 zJ$@Yx^c(VeMLZb5ooxxM{~59GP9Qu6`O~*5XYhC!gZ-ceQYB^7Thum~UZ@iiF>7;y z`Hf*1Yjhiws96!Z2{wFvM;lL2iRRb+vbf1MV5h8Bu%|0n%bub4!Z-jrAAsbIof8}uf<}j zGQe7-hyH<|ZSv3Gdd|YVT5qTEDwyAUJskC>Y}-ELdN^;WvI_J|o{a*2J}!I%>Uz43-8NLl?l1t zOMQIX=zFKz;wT<@=6fM%y=T255fdzs&@^qD+I1h|O$jFH%D1KCxjyfE;6^Q{ieN^h zHi5j~t`MtlI7T;AZO8@teEX3;=i8#F*legja{8PRRS@(9drgGV6)#W^`MqUXNyYT_ z=$3UyLRxRn$eak?cOB#hDL?E*I7TZL78fb?2u~dulE{)=`Qm$EzYlg(CFbw1z#rIP z$}pn-Av?LkEk(8ngh#->r%X}c`82deOcu#^;Q73~P%Qji!TMa({{-0ELOOeIAUwL? z#L>s66(J1s3-9!oz3oRAX5=L>|F7dR2}Fnb_q-b)&E+Eu_DIh8zPnidj2#h^kp|cE zdx5^IH#zl#+f(h6kk8`J)+8mN4^)d<87>vg$`C(>+O+!NelAZMzORRLXDcPu-@+43mWC znVDqL?kf;zlo9r~^{Z)abQ}(U1gas)+HbN-5Z1ze&vwl|ERVgj7Yo5(f#vO}+#~AS zeph^1MRta;Xq&4(te}t=m~N}-M(2a|O8~>j#pAQ0rcA<|bHyudfq1-$2v>f3qk#~n zZFc3GL%dHwQ=i-LB6_qmPiP_!?98Fz?^~^)bg#JRqvpjd=1%DGv)XBg_i;eEahIrkm({yJPDe|tvR9NfJf?#P&{CK^MVYQWa@yZ9I+ztAII7M zy)$k10R5niJHLu_*dG>&Z4yTY!5WaahPH6F^KHWXTUahCSntZ0x+I8|lLr#FBKlRR zXWYnR4kA1V^<7&=8$uBF+DnLTls+6nxH~~F@CkP%2#?Acf&KUOdPJ|xb&m?0>&5du z)aT+PCjLhQqJzDVGc`WBFn&Pa$Q_ECD%-Fizrf#F&WK9N+dGQ-H$lBQ|_l6UVL%+I^Qp4^sb!Q(kPmn+PQlHmKL{f~kR?f7}i z69ihlQIGT|Do9%@nwe>0q4Re`JyO~FT73VpT9y362 zwNLT;aE}^MW^Ug9LqxACB%;W<`~rkC;d^`2L9KhE85cGT(@DocZ_C1{7#-z zAEEbXttc!LS_;~GQGcj+92m&$ScGt8QAR>uPR@Lf-3$q}5VD?Y@n7nv9qt)B_JtJ~ z9_nKdhrd{X^{uU7kH~ul<_9y}KeVe#4VhQCx$8W2$R@wna(;=DON5`*9i(YiDrMe7 zrT4GZ82ijjb0FlAuipdmBQ;IFeH83pbOoR#QD9$SYUujMCDbu0bx9P&=ZPiT>D@zm zf$q7E_NO;HUpezR9B zY?`gFKSXVU=Y#raaD5Mc=U@rZ%CIu6Zr|GrXIqy7R?cUMXd>dj$Grc5qx^qQ+Yaf* z3lPKK!fS3H(Ef$RpbtFXE0f)^SKAKQPf~n%UqO+s`Y2nnFAGxQb7~zA4}UzQ8ji;J z6p#04s3-i~-CZ!!oQ?KJhx6O;_}v8YrY(FA%x`Q}EzhDz>qGtPpk7HWqp1yHuT;0F z6PmKO5xxrkH+IL}vj`jHLn3yExd`Fi5Wl=VXCNKnZuy|-xufepM40w(F~jF}AUq^8 zaaa{zc>V|fcYsgF0g&X*HU|4&`_-RqNBAVhzKW+-j0Ge7 z_8E8S@0yCz5q{=cdEAOtmp^f14L8s#lO3jck#3uy-uM@edQ}TJA&|_wiKlBS80@ju z2Z5KIRElC3m5O@%od2nq%$O^ECQO3d{$*^}>Iy(Qjl0nv5O7Q#=1Mv|r zi|*5`xbs^AP*qk>Tqh>($x?k28TBdr0Qqyk|H+mR8{HY&RcRToRCD%B$+PBc`V3(e$gyZUns2>Ia|K>Tld`UZTzLRba$G+f9D%tq}k1nL=rDztNR{U zzn=q#5k;Np5pN|JY>)>ZLA~A0^Nh#D3BtcB%ju8*=<1IYo?L>6hV{c2Nwj^yn*1TG zkG&zD_8chqx2M0qiXbxFgW-JpfFbhi{!fX=#J6i`{a}%<*ZF+bDP!&+Z`ODokGC;- z23d6H8T|e$bKRC#QhBYQ|8ro6?ZnNnK1fMPNhXNZ#9pF>D2Mr0CQF2?{;l?(+yDR8 z(SJ(!f7O2vafXOj13|{`m2H@;1MY@+2+()KcSSRXh%ChY9k+*=~Zp`nO*$ye{}@EH@~sH?pRzB)&Dnx|=$6Ba2I{ zTbG(l=PuD2+E)@2%iD)dqT{`@1BE&Hj|X7<^w9En6!xD)DMfM3^Yx9)P z1uA81J^v{W{l4SF5A~%7GMsNcO;vRheNvh5M&ZPfUx_)zLm@EGY;wMNS zO&eanUyfVJ^NWapcvTqe&@v(3>gC|NHV1$|ExJ`vOCA>?NNv?Jm*1Yi>_t`N``rKl349sM6OLD-0*WpWAWz zW6Yl?BqmOf6r0aFXABIRbS5?_^;OJn9m*8 z?}qw%i$i$==iR`32>YFV{oB?Vgs+vueyFp?YJ>$v7QtD*!yf4PX(QzS>_7a2!-zft z`$2!32ljTWbsFS7HI`-KLA}h+kbVL7b?>moi8LpbqK3eJnQCGC+TV6Y0F5N*iF`@5 z9;|pvl5Y=CLBLru+3+*))d_dv4fuN;JnjpQG>!igEzIZec^47>KgjtAg68+Y`d22q z+c3AD9&HdW3-H5YD@0Z_fY@+V;RIYzz z`OAh}E-{vtltf!c@4-K}C_NO+bIjjXcw^R0@(khKI!b7zeq-wg4$R)mAgRdq67)Vk zKFZ?^S)raK%mxEfw{2c3lYfpPT?e1q(RQa?;-$-Mczi;>CwY3P065jzZfF+^E5m4c z4IFmUoHVKg`|zoOG&8e@v5yEQ#tUhGXQJ$7(6heV?o%so5M26~E23mIL0Es4!ld73 zIXpj|f61pw|5?)z@vuI68KU=CV(3TDUr*tmr%KPNZEE&jxIOAxih}HD;twP2ox4~_ z#m~~B%F#xY4@IJ^IH$4-zpMg#Ci#M>YJp5OYKi3&wNJ5r0rq9-ErZMde^ps4`N?aI zO4NTG;+wvmpO{3Lg!(AyNi$eKs@GX~I=%;OuY}PG@(%Xrwx^~#N8Jb`8J~L;=OMT_oa`e+aB02xSjvlv7Vsk_%#q;KvCNl zzMq|H$lV|;v2<;5_J;KW*c*G(>G)`8BVqp}>usC!c=%~E#P@%*y~y!>=^lGveMN=| z@bkoh{V?g?y>-r`!Tt&L!y|%yLJ{6tQY08dsu z@awvCSyB$Ae&C-$h_@EOd^ZE*$=*7$@8jYePvA%W{&k5UO@2-tgZMwd849uH`?LO& zw!NOwe8HJ`QwRoK7Tj(bGXdXcRJt;TdC@&TU5vWBbnhkbU(4#Ln2=vHOyDe z7NaT?X3w$>J?=g3#f(tG9sJ)Z$$vXv;2*>!=cf6!D6{Aq13sMwW9&yUXxB*_HtEZV-LJo5%fAt-OGRy=jgzji7X_7{ll zsurN3+e-?Nyx*8m%j=w(!RLp1CSXt7wGOPiozQ)s0rCan6@-G8?reeyoXLg%{|CG+ zI18K$zRp5Z_@7+)`+Bj&K&#J3H%j7VA^NstnQA!wr}p8^9kO zzU0$GsQ+fIf;@jdY#YL3Fv9d0=2$+b?=hf2i-o8Q3mghVV-r3I=7n zbQ$5zDvN(Z?TN;L-wgCq1JHVU%xZr;;)*|-#MQN z@>}*mHXos2Dm=w3{{{YV$QRmP_%ql~+{hx2Q-?d<-Y4D@!v0!BPU^bELxIH065_u5 zSC08p_D`A zNrImBNRgpI^q|y1-ox=Hn7$GAn_AX6iS;#)s7t(jz5mCke=x)Y*I3i;BRnD>lEi;# zokDm|F4U{79LM_4b@2Zz>oDT;-RaOuBXqsJsQ;-m9&*WbHpnMutEkZnhIg);hxGxy z-{y3+&cy4b>~8_<1B5J}BaG$in`_4IoHw7h{>mB)`%!QXAGW8l2(N^-_EIVa=EKCK z2>xTx?dWDaq7L}?e{EtJ|9P6-XnkRAd`fEHM|0Mz)xv;KEtl9< zx*j%kvv<~!T!t6SAdIdeS(cldV~GCW;`cw}hr7h*L@iOf7~~a%+b!y`o9Tif{c$xJ zy!!fYQ|YH`v3qutMPgRRQXR-I^VFSo>KMe21(2s6XVLWjU+szBlfWfHPOk-h$^58t zLN#|%$OQ$w4a;*0X^`p;ByXns(+%pU^9~x-ArGA5#7fskiV!eOG>zVKtseY;riP|4 z^M^fKj;<+Qc16M^EE9?A9v>Y!_Afnp$ZzKoMcYN}ex1x4uiao8_r+e`$SUmi68zrOfXkDoub11iE! z6v?dr>^$Ncj4v?8)jAcVCa}k-Sq3)5_bs#xQM4+hR)D|PYN+o+R+m(^1J(p7l#R@F(~qlKVRX&MY|> zcfGieOC0Ax0mhZL3l6Qh{km0@3Hnk-Qd;tA;V(1q_0LgShrV;EOlNb7@My@7G_AZqeuGEdi&{O|oQh=?Ev6YS4Gh%+X*ZK~@~UlsJV znciNe<9Rx%R933qf5ppRCxdc4edwQG6_PqJtK}TT-@*@%s5;xNy_a|;;_5cXev)9o zicvmfg;q|EQs7I;n=c-w&KXK_VYqFWbshNFvy_1!t=p;Uv*q~&YqTr=$Q!;(j>_$KzJj_ zujcfHd;<6p_9qX#e7O|sM@`uq6J8Pyq_=i=f(-!d#ZV7p-F{a+^K0^2(Ka=+1D!8c zRVzxbt!-Xo0~aPV?;`z#~fVoEYr|w(j zdG0DYe?tQDkq`RGmsIZLEBE}n8L)ovGU#;se%Co{1(oue669O|Q9R#Wf&FrS#B6fP z7pNdrU$}uc%{K0Y@#ScnVL#gVF6_?I*CP7hx3r5FUP%A{xf_4UwM`RNOL0N27peTqSiz14)RdmD+ z5fH-G7O4wD+)x2Ab=pX)LM$pENM5HFqmbnN&w0rU>P)|JzL|c@|LgT9C+BYO-g}mN z?jF3J4X=muA$eWe;^KTio@YMya6>yAz5wLA=ljiAG{zat|DG38>LmML!#(!&4QiyHF%=_rQFn%RSr<79{X@P3!lVx8&fc|yF zOsktiLmWmX@DIM70&+@{ao(e0^uN+TY(x;&Fr!5L`@6T7^uhEDf(zdP7fd+8-=^Lb z`v@L<-HsqQeIyBY39FZ!vIx0{@>qfPKhD=RXfA`jc_Hl#pQ){e8VG~^0FJhGy3r5? z<0YP5{u$k6%@Aqmii^CH#e?r{4~6>#CZ&q+!0CYO=Is?FLjv+l)+8ji7!Vv{JQ49m zK9m8(1x8W-#ZG&h!g8F?hc7$rbsY~gh+_yRz+imgv&zEqr55~;%O~J?I;?9=)!=*t ztT)*ZyRB1e)8#os;}FO9w&1WGEh>Tc_lR?;rA+&xUr(&i&aj6nKcuRBx=T5^#VtC8 zc(P}Y&fZq^*82yWaPs<3Gwlz5?t#4@xxT&ox~h#);R|6u89c!7NtY|Vg6icqqp~mz)AR(` zkMmQ1!nbUOD6eUaYrsALV;$V&=n$T)deA;t2>PJq$=QQ!{K6<}yQveDy845>ho+eP z@U5ti4d1%t()5_LN-J&u1nY19PGgmogXbl};eAz7wA7D{9|7mH>}?)Yvv`O9CCBQD z?Tq%^t{&TY739&@)JDdJ7yDlnYSskzvv_yZeMg&N#~1~4HLNT^XQk8B`AUae)kf$dz~WEV8x4YnGXG#j3gDRCe8Y8%k)st z55G09mcjf=E`6;B)}vEQx&xL~A}^y`80*Y$-!QOA*M5}oid5c@4<80fAIa4c^`Rbd zG;i#e6Y50Q{pd~9=yyOV4P9ho^KV_*e6_axl=y;Ji@kV=U5XQ|=@Y*phC<5appU#^ zLiW`%8H|;t@p@+PwMC~J*b5_aWI57(mBqWhm3&(gn`aT=bMqUH^T?{CdzD`>=f7q9 zyt}B|avU?5W~2~>g{G-PzBH~Ha^dYxn;D=lWHPI|Epi*$k(PHr{~-_XICr}(Cvio| zq06qo&oF$2@jI@-z0dTMVASTjf9e`ODx4{~>pOg04GHCRVf5k%S;ppp}= zJz;ynWR<@U+|LEE{|IY*RHi=!LVs_tneZ@LGsKCdDDt!7VEo93AkSRxIugGJtK;-S zZ!S^Hwbu5B;FlGBbow*N9sT&FbmLLGTWk8y!1`HarNLriYZMpmd+`>HvNm9|{@)1& zFBbcXW?dO~0qkM|eP;MRNw!{};RC`zdk;*=HVJ09OQaQ>kx&{f5n1`_~jZ6%KE(fS3flEA@?$|hu|5)e2JA6%uim~ zx!X3C*xUu?#+=@S9*O&1WhxEBZxcRcz##~+}NwQ4DFd$T6-Az6J2SHf%TgH!Sj=0 zOV0BzF3R@Bvt77`Q7|3OTh27s+qWy>{F2!$?RjKOf7vT|Y=1xy!|#Z%a6CG8sow*= zKEVAy!|kU`#V~ZRUyE;THem>ZfC-Qp8cfvr`29fBV4<9*3$gETr$MuLQQ%dyd$1h5mZvE6}9~)i>`$0vK#iwAu zFU-!u_{4v?Nl;r}JKnib zEM5om6LbB^XjmV`)+<~N{qZkxf9hb-ewkmN5T6kr!_p_@o|7Zf$JcRl=YInL+gOk^)G z{g(cC%iXb4?JKqR4@E^pu68o9wJi?d6CV(Ez;Uafy-9D;-`am%AmnqdLA{ptpgqb9 zVLoVzvGD^q|L)i%53PG|1?)%h$bNuP4gU|z|8q^n{Ji(U8nnZRRM>yy4EDi9-peum z|Hh}Ork%E!PgrnZNd}HXk#eK6Mx=p(#rRN|PXvY7k*t(F1sl}_?n7{MHZZ7~7(u)X z|6GN@kEFLZXwzWgbK)p;Du7$%s2BlggZIl_r*F&8J9$_&_u1hAy7!VhmpF0rrha~H z0qjq*FO}%W_cm}oN!BWPo0Xq*A>5~!2gh-AZs?-rydSeCvGxglJhYvkmKNE>hEIh1 z#Ihe$Ph#6Jt3UvC%7Zo_zPDYb@U&2_be^f`q-?< zBZ4YTOf9uiSX)qQ#JuLfsVO}@Q=nwFc zU-D1ktqNGbCWr_knsa+-_c*Y($iQu1zYgD>_4u@|)Znb>WR|o$lPRsi~>iv?lPu(0d#ZFX^AS2<#P+_PjBE!z5s{UES0Pdi!H#;W^80vHeW;`}K!H zmWV|0TUopV<^xQK1pRva0=VBNrTgJ|SSw)m_Y}hV=2`ySsfz2@Ypx$?yIlbH8Qtv) zxRZN*HtDu5vE?|7PwPdZ91irwv*91i=4S6GNcIEx0NwV-|+41baUX`m+E7P|V<#L;v<)v7e9m*sp*7zi9!P{20BiM{xXV z6hWLHF;m9L8P)%uYQ0(v_AqHRv(S*36TIsIrCA94Mv87ueFEcubcJ9)8yMP}?#emb zBL{pa^q<~OCY#_~7rJe+JnP;m<*dCd-5R@m>~=+@ZhcS#_pP5BD>g0R!~A_kgzZ;QlFsybUK+W{Q<6(X*Fsc7r zZE0Y?{EE9K+u#7c_Um|_%y7D_beGN^!2OP}pP+Q=yKK1e{1i)@((cJDeosiedA-m^ zZ_j6DTQ6$ZUXldmV@!lncpu{Xyi*c3{=(=Bf)Bd$@+gf07O-1EzvT0ePn>MuTLCw8 zjiC&2{Wdvr=~B?3FFNNJ$LISUAO3Oon-&IFU_CEsIn4iZi4>;C*QI*nc3|i(qLx!Q zpCGDzyq6jMYTLiqp1)%MQVUq5!S1YM#EDdpH#k0)6QSDJv}xvt1kU%{ba;EiO*su< zF*r5Ac-CB|-CvGp5Hc2hZ$WTcm!W*fGbGb4hr<0PfEC7jm@ z=+8;3YEnH^YKR^F@fg_e3k$^m60v_x{A&xm+yW;+{+AP6*qy_iANhco6FTPd8&~jr zqPHj~hsYz&bIu#x2m$#cVgEME|B=zD)`}?;Z%U`rxhT)?!G5%59(PmO{=a);`t-JP zzHU8VL65Urxngf&VIHK{z?)SO*7LbolBG<3)H7*TcAkZJc#|8oo@(;#GQ0=pi;1VU zIkIlK_KO){U&p;YXL6111NE>zU!I@O(S|~Q5BrtN%S*EW*T8Hc(gDw}>{K-%=Ud2=7KcoDqUWLyC^`RE+p|5DR_PQMl!p&NT!!(-=7(@0(KmG5M+L-F8!v*8EhRzUJW?Foe`H2PY%npkmW25> z*t?|3xZRn4&SLoR!Snt@qQ7^{Thm<*x8W_LuTz>Zc)uYaDCpfKsvGn(U&^Q$?D3i9 zz5#fjjLS3P*tXSNf;h>Z=h4W;v75(!BN-8=mFH{f@$>Hz#l?9!tb8w6>CcKXmEF3yyW~wj|Q?!2%dYn|5u4^_8U_e%D92FyfB;&0hVz-Tx`v@M}5# zFSG#HaGJ5co=#waPD5K%>jvm1&A4ZT^1Te$t28giiZ0t_y~~hZ9Z?AP%lr6j>g6ln zZ~x;bc9+0jUl-vFc)N+O>J)Ou*0zw^n(!gTeJE8EPMjvU&a}|=>#wd zUbjPs_hq2I;HDD-#skhvIKhucZCf_*tYQ8O`ghY_*bma$a43Dpx&uN-*q z?do(qU|=Ysfm?L`^oD-%aJX&fBkBbG&=&NK-?D%^9N6I% zWRYx9B*gq+Jp~+x7|DG5*FV3uz<+lOSU~S&F_QZZoIk>KQoY>k%e9;RmBPqdrW=cE zH&IRF>=~uplz+(98|~ZWahQWOaohNTGx9s>sgM0%^kdppq5yB0JO}-4julD1OT0#) zatnv?j1TUw42y4OszP8$5af%m;dc0$@U)(<(fJn317YTn-0%ang6~Keh*6%>G}; zo+}Gx7URofcEjg^|5_+-anG|=Id51H3t;?F4Hba<{;54}o@(6RaG@sy<{LGzqp_Eo zumr|1`Q^h=w$IY=YVeImtH6O-K4|@9#y40@- zbjlEhpoE2i5pL8cY~BBIkR-*g3{BksQt;2j|C#)`;E(y36gfDV6w@SG>_Z8KGZw(b{OUvYNflVUNXcM*{B;^|Dfe6f!WTP5?<=tg7cZIV4bb87JgEx9zj@z^@xSrD)mp@J zd~-HHKAv2Y6q73soo+>|a*Gg-73UUVI;l$f7@)K7-Y{Q;&7^02r}GvELomSg-`AFd z!2CwndwL^WNdA^BkIdGu(>YG$+k*a{-mY&!J`QuFkLLk&erw?k#GT)|;`tVaTe*6U zW+D1py?k z#6OnLK=?J?I&Z5(p~HT0L=gjvB8$*}qgpgG2bhoK8AW-ao98tPl z#8rn32W7G{5#!OnS2FcgKUU7*yW6_oaIw7P=GE!!ZC$*@&1neCZLMwH`Cdm|#4d=7t+PHw$g|EWL>OkB#qV^sbvN-Ltq>C7q$~Q%tn)u{ za|e1`TW2C3XkGjXLQxSn3+06nhl3o9=ckA_wW3^v6>}Il^vyCMK#l}?Cw)ou_Z6Ek zau_D&K)uHEQ;P!QP|mm|esM1F<^7;<(4Qj?Ye9cP>=UQW-!~r9lVWQKcM%YF3Pz4W zK21Omm~h23=m%$$%u*%zJDb>vTN!Ar!?P;n3~pNrPyp{{R%qjME138e+#W52*T|W8 z+WeMVa2R~Kg$a{C;9?D*4j% z#k+~*_(Kegk3Xb9JU(6>y}P#*ne%#8G~(YO5kW@Xt20(VXSqPH~rKudlmfiTWC#hSsbZA}>5 z+LogL|3Fi_EX3nYGPwu?hvYNy0VlE#^p>XPhKDIi%MZl;c-oMOS7Duk@Vhft^AX0~ z&CfJDk$s@GQ}L*`3gUfvW^!*SRT^BBTO_Sfl#(qs4x687KIShGJ4&k*rE&hQkWN}< zBIMds)|eHjss0K@>Gc|0!ep}o{8PBR@at7(Wl8dLZ}e9EP}*40Qz5PDJr>wQow^SB z<&d7?y~n63ZbWXx4^_RTIn)3}fq$4R$sO~D`T7iL)%7aZk)Df@lm9%RAmhcF~ zU0gj~9|7KaJE;}@OTyn|{6~7aGVvk0E5@_brOTa=8;=VDr(G5JpR)k-d9{SE2|r*89+$Y4Jdj`6*c=K_ir(~rl@L- z+ZT^8Ze?pA#((1vfBh}Og){EVFuSCv+8efFzoM%5A~)59tEd`r$pn62_@x->AIvWG zmJTRt9z(p+n!3kKzD2na6Ci%+C*xf|wLbxLa0v5lK4yMGoW56#{E&MzG8gc&{1sVy z&Cm88tB}|A^p={J*}3JS|B1-rlH6%!y`^wbGUP{CDUc#YH9NW!Fk~_Pmo1 z@K}{*dp=d#Tl!6w=Opv8N2PUN>^#;B^go=`QVaEic5n+bKVeq3+~{?8voiA&ZZ46Q zh`(-`pN{wfi=tff6I073EuP+FcEY@Dr{LNQ^D?tCmpjgjG2Gxy&k~HkYK)~j!cXli z-?Kl_TY9gjd$Bpd?y52GVYxn?P_h8=SrubGSJWtuP1-r2L0H;eI>+pU#fhw<+!DbF zvlH^V0SfWr+=%@aC(KU(d&MFoN4j`U0sl^Uk`i%X%aI5@y)9iae!>380!*(2x*=|z z8?l9f(9jHwDEc!4!%M<-;YAiFdaE?zd|RXg5uWL)sOdeHS))=Q%%|!YSX|RnhkQ_! zm&!$d>k7$0Z)tB$ZmNkL;>Q#UAZ>4H)`36!V!Q&|%vAKxoJ0*U`G$=I{sR2$0OnU} z9iHo}g-1WaaO+Pu{4@gefo;!9QE%z$-Gr@JhI)c9t=Wf=lgT4dU%XSQAsK(`J*`Z< ztjTh1{HnMSWspwXBS-z?vp)p%72w<|B?CFd;S5Z*?Z9x-w}{KYoCrp55u7Yp^zPNi z+|#WyqYp&y9=kt$|LWb*2VBIF9&t9N@s0DSkrsK}AvziJ(kd4^-c;D;rw-Cn1139$NEh}MV0ucF>4!^;MV?HZf##%6mbNeCviuY2t)r^(+EmeCt{*q>~v)tCb9tf2W15@^}VMQpcZT;?rLC{YH}%=Ra0|_(9l)Ai;E4O#9C{o&AvlOW@4>2bUmj(?67f*&ckG{`eq3 z5esYR&kt6@6#8xYgFWCMH$XS1A-t`H5N|}fHvUu$Z_&o%`1CXR1a+MvpV%U-1~oJLcNVuE;r8On~vkegGtZy!bVgd|tK^A5tKcP39psC>;+MUAGm2>R7eyGBuqV|FEFui0JQ9ikjH)NnL4 zDT>sres`v_ce`4xR$=|O^S>NxUu$2@)L#$H%AbC^>QfAtOxePJ(y=&ZW$$V(qz?`B zr|*uYhKKgYt2j417DXvVv%;%t!vuCe1`}1a-60uO>*&806gp2QhS@!Va%H}jZZwKg zq%|8E4H-pcCr;<_1ok^dQC{KUA)~1dw?&OR8b!(yKl2eIOf&s*m4!K0RyR8oX;nwb zq$iNS*&H(PiDGfo9Ez;|roP0_Bv0gr`I=0QTjo_=5~Au45`CQB5c2v=8TmwE8fyQb z&<5d`6~)9Tsxf4#gp*<#HHz{fho#6mGX02zR{8aUh7ba_E1FeT6j*2Qcvw&CC*P?V zSTpZC`)b9B72mFyhWOkqV{2s{C4Q!@L4glLtSHhag*%EWayBjI7yxuwQ)fbq2H3so zY2NPYh7f-^=D54oG&Dy>f`5bGj{clRY_Eo-mVuUz%g)xCgsy7HZ%C)CZ+CU3-}%{1 zkpuLO#9bK~8OTq;;Qm@rYauLqoF?ZaRTb4NHYLooeJ#; z=TyT-QJ>c0j*(H+jRJybrbkg!89~fV9z}IHfA!T}P9J=)rH(`NLA#waO>w#k^(ZMR zE~d^Z3QqSb6y~*Ng*6JrBlB{_i3M+dA_l%Ms8Kw6gm8O>+0Ieaj>KSK=uuD)nTjB0 zQ7Z%^%uR?VPexH|MOH~aDWDv_WX>qcih}JgPF7051Idx2sLu0HW=#Lo}Hb7j061rI}x%%fpT>Ex*Q z-#0fOMKz~cy^ZB4O(S5>*^`duw5c7imaJ$_Q^yl|PdZGa&O{O*CyQbzSAtj+19VRz zNi3&T+`^=XkyezIu}zMmtkKWFfWyK1&E8ot8|D1dtLyihSDTe@UQkd1^e;QrvEt9@ z&p$bYKMLw2n=6aMd}K*hG00CO8J5wUh%nbm+upyO(NCLI+lj;6fj%ejt%LzuaY8Kq z-t!jiRqbt8T#V&^-|3u_*^cO_jq%Cf+&H)+28Q`oO#OH5g8HXBoO3#NZg*{ipNei8 z{rSO%A@f?(0+5f*M+`H>?~w7_oz6 zID7<_`|CI|5TR$_otdL3vuYM;nY?+Jc-)ar4M;O@pz6|q$sRN)x@Ae^ZRX>*F4TAV>Kh(EdEDiuzR+KO9 z>!(Llmt=}d7=Cai7b4#}okPCua6V=D?oT&6!UU3@!@ooR&&b%7(GZfLv;z76{9vKO z7}G2<^1pX`>5&pYpriNFrOfwZe}4mEePByHe%Hfejnhq#>;1+<4v(TT98|$~>xKb+ zR;`Nk!+5c8$<{LIngg$lqNeU4K);%mi~Zn07YFMra9MN;;TxAuEt-n_piork=pT;l zFuP(Z@PBifp@G2&Z1=d)GEe05X@mi^yQ0i!sJZbdDmwIDOmb(m|L$tn1>vhuPnwwz z?L@u+Ic4Y;2ZDn65a*nnfUbVS25xCSKiJ?GTKjvrva&2O8yX-%*%0EC;^efXdPj_p zD4^xz0#koU^1Pf;RC%JYx$y`_zTjjeQyaVqtZ%p(hp?}u3KW@{nON^f;Lv}_ zkg1@z%MwQz8{264FHZEN<64?wMBMNvpjVDxzFaw~v)ixrhHu|zI|?1_xWRLj9g{+p z_xHlrFFV`4uGv07SCnOJ*;0z%hw7(5y+f4iZ*4<9r>l>+sX+dr{@K{SqW-&4Q16^- z`th8<0xWI+3Hq^Ze!~nohFI@-*Ou5mMR5phP}_#>PY|zxo&kM#&bb-+Pb{u0VEm_9 zS~C8x4K>DcyOKWzKI!O9TNAu07W#Rtzo9wQ&!r&J(!SijcK`nUE0})J#pQ;s{>c9Y zJ3&9(?1+l7u_;W#_J-y*r~wU&`&%*p*IqO7c+ycGMbVGf-|Sc%I_FI8>Cseq%*3JQ zm7xC)62LeZANTX=(mQuBEo z!}`ziZg!L>eiV7S7#rz zv&*W){=c_(pbG2z&6+ia2#t-63H%;>_I*bGlY1FGD~kIj4(kimb!EyIFggzP6G43T z@hm9+xpO<~&2}{SeH>f_{bggwXl3$Au;&spw(iOh0iA(A&Mm3k5fdAfyw5DX!OzZq z67X$fh;+mVXwOVPQ2$d$QR`|6CueW0PiB5=Dbz2Gusx@RYX`r}~zRW7IR57r;-KrjUDYnuzAAAM1*I8g!X zg5D!#9h0I0=}VWDU|-7Qk3*j*w)rK~#55(?Wqrv>8^1*RC@2~Dw8Srk+^`m*HJN;W zG{C!L@--}vgiLr3VLzRC7461kdGd-Upts4W%GUHhD5@a@hLzmMElX| zH_{Y#6fc%H&YULlt0iXx3=3ljD z^us3$EJ3~#(}AIDpd3ZYMMT0R}*Q&~9!0 zo>@6{!ady<^k{h^R2%vk;3LR~#ex6RY-Z+wJ-9gLD>+RhC{3f_Rs$jz=yo%xpQwTH zSqtFUueJ4+5>YWVG>n@_#Po-W*5jqGE>X}Z;j8-)bb-!j{ns6o~sXAj+fzc`99D8gM9I#T>P9r)awQLc{!do z+`c^8pMU`n+IKZIv%%hn`5)AKEQEQG8=Y1`-DQ|?#fGyhkN z_jma=I@G=#_J@08|7Pd%3H0}DzyC7CabV3Otlz)#J*5AurvDj!f0!fohhPupu2}J@mcB3W{|os&7yhz8i?ii? z8UCH{e+M7^$8um^4&lK6XyOg=<4eFLR-IorCcw|&CB>; zd4GmaUYUP>CjATiYhJ$Cp9A%;C@3%3AHHA$+B?T#x>qL$y82s!K7e_VyD1-I{a+>D ze@DEZ;s00Qn-}==<@hYl@Egz{^dIW~iUOCAY4(jM1b_1}g6Z9RS=K6^oaK>t^x{>S>CcKHqHf2yGLD%b&_ z?>2=olHKzhU%bHI{{jEJ5bx#mOuA@)`)Wr21AqT! z!qn4xeUJVBbNV00g+*h>7Cp!RFMs#ng+Eu$SK_3RVDxdr-@yyGkLOBL0C1~Gf+2+56e4d$^HD$2h8|?qCc0H>3Z{UBH zub$(J7x;XD^%PAkpIVZ00LC1&N>u#Ob3oV>@pJVz`x z)#|^$`+fF1Y&l-WS$`J(TsZ3w5cz+QA70e&uj>DE@fI`rUoV&xns+pBGmiI^qE=@7 zi?^4cJs_~Ov_xnruzUmC$77?%Ic@!)m&=#)XK@y4zw`6;V8dBBn6B8H@cyOw4f{Xw zQMCU)I4Gg#5r3+Mao_3LspSRs)kG0VGUGtU6lOda*d{LiPn73{{^nKF|IPjbr|0$` z=zg>N4?YNsk6jlQ79F zTpO&PjvmhcAibWynD+SF^o+hSAZGA%`RTrAplwf#?_p8xam6FoNC-EWIyrGC5*s*m z0V-*EA<}2lJ+3Ivfg5As=_? zCpVp_FcA5b$`8@f;n|R0>2zVY^31ImMXoCQkdfnC662ZDa#~JHDSCKLhI?1HV$WGs zVfiyDoz%0#Rj3I&zcg{^OoNTYM54(3zB3Fb^ydfeIY545lBo~2iIK2fK!}NpZ2K_$ zCMNa#!PK{AQ2t&{|8o47aU3`qBs>LT7-ZqF?SJ}jOi#2kD<?#Nwf=}Wz)#Xbs~3hI6R0+|een!#i@^9jd%}c&J->b#{U%+BH^gQG{{(G1 zbAFoP?HF1uRl9A3^7(T$gop8Tho%xa@DK1~Uk0|PF<}byH*_>|(pO*0&la!28ot&c ze;7_P&0}$-ua)QC2o`7f!IF$*abriISGZUo{=k{z2=wk|!y!MTpyEux`zns<6Y=UTBtsy zZ_B&s$aEt|8{^V#nhkOh9YBLTj~99^OQds`+@t?OpHyc9PEMIpzK@b9fE;vop^NZ= zs;e8$>my3{>(X*q-z1(`~vNBC=le`Y|a|L>Sc#a8&Kam?khTXT>dT8;?w?oZT7-{2&a8^^Vfs?E&)deqW#v_f+WH&+(oco||Lw2M&h9lE@-G zeUTqhZBqvIGsL&cx65MVgM2$zbPv)S>G>bw_nnO#OU?|+H}X#r9Kd@nKZlA^v0h)i zOnl>OAYmU<8K)+{wBG~VT z_pxAmcX(YqT8sC~F|Hf%lgIBRNpu%JyKU_7+aoS3^1aRc#jJ^{2G;7=Uz_I(zMegu>Gu#RX*S{VnwDtt4w--$+lWgx~m-8UpEuI0{Nnbqa?B3U2l4>@b)j@O*aOdgg!jzk+8mlt9}S21o#hm~MlE+l zdm&|0!m>HUSmI5>fIDQ#J+K$F_XWH`7;~|`K;OG^!4$QaWl(=L$`JGoX+>CCyfJS2 z{#K|T;x_wlZ?>4-v;m7`xgpwTYF3?d|VD3@Q35l z?Q_n`k4ulEJ?FOZzQgTS;1?B2yGDxow@uX((gblU&*U!2F1+ustA~AWPDArI76?-N zgY@*q{Nwledoh{ApOvBMe6jV#15(3_@ z(aL|0XB=Hp6L;rhIvVV0o4!8%`x;F<7W$`3+SvQEK;JI#Z>6I`LEhz9-$sxh5AoD5 z;ixyLZ0SIU*8{<^Cnw}|8zq7}h^w;;jU1DMg1pLOu53_AX_~3O@5OF)rJ7bBkjF=C zyePPupS<)Lw0#NP0Qrp_9@x>!>O%6|Henlbo%4F zwh8_h$8fSsx6_B@2jn3CT~U_=>z2s-#hPm>)KKMxmjq-|b|01<9rjP8jAHWx{We~> zJt46{&V?sl5k25;PFeb(Ru0CaUJ_(&iGjeF}0>5=Z&r?BjHyZA-p$EwZ?0R{^LaoXnW3Tlu17yXPTKy-Rmd5eme+**4C6(b-WocNm$^&65AL(2^XW$97YDj}CUbv1 z=CKmS7dzUXWI^m2v>#A^4fw^t{n;7{f|DZvFRdwGPuEna9NRq0aXb_d+Zl#w@r}vo zL*s?n5Bf;>mIO-RKRnx2*tn=K2<=S{@%nUz-UD?M(Blmc&M{+@M{if(936dM$MGQy z4+rf77(aqJ_|Mb-B*Ba+(7tg>fs;Jqnv(kF7!ArB8MJz4Nr_+mnLD>Zf8Td#9c|xu z8no)c5}IcE15wMQZm{LB5r=2nIMz-bEy4PsL;HPWaQsPa>!Lo$a35Cc-_17o@SJr1 zQk6KLKA;sDl%FNmr8e;sp*_GEI=+@e@b`*6G!GG_i=*cAKWysK+6R=T7DfjSn@c~8 zgN^4J>@ten3k0pNP5q44$klQ+yie{P$}g*1zf^&@A2-q^D?)a6kQ2x8s-=Q)``ZD(9`Q98E zzD5Y2WAwqWhlw=30j?VZH~G*#!P47xKiq-ecjzWXBiIk*KKpVELzk6)QPB5gK#-hM zX&~Px?J084clfJ{mT*s6oHSGp8yK?WzH?5Fl~p1qnW#0a*w+;U@(Ay_PBYAzoxAbC ztgRq___VEcn3=!tc`GXX&)O*qkVTS)%*dgU{RmQB=aOpd^z^7p?oEE z5$==M)T-f)^@;wM1e#>gkF-LY1-8FTR_KoWhZLFUKaQtZuSsTzDZ%<-d%A6)G?glq zS`GY=#(&SA8Lu!Y7DD{v$9wKE2>iJkW6d*fNeP$u)t2aV*{y zBji;Lna3KOhqs2N33{bZ?$MPfKT2wX{{@S>cQq4sYsWXBUyli>w`Yl@Y8)V!GW4*K z1odq+c+=vLFMSZ`5B6vLd@Z#N82X2kp8EN#=jrcZ#Z6opdd~su3!VKi&XA=y%<&k0 zdZ_Pg7W6-G9_ag)fVDX=D5u=PehDNaR7%kHwVDH(CTPF!8y-|M^^w!%D?`JCn>RZ} zBaRZV5Zaq7muZ_9{JLT?gzLsh<}>XJ_|+&^;Xdyr8{j9#k**Ad_>;tb@Ee?p!t{!v z51_8-ZbSbG`qOON2nK~rhUeUKsNP%L$lz+Kr+Y`3`=7cMK}>Go8M!e`IBA?sD-$lq z{o->H-@*`t=AbxlEg zU9e~yH@qU?mh=kN5$3}jWo_#&YK~}<J^WA4E#AkFUGoFCq zW})Y`PrjShpMT9Z)<{^`Iy8Ov&pw3!oWhL5Yit=)2Izb^(N&638je_}-kK8wC=x0)u9OM`5v1JkE zvv5AA4H^OMrNka_Bg+t%y$bjrJ*l`u%jqN7zutEk$FrNt72THKPS(`Xnhw8o{yZ{p z(rI|B4!RVur(A{g52onkr4;6iY=m=jL~%5w9Z;hErXG z@+<+z))bh~Xm6E7L>beE=^)xPfI$6!F)EN`Cv?#s^zrr9j}H*{%<(MTKR|p<PW;)~aMC7~0cSxNg;* zAXPKAuN>?bu#ZW4mWCd{=~Sq{i{pcB?Wgd*{x-m2d?R#@Pl|+}j4O^B$4jPZdj^37 zMeZy3t4G}XRvQZMf%%UcoBF6>HQ-{}pQbb1FO12otgacY^6$U?P}P9-t*-WB#&<{5 zzv&MTEfBo_V3{_#8vCDP{OT$9*0cH9#&US(#rD0lLK;9P(`BfS$)JEhv|f?FR)T#e z+~l*Y_EEwkKe3{u5bT9Dewt?>X-Hza(0v?lUV?|QS-5!KN0?jeq8{Gta_&uYVw9}LHCqKcPd z+oKB?=3BIVxac@26AJ#dT?T$g**<0FX|*=S%Fy;PRI=t>ZEUpH=kxrNqS{%!!zTWLM=N{VG^ihJw#vST*b<}<(zjbuJM)edG6V(U3jDNd>fW2` zNoS;G5Gjq{;g=WeH-YyxPa_80$dNPlT*}j%8t6MEP13Vqukx0jIr~(i35;v=)lgwV z4sX6Ve+yF@DeZ^)1V&35%C~a=hLW{o?>npvH8xEl{D}a3dWyjDnh(B5&DHh*I6i>& z&oftOiveQyy6K>=h1sBRj(j(_e%Lc#_2fffKedcL$>dK<`maWf7q)j~>;)Y9;Oo%e zfW6l@w?#St{0*KfVZ0!?l?AhTWO!|I%9khi6{cwC8*Ei2G z@ce-Tps^^NPlfZKXM;Y@iF+o8@fg@Qbo`;w*w;5e{9=f|G-yLVro|jl-f|{3_c5p% z`6J)r8`Z>l3=V%HHiCT0a`v$}>UY)25Fv{fL;o8{UexnrD>B*ZOFfjeo(IYObVlUP=c`D<|6bVW#+o*AkU$E8GR;C+Z#}tt)PGDpy;cO znvKfJ@7fM51pUyOBU{VH9}4uaHTzP;;Bs0T=6=D#q-p0Y#PR+1l|bJXS>Iz?D(!D< zy|ZZu%)kBgZIB3cGnROPa2&5C@?!TvS_I;Iq$vZ&XYz!^DVQ2{IP~BALro1bCOZ6C z8EVAKy4d}M#U}tgYUTy$={+oV9B(u{5W$9<0RHxa2jwh|{Xyn{Oh3QX;T6iapK-9| z$g?v{6lVN)FJu`TAML$A)XggYuJ<IR)FlwT$rZGOjw%0(RHTkxpo z-V=VyhHlkt1^(|XnGpn0rRvJwGPjL@dn`+$>06p67~|r2 zJ7*>tSh+vBUw#YLOJeUkc<+__8o+8rr9qh?w7)ay9Uvn1!Fb+-cmVN*BrLGrVx(&y zBhRbLKSO!K=?6yt=b!3E(PK#36_w%sXRZ_4s~WnAhW^4vcrn>G3d6xmj_tvb+{}`; zLhsz#i}d4jpK20jw4P>S;QUZr+|=zfE!P|wpunCA<%?94cf$NWDik^s?EU?reGfpl zXzFgs>${?CgzfdDD5+C==6Z?b*=4Uwg0=zgr<$|WnO2oVUF7bZT|!DCqn&)-E7eYf_@1H{k~J)7e?zw$T+@xRz9}%c&#QE z=Ol3biQJIL!Nx)vn4FWwmsnLRb=fCpr3?ApPvw2;Yj@g8=qpr_`!PYw(+Asc8;ghf z8?+gBdfj*Mga^zCfrqGGbByWFNpi|u5Bl|ia?s)1pueup*_(&!=Ri*wUm7{4<(Yh- z%OB*w!|TAeM+$4@R4djw0`$X2iqtP~ZUyQ~H^O>LYjxqbW$KMpWitOJ)R%JA*$Qp? z0nne91X;!FS^`m{0JyfG=h5}p?6uA#GwKYNZM7M&sH7XC*M>c+!1hv!J z_j7AQK9i$*0OthnynOG85o#u%0jl zCU00b5ys;_9zQ;%PD-kAj_wNBuWEI354~^yl|pqt4dX-p3F6ujHhv-0Pwq|X^-(&1 zf@AQ~F&=Dq5!8o_dThtwQd)}b(YsCZ6mj*zf$Jzg^TOhAJrkV<%R92x?k*((j5^#s z0qmux_77^+v{+r1n`BT7@z2Y^o|>1$$32HQKA0~eNslHXANqhbLqH$Q1cUIF#!^Z2 zC#cYVo^6%W2h`C>qz7uTKcF_RcEyjO!}KO+Mg=hl{DIkh3$ATl8;e8#;P^CiTbQnV zpg+QdA3CM@YN>(aQzOSdbrV>YjFWW56!0}0lj9JRsKzQ`{@cOlww0AO7{9lIKQQ36 zl*J>{3;5Z+&-CrL#odK(YAXLh7cPhSJHe9D0WajjmY`}W~)&~Fsh@2*I+lj=PP`K#0!?jbPW+0&kEF^7;s z4^jyIy;^<8$`Xh>&S2S+4nN#a!>$*>oH48qz+C76@tH*nHvd z0)L6Uw*E}~75t(TCw^kXQ9eFf_TVJW6`%`){GAl>@oqel~#WC)TIL-p%{L;N#%lFw)8=ktc=)C+u;N@i-mhW$Yy zzfbl=MOSF~D+Ba*@o3S_JDb!JR53=5<9L$`D&J}7f5s$n6}DTLYFb`n)5Go(UM1NA z{UJD56GMFw81wldL?1zkjfH9a;;-9AQzE$+ouFBU`uvB#u5ElsC)}C1@AbkApm%6c zQgSmb(P-*4bv7XXrAI!AIUEl?u(WZR5v0F1sd~F1SpO5z{&T-CI3q6A&;Q{1AzZ^5 zxkN^ML3k3=E(wf;8RS?i91vmo3t>D(f4GU!KUk)fzz_D)2O|89ZUKzH?w&Xq4?mgl zjSKXr8GY)QLTGEG0n)oCjaFh@bPK_L+NZA7x8HHlmwx@LwEZE3Pk{C+X_z#Li41>i zVE$})_7RX5t=j_pv25AC!Ej-{z}xGB%V2m0zkEbw09{8XqTg{?5BP>oOJNrCDOxho zzkuHm*}n;?)k~AW5A}kWz__^6O)$O!dtw2|m)c4e$L5FYO_AO}2%TH#pTVE?AWUEX z4EHepJ2&N**>L2?O^szHFLO?R z$W=)}dgQ(3q5S*Ka8FW-U_*exyM*`+q<3ybX(y1LaXA0)>oYk2%j_pQBUU^&9(0E7 zOWg^YPk?Bj0KEzXvu4HV=?CK*-Zw$MdU?nB(ZG3=hD%N-Tfhs6M+&_R$Eqv8d|E+! z(s{rES3qAR)0CdRxZZYTbhQoE4;>%o7lXv9`C5$WUj(i163luF`gOs2o_zgN4I7T_ zuj~t&2g0J6JYcLw`}t|YfFp$0!av|QBVOIJ?Wt`1ZRv#qyIIO4RzFOH^_{j8N;UTF z=y1N`IQ4#@7DM}E952uIR4j{kdd=tk`7Erz>D&azP`=65%4$6h>xCnJAAW?zjU6vq z*j}r9n-L!H#QN5fM`p6&9bSck^^a=WDmhXQDa<0^c&0DjyJf${#GD!{`DhpD4@!Hg z^PVN2?KgPrp}y>u#(!KbsqAl}VRVG!-!y)UPd`D=ymR0U>)Ku>zEZqVEvI2d)T;vd zhg^8)t7b#mP;M{_)`tuDLkTmkj{F4f2dQ{&{|Bz;4({iGySQOK5chLDpgU;~4e=M4 ze-f0OuavOmUkK$5NDS2LgRP+t1as%=j4g;X!9PQAs>mMc!8jNnI4)fhwTZ>ALVrAS z=3ISyzX$ubny8QT?dt~k_U*lTdwEs*1jnG{vpC!bhT zX9M)U-tggWhNv)^1gP}WYKeS_UnD23h_23uQf1O_3-{XMm``rG| z=pX4XVEhc@$@;!(ZE>)?HjZ~bYuDEo$A5{^Bt1R>+JA24k%Yncu0r8TQ3Q(*S(48G zLG>h##g9Y#li8c~?VpuCjt8thj}1rqd_yNN_FWsjAI3}df(wlU`tNo4)eC+Q4bG>B zhfZ*eTirZ`O@AELAL;#%ujA@%BX}Y|%r;q<%Z7J&4RIW8a8$n^2=(_IVWfV&264OE z!d^B$+GD+NgB6P#gZ+Kyu;l+S_wI2`T-&4gB)kHM1eH_lIrbzdNKkpSrBrU z`fD%XN`C{#*OP(o&8m(l-5dQXWv64IK85_<3I_;i=majSHsL(j=aQ7=;mm>$lvmNR zYWSsHbHRLG6D;^*VAS`^N?y$O(lAT_F!h%Cy^$Lhct}Vcp`JnfSLy$+ojWsu{Vr<# z0=O7|Wr<_j&Eqvfer`U$__)YoA8Ilx1(*9`vYGF}`Eop(6=8$1?M4dNFKJRnA6*Yw zcU#b>zb1;zFx&)xP2i+ET?NvtrLw703m|_W?=#*#`bE{aa-N|X*H3^y3-mI91emD% z;?;tjebffJKlq39;cvWuX(1LHDUd&y{rKZpi@v%aS?NE}-d;;r>nT0bBTM>cGQ#M8 zqkL98%}J!|;h)KTo7rVGf2+XX3;iDEb3DP{xR){`l&+7b#{4!bgx@fGniIl9RKMPK z#cFq!?PSte5_t{f(jT(&4qT{xmH&QNlAs++!`jFs! z_?Z!XGX(wR2}JRi>nJg0McE&)x*tjUU#B|yEc65UE~qJ}VPJawXN~t?Vas|z+W)Il zS@^?3?~x9`9?U{}Fl1+*BEB!ai}?clebpa{7Q)3k_`Ki@$B))$L)2Ny1M($f2d>{T zf36nv(PaM7UF}~`pBug}rFPT!{Q0HlKE#)zm>eCm9${y42!ESl#tf61wpWIW89M}zJibZ8 zA1SbcUx)Oupbclf=p72lX_w`2DKrM&-3LURn^y}J>D+MAC zk9kacv^QH$?u}vKZdeZ_j%C(+V*Y17f8Mn68%#aY=eQ=u%%5=ceq^5D_Mdmro?OgQRE{-_HL-XWM5zkZOZ$9Uz2@qmRt zkbjSF+h&Ou(O#{H{Iis4Z~I=ge|Eh5Bm?gR{p9h*gLbVI^$$vm>l0x8*M`h&SE89^ zvZoxY!TGzHi^3eX7>oQjh{eJ`b2lH-`Z?x}qU;vo*NME)eS;4?)AE4f1|7m}3 z)OvKRS9L=?FjD^7Kk5%yPHfR1xSn+0sP&}Cf6AHyrH~R*eiSi;`Krc%Qj0#ue6V|g zo#p%2B!>pieRX{GKC=rMhxx>o&a@oFkJi)${zho9-HdM|en;5@j z9cB6$qGw`vHLedC*5@$!N4xhf_^TX^iO>~YkRSeN`63D+*5)y2K>xo>!eo%(b z;$X=ltY5x6D-K{Ib?yru9Hfi!msKCsTYZkrd6v~O9y!fm6FeSvM-cS-XxKktSIUj_ zd);q5tv{pxw$>OhX!oc6#fepdyFrmjYau^*=s1x@2(5!bKiA0ENS}_@Ez3P1{x+U= z0R5z+JT{_z4&etl6Kum)$Y4#o%tHS-KIgqeoJ+@o^ig-!HHl2H2N1As6>K~E$8@g( z)NYga5kx5P+X}9?3j3c`MGz?wr2j@`Q?tf>4p;!}ANJQ+2lH^Q4hxQVZAqzRy+6Xs z{Uf$0WXpN~}x*&aFd&$c%@iGkl|43_m|6QPeg$1VNTldUjf6#uUy1vLC zApe28Y0)RhU!(QQ{~cz}?goVewj&Gih5paEGdzMypzOE8D6E4o_}fgfA>2n6Fd@Iu z?MFt4_y%<~`u#z`j~1BT{{Z@q3%rMgf%zjaJ^m(mKM&px|Cz_DR=JONVZnc}pWJG; zBiGUVF#L=1H2LlMmJN^ieqevg`w%}-2dd1@)5!Z^`K_hioPT{`&&}_Dfj?TFM~xrf zANaPy@_wW@$iJn({~Jupx7+CFt%70y=l}lu2Z8^O=MNglTZ#dn2nt{#Z zf1`&O2lFoj#1&P$J0G^2_hG#q;bpfb0{e@8pJ|WZbJypD3j-s5)>Qu2@;x;E#$C45 z|NpH$jqe|p-e<;7@ZI_FGdGs~2xfe|peK(1jgZ&>kMySN^Ip``-<$WwOZa$wkx{RM(|%iq}F5pbl97$OeZ3{0(e=kE$=KfZ#v!O}ab zox-H<{DjDe2#1_#Pk zMp}zLSTMDP;C)X{=Jy$Ag8pF@I!uWstL_={{lkME@{aA)fA``-$?F|t1r3_P@N>Tb69 zk2sz;{vyvmEO4>pC-8m1509As{>m?GKA&H*Cp7&F0|f#L1E*%N_yMA8*X^DTtkA6}>R(e|>0g?Y_6y}; zT7drCCnpd2Z;q6qJ@O&Xr4kaeR9&BU&tm-n6%oV;sGO-ddxQX+&6o# z9itLWI!a%kddxHU)Ks6C*hZY~AFfYpZ<*Ep^pccgOgsZi4vp!pdHx>POeWs~4Lgoa zN!Qe`7CeXLch@=m*bN^X?s_Dj&zJOd_!2Og!y+7s1rnftJTw0XT)}r2@FF-b@&8(% z0}OvN^_E|cNBp`hoUrT#ep&pB^CTA-80q^%>RWpl80qu;-_P);J?Vn@Tl>l1E%B!r z->DXUL;ctcKRm{?$LIYoetnFAv3+&fi}u*x0k^P9rXKmJ8yJv*vHtaL&&3Rk-)mj5 z-HU;-|9R2}mU^>(9zy>8nK(l51PVT1i-`wGfWPRdxWLUqX|RSRS`*2d zSXk&>^_Xg>F2ell1^*qNIqZ+6{W)Z`Q*6bGg*;Fg4Ic8LPz* z-<01s>2K-uRO@ZGi{e~P-E5DpN-FU;t=C1}f07RQ+kdt4P%)8XeUo#M{hi#MAGdA8 z3eZ0+p$#FtFblqC#i~hWd|YBpmB9DHasUQDG(LOPO{3w_@{RaAIkXf!cXL5_>046V ze?%9+H~*lui-n(%9-n4>@+nh~?T`IlK8JzL`k?nEeIOY{f8?*~A71tc#(h7>VjtK7 z-o&P7Cv{AJ*#CpmKUw(if8wv6W0JO!_S+Xk(BJP0Fb{qy@rRMSxx-N^d$ExWljlrfqu@;iAzNPe%jz>>JxFN+ng}OpdIqODb#8~nNVN#|4*9%tQ`cS&0kO#R}7iL^V0P{zy$soeJ zF-L5!1^sgD+^kOb8GZVZ8(yuQ+{Eb3gO8~uJ*J>)$YcRkH}`g8!G!Di0DHHt=Jz-1 z#Eo^-Qo~7YXBg-!`zxurX68!3_DHi$0`ee_qE&AfG@{jeeuJT;R^pEnI?-gv#z*z4R zGA@XLX?b=Jeo3C+`u3Tnf2|c=_ z^1s^kOqhjL)RUai)_0ir(32Aqgi ztB9w~0be>XAOPlk;9@U~~NiOFhbO z>RUggGWAIRwbg4a@c%^biR)fn#kBvQ>hE3{cbTcj_szXIXDI{Yc*Zrq@DH(m{BwVU ztclx4oFy)YXR!IT0i`=`Tc5W3IGft`NZ#qTd28=OIBDU`ih-NAzZ0|giLa=elz=~t zQ9Jw{*@F3tzAk_xD8;of3CxGgJWkWk*bQ^8v#R8^Ho4~cy<*BxBR|W{{^L>wrNFSkRxgNkmry5f@|x68{=9?xPfxQ9scCoxQ?}Kd?bcn~MT!iO~brBi{U{Om*8p zwd(6AW0;gZvAafIrB_jTl%uJ*QV#j6_MBD?Wq5qg)SdrOZWEjh^C`tdBJnCuG4&yQ ze{9?@v_G|xa0h<4Hw&^Fmi#c{^JdR$7WyJw{`>eI2LDJe?)H3(|A+KgSUJ%m-+z^V z^tax){LVAxdF&7L|8oW&k^k)s>@FZCHtBlbVPLEe%5w=vc#1G)u$Bb-Cb|axPata( zp}o|FaD3v4e^ckE9j1J0VQb4QCu3tDm3W-azg?7v@Y99{lds*CnGCCe-`W!#iw#GqT>Y}| z4yQ)W7rYv9^(d{dpwUIJM~)}@L^pC?4bQ2dLhdJZ^3L7gKQx$gtw1mLn361bkfc)W z1@Dm!8i62^A>Mfw)zQ!38|kHc=k81LSN{8JFZpkuo5oxGx4*VG#|K^({`f2X(H{W! z!{W~YKk-9ctlgOR)AAkSk~bQjQsz?4yOnjh;?fa)7wGrCo(A*kSq0>aTWw}%rf=)i zjbI%8>%NBCEHl19Umgn!cD9>$O>eF@Osx;*tL`WdBWMB}KNZ$noTK(7jI`JPN9@ku zmYq>-hE0YG@+tg#g=;gI{_GV8xnl?ayoRuDFs{xvBbO6(HBCKcKt0eyZ7lW-hWc}_ zjnfRoL5m^k9CvDls>~smc|NWE{H(Ul&|++f{l)y)-@9Q;dIZ^g>DpKXNw z5a>jN)gSVgUcO6R8G==PPz0@HP3)y$>P=HXG>uTiC>_#EP%=pf-c3qW&;`a?*BoSMsv} zMxb{dgZ+e!YIn^gY;6Glz&g0kd&6<{M%bSTB@Fm4Cc*w1i1r|Aocl>u6B7+J=dcb- z%CRItA9<+V3{g}v$gA@g8><=EroNNA_f|7QUTTf>tXo~sh8Vj3^sw%t_#l_Pao=8K zjzQ{Yh$lk$ou_7=g7vM#fDio+GKr)5Mjkf3fka5=k zNBJMo{}z7^pZ_&=+*;_5hkecmee~aeYnuq(!3mYxPMuc<_;Xw8KwmdeqG6N%qIf=E zmaZwF@c||n;YD_{4I?lW2K$4$1|9AJY3OoMtmGE_*_n&<>+Qes+b5te>r?7JV%pp1 zt>QSs?5xdGbCz5oxy0#8j^`#HCmZITgtVFdZ@Ve^= zL~Q3=ig-lpH?2u?!Up_@#Q0>kaex}^rg*~$7oEAf2%e>jT?UVEZhx^pDNi0mD4i?^ zl4!hI-T94M&yCoRL27OL|Ip6dB!@tolJ^6nhW%|BlI@I@u`^4h{?)8T0nLz z{yRC^ThUAUp?BP3i$6&FZ+R8g=Jxmq_S!#))n5P+n22!$uY~jsAZcQFAX#t27SE!(c~J?jkk2h->6R_bGZe?N-3c3mhLpA3xoA1hrPUEz8QAU zZ>Hq7vk9XA_Lwm`@P`d1>h^aKU)A-@KzdMAvB|(uD7i5r(-Y9mhU@y%6sIJFzoN6* zr&~+uhl~S{@6B3MPgGaKek@wzb*lCx;xa5nsf)Q0ixI)v)_br%B@W~fmK;&kwKWnY zH*m1|TUeWT8*l7{_|LZQ@1^)Rmat=YgMNvx*gtaok3QuX=^vwyxdS#3eE2q9DDbO* zR|D?@aqSq=g-JWz`ZoQ`yTgWZfboLl+Q(@EqGeK$jEQlcGJ#YXGyben0u_XV(ONJOa_yjnueSV~U zLwgn48VXkU?gV{iaTzYE-fW3x6%JfK{%OQtOi2xTA=u`0TR}o((6jXFjr@_K>Kzucy z?_q40Qp0+zZqD!cZPvCWeIgwty^K2N6NtY(`f$GktVV|hUad+_^5x_GI&2LkOuC)J z)0W4;_VqebQx6s1F(pD5A8%f83H!Tt$UC`1l1-cG#_-Q4(v=(^t7dx!ZuyKyqy^%9 zrKTn)FlQ)QIe1U9U1GM9()gWMgbTp4>e9MO7y z){NV*zpTc<(h)g?S8FhTK%5ZG9w8ttk3BE^KcwGe|Ci&l*ZglckES=cck0pbXnzm; zTYpSq$={&9NCgE@Rk1-P>-kxS`E7ki&n{{VoX^=pU8(^%NB^l($qs77F9-+v#y2V- z5?(e7v?n0GhW)WE_t~c^sbZYor#KngIn!zlxE@W98uk(R%LAsqm>#f&X!X4^R&nIp z5)XHd4{ub1eQlUg1WmI|MIiUz$q#WfT1SBq_Uh=Hi}*XG^ZDv; z2IGdaWtAtc7wHa*&vKRDc6|=|$fy}KXgy#&?`^Sq8@g)!?!>SW<+b0Fr~z0*`A|BK zVEBz+U%5Bc{g@ii88<)t>>PK7<}eP8!bM7JJFJ2)_qK}=#^T+&ifHZs1z|&L2dpov zS8`4n4FPEX)l?DnTY3_~W9M7=<+pSmke(Nx_Q3_@+aDl`>%NRQzpoE z0K8NBE3eS|bVCloj>&&qe5nialW`k0^!z`bKgHs=Kzztz*nyz)MTTC>d>88TAkM)G zhTg~@<5q=uGB9oLn_tiy>%TscoQL&+L>9~3KgYUJ{}k3EUZB2*{FY|BaSLr7;S=l? zEwe6{n%9S^DV?^KyvsG1n9m&odw-6rVw;2-s<@B3tcUe`=eR$0%4vDI))RUS@~7OG zNo+NA1=t07iahI$k$mz?`NQTR zgM}Yx`Y#O0gWz&29O}%n4Tk)jO{<7F5;8bMEi*#AKCx8meQL)v^N=uJUQZ0%#_t1m z)S|z(JH6|x%k=05fSx=!jH)b(;Rlo_-d(xJFkKJ!4dCIryT2fq4Rb7OK)(mpGkac@L759DCKBCTu?d3gZ#*+qGwR4I>VcPEaz1->K^8 z#`-IO@!yiB@ORxA*aWDj`NuBfELT&wm61;a+S?Nuo4g=mF!c`g3_pT=e%$8xQyhXH znPpr6`ULRzh5b6Bee)?wi~0Uaf05`UiTz_)Ek7g}KWFSyINkt83+s{U4{{Q>ZCIoS zY!na18h?ZDlWquHiFK4wcljdlN8|RhwPyY?QYmDT;M4D&=#v&*=>!ww* z`{1N~Vg~U~{{3`5A09WaN9KyNSp370z#F^F{J|zdaQ-xYvzcO zoMP%z)+x5c> z55xH#Ubmyg%y1$t;7M0gZDW&EY#RCxcF3BhU1`#iy4EbDLs zelV8>;QyP7RUl7LfFsvPg9x=%Qw~N0C~pGAb}qHyHjKwy4ssvKVF&~?h0+H4Cy0RK zIua>8eFNe@KJl+#Yx_)wQ-!DyACcf+7$}hjeE&gX%?2EA@X&8OY;AxSBnx;%yl4r~ z8%rjc2C)kJW-~W*x1GfF9MjNW+LdHFM zZAlGy+bgbXkF1I4OC`pIN72N z5kN03-s2?miGZpX@%MvtKB0OqCZ1`J`Tt8IJTDiiX@dM7i})(Q29)oh0aX&dFS^|hhTg$Q}zMBg8V^)|A4-)^VWDQ5O2l~z+XrEvEfI$@ngz(FNjCP#I*cI!|=~T zGKgc>5B{S8o5Ow{;4how*J%Dn__y>`oS$EPHXr}S!YNtBVQa3%>xbZbbg;g9*7>9e zPy1Kfa$G|iRMeIE0!~I5p{gLdrw->UJ&6B+yjG2EiqYBWmwK~A#16>EW}S&iWaJy^ z?K$p+yrX}=wz_QXvI&sic}g6a3iRI6-st*(`hnU(g%5fL1Ajl;5U$A|YJlOGa)JKQ z%K~>_J`vU5c55?@AEH1e?4fqjB7*peJyP}+j-Be!4etc`6ty&D&@lXSSiGHEKdUs6 zfo(IC+)a0+?b-VcQ{8Bg76}nt{e4@ACfc+{OWKY^3i4STog~s%OSUBGHAe9X3u)xw! zB1U9zH$%wJ@IF{T07}Cp0~4NP;+_-I&NckMTt8 zjl>)V<`IyO2owq#crEDn^{sst`lGxrD$*kB(Io`rJNw#ti#@OdeHl=fxe>6X#|FrM zoYP+=_U4(yFv7yAFhBO=s%d>*MC>LT{xsU2N7rAooIi>5hUveT=7&RkP9zikT%3c4 zc)~VV$Rmi$!)Lp5^<{JRh+N$EJn(jqz8%|27gkVk?|eYW5M?EeKWQp zEg5)x_aAp?ga8Fv{6QW?0qy2misBJ`?k@LycaTLB-a~%KT;JhzQv1Sw_yvf;UYd)N z%Om`=HgzyCA3UHbGTBP(AA^pa$C8Ml>>P{#w?@jE*z#>mpSit}3IYB9Ra~OQzJ=8v zEN zM@lE`@1wa1{3GxeP86BX!zniDhw%BB_74_~wAUj(;u90UhVzN45_unIc|@=#vibkr zP4FFwjqIT@_md!B7?p@7jV|c#z4gZLmi#`werV1Qhnafhj{^|zt8N}s9AR^h;(Eve z`3C_fjoriGuUtum^In2IZ7um38{mhg#~*(Plmw6!qPdpIg4j{crzO56h9w_ar9q^A+kXTa}$FJ5%(BpPgx zVT6S%vcaD+m%Bkc!Zn~T8*)Pwl}Kr9GYF#Bry2Q+8Zg|`U4ZuDgrENbpq^SfP>j!u z8Ycj3gb@ycJr5*inBJU@?ePmd!C!Rz=o-ym!*Ht_yyq`+x-9#V4gtR5Jo$KRjs^X% z8G1NRL}&hfeBbmh#ZS!iYlC=^AoO+TSD0H<6dxokmxXJ6%?0D9d62+0Lk1I%2;sAd zG&iOm^@R-(M?a`H>IQU!EwlK<{O+J2>|eW+Dzu%=<9tO~IZim(P~5FE89al7_^%Lt zV`Kl`?QtBIA0qwU?c5N`&=>W8NZ!Kz42=1|Zp(Tj84u$@7|t^8%?iymlg+B0dvty;6ea`ze)A%bzIjk0aVsx|?V)u%6GlN_F%a zX^CzD`0WWXbBB9Pu@DnLdxEGRYh$7s^c`SP>GmFVABc<^`VG{5X#cl%Q4ActLEk|9 zMy{CaYpw-;^A93g=ik8HT;Or*P1t{F>D)(@5k zc}14z5%c*(MU4$CALvE~!snfL#BVu`12h?ia6IpcvKJzVg-`G}`QdpkG;o`O>yAMkJ$ z6%Q94Q!V0hJcIfCGk#}6^;bUjP>g$pfPCJ>hOVsWo%cjUq>$)qf%R;}kK?K~gDhb| zdmnMXVT7M4J?i)Nn2xXMO5l-u@V#GIHQX}8C_e;Ic3&RMz`$L^Kl=lJM_3EzH=%yZ zj{jiiNIm3#2tw;|Z$#hr((;+nTy-A!&j9C>>aqWrV{fAWpI|&aNWV`M;Q2E(G;G2? zE&zRYtllJ&J_de*Q6T6#)gKay2g4mx(Bt~b^0KZ|h1WwN-;@jm8df<%)Dsce$clnA9!7yJ^ zNNI}b{%t%w06+B|Y~iaHkUvEgr$-jz=9h^>P8w!%ws28Ow~af z_ru8#nCDS{jQ4CiBpf0J+yl+|qa`hRq_;`?V^=<|R&i)O!~s|b`BV<*Cs@`gZ$a-Z zFG!V#_BrjLl85^DH~1g%Bf8D(KQ$PT{*->MA9a|b#J&7rY;R+H;tj#99{M!nt5g(Y zo_#mdJ1a`mh;@wou&wPmbhZ!f;rjz%0v%*?h`L5~AbnyM7FJ<XWG;J^Ts=O8Q9W3 zn2_N;8+d=Ct4P#xoI}8#3KiN9hvG>pw{%*N2-<%yn7FSL&db#x zMbV$U_2#LZQy>69vjo)lkv0KyrxQ6-TqCxkJ(?&!ShRbP>NDmKUxNIAk{k8$%2;?7 z&Wksg5WkImPTLuJ0lR~W-EGmIl}OLR))Zhz)S$FJ(Vxw3fNaXJ&ZL3ofxn8AS79Z# zLH!W5rQPCR%m@ElPYtxw)$k9S5AjVj*z5Qg{-p<;_m@W%n$RGkz7i(Ac)k<#cZ$Fz z#YX6GwD>4hiS*j{rhmY&YyY+(4#h$G{`Ss=w*H*JCL)llw3)q~JHb)w%Z1#&9cb_i z{w#h+;)gHI=PSmaSePG(*eAf7u${fb{O1S^>%R)}L5j>}G9ctMEFfiIl;3cdyoC&G zq36gAtiO<)ca*88`9X5QGJlBen_+>8p zME!EzsDBRWEU+)zIU5f4Yy)J|1^w}eKVHNGwEV_lzTT_>TA;ssz@OQ@r{UJ$Y5H_V z#w*NELw-F7^>soKtk0ke@=K5?+n%YX`-2H(fSagSV9nqx9!F%;0`qgHVRRbnuO!7;Jj=;5wzvKEciV5Z^WKguI7MoK$SR=oq|MCIUqX&#ZQer1pd zM2y-IxIVlT_6vZENEf6B%*Td}fWX}tzrR?2h4iRv?(JskkzTL;^kTgZ*2DG?%X}Z| z_f&}Ynf8D6|MB@_qv#F%4(o-K1x$Oo{`bc{0Mk51^G9#_@5fu%d~CA-=-&zX>Y;Gi zs|eeI|Il{!#r*V0{`nQ6k9W53;?1+3!N0nN&at-GyVZ~{i;0R!Wax|jFiXa^$TRA5 ziG=Z&DXP;A{QF&{jK4vJ!1GI%yr@Ti3(z$#ex$?SfFE*CwOiyl7uqk{5^aeOCkOM1 z2H*ew3Dlws=6m9#JtZ+DOADstfro=9knRdYqqvm;m{CVfVbb z+ChT}`33nuXsrqS0|Qk&)!-Hy%;O~2DbM>7J|OY%LvN6u?}+^HrTlzP`LiX6ODstL z{b3m|&ENfQ@IPs;B?zQ9h^K|#*#7ly|3yr_nf}#f42<=#{F|l~-a~lzsu%eov=_>} zm-iDap0;>4^E|Ex)y?bfVqoMKcVHL>#{NECSc%8s3Gp84v*WIt;wL@uynOGJ>U-u;4#SG;0eS-wEY%|Hjf#p*I@n*+%;E(;n!cx@rNij zcBG#6x828u=e>a4CldJ%yJ;9)K=iNMH`4w++&ZB_f1@W}#Kn38HEcqAAdOq`5#1jC z;e*Dt50qK>(VY+Phky_o(*^mpf(YbMx*M?Mm)eB%ciq3+1~Lb<452?A?I;pWhmXQ? zKZwPL{n+hhh#*j&ZeCbAXEglynDoI*@bSfOF)+^WdW~AIkNUnBHuNy{i2qMMePpr! zNFT3!@BGpAmwiHB9}S1pj^YOad*a)7>tE0t#`nDEn9Jz)i#*%LF)*zUUi))A1DnSe z#9?5pU+l8rH9`gP#vLLn4B}H8n?~1!fsN>1QMp{t;J>BVa3~KdQ9rDw=jV%kE}y-s z$!qG~d=lm>JKg@CJ0=TcOMB5L>s`d}E3QW-<9QdiP3*G>$34H~W2Oeummn6;e39=Z zVSc7@(}R;xuLBisM1Nc~^DTqhL*K!~{_BU)9xE1oPZ&X881l!Uy&_UY_OyHOPrgoju&Fw)cW)B6V*80GoEU*fsSrnOU;dTbB-=O!{R(jV4; zTHcTKi+nB|W$FH{laZ@+uE3W(Xi$aF7wzENF*an|*3!FSpYXkdZ786qd z=JTVX#NsS(p&EWynT}V_`WrEB3nre52m|50L}ZvEhH5PmL12h`-r`9>aqh2jPkZR*usD7(ZNjU1vGJ z0P9EF2Y0~74F9#}Hz()$F|ZZXA4u7|oPn`^N?C}Cf${l}@huw}81+rQR}cdd z_`ZCv0#%kN%ZUF6axTpBgks=Oc6zps_D5S=AN|fefZzK=h|4Ah#^=HPsbOGz|F|F* z%li?ZAbu9uT<^J?X-~g@6h5&2@6~R#Og+M@M)ptOJ(Pdgj%mTyU+c~OoO+OXe&qet zqhZ*u`O%9|0{uPi%K!cR0U72bt+?oS#*O@qN}CNbnYHSplqAWjb*owDrrQJzK<@RGUrPDLs{KtmQOlhVB=C2Mc&d8Jkn}p&0 zx331n{lyu%`Mh04WTqticU`}l%#_ydI{dmpUL>71^NUjkvVrtFq1kJY7fNNSu4|xv z$oi;t*=kZPwIZxp2vqL)lq)#T-@$dqcF9Ehdx z9tUraslBAIBvo9!V^4Xnd`7=Un^n?FPJ8>%o9oLP$iSl~RK5z|a%JT%@7?7+a>MKD zg!Se1JtHl$M&@ulQ&KDTp4QNae2`ml$Ualrl_aPY(EPwXI`AXXfAH}*uS{}D zMsu@4jr=h_#4o6boSsqeZNqF0xme;|r#+7Rz*8y$TIHD%T{C3_SV9yY%U44?4#z#V zNZLl0Mu+6LkwqlSefL)66K`d~yGTD957#QZ@_58Dyjp|y!Yd#6!C9du<2reSUr7Vm zt*+@Z$XiK@(?165BVBE+@yeaTnSRpj!DE+9zpM3r;x5QTwB02tTo7_*4dO+ok;~@fLRlX$}sh9iU={-Q#+cWzT zeH9IIMZ}Q1FMP**Uf$#^;D-ud>f@~PR9{Lqty`4};E-k635Q`T|rwC?1sU-!HH_uyH zr2*b!Bhn%=rMtx0gEC@?WI;r~%9{gHEACOrh)hXWQfU!~K)An)Ak<`6Qe%4;!1-dr z`(~P&tQE@$b_3!Sc2_<@x&LNdKge^TG{QTaS12tax#6N^Z2+$=^I;c}MbZWSAzYxZ z^u8Nmi*#OSeKio<$wF-=sNufLSzGA8jm%9Ki%{O3oRH3H^3<0+!WZZqv!WC5rzTHs zvZn7lInAW$PuR_Q(^=6*rtRO7j(o#*P*ob_4N_;vfj-nfgq8PKIL?*n5$pDpWJ;av z1@=hatKVHcDg^oy@B{WpzmN$c5z@bK`b?mUuj0uV?KRX7o0ZCff0z3y&i;5=kL{vd zV8b2IS+sola-@HHRjv0P&@bL9>3`vAX@#jz-Ag)`@V#UeehPz}4?j@hTw;(ud#qF; zzj|~O!1#Mffy{cGGw6x!dy=ky0QB~~EY|kQg(blpkIJPb3aMAEqbjRhAyug!ZW~*2 zMV>DYuRl_$AQM(h)vhm>lMOSD3@inH$PzalN4}6v|Fg=cL_vCYdfOr&?9g=d)ya=k zip35N;nGlnlar$}%0FuiVU;Njm)f|xdZ7GTb2n_xloXQtKUJ0)Ku(no4l|td)a28L zE8`46zh33HwaB;2wkIDj$d^cBRVrns)HC9n0U4nNy+G7@Xfvg1(mmyX2<4icOB~dZ zg=Dy@ARXz=;jLmdfOg+go4VIPs!4tCS2QeugSd61f>a+ZsDbuUfzK{4r0>c%=FC96 z`7acS{6OwzpKd<2OwlXm!`c?kpfp^#8wUu3aPzdd!V{a!eh3l;ZBk)Zd36pPu zh48)tZ&j@hzDKlm*tBQmKUure_vYgiqn_C52UiJ2I$=*XOFR0p5q$RO+Sc}V{`zkK^K(z)jw zr?H5Sx4)kA9rmNFIeJ}9`Y9@8HB%68AuLhQ2S6tet(HRkz5C`;5nf#b3ftRA-;%P_ zY6pbde~uBgk$zy0laxq5z4XbTTB?>;d*gf8k$!g{8_@m)=FSgqg>igd`FRHRe?8>t za-wssq_U)d_R5BHQC$oTB1cY8^$LgiIf3*%GNRGanxYFUtY8H}^I zPqfil(Le^zKJ>H~^p?Y$ouJPeNabYqH$HIP@v+!_X~`mq_f&`6-R0Ayr%xUn+zs~N z8@FYB$Pb#Kg;TPC&Yqg=Y@d=vQcc4V+3s?u5>@v*hmrnwj_j=ZH~0gQk)rm6(y0+n zb7vV*{}WdK%*iL0NTP(%Q79j;7MMiBl1xcwM1LR3;VRX%ElBq!Wr4SjY$HEt`Pl~P z-I?yKLV5lzDm1W2nj!I$=M$*+Ifeb%Mdad)6E)3U;O%9&JJ|Z*eRf9pK%u0FOg&JW ziqG52?Pfdy{M`O%`H$GI%X^{Ykq>5kbJ+>?vpCnG0Pz>ZvVr%(l`R83sgn}2Gf$9j z&Jgx?a9>KWn~xxT=XrA`%~x*{zhi$(LVjL=e&(Ii*(Q|#TJPF29B=n3*-ABxFZj$k z8N5dV>dPMAH`w(s%|KpC@^o-uBVApr`FS*b!*YSXFyc!!H-zAy8Q+(z_X9c2pS%mK zIOwI;P{5Z#&gS*5MLsxM-!==M3tbk%^;ImE3|t=oKTt%ot$>ehoD znBUx;zOKlc9&R3JLVH~+m|>6pTHttFN2F(S^LIQU==)_Z1m6$f z^eaBiLa;wQCzN;Tah3|-Mfo;1&TZIJvQ%N*G#rS20fY&z_`JizESUl1-IhhTp=j`qJom=_A(X^DeO^{TUCvGhpSjW2zHzU}%S)(hc!Njw(h zT0!3V%;$B~177tt>F>gQt29%OPl;T*F1QKe1_k+~zHr)Z@CT&pRCYb`^(94Ik?w+l(Ubdy>B2MH@bvioF--0`GB1U`58z;d6M=Ui+D)q)YKCbk$+yR^aeg? zlY1#^l2AU+TaRA?(j=MYz;@>%on7Oj)W8qowJD+}a)W$AdsI7KVHr%j5b9@m*s!w7 zo%6mCZyu!SaoHZ|(?&K8ZUz29J-~9J^+(GDhzHctnbWCuq<5Gg&kp&g)Uzrc;Xt5& zFN{lnduu1!|6p05xQ(1H@y-qITq5Zul_k|6$If{>?6*5WJVyHZdOOhmT~^f3v|l)$ z#YH=?da=Vlz?zqMdY7#Qeo$1Udb(tl`{s4mHI2pgK{g?Q*q-a}7X;V5F=wuvK|dkm z;{k{R4RTI$-1uJ7ucRVLS&ieG5He9<0DLZVjb4cQKK$|-TJIa=_VxIkpEu9`FUA4? zoE`DeSj996L7e$~X-S5p*w;G(FiY)L8jQ(uB%8R6ZPEH=^_jfnl zI)?PlSE&!8aMI4$ zPt!4Ij1$~fSaYU)Dg?crx|-{O@L1ba)Dw9=el%Uk99KC-5cfFE$}UQPhYKV`Q; zPSfAv(2e!w8D!RvJQ?VL@+xK0r~j_JLW;#>r-e&v#6W(U{$bW`D>2_=x;+!(wdom$ zdTV=%qzb9?`FGeT&vX9Od>rxTx4#$iG(}RGT9s`8zo2GwSB4t!OR$0+klqu5CY(in31yk%bQZxOklwD#LMLE<1R)DFU)hdG_Z^}ZkXwkC z!(Chu&wkEsEUv;wk?)?LkN0EwAz|1qDrQ0~_5*e+0N*dULlBt%k*UPdXb*%bkwHLj zsf~+GK23M-m*&kf~Nc)3a+1fqwql+Q?ee z`_?j!HNJOQhzrosAop@Ttio~Gx=fD=+;>*s-*vko-^Ar3T~&>f>a`dUAbvn71mp81#Hu zVaW}Q4>rUWeBL9MlZTpecVDf{0Qx&PPz5%smXbsGr+#;q<($`h4#)L=2@QrpNm8jApQY52?K%tnUbj<0S<_luX_&_ z2?0-nQaG3muDSIp+P_k&su16bE6^b^Ne5yN&Eldbo1sN+HO9Gxe>&Id4z-%Cwpa)HlMbENggA zo}uUt8}+t>=R8}aKX+LOEypf-);OJ$^xW+Ae^I%`idOG zAu#__S{s&*bYHOe!h1L#Hp}fzu41g>*|3g6x>u`efUny~d9g~2^|^r}$R|R+EA5V# zFX;bo{ZlVv9GE`jKZO3^^5=zvKA;cM-~qG?75!ynTjfhjyelJ=7za4(SB*vacO3Gu zT@U`?4zJh^?*e>6wzKN@dMAamvvk`oq(At3X%O!T1H%GQ{{LAxa|Xu!H3w2xo9%z} zUZi`idbSnPn_p1FLpz>dp!yW$X_58SU~CtbngV_z#0h1)93Xy>{G#=t{dOB$ly~r_ zns{&pKXDJ78x2<*S8H1SLtW!(dJ%4U6S;t&9Wf%X-$I27vi-est|FzZrq&<)EGlD& zj`vyuApQqBT=2i*jC4G)9~MEtb0XI$5neZnqTu;V>51!iWc2&K_%#y!jd|Q9;Agdw zf15ZF{A)F7MUQKj_|Ba>D>2TocK|sBJMCxX=ZsfaZ+RZ|wrCj({WpbG{%@)1e|k;- z@k@OF>gd!xc;DG`>_nu0SyDRa1EIp273ha>ZLP{1>sPM6GmLcqIXnIWewQ^zRe^Dz zcWpJ;%U*IEtq+~^HWGnC%nwY-3z?7ObV*AKLqDKs(6q!E=pVX&`M$AW2gZzb3r2rm z`^~LyofQh{?aQC$k5w#^H03+8K>np~+rMpx{{OkJYbt#q9@vsoP_P@~y`x$Gy}i5q ziu~S=CnqpZ6f1Ou{7T_APpkH0oO1M>F=qRP-Ou7eE%YLFM1b*>ze6z zRXVbstatayMS1>eOYc}6T-&3TguCtd<`FdIKx@tugK5k z@DLB*&;JneF{tm;@0hRbM`$Ou+=z@pn9cUtgjX5tm&E>fUMs<`1h{*uH}X+MQ&SZ7 zPY{li=s3`7%sZ%0Sg^Q(z6KIk>3Z3Q2dL*$%W6}Pfc;s1AZ0nmD|3u}J?Lky6{YOe zL7WHTPt%`eFK`6EAL4e086SYYU#FTi4fVc=HEP`hq|HcrZsh zR`I^nsqwSmuzq^D8M-JY5nk8^as2OY-~^;v?Ju&l#D?s**E%C4kLNp#xEip3E3rPU}87Lg57_sjVqs5iG0W&2T%7IN*l zMbch*Y5~SmYSQ@m3_4%)Q0bG8@sn50;B};zosWAies4JY3&__%ep5?PD4#Y_QKeW9 z<{soTQ_7y<;fsFGM@ppw_9q?dNc$1MASbZh7k|j0U6ItWqeBIGB#A7)lLz`p;-lWT z0`(Fh>sn)g{3BppDjoI zpLMlqH_%fm_b#YGJutOE1y^Uql>NS~9{`;@l}&s7zz)p$dd^JD_to-kCxTy~V6)la z7Z~K;0uR~`-1ClXj33bDXiZuo{e8sRdo*1iX4*UFEs@GHOmCxo`{P@0FXy~W=?*Yl zC`Y$`56t4`6_UqK4{6bF5mlGDBOWViE{QSz7syq7$XkR&2-7s2%@eJ=5=btL}8;A;-d_(xDSC2 z(xd0c0(~3E>96ziqNqjG2W!niiAt1ePQoY~vk+XQ?-x~M9Fk03v_ zF0Y^v@?U;_Zf^s<^YR_NUq^XgwSbTz{fkm(rDD8!v$MO&S+PX=_K6D211eINrEEv} z^*V0j4XvcaM~|mNo>cNs^e5X{F+HP}O~}xWw`e>X@P5;+(<%duZ$iaxAzr!m6V}jt zD!$%?`Sj%Xp6PHrt^eY9^}_fM+@I#&MmlCBJduI@gPFEEcO_)o<p%?ss!>i?BR|_EzC)kJde0GNf`>dAcKa|mYey8YW zGt&R+!qq`|4gJIx{D38r!$l5&AILBtNnM0_;p&JQurm;Oexl4p`WDovzQgx~xP(sN zfSSc2EUtE^E|}MZ`Hz)H2k?1r^y=U?QYR1b;)C30O1%xL*PP*f zuuE^YFXRnViX6NZ5SRQ-m0Il!dY)Z3b06yarW(~-m#6i`qL454} zBw!iR)i!U^8sv|%h3VC(7uK#$FGIbu@uS1jxFrqJKCMQH?L%2X1m=5I)J=o;8RVXO zmoLZnY%-`G;&ZC%wbiI6$~w1h$SQHnP)!YJ^i^;bpQY|ujsD4-(XQjsUb{rOOhCHZ zdye@W{r8juJ0K6yMkYOd?KJvtH3w3v@p|BZ0P@CdQi4+fd59wE!?YU6>%k1_3^wQy z;KUgX9oSF&nLtnEhqCI_8uWMKe~CYic&K(jI{CqO2fQ!c=XNF87v=?r7k?axa&Ppg>dJzA&(ZF# zLiG3Qj^2j&@QOUW^T;}!_i?hz=_m&MFBZf45199%Hd*zDOD~CqKMJ3t-j{2ywd4Aa zyvcU|Hpc^YdR*6$nzDBf&h!5-_TD}$s&efcUJRha_n=T(S_6u}@M&t9eFz4Mq&XOa zNSa8()*%!f4P%v#3>wS~h;DQXso^9zvyg!-6Cs7v(n=94%Pf^_XNn4F+pTHJ^ZSik zcis2%9?$#7eZ0qWyvL^F@akG?&6+jW@BBW`>s-S6#g%sG1p)hCOB{HPNg@97z(CXm zK+g|Lk0H*^ftDB^?@+3S5YGa)TEu@mS;Pjuhg|+3#9=?=eDcAolqZ3WHy!-G!~B?q z{PEzz2Njh2PD%cn7vN7y)fJWG-+ubfR+M5CeB)xdP9C;xbzE1g%`Hp~{4%GV8%Z4F z;n))Y>C;ozbGNCC(O}V&%S(_{2!)z{8=CP=Y=lH1mINI6)5-SebSa{ zU!~m|C|AjOzXSfXWAQuPW$Dn*I-zP;J?}qz-b4-ay2^Ap@IGn~J1vp|*C%QGS9T*G zrME~m(eU4;&hrlXtFg_iq#Ss*kJq#Oos;^z`jY+|Uhn>%`1k1-kNTE2LuS8tNO|Tf zEf2A7Mfd2zp8l^`F@gA2um$bCK7%Y&tjg%r54G>aYEFgLZ!Y z+MgWuzE|I?XCVd5(y9W9{$J13>T1gWHN%qzQvau&JbA*FaWNx(eFf?~KF?TmIHnKd z0V_;$!87|+UHn6G3*&>Q|8eF`#s}VdCNGNhAKzS5I+w!#w}pj{p?t7pBub^gC1FdT z!)~nb@DjN0is7eXDHkHG9R;KZt7Jnwz;1Z>nbi>-OZPvwo9pn-7jIo7U%wU{v@NQ< zRBW*?z1f5NEx3f&*Fug+pR0`geDn8`gN{l%-C_45{;b!-o?tv+;CJ*JZR=~SjO$j} zKg978@pArGw;0d#+mh^0`iVn-cIJ5=dFY`^>TBzli_UT^SnU={I?%TkwNegT@qA86 zzVChc_m8@ew^K=TwB3L8d85TH-H66@bw@mgkUj>?coA{EZi95^8)+EfVLW zp856+#}fl?+#=q7af*2IyRS=9Ch1_?Z}E<}uvgMI zNUgL3Z7o41wEwGyXFgB=fAyZ7%gOgQPktXpI&g}r4MUtybX#5Z7X3dx1)#5dV@Qr8}}Xy1k~k4JF88@8wtq5pG4_u}Snh}*k{ zd8e7DYb{cuItrP@+Tt~&mtk`62*}@Zo8%6^0dbzxubjBP@jncX&Q+2 zt@mH{Ul-}nYoe12<Mw|hhWSJv3(sLeUz6TvDY<$aJQD;4tFB`!HRV6uBN&zd%WFI4rp+a9x_Y@^&NjibM}PhPs}1*}x4>bq47VE;vWEgwO; zur}iE-dn#?;i$Q14f_O;ttw)6-)TFJ=^_DObF;hjo5Oy~l2*9Uu=_ zDF^=9(Ek<0zohS(!Q}VA+9$WMPDdD^-AX?}FSBl7obdMVKkh7n9LUP538lYQATzz= zSpQ~wbE#M&_CNgGVdDGp>u(>WyqGs$nr#Q44zWM+w^EZ`*9=3Q{5d=>ZX|IEEYi1^ z0{_kDL&iAn)70F|(SEVH8F-3%WyMp}C$i8@n}~PU%ikg&Tq@>ovQ>ee#DWmZ2Fh!x zv8KRvJc)&T2Ig2`iz4Q&U}e@B~3Ihru+#R_J|+n4}96*5&wC9)$He4 z4-wL|af2Gi=gm)jg=3}^`ZMLlh^~eX#BEK{H;$G--Wx1!lD!+hQxH1FajcSdRuk_@ zN%52Hcn(E$jDrq~RD(+GVu@i*+^{u1s6%PF(AzQvcAnX2q z?E$&+EsyZ*QiDFkI+y%Es8k+Ed;&}n(EBBZkS#RP__>YTf6)>iyl)C{Pg@)*c$>Eywx*ZG5dY{9 z+gZx{+}xSh%2@Z~m3ET#qH1+V1LA)MwUd*-%^=rB_dGkKQyZM<)~AmPabMm4;{eiu z&)AW<9+03w0rfW14+dxN7zN3;TPwFn+ zs%8BD(V9-<5!7#L)7D#efS;Gl{Ay>})*}Y-x8HxK-d{Ap4!iKONvTX;#CT8IX;;L3 zwj0v&^;O#qt2es3RtGg89^m71W;ywP#1GfMwHXpbC)8U{6#I_*puGHd;x3%d@tI8f zF3sLXdT>z$>M8%X{CNFQjz7Jb_a^N@`J;UwWu1q9NA^eL|FFoW`LqkM+OCdx^4ip7 z^7oGkKVE0PwYEC=v`-=G?=%|ZRX_*V_IRw>Xcw=oGYZ6Wmqh^X(dI*ea@66riB#Vs8*%IBq%hmX(?8rf?V!Ik zS((H=AnV7qw5M$w=4COC(9v|UlKKCbap_k20ijOL&dkFU6)^vXxZeIyf6Di&Md>q$ zXTJj@M)0`BjJIeaZ*%bXrvtQh@fJLf-7xFtU=Jn64N_}0B=+6+oO%E;s1SqaF+N2 z^h0EXhkQQxe`Umt{P|lW&Aoe8zeWC6sAJSNlOz_Iiw=Ee>YI21^?-~6?Y55znhZZq zW&5Ub67bx-;|n|Se)G_oWe&R_&PH0uETkq zUU(#T&Bh#^X6Cg~WvHi|7UlsttuQ0)A^fYZUcu291&3?OA#YpLn^=#TD=RopdMNmC z7V_t%qI2&wP432UUFyrdy*bna11r|To-kMg`Z@Gah{B5aGvbh^^5B&rK7KOq7p||h zAVEd`(#uL*c|I~U_%z4%^BJdj{-j0zf{*!PhFh^mtpfQ~ccal^&uf+}o=SYn{FW-~L)8CuwWt5_0`M>U&0T(V zt5wPEIycf-dm-@_y%HCyMBU5rhuY87V2rsr3H} zo)1_No(;d>OK>9J_kI5MTadO>YpYveKZj>m*Hr0QKY?bASXIOcHK&jt%@L1lb_Tyk z+%-ERSuedOG-?p@X$ri-k9>`OEg$fBtIVr&4eXi5o3k|J%aD_KryTsU__-kJ%YP)r z^(Rh+R%KPGSZ4|}78R9Z{>a%P_!TAMZx3IDG%pp`OcDg$ z3-G#rMyZ+i)vS$mqQ057^v-6=EBmis4C{hia&~h={15rp`rhM=C+Mq+VP|)nrmdVX zN&%c7ouZiFQ||MIeeW0xabL4Gs{(esA+VrBOZy?PD8i8kXg{&_+(Og=Ne#6%{9K&x z0mL7p%H2bm4@BJj=ipP__+1Z7cXFb?`%CWrrEPfbsvTMt?f%eDH+M4M8}zW|O~x5N zch~c3f4&{%^ORu<6)f{J^4Kn>0Ea4_7WegTgP?uXa;@*QuI|G5%e9+eSCxpj^P(K_;g+HumB7_dRVYbyhzr_Ms$mz}4TlvU z|DE?sD2$7>1NQ_MIplASZd2_T!~u?q`#TtyMBZi5r5^exn*-&_ZpbY+H@67-|Ibu! z+DY6s$u2>R+uBqXSsV1bBx&dJ_<%{PmJt8wN&QFMrHcu^90$jZokF{C&DMd)2X>pB zlQhYsqoRz?ml=QB^6ipseEv<3*j2PYg`R>|(s$g0SElhfk-m)KsCE+iG5=R-OVl#% zw1X=znewEuE@nEwe1b#``g)c+56_H?$HCL~Io>8Xqgc-v0e{g3?eFzN$8&(K(rTXb90M3$5B=K zDz3NwW!8~GFPxYwS}9zMVe z_L6=>V>i}Avh90?^S&O`qmbvRGfy_42v|ZwpIY9P#_K zIVu&e4@yo}aMWYhC--N#g{kb!=Nl!|hvNwX{Wb6tyA3BhEVYjKQ;Jl~IP^)a1#xMg z!Wo7bJU{IJ3_0V)hB@gmF-I|K=Z#My?tAmM?&au|?o>#9B?xjwo5?KhI2Z6e@oz5e zszuz-(Aeqz8U4X$!%zu|yua7k0)h2@4dE-B8UL+S*}7>D%v)*+Y`}i6D6d&BO~F2) zyu2_E(uKO+-Ms5aR)ow)4C-?bFyNo;t1x&kjyh zd0cahLWt^b#Z$v|LG$Ki+KIEJ=(rvE)0)0AXUb=N(fTg>fi(mB&8Gc-Ewy<~3F`hY z+8amk_?9?}igu1sRg3ksi%rgqTzGW@|Lc;mV%>+dPyI=iUVYA2G8RN+;S$FS!mEAkL+1|b85 zJis?oqlO)hxN^KEmZNXM#{rBJ*c($f6K|wP=F(0W`uZDrv=7IQ9Xo}e(`d#gvo1j) z2wrXQbWrCM5Bt<$v1ngwBhIoa>_W;Apj`&$XomC$8{Qf9Z*QP~NuC zu;MiA+k?SQyWYn`)y(}pA1Y<=;}M_H2j)5KZ2znZ%G1v0-HnV38jEY?r8pn4JJ3ix zu0J1GL_cVEwVOn|Ti>4uISl`1MLO)_9G&^(%XdnF<4yZ~;0->B?YrvYW_BP`I8@FxR z&FczWq@lcj#q{+-jLXcLYqaut!y3xcp^tP+?`%W;A>yrGszBl@)!2|{0^a`qLulVs zO!TjC$ocWw2QU`Sx;(Oz{OyeWhx8A9C-`>p^Tr}Q>bQ^>t2&MRCgfRuzKr@zB}mip zy@r!2PskzoJCBd??#A=PC;Oou0rudGjJaKSuHTwee<6M9Z}g&G;Z^a;=DagLsP}l_ zmzmePOm5lEDtRd5ecsu%@30>HVOucleY4@#XYX`3Ant!LKWgP_*!#tG%c#N?U&F%w*4OYucDl zTQTkZfT9Rj+W&cv=6TW1H-0W%AilSwo(U^Kd?za_D+SfKqI9t<1aeF_`(uucW;Cn1M{XWW;u#CNS^3Heu^Z#}QWb16#<_2QlI zw)Z&iH$0B}OT=4U&yFH4OSKaAnTBVpGcx8fuK#{*Z7uoxRC3ZJj>-&wUyd40ypDFB zz9=k6jrp9pX)hA*W4}~Ppxt0InkEbBBH8IL$_HyRyzsr2@f9N#q-U+Bgk z$p3S`S+<#Wz!!!EdrRN}Zn0?bd$Av}ryc87B5KeHmiV9f{(Mmh_@^f1lzScYZ&8fQ z{fOat-NQbCqjO>R-IT^Ir~ThA>$9O8JO64gfgCXPvzOQze`1R=6q zrR%}IPwofSOq+Uw^4}{W;u-A!5r+%TPQ-sM>Y;3D=VFIA5AmY?7qCL^OgmtRdB|Ye z`?kbt6>K-|}ESXB1wdyEhF1{@vH202h&y>1=x zw>MvUn(L9|>O0G)Fh{JFRIpRp3|ZC()*}uGeOcp=IuOxvF=%%eNA{_{I5?=OHna29%(G4HEx@4&vl?S`8-U0rJt2Xc4U zXl#agQ;X~Bu>W_Wh?W4rzj$hlelF_3K8?luR)Rd?_w|l_BpCj@=&njj0sgwsAeEJT z*oFQm#382t94FdQ(j2Lha&WOeMxY;cGBkBSP-dd7*TS7@-GG)Fh1FAxS2ZO2I=ON#uXuPEzc+JwCiGQ~n3|hV zR08|7XWZv{>Vp8M0_?J~i-DcLpq>dh$NP=sSRO4_Nr#6G3f6sdyvoib4 zyRmX=EY z{?_X5Q4Jd*7gBHCK>dfIKH|pJ7s|`FN>Zq0yP;vLS}jTSTfNIIDz(}T`}^tld3?@PwVeq3tsDYVJmRou7b;@W2g> zDlO?EEkQcWQL}RR*BqyPJfN?`FG$Tl&*zvK=X;Ry!SeBh!+g&5<5$h0ogmGYY8VgP z5*VUtgI;}pbm>#f`!`0_WkrGii`|v(xv={s)w8!(gRei&yx7V7fAdevr%eGJNW}_? zb$*s8pKVvRXB%EhbM4DKfRE3~G;hQStEc;yyJrs#MFW63+I-ANX|EGk< zu7&}B&GnWrNc}YbE)>u#HQI1m7DYsx{uAhgmIEA@uvMPY*f+`7hSFUOhoM(D{ohnDzepa9cI~L1k4~ z4fFr*?zgW^hJ5Jhf&5R48y*o6++t<^FNkp<8=?bqrC`MWf@;>ULp@kpXk@63`2eMi z@xSnFkAM|#k^he!&5oj6PAF8s--14NQXu{U{n>ZbVDf*&Q;$a~@cY*#v7R6MqFqPE z11GUS@9a#RPUg>in7Cz@PY3_l4fD^i`dC_HL7VrU!j zJMz!m#})^9Q6kPg--$Y_@N8@4hmN`&w}279ux`h?A>B&cedCTD;PY3eX$NwCX!xhF z3vt{xuCUt_RTv|S_N1S%#a3fe;P|h)3H{X=v&Xx`kKjHgO`IC^vbVeC4ClJ!_;^0w z(n}i_&`ud0+dh=P$N0~8^7uTe^cy!PK@YAAs@BjBEFKt-_>)lqK;@lNBNDI2}b85@rDGXJykXm}~=e@t&qvj&h3%6EB~=m)M0Zcw5Qw7mD0 zSKs=r+2|jkR(~2>G_|TKJ>3fbA9h_R`Cp4dfbof)+Das}SP$alR2;xKaFNFf55|9o zyyvlk{(KI{2onO37{i0u*dfpDZ zUT~)W13&l0ANmt#_kMZ>*RvqldmrbO$r%E!6RY0VRzb??kS5qkIq=JeEdjLu#sPq}=l>b)RfAwDV+i3SMIP>J=^#A;(%4N*wrKXone--xH zoRGDN^!FpeZ%W(`P$PvDQJyLk51>vQb!-D42fsk?y{>W8!5oW!Tti$|oG_<%LBHA7 zt;+;|i_yRC_auFEoHbW*o%(q6@uoiPe!a_u>%SHIu^j7u*m+VE;%*H)Lif_|o_g{9 zFooI6Tr1s;uL({okvHfzxV|{ahxZBJ9o|4YdtJ(U=wrL#JovU3Mcs2ftIPP((*>^e)_aZ5`}0>^m%-xDRoh!b4v+zRS4YQ&C>b3!4W%?Hz)# zaPDJ2?cj4gKH~6jj{O4;L*93pMtu4EubeOOQ)9nho8gE2jsnuHN|lv`Jb<}MqP}Z0 zd{dU2N;x?F=Up?oZbjY?LB63L^rIX3#6LOJSHpVG-d}aSb-=&oh%4g3uZlMJkcwBa z-u||fO4|F+Rb04<{XnKr=YngX1F`GWuQ$uk4@MPiYa#wh<@aYu54Zk#wd#_oe;wn$ zlm~S`%jE9apF9~>R|mVVI4w9VD9EAzW2{>D>`$Kz-qq5=dSI1Gh5k;E`$cbF=O|Y` z@0Fv=F<32$A*Fauxl5p*gKmogm+^PZ-|%Ar*BN1Xz@@PPlw|^t^(KdiPcAYNk=0RW@w0GPfywRtj8B* z9xD1-pJM+S?{~$oJ&x--;qgL8d?(lU;6l>d!B-tl9G>6J`IgMu-}g7oRe|a zf9w}fSj0HBBDxIww(O$!kccqiTOeJ)exa!Hsxs?r%I}u%&MfEg=(A5{bNp$psEx+h z)^y~YgFbyH#1rS5VYX^M@9gSO)B~aqL|gOcw0~rc+LQcUa3d5BJ7>+j8v32e0dnv; z{C<6_n)6~wE_dLsmCNk#^BWs)pszug?w{gUvxxuXnO>RP_jk3T1%3effZW~xZ*qR) zpYZ$5;&QDt6nP-AN?sQ>q7L<+`GR|*xO(HdYQ}w$_lvxC?aKD;hWdI}R~zEIqptmY z9PyvTsIjB=d}a#Oo$YG-vNPk8C$HZTgw71agEy%{X#cqfKZZDdc=iYVSM<#hU(J>q zl?CLVe$6I_J#anwcgO?yPhM_r-Jpv+$%=YtyJ7K&rzR7(hVK@vWB$b%l`r(8A;+~` zj~BvSVtC!(b6fSacij8dbm8*`d7umI$~MEGk@3{i24#W;aYfX}xwyEJ&SVf2ZH69$ zDx?5%gZrv{2hzUu)o31YeD0Vp^fvT=AEAQlZL6tR#rR@u>!bq?|Fx?N@x~lo{^7Yd zSob`7^ymQ!)NMBReo;?+bJ{$HGmkqUB{PL%=(_3aiSw5JBOLtxUVo>#RC>qhpT5j!Kx&-P5yu>VJzT3^MupsTASH6R`YbvrdKbi!0E z>hdRI-%k({zgEQat?Bx*5YZ$1cDz60{v|W`!^59OIpPIBj&l`=Z_1Sh13F!{JlP19q zfc-e50QLv=@u{{%aXvLBeKzgB!%zR}$vA~YwPhIfR%1Vvfc4fTDy{G*i>3~EXtZM= zP~(slsH;#H{wfIjxgW?+vBHHoHympCAQy6Ak9`dCmpR6)9UP7D` z_k9{An~ldSVwB@K>Ye8djmGB>cU@RY`4DPD-6-Tix+Tq_moAU>zRurcmUYZ80sR^) zr>jT@zyCA(2IaohW9wtUU(6cabe;NOqq|8-xxe}6$nGfE`-OKd{+0ILgRi+j&L1|7 zbxnJec3^%~x~U9)Vadwc-m;C6W{)s0H`e`Jy?Htx^`GUmw}KNtjXkb8K0~GZ^huux zuZRTTD;qH1*9QFj)p1V2iSF5&>DmIu|23NGVdN9{u&6zgab3wjPA?@rC|4ZJD;1wd z9M&!o?*jv!`Wyv*ng`?K$afZPCH#BT!}X2pPq`SdazZBcKf+&*zF!+#-ycVOe4ZY$ zpZZ#pSv;P&9URavmZQ=oSwnh=cKZDo<@^COXeZqa7#`!W@6wOOAYbfLILOHhb97j_ z){cIAcEjUdf{bHB%)S`j$3NqRRlLvQj;kXmM_l3yVja)x>)XnF)+2roJVHLUN~xQG zTcNz*scUM?!@s}2-rF2)9)^BJJbu>T(K-cm@LN|4_F?-J8oh_0o&o#Rkr&~9fBm5z zXB;;T#f(p4zy5vu)06`jE_ldtbYEnwYYG!eO|RE0Ui z6#Rfv(SH?ip`9D}+2>r}s+bzu{{~mL2P=sG$^-r@DF@cY$H$WoYOD=k62C8zAfp@@ zAsl|1IPH7uw`S^Z?`OtFbz^-p{nV(ZY%_$~YMUvCpBT}R^Bw{QHebHoAkE2|m*7i1cZ1Aq0g$12Pn3T(=zY3`(i!%`*~)65w+qi*5hUk46>C%Z#CO)KTbLNSVYuHuJ1toV&=ER zs@4Ydf638_8QHh#&uXe4lDe_qPf*z|Ge01N@BNMVwhFIorktplSEJ>aiGo=A!`+Xb zp2a$_ZC=6ttQW$o+0P%c3XKW<#Up7Pt6h0e}Jh<{Um9L5+`*wHFi z5_i?Snt2M)!^`j7YT@;xx;(<8;9ty_o!`uQ0!3LN_WO4kV$a9u>EEeN{GcTrbcuP- zlmAN_U$nHr9`uy2T}u30_HM9o-`{D|V{+Pim7Volj&0p;+E{nmu@5NoRB&I?fvn(q zUL@@OQ5VCM%mYqau2wHV|DVPV*S^GGGb38KsQu*0J=MF$VjozBzvkO@Hp3Sg`t)%H zjQ>cVdAaAn|Np}4sX9mfSAWs5|3@a*=W$*jAJVrJbyQ<&pNc94zsJP+!k?X_%k8xX zQjV>h=mNf(Z0J?#x$j3jzU!kK(9hx-t=^sZoO;?bn)qCcGNaBKeWR|Uem(omAD0 zxpRs8kk3DkrC(^h**gpVhC#VK(yJTsi-*R)-@Nr~GMM=1oc`$wMsdkeGwxq1 z*4RU!pGpm%O*9H^7~S)@U-a{gCmw$sb&BZIl$>;&I36*1DLGGGa<}hSj7w~E?pC$A z`}*?h#J?Jfns^q-ROlDQz8{Jhj!rJZB;vaieNY)Uz_wyf>W8IgLjtLuqce6IKB z?g!nM7)%}k^m7ewu3y?21)O(&9}pQ`enh-8`ZLsnUN$^)VZlS}`+M#3`|R%}8q->r zG45Bt-@X<5KbqC37pgT~ z?P^9GXuHA3HEk;KkGYX_oPPf`FZ%z8>nFJgl0izFzchUj<$t<5HJSDQ>!)YVq22ex zqU)!yFIYGB=-3hD|3Q2Iah7(V$t7SkahHeo-P49V)%>PQo!#Ke$cXw#aHCm5Jkb&7 zemP|^`E^l(gt%?EE-)-;GxfewXuUx?&3>(41NTImPAaZH2y*e=uc{ZAeB zf&ACTpx-Ovi1yJ<-IV_Wgogy~CrzI#S=jII#t*i$lmmg08HHt_gVSHFb@YABKDeWa zeV#T{Yb~pRyUkY9NIT%Eg~K*F?7oZLpOnErtf@CR{QlJ3&!5G4lV1Prw0h`)B^p5) zoR~1xCB`L&{y*A4BM)3^NEarx+F%dI#Kh=n7n)3NUX1^(2v~`IA>psI9`@W%ydx&` z+0OBa^Ra=XgJp+?lyF`+d_s5$Mw!Z1?U3W14+I_x$aX}1`K0< z^kjx!Mmh-y+I5Hi5yAo+SSOn@>ooeo!hZ~nM0^qcf+n+?pK}ZP+v^-Pe*R8f;CpFv zqm}%BK%syhup8p1CB^f5-75YvtOWLiR;9I(E++Ub^yTOjKWRAV>*|$0PyE+K{oZ1X)D~BP@pf(pv)$1wGKVIQnKs;S4c7M!xmAiCv z8T-6eNwvk~`_|kyJ|vw4I<0VCh25!fggJj1z&O(U-j^J9>49a>B~mUG7`%$3 z&6iC#pREtU?lH4bX+!-;ongbp&hx-q48B~ynfCszmR-@g8;=+kd>}=x!F-9M|LtLE`Hc6K)`^aJl|Fx&LocLS1JA`K zOs&y|Y+&9u!sg{>0}e356+VTs#9cn< z&3|wleEo-ItoP4vb%qwl{$LNKtQ2u|qj88s-d$ht;a9|ed|Vv-_EIr4?3X(7z2GSv zCO$26&*116w-|MuZHB(Fe)06<{82A# z7jsNSfgyp+3$C>oCE6Et!8P01_h+IfB;O|*))I@XN=jP2Li@2|I^Fwj3 zpx)20?9*w`^Jc@T;QFcsi1##Hyjem!&(>V|u`j~P7EQJ_0{a40&b#e2fOIRZ67Y5Zgcc$-8syhTL+`?BFQk z?_KzH_-Nv3#w+Hamyz%JVen$&7CGjKxeWYkZtCi!e23T^NqjX)u6?OD9(6KxU@X^c zP^Z3!`Jwhhix@vDP$#H?Z=v_4J8wke{#UmzJ4${32KsN%9;iY9j&fg6Zh+r|xTh?! znfCvfhpWB0&#O{p4ao)G*$*H6XD;%5p)~=SwD&E`_F9?ued@yt7nt|?Yh72pm-*P% zKrQ=1A2BsAxd8cb*>rTo!Wmwu`>Kny2#EV4|2tK^8unm!@7?&1KN{u{f7F4x*+iQu ztD<5cyeWewUbDsn`GKe>f+Jb~W62no2>#E${`HJp(gVtq5jXeD9{r{1Inu#<;vwwM z2-msUFV+$Fem4>#(Y;K3d(*j!E{wK%Q=J2M->>3`w>~CeDCfQh2DMWTL<`Q&v=g-B zr5eir8TkdUv#}rENwt=BH5uvW(H{}{c{dNlMSKbkWkM|VJj~El#4)jGtwfyD!&J7r z$F(YsHEU`fV!YSh+}uUI;N%dQC94dVT4tkT>h^l`l2yBz&Jy9^&*c-DOi#?bw1v9I)q zL3^#cC*?4w-0 zt9Bp#p_7esVK<__PgQ%n3-Y6~LW4T9Zi6%WmeOv>nA-t)pJTYw*m>3tx_iVDsdU77 zE4MoKhm;wu7UCX*h#~8UoSl!};oMW<&75x8=U51t> z$q@&dwKR7w>`+k{6Yj)#&aHQPkJF#~Cbg%7bm6?h33mOOjgmB1q8zw0X!#k+hgJpZ zUhsRy@A7|(pIiRYuFGApeynNQ6w=ql1bI5;%+AdlAkU-CTen!CWza9-?6?hTeE*mQ z`LH*D|8F6e=obj-?TGv0JplRv0`N9yPus1O2Muj*>l+{kX6}|AfZi7k^3qQc=P_J} zv=lMUyD~&bB%Smb-Tq_0x`^^~`Ad5nwk9I}=WZna@VA^keX`h)oSK}>eE_Ld+z)O` zD=3JGnWXzPwmN8MHR}LP6Z`GwIQiM&L8OOA-%vR0zAqkK=+OU1PF)&D`#=`ZN6-9V zB3{@;fB*7lCA&(o-o7rwH+YBqz?WixS6T9uVdU#!3 zQbs%FOZ>>BPx!s(@E!)rC1c^%D9#JUxp>rrF5fn8==Le>%=xBYkkuc$OoBHeUI0r8ZbJT}a zu7w`XfxLBfvSYnhIrWJHe~SJosRGwORyI)CjrE__Y_-!4Skk@eHQLiHbrBJ3$|vcT z=4Q0gzA83(6mwtx($0?aygqbypKZjo;(=ka?T`m^G#ca;+n^2*KgN9@v#XF-z&?JX z%5mMur2ek>J_F)7i^=cWEty%+69%NOr8fAVH#&OK)#XJ~ojp9SbioK{A$(a z<2@kWh1I*yf@{$iEJo=>`R*=R21J2VgOb;0lFwaY1sC%DndMJ75qDo~Y<&;!iOR$} za2^vIlg#UUW1QM~p9j)~1dcDH3#q*Sq}*)Ojk12+-JN*vcq90#8vfz>S<*1joyp@% zzm=2&7mhYavxeoL`zt{DVgA z+(rBUVDIX&%ma7_HvjC12V|{JqWph!uZN=_$kC=>{>D0*W_!~`jz4uZcfu|gXU2bv z_lL1>*cz-i;(AlZ#nVrV^IbBHI4a^NIO6gBN4^+O{DbgE91gWyf0O)QS#2ApfF3~q z?$eCpzkR9kSL%`RF0VN1Je<83e0T(Uz9POR%Ym~@F`Rl|npZiGbn(i{iFu@(R4IQN z`~Pgo3@EenIh-b;?(-u2+>Q=)xh)Oq&%-XN&FlRAVTb34L);>qsmCR&buMwYs4R%* zAr36W3Y6bYD+L+kM7c(jh4%pA4#lB1?qgQOVIMQ-LFgC_`Jpa!j&|<3JC2A3?uD)U zF1@UPy{FHZD{?>S)r(EJIfeHpbHeBNnmc-E{Ph^w|4 zrk(lRoqQWu7y>(wbux|T`MCprNsfBr%9?pv`hzh}cm033v2$>}7+D)?B<>IS`{TWE zr3OVnJoXX69*9vaX5M14@sOuSc5XSgy@MZtkKBX&URZrl?#btvE7eG}^YA9=9JTqq zjc7}oNqk$b47vl{&B`4fC7c(?Wjc;ZebHBU;|JA2yibSakVB7ERAiu!Y?mQ-Y31H7 zLv*=ING0%AnEM@k2YCkMlLrm12ECUT+X9Bs-uxL1KD(M@Mkt(BbYjm5P4iCz@$a zq=R+->mo2tJ$;^i)`Js+H(QXe@XR*W?}Q$QXHYt9P#f@;g`Pv*1or2)wx8v`nfgHV z@5cVBZfpMQ)TdW{R_{@p!*w_F&o`3a?ALA=P@gaQ%dLIHJ0fD|F0P|yy3JCCK7I1Y z$JehxJmjC@auw}^S*L$LLHvD>^+!ArdAzNb5bh6AuCXFNi9SMjA9ojUw(V%r67M+0 za5>}2iT&hGlt;5`#$*3TovFxJ6qw8RzhNKLnvGM;*MGPH`xAJ#JfY-xY()DEho6_6 ztl@n0xEsqbmM3iRTNed6pO}$8kLS@wVTnWj$7}rG!(8+2Ovrto!W)+wf1>{yp^{P{ z-wPkVbxERM89zAAkGMbISB5^GK83e;b>G3;Cdz}*ppbTNNQ4LMPjsj?&ibCXo955j z#j!SW&j<7i*BNK8r9bd~Rl8*Y@&M^yn-fRWT{gWr>lgnk=<|46d^y=+4|r79FyFT_ zcp3HsA2!VVrM)W`_1{4&&*a_3U*k{ympOa5*-Z0vCPY$b|HY)oIP$~(ef<&ln~+!+ z>LJ7KzKm)K{kx#|AHDixf7XLzJ4h9F`Jn#&7W#p78CKRvRd(=wYKAn1{@Smh#bG|^ zubGc{xR1Fw?eg_IRciF{FkM{K>Qm^MeZFNK@^d+&(yJQ%U$8$Ta-kF%@)BR`wkHPapH{cl^HNIB&yr#D`H|H%SRP z>@u918Gj3LV8h(G;Tvf8PfVNj1oJiwt?}WF{rp;J}7bV4)_VRraB*) zk#PWZ{^e@={a16ZU1J@XYeYj8^*_`<@JHWQl?;6#Y=*eFIMjd8{)@prpig3VJsajj z+-=3~?$q~B4E~^l_!qkk2f!hTDc@Q5982tnvcbqMRrUD1x;buJc<}2)jK;1bKVVuFISrZzCTkX=Xa|fABx%y+=KtqDf+W z*uG=gG};3y$>@j|@7=3{-vWE_MrtZQx5Pg-mU1h!+9r{1VwT3p`MVpfBR2!r!cC8> z@O?h!s9~e~arANXyvngrv2aZ^#_Q7&V z+!wcZvj0=Ic=39Z9QhyJtv!d7%SGSKH8s9U9o8ou^T6R2NE5 zNzFWebU*sFpx?*&+9o^ggM@Ot-wAY-l9@^T3ky6C>49(IAmyP$v;#d43x|pKhB>3> za9lfa73zw>2j|tW6A@Rko?pb{cJIk!IDY@4+f?`?=5LSYb$58L*>bj?n$JOmudk&kfYkm@0Gs7ytW`|B)ArNl$lw<&)U@W}6r7yRf?3xA8tI-8R*QYs}xO&fht8 z6zloXoomM_2Lxq7a2t+~-IRBIA@sE%_2T_Ect6Z(zW>H9_DHuemWr+W@m?mZJKEFd zmjKVTS@X71?_ZqVjeT`?QQsA|m;0Y=lJpSIOKWXbyNLJpSuEJ6hyJqhameG8h+nR1 zegtnHG^p1kCD9-FSn*w}BmOI?KIi!jO@Y=n=#Ax_dJD$v->Rh|%7v7$Dkb*&8>(cX z*k9rCioSMvry9@e=H_Js-)?ksb9eCV3g;Ln&_Q{@2*e{G_YXan5l;TrEE!eK`5V2j z{f@c$;2BSczpv3asfqss1B3b?9$=37DkPn8fnPhF;pd`ms4^{$_zQ=leMldf@za?X zFz+4^2)zP3vFd$1hfiVq`36spTa<@8cz*V}`Nmv~=f055L!Gx_!P!a`$Ns-OdOXs+ z-SmYlV+{9yZ`c+Yi2mLNXYc%%CgZ?ER zj0ZNpRMo)u!phu3RrLFsF4~()A&1YRFCgWw$r!km`?u|O#9uLXVxKqn4{RAWJ!>-b za|-s267NdKdl2p7ucyC0L%x3L`iI=cp4(v9_{Q!Y-zOc1wAHE0ge>2J5X&1yC!27_UKLRC7BIzM|M5{CA<;h9@ z4m-d_<}#7j?{D6}2mEd-&4;~&_}|;_d;`0}+x$T0^ib-3+Zg@3l;@rqRinM}-nWOt zB3tPXymVpg>IK;EAuWpZVjnok`0`Bh{f!e*cJ_mkI8gp1^+#TwWTbuPGF9!!18l{6 z3ibZn|TCmCHCmKS@{S@c;OJ z-;UYmtBAisP{v>^AK0pJA)Yp;bQjWr)*=~+yUWPrX_N)dK$>*>!(*f#6AHP6D#9*+&yN)B-$C8>FZKB;xP~pM!Wzoj-ehF ziB&%4Ddk4}nh@e1Tx83l+~1yIJV*Q+P>{g-Z@WsBT?X8n=G($^A@951PZg(N->FA)}=OO=7kyYV` z_d#Z~rz9t{{wqDVNTB`aTvE50V``PVZIbBmioLmWBmMn-)xql>alZ{I=o_6Q4$MqJ zpAgS%kG`dzjQ^p`(_wcH49!ZR-kn>N1w8pax!?%$>-6>09eMp=*S?N=Uw^sFblQV= z-zQgR7#+T$m$-H{zVXUYj7$8J9QmWcLC%gm@Svm#jyNyMIpZidW-j>}^*?rlfBaw# z>8NpYFZPkvi7$0sy4jBS(emEzJ9W?_@eg2MHRcM>=LGsAZXRxKWze(IY-0n~zq~JA z;1vnJ^j|j}cHR{8sUI$ts>{pDlVcL)?}1MKdHVdQ?^}QW>P3g0fAII)od5l|1`2{Eb7K6T)+g@N;s4D4KrjDUkN?Z*Veqj((d*(Pr~Wkm z|3Ck)x%YdO5Q2e)kJbKh-mkb{@gL_~jc+I7)olJkoUkZ!j38uwQXO>fyg+$*80+aP zj6*sidVi=OTpKlN)V=e(zvL_3m#6=k|7Sh^C+Q&ogw`9^`{5tyt!QFl#vkW}#_ebC z&8g1^9XXkGZw{YKt`M9;?#=%n^!<_la{kZq?Z3;5Kg$>2y#IRrp#O5e`~2~*@BbhB zJ_moU$=iJI`^bOb@4|a?o?m=q@!-4je!@P)nl*Wv)O+W-zE?J0{y|uQYJwOcdi;w@ z!GGPl;{xs@6PyJ@fKt#*OG(B#HU5j91Np$b<=yix!n>h7KP~zG{b0mtd^K_ZncrOj z_JaS4v}F2FZF>HhVcC&efK*?vAY z@=x~1|G@Y8JDv~QIi4E`{?qK_TqcZgQH~41d`b1!cb{J-oE?DY(=16IE{pM31Pjlt z1ph9-aAfD*^Fx+ic!lRRtI-o!cuh96ofIt z(L)Q?@%)SsSG-gEAt6%u>t3G!H~$kKDYAIZ-TU)jtVlmWb#IRIa$!r6@!tHdJUn&b z-kkWIny`4ny}9G_zWV#uJLKIX-)*{gp5GT(*m&Q*x%+)G%OB43`-<+(|MPvoP#xL;PYCE-UWMdA{W!S`q&1kMl?WFejc9zI)_8zjK~_a`62*?kBjok-G2x z@%$5i;P?OCe8RCm#|I|-@Na(S_0XsH@6UPMsgd{R4*pN}Px|Bcjr>1+pYFfN6Qrr` z@;7e6`%gG_Pk-N=e{i4v$q!FJzASc91`7s35%-um z3ZV+Be_!8!d^!&LebluFE>G!A?Y-06>s9h@X!;p1%k|#hd-)f+?x#?jOjz1|qxbgr zADlSU&t4GFq<`tQ<0Srh%)T#FHtV=FHo67f)a&=_KFk=H{FL)Mql9{)Md;S7{ZJ{) zN}cih-QOQ1#Eqf6(9F2E9^}^n#dBBvao$J?Z83u?G>G|JNU`AFLa6|9YNZeEHwhK6tPvmpr~LGL{s|MDiL*1tOEie z6vHBP#%kN!$Wkew30qx|(rZg~=9Xzt8L23tRj}8p0j;A}DN>C%6$oOj)}^UJCQP>T zf8Q?zm%IFb&pqj5d2`PBzO%gh`<@f|Q}X?3et`7&`1tUBVjtHxCD5Ov{-fGg;)7EW z*8ykRvc=#Z7#NrY5;(sMzSVij8#!d|9C5^k{GVnsMA6`Y8*=7wyT5nPXBGiHsmnl~ z$~N@e-?;eQnoJ^hcu_Gq-(a%kAJx?YtY;dv(<8T=?os+~&2{m{4a1rO#}JZmXJv7z zB&bCDEA2EDF6k|^R~GM<2(5yxcBKDKs=HUt@zHaYirxcLDv6C)8;c3iSX#_(`VV>g zx)`q8k4%Z*8`x5LKknTcnJ_JFYn!XyMzbUlP3uxpHOLM0q?3tg$`qz3lagJtmkTOf z{2!&<<8xQwuwJUF*8)ormZ`}kpjP-x(nmgJbv_~?r=#l>i z+e>x@u6DO~!4lv99-duxIvVy@E{}qGpVD5(iE5aiT)tI{?PHdNRG|GMmp8nKFd<9f z>NvLj6ZTZ@k=#gEJxU)!4p|<-?D(f`9pw)k0`g;J(qeaetlzcuFQfE<_z(Cs%5R>A z8MwUP7w#K&_s925>d2kshS~Q`UAMyxV|`>%X+jO!$#=0qq??y zUd_L)YX}|4P|+z=9rCtD*rQ0>MAbBkF0h*p6l;WPwc4AQ#n!9Nw1H~S{|!Oh9%=&a z0H1^=t+=c}LHDRtw2rEDv2Qa(7wUQ6r9U{S=iBXKxl@~A{DBU`JM9ro3j-$1@siRw zs_!-CQQszxk4kxk-LG+^bLOlnoUcMPx_}(61C>as7`Y_Dlmgoy=0eUm%AQe z5Z_P0{|$eb=x#qk52G;qzO1S1-1WGg6JxrLJPt>Kg7gGj^w@X+zq^if<+~*zqrY(!VTu43@zD^_+3sbN5GjeCwA-`ZSIo_{)>)vGkEYYvlRm?*2HR zm(-?F{6ILe_|hoMj<@{Ldj4PNAL50h^pE{xdgnd~_dMxO*zlOXfc%Z4<(G_%SG*eN zeM4_Ai~odKblbavL3|Bkib@2P(I$%YVBSbIL_-D|K?d% z!br(Y%BtiSwyequNb8mtfG+OTcT#$GRdj$sUTH`>FisMrGTw`QyG~dwSBR*xIx&iL z7X9)TA#GIAznA9GaC)XAp(#tUv0m^CJ{!oDcGceq=Bd)>^V+5lo8X&>raGZP$|XSi zkd{tqZmY-gjQw}WUSoxEGrTXc_2*c#IUi!Vc4`5GBD5+?vT46uMaw9kuA-5Zd38d+ zl=Frl>R~UiTAi6Brxnh>C({hzI67)PbRsJtMVZ{~TAu>N-;uuL^8S(a0&L-s32$yi z`6DKm!X3{n$Mvf5CefP>vxb&B_XGbj=)0@0n)J4bw$#q*n&^PWSq23RU1#eYy#FrH zb67!H=&xJs7y9hg=H}WP!Kv9npO_-HHS*1&zjf8Ni&O4PpVL`7?X!M*?aqbbz<^!k zau|)Je0!{Q{4d#=q(60c=3#C;w<4AitVxuS#I(}mbj!6&P)!6XNgUL_89hc^t9_?SF!CKAmsL@5jrK++kg?~o86sl3^Qm!@F9;>sg<_eIDCLG;r`WQaI-HexnL=yJ z*59bnbRzUi!MC@wGl_2Ciu5~L0VqwW2=s5R83?U|1?l~AUWmrrB6m>Jc^#J?uPoLI zH6iI-3QZ)o7{`U;c5yceQg6CC>4%Q*E5_X~Zx=^Br`gz<(G+KZXaxE;(~nOC1`z6SbWpxkWd7Y?Leq7zu*J|# zX)jIfoUcx3T^K-g`5UN!zDo7B=XbP%y^wiO9`7WU8P{9REo`^62*eXF>wzhGz5(*|h)#1`N5kkm%G;b+BD}k4I=%_K%;zZdQ3P><{5-mR{!6aKbH zAiZYRP~wQOp}iF0dAe!S*B%n~FAH{~yf;wKyw#K<+_AjtsX{Emz2q~Bv$Vtj) z`A>gF2m!nzWGZJ*Fz~Akc|rI%5+RX@S%2)g7TbJ@iV-tB0jDe&?Ax?=iuq(ZkrBq@ zCxDZcudi_9C*t>++{jUT2j#^K;TDh*u7dTZ2a`wX1z~+x)cTQX*1q`M_N0FNU*Sje zjrjYIH`a{OBf@=u%N>>P2>-b6{~aEYZ@3sEg_UOf0C+-^xz|d;xg{TmfOTUz)#!0JXQYC{cgRFa!;V zt!I?0pxX0oIQ21*Uh~>FDw9P|MTl?z3_YdVv-B10!TQfmD&a;<2U!T94CC)!aFHg` zqvH=JJl>dBBGl4#N~HJMiwN1AC=-TJxg6=sVtS}PP<~xZTIBgkxRL6pomc?hh3VSR z7A@EZl|{Lqe;#KA8%+BB$qNb8a`e;a!m_JQ#VrW{4W-5&A3W z?~(wABaFm7&<(*WTfiO=cI(M-*!gOk$)UGY*JK5BJBiUEa&E*i+$(PvZd7Zz;#(vf zuB##!iWw4QP$+4&v)ZaQXGAo$i`$~tuO+r{8c((0uaFU`z}pl1Vo7MtlBiOW71hK$ zJY-J;Tc4rm_G*$%BB5f_u?yug(yd6=IE+Uf6Y9Ley(?rygCrfuSGOnA77gI`3#<_Oi0^0TZ5fr< z*#6Id`fH54o`wI`Hwt5a&|fFH>#_fvNB73M;S#|24ZR!YyWl|LiYLj3U9c}{A5Tbr zn&PUvJ@${?@kn3!@8PLmxZ5NBfq$>d4P*OnLY9LT>nb?jgN2Xk|64e>ceFpwM?L9D z|7Y>!r{Ks(_9C{=0|qeiI+lJPr+=h(za@|2llXpEuNNL~|G0l1>;FeMdiK~w@WM2? zbS?QdV*ebz1oT0$-=BRqqY9~6!`P6%)8&RB#(qmr1uFo%2nj7yC2wS@osjxy$cF?4 z*!_N7uf1C*WRaC5kx69g5ua*W9P?Lk$C1S7rHj!1PgWfN8rV(VT`E7F&?F;rGgog8 zbHq{lOijcQu#Jj!ioSWwfcg>K6v|zjM>!C>zcnls|yyfxH+Te4w}B z$7uZ}yHxVmzkYVqM!PAvAB{gpM@!(i^R~)ZzJu!wr;XrW_%6uYVu=HffDZkWCxe&# z)Hwel9Rz;m)PLM63D|o5#&1abPT+CXFdhRa2=_ssr#kh%uKL9h+|2&VU~iagoetLC zSYS{j>*v}#;~gGaq~C&4@15aJ?x__F+o{o^42-;kzk51&pHJk=C7f9jmT-*}g67Ve%LlKykFOqiOz z;%Ds378bvHM(LNuw}V}`wBu=|%C!H>g|rMmztpzI;`+*aTx@)iL=UtMslFjv=t zJd@7ofuPWbRA;1JwUPkCZv*qcIht?h#BU-x@b7468dA2M_c!ZvY_BCWwF$#^rriB? zRb}6cb-(gLtLlXPvvy`|@H_Io@MNQ;685i<`&6n6{LR%w~hMi@Ok_a%?x)v3zu#Qbi=sNw&R0& z?7-pgI+$N=OxgzDkp?*50(o~n2dVwXZ)YNYC~88pFL&ytejJ8OTMjrftVrXIw8!U} zY%7LFK$bssP5Q?K77iz3hK=CMG_vBnps7=$pDzb`-&*wEJN%IjT*#EjOHvyMTFo@dO98ae>+}NP&wVZT3#w;Z0R2V>bSsnt zro;L>=wC=^+8vydzUm*)9QzxaYj;aLxow$3E{7z|{o0BC#$-9=en}bH08MnY*Twk& zgYB~kIyjm^pI>!~C$gwzRCubIjX#|7_E!=ce=zFsJ-D+YQy3I^xUECr0g2`^JNh?O z3h*b0Y%GYcG4K7&h0n89c7`BDlN7Q~LvN|6F`-pPT0Bo`uhIRKSR;qJ z>Lmdpi=lh@1kYqtywmrINSm6$S0E zn!})hq5L@R9Pp--V27yQ-c_F^NzOSxeee%mI=R~G*T&*Z;nw;2|14Nu`&lS;(n^$FR&sRdd*GoSvE9RUjp7-nd`}fKv0m`yx{uAeyN^Hwx^MKwIDQ!46 zEJ&Y{UFBIW$OS_<_|5+fmi%Sv6YZbwKlADOEnD5>$*w2(Tf5xPAE9?QIkEOsWJm5O zJtBQZt{5DR|1Jc$Hs;!UBmJ3^pdZQe6@Ek`ZYULuBjvzpfZQ{RN8~vJ65SITy9clu z_`~J2?u?QC?EELxjoLe^G6@6x6Mm7CA+vd7`J4f0zcZ-(vdSYKP-+f*JurS8U+5y| z!?LA+O2qap%i=Fs=QWX_cs}5hXJ*RIta=k!XS2h#l|x-g>f~R zDZl|}r+th@Aoi{RM%#8-0lvmCuqo(bn19GycS5MgDK%r~f9VVOtU4vw`DGmGD zR@XA*oM7|Y!>{706H=Ba)(9%Q5QwQ z20|KELA_QB@_j1VtRM-<&*kZw7VOUjndpk&C^EtJ3&-yeKkEH}Kf~Lmka!OA1G!?; zdf%9Zu}m5{g8OyrZbuNNU(X>C?EZ2&BG_MXeLEdAVg8l8g>!01@5sOv{kZjwc?&b0 z^20QT<~zuZd&QtXo4lmzo9b}NrOJdRjqrpby`OqJGAza+)?V6_Sr#gz#LhL(zlipd z*=*>6XR)PJlF<5TN~VTbW@=4b`a(`?rcerBbPiLe6JjD=^}B;VQ=Rn8umS^ta;U^Ls75Yd*r`PJ4g4iKp#GDTTr=$f?d>$hc*@PW7uP$fvQypQ zyfv$;BtWDa@_mJv#pO>Mt%VIEsn~6eBQu^1Ldx#yPm%*cE?nfQNWj( zK%f5V+BNQa3H)))l6%ArCBpb)2KhI3YMefuaAU!L z=tVXFeQcBBJ5c{6o8(i`Rhg(EW>TeL{SQWI z#o7!aKo17lp9lIZ$h(rH+3{1tbA7WV45^#gm!n!t&dTfqfDf6%w3Z;3z3ynV_%@YD zLg0s}5m(S-_)+cZ0Qhwu2f|pqt1w~?zW4d#)67>4(L3uV%=95N4bV+i3+{Mf>eZnA5PRbBFd0$0| zduGA>m8y1uP0%dY{@V4*#rhIq&c8g@@A>uD@&2$5nZn%GlprpN1!e#oVDq*-8QNb5 z5hCQ9V<9X)%3UBS9E^hB0e>$;LZLw+ckcyK3cOe;BPrmp zVMI$eUNeTD2?c*kzLVQRnu&_XbOu!d{Td94OhMplJ-A|BAW!AGvQw4?RD>E0$YWu) z>Q2}&XkXvLBIE!+gJ!pRDk0-VCJ~GWcV9_P!o{*1t?G|Y+z74&f^=nb4a4(p1b3%o zo-&=G^dOyOy9nCDZ>3(-u|1YO5*>WQ_3Y8laEdHrwAG+Ll?ozZJwf||7)@9G9!b#7 zWbiN1^Y&GisE=FsNLqL0tkn-eg!hm=e^!-7*w>Siqo-3-U9fqNXc@qH`3$M@}<*8VUTQjF?parxeD@w{|4@L*FR0~Ps2!$maaAba<|9# zz4<}iQ8$e3*L1z~iyKCIU$BA}xnb--xA#%LAlAP-biWwVNmv(Q35>6n*f+q}GSWr9 zMtuRo{q(5FwP zq|0UY2;;(P@y3w1GllhniklcKFgwj>&t(S&eDOuyzq@vu(#7*)65(gPw>}Q<{>!dp zH@qhCMsRv+AH)-(^w94v*0hPeP8Ag$ICGwg9jCxv$RxBeh*NbJ8#LLP!QL=5YMRiR z$fw2hBIv7yrDg@^%L!sVu|9te^dCQEiuyjMkDNVprz59zwJ<*6KT65r)5cB#pF}jl z`gy4oPGc$$mkad;aL~w)?PnK{p#Gx;dOm*vHF`p}1HBT1T)vd-O97ruHp6-4;do0ugQRh!nwa=h9akfRc!H|UtQ#;kn^Y9- z!?LYk9DE4R7CX4$k1Y{$JO$FQ>rooD*vPqGzFPR)C(3wSJqPGy7!Os+N=v-OlSmke zf?+77habYJ|$voYhXy{sw6q6Y%Pe z++~HJydAR{EU|f~f(?1M|6N^ZJVeLQG3y|o>p*D{Dl6{ux$6wkGIbQ2c;WE{xWI9q?l0{ zC3*=n`aXQ#OK~=!cUQspL-=BX8^-!u#gTC&L?-x>lR|C;g9W}ZF*Te66=EVo|Izz$ zgWp%2slWjV5rMs#n4xeBAjtLteWIr;GM=jT}Ci!AU@bM2Z$v#!+TF8~<$f58kWfn{BAd_e?=|o`#ch@3BUaY zuAkyRLWxgBFU--H1Mim~4AaZ#%Q!`dr?iVJHqUs`WHIhGO`$@xH=;gIS0O(`n#paQ zI3ewHa~Yip(|pzd(64>F0Tw;(8r#6bqPiE{w>Taq#*9&$e|WQYtR z{sjd|{f^Krx*~m3=jK%$AF1U%P%o@>fQ{F*iH{w9a1QdNMAVB;TnGA-dQ)*h^JGe(LgiK@+Q%E~;3W*57<3AGs0O4bcoa4Eo17BH==3`0x67&kzmaG>eC25FFY-y@UJ^#=^>T)tmi75LEa9>>i>_*(~jC^&&syeZ1_1aEi2W~t}%=kRuA2l8iMHjua zlj1$!0QvCTrK?4}bd*&ZCtGU)c5I`v|pSM47aISWFEYL%-b?}^P$KX6FATX$Fqx^uS|1ITPUG?xU z(DM-pu)1Mr4(E%Wr1!{zT@p$_~#+N$WFw(bd#-sSa)36N4tTyH!o5VbZ zNZ^8v0g#u=UQf-_n0^cz2MYUQkPlmb>z2<%f8keqoYR&A|CQHxwd-u#KtbzlSOxOS z8bSiib`v$)0G~9%mVstQ?`)tAI=Tt+?E+4Oc7QyMvu^+4OoDesySTsAnD+ez+^|l2 zLet_1xwIZJ*pCdLZ!xRw z!>lC?nGXnc#HWEXD_}5G!c(6RDX=P5%u#Zy(`AQI9HJiO%qeFdu zAXs;>440NIxvdSWzG(FH>NJA@b(nqvf0<<0)sz%>ePZiJwKCbtl^#~1#mhWq5cQQv z|4*;Db`RzK^yLKwnOXW~eK?-5!1&~3V@3w{w}HO}^{dSOf$J{nhg1a6kCNejCCqNN z*bPIN@9gOvS}U}Vu}vC|vLL?wJaqUN(4wB2^p3Yc|6X)%YY?oCj1$fi4~T*P*L=$Q z7nz>^=;s9^55Cry-HWDHySDUdv65)>8FOT$sqC%t`_sx z;kbBr9HYkbVI0&qf!q_Q(GDXTg7xAAJRH2<-kg@Gj;wxBw>hy+`2IVc;H}U*F4!!? zNdI*Q>sx?7#+meb`!kCe5_@*W%i>qzwhD06p+Dxd+0YI0h=g+_{4&@t6 zP$yl(ae*p^1cKls-~Em<7B7<}i`me+}g z6%M1pzSsI)j8Ys6{5tH}0p+&h#_fw^7RB5K`?{FQ^IzUwbiSZ+yF3K!rJWx4Q=a+6MomVSbR^TH)jk9!QV)Ns?M*6Il(owWH$OA zdLlPW9B1X)bHE4S+muOag1mWvzfmAx7K8i}YGf*9UDN~79f?|7A1x!xRwwkdQH$DH zXuKQ?`uoAVwh0*f2YEOV{Yze4jSQUuUs8(^>_s2ZyH#6hoY6z)oAffs8{wM@<-3s0 zXP6Q%OA2|rMCfghr|Iu^(9NA?U|$9X6zrGFzd3qm!fBBW`JTa;g2~m+hJ_WjA99c|PFJ|4^H&hjc^wp|h*B;+~$XSJjY= zrM|9i#`7D~BmH-J5HI2l{s7#6xc));nsvE3^`%9W%f@C|^4;P66umXnj6{Sf?_ZD2nj+`hG{ zD(qUES^ZFV@tNhB!e>79pTsu|*bSTfyAJqq*rhismKj!ae^@D3q>Ia+7 zJQ)vs8t#kff?Z;!qo7y=~OpTlD=Fz*i|xDEO6jFRxlO zg|`_;dSh4}Id?IK>%;imn9Y!Tg%$@VVdc0$88?sz^N}w6-0~t3Bou&JaynW@lDhZH z$)c}+y*dy5O){ZDl$9|ry6B+O@0xu{d#?J=|#le+%TZMR}LnAwT%l@W{Cr zitB`2ZL++>nPh)?c)!{64Q_zl+-(%vJ!}HoSSQAt%q>9z`n*mYr3wRoyNqO|V19m5 z-qE|gPSpS9`jC)&Ts5q}7wg|n#q)g{&=v<7&^KWIHPRs9XPxwUDo<>M_h~ZYb#0Rd zMb@I;*tauD&!*2B8_L@Zu{>mxT)LFrs(C3j9%bo~UJEZ94XTgp6+gSymSTz2za;_i`&Ztkc$19IG3LgBeGWg5&idmht+rLymP(*LsJgkjt-4vK z#rP)Dr^qfci>`~b-c=0o0Q%Gc?&Iek=-27#N+oF97Ld6Q(OwCXN^87eZ@kDDHXecW zU&oZd7O7Z!pljvI*NvC&?X@1T=%xX^eROf)R7QL{vjWaAp}z20k5Z`y-ts-MakhYb zN=ZpcP+U~B$svUDb1di^lRy7FEIuqgN){FVN5HopDCo>nJJhx{iF<-OPM_H~3wTEc zjE~i4LEziQSiLR3GlwC(XwmZJ8t^`dAts41{2ZvXQ)7&$k{|i_{_!9ERuGmJ_l^3t ze&}>`o$#ljW4o;BmJGA*vS|&RZ_CPV-)iF8g%)p1)HLAd3E2zJ!{s!bc&>(z^s;jO z`qezp2V5eU8{jEK^>(Cy{C+(C$LjY_&ofJVVBUt_A$6zsH<5N6eK#hlPtIkUwXU zOSyqE-W-rH2wPUCj#!{XjQmSsRzyNuCSH-mMSWIo;HVaEK3k9~UR)+v4)St$dQ^jb zQR@D{rE{u5e-68!s!&3P(xQDyM^GLrMzGe|7U@vlR7Z zVNu^p(?Qx}ss5<;=V%Ga`|-Nj0tns50X`R}8w_auK>eNjB>puC#Em~E{{b0U3xP^?%>_#T6xzvxL&FpRlLMkJbR&(v>?Bf8yr%t=!o#9*Acyp z{E|IBWLh#jj(sBfGv)bdm$fU%X(9u!AMnp}L15pTd5$WbC1XGEPlLI*=m_0SPtw5+ z=)d#cdTu=q9!p~DfP@G4o8#XQK(l{*Vvj_rOio?`msqW$-$8x55Xj%VGrSY@VIBFn zm8Gu~^>CA=!+Om85zs$eujbdOHENJYK>SR26%+(fyqC<2@nUek?RAvbexPvwj!Xvr3~pxNZ$SRactGjd@Im}q`TFax59tP~yQ-VjKS#@i zr`p@ky-Hq%6OPY=KbnAku2foi7M__u1o1b9B;@AiCTS8?iLylu(&yyQjm9`8P84E~UF=kEUkzJVd~ z11X7tdMP+48$2q#io7?>`Wf_-O>e*b>)ip%mxGBH{Z7Zq$X|AJy zekbslc2!-df59=?JPqvO&S$2L(|Bk^>&Ga<@O^8SE&Bs(CQJUS;op2V{{p^&!qR)z zqw}Mz{1*#h7OsNyzM-qN!wq9SpQD}e1iX-JbHhl)k&pTN7XnlsqDI^KTEra7I+9N^uImXYB3X(@t-{D=GpOZpkWi0J6(Sj1;67s{tZ$PG1q zF34p+IDY)(CGh_8LC4Dj>y>1xQj`N8X5KwcwG8u<*C(d-4C)?E9?rn?j3vVR?_}?8 zrkAY6mRFp!s`YyE-*o`BC5Vh^{Wy$I?=J-8OXGHP`3NDs{y zFQ%Y=i}LLmkRM>)CJ_d@LQXUKS9Zb$Wk_3Uk|C~#`KP9&^tiBr5X6UxY2ANx+_|y8 z&Gf@Co@cVY-*J2lw5K9d6w1$}l%M9XvC5zdTC<^y_B~2M3#vk@csbejpNyz?{0Gm7gc&3qJRrsF z`YV;`=?$6|)nVD5@SmXngpV&>GjU8@BljQ=`E7iBLSgfEO>w-ES&sbK)3fRz(SSCk zC8}(g56(9!ZSMBS{WDr_1P_Qi>svo<6Kcn3o>fIHhW4u$E<2~R>>uhLe0Ul6bHTh< zW~=+pH{VY9PKfe!{H}*t%Jhs4x?E>M4EPT&*soq3A%7Sz+z)jiu-v_$NY7iee3=_& z`N7g@OWiQif9|BBKf7TD=mDafF{X#J>q6YG70PX~pZ{h{` z6{}~r-hJx``0m=k-bZ{oaPW)9u%C3SNMDm!C;oK7f(5iwR~*(b#bnJ#%5Lkp7g(a(SSAHh92?=$MKUVM|bGs5(3jBGhAC^~z+0H+d1_ z!G$jUGATWkB#=eol|+>V>sQm_=NARJG2Xx-Fg~JG0)KFooOXDJVuND(<+d}-k9l_I zixo2R{IyhT#tEGjOn8WAX9aAY_MAR(iD|g=yzv71r(wFv!mF$Y{G009=m4ppbFEt2 z(+uft^!LDjdal{-f_9<w_sgeMUt@eX=%uKGV$gOW0_O0pk`VzE z(BJu!mUzdbzJ~fi%fmwtwFA3P;{6K~Cr+$&X$Lxj`aXzv(06z&Mx2E4E3YKy-zC?` zkMKeJG64!n>J&&zh+$g z*!XOyfAxh=cgobvH$Dd6lT!izszT>SHSdd$CF8m5cqCg-uPO9?W!8k({5PP#@ZWy_ zCyOPbe@62kWQEgUzXw;JI|x77>H`;Av-FHESWenj{?M*UGEO6QO-L({dH^V?kaUTDS@F#dZS_oiF5X%Y!)N>*=&pImJVK zuUsQ6(kQ`R@MrE^y9f6Jfqt6|w~3r;alAGp`YI0m<2CdB{b+B-92go&0DW^95{PJ@ zBXl^!qTjsgy7<|+jSdI>0qD1xBEAxir)SEcC04G5=h)F&0`aSQbXA(@30J;uk|M2_ z3XDv(D(Z(A(C2beu3jF|-#d9BWfI|}asP(dC06iAH`fLRv`B-3L{_2W8+b@4$otlP zuPksz(J@re$>!g*Wvb$Fz97GI2Vi~VwSJ)vYS)?LhC`A5Jlhv$i-3D#hP+EYDHILl z2)RsdaM6FXDlu^-D^Hq9TSYX`Kgbi1mEnF@FVHstzmu-CHk7QeZ|@w|+ZF>p{h~b@ za@VTA20U*C`dd?#JxT}gE*lWB=Nnl8r#hxTX75A?T+F&24DoZdo<3iW@$=lA;mZ~p zPx-b@*7A7^$(~T@t1z3H6u2DbSA)B+U#8=1CSP&BMSZ$zpHxa5c$<=782ob(4-1lx z0p5iEIhTH(oc!&{x;?Ub<`DYpUI~~#5p8=ld>SF1g8Bih4_i=Pm9Gxmb%&+?Yvf$^ z2>rVofP9MS&FeDrhWLa0hXTxh0`+~pyBhodW!4w5K-)mw;ovW4>Hi&fJ>qxg`kwpY ze1<3H5)R;Jz_{@<82Fkk*njmF-)UUf4Gw&R_2Nm%N zMJvHup9nm9$q(od&qHXvJAjr4@80^{o4b$^k z>wXjD5A6wlXZ`D7Ik2TV2J-v;{rxwLvA*gwfxtw4Z0~`FMp|Xe)BmJ4?+Gpuwq2cc z44ww3f2f}8bD%gr{-clZeh@Rf6Z3f@L7&e6>(rZh^)~t!K|Z&V>CDo@eWr?vc@P@8 z$s2E91qR;~ljL4`op7KqA>Os0xT=dJ9AK>v`PV%zinL?U-d(?X?J{DH2mUok;e4J@ z3i<*&TAeX{@w@?X!%6W1o_>+a+w9(kNIRSb<|4=xL z*kxL28jJSHZx>Tiz1C;Me=Utxqx}11*Z%6o=6IXfK_I^k{7<1lQXy#bsLxlx`hoe9 zECziHJ~FhgC)U)|pluKbJ~R=;w}Jd!^dG)Hc0~W%3ew-F&-WPU|1yyOp#PI-xzFtI z{A>xx3$G)g4+Itu+s50bEvqug`rMN|TsfcF%bCB&LOtBa7|sjlF5;Z=uK@dOV_HTQ z)?;DmW8c0m7lhOa=f^HZz5gWa_zyRX?ce+TdtW>Scer7sFVoP9L6{p@XN09!V9%^P zM2!UHrK7iJ1N@1{pSS}+uYX*z;*Y59aNr@xU(%B~I z=j~Y->2>XnsiXEe!oaR@8Y2blc}=;-4Pm{{mPh(O!mB^1yX~&W`R#iwe;*$-*|zD7 zyB^zz{M(cF6HI%|zku~qmd-j0tT3EJka3IP0fw66OL)VKvmGR4rm(9%Gu~xCnl`*T zry24qxAdp5_GD^bsV)c3+egjX+_B1ecByhv(G<+5d!|T{-mx_Iz!btP#{Jh-W|)WR z8Tu7ORJ-c6!e_lk;!h6aer!rIMeHSuYO`VaGKu7->@KLiVSvgjq!J#%!zUni-1!Vc;)&Of_(Rf+KDe-{56 z@WXpY_U=2qM^Xaz$hC=>-}Ws%N`d|(R==K>yvR`?U###5NB{D(PSX{PPws&=M}PFQ zUfy+diOyf`9|!T<61eYBsq{KCFJ8M?vmM_*^|Sxn$}#gEkTza3p1%fvR}J2ujPzd) z;{pFgGLZp(gcI$l*`U7|41Qsn>U$9LNQnV|$>n3k%7a`%e7xOGk)ITN>PddAZ~})l z#%^BKE>8GuIOW39YM&EH5lN`u+)1%IPKKxi-Nk2mE20T$Uwf*oWhObpQ+@A`_SvbR zorUoS`0+Y&dB!xbU#hxOvhj4@N&!hidq9!$R*P%BIq*NokK=2(?)8W15X)@i0yoUc zPq-k%4I{q8@ta+47~4;}-*f+QIP$^g58N=e-?10uE4~T}%FB)nbA}6Y@t^yb9^GGp z&wDV*aq02;2b16LdmQeXSTxBEh8GfaXgSOJWBrvPxzoQ z)?JVMAhPSp^E;#Q1RvLUbBEp?A`J9k>KcBAo^V|UXG{JKkd}7Phf5_!PYxHPV>RSs znm%r=h}N##v+e0I3GgDi&Oc+ zD2;dX3j;F$?C-stA(w>TOq&uLo0un*ifEp z7x=Zn%eK>4Q_LIl+QnYyvsC(2N;8~M=9t9mVx@iPGO>;C)9Yvk#0P}}L3M{4;dYM) z`Iw*94XarfURaug_9f&q9XbUM1PY)(N7sp~bYWrDj!iIwBzilW>r-D}f7+;_SK&62 zi&@bABZe72W!|JIsYLimlpB&|w?{O7snCjXiB=7oFwg!u$X$yZv* z@FC=_^F}VN5`QD3!HeO+|#o@)yIdK z!wc7QWf1X)wel?CC-~v)5AcqW5=a6`DdUEaK7PrI z8TEg|<4Di_OHOw^!k;-N*&c^Kf8zcyLLP^aejmR-%=P?zx$gd0|F685A~%fmI%CUGy+|NqVYM}GIXe!%jNjz{-_;P@}aT$(%by!g{Deaa8y`?n?Z*tN5( z7|4I+G;H}PruR0``@1!}C6imuy?>2D20n1?=Gyl0BG0muz`Gr4s|oDkih0}mB1;`T zh|QhW>e~8wEg>NjurU^lA2p;WH_<-zZ2fmG``IZE(bDCnh8M&ATVmhV3T@h?NXIdH zmEJXd2lO91@KN}T6;nb2V=biH6XSnL3tGNyx-%th5f|$c53Dm~mNlY>7{s3`O@#I?n# zGQ`I5c;2(GPnk(4QV)lR1@w8DaCvTS5o^Br5+2&048w@I4~Qk)afzb*^=~=Y2;8ni zKU8fw9S!ybsuSp?2 zSYRT?Xr#yCf|MU$czOJcrOy}5KzjJ#?|+EZZdPqxxVgSCIsnc)9t@(bMoQC z;ql?&;W^9P~c_vpwF zd;b5vF*SRoK(r(!UL%Nx{d;Tggw+JLkq`8Y`u4>9%c|%`P6>g6`&qqHE?>l3wfImh zsmJGM%_s{h4e>oPWua91b8Mz?VNkaTZZRTD;MetjnhpFosc<9q#e(#=%r_7up{pRh zO)UIoRQ|GXZtGi5)c;r5v}@|cWrp`{-6Jq{-5Fx zIG-KCJEpPYT`A5(dkwCa4P|UM)l?9tsfP1&LD}(2(cJhwQ->>P1=xqlHT5%H+Aiip zPK`)2)J}%YX3KJjkk!<9)&VfzIM3haT?O~&$yAXZgEG6d+7X85&m%)iW9j!Fa=Cav z1?aBFgPCWm1`|O*Avg+aI z?{Yh5gZ(G0%1%g;^)dy*>?ApPg$CT>(+fat&`s}S3laLTew7t|{7ZiT-H`F%4Xf7Jn}Qyj+4 zpl^eI+varyE=<@w-T#~M82`&RZ_0#hQR8sh0a2NRA=*6dEEaPsE+jlb>{6CRL zEQdf|1A7F0JWF!!{9Bo08YUb_s~WFF`)2P4+dqJ4q7^^W6AAd=1cKhF2T2MkAU8nY zE=b8ppTU_yFb0P567p%1N{g8-Or&^vHoR|Z{pr)`npAg*smt}-cH3a1OTM79X{j{^*bVXC>as#l-C8T1oR>5+6} z3>8_U7Ixx!8MS(C)oG5#gS02 ztATZ}_Zz&I@;>TkBSj(h~43?NB+?JnEsE?dz}8U{&5)TeOl$b?e6~g z{C~z>>X7}Acs8a&XAP8>;&sj_|v}@Y{n}&u~g>mk<`?0h3jtg z<~VC7T^Mkod|h-_Dor=?GE`#>%YhTZk0-wrztPJ71L4VH!M{_LqwH=!IOu>Y7piqN zl7O{!H&nnst{qR|C@{WLI()~>XCe;|)5f!?ugi~=eeIw{_H7`u@0DK{heS$s?8_-N zRu6`wh^!y7uR!_K+MwA6(JrBmM2Qh!HJKy+sYG!S;*Z=gT|i>t z@U6Miiu$%W=%pE($QbcVPSN>t!1wgzB;irn*RrzanQH6SA z-fH0|uZo0V-7VDzddP77H2tdXan{{**lskJ&&wqBUj)9az5w!_PhSK1PMUI3)@>p- zo~6-|-X<<+a_s(D*#^>&RZ4 zS~S?%kmkSY!k=J0KD8_MjbHCAF8-Rb_Y3u1p3xr`eqyuZ<#rxE|BAN%eS1S=6ZqrB z$Un9F&4!Kw(D%7K_Wl=bkzBEa%VGpU{U;L~hAxN@q>l-3;lCS3dRp_BHE%oxA9lkd z@)K6cRj_^D!Q3b4xkSq^b=PD2H$QlEKRRq5xpX9#wLh>8!f<@&3HhEo@sWJT`Ul06 zNBs?~KF?(Wu`d>OJm8>nK`waO(ns`;^>ui^2gCYfR^t8}{A&DOI3E+W`MVib%wHYa zP`0R49+XI#(ozit71A;K4*@lVeYRK!o8dK>&h zXEtUi7;8P1JIiiiJh`St>Sq%CLF`e-xdZ1hg^*5Sh~HxHOCiGM#jxLSozN9-f~tJW zSsi=-pXIn$v+I4GkZ&C=34?$V3m?~W;Ql4jKU|fxf! zXO;&BL`8ktEgCycGM~wS`$>UcU+GDK+XRP*jiK1T1}^ZV$0*Op(Sd(kMgmh)Q(pVt z?rqi$g1?TCrmQkg$Ev}5mTfe|6Xe&OF9ucQ{C2y8&i)4J*9`Y#fVWXd1YT1?dFwz7;p8%t1?lro_utqz z0dal_D^+=mOn-7wM@q{H&vu#4Uw$>0AA?7KC~*Zn-y56(Czcer7c*F`Tp z@-N`?KUlY8rn?^DS>O3ial<&DqP|D`0qem%{{;PKm1mW^+vD?NdKXV5<)na_sj5VL zme$`7o(sty$lt4LRtLcS{0nfepqSvk?C7moDrM)Xs63H>gm7A7CfW7R4fzqec(rCy zvj^g1RmY0=1H~K(;W6xeUVomr;vf8iaM72Eh3tMjv*N*TTAg)_WA65LUIh4KvmZ|4 z4IeT&KcqZf$ZBDW_dxv8JKZY^VUy6GHRfcBTwr6I;ZE@hj2}-A5>$i{(QfWZlC%Zh zmvp7Z{7SsnA#S9Mhw`WA@U4yK=^WbLIV8mSkY~4M1HRIp3u4xvbw~6K+#inR2H+p) z{~;nzz-4GbA>a2@u<5Owl)=dsZ}<-K0|g+`Se`?~oZ8A7*_XDiZ z&(U!I$3agn8{dN%H}Wr_mn1kF^P$<>qPv}~5r#T8I^Z-&l)1Bw&2Lb(m3b1Wn9t!( z;Gn&bpD$0cVsX#_;H_B$kduzsMy-+`2v0~XW_kJUO>@AAv8VCC96cWwG zi<7P-CqORUCCorvlgPmN=b#E6*bY)Knvi~`1%)9$WDDMR7F6Miw;K4fvvHowiKQd z3D$8H`j0IWisw%cu1>CCH_f%5ZM0i!i-DLeYiz{bm(fKr0^NlV}QU7^X7JMFj zcOmVx3g%Mm^G~u0B<#C-+^4eroQ@UEEZ7gtu6UwPh6U1(q!`|O!>I~L(eSfZ{dII-oK^?2L3j=7wc2Y#=1x#AGf67qyDq~iZ9#& zwRYuXCD6ZFtXQ@#KGEP*4v%nhUVmxj{G_+jCDT}-R-q?+o11*|?eL(<>56>mP~xYq zzBe+`(^q1^`E2c1$X@^jn=!pNYX3BKUKH_ z)(%Qn=w&ZreV%=J!y-0>NmUYyzC~nY+bbHij`9NP+bF=mJxx9c8Uawca@d`)* zpOyssdW{d;t`qVj=l?MR!k@XMO&U3!n=ummC#=u^s~cw#*q>J}nJgU~aG)}69~|;? z&vI_$57@18#flvG(&+cDD_N|l%yyCgbVoWDWYXpYg%ST-c<}zqKG270llC~1KLpsr z`%8n|wG4O4gpXHnVMxAbIA^0`%R+41>DYf6)2gOxupV(9@sJx&KiQM`XXi#a(c_m| zSFQwAVC4$7mFSZ$DNT;+cZoi-tEwF1{rvOy^RT;{KC0^D?bC`c+~q}*A8BZ64|Q;^n5Sa|Gd@)ed+JVNRyCdh6gRkYeoc13zGXG z{heXTruYV>ia`q=RD^cz>+|hC)a(LzZjGy-#kc}@Ix8~IMpR8rtb6JlPW;BWdzG+% zs#%*?eem<+^Utks$f(Z`_d1mD&6nNW@$Tw9U%pQ9++<-_r{Q^rdP-urYy+kul(-!q-U(+G0tBpW`&al>$uk;Ni`e`vjQs{cZj-slEeD_tD!%q-vs|mBZAj{`O{GtD-QHL$NiA6#$Y(V z+%-lv7c7+YG3+Oo!GAiHvRLK;LjvG;Xy*$vB&6{)TJ0R60sqJQ=K`W3<>J4&HZux?ubehr_7uj(BNgRM=VrW2Wr-)H@~g8lF@}~z{r7$8*xpjMn{Bb) z$IP9dkYs7yVlOlo4oMG(wYzr9HuCp9r>Cuo7wQxJg+IdkkS$sHb$)-_1MHC+p#x9z zyLeqf0`%`6;nPL<1APt4`2s%RT2h_yyqa_U#@XRmz+v ze>HZ|_ywuKBgVkyyyGFy68S|@Y9oraM$=10Q_At`JGYDcz;W}pCr-u| ze~IVFJ~^+O(}A|}$z{oD)y4{G)x7@VaEx)umW8kfznQM*pl+PbNsG^Y8ViX41@8FS(`16-m&RwXLsrg5i0x@UJUDOEx+KCqYT;y?OwH$jpr8?wa zUa)AjIwB}WrDrQ!JsEq~Yp4h1ORV{^3#|H0D2x6paz`t*LxEjXLJIuEbrbpjZh{BT z^|Ze?d-!dB9NHyRpYHESUrtOIkNV6e?-=f|vAv{wYPkmTg~BsulG&IbdFPCUgkOnY z_?O^*-8{LQbrHW^X*gM30&N`9r%yxqc<}SM4}`XG4E)W(-hIs2gE-w1i~D`%n=9UjkCBK~)J zvZ2?2xgh<>`hY*Y!oHDqDcdWXp2L3A`Of7=cG&5ZvQg1U>vOxu(4i$$r%w6VuUr?A zJn`3=FN*ii{Cw|@+R@$DW9m=tQ!a;oLHnastG04;s}7HEbh|SF`cDU6dZ`y@^;>;4 zr|Et&tnl{E9Lsi&{V-KCWNN?#VLhCUkPQBH;+HDO_aL9(*Lo-)aW=RjPL4} z$jpU*QbandJye?l7<>GyFTS|Wsrx{)czaz}_~(4Gr~v^Ix?#_s>a_s=In~{gAfosD z{UqdV$?ThFgRU{&zXjoI3^d3**~ddk{#dPBkZP3n9Bj&o$szg>|IO)Q)-8)Ea8m1* zW4uDHtm};9ip_VpiG6fGFsi~O^dvYq(}tY*Z}SoVOcwDM@Grf61?k2Wptr8aZn?RC zSu%lW7R8V9i$613#7$)6bq8rasStJRu(>{h{VWHqVn?l*iPQ{Y`UH z>)7M#RA>qEL*RQ}wJvT%W|5zIHPL_gt4Kcxf2a{d{Uj4c?!ozR?aOhSf1uvv!fti$hV#^d4cC^>jmLmTi661 zU3q^Yj~UxAmX<{CmqGb<@CrMa+H3N;afB(ga)Yd#KYz`5dF6beJmvSjJT(%}kHLO< ziZqZx?zCowX+kX=v=P29Zrl<78f489l%@N!wXnZ|edcGZlC7tFzdd{Q$Sn;9-Nt*w zBEX4?o6Fz0)Bd@qs&EYK)q+hjBlJVy|MAPUF;iiE_CV4udja`y_mUy`%>5h4;Jayj z_l)ujG34m0GHOpWko>;5SU%p;JY#B%=inPnHTpsNFnx)>mgHwI%{rZXx^z~4iD*Dq@T zcT<9&@25fh@A62|nQ^XZZ9ecHsOLoO`B*q8o#;L;kr}r;f@#-@B z_d76i?>&3C5&_@;X&B?1dCunlm&QL_O_B&pqURM9B0h?WxOJ6;_G9nOFV7Y7HNdZT z-;JH|FuJ|A0}|ON=yPp2G4?>8l5;*Uuai|GoKUT+OSs;e>hIr1eI>x(yHPtcR{i|=<@(JG~o8Es{sBeYuJHXctiu@4K zkLPZ@UmpVMLy4z9Yi#tD#zQ(9y?TW8_H9rJoo``ZTRe_g@m&M_BzzZ>Mxh)nQNg(G zXP_wu37_x2u-XmAHfn86A9ok{SgkvlhwA`B56I{8G;1pKW@z^z-GF~z`0Ipxs?!-3 zF|{1*0ikcQ`~jG7*5lM$Y@Uww;paE1sKvAv3c5cx6aPPcd?<_;<=_^)d4Cm%hZUArn`>av*|pevxmkuFVx`U%O&Fy(RXR6J7Bezq(Gi45gjp3U|3I7&kgZlHS4E*I#UDt-%+^%QzMpYl-@3u2; zAzPH6h(ij^cUSdi}aw)!(%F0j`?FTt-tUr^50Nn)_%=sdU}eb#DAZ?HP?<@ywx zeju&)tCLoMl2{YqmdLD$0?6Z2p)DRc!MkVKU}~>^_`_PEJmCk}u`DV_iSTn}>}rcX zAod7?<8D+B?QZC+GGoR!V}0he-dg;75VOsg^D|gaa~Cd5Y9HU>)9Kwc=nncnZQ3-< zx+T%`yw}^}p%cFO68=~dJ$G5*k|GD#--hqhzfA8YZy}$D>uoUAPqiyg*BP-6yakBeA}8oyHJVzU6>R`sH>mGk+G0i3zM4_vz>L!d3;iS(`m9ozKtttm0Eyv#g8u z<4Kc3M&$-YXk{@{-X8dk;X{Xp!QN;*^Wphxx{q+Tju*{8==JJHYn$r|j(jrbIrv+9 z_}dSbo07NWq?ZI$MP-&MF4os?9$|IxLh^+FT(W-G;X&zxwBD+p6TJzaHD`vkIY#s4 zpE^vGUlAOTD#mx=^Gk;nr3mFE_+|Rs*y#eS!I!2;pEe2Evmp_^9_2ywS-~<{%&_NX z1D_WxoJDz-1pjtY3MDHfjY6$aYi7ru3D+yxWb$8h^3qFpC5S&tZ4G}qELr|EL&pZL`y z4brmL;U!sBu#oou5Zy=5uyeyypULPx>Wp9PDu%h+A`NmHMg5Om<)AN^ny(S21Fwnw z4+tx~4Xx)D??tW?U|R16Uv;o16x6$GJ5P5a)J|Um#M_$WvIREd3z#nfPgU?~| zSI`Xp5ckc_4XUsp!Uy=TXi0!F)mYUae*9t25!>VXrE9ganzxruUA|(4&_2y?{)19~ z0jB5S`oTwlDgWZJf?tX-*3ZP~4zWK}{-7N`6DCJy)`H^Z zGaCe$#&3A9^?p{xf@r-iUH|>~Ox&Nt8>DZ97w&@-W1%lsZJg)l4t+H(lWp3d<>jJA?+3QbmrgGHxk6kNmfb5En)N~)_nk(_;I3t-OVt+>q`*%ERWYC6zgp1De z@#%VY8?nNu{8H@45{WNX4?e2mb84K}Kn`9~nN{Ywka_vf20tNpW70d)&f}Kyuvb<} zCF${bTpRK4T1B%FXM9L62C-Th;RD=T#AE)6L+IQBdV~9s5O6E5(F#`&7sv;eEq^gf zb%=e!jKqe4J0WTj)UrOCMH%{^??4W?8E2l5`A8PyQVI@Pc{a;(43iFK@I&E3`-bt-o~A7?fb45F{Tc#`7hZKMC>( zzv4uHHH`0XspsB8p+5CTV`r~N?cHq4aKI;A_c_pu^`T2Q+Sf0I!Hxh^|D2ew(jFcS z1`YDP{~zJDmwp?KG+`T-SRzPFo_S720x#NU5v1&H!<4N4KF@z_z2;w$9S^R9QC zXcu6f-n?(KhoJl)vJnrV6v9XejqjNN?PA8Bz;{ZmSQBvn+iZdGG<@;-TI~PaaKIn5 zT@OVuRm`=u#gM)vM2(Nc`h3uj42=EE|Fe3QS{=Ibm z<`emotf=sFu06w@pc6Ul?G*3dg3T!O4Qg-)0e)Q}bs7J2q5N#zmt9F-S0})SckPL& zbRAnww1pDb9xzb}5>=s?f2O9W{+PJ$h;oGe2f&(w9r?o3d3=Gv9y`ZA44Pt4mgD{XHrI!PT0;76@lOEr%qVZk6?61gi)QH+wjTD_W6hx zFw7o4Hex2Iq&0z_Jc)qB0!Z!I(>HpbmVNgztCqyWk?*b(V7@=@`Se&m(fFGBpCtMn zqh6OEk*2}?Z!iAsT-cU&-}sY;=<`@LNpO zaB>8;Uk>+|s=`7npf9)dau1GRh!-T`!9k&%udxD8aHVYeFqEC4VT!S0# zug&XLog%Oj5kNk~{v?&T`9XZwpWI$@`@?K4t2p`I4&3J+e^M(&Akle;5-Q+d0m;a% zg}qaGz$wF4KWKC0&~Jg*|JQwYj4|!J>s%rf>ao6?$KFb+XsPm(vfycSKHQH3(AJ3z zX|;~U?`a$L2>;LW{ zcwIi-nPB1f$Fh%EoiyDQ{*D!~^H$Cg>eKo;*yQ~pmI2%zLpBhA@QU07~}Pz}+6MM8L}*gEhxSU{tIL{pmY# zE?WSpf0^DZKK^H6E$Hvfr8fC1zdwimP}3xDmQ=7`0=v%yjC>6K=E7M70x(W&1*ID6 zw{Hsw@nA>{-3k8}#m$(JAWM)vC3{MGCjj;-+1X-$h+l7NbL98o4jiQ{iQeAL>6ccFmsYA~tWnd`0{G4ZEra!M4r0qSmV8O{1paw{ z`ph9J%WdJLL{G=<@8;y{xTZn&AivtAL z*U$!iH|?pqO|0`gG_Kw20)GvDx3;#~^nh;x{=zk0G3kqM$+{XqU;1G`n4$<#mK{1~ zeE{hje(a?92bABf6JxoqiMK1!QbQNcxv3oTm~O>GD_*f2BPG^f6=B3w(Q2p8BhC zx5eKjxO9NOeE17^lgd&e{GPaU=RON$f%ied|L?)H-fJ>;{YJ>A_5)M=XW7I4zWKg5 z3u&>#|Bm>5+y{jW1Gh)_=fwZSLO%uG$vi;7b;C0`_Rss9`bE|PR6cZlXtYqCV9{S7zVrF747Z)qYuW z`L)-lIMfg81q?TnLG_oE^nQrHlSbV7mXa7=Ki8EN6?4X8wU@cgC4}$n;vedJp4lIy z=+ssbJ*&I6x3H_Bzn1Wi{4bWqUFnB{nsWn-K27+_)+OC^?f%HzjW)|QkgvPu8A|%Y z>eg;KQgS9BMX~!bcM(}!Rqw~Yr~SV|uZF)LOUhM5Xo@NVczQy=w0h<$wq$0mg}xqr zoCyEp6XvZ#bc&L$ahdkhNbOV8n|%q9I?ckL4Bi4zDi;cV7|Yvt_T!i1%Eyg z%Tqq$fBEC=GZXmD@85o#Usx@ar}w#k_3CaM^`-RN2t063)@mJ8b@(DFXfNX<&M1_p z{=COMvq6CQ_Mw1m4;L=8%?IWGD=_t^$tN;HY!A<`iFDLw&WHXlpFfz5B7DPkau&Xt zW!;jCD&i+I)-Oyr9DVD_j{08HbnN#RQpy8QMfcX8;O3d~p`SCWb+linvH|iq1mO8)EULq~?}qtA zt9&W;&v1@g)SZm&oTo>*irEh;^17XSl!&1PeVJ1V__NEn1^by!U=Z;G@RvUx?ymad zalRn?$S=PCz7L{5KCQ@%@RIvY3A2KbF96@V)ZYm(#V1F!p#lLu3k^a2{)FWMO!9=?BK;q?VbvR#R6k zSB3iyMOEP@{V4K|(#QJgd=Lf$4$~z#FQ_qgL;py%W82{!s9(eRafruUsuqq z`jzdxP3tc-lg@{HqV^)qFN^#rwO6#lW}nBe?;U}&ti}2L%k=Q3xPQ@lhJMR6A^*Pv zw;i$7r|0bmu;CZ=?}y+W`sta?H2r$)$x^JpI4D%lc_}KE14)CkX z9Lv9ISD&8WF?_uPy@L4WN8#)N`Svi;OSmT#@t@j4`s?js-Q&$Z+#uQsPDg09 z(8cK`3%GJTzq-2ErQ}pjXL5IP5ADD2J^QREkCS?}s&>5l?q8^VN_1W*_P&wD`QUcF zmg7bQYuIm0oa-s)!^LNjPv?_Y?z=LQ{ZpDgIl}9QihBw8n#65fIPt@5gQ|V~YB1RC z(AMa|dEKB0^PX~oFN_FB7t#!hzP`T8Jd8j7^HaTih8vRwnD*~Ams{eix{drJT$VTm zPx@Jv!S}M|qWIrcM6DKmQ-V1Mf>UGi~xUdeFvmIX=SUs6F@B zDqHR09k0G5z7OG3W4#PTDSu~;EuYT&HBFfg{Dpt& zZeWQeS=#^a!!*7bT@ODI+N1Hezh9yLcxSXMePnJ226TX*h5t^8M3ZB9ykpR3uFsPE z>Ai`2|I+Zt*xlXG879LH;rZ0oZ%#g*<(B?z%vR#JwNV!?Jet}QXR531Do4*xw{APu zZ-V>F&D?6j|Ki^H^FnVaI-I+Qn8|84OEXiSsmIh!{`7i!u36*T(E0hcO1Isul}85rfxWDkOy9l8 z0$+#y;c1mV-MHG=pWF=fyo|^?ia?472wGEvoljG z_AdZ$V&*n+3X&)4M{i4w=>J)_5%H8LKG@hV(#ic8pYEsKR$WJ% z{8A$L`wz2W58wv-fPO9y`?(M9BiSd7>FX`!d%(Z!nS8KNB5`e3K2o$h!~Z|U`x_bx z?<&JMCzF)d?_C=okKim-owe0FmyQ19-(P94#M z@z1<5cPi|uaHp9={v{IAwFUO;$ye>97GPRWxLz0edBPW5Upbt&TO!vT70T24-r?^q z;yZnLC9G+ZkWcHiNbRH*U@E`tRY(7N%U(@!Pm%F)0qU58UhRWo;eE-+kYZf%(ex4}MlF8wU0|72BQ_ORK z{Zq^o|Fx^@=p<~-6p*rp{ELUVrY8#c@!0GLulTrTNFObU_yI*@o6~x(7TA*0K=k7K zdz-dca{IX%phwLxxLZp<34L3+wag7}PO{9rU5|Oem6Zuu*~- z8WOi+=tCfNG;|rej2$Mz|3WB48gT!aj*ps+E9UcEFNb~Fu)B5~{Ku{gzi^?qs?*eA zx?C0b>r<+V5#^_yaV1wN&ksBs0sXu9#TSM3M(fL6<8Gr5Sbv$3HvXUAKkZ;D?`h}% zgW$kfHh&<5f0sft#Pv`0BQrvqgy-@3UuPT%C}vba$U$D z*dM}A_#YPQQ~7?MhaWhU&$7J_wf|%IPwgWdsK^gcdHef4dfxra`gKD4e+#Z(cQDf- z9|6P!nA%$wVAD?^e9rWayeZ^Ud)Ee(fBjB@<-AXYkbmPjU*aLM|k~q z=Z?t@xVsJua*H8(T})!)tifmkGV(UlEE8|d@c zw9~4w0RaKD_mAuI#{Qh5aB>H%8U;m(tsoJmq!{@<2sm%!(TF4{SDZ#<9hS=eMWxrt>K$gGA5tGcX>A z$J#8kzirp~w15%5QrFJp&dR<~h|gqDgocjtGf6lp-dT?OOFlkeyXleX5o{926-&KH zA36r{^Clpk5YY>YCzP3^s|_&@MSh;9{_JMwJkxyc2>N$hwKaRkw)psoSx=TH$KF=CQJ;a}hr@rU71|pJ z53En?{b*#%L81IVf(O>;VHf}k^#{WAKJNZDdmw`C@t?{!;XY8PPx&cu=xq<%%k!y! zIG?W&@~yCVUMGG)Wp`ep_M&zay&;t6;oXk(4*D4m^vg8mx{dyTK4kesI?zw@clLST z=l!3UKQT|Ad?sLcSN5l_2G>)r4_(`7|9k7LArl+eNto~KXKLJV$mNecrq3~y7!IEL zgyeG z6FunzMIm{?4+qB{bp5^Zt}{HKpGW=|ZyyaoZA2~SYR@mcr8=DUA7;{$mEIF`bd#M7`lSsJ#2z?w^ z+)Cr^qTwWFX}_$G>{H|zUxiuOuk3T}rTchie}Dh8xSx#2H3sSP{$!lLf3hrjM6Jdo zjmm_7QVPH=QKK1mNjc_!{vutRFu$}u!A_S7Fs*Osk2~=HrNa&d2>G<$VeU{Mz*OHc z-xo_JPc7ur`pNMAVT}M&`x)Mj`YV40?|Q?b{PA5);(m(dgZnh-V_MTdnEK<33jiVC za(=hr6ZJn(Z#%D0{UaG2BK@NL0!S2v`jlU@vL#G_dHi2-^Em;g{G2E1#q$ZDA9-`H zkZ&p9vhVM~R6qLCksKi(&u5C6Hu($nM~z@`C(QVmK53xy@0z5<}FN)Yy9}uXScd<>@9fLZR~@c`bt3E& zQU1wm@$n^{C7mBW=$=FTLCbslBhbE_b27__zG1mP7Gu;m9IkKNw;9iOa|w8w%K`$N z>kz|!!;Inj3oNyH}=2} z0)CSGf6N#cH;5Xz9CJx8#XmItW$zJCA9yV0WKr<1oENbw0lISVex`*#MlFN8pkgRL zO*Bbs*GCk4fQJEdCh>uTLH-QC7@Npvjmbr6ZNul|bV6Bn9V$H@A ztL*2S^at%>?1v)-nBPC`ZNJYsp+3RUX4`!@wdZXo zU!(j_&OOW)%2WRE_Kp(*O!?X8Hag&|uUe@U^6B|4_cLz@FsXphQcEji$OiygibzCyoIE0iAyQ~f!Yj&MRg!Pmp)i0x5%WrRB4K0nht z%crtr#v(SENl72=)PuXLvHs}ON%FpG7{rh*GJR-2znqj6`;hhzka#s#;UrQe<@9p93&10`C=jw$068mGS@OT&29=k$;J)t4J40&(d?Wu< z2#=_IDg0J zftyVj{w zzHGjhO`JG!h+FXEn&Im4D$V?35`zF!`G%(KP^@KmxM!_|Z$N(!i?ytb_fL@7(wBL=p|SRM)$J<6 zKk(nVLVaqlNRLS;YbY!JdwA>`%5(4F;0eFLj;7m}mqJ`**^N$d@aMw{U0ezW1-XJP zQSk9;FGHS%+r2PzbbmCRA87wqnQ`0Q!@BAIQ10wEswAr+JSQkwh0|!nu*Z~A3%33V z=K){Mr{A`A5dPQVvkB!XzAbcp%yfcS5}d2LeY>iUYVha~vRXCW`Y zvT%?(P#c$CZXkJiY~r;`IJ@JxpWJ&PtsMC87uvng+(vCyW=D9v@*gwr;dBmpM86O5 z*NBh(QagXX={A!8@!ZnexWOd-GRElqBaz|@&i+IJBJe&Q9^M|7_vPAFWZnsYI@3I- zUKkX2`SwJ?zW~DH`3;)v8mJtt^c;o$Wg;DhH8g!lADQl3oM25Y$A|3gMj^R9a%*xs z<#w3#@rEEkIK}=>#wT(<^xI(X+-UW;LiFl19Igb-)kbJTv`;}B(QD@Z9Xlor(fne_ zJm+Z<8Z~>lKlF%YzNLJ;ce(8z_@?Rc~WeTr$;yJ^l8w) zAH#pX`~dmip#l25|0JQG_;(ZK_FW9j{A)g=b z<@o{Z6gy1oi}2e61`HN^Svl_y;AT>6OH=Xh)*9jraj9Ogfi5jA73$OYhO4Bbf&1jp zh>uqoI%-W9&hL=kadI_wU^>5x<& z(LMMO{v&+&Y~oFbLX`)AK7m1@wMiesZ?eb#xaU~+mCmm_ApciQe&%OS5bo2bTto7S zdGmToddBtsyl)IWuQhe~a&x8my!jg454Nhz*R~nVi;hQDPd^h$`Z&`vo_`*)fiP|y z=S}D&MI?-a3-A%H+$*`pAD*{T@HR?ke+C@J!0TL@ZXE zNnN&97%!Ti^ZCCY2kMH^WvVieT92$nH@IeVUEA+k!ik@M^yfb(NP3*Q_5!=PbU1ABf2@rwWf; zI-knxb7HE3YSj%SAH4vFE9%kEc%29o|q@mp+S z>>7QXJ~AdUD3sz!+`fI^fqw7EFPKhsEeYohXgZta{qjENUflOHmcGiK|5wAFQj%|3 zk9rfs`J3*a$Qv1n5b6AonYnsVcXW4H*Z7X{gx_^_b<@C`z~dgfO)%JP4~lL{@h!^$ z6aII8)rlB^9dzHQ`p=IJlmhqF4MDZqa^%OvG&c4>!!1O3(i78hzmS@`OpX1&3KF)Q zk&{m=TGM8Kwkm7lnNY;!@yCAoim~M~_j72&Oy)-UrJh!-NL#T&dEI&AJhxNue+&!a zKSrmBZ;LPH>r+}-9gJf$nU3;d4tiITZW&SHS3Gt#$BoAel|Unb@cpfp_r8?%ICaWz zD;mjP!Kl!oZzGzJl>7@V1-v#sF+D4UD*@M%N;4GaI@2>T(6zJ;upKGNPlg5D5)Rt725 z3Y9awGva>Xa_jGNwC^b1$Q z9#u#fkDI%`cG&-4>2t*A>t-8F_}SLt=>t7fw)2A;<5|=6&&&U4zH02` z1N6S$8Sn2CUdICai1L7NWOOwx{Xxj5@d`kI!~ZoH?^EBKJzQv?`g?t9R=WUG|Gbvo z&s2rNS?CPrOZ0vl=)I7y#*HGRJ|aD4n6LaD{u*Amr07=AezI;=hB#mJKEBg^2d5j; z8)6!?urFZjU~zG=&>qcK){{4y+I=3m-EuoMXp=_GriF)xV{au6#USt}7JnR%^XCQf z$3gcAHQZ)1?dK0~_us9JG3iaeCS=Oe+E88?o2?3U(0`$e39cH^jpfG zZiWGmbGl5=49p1Qyqa|5-4ym=nZrx`4i zjb=mBFn~Be%&^Zd803Dw{`j?o&ge&BTNaio{+zKgMcF>AGpZ}Aht69=J~pW^c@hhuD{GjcyI7GzSoJra09+edL@XK!g`1v5dIUjrw^Sk=)7Og>e+SnKuYrm{%I9>FQUH> zx1fI^uy6GXmPf#!dT@jW_H|I0iiy?E4~hu#CH+m!(@*z@%OYeGWI-~}2h~r1I%J60 zAFQ{z9&g;IO| zI|@C8_6D~9w_tmFBYOUtrH=gbzbgNW93YQ8mvN+D=nu8u6ncN108{^u6LRVYueyJn_mCzMgz zogX>V`WYBM{vQ0VgO{WY<{-%ji#KoHEYzp@+!(p0?XW8t(m^rGJPZij{mvrXqz|n( zZ2unQOO);(h(1uftkwOxzUjTbJ*59rHC`?^wi?@O+iN?WU@zeA?mjhyo5)S$=7B#z zeB#G{@)PX+Rlxts{VRL}O!f6IqwQ0yQP%Y0a@fzppNlEoRBHUxbfWxexO&*;saG-! ziBmIQFaA6(bQt|zItluumheAPDb7c8X1x4@kWKU1kujyWG0cE~h1wh!_%D6wr8#rX z{HZb7Fh1Rl=wJEiSuZ_8EOM)8|94i7;qn-Zk)zuQ+eXQhy&yKy~~LU zy5+cxlypjwKi?k#oq_$2Km+bPHjVrxhlDt5oHcTdTt)ca@%}ACm`C`}Xz%v_4v< z4AA%g2XMCC{XUInUV+8-i26+JWy7HneW&zyU~xaD{=X0ZahB2yqXT;`e_MPtdjIx~ z!_OgurvWt5-a|cfLV0RGGxEp{0p{OtX2IZx&W+B85paj_d*#ZPUb4^MJ9B3~`;b+# zt!&*$3M#d5$v(OS?7ecN{QB2>>Ax_ z@TOg~N6kpZ{sj3YUc31_Xl-!KA50|zKiP!SnRChW^;ivQuPe} zd{dntxwgA?`gFdKpk+gUI_W5{9pJ_(?>wz$`tvg#&XaJbmdZaIe`x$xfT0s$;txY% za3R3-KB0&Qqs~#i4v#?R10jDudv^1l7-hP`pg63c{eRXh@HcTdKN#RIBtp&hgm^Sl zec}E^m$e{MXpf$^eqv;kyY&a+@6&JeXR-O1YK#T(-{k*XD9^87Z}@YoVS9)|iTTu@`b+&jLOymsvab;7C7+*R(^sJJZQ6J3 zMWMWFlCD4OZ{;#@YM_L@$I+U z?jPxWXYNgXRqq_*td*-}sT%BO;V-`|l;`uw9yA{3iBJ|o=jF|J@7@*i>G=o;UoTL! zaID8aHYa}|=ew0m+p#4U-UnO6DfP5V8{AgM6iQ3<}#!>!u(S2O0eg1b#kBIM2?d=>hK;Bij z+=2f;Ub<|UP@l>>!02CO(@l|nP=2AWtv>|+)&5`e#!{g@>iDNQ=WYrxmETdgbBsL< zdxHZ4Oy$p+qs99Q9^Tj>?#F}=pkEI7nB&uBol8_k{s&*%>?f!`>;Xl5CHRvrM;P0a zL%uy6j`ERL*X+W7e4_gH=NF=f?g~*H!Sfea!%X7&LBnu=(r<%l{$^wz6wfyVugI)F z3U}wkAxg>L$L1L?ykLDCYV+}#QUq9w`N(?X#vcTj^07V~=<%Clc9t>&-Hx;LO|u|x zBmBqx8>JQ5o5B-Y5|iqn&3c9_=itFKJT@VI2k;*r`#2@hi*->^%kSXs{UP)b2zGTT zbRpg62As*KM?k)xkPst0pT?u3zNP-}!8AVMqetfn`2-`X3$VtL`2Npy^sfQ+*kyM4 z3a1D~nE=yx-5+4z^4dLHeaeSBXK}qsFoJ^z+s@bYJUniP*dFE2^$16}4Qra_wN3cS z{||o=z6Q0>VZzs}Bat0K5t`qX&vrp>Ye|$JZRfw1o>%zhZp?xuQUB_jZXOU|8V_}# zRA?R$^hM{!&alrPP5!2>iN+i5D@FV!_}uyd=V$LGk^iFSy?fBnpAPiR3WWBke}|U& z7dpWEZT>!}{Ub0?6!Q7~u;qq0-&Fsv?0?V=nbiN0eLn019|$n@XII9}8Ud#I`I?ymJIM2+O_>K@6!K|2{uP*S@4(ER zLj8d-_3xFN=cWkx)c*UCj{L+Y#v^S)z8Vw?>dfH+%;Q6WLYxn3FZ!nAc_n93v;+Oj z_svfc>Qnh6FZYGo!_mXR?~uHGH|u*5_}koEE!xw~NR4>9<=H`lKH@$_gpM9=Q@HQo z4Ow@8V%`7cXK=n>27O-AMY;_dFe6oq`^d3lE%;x{W?*I^UyHYYUdxp0B0kXg%-a8I zseQib;d|!{ei zuXLu(KL^nV*r$m57r_X}DV~r1A&eEBt1i+D&!hMIWoWiIzSQ4$_g(c8@-6S{NFSSy zzI#x}=f`WxdXb;B%#XK--+vqaar_@h4`8n+(gSL*KGWVFAM&>P>}Txz(=j2ZSAeb0 z7wH2(9|Q6ENSnBy()+$P#%AA4ia9=|o zkMLjW;`S36Mf;;qNO`!1rKc`#g+Fq9`Z;CxV$Ug4PSle25bgg1@t@YWc7T8OVX2kk zd4T$p(KSKbKWKe>50GC&ys}jo4{FaTLY*tXRDX)e(f$qY8%6p-@Be0CibyZ0d~bHB zxPB==1rERL+k?9ZF`vrY!&KgVZ>pz#`QMN~C~Knf_At%Iz9!rGi}G_mJ<%YP=i7U& z^|(EJ9PyL>9!%{){p~v;-wNLsU|JtXVPGS`ln?b9aXbiK+O$uE>G{x~^B2nhEqHg7 z?R-N0A0CPLH`YYum*GGl!1Vmg8yN%SfBqtVQ~81T?*OCzuJyY_e5Ue&Z`ka0ss9J< z?13o%nE(07!t)8rV zgE#$4#rppM=IcjZ6~~MC!D!=DalKG`!wPNu48i_|%f$Jh{%2o0A&v))uXkjNxSw0< z?+CE(58}l;!1*Z!DMCKgZ^{Jzck=qn-G2-JJz}+5vbUkMDLhRR9nVYz)eu zRsFD!A@VRT4e*0@(BAzce}Z*24(_zrirN+F-dv;MuMO9Yt8M|afPod+R*n`qk~XnX=v9p~$>;HbS0=goj9 zn?DI^Kl_7+4*XRi;t2`Qr}j&i+1jU!%*Y!)LO#L9lQ#JomA5~?(0tU}jgK|IQmAi% z{T<*#Fz^@hi5|j~G*^JB{O(zAiu(tR*ZcMB#qmNu!eiOa3sgP|4u0(G+r!lV59)34 zfr&mxW_ml|6a4iQ+Sku7a2y{8{KoSJ!jSKa^H2Tx%>DH=u{}I56At@CnBLFMe=oh? z&NW`5Jb~)JIzWHNp5LebXSUh=iBNr*OB}UtztH{lI|5Aaf9}$WO9D*o+uLXIFa+F= z`8Ik=^P^H2M%(AV3WvfDaEi^J6SW6&D+&y#f1r2bd5&+-N$=3!jxmnqBP(Y}4K zn-1`czP~NP{?C72u&^~G^+CM6w#r)hxy>vTGb zFWigIrtoQA5=ji>Ap4^;0JRq%?Y&;GU4r zw|C!mUgPPp-Tq3?H+B4`Ln!~R!qk5KwWY&^`tqy)rPf6Gv+VhY z0r}J)$NRj$37@oYuXIV#ZULtHHFo!bm@fo=c9IJD1mgl+BEZxi;CJ8vSj2Z~FVcJc z4I!W3p9b6qfp%k%C1BUm$YK>1@1@WtOd(wp;kFg+jk23bOXXg+XW|4|s`!eT!4 z@19+I1fO?zd>-hVLw|Na!AE!=J-@}Sz5lo2a6BmUhu_@bcmH{e$JdaMW*y;sUu`({ zZ}{g3tXxg{^pvJ)pf6w_uZ+fLV#WwEjcw*5g2!%135BDVFEq z%o|-Y>l<*KOyz;^nRsvdPH&cI{f0sQ){yOD9GE;*?Y(ji%W$S-pev0GoB7}$W zBgT6Wb`l^l`~R3PT2-cSA`YQN()mSF;QacgZ0imB=K_}8Z|%mQoqud0l1WWn@29nas=Gf1CL zr>o_&E7qa?0D>!cSb_)>c|05!&;Ri6KLbV}XgfdtIttK&^zp|Z=ST44E437?d}WUX z)?46rvX)rjG7CII((1{Vx1EnH8UOzKzcT`FkcK{*UTkST1pk#1>|%lcXMa_HFmQKy ze6Dt3s`=LlgYyZWPZ$j0(=GU17LcO4VKD5kCS*oB8&#@usqL~_%OajnM7URXPFymd z$({VT4F3P~JamgJa2xP5!Yfv{i08-Yx3Yk6FS%~fykX2F<4~#&^dMw!OlVkM-+{i+J{KB*7zyzVzrpKqPF}``r5$da_n;8QG2OwS0cP z$N$ep`v0@qT39d9`p~i%Rqt0g-w=IncH6Z78+uu!vr%OM(*0EjEfD!jUAnMh*)oFw zM=tzz{#(kxKmop=Aq&>u>Pd$4Gd`V-%GKQK&f$K>EF(_-QIZx{7%Xon$AA3#w4>*i zoPYoQ*G53qtF0!3H(HNwQ?@sAzqO2i8SGt8$unakC6*bX{cfYa0{iPa{tR43`(uxi zU(bi0x9*Q|_psiX>WOVPP5l1ZJT$Ni@-IqD7p4Xr*ecy>X`Npmnssa8PsW<+Jj()H zl!Co2$Ax>9dj3T2Ve`l5l^XDvlM4t^4y}l)I`n5jLTZt!hTd1gsQ*(C;DzIUfJPqc zqI`v~izu%r`k=c!cQeNsw?hMeD&<%7ton@OUg3FUf{QpE_c`jBrPJH6tLbVFUB-@-4%#{J9h^M88<(!Rw?NTKtMhexv+_(~q~eKmOj8jVKuKc6~5>h&Mr zJ@{Cd55iada@}$PmIbG3I{U+ZBEV$<(DST;i(FU<;IvT}>qgzkuOr7M^Fp z_rVAOU`f>fFBUvMmvEmx6hVjVS(#bI#lRk(p1eYEXII_U$75pyyAIi1kQ@ z?T>Skq@C~of-9kx=%VyK@IP3ENE_C4XF{1KYxtCNoYC@wEVxW_-uQ48#olniJ5YU! zPfp8OwdX6YoIk%DEMv`Zd5qNRiTlgE{T0Id`v#P%icBYaXA?E8h5z#aHA`Hq45a!J z3?tD$oQJ5rAdJX14Z-Mt58oQmuUyrw?zJ1OAm&uGDyN!XhV_B{tdn4lJ5V_yAbfDat{X-k6h&ZQ1)tAxx-5c~71Cy^&vEZwTe?u= zh4nbY0#p31a4$byvb8+%3#}6hA+`6($M;6C3Z;hv`Q z(C0Zt{)an2KWV%q5}DP1h~+#n`SsZmI6e4qE+$DGo?r19`~&uG(AK_K!nXWw@D!{%I>O6O?zM{*aw{hkkCwdY;Z`E?>KW@V(o!$@o!*-#3 zuGeYL1xX9|cti9X;roWrpU8xKg3r`7`Uo)X2Zqrufp~v8(L7pT`t+m)GV4NIjQt1k zUx^n}v9GH^uRw2_<=s%wSk?`QZ|NOT{fEQGvHr*G_u*{#eE!eaFw_6=hapixS z`Ta*%EhB%J{h0JJ(1-F;e*bu%PVJ>C?5{dMoyk10;{Xa!ens^kM0$`0dXVSWnIr6f zL=SZFdOu~Hxv0K z;!pnahd+!H%F}+QP)ek=IQ!FYbpeanPV7!X{#O&E!FzWe*eSr&zCLEhD9*=Cqd<6d_A8tQ;LGVl0HKZ{2i65>NI(I5n7>sX@D$v z$pSBtJ}jAB7BH%Q#J9*da>?8WccW4@IXS;+pp!dWnPDdS5~o8j_R^JRGYUoE{X(`H z9tiE7_PjGe3VDv3e^`FJJ9hew=-a2wnIb>gI=W8P z``yPTZya`wJ2@u_<})@vCY`$T@AUuk2&h;S;TPonA#C>>VbPdBqW`N$FvW11Or-lO zQXt=>^SLF_e!N;9E3UUZ!14vVtnwyP0?rQsdk~>X=$tdDT7=|~p% z{rj|j>a6?@{dP7g+$(w29Y3FKwdDlwj!02lF+!Ecnn)h`!rgP{OqV|}0%qS4}QDtPPqYU(ZLA85VnpL%kXke`SA{T0haeCN-%E_sWAeYI4E!);pf8q0^1}e7 zB_1+?f8Hm)zW!r@yzo@ww14@um9!;YyOI6^9(2MGWD4kU=} zwNAJjwZCF-prtk9UzSYP>9&jeU72Ru!mhrM@!i|V@fNB0a6hvATH zPbCh?RT&Hs#!??GwWY@}5{(J@CqZR1gvShmjS9A%7>NWQ3?tTeOU}t?YENVsLxiCO z`=I7=bQF(ilHUA}>2bu9L3WChO-{0P|){vynbMHO>K3skr<~M8Y*V^m% zek^^^YsGqwfe7$&7w~;Wjr}JyE6Ai+PzN0j^W|1R;Va|Gz61EEI4b-YHv6AZet&#| z|8V$xA*Zp+u;cE1E_VMUKl_dxbgI}Nlbfv2XX*9<*jI^PFE2NaKit}XjolADZ>qj@ z#y3XQEexBH-}l>49LMJi!2f|bf!}`=?0xyoX?KK=4_v_fy5#^QIXMvg#)HuRlOU#V zlmZENDvwZ($kl3#q93S_6#hiPf^b9qaC~!xBlJjKio*l%-J^DQfuFPh9+hW(K>985 z|Ktowih`}9MwnSh+CY9@!K3VKH~;>>m;v*mpdggt4LAx=WY-tKOC{J*K=ZG*^4ZBo zX~3thcdJjc3H+8w&>N>Px8RL#Poq$8}(5GzcS_xU!e0Vjo{%Q9T@{R z89gm9T!kC<{}KiF5v=!fXJdtqAN1k*gcb{s=ZY-;H0C5dui(v?!^Uf8L*mZO=jW@_ zH5pd!eT?Cc++;w#<~48{lW+o%<4HsWh= z--Kv!OSxIlYHM-7=R(3KONMVjy=UtaGz=iHHzU5KX1f0Kwj4z+bp`R8V+oA>k{~IShY6v0no|8U6u(lIW|MK8US{>E9X^{#~C* zL>6wgKV=3)^oY4);Drx7O3*4p5#&Aixed$ zPK7)Qg6@YtxQOhzTD*U2#?&7107SN+JgIM%S=Z_Gl@PCa<*G2=V@!f6O7BPC9Yr{l z@I%{EASHzFm)1kreiZ&?%pXxW;#Ag?lp;KB-uEKTN%X^&t`}&*QX~Id(*3#7Dnu~+ zg$Xg)95xygqs(gvIXdKV59jvbc$2s0+^h1B=)Yl6v1@7-XlqY(dSXUbP)EmrQ*e>Hn7XX9=X&o zD1U?7x02y+!(>cn1IYg-`MjLJl6~Idb@Z_QCQ+NXvN@K=N07aQZiMyIc>TaYn0^F8 z=VuucGo=mOzISnFpEx5WCB3657>{E@7k4HbPp@zJ5j*};WmlRF@lj{P1SZ*N0a4` zBzgq<&rN@UIwg_M2B0DA!DK&mpnf*=RlO|8LQAC}Y*@H(O#FT1kWYPU5PF5{VyF!3 z-Ib9-YpKH*orvmxV1FKa-abu~GMw`1F zoyJj1PRz!qdbgm4I498``;?iFh*yOTPCVa3Z^eMTsZHfqc?#~c-;}>ZOAiV?$`vr7 z4~G|ca+*i{%_}2e?#<{C>JNk)=?4Y*yE(qhhy49gOKmOdcS3(Z^W@n=1^!`?ne68y zLF6Zdn<5`PrZ>s~-vnDX_;2D;U6!TuO2V*eVVIhkq&svaqMyHB?=+^QXJz;n!Nz`0 zmOrRB>dq9jw2-fO1m|2>q@68XmoKvOuUe1zAD?7n@J{R>pcB3y#y(kIRS$~jP~$&%Fxel{q*l@omA1U-n8DKH z4O0j5|G<7|v2*&740_k!+IfbJCx3$H);^<8fIOm?vuHgOuC93VQ}5~~z$Gf;|7Oew z1be0ZLH-*aLw|A`#YXx|^SiBt3vl$)pV&l=xm&nS{8HMG-bn|&`ffNrMoMxD!mI-% zGtl{^!w#>wL}f_XiDund@3o#iYt=X2hup5wGbN9$4a2=jOLc7>=dLoC?AzXahocp- zP1O2kWhXuw=aRlKD@do8m+Jb`z#uBVfLhj#LdSTzA6st08Pv<{72M;^q%UVABm^iP zS+BV@FPZMglK->MJ>-X|E;cA!C;pSs8Obm1GxQq1yJDwmynsYR_6Q-n0rU&aw=Qbx zY=^E*FIWj2g-%|deazr=Y?QFK;70n5^dI}MY?(QHmO$tS^MqX=1@BP+d_*CBTB>sG zU@++yQhbY#!JB|D9&h0}1|Puwp&6ZrdH*kVzLw*@QLNY-Y0R?Bg+;Bg%^Y7zA8^dD za(wGGH0NmHpr^6a`ewl&xqi^ELiE0{g5n?_QnSecPgj z*2;En&n0`OKd&lAvA<$}#5%y=Y;JC*_jL#UsrrQGbFc5_5C5|>Al^pNHN8dIz^Bc- zG{@=fo`Zf*_8hYC098T>gJMYK-v?BC0LJt}KFmE^1x}~5U^eW*m9ZINesgv&tv{*X zSpiwFgCZWl4-N90EgyT|nZF+vW0Jqc+x*(N@bS!lFkTLGXo??L;ShwYKU7D|OFTa- zMOq=)8iM12lamoItUF!se^-nX9tMdx8Iz6s%`aZ^I6QeHVkkF2_@B~@{kdd$Uxy}I ziD%Qg3oX8hiiBaN@pd)-UT4k;(7Z!Iyt|FyN&&6WazYO+En}fUW(^4L4_DOnsAa>@ScY**zw837)o z-xcI8R_P6{K=}T`EALduKD_@%*)}h69^@4ViFis&!sqYRFV!J8KmP}2;9h=>Cc`cK zd*n-l{No441JvUE$DX%HNA@zB-6Rq*w@gsSl0C?b^}%`tz>5G2E_SY^x?FsHCq#Qu zsQUTz0g^}eTqb>@3-rf*S(Q&iSYbw7PtdnzZKOJ{9 zK);m1yYMZO>BWQkkp~DS`QfR4QybZ;NM{ANhrHnK5wENM5ru!B-=0cisqLS&RA-U8 zQ&fofZ=L9GkHk+?JZ(!wA=lsQv$ct(wBKmBQM{JaoiUfe^_d!DXOw)Cqq5@=Rl*wJ*iWu1EC4CFR@Y zVPGs8`3vmM+k7N%HEQIC50qp6Bx@h8f73pu5Gma6i;W zWzv_t%}+}56vP+9r$Y3jE4ys9a{SGYn=|nHW`Kx<(o}uuD}Dwy8OrcgmODe(@>tP# zOw(PUAJkriyjv$8c(FyN!bA_6#I#>7=J6^`h9+_T|22OB>!)}~+nhM=KP=DGB(|ES zPiOrke>>bQD;Rtsrw8oIUCQ9{Z0t8~?cTuPKAb=9OC<*w+zffY))mjse ziVHavUcFxJ-`KpoXkMb%YYO9Q2>#Kfi5q)>U*Sgn{!zJxU!US7U%CA9v#ei>d;&|2 zSKDzXxbdxWE%{H*t*h>l!Jgw}VT9x(?T&UXFOdJnsoTuyCFyeoJ>D>XhrI#wo3QrO zVs?HH@>jeopKsx?G1(ZES5*RCjoRE~qeFKTE@-Cx6FopUDD)3%v%VaTA1+j33PB-> z5`xanc5?>)zzo=t9h8e5hiUz8Yi}ogUup9a>kL`9eg8azDIV`V+V4EvrWKhJM}0n3 zKfc;AUcV+u(8B>r@ix!Fg3wZaOw1efhvf^3$8QqzEfIX*Qq&84-|k@NBm3OYP_;rY z=r>QI)6mk=My7nFfxjjutR()cwiAfok)KO>gTaW$HF{q>z~ytw_nW6FSwnmMOcH|8 z6n|*36x*K;sTw)OAHsZ!^M&9s6+`uzW;jsO`SB-mn$l{#5&ebqkB-6WqwIQQUqSr^ z_k(e=Vv(IXd!8=8RI3OOG$zVaC)RGT_ObCKKTTM&U;>9lr$IEPCNnr0^dWxpiGc{* z1q}azPmZd^4lq$d8Qzb*0Q(P^;hp(J7)gdc;7>@2fvBLga^$m3@09#kRSyg7smH`p zM6d_~GO9A=Ao;hY;y%5)6#ff;h=Sat59)mU{eFtFun#-l4U)YeJ|>2*f3iO>S@T{A zTaOffH)F6bAP`K5w3R=t`^zx08P%p58wBYw%c{?Z`pSNxqX zH1PO`WawWh6X#6A>^9<_1AR$#y1u@ls$?LutteEBzh;bNyw)fiO$svum;1QZU5EUEGmsh6aPRwMD^#-b@P|M=o$D>aD%5P@dO!AaMkr0f`2YK z(bQ7cq`)?L9KC;&slSGDf2bV?Tukv0!)C+>eWJvxY~F?a#>0)`Y5bk(+ZepFzAvq> z+RE*J^I;#nXbo_DI6kXReB?OW{hO8pkuVjUvgn;OOM@7lIOqH|Lt`jJ!| zkvC%37!y71Y<_6{pU9DB`a$uLXG*tn z`a$-Txt-mNo#XsnhR!*oqnepfnK79!D*FHFJ$LKa`6=JsvtmU9gPlf?;o_5PTWgVf z{m4A|I@uEo@`muH%2FFoNgZt5fcLpzdw8S8ne?&4(_8^Vq9{dYb1pWMC(c^k(^>Hp1u5l`%CBlJ-k=?5-I-wgI3zStta zcQ1oUpQ;)-$@`nY|82e*5&Z%FMcb+OP_J2SG+#ac_M3lZuoLpce^fs44&Y007by1I zRg6FLi>yFG&am z=zO3TwGNCSjP8gkBUs9>#@?$+BmD#JPdtC8jQuFoeEO(P3E3ZdIsRvZBpP~#woiP$^3$8Z&3+p?R}eKAJNhCP5#j%V7u+-PRcXkt zGsMU4Xahgc%TbNOmLjuIZM9m=uq|AHg&`U1CwSi$MBcmfjH4G+vzA@-`G5Gu}L~KW!|DD04FVviy7RBHbIZk7| zc1Y0$=r>Q=>*d~x0?uC_Lw>JZjQoZSR3Gpm9s%(ZMYaL`y>QxUmYlnj_}i#-NdF>` zkBAQ9e+~WtFX!h}??9F<+@1k@so0*L#;;HEg}?i~YjkaDR8L{w^e=IGK>1Xa{SkTv zd!jCMc+OqwXw^US-ZO(G4BmwNMrqHXx0pOb`v0|0Mx#!J2h<6DX)C;ud=0X1UVd5l zHani~$9McyKHo&YyxUzX)a-ENW6ahhR(QQDsMaL>BZ|GqQgBq!2dFGxR}#?+t> zS31Stoxl%&E$jaO@O{n;+iSz}(jJSNUm{^vscG>45889#7it1Vk|d9i<2C&XeoE4S zqMt>>f<*6w>IYE&?`}!-Ge)tNq+B+Xa6R*rU=P+O_EyOBdlIZ8w?THCxYvE!G+AC?lot&73L@4x7i{bS*wnu@S= z4*UbZZ0Uc8*lk@NT>|U`9A%CoYc~Mtd)s+q| zPf&bvZO06b@0Tj?&6NCJ-mky`FYn({eoTCF;}F*`NFMUX_8pexfW8r06kUJQIsd3~ zy%*)lb-J!J=}}c58j;N*lJ}9t*3RyS@0;` z-}=4pe}5lhN0@)O`lvcbQK(l#@gT6blX#;(=GK-<&-F1)lYB=$|Il0yEM2<)}-QZe3j4yEX-u-$DI|zBHj@U_gZ_|KLQ<_Yc{^ z{j&Tiwwt2Ahv$W0zs?+}jq)S*U1JD>r82{Z-^RNSih* z|3M#-zGPzAstQY#F4C5^pnXhNyzb-K7)#si0%{haU1#UHW$RqM+$k?vW`VDdlo*hqhs9{@e}oybW-aW#uKSoDPfp~13->OVLJ zsatJiuLQxZW$=ldQXR}=d_Z~TQk{F)&tOm=@H;Q;XR*+>=ZfLhwVHbfapo`*3#S#C7+{FcntVoSWr-`xh{N&?5u+xoDce00z01S zv%NKr*JqQ-9_KYB4>t-y#1P5Rq>rP#kezHh@b?T*wWiixoB8@8d4KT=Z!6ZO((1&h z*(PsmtB@OmHyqRuJxIt$Jr?+P2IQ02U*4$u&CpM|JeUo6?9#Ef#>ztj2=ea7vIFv0Ypa**v&o>3Ta4qM zBj1k7&$Y9Y8h|f$!L2!{IZ6B({Bk0jzgr$`5(hfxa(NT<#PH;rJifmB42UnA5ub#$ z`v{#6@}I7x);C?Pm#WsE^tU>3KWc+KYN)aI^e~v@g9-cIPqN|NBA-4;{M%~nbE>an zjv^00eJj9Pd7GY)?k~lK^*%+e9qD)*_93IL;>}-f8;%}`J74=##a_6&VrrZl+=b}h zGVuGy3s3vm^|llp6)&Cdb2FIm*WclRys0*-H?%he_4vX~YeGE{?~9y%k$itGbcoXj zs@L1xKD~pDr~IGWrp@L2r>*`{rBtWOW&OloLoLG_8BG2???oHGKFQ~Li_{{Q|3x;4r$+eyY^q-07_R3!mGHN?*b3VW{X0nX#FY@if8yWL=56!T zqY+OCdU~*M{X1A6@vvaT90&g{t5{b9`rH71qsS8pE=I3L6nVr_T)d7QZ^ZfT-dp$p zo~M?6L;XlySr_ufvP2?W3lD480GSKkRPUyMQxF{# zs%N>@zxJC9j+&iqylq^3eAK?^edG4&_dQmGdiDMY{-a)$F;1)RX5-5L4`nd; zKB_-zv2yvMKHHesKG4qXOR%RKwQ+|)uhmBJ_c19hPLC*F1l7K2#VU>T;|p0YUkPqd zVangLgj&eAtC6j8@Lt&eEF1eBc6z>$X4r%0-L)%b^HZw03H@WKuC~B(HhenN*GK$+ zLL{F54dmlr9ID~?O!(t|#n;KklYP%yR=}T^{7e2TA46VM8{yxmD@8{HKZ`-yD=M`Jw3I zM3SfDQ}&!zk4L;e`6r~p6)H^hylXu!K8^L-z4usJR}T-!)P_JpS{1oICvx%Gd8U3pOF&3$)j>#dcUQD zxy9=hKGyWa9c;AE&jvp4nb^qYkKWHf?GVRT!oSwEwAlE4wfkrc;%Rgf@41Ie>q^7> zGivlKepQz5L;PxI`q?VhPx#UDrD=W!Q$2I7R?qc+(tjQLL5>gQv*#JJPIvp*_?`9h zGo`B09Sq)5gnH?+p095uet)~f*Z0o)=d&ftZ>No$te<@AKovo2z82ka>iT7_uJQ84Syq{f<=G(flS~afV zN5tcd?@DsM&ia-5ZS$y-c^uYzoRWW(pP!fiW7^%pjOwX~KZ?yz<%wZ=<^igo2>G}Z z(pfa_IE(rVs!PebG86I`B(g5i>`>_!$$Z5B>*mel@4pZH##&sk5%gy=WVS5gx8|IR z{?FmlD5447f>@tT`h+X|enN8Ws^ha(Uv3{@_m9~%4xT3YUu{vDPUGNnfejNwwFC0= z@?4V7HvjCO%T(zn1bWbAkV z;?-rJyTAX_Kg<*k&dhRmko@IOh{Si3J-EOsRk8W-z&>5L;kDgz*g{$c{b$dlNIeIF zE6$$g`W@-BX|b_$*zqT_ooOF@``Z^8O!0SXC(XK-!5*VF@!orn-^O4k@MllT4kv?& zpL#o{ALej2Jnj>=CNr4Uryu*HFqrCB#&`193x2b(C^lBBXZ_^=)|z&!>j4_e&U%kA z9rZ}#X2wD$h!QRUe_-DSeIa`i=sVtDlG_;zX>kfLMzI%kmG-wB1aEm7C#C*vyWTLd z^EZjf#@q=pF$}JU{oS9jnafLbzaH-l{yeDPrR%RL=JEjQcL|#P7kk+8mnzTCI<%|z z4F(f`FLgxtb4&dTIqR!yF0g*e4@ldtPf2_`sN@_i%Pd8`9c_s9FM~c0^+ziQ)L-DA z11t@RAx-Ge)!^ev(2(2>yKh%|gTX{6{2}R*e}gOsLgW5Ljh}INRRaQ|sgR#d3%R9P z4__H9F3r7|kG%Z+_vlxRaQIQOj!P0%cA=)hf7M?8#5v({`i1m&${*4|dsbVYfwbpQ z#hN!0^^s8B$kWux?tc^cM>fJv;;1_!iF9Yra`{lSU%*P6Q>6rU!0*#}2`2W4xg#l5SKh*z>U$a1cLh`R{ zh`KhEd+QxBzBzKxV>Ig)yi?=-HDn!HL}ieF_cxQjL~XE#8zz?2;{B_Q^dalxPb`J0 z?CRvJQ?4fC`CAU|p1}I=gMYcbGi4fsiQiTC6!7&;{7{w$=CXdw|9E+{gxl{ZU&UgP zZm@pfOB(#kgA6A9(c9e2ND3Kemppt26P#dgmYioj(R(4Bm3`@>jGI}5b`AD%OB?Uiv#7y#HwKA`8-&knD2Hr zp5j-xBH@|Az(?Ko9fe$edA-~W{&bAn^V(p~@9s|7#l}}celIQ<9AGffvln)6X?z`?W~FWBtJ7Vq zr14b!%bF>FgRnu$D^Pz@eh+{AnxqHN8>~l&56b*qkVR>p&S>;L|Ga>B98FNOSFzvJ zR4gtGANBkH;5uX51M<_Tb_e++M-Z|G==@i&j0a5l&29)tfaUQ^)O>U|3?^}6mhb}< zy&`hhoFyFf?^fnL#kV72fui#QQ2u!3wnYG?Ei@-3I}1`0loDn zP;EOhB6X!D2^y`y`6=q{q^0aFKhNcNqECAN*=lw^;Hx-ubnXCyY5i+sr!_K|^5?4;-=D%@ zC-w_Sx%&q{U@-ZcV)c-x!%aK8&oCpd<1mAX9%)VS=NVj|4STSoh0oVA*ej$Or=Io0 zULjUV7Eb?OuPoI`u7qaRZ%n*Y8LQFq=ebllHS^fV)f-uV%!740M&$XGA_C3hhdklYH1`D0U@rC$(g+pJ#?vLzCDTNMx{4&Is`Aw)$ z6>cQ&$G8ePev*7Jb=S04SbsC|Sj(D7 zKX1V9;NTaraDb@i8>IS6kk|zcJ3q-Uk~Cqn9JT<|Lq9B;5qV!EkK7Wgce3%occaPV z=J#`f>U1?L;3}Ai@JTe4UbJbyVn#SM+6B}zmo97F6R|^g2>#1**as}O z>R}bzuH#RVa(^oPcmAo=2Ug?bC>kw*`GY-Hm$t*>rn#g>{-(fS@armscyi!ZM*3kN zgVRyd$THycm>s+NlzZ44&;xy9Sh=?}#pq`JMGte@yX zp(C|`!9)+dt^$t#gzr+o%jFU9W8;;MNIWay%iV?wHa>I#_P32SPn=}uL%rQu>9JA# z{waRVA*2qn{#B@t39s)!1jhZlTR491tiLyV#`K8&eP{hKv0zMnAkwF>ec5)3hHAY2 z$n|>o3rZ1hBsN9&K8&l7J;0SPjq3xnAJ4vtbGZCM^@6I=*!9U@UU%CsZeuXbkD=7z zP!$dqL$7d%x`ehq~r-GmKU<2wf9PERAUH_92 zmtN?&F5eOIQG9;h;vBt-`NUmSdi8fg31)_$m$IdUO%S3;9!p4x_;31PUr);^Gbr;H zkSCFS$E4p;7PQ@?SRH755)$0VTRVdPwEj*dq`Va#KNT| z^8Ctvr8I{8b;Z>_CJzTFU!!pS5zvRm(b!(i$8`Sb`mc5>=fel-n=^a^Y(4z&G1yzQ z2smZ^b>i}(X1qMWs0Jwqk|7@s+59Ckj5}`Fm&kwLF(aPyqbTghQ&McRvEwPeHQgUs zZ_D7H!-k3(k$(7(7aO)RSg{Wr9%lHC`j})-C=g&x4$+uj)bCGw_gELBe@eb=K_t8t z{$#|nUS|6xQaszT%&J-^r)R+TOiA+T+4T?)H_LB>JRNS2EioE%ZMDj^@Kb>5ZypVn zSSC-3o%Dr}Fxq8E5`O){g#k7m&!gM5Eu622AD1RBFUrj=C}92I|AhZso*;gme0xFy z>nGTla67lpAU@dO(5LuWKgG*WuU>We&hQT;pADq7viA#lFlzSh-@L-X)7$^9CNIy8SK8pK&i2FkX|I6}5E!L}Kso9~@gVw)p zvT(|No2t)e#G1ns=rIbqbkEgb7({$Zo%r+T#;N*hK(=9jC!^#ac+jVz-78i5MK16i zo)x7cIN2xsET1hXKXM-WfA6buZ7}L#SievYU z?8)*t%9l?PEjz}eSCdje;*yfR|)@> zR*HH!0`v=pAS6$Y%Bj5nL{6_k>QLx~GG5uw>eWbmE%EP8sH@@ADe)$Ht=`4pI+72( zCW*lZ>Omh+aDu@f?2MY7TfDxT!LMQcM`idqe$o0jN%^I$|Co4R5yHv%^8kO+rc1U_ z)=&J|q1czyUzB)SXw$L}{{j?G*(4U*j|z~+KNcFIggQvK%?Ylszi2rT zp5o`He-PPk6!H9~tQnuSH$GBX^d1{e^4jP(Oil)qe`0qmw0Q*I? zmH3a^x=>H`tZSfz!N-9A_f$!I{)zu@e|b+Q>rX~}<~Y+ft`C;#l40N3&EvPJ{y^@E zy(?i)_yKH$ivKOoURL(kMhLEhI}hU@)wf*v=*pG+`GM~rjN7H+JAPbVq%pcu-Y7&o zlg0)g3hl>iw|+i9NesDRpB+{5UE0&)oWNea923w`ywi&68r$dQ$Bk&rPgMW0D zUH?K(vavfOW~I#@cl~Aj*qmJ|y!UhY2=MhPMetI-xzw2+@oxiP+|8|=ACmlt_#zWK zAK?S)&G7X?{woOx`l`OhYe;NFR$$4AL zJ_W-8#^7Jb*#PhAK zt?YOj|I9NHd&7C`A5xGPiJv6<%X51&IDYh{^&0Xb=|Rx%y9{T~`uTiO{!vAcjhyCNF(2;@g{rRXKnO=+f&Pww_ z{#&Z+!Fmk$%e}zoK>vsT!Qdvq{;K?Q90tG7uPUly@G(QFuBGB6_b*ev#>(fPZD9R< z&_}l&I>pxm!Pe^jElM;5VgyNFSW#+Lte~G;+dAr&b{s4 z#j;N(kF<2Is;$rlRDUa^WdYk=eJ-C7 zwX&7^7bGuiPSY^{=A(GL+#6Tc(fmI=U!&AhaJX+M`WjKJOwVZjvPA4)eR@DDkFzEx-8%PpP zeNtPi_6J?hLmz8v-4#B62>crM4sS#r>Vto>*m^FYjwg8n{Bhhg?td*e&P%*9|Lj`U zpPlG|#2n4zk>D*IFWeRwlnxR%2gpda*{L*!(*(f#c9 z>K#~*N+Wx#N$-}t;eOihz#=<1eI)sPFys)z-HQAJdn$)1zd#y{$ZrZP_4EER;KRU$ zLo?a&gzudnJSUEY&pvsk9JpbV8_B<2CqD2Kq(<$eMi6?=x6_J6$6pNRdt zN_8Dme-eIQ!?52p8Q%LX7R!j2NY6^WZq#daG1nT2|j$Y92 zG=%?zZ}~4gwt~Hng+(WF66Q|g{O=9Ks}4xFad`srOQPFd%GVRw`>H{Y*zrW~_okUv zGB_LdX?Ux%7`#b|XX)hp=t7P|r2WQNKgk2Rxe|wev9mrqA!ETqte@`J2!b;f-o2RH z1EK#mrB(E|xG|lrn8RDiz7aQLsG7!K!9VyLM5jKE)2mg`|KrkKVSJTk#20}cxE<{L zO(JEyMCgHjjaw8pUD^=t4{Bkrd2ek=NiC}T>9PMFt%ltEV)HCz#z~`V5?A1J&nxsc z)M{3=|7J)&|LV`gweVk?g{>m{ANr$k)DA%{+$g>|BV&3TgQ>o! zBqgLXSg{w5oaXQ2edrrKafb$2|9y~;MlIHD45s|RYiBob{Q&$c@qTC0{j8tx(WH;q zPiViF7xk}Jv3?``uTp*l|NCaqirpU3cTK$pcYiIv{#1%bS^VJ%c0A>yta&#*nZdot zC;7&V8$B_Qtq`FfP4CZAT)0k|yuYLmV7}Ut1T*_O=CApO49GSXu&-n6|7Q6-h(e=< z{3o61FxT9vS^zE}zF|G|Eq2If{&IRFgzSj_97TQw?f0?Y-GK=04&mzp`C|(Tatl9m z+~+`&RtF%nkiT&IjU6g(!SaN>+;JfWIYmnT88+xc|GExAFJ@ysCOLBR zWO?l#p|e}A$Ni%A3f7~#Mh}!Do<<&j@GbS5FXIThiN}CvUd&d$bom>s*#@~`I^*l0S0?29OmC&{)@+~Ab+ zQ(mt$3%1%R`1Q|gAId$!gAco-DZV?Z^;_Uys(wN7#e9FknZkv;!Tk`Ql%YA*q+od3 z8u*9W^|aoUb|L4D%9cVe=T~o3mS;MKfqm41!HLU@gz@g-kOE&t#3I?NYo$&uPY^$M zxGRXhD2?=2|8rR#41TTth3q_QmAZa>a*&Q6uBoU#D{GKFsyRvV|BhxqUtc88O8JFY z|7xT2^`GCy{bO4Y-(JDfWf3s?#oEw`K(I4j6HiBQu3p?L3*sov^;Qb`8TWij5i$G%Z`-WvhuHbQyQDWMp*x@Rv-Wyz+ID9|KT!02y{VavUk?6%w6v7_ z8)J3hO`rb&s)e@Eo@%c+xyZabC38@k*RX89=08T!R6Vi3*!ZAkQ$Ns4=e{+Z_1Y|$l1A@tpCw=jsU#MtM z;1W58@)^9XwBO@8?2j(EiC;SP(_E@FpzJqih`TKd{zIy#UMm=J{}2aqKf9D~!hhZj zi2EAw{)gq3@+2W9eiN7f9s|A)ZQOW-y)W{QqkcB$_Y_|Tc392&f3zO^*X>E?`YFlN zv5snPzuH;foKr3PB{p91KfMsCPw>VQ3yUO671pEL$R41*J&*Hq!e6C6Q9$jlT#x;W zQIG1@@OZMP#oRJ&LKsx!`-FL)mhXGIHf>}5h!+$Kt0{j}ZLzD6FW4Emzg5ULbU3GT zdh$jk_RlEJJ0JKZ(Id`(r=q^8YfQZ( z!vDaA->UKo4x)G?yH0pr^4|hbqnX(T@h3jZpCL%@%uG)AF>npe>5x7nGZF&Xq1hMku zQ0?^~{etpS`Kq+5;ft846C(IWsJ}VCAlE0rx|1bO=>q;Qt_HllUXRY6=;qpG!i_+_NY-H~j_Vn5B%!%jtMEHIb4rA6&@q3P*AwHhy zg@2$ujrG4#xx7gFvdHn3_^sa5%Fh?O>X_JnEfPON{>tec?Hqqr)nCZ5f7HkIWs>ht zzgNKdGvwE_sHmt<>G#{Pz}fZbertw?IR3nk_&CJNbNWN^uyMcq&IUG~@Ha>5=J*a+ z*l*ggBhv5DeR0Rv_A^+Ec+AVc{OB5ko06JzSB^yXFDLr(V|}WT^~3v#dI%XYv9N#D zBHy0;z4`gY1+=rgAdFvX}tv+MEFO|9TK2e;M#AA;JF%J0HbQ zm=Ms(;AEqAb~6$_Yd=BGcrWQw8DseQGVuR_adWsmnEbyjEh|>A z^O65I$*Je>lkAT+Yjqjx*Mc5QSX{=}53D^p@21$4SkwZ8eecyi&^J8ZwT}@!HWM*J zWIb$Z-Sxd##5)F~) z7oz;E;nUq*zx)y6^{^bZ?0om3zJ;f(jQfiTA8(wqa(dDK1o*ApuE_Uv%ofDox2H$s zdm6tfDmIp#Zz1yiN=uJA7)irD5dv z3`3uwc>UIG5&t0B4+@I%_R2NjpFY^vP=BvE;n9_?!!u85%yakB^|Cr6_C3PqfBM%U zPQS>$Qn>D(;za+o$va!O_F{2kdM01$ocxX6Gk+Vp?mYUXf{y(O6cN-Ou`C z*8u;=$fu+a>)n^~Q_M3GKCVByK(ad0?H`^=nBl^Vp=X1dRIeobg^rM*S zZHF7#qhpVZaC{~FAFg=M#`;MfNKM}S9E0n`F2iQIrV)S+)hZK@(*Xh4him780-Reie;;*UZB{`iW=-rnjl*ss}4J{n|k zqXq)i@7}g0!_Tfy`1Z^>)HB#i8pgO$(lw55eOc z>iOvyrC!jINPQThH|1Nu$k$I7@;xv3ZZLX+?5`xD?MFYVR-kdUU70;S!<^s6uIiel-~J$nFIFZSEl40?=L5d2Us0IP zd=u!)_Sps$>?O`mGfk{|CtpR*Us;^N!+;}!l;5DG=}Ps@VxuUXSNI~ff8uTMybiDoeI=aez^tCtsL zr>#I^{m6F~=XQ3w7)Er~5`~KY!kG?2j`xUWxqoNgkcZ zjwgIDIV1LhWca5}7Uy&Mo%S2ZXumwHjDJ;LK={()edQcGp6IFj*}a_JQN6WmH_mk{ z)ukrMwNs6#pJiX&4{iG-vNdu^e@$_P{g(lGGR1GCnzmO=##$%rrheMLfNEm_oJs3H z0S*PdFxlL?=N(NGe$CJGE;d`9($IM7*C60ap$ve3Upt9(G3q1zp^p4V*n1HbeNQU) z0|Nkio;uV=DlDwXCU{>cZh+|5@X!q|uYteo^n-)H4UaE8KMVOM{tLBX81d_U2A^Mc zFqrDi&DbF2GnndyC2zi+KN41~QJgD(WS23HYsT8F5hj@@(Z2s>>ym^!9A3Y4F_v7zu<@BEH zcfJ{|msvmA(}b45Km>Lg-Cmi?3zsTAz+gi`$*E3`?|^k0WKOd46aL4ixcKuBd?;o5LG*W!PMV!or+choMN$6~^FPs# zzNpx%j$~{h(}~i^9+3Rho<|u>_Py`EI3-UGsK1bW@V`a|d_r!NeVkn{D)>Bc!l^*i zWF-QF)^{!hTxA76^YldOM}4Au#kEz@%4$b{3ikh!s2GmY5I;Z|@aH$mFjKCNd@5z!Lwv&{ZlVv*+X^v<(;SwHAs(m(j*+A!=R{U>?r=7j`57t-|7dKBC*y2AaK-(!aRzx3?tJI@Cv z$TqcJ+wO{sZpwe{MF}sWx8CXL(?AWzp~hc;>;Z+PZ)zitpG033+7|ik<~QNXY!09g z;_H{g_9I$fRNy7A3KYXF^pgHJf`YjrY~M-^*lDae(l%WIWckSQC5XrOwT1cpqj}_S z@9!B3WfBS!Z?Km4x_~-U+ zu3F$+p1hcsIU!w0&?pKO=yf`PkgqPxZ#^}3d z_7>@H?z?v)pOomsTs?dP^R9+u`54ZpQjgYG>6(NeQpa?YfDN&Nu+k{7#et*k>qy8` z;8Cv|)$%?$@>3Px2K?__WcRDcN72sI4)@h2%ayoc8h^(RZ{zt2Bp>|<1(kh09X*X7 z)_$Cg^)qFPZx1`3`dfy&sa|^=Fcv{(O=5z{bT{OEJQ=kn(Tq=eKU4!a*=QDe9Gm$2 zNH#W!x$Ay0*@kDM)|<3c_tjUg9#J9OKh|5+_tIjhdT$o=t1{eQJ~n`$Gv91~#taM! zXQ5!_9tS;6X+}KOk%g!j^>XO>Y{&~Xzy47T)*;?%OQj&#q*3L>RE6u7CA8jT2i~Um z6s))uKO*^k4%%yrS~lLFc6Yayy)WX28&embV=%qHsRzD&mce9ioTlG)FM}zbJpc5_ zF$NR=DEZamH4G+v8FoGp!0(a;k$Qkj!4V%{xaJ|&PjKEZA~5OyM`9*&`lZGFS9QPpA8dRV@cq%XKc5+f zgUR4$wTZiS045t^faqC^qtu$Q_YklhvNwp)^ELUuLtZ!6*zcsLz!S9?gqi=<8*A5? z@pe$Z?=GD#1be(*=NB^&F+l|@(ieBTRuj^uZZ!B_3Nc8IV-M8Pvu1EHdiW}>`ZTlo^aLV;t zM`*tPA^I+^&k_BYC+d;Sf`1xWL+@uXn(}_ed{FIg0ees-gMMrqvmXep7sKLJIqZ5g zzspX}yN|)t|J9U3XM?eL`_Xbt8II3gy}D-1sc(M${WCCA<&c8ezHdd5DGxa3{oc_Xozg`lOI6hE)?jEU@^N*MZlZ_W`HqI|eAFh@o_CD0x z7rQ&gs_^*-rd1N1tzb7q&T_5!YjW$oDJ}~mDM2l@>59{wsC44M-(hGUo_OyHl zt+#?aLv{oFVgCht67jEHmmy4so67$M&sbQSTF3E;`Zc2Ve%7zx!`llI09$2!Kttz? z^VQl&TYWr)98P%by)U#l6!EDs7@dv&u4}cnVE>(NVfa54e(mdSp8CTmS(!tUXRX>) z4@45t_YUemVZ3DN0X_YfcVtVZP>1`Mwz;h@KdMF)6YQ?G!2ch@LySf{|-0H2UVB^VtfA;K2PG2b=IlsVu)EB~t z5xI))H!eyamhbOCJ^fPMw}=1jmB}GxdpMcq`-K-H^@nJ_ZvWN-KjA+9MbZ7&6c()h z+>-o|v=JqnO+fi?Wj#^M57}F;{-)(+c7I*K_i2q)wPWGK6Rf`l_Uj>G#1nm5VJ-#N zy4n8V4A>!o*#$GrSAxssXY)z*G4(TeehB#0mZCy0;}8AFr^z;^w)HFThmLu@@+j(4 z1~}YOP8Ov|J%vAoVX=K4IY`AzIYwQa%iI-QO8D!_52YmNbMEsfLuM?8& z%KXw8+W$r9vvK=w)NH5m9}+fnvEwQJ@7l~qCIP!9Lm%%TeZ6+$Q2!m2&tO-i6Kp@= z3cvqf%Osx{?JN9{9Z&Fg4!`_;aDPNI$k9X}7U!0h{lT?~PQ>~>3LB|=J}`N7Ai>Yh z*JN<&zP95hCI-{~Q)`cG$inVIx8h$s$qzXXs`)~H>>7X9{df;!TS&e%hhU-yNqv&E z?hC9J`vc%BVowL?ebXB+C^ZY}{7(jcG#T#L7UN{^BOCgjBvC$~+K7LkTt#?1`G1Uw zdonh^$@dXe75#uI!>dXmTcKswizO!I7I{S=S9YuEW+24_Qm=_!ru7ew`t+r94LNI&vr zw*Dl*VdF8w)}wvnf;H+dk1a_y4y1H){3d&8N<+Q%))tm; z6QcSm2~tYI*nZcT`XG@1je_GSKR?M2-tGMy|GJVq#*`mW{r?zPTe6gRBW(YgH zhlL+^Vf}2*$Vg!4C;eJ6`z+c{>bHScK^;9c%1Z2^ppbkdl%h9_?HCzet^rDTgp-2 zt255d-nZ7cyr{qxsi%7%;_u+j=Ie*zch{Ai8)D<@!LMa6w(|-%lJ7$+oEo`S{b5Uy zL#!@4zT@F=|1rp$e#=^pZx>MixOH1Rk2fHBprv)?H{~!!Q@s&vSGhiXxWdo1*-0Ef z34ilWm+<=|{(dTB(Hu6u3H&SHAL&={-~ZfZ-jCxKJ!z?8Fww)6Zfz2Sv44Z1xA$@W ze0`~X;>gukRp9`G$UYKyx0|nL67ca?Tw;)W=kiSveDOu?7PFeUD zlJ5m=TzEc4V2=kq>NvvbE7g-T%{V+53u%OGm}S5>s(Zj*Y2F5DjcpU{6ES0W;laeYr4&L7=8PQ*xZWtBzfI?*YnTFqk+eL0%c(% z-%KAH8wf=|j)*xo*{=kPKS4b{BrEd%L#G~M=Og?U@4AEIBhiDB1U0{v#&{s_oE_Mc z!N%8TYK%kcYYG{>EK`$cIg~z~!DYZ#H`X(Q5r1i{!Tx#-rh0?zyP^aJQ+%zI@V~i# zg!W&|>Sn!Ezr8Chzxbna_6y1HYaIfoe^gIiM#0A5VRZzutBjK19jHlABW}r`W9fJ3 zMOTf6EEJRv;KvV_W%1q^Auy5bYbI<+k|nfJ`9o#*+~R_#{(OA?qs#Hn91yFHr}y^| z=JU@y`tNTzdHYZ=koHHy_Ms`vAV%>Tfx+RUvQLhAM2t2QeRbI1>we&XI-*HDKFe9* zb+YmLHC<_)88O?~dZYd5hi}x5u_rAodiL47cs?)H|C_UR?OHbe{lygDACXs4KUCKY zgl7F((}|p%iby?0!~=-c)hl{fKkaXlkP(R&q_>Y_I3PSl>n9;2;lxj2E1U_PgWye?2t88p{mkMs z?E2&nkS4uV#Nc|+Gneb|#|$Qa#^3R6p59v$i zXN`}F$P)yg#C@~zRIeBH3iy1}ek^Yt$nvrNsM$N~5n0FSvC{|&qmPUydLRY*IX$EL zU=El_*zrodzgzIC)PdslkWbX?-FpW`K;DsjF4b`eRpl($-b}@;?}idel1CnEhl)pVw+4^|vS<7~9vg;lPijqAzO- z=YX$)eiXx?fak$(b8;;4`|VvhW#S_<;~T~uj3Rtq@X#XYHA+Ko5`8gad#gLdcgHL8 zPgPZO{6YEffp{?r)B?!xY##VCS=>XgcSHVo>P$rbKz_bIqq&3K5Xm!ViY!%Av*tbe`G&$q7M#z zJD*>wSK3oEyb=0*Gjr+Pjp)Hp#kvv(lf5agpn$JO*pm|bD?BFF zPxh-fj_u$GP53-<;+{RMpW=_)!`4~`FQa@!!I{nAV}^OUFFwC{B7@0ZA8k%`D%PeL zS@Hi@+jF%)7WUY!13o35^wA&O?tc1;s^26V&AL(V<=Ar_vX9O|`7qz93H4A2nI7>Z zL_ZK6RY1Nr%8({{AZU}7_>{&qdLbM0)6r~3M?_HBLa{s|vn`r`LihT#(0pJiyH;!p9(wV_9-UV#2cWlr0j*iphR z9Q=3aV_$OlIX%cG{l9Sc0(L%<4+>R#fbtXN>zTZoG}cf02r7nHB5<$4>lO|(nDhrb z9+|;ZAGEOAUJ$$^c!v-3L-sz>-!SB6`x}}8(Q22?vM}&GB&f3o)U4$coxZx?02U4>!Pz$*?7|5XGxKI;l#h6IJ0yI>nHsnt}~V6-&Be} z4ODf5zs17_86^HzSb9|Gk==n@pJpG~ms+>&I-uwdGX*=*1Jp-P_yqI;5yFoor|B(KoJ?uX>w!at!3vI$9kQS#1G#^&fL-`w8`ZphiW`Kyk z(mYtvME|d2_2$aW;5ULc5>HR~Yr5O(Wb1?W=Nor6qTdt0(d)g1te@of_V$Q$`9XF6tRa9exI(2*xw1CGZsEh@)7}{!?D!uNlq^RQhedBj7B5tC;K}ro-afnh&>oD#w-5!!PEJ9g8Rs& zIgpTuKDh4LVd*2Z9pZ(H;A zThb_220P{|{@B8r>cU**UC_r;T{J%Js2AFcb3$Lxz0vz2w>L}${w{r@C`>OOxPbh9 zoi8gZft?@opLY6OgdQJDi<p(# zb3mV9FvS-;{j!b09{9^oeFncLy`3?}-j4mKb-D)V%l8DL5*2>h_V8kB6spxgLvfRQ zo&bXZJ0IES&08CmGPn!;{hJfhxjd4b<`IAT#JX2lKk@(X8p^-RV66%HzlRTV`Gf3V zErk_janJ^0pc5nmzma}w!L`FEiR(E)AEV`QgYh%h5kA=M*}LHTGGo4!d^*J6CaBs5 z=@%Zc|IPpXb9OzVM~l|hR)t~3UirY=XO{R7>!ZiY@!{@$qIBkVWDxVk9JqZfciv`V7sMIlHtDZ@7_7*V%P3&+wJalo8!j`zkAL-_ug}U z|IhFI&V^~``4}AoF-^nz{$n~{+SoqzbG0#ksDD_69ULZp0QZcSb}xLMU8`oVze@lA zGf4dR`3mPv>?y51{P#}HJ{(ulu6?Z-=gF7C-;Wu;T-_e5{KAL#Kh&}SvDN1XRj zrTW)hJMxtrpCKF%AbhXS4B`Lu7YtD!$wNFI`U&kH`GvY4&+Bj)IKHa#+w(19uM|K( z#%VTd?O;D%aBw&1+_tK~0!1m2@)4=VjQzE-2hpJM%t@YTp> z2z!_G>(XVh%R~6q32oK1y6i%U5>^HL)#yDB2OLpPzfbuI^kMq%LC|Y3*b&b0nfw#a zII#aDRLCC5SX(dXpZt$Ihm`ZYp6r|h3-&`pfqnAZ^iT9$w0!S_ z{ClfmZ(RS_vUfO4{I@>lYg$7#W_E*|| zj&})P8#H}j$~S(A_74KL<|^Si>iRqJhddlO@W&3A^IG;E^j$T-4v!BG!sAv8|9OO? zQ~0xKJ*}|FEBFEBvn=vrJ@R>FZs55&>Un<0@Irs=`}~LBPxcP-b7=GrduLRm&>EZ3 zri@=f?Dh;q`n?Y% z-3$vYJdpXfsy%T!59`5K%heJ1BSrvbzgn#LowlD{yZ9&gl`gYJ>Xzum9^yaaiu32R zzUlGQZc&~e4f{Lju&)&$KWUchzdwGb@j=q;iz(%)DfSq2EAUSi?w70Bs391c7D@ax zBh5Ji?f+YJ2iZ?r{Zyh71y2qIQSBL=nP8(({5W5L3tFa3@W5cOaC9S!g> z>K8vqMKhB_zoYTh%fE93B=+)qU^H}I5!+WXH3^}%KiSF}u))Rv>mriPX9b`Sh{wOw z^=c<592^1JMrJ-{xB>hx7OVdcr}OxIDYhE5Sgs_LM^Uj-`&0Wxt(E?wK2V6GSot5J ze^oeCPnWKit0V9y8v!RgX24+PvC?~{EX>_1ONLdYt@GxvTJQ_GeIUnnym~LEjn7C@LzmgM z*`VxFl!wrtzj7!d)*wYiH;xX?guazK_PmFBpT#;2%`~3!>Jozguwtd#Qhvw1bs>Dn zqk8LsGm1KYatAy*lI?9+IVb4-#{jZbhsfqpzo*kPXtwoEDL&s!`re?&TVXbgZgyRd z*l)aV6%?XR;f3^w|4HSycy?^8r0${w26^-Fod)Jz_C0leWqA^#NLP;DK=^}f^nC>X z$x8{HcT5=M&I9g^8LxCJXEs2-C)p!uE~&(49Z0?M&Ry4OkfNMS4O>`}SCV(maL#(} zeXM`seakQ0=1#kecpa2&$xhbcHPwvnQD#-K8yVs6Q2D2xxBO|JhcP3HVNR-)T23m% z@NdxmXV7115dE*nax$b#@-Vh-yR!R9!xPDUoh}h^X zC0C`#obqGp=f9jbrO|6wINNvDlG)Jj7PE1QBm#qWXrL zx96Ygcyh5}yae=YWy2Tk;VsG)^?~+AP=ykB@dg@oy5C*o zl2zjeFzG+S-dUM;C4_H~7uExWF{*wEc4A%ik=o^wMNSqpwoa8%1j*4SjVJJYFY{Jz zuOF?r0sYbUxIHd;S=5qPfa-q8mk*QtFc63W{NaCU7yiV*R_4SL%*ong+`wK#sVtXn zUwMU9YwznoK8G@O1^ff0Fu6y{WeFXI@s6#^IYoIQxzXf*%Z>dY6b+C3AF0i@$fWbR znJV{J6x02{ACD1B*9P{YLD@2xZUsGL9MhggAF9%e!OSjfngmA0T2Swf#n>3wZiDiq zHvf=ER3t;1X2G(>jZ+h9(wwg>yJlN2 z460q4kl&;$vc{_dTYN^-{Z6P4lR3)nEoweq;*aheSvJ!5pwQQg{E#N1 zqfX>>Xr>P|=;w(QCKp(`{12SN*@}sZkN80zD_LIC?wpc>hRdIup!U1N?630ithL2j z!fuHo>{rWsw-;FEmIa>=fy7^I>)-ATQNN-*T=!mlhdt>oUjJ}iv(1GK+8VVYf1y-s zYp~mS{4?;QN1A>7<1dEVpNq9LN)x~Qf)A?^C1GRhReq7V_s*T;p$6~8_ehN|s`;7s zD5gD{cIeK_m=pT=9*hIjH_)G209ok|CoGy1WHHua{^g`_BiW89KPLW`u|KqabTrfW zL(sR!;YB8tb77pmYmkpg%rAQUFPUHUbAHbsvt%{^A2A$D=+0z$u}tHG-2gkRmzhUS zk+%^&+8d@iX)uD|sr%xS%`D=`BLq_kTNrDpS@3+73gCzMe`Mr~-5ie33R~zsb9eA7 z#O?Pe%7IiX%g%FKC$L&ibN2N`{nD18s=BMUQ2&43u_$5pD_RdHFrVKA3Gx17%_rg= z-u)upkMPCQH0}Io%ZYfW+aux;>HQ`$MLr|oSB)*sajS@b$Nd)Od3x_TgOBZjjX?CD zmZsVVCG1z$pvsRLl6I4AK?VJpqg@jaIk^Dy`HK3Sj8{dL)Ex)z1gjfx2&lGwpB~$`Lg_e6RNFSw?`RN3FRjAO4;f? z%<#3SZ#T)(#<#(LQ@5_j%7Y^0J-;XgA1>BfVl5_vA&l44c-1e!YC@>wTiT1)dUSq$Ahp1p?@f0+E20cK*&HW$j zd(xHnzp%zk$UlrBoKw3 zp!!oVPk&xT0`1cqlROIRmF10IvkKFA(c*6Xl2Sril^*&cVGvI4Jiqc3lbSI;osPTU zKc;e?__ak|-6rB|z%S!7@|{8+1D`Ar37taUJej&L{+<_oLLSuG!WMo82XJfs0e@_@ zmS+l|75sl+JSb*{LExJTW8g)5;7fX1nsYjwx7@izz>rUAa#HAhNuNB9xVYQ&`%%AA zUUU6?#Ii<85iijfhZ_uwUjla`{ifDtWjkV#4{=nP8U;-Hgxp{cSB*!&r2iyB;`8S{ zksNF88=T1HaM;2gsVV<00juNH>R`REqs6XN1L0eQcPQ7l>|ACP#yc7K*4Ib*b)w8n zsv9PIL@x6qvGG3DpGo|rE5R7?ca;CSQ`6U1S8Qk27RHuEDZ6NXy5vgtlu{jJi?4^j z1NwT0U)6WEU125mg-!%Cb@;XSn^NVi&F2*ccd$-#YydU!VqJmo6 zo&S(Iq{G0M?DZ8KrupA){8kKy!xnl>M-L_nesVI^XkL?>nZfI6JTi-l1WfcVefD}W zUj>l&7k+lJlD9{^wsifa^5dh+46G32d#!O2wW z*+Uop-Tz>Ht%q4P{ty-&THnVB1C8Ln`=8Ah@`UDh?X>)SgdY#&F+ndUZ2i)};A9b> zU(zQVw?>Qk-xptFx%1AjJ9$09cd#!?9H#q+hVlnF9Ba85GcF1KL-hVd%dOAx`dSOl z54!F;ZNIWlfj)V{R#W5H`{L!T(1@=nL_e+VZ4M=%Nt{!VPo=#{iNp)2fc|Z@eG}?_ zKZ5%u`@)8BJzr0at=e?7J^v!rQ8|!mGne^}{7_lrGX!QS=MJP+n`GB!j2wIHF-Wl| zus$LC6XTqxGy!`uHIH>0^?YEa`}1wbh5}+dNI$nH9Vyj%Cwt6j=_}9aP*mwo^1H{h zrORi$#c)a0(V@Sa_NWUikYRVj-3zuT8n%|r2W~9 z%uMoE&dv+_#9MqCAhE@CS*35#o7qg#LWBJit0 zJd@;&1NF)%q&W(~tXr0M0z1+XpGxCZi3`ZmYE*ouRDX+H;a2%aGz-L0`%m-tc@&i+ zNW@>-!t4#|WMEGm(f{gJPrU|f`r&6JT|Xp!|8T+&d44*zy{9ou^*+!&#IF>!4i*V{MD`(OK;$DJ`|-iA==!GmKC4z|>i73cHA6$w_>bE(zjHw% zukVqbNM8Nf2*FPvZ=`|AFJbnzLil$E2MTeR@Uv`ghlY%}7@yT>!ui8O{$3L6?;iG62)N+A+mBX#Ti65ZvT&Yr zZno&3#;;HI`+56Vi%0tL{4WdoKY{#Xa;_ryKk>7mYtqfzyHyXMdxr{lDmTKPWHPeB zq8ph?Qclv&v3;TeST0EyCOS3wmw22>8{axQwK0?EQ})dt-569}+zbnV;Lg5m`CJ8= zWa+J>kwJe@bu(r@(`y8NgM6&0WY@z#s!2d&IKltn#pXOh{08gU)c^W}Qy*#eWY-Kh zL*G(G66q^r5zM;{wkDNz(9gz@u4SZGgYT<5kXqH$DZd_~z`^unOQoB&+C%=jZOKlC z^iCf7ngFOm9S_%_ht<&6Y&H--w8Mc1N>rpl&HgmDx5)Q0GhRD zzE?~A(k;t%eHQXaa=uYn#@qMAxJ}P3>kW-I@i#Z+KP7q(&5ywxmh?Pt4tsp*qU-L` z^l`dK{J?4Q^z#NEz&`qL{{@c!qoglkzh#KNw<$9n@WpXPi0 z`r?PD!%atYd+Xu4!sOAfuG_%t$$lC7XyfA?4#WA}IPPo#hYJ@qn&gqbasflW$ItE- z^GEg^Ya0EgsE7Y&V*Vb%AM2qnMATOmi~3}@iSkQunCRF2v}4-*L4r-&-|aS?h==?V z^~5hG9xWC36Thvqy;{3!< zbNp-OWiaC_C-D-^fOC_Ktu=3JZ&VBY4J<(5AC3QhW61wBdQPVKo$@&{t^t2pZrGNQ zjQ&@jmSY)#}E4)2REOqN^2#dwi_&OI5-;q~O7F?pw^!SaFT&O-(KGZlm&~qFg|GD=V*Yv`bfvJy;J| zLvTw&#t`*>8E4qPhy3o!!O!2t-)9^2*<4r7W)71*V6w?VUXVOzGq2I>E&bq7OnhIg zrP?&>OSc^5_Y?hJIdoZDtieU9H};GOe9bcrNK1Ca3Vp(Ds+Q)MpVIsp0p&(3?4$i{ znV(f&t*oAjGn0uQHa*=E&if~P@OMS-bde!^s(kPe{{Ykd{nGUFjN`K&uG_x9LFi9J|7Z6fRjpm> zgXp_@L_g29zPQ=;^0R>e@86F1%Nv}k;xN6x93K&q7Q}yREU9jqU#*b;wf>>~aU6aR z^4Xob$d=Ri|J{P-iJpyRT_OF6_{WYZo&WUX{HT}f z|B6_FT4sWt5KW2s8qIRB-DSit978#+>QOB4$Gvu(01Ry$`t*NrQROrBiSzF9`;lVZND#?yW01b@5d1$3)+sKwYx>m$-0Y`PVQ+T^ z1%AxLe3cDG2!2QUv}?!A^d@~GX4D4cyZoWKKM(;(FD;y^i|V>$Qps~pa-el;}sxS0*{4@$+7!F0r1C9tVd%;@M;l#TpLLDnkQ57FDNYAsyUBXxSb zA$&L!BzaWXr=Q=U%Bu)RJhi4m`nkL9e5nQj2E7{t>ke`l^Do8u0v9<<{SOV63wkB| z@OV1?yxwT>n7&`+5%QxS8qE6T)i?6`M(I?l)2-`wVT&3iT0iCW#J>mo2jAduwd7_C zn;i=UY;v1s+;)$cZ^B1-K?FUMJ}Y+(M0vsm$p=_^19euh+{k@;qIiJ_tfp4$Pn;PEJxQ8iU(c;nW&giSr zqHDb12OiU<$=7D{_B3DP$_>$giG8a6ki$cHdAz<~DzH40`APqITG-6%c|FpHf#C zzdxi$n|2fRx&-}|9@b#eXCeRx6-*7PjoTi>$D8nfEEmE*R7f6ARQ*cO2l4Y##Ow3=CqV!H z;G~dG;z<$9Ifz*mS?gBv*i3LnX`seY7-(^S>9V|G8yl16uV#@K2BA zdodxAw_rl!<--hZvF z!2CDYyes_gB;PZV^O8k9=-ps5M++GB$Y&zxsOt--i+fB}rKW9C=<=BGbBWm^{MC)*pL_7}uWQfO?1z0% zwV64r>Jz7T34TNT#Ow76e6~ZL_+?qh7vcv>sVw*n=@-NPpnDI~Y%3@brV>xWa3e;j*Uq7Jv*tgWYl-JW~zqZ)z5ghKv{8W?=+XSrX>(2{V za+?17=9({XxW2d_`g**P!zV%C^5gdwaJaoV)*SxfKR(6i!GB7KIrz-;i3=rA?5^UsjJ zR}y|h+()bLZaaO6^f#=(s`g9DEs7ey2I`8SdIRgO*Y?x7)aFv`g-e9rSdZ{%^=A=J zL9nY&ZGby8j`}b4pD|_S1cU!FAKY}H-LKL+MG)uXys+Nf%FTSd$zJR2EraJkD{dqA_osV^o=szL#D>a=_*ly~R?8j^lm9HjVHEZi(OblMR~4@( zdhW~A*AMW%QeCUAkC1(W`P!`2F7E0?UH4AC_|XB>c~tbJg|SDkVbG z7vzTMFs{(MK|j;<1r6>0%YLOFA$kuQh^nvD5fYv$wjy33!6=n}q<&I;v6GE?nfp*k z<05~HT<$LC-}@fMr?TRh;QyqbIUX+({*)82pJw>wT;9GA_}@21^7o<|AVc`XUJS}d zLmDvQ-`bbzVILuyKb!o=;13yYD?>giL(kbO#83SGuDf}E^!)R(Ymmc)kI&v3F7T23 zdH=6)-zcvqdhWSK=LdwJQRYTnUj*zh>-10dANbpS{C=YUOovy?R?fXgm@%{85{z<0Fsl=Isgp-JcJRbGRS* zO#6-*KHxC7`!RwBL) z{HU{4#h)wiFOxps5qDD=Z%_EJ>BE{P4%7Q~%HgUb zxAOMXe@|wa*1u0lbW5@3w)&>n`7BIw4vnk+?HpGkRP9>FebbZ_j)k{PQ56PNvFmSn&&m$tU7V@-_>4f`8eZTZN5X zp+fT`pV!;d_^eTmi+%>3dURqr`Zg#QBCh z6Q{i&zIW=%REXOv3VmPM<)%7*zbbD_BLV`(_l$LV6Q;uj_nbb);Q`F=bG~KN9?|v6 zT;k^}&RaCA#4wgd^bUBheTSfL!iS9q6GHH4CVg+wYH#R$Uk3jI_IpE%Dd?2+sfbEh z-ZL*Zy~@4EeJi9{c_0vQ<1B>%xQ%H2pd(&C|BT`}e}MpQ{(dxm9&by7fTaQH*$2Hs zU%>7Zi5+7v^Lo&~wDVG>i^IgfW0&7FThT_m6XPRwL;^VHn|VXckJSA@?(%~P%gxq< zW-J&UqN}(}TDb(v?x|YqmlDdYBu#K(?Km7p>-hl)Zf}Da=()(Ric{ ztuv8-pmq6T#M37ee>k3~@&^ZNnWgF1*~QqOG3nf-@snu#2CDc6peOj3Ol1T5 zdLF@VtkL~nMDImQ_X+!4)%S~*3YhS}F12pDyf@u5^PX$?`>OO&-zwVE{Y&?yJSFN? zd!cz3hp9fLXz3gdtNnZR{?+$M*{9!+=cm@`{j2nZ1sQ(-Quqs8*l!N_Y+$Q0Mf`Qm znjE2T6kz-=w{8;nNAl?KmtR}Y@9&Y0$3&$@aDE*i`i-rR3)wTJmkHmEj+Q*$p2jz* z#ESkQ9pR5F;rG*e=fAL@FudY>Xg-sG54=C}$JU2;30SqSZacM0Ijgn!t^RzZ&)n2~ zU?;f4-*p7+=+&DaEYh_Y=G%_A^!v(|T6@jvYe3hdj67_!{BQ=>dKo z?0s$pZ%^MJtnw$S$}BFDzgZre;nwSWq~7hI5h|mBdDI^H)<}Q$ZMuHn>&>uVeVw`C zzA*aAS2Kxz;Vy6kKrw3Zx?(j!yZWiWDcV)yr(u|nPi^xrFV;bN5INgXWosH~Uq<{% z_D4>_O4-)iYj!r{edKo5z)H4H(h`#Cei&m3My3g*7cwF@5=W}9qR;#Bh{3!f3*Jtw z9}Tyqn;3@F$Mw6%9wMnZde;Tbvc-8r$YZ^Ut68@`YK+2QOD3wC~sr3BR z(tW(1V6P=b_=kERe|zI}dsuD1G+Okp(l;FT{C>j6+u*S0FzNG6`}gnXFxB^@+$Q(~ z^=DpMG@af}*W8gJ`~%c~W6CG#zpW_6{E7ai@ta!EZ@Vv2&@bUnM5TYaK58nF_4Tg; z=ucypvIRdR`hI2jF-`t@pV$oS57{=Vejyl}_epBHd^ zt@+ZCcA1)8lgXhzreW+1BF7=yJL;M z9;sfWpO^ZUp}= zEc^O{99HSg5jCB@B=0o)o#;nD6U4wfMWz)0+P0t?7`p z_xTa@fmjRNk^jKokNgSn=Ppou+7(qEDrK*x2NmDw%ml19TUn>KBzrW5cDrl);rf8@ zSRMP(;!?)cc$B1|T!$HN9cB{cf2hTV7p=F0Q`iq_DXFX)Q39HTrT&uw3NjDObmvM6 zsKsE(s|i=-^JT@O>id(Y20rBPNAJ5f58>pYLi+(7bB-S5Fv)*wT)xl;2%lHER*Ctc z=lSi4k-RC_kYEEJysRI@34dTL%k!pcyyKnUyJ=R7~i}cS#yA^Bk*VQ zV`bw`*jI#4_Sw<|unXltvXk~h3VA{CWu-YEi}C7-sfB;MWtG|(KQzA4(Q5>Jra0D; zFfCqYT^9D&PtzZ%{i-F=q4_6$pxV^wDiQNX^zp{r-ZI|5(VS=6G8sGFUoX{}Qysis zqtD;c&p)v~Y-Rb|V+H+F{+i*A*}|R~OwYH-@}o}PpTY7q)5YH40EZjFKOC`+&jSBd zp9noKWna<0NiEz)A^W6pqAbAM6MumFLD*g zbaze=J(Xl$eECh~N~O<8`S+|Wejvk@fZ0lege88k${uc1T^6IGF{n317~SQgVTtOZ z3eo#omHt#bR3p%$G5#8LLjKVG)8r4wRw;49&hMiT?@#Mb)c>wOzQ^G4Wj%$dl>fPb@)dU~RZ5kqw$_|;%z5lB-};kj z(QIXZ4B}7bf3v|bv8FM-g;@t;tSsrmUx)DLvZ`MijS+kKc#^%*>N_atpY)xFBJ}kO zf|2e+@N2^7)%I|*k9K{9-G}kU3)kdi_@Y&vMcw}oeI4uj+J{*2y@-!-k=&*N@&1Q> zzk2t7@{dGcK^lmYy@c3$!$GF*Zw`+f4~=I{koJG~d9a-*@V+i)v~( zO!U0a@%sN2F!YamW`0utfc-4&OY#@a?O3Mi@3@J+@BNX(^ZETZV>}+I{PwL%E@`(~ z{Ufl}($lpTs(ubM0Tillls*DH2eOAeN~G_*WLN}J+A#41g8dyYx3;{a-B076;q|(A zg))K@9KPCHq-Gnrm-fGc{|^o1KpEF|gQ9Qwp_TGDT)s7m^Kv2fA2)~3wg-^^1UY|h zBzn!vDDOkFKd#W}1HWQprkzfPhtGaO`&wGx1qJVDTM~i;wYElStc{rn_ALop)oin}qeBzp z1h=*t)$jK@5N~Kw=ARjr(q}plFLpX&j27@`;i)}%k6gqn=x_69MDP5i|2_Y%L?bI3 zqkIy6#M@m_tmn&4QNAw3Ysw$X53>{@5rT zJ94Cw*VFwC_Rn}YOwUVxOyzGr1zIfepKXbY`t&c>@RXCz)68R6(l(<@GI7UMlQAZV1!j{*fy(>q( zpZfTBmvQX>oMe~dY9Y^);D7t7vOt-u%#D1dKc*HY;m= zcgGI?{p8;Z-@5-nWGmdIIC7w$Tahm%FS{-}Ce&rWbSu8=YWb}Z7*N?PqxJVBza}3~ zD6GZ42>QTa?U**c@FWAjKKq^Rs(neh4^+2gVsxFEgyj#BxgL501283ycMr9%7y+tXw=P8@;C^4dH%`1ju_qj{k!a)f92KwQmQ0)0LQi^(|9H& z!IHU!h??>p$qH;UM$vxA7XW|1tQd{f$*5|C^dMg?=+Qp`deriJ(t41b)90bKR8;(B zMj_Ao3EvHR{5J8A8PoJ{qs7U#w+r-F`HSPl$S|!p^7m4Hkfw-fur1u%M)sOoNPktP z%7uME`u-cg32fo@*)E#KnpNxwg}>y9P?tM+`Ic%DjM zQK`bdCwn8>yFcZV?OR1X`7gTfoG0v$ClG%oE8W5#@D^kI9OTcV=PyZFF8U`prAS}Tr1*sH#OITE`y%*feD7q5 z@mQDDFV$E0{U*@P=H<#c@(-?dO}#)wU`Eadq91yn-zJKUQ;iDqGbv)9lO@`rpUo%x zB&a03aGZfZM3QeTlI<~LweJ;pp}`-JQI0x+^(jY_eL<^t6AJWw%k1#Bc;r?!`k+xb z*{s^IuyC|TDPa?-coWcjQVGtIML8GoO25<*?ry^Adr~T8q8zCUwjDaP3x=xd4j*nZw{82 z4bg-!h`wg*>)9>>+||J=>i%uHp>1$dyIqNVCDt;#3;Q`>Pt$xupO;GVybI`NgA`%C zC6nmcwQ3T)j7}&X`hMN*ciolPy@1V@Om8j;uBdh5{Nyjq@?b3!#TNnk$MT_D`J4~C z@eJ%<@Ef@AWa{r~`O}TS%L?nF-c6AIkzE@8?3-dWanKjz+>s%Dc?$VyPQ+JqQTj~_1!aG2K1WWOTniT;|F$8mJh{JYGX;oGX+LG|5b zZ@BsWq~F#rAKA#^edsSY=)Zx(w0Y;cICHH5CCSmPPpwniXlfC=lYeUKz?Fkf5^+wgfU-9RWev%U9 z5c)sG+pkP{hWo>?e&9BBY;y^FhxDCYt*1r26QXezrg<209e)-7b(RqQXXIqR!+NY& z-o!)59*9nC68Z=6n`~D=d;3u(cOd4N>6&w2ELN0vl*P#L6t}b5ln`!D`f8f5L^-HH zKWH?q$|w=@d*b$!^&ZdKwIK(~9(#Vo3mM+bXywLE16U2D!@VzHxg&(=>4)g~&_|%< zqY_CxRQ{yyPg&^#$JnFBw*-wt@MgrOMo}whOx`y98*8u`v~2NmM)FnuK|}LLl*f<@ zkZxa>WyNXL#2*f-=gq}~KlDXv@_Ja2wjO{z?khKj@a@bL#SeeipYsyO*Jj{PiA&Dm zFyW(P;T-}Wdmvw*>+Rjf>xo`HAL{hm1N?SIK4awdw0|%uIw^_6lwY=d?WDjr!dJZR zDqc_e@>3~#JmFV1H)8+yj%r^2F!JSWsp#wD@bHFvEX7~F^dg6~`^_yJCVH$=mOanm zIMrU#<4IOvJ+z~!T<{}04#^{G~lxbosvz@O59+*LL< zUA#Z?&pHETg29o0<#WIBJ%jk1NZ9Yl?`CDi#l>gXFQo~}KvkFze^OH70)GGL?>FB* zQMF0vYbWAo)uv}g>{o8s^T8+@6>aE|O7`ybY<*k1BR&i98riNYem~8xGPe7*5WHs} z;z@q#8!J6GE0XLblw^w?`<1SiKg9@`&5(A)e`jdDgP}4j{izK-{q?&Fq@Gq{EqVCk z&=t0rV2YnW`Wx_%10T_1D#=T?QNveUQRAN%47H=4ieI%4Ha+xgj|OY&4{}xF-5ef- z{%TK*7xoIB=Yjn5kMnxUCzQ1!tbxO-KVzD`LHRbTt80b+PW112>7~Et?I|A@!Uy+p zxDfF@NQWut8DD35=F9Q3c>N0GyPR=m-2)u<7JE#&Rc8df7LxyD8b5+QApP1m*U#Gz zZ!nl^+D67XymXPrbm-_mUgR*fU!9#1qE?L`xHDzJkBEL1@6-*v{fdHEiyXXJ=ri=a z4fA)s&g-GSnJ540jlbeB@dwv>J%14KJ9ElYy8ndyBXwpm-iX#QU3lZIL;U_FnLVc2 z!QgHV+w*ZE=CKXp`%a}AED`oLp$`qF7g(JCrv;*1DIypUJ1 z8@nsC`JnS35I2U^LpY3k+bd4RJHQ(u3F2>|NA>X=kSVxWXl)!?GySo zb_*>EN8$Bk|BrR)^1jv*ws7mZR41=rSMXkZ_>Vp)<1oqFjLdW)uW3CqINW6A_3H}y zr33ab!B2)a^h>UaV|~0H^kEt}zC+L##rywqT)BzY52hoZR+3%3-+gr_QxkU#i|?cO z%+tmB<-ENK=Ocabz-SeRX?@3Fd^V56jgbG3KJ)0`aCiXlk*GSZ5BbO+@y5k6wf}DA zG0eBqRI^~`hrB)6U(W@~#P=>))F|c3dVUb>m$sCC^U4RI_5oTS4kkGKhz`0@Id{w8 zx`H0l$of7%;lgs{lO_C;GQ2a~$q1vnE-xvWW8z=uSt*=EbLk23$;w;%5FZtG=I6dF2-Ry_&0V>3VbDfv`oGz?k^zuq{!L3LKZ6N z_Z2m5<5A{Om4EcZ0+gBQusLc(g-JhHgA5!Kp$CxsU2vCXZ_uUT4e!PO_1SrXo=x{Z zysK#4gHQAKi7$A#&hk)$%;DX;pzp5E$mj49$kTW3e|U_;M2~m;pj*J?pMP_;t`DCn zcCw3q8!6=Zih_L0riyYwPp8tGZ4J@-`;q_O_p@K$!24I@qy2}EarhMS-FF7k(>RRy zOY?Q-9<1c>nc^O4dVW3HPY`Cehw*x%7uQAI9w2^Ym|+zBkLce%{MKIHz8&h)&w z`^mo{+dBn5(D#=H9EqX&D$4i2DdWvjW&Szi9H475^uy#5 zCfm#rtbH0iG}|20@?8*rXdODgh0izn1N(9(b2WH$iuBQ($tkx6Lw|?=EDIZu1dMuF z&gJB-G{U}o^gF+Kkk^xc%h8$=H63o8w%?BAdE1WJc3%JRuBD5v{qk?layT6Ma92Om zaw~`L+jSuI8y9m+Is63dgY(%LMI5I0JOAce!d|^^Gw>GzmDf{#-OQ&NV>x^>HQ7?0 zp~siveyMNbsF&9-$Nu!h9YHaE$S+~buL$L%KqFc|Ny{Gpf4n_C|F~~K7l*ec=P}o$ zPS5184+h6C@Om2m1U-F)s^74_3>U9Qehka}juBzMe+9`z+S;1idHwK)MpJo4b`FPC z|KJ@>!XKlqf2Qd11yp~{LPs2LKLGussTW&wLWT5!gx-LGrh^w|6D+`K5fdL;hSLA5X!)la(<+@1!sIT^9ts+mSD4c=o}={Qkn^ zWJ{Gv$9FaVLyp(O>*;x0#`N_Cibv4n*EM_Knj7`=E-1hL5BD4m@cU_f^SXmB;SVJG z*<8MUnAa1(dZfg8jKjkldQ9Ovb_#kqv*G>tnx^59HAME!iFiY-wUxK0{Fz}lFUFdq zR;WMEV8t|f*dyK0&>+T(?1!&B?keT&X+0xp%J?+;Xa~%}?>*2b6wgn9${RPg4s5WJ!r3-#X^zMyH74c7`A1cc1Y2)7` zZOPqo6Yrn+ryM+7ufs-5^t|E*4xhmHTv2lQcn65Tc@%u#ZY5^9Y&%Kz+~p!=0rFW| zw?P42vWVhu>AXbk1Pe9(NAWV-swuTgif@p85uWYk+7pTjPQ=S29g*8Y4~)->H3yYe zmSa$k;?kBSi*SBTlkphkqYlJGsr&Qf%Dz9x{W}TwSMs}+IjEtY^O_# zEn9-9^d-cP{Zn$y#)EW%&@E9EpO(;0>-}#jEZx9<2$y&3^MTTY9KwFD z9+LwKe`tCTZ)7why}S;C-XC2+{6s56|Hf8*KON<(H+p@3UQhX-znwXn#NnbW*vGEi zJ`R(7d3T!s`&4?Z<=qkgm|lM(zI?-ofWsD^O7*1fyPnq%Zz!-KzI8o^O*l`dCidkH z4#%VawQF^Hrt?W!^YR3JoUj=zt(S(1cze}fZ`Ad3qR+4&mCC#x`F^B#l`9%@<08q| z=3NVK7WI&)u{&FZens-NV&k?1UQhP+f_k1$Ls2N+`N(${2>ZWqQNJ{M_wIANeSLAQ z?fXA}u7Sg(|2v1WL)4@wHITP+J32dgJ=t%sy!QR;I86SyJwMD4?@#`UO-J?pbStt9 z=8mG0Y~G%}R}Rh)`V#fm6=@ve3JJ*rqmk#M*3OS*-l<}KKh=A@o#J~4ZuM>gPtpqI zhhMNj2LB4AewE#48{XhFxrbaXoZW*`=cV}8%`y~D6tf|Q9Vh+4UkZKUFT5Bu1B>V% z`>JC?897gGP_z*fTVk?!?u|HqE=I$yX2N>ug9Ol7GA^!YjK%6h!AOxQ>;( z%oAr-oIZi`JjSl*`YzdzvGsbq9_@F5e~#OO6#r+FR~HF+Qfs@%e9gid6QA!Ti(<_S z&gXJaxv#EY@+Ro#&p^J#BfYDTwt?dV)PEMs7Ej-?VV3L>XU9#X0 zg^OY>Nn_%8S;|)=eO#WCOKqu8ykcg?(@$%VX5aL!uMqS^_H-K(Uh;Z^GpFS*aht$l z-D#_NJ;}?U5l6&@3eiic(e35%d&qC)AM^^i8T;SI&W;}A^*2NRSQRZV;V`X-p1}re z4wHZ1sEqkJO!~+1_5Qo2!(-p~e5Awu()x>n{i*vw?!@_|yq^5^5mRJ8YK7hx>|4N; zkGQ_bE$Efv$7Fen&_^)-X4yX?=66LF&a3K5jNtuwaUN1{yS|^~RI0bQ-sp)B)%(DY zZGDrIx!qtWzIihl$sY$YZYZ4{Gl>N>Lq567KV?5W>i)uum92ED=b7NRwRr1+(>tSC z>zP^`_LqBIthfDoNh%o$HbeiLa5byU3y;IDdqOQ(Kb%!&e>?>NN7{MHvhe{@ZX_JlvduJb~EoUp}Oez5nEFpdw< zA7hxYm2^9`sQZgoB@29mc9DLIhjdo06fSbI_8%5iaTxK2QtaiUT^uHP+4rrHpK_S| z-}36rd=9JoMLk7D947s>qM{;?!)ks&;|#H$PVz1zCr8-dMDI(@&#vU{sXl3UJNKWf z`>9yXM6Reu|L#d$A0quhcI)&*&#xKn7~$>7zxd&6-xS|Z=QA{Ud)M%K@LTC8Cq~LR zOwTVZ-SW%naOArc;(cwlMpNh15$=zNedCe({#MT?O8sqrW7$rAe?R#7z(!LEheO{h z_#NphiDd_czB1E+cnyC?NO~yBY3L*EiP+o|DrYvFN_Cao!}-y!M|Kq^D_c5gyhmTW z-hlWMr>WJuSysZP9E+DR&^z+$431s(|NUFcteRc+D2-}9plJJ!-@w#TE_Fm1!mvM{ zwGLtaM?wGEc|mLl{JR^2jY9gr8}a+674{>7VFN7O?;-lCS_K0kjr0Y_RIVQ?{$-Zt z-F`APj}6%Yq6{MdEFSux^083}kOS~v1>|y}?-D+<$ro=>Z@>@X=cMAda+u`xh;k6m z(+cI!Z9;-K9j>)`y^cZ-Q+zNB*Xf_=^XNx9O!UNfzDnFg{_XMLS~tI+@byrCneaEN z`iW8ZFOt0f?B2Z&-agjsmJWUNkMDCB`T3+@R|dv8O#CG6=?pK2>G}H+-^O9m_Z8(_Gs|en0KUR1$Q3n#R-T@M;r+M#Ntu7x-n~ zp4JoO)}-?sruv=utZ%sS<%Q#HWANX!!ZwU6$c(g>m{fGunsrE?t z=N{4c)gGmj^s(;5vv~gK3sKCzaa*#JMbrS_MwYqROQ(Z$z7D(SAL~R!BF>aLJDBQZ z*{)o22%yw!`K)9a{y-{(qE`L~{d=|iXN^Fb`k<8*Vd+%&_ff>^5d1ez=B=q7=J-MS z`g|oP$YHYI;)eVJ->}|gIo}?U%j?M=^+Eu0*uKzc_GI8Vl29Rhv??wShe`j;uWu0T zsow9(c$e23!Cy>mdi)^K^GoeN5bbII0gF6b%-c6gkhiid><6M(q@!uz^_0H@8N@{Y zpx2nF?c2BWdU}58mdC{XJ)n;_F6!}ll)rO4P}a@cQ~liji-Mj=zW%DWY6Y(+dRy~; z&Rh;_^teFq6WZ_UpJW17`5TK6@2j?#RbO9}RuVz>Y2%hrNsObWIo$d>s|X&ef~&)?0Es<{G+r zyNlLmy5T;UQYiaVN;2sSo^Hxtdmj6XmK`U1BB6fv-F*HDAKeKTh5k$Setk=ekcR}X z_3HlqSPRad{0AK$$R22&mQRG_af6&G@R?vwiyogq^zM50CB1*(TW@d0MgBe-zM7}` z?~#wswP`l5SNX${_l12<_`K@PjY8j5>G!9b-r(&?pTT+ZE)G-w-V|F3hpGLFULD`v zCTP%U&j|lkKk5-r!`<1?zv0iHJrI(owBF!^LN*oP{Zafa6W%nchd-rDw;yP{S+PHw zx2O0ChwLBc@QN(N6OE0H2^jX-rkyh)IlN7cS6rRJVbWJxe=EOHlv&>&iSIRCV|EIA zi1e$f@qm~ge66XhD^~N5Z1$=7a627C;Fr6$Uk{8T{F(11|H1Y$$;>3mXA5_eJi7CG zmYmY^`mB5NOvuj@B<=JT#ZUQ*ZzvbV6kGl}B^t*3RhC;B;DxF|l$?Uh%WBgZ9g5!JEW5o z^le1@w>B4*^7fF`F>4*MVm*@RE48dlm$z8Iu8Pyw)B0nq?AB4wC4N8APx*+hFH=4O zWnSVzUQhD+U|rk*hY8=y0#!oZYVz14{9T0qTelzVUkn^S2!|9 zs#E&pu2@S~Vh!ZIR!$e6O5OAgEf+dnq4m0)A@^jc8vb?o=Uesj2?~?*ExChz0$<60 zRpIf(@%CiDUpn@Y;0Khy)foSoXLvoy*Va$w|CZ`f^n8INkM5ayo7g`vfcT<7Z>s2@ z>Sx}e=kFo;_P-XMcJTgH{oC&n^i1?7%UK(EJ)Jk}e)rN54%7QAcj)b%vU7C$#{0)?M*;=jp7@7nf17wef;0E(FgS@9=*-WA>kdUqCVVTA<=s*>!H5E212Imd z0HnPiZe$D~d!#*ncGu`K?Tx^%Och?Y`xdjJ@@V=V`NbEe4D3}E2OlDRb<$fSnU|X# z24y$#kJ6l+8grC67McPxLSKF8133fnMtBzAAL##!(+8yMnK|uk=M?!{O63m3OKCpz zQ2r0(MBJ)M@D*7&FKB^D%>T($?*=jYevcpTuGNLdfr- z$#*zxgZ}%2NLj@16aVmC9y!MANj^`MPwDzT=&5w1R>)7HKWOg*yuBvBi&{8L_XnzO zQgMy0srK)*eC0&{Fn{ZKdy0<>Dwn^;VLC5V`Ea+;2PmFEUNcm~>s5LF$h8g*(|VoX zKksiiT$o&7@#6p|4%2$2tmyU^=;$UR0CynkBn za0K<|ol32>9h}iD=Hm(YlhU#$wePL;87Q86LFDP2J;+W@h43qb@*Dl7m&ddLAbmaw z@*t?J9AZxEK@;emC2H%z!~o80xOJh&F(Bj-#m7WUx`ch}#rmH+SC=1zuYJ?(U$Qr4 z1km#NBYEU))#F3lre>QRn6PsuWsjiq)z$WitfcHMg6Vt$f4jaOUbqPP!rW^$`w{iz z&(7X_QM@1d4{^NKH2D{6ab;c+_(A&xW&fQ*|0R1QH~Wg4o<)V?4PLtDl)!iLN9@?& z)~3~J`7>I)Z9?7=J#2AZI>YOUp4PZz!*uxlq$HJ>(zW(tqd6%l`gvYY`|;{eIrBJ7 z`0Mxk@8&S#mu!Cj*sB~S`e$xWr4GYha74&D3=IhjI2=BJ_&oQa^P)bkxY_3KTJR*V zZ}~KXG`q-0)~KO8!{cFTaMrTPdSa zE$Gd7ILB4Re5~#j55^btm!Z5SP5wyjlI)qT_93BPk$o4DpDFkw@vFUI9uI$hA?UxW zBR)cfM*}y|eoAIU{_fF0%p9OJ`2*Z=5J0U^3&s2VLHUY9_y3Rm$Eo>8$bU!iK10f? z1N5!l0?e0>==mK*N`}P+{lF7iFWdGOla^q;uutT3FC8L$X!W$-IemVR52v2POEF(t z&lVSRnB?adDt;yGfiG+Zy^qb_$?M5JXq#Ls>;b}e_eGzW|60rYw|gVvg}hefr`#a? zb>xp&_o04%DA^a2IT4Y(f6$wyWw&lWBY(MhXsA!nAKAO6KJq_lh3x$cNch8Hl3xz5 zp0BVF`FVEijuZTW{2it8q>$(I{i|~-gujsbpJ5MF@&3->yvg;MiqJ3U{e$feL66X{ zl5^6N1^+sb-eaotdW5}B>$eKy=dn<}5ZDsa5|R-8xQlfAg7p341HIz=W;&oxxuyiY z?E^oBI1uXrJuw5)8}~um4i)OJDN~QnBKzg*;p|!^pfxy^ns3>inAm;&N-akSou}*S zb9=9Z?k9e2Pr5r+qGZJkE(ykJ~6+zd_yo z2Y)Lm7FWxkb_7aTwWdGG(Mhs&{<6}3gfYth(Pea~`1Jbg%p8yS47lf1xc98tTn~A! zOirlqN25JA9!N#Lu6a9DeRxW-tvZnG#9QdE+$gmub zr}dl->vMi@`%8L-IqB_5f24fHfvK>?1n(nxaGvOQ>!fw)r&#~8vdQ)i5sygzAt(o^ z*NPGGY_ELiJ<4IoH`8Ce`{cCv8)!tv{YAW<@UwEbGl9e84;&w;7yd1xH@U*p#Oski zUBY%jL9g}D?>ATG3VY*&nq;#d_{rPPs_ij-J32|&w-Lyv_f|%E1+Rbab}PG+3s+n` z34fY9sIS+7x=gE)5QMj<{V^T0J9cxJ;(M~Q_48EwVb4$f=58CWC;v)!cc;+TC_d-l zft@pW{ks_7i&v(`IZXB(_TTzBO!PRRy8~4ER4VcW|0R9LT~n3I+f#fn@1^!O~&@6P88u^*>uE!Gtn z%|#BJJc1JxaGpT~*^~0>@;t(wtL4vn1l)869@#H)gFWnW2q9>_EPs2PuwRKj-`iNu z>2ouzVbhwjFejS(j)oc4{pJbn74qnn8(t!B6h((vzto`ei?|rrEQ(w?Hnfm*wd}8)ASF>^QCj1;`P)%^7-*94%2uHl$C|N=M*2{HeEX0 zBJ_QV&);8P6U*C^zp(yHmC%pq{<0>W-_iQXPDh-e*B)sgCN)L!@cZupzdZct(FGh< zkhK%E=kd36C-VA}*w5)I&t9#=u@-xKrLcG6ir?h4aT3*KT-vM*`Anh;ZHuFR{Z^+F`phd+0qm#81aIYeYj(`#(#j+ zrds==3*%=?s$LmYX}SpeA6ysTy1?;0@|B1e>dYx39?(>ae1+M1{LMX(&qE&_g{-1- z?vUzF-&7mY4=$^QN`$kBKkbx0c^e z^jkj|yM@CKA%F9@OJ83-N$ZDlW;w5?d|tiJjSK!^v^1K&Ir`;pUQhdj{dS(ek@i<2 ze!5)WPk93S6(=Sug#JMGmB*KxtKZ*fS`ZlXbC~j59MSY`zpJUeV#2) z<9)JM=kNeujucn_y*dJa(h-oRtWzH70LyWnN0@y?&=08Fa%D^|4dL(9w)7LW+l*fp z_#E-VtXg<7qN)DL;OsZ!YH@x-_9_uSNAf?+ShFs$L_5K!=l`?!E>KOK>$>nHf(`K& z5UtW%WGTjYfhAa7wpFxX)wX*7oiS6z?Vg<`|V%o zpWgU~^+dqf1co*Cw(f<$TGcw+okxGVp40E|5O2`;Pv!16%<*okZW)>Tv5X z-e=E@+pnNUA62f2u44=0Jbb=Yz5J-VzWKw$beqi>^H*t`0%a4o((`T0?$Zm)BVFQq zdpfYb5KX=74tGg^!IKN#U!}s9>_^*t0Wn8@HnnG_E zAKDtXb)1Z8PFPJ(a5A#U=KI3^0kY>I%)BFlKRitJb%PjjUw}pX0RdyPJ7ciE$Z&bd z*JA(COfNVn8b!Aax3|#!5*fW;=#Gxy%{$rSD%lBn(hC;oRsuy7h$3}k8A)F>>A|?| zKSJ8KLjeDP^@K{)yTbT{@(Iod_lbyc|5yKHJ<^->&FoIhAH#-uO^|o_c0Y7a{2RM| zi+CcvfXuDWCqMjbQfpIN%s~F|q<0@4xc?-f{Xp8TPjT0Og69om>3g_+KiKmt&u8@a z7tZT)2c8GUdOnptKo?+^Vz{-P%1olbXudY_&W5&pW{9Buvp&@=eyTe4BWrCKIRi?RD@5IyB_|@^~|sp z?mY0xZd|T%E#C9*4OEEwW#t_jo3Q%AeNlRU8$(x1X}{Ms)z#KS=O^aQ3|E7g90GHi zT}Ar`2{fFbywb{F;D5=wCFBY`eChpxu=l!%$Orp_|5sc0e}XuzyA9oVqCX!w?s1$k zGm$bTDQ_{oCgB zd+z!zQoJ8vX#e~RdnWztUoXJ^|M)#}AwD=X@O%^I_tBPt`4|4g`iJv^PiQ@Vpnl+c zq!Z|V^|Ix4f54As(1fL{-S{NGGJmYAwxmB^fc@QjXZZ?u{U=fxWB>SH-|srPgrDoK z|CFBJR1~l3hmZA&_?Lm_t#N*l-8S&Nw&3sT>$BbcL64bU;NZ@GM)pp-vF`N(>|I)S zr%>mvr+C1JyHo3M=jAUSo^*2v#|!zAoP|v7PWHZH!@&K6 z>tn7-{h}NT-1><7Z{MGs66emterbMBcjsaMFE|eO-yvC%(6+ zSJ+0o>#;tk>rBF017&C*?&I`#*9-n4t^6T(9`?05IjMjB0DmKqG%t78!#_k`xRc?| zqrS37Wp?LrAC$iR!2U6>Yrp4?C)yB?)8{7o_;b1&-z!MexbwaHndAQO{6t^;)4!kj z1NC=Jb)WC`KHpR*uC1o4#~i&cWY;3RpQVbG4^<)nH^%lGzy>{$-Zg`j<%j>W8 zuLlr6EF3@ZzAwZF!JiDQ58zMOKfGTQ_P%trmxmi3{7W2bUh2-{eBh&T*Zbcu1b_AD zyFd2FH%I1QlhW(q`~4mE_utttuztb*qgo+Z*p}XK88GpDmdeEb7=EMod_;(660_#I z$Lo!6?zsI0y-$YjZ%(MCmsKtHDS6J-c7x6%>S8+RJ{Dd-^)j=a=IdJeo&;U-qCB1H z)BPS1tv71C=8s1n_MYMzIPXI|uT;_Zl^^^baNxhp0U5nV8vEf){%>Ua*Xf(plA>qF z9rCFD-L22K&$qlu(m(%Rlb-w#U$}MG!@f36*2&#@_=hxoYQMdmp!)jM-!{4H;SUaN z^Rc+|@E1OR^Xb3;1AmZKzq8z3kME_X9T<3?S48U#`y8MC{XN0nqL=lb$H9Nh?-+PL zEAIQ$A1Hs!4G;0T<+rPPcOLl5r*;$y`L^1J>2!f%o7)k;v~45{#CbcDnL_@d^-KUw zvRGf&Dl#aqN4PEInO4mIuxCcF=X+$Y)f0PXWD#+9b-YS7zwdk>`)y{5A2cGg#*gj; z^#1YS{|6lSKgI!RdGAorXT-BTuJd#wK<1ikUCFq*z5CC*VE-yraeurn`A9_h6$AT! z^n6X|+Rw%g*wZJ{UtWCjyMa9I2V5U`Ujh6>ef`^w?t0Ac&jx?u*`KHR{bWpU*Uf6knWOhx_!UL z<*Gl8{dU!xQ}2lAEX`GY6-}>WS#NWxf zf%kg{CJN8vjdJ(L^8z@pcIOWZ`+>^-^*PSpf3(?3-Sv1M+F-Fc-`kM}YE zm;ZiqhPxi$XITI2O_l3m;hEmHt>a`&dP$ILoR0^6VJF4|(N2tN=?cpB{bY{xLfXd!$?~Mqn0`A(Y%q)6qYVs>Yh%?n0oKC zX&LTz zES51D8OxRAo9;24OqYDCjG4jn{2%*IP_PDfenDJ-Ps8ZYDHPwIbxmy(Nj|zZ=D2SD z%d&3f5J<;;`(ZQaeVihfXg=k!-xinh;JggHdGPyh%mG+y3M0dOJ&Ha6+-pxguC0^A z*(!5#p4+~J`@bF@9t~vu4IVDfFAHV#KAbqR^8fJrgt^B2%G?o?y^{IQ_+$StX5jli zu>VO4i6VpfEAu!rjENvfbe}ld?N4L`RyfaU?mh8B{e(JUzwJIfKiMwcn!se+X7u|P zarT5b)hLzfuk>u(P)5uw0K91BgYV`22k|_}KH$K=a6sB?Us(Ube!5-V^o7*>G(RVf z{q&Z{umSsh<s<|Uj)D3#Iw@Ale35kUvjiFkmYF@vZ1K7)4j_B^!px|HtQrvFd) zJScd;fd?G;PjleDE7gI zvmlZ7D;ezPpY{j7GN!R{^Mmv8e-+1r+yf5$mpIVjx<@yJtfy}1L_S-y3cG3kr+-Br zNn~%4OVj_S=U27#ZUOq;2|4!%a5ALu1mqhjd%g%%PuyVNuNk`G&sWQZXgM^PBEbIFlS1m+z4wLfQ$~RJ1 ztxJ4!!=IG-2DkZ!c$fMFXPl}>HwF?aCHfE#ALYfi4o|j`(t~7 zuK0oe0^N6ve7kiABhJ+DO5W2aB22@l@?Uv+dK)Pp&Uk#J;n(wLnX|#jdrD6;nrb6o z|8&|pq~|);H&8iewTM;=`LyS*p#P)c!BT?9H(FR9W>BE`#lQ1o+=#j?YcyG}V?JY#?8)tAI}k z6EX~9hLw&vQlP%f3< zHX$|^{eK(fN$Gn2_K1+40}-Y0~{k3AHdgnkjy zKMQ)~>FIL~<9Q786!gh6%;N;;b+Gb7DEB!YO6^8+Vt=y(<9D?-*HAe(Zi?i*P#=7b z>>`A_rpwer9@iUB3ve}6!QlqtOOms)kjCQ_TM8CpeE(RRAYY}|;I+VOu#eAL=vP{U z&rBnK24`MrslBO6$q9K?UtZIf-bv*n4RkO@<&@G=iNaNjfDf{T`qr3iv^@OK{b)MP!!g@`_aRzD3i(x`a_YodNp1u>>n~(Ak z()u)pY28TWn)p#deU!AXJ=2%=wo_@8enNe{>RF_l>WB5#*Y~#5)Xx;)$NPCnQD2|h z*IyIa+b&HtPw0PfR4*Qy<3c&c7s?}s_NMU~rI4oy3aRF7Z#zxA7juU2)TrVGJUaUD zkEc|i+svwSO=q@7vko@WaAxbdQDF?yc~PlhsMlvjtU^AEpQ)o9Ml<`Ep?ojN0lz;2#DZt%S*9(8sJP#qCHbW}(^Q65cw43o_Z#xa) zhx{n1RKQcWcvTYezxnl!Q%B!KLcTttcbxfscu=tDg>ntO6anc)DdPb=EQwLE$j^&- zOz0P}%!2{lJgZ;mEUg ze?_UOn93FUJ~%!?8o@-OpWSMudcc?VmaCM#<9K;R^}*|__aZ)&nkXVs_O>6@+fL;f z4mbt={=MTyF1A9v0yE z_(_p2%^EL9ib%iIlw!y)Fv|efmZ#96e3aBrdepktaQ3&7`=zFRrXBf#hX9vx$P<9a zcvdX*@5L+9;N?YdtosaAQ}o1_Gh3~m<2?aqJR|dMC%8#1mAlUq9`Vs{jRQW*{_*uy zq*2DWb4MwS^NAAVE|tn;rKa0fv4=w3PJF2S)OGZ>HP=)Z``kv1ud}RlqTgHJ)NMn3 z*PK0PZx@xC_QyP&bh{|U@a^2Y9|`pSymKAOZ*1IdMSj(*;p5SNN7jxAlwVE$+YXd> z&8S$1^zEDHrAXtKY}gJy_&NN?5PVZp*=vuWJS{cqn|AA7(^F^Kf(1PEi_}8-rpuqV zQ~joSF&yA_R8Lg-a-=8rqM~mo|L$|D2(*icA1$O0kKF#)Iik;hkv$OQQ$`&ckMyy` zWrM+|e5q6_(0zONrzqdPEI$!x)P=GNjLT+i7x4c3O!GotuGFMl;8=kAzh%CXCBXS8 z^~rNYae*W$KiAZ5RYk+DZd=D%3&#Ex^s85`0=_?pb`X7~rZEu-5~Sk!nO^8G{#-sE zbRL@(^fdBgGgp3rbVhEb57Gsx0YiYNK5+03$Z4<0vJ&O$_qQKDPie%qTrKcSjEagv z`Le8sNq#iW=7qD6j`NgdjpW*`E5+Um{V3g^I(8e<-(v43hSK~+c2_x)=xVaC2}u2& zTI)z#sY$>0hb+L2SQW9#kNeeH*>iUG?V?{zch7W=2&H&BZPSHcLur1x&~te%^)tww z4*l&SYG1I_igrJ@9HUi7sj1+*`vqvfDb276d|JdN+tJRc9Orx6+HU>pN9&I(solkn z^54*|BbNWiuheew{-iwMJ)vMF&F?7&dy#z#@M8z(s*wh&MgB;$6s$MsAU{-$_LK5_ z7|?gM`iFfK{g}=M-wHuH2RlYQk~?Y&5cxC6=O&0LjWo#j1^c33!U9HHY8uI@{8Z7% zdrK1YN7^C{zGH%==czm*$u5-7(*`a?{l3LoX$bgNF)JVZ={a200{p*={b;#>M;Ig0 z5P$YvIe0ac+K+#4ni}aHf9p>g@T2aD1|@&q>iS1L#a)Dd@svRHTeR1M@VsrECrbS@ z@buK{wZL=R_~C-w^3z{`0_Ds+MhkemE?Opyw51qw1`qW_`GO%bfxb+wRY(Ka@iOpZ zW#B#q>ZM^~(!WrSU1?v0{1~ZpI>sH%>E2+X!&LG?Ng?2_WLbgE%F4eHc_;*Y7O_`@2& z3!Wa#pgete`f9-O^c*}K<;?M+gHS%%GCmi4Cp93xquz5H>W?2kF3{!cyDt;%mdm-x zklV_rs9Zm8BG^)9w8Jb68S`byH%9`q7>uJc51Uh=XQH?0phl!d#6uF`JqdkHiY{7 zB?c}+{h_2Jr=b6pd!eTW`53Vdvnyxk%`kmy`Wuc_sy9W;)8cO&Ni%>;{ za=#W8S#%E2Z&WA60*}GO0JMK3SKbUb>K*EQfiCGdqKoJqKYlz?W}%2dzgSh=et|A} zzyf@Um=QI@*XGA9Vi&Lk-};cAH3P3%GN~Ex_A6{G+C3Z}72#(i{zN6^g^*vB?v)Dm zvE6gbK8(Lz#Ol%BzQefyaj5UUeFexLN{X`~RV3;6BVEASNe@W>$5fKv3+0kC)htqn zGtUY7T{W&+&`VzfE5~>)3MD)S5B8+_hsISWjYq$8 zng}KGNsa=+A9#vAN#EM7OD#JxeQkamo4n5sIQByYl=^XbdONiXwaLYd6yw*n_7MNc zpE&a6XjfogWCuL5$*4^rLuWB)5qCC&pjN77*V@axq>?A3sW?W<*6G?>A~~1mNu6v3m#b zNKR5GA!YZgjYysOb|d6K>=F2*4m1jU_IIlHqrWmDeiYI6s&5tW^ zZWHpJ#f96^KO#z*8ba{Dku~LjehSAJjIS;Tr1`Ghx_YtWFUU_SNM>Q@(zR0J5AnHx zrFok0R3_)Q7m>W3R>HGa{-B>-%?kWh`97xvUQ4{99s=Ib55khm3=l0u`6$nMYC;Qt#hoe!fh8zmm0>Z1^YJD!yg8J1?yTIRZh58=^`IDno(mcdYYyJuOD6L40 z_S=3Q!U}%EW;6nisKN0u7;o{uWWke zym>P#lPa_c|IBe@_K!5Mzjkb73L?%p9GA&k47b=UOs*i$j^&JT578B zf83#@e6%v}YxH+U+XVlXO#U71l<}j;zJ>W+pik|LjzzoutMY_)&Sd+7Uiy3W!*51} zpMakYejRq2C+PoSpTmdX|GK(r?+W^GNKuG*&y%ipgmULhihT|}#*5JS`5=w)QF(yB zV@Ho2jl9%jo&eXDw<5J8_I=nUwa16YbSk(9-XX$+&+*> zY2S|G{Hj((D#3YcvMnF&jjQ&nK)=6l{+Lv%PwM&UX(bEodusr+s0 zzSb%^;0*WNHWYYkw}>eo2;n@WLr0F}G@Q)5jpPma4;}gzmDju8?f|}C^E|^aPONc1 z>0`Tf+?GFWMfr2e2%)@SrIY4=iU-I63izv&;!yAB;S-Kj>J{k+ywzvdEJ)=;x%fps zgORR!B*GKvC$vAIq;Z3T$-XJS#M3VSWl2>w%411Qr{?tCHuP@rqh)t#X zP%h0+O8c83Tv}VjA^3l}R2DqarsN&Tu?6Vg@S*ruz>D|ul%l=z^M{EKrKTO8+ja=~ zkHUr`eK^v`i`v=F-kLQCcnl@~kNwctB()xJx_?DCY&RX4-DMsVo$JE|Af)4o5YLSC;@Y53RHt4iqX zk>IHGbUuYVOL?Snlv7Fr3iVplzpy?Y^=NPI&8rl2*BR}pKf&9m>J-xTs>(ii#i*zD zg+jZHfG>l3q9(Di`u}jwPfRw-1kgynv6T4?c|}&|v{RbbjQfi&BAZddva) zz#BjNH4Xd1w@%y)SJ6JVUvjuV_K$rRdM66|->q%M$cx8>>#{m9coJ}XX){t=_;q>kX8u9}h=Li_t!I}8QF_@*$5Q#8DG!6J%N z>AWHQbK!jA>wVAB`Gk`Hr_Tqsk%mPw!g)8JAKSDTHP{s;Pb*inh^(YH?9eV0eyo66_$dO7RFc~aVQY0shkO>g0Rj(?0CDeycy7kJY7#dBey zJjtV2?@xL|=Qkc-ll+$O0dm=&(C%qw&@G|d$0Hp1kfF?J!1H`I#RKDqdxnQAxia1o zkZ8dLXMN~=jB7|L`kCshMT*rd;Dk#Dg$a0_>zE6<)_1)4n36a0+Y0t4 z83~WKn@=`k{MOSl8OED?i=p$YCH$E=!vh}v2l-{qHywFYZmB8m0v-i^%D6)(>j6p^H7Q>^2WIR!nxAvK|@cYUsY9AD_y5N> zvX_R}yECX?^?aFJWTgK0Gq)`Qo^*T=tfBOCTGk@(IdUZB0pFAOn#!N1gIAO@Qt9)M ze?!LE2ArFSWlTrk`H8A8B|j|82SPo$85Pzu^i+h(D5Q+)tBt8V9dldy+Q*}u+@C6y z=4)zS*OwBUNP|e+du~K-%MCxiuiwR9xc%jtzH*_RR@OVNoPqxr;KuyN_I-Ge9SQY) zc=p31I07AR`rL2?_%bomFo=-FumApm_7C?D`u=v`KUnwX%D+udTamKn)fLlcJSltS z&6Ky%^*{gXyMKUpFbek%w6srsH=```+Bg4>^Wm;YDO|J69!qXHg` zobW=u;%KX(n(!0t108jYXl*O;bp^xp)78g^++I4xrM+o@n=fuY5WfX{BZ-d$r=RZw za?uF&ZaKL5tK@=zVwh-^TW-PsK~BBpp9pe^QJp5ZOE~6u47Cs8n9~_1Qv{8En*71}Ei2Lf%&)wghQhX!8Bm3`7`{4K13;p}y z5A+`xm)dm<;NdP8@TE8?6nFL^}vt#wW%)^=pjD-3w>1oFLd_i1%3&1 zy7|)IPT)&wKc9Q+mHqkNb^@O)T1J3F@ma4t+<3(F%I|-{$A6Vud~drX#AzYiKjXh8 z`ZRn3Yu}>beQm`klSYje9b?%fGur_;EY5lO$Ldwa#p73gN!7rZAqL zD7hfR-lsuFyLF@Ei*BSHu9FnUjO0!ni2qK*uQde8y}dAwy7Chd;cJU;$ZiHb-sYuJ z%x{j)yK_KCUCVki=%2Jlp9wl|vCmRGmTM3>I0fKdcAcD$`rj3kd&o`=<@vfoC3oI* zB%qz*HNtB{j}!Gz)>O^`-lsNqWC(Q4mQTfb!zG6DLMvuZWc zaZdaG3&fYg(qqlQ>###~5b@eC-^|^Oe8=%-E#eYwK|lfUJ=!#P1>k1N^a*@5ou6pU zBt<2+cV4~-@=Q{B*np3t;<6rjeV~^G`6gEXB*wp*QA2boIm6%fQXJH7l^?7WXX?$$R58^iI&tZ9(fpJu)L zF68Gg)13f*n;V_ogqOjaHB-FA^R~Q0!o8sJSqJtbze<&bdpO+iL9+ckwO?H@8F<+K z>D{~;`goye&rR9~$YJF7Otc@8<1J~t1-ufjhkQ8FR=ichjGvNAHL=NRI$uz7tCVVr zOXwWXtYCrP0dvnW;L$Mm%OKGA?pxoM7^z$o*?pl5eOPaEWLz3dpp)n(P%umoCvg>b7kFYOWRUmj?OojDx(1i&9uQ%39gQqzeI zw{)au2GJJnb?A#o=IMie>DOmb+)ww5wge<%ybX!0Ah+*J<{ktctT}8I;II;&;5dYeFZXonLKbCGdQ@rl2H*G}x(-Wud;M@OB2- zoAuH8N7xWsu8Ccprw!q94YGiQ(ZI9kr>Z}}?(SrCOiSfQ*Dsk3d{B<#@^V@amztV)9hE7$ zTvOFGGmV>K5Q~Q_MXH}vK>VbA&LPRgkiUO)H2INsYj*9=3drTk#rS&SpDDkIC4HcM zm&&~)k9KQTOR>O*$-k7$#CS))V&6i)%ex;Xea$sl%uTc|pmkF5E{a#%tvMB!E`V=A zyDCcn*L=0^D$<=njv~bM4*d?I^R~5FolVhvscG`mX%fKG6~HXoK^I+xX#Y-eH(?!Va9BrV0Sry)RG;yX(yR@C?eY-aTpOsXZ&oK7#Rk9IKB4 zulxX+0&?2u+O-9AB*<_-E`&??=gamnfCFCf3ts-90q@C-<(@Q@lsA1tw?y% z-(ttQB)z6(C0+f8~B>M17w0d$(t_|AJ!V!Y?j*PnktSn9@IWZ=gpA)l$tD# z_RAQL8}8wPA508<;{fu-VS^Op=M05TMh5-rx!InAacdNe;J2!WOx+K@$1T*yk)Crm zE>1XwcD0pLE`o2an;lP;Ri86mSfi(Xg-Fw%ycsR@xM)pRmoP3Pdk_9?(~1pWLXRv4 zdjQ}?hb=7wzE?XZPk`L%WnEKK;UDH>-;C_lLr42Fq%W$ZEa3Tu`8e?-m+Wa+AmL}w zg)yWbrKXlimPX*KWn?okp59qzM!N*Z6rG0VuSt@Hy>ew*V^BX^;blbsgTzE-*yl3YUw=Wp1*3ga(t4v-0U zQ~gK{^r!fugu(dv%Lj>}f7;daXdO%b=BMwwA>U(hIvMgkrIU+6UqQ5#^1e39w8}Lo zpWT#JiE{HQtrg=H7Ia!re&`&q#hJUhNG%ZRq~^Y4rQ?9$SoYXbt&uUt6c>s!(1zxz2@tlKe8kKDRRIEx8{D?S@*$02E7(S8sKz`l4ll(%E!EC6QN$@#G zphJ*GKybw4VmM$g5E}(lLdV|@#$~muY+@#%D^DdsWK~6 zfID;Na4qg}CmS=3q%Ve0xrO|GyY+Zg{Oj-&0U{^q%}Cqp8;vu7@B7!^5#sg2o?TO6 zH*ACY67Ve?@_rWjwcOlHdV_P^R|)D`lSuUA8YBOKDW7Ha@C#!~G=*rlA^ih7|D=2L z5=XLu^hEztoB&6k{l4JOn=|e^K%adpM? z+6L!*yn?SjZ>lgSP&vi*nF0C0S8>WtdKSXTM(HOD<0x+f5vV{VKT{Ip`L_#g1EqT#ca^WJC@f1w(!u))tb{xV6gr1QGAL0_KCHPDWu)1eOG=$^EW84UVFtK$5Z&^SxX zB03K$HBBv^C5N25Km1MuKFz!nLwZW_Zj-YIdDqt)DV``bWXhWgmT)8J9<`US?(2A_ z7W!m-GMcT+vT8+KRgwWbsFOD4!EPM~?BrAJf$7b|Da?;Wa z`|%cwJ&Bv#J~os5BGpGO)u6vfmr{|+A2kHXC)+XZ)xe!;=*KA1dH9`s>9s7;!>Pp* zn#W1sz8&vNc9>%uE<@aF(l8chTQ)(CRe8Z~8O34;;tO$}+yObXY}~jTcEn_5D=^+N zb&BM?sWm(L;xp!vwp|;iisax7 zRPD45%{5rO<-uj-A33&?_)KxuTM94Yo9*J{pI3nX){4%9NV~3mpN)E_CT;`hQd_*~ zo=hsQw>s=))#t5CJ9T8AG=H)+`S8mhCq#CjpLx)xNzj8QEt9XquFA5%VAdLzaEp@j zwxhg>brvH|t9kaTgKMipZ7WX4T){XKvSTT3$TfW1`Q?+)llPqC^k~0N*F^II=~JdU zldqRDPeS%DK7D;qH0;lzrMfM@VtxdVD*q+>6Xci$-d z0(b^x=%&N2rcGqTu$$!>8yo2~lRN$N5W$Wm;w<80aE_Qs5$4f7EgbnVUt7EOAf5B% znyU4BjBD%szIQ%fEtQ60{#yR7lI8(l+on^M3XI1U26aLX_m(+6h5VeKXVE+zoKtvn znusSmzHy*!80N3I6NPfft#Gf*4EdTHWv`(9(*+I@_{mmmCV!r5kT?_+e+L^98?_AJ zA5`Q?@(7Rm_?Vs0$K5lt=cLj-2V3%6iNNDa{cZ{TMd-{zR`B=BYH#qwkC-&OC)&O0 z%%?aggnRkrF9~0|=d0i9gj}ynUXBL;NGkYDir_zv{Oe59E8NApQ}_Xik%Mcd6Kq(@xwwAx<)SK+Yu zLq2x4;$tDtkg&sBuifqXt1{Uo(Fz8ZNz$tO7#qam+t^2QI9RBx2;iv@k1?3`+( zMTMQh{=?CV)&js4v+PR(-!@dze%N`dIPP`Y|4!wd_CUe@YX5%o;1bYRpo;}xb==5sXdrA4H7UDnG{q_^f1wA{! znz5eAFy8LO_($_CnOF}5TCEd+XG?QA@h{hOIA7}^`I}mAc3A*__TGCI$aUxN-hI-H zhKDPGk79QDF36$v^&L%U=P2o@LEOq-Es#L}+SBXGK<`V5FGWEf`63DFg)f)hS|aG* zD1NShfBSr$5a%STVrgCZ*PKj6Q99u69glT9&97s}PNne-duswRk^eSbAu8akLkxz@uj@LR1{5dSHznC>m$ zQ^9UDBi@`-^2SEstJjsh4}Mn;-zG;p3nQodaP3yFX>W{&omzf2HwtoTQwVz2xUQMx zL=>|>&}@kHdV&mabh=KmyLRh6Ht0vxe^j87K+lTGS}2}5Z!K!*c9qh6XEgfLc}S2! z_GzSS3Gw^H+&t3nT!US%&w_sJkoji;^GA%HEQIG^?_iYpHy)qCs2(39mW-su6pQxz84&pU4&%_c&A z+~vzl+L6{yji!Agiof4|w;gm$Kbj`Uza^tx;CJ)OJx>Yru4@w3<%RD#GE-?hk(Txc zX?@vl@eq|&Pv^c!*zj)`NN+E?x<3b;_d6z26h(0wyO7p*O&NtQ2aVZMD0sWPc!1-fPZZD7U=C>Q9^pzZe8`Ax8VOa6&tT9qz#Aia^LpnJv|o;|cb zdOA_6NqeRq`Mm}EN#DqxMOT{<_ZQoKJ`8=jo^n~Rw|ee*^6#|n4?8LYoV#BdFGKzk z)_c5)=DFJ^tB<1mO{eRau+P(S`yl3HqiU57cI9&i=V2Ea7v@$$pII9# z$GpVdDLw``v&Mu8<7U6pd>i_F@8vgyeb<$N1+mbdYs=sN9rLZiQbKWiyY;ihn`u9r z*4rJgxHSAoTYB>3|fBMcqi z>d^lB55>?!-aAl1^A^o3cN(4o{71aKnW)b-+(lQ$x4>_fPE-JRr*3>f_ULQ-E+B~H zPWzzS59Z;#V^C1bPUOvwK#gF(2eH3$)MP2sim2Qc^m^sXfcr+Xh2l5Dud=-y{4guG zTVY2pp8CB3{fyJJW|WUpsnxzVCBNOaP2kg?R=u@FL-EW`E`!!LAzVwtR2Sxh&TI~O zTX0dvUC^;#ZyAI7?{-!R`&v^bWRV}CIFX;GNBOAH6ZSywlcw`!9J}$C=Cz-va*ruLSFNRcS?e#(y$Ja>XzFikNDp#qyl-K>o~cWD4}R}? zt~;iT9XGayK=@%dgyCozbLUI{&=yO`KOr#6xHuPkdm)1i!|JhYf*#F^Zel$qr3D%HOMeZK0e>k(>v< z$}Q)~PTQ@+E4gOacc!>di08FGb&_4tdkUm`Jwb0%TRHaWxE+cFG3Ke7$=9oZ*R)Qx z;0K>dTyY2TH_cf^(3ISvIExqJqvIY!!yq5=UWWWR#c|Qk2VGD$L^^54>n!kYw0tbY>ApR7g4b@%sH{-%WcOUck-M<>I@QH*(XO?Ydq&Xb zG2uyoTP$;uzgWjxBp-><@5y6NR~RWR`S=?P+IzF?0nj&T5<~v^wpFq~Lh~Y>=l%W) z?JtLLog=aj0MCz$r{a8*%V<3&oPT7TI!k=SeHgVc-(*;_$zRZV{s(qA;CYPB_ecIl z{>&`&zq5ATtFQ~Hc(6C*ety=(-f`w`YKD9g%pwNuYwy~RgKxVEwF<~ra;kZ-P;M*_ z!MxG=#OyYdcTD-B%1Gx_6``yQc-^_#Fc<9}-#TZ4kNLDenePvK?MmHD^GCb&PZRaz_sK7;){>vdH5AlWD)Ol1 zg|Z*_fNx9fQ?sCdlS}O6$LSt~jU#_`+bT;K69#(Tn^{hJL_3-p-KU6OrsMBO2Ce&? zB9ItW1jdu($IS;F@i7?@uxEZ&iw*iPMt`VTm6-TTH=*b0+LQ6%^FyNMLdemqt)Y32o=5dqM|9G@tF4&mru!<9Pfmb-XfmE4 z`)#)d>SxV@{C>IrRTuc*{OuDrFmB+nS6Ij|La7Re9BR+}a0c`Sc=*2rIHE-bqoJqA zZuVS(y>uPaAB9|BZ+WU~?dM9adhMte|4#MaT)gAL{3r6q`fEB@vf_ENE7D8-lY)HH z?!0pk{r@rIXfyctw7Rkdczto=h;SYpmpOJU=xS_qt^u7>MTgQ*|8pVk6;NC=pQUw> zuT3=MN;&XfEh(h?=)ndL86$$;r+2v$(SBFg)M1cs%-U|c*GTjIIt%%`cI#`K>+WFQ z2-C_WpxZf3tiX8UL91xrG1nw!_L9G#_3Vz;5}xpuSsG|Q3*p2^pWXzx#g$inLp%CF zE6uy~yzRkBq^Gp+n?0=@dc~Ykya&AH^8+5od@(lKO!p?}e9;kR(NN_5#;U!skh?_T zEkRsv3N>Gcyy>{g8|zc?N=Fv(x_5AjurGA8>k^B2^lt5(%c&GUo-`+%2mJ92OYw!T z?dI_A-GJZ11nk9g14(vv0r33k*hUt7f2p!?EYeAA!8VLPVd_#I@{e(?TY+|6PrXm) zF(V9qW<~~hYYumQk8-VS&@RY-R9uvBF5l6Z)&M@7dnT6FaWt>|qoE^;?EksCdKdWm z@2#$CoL?E_j2!ZxV%{snA9bz?^?>6&N#~&Wmz!_<@jc*E7`WpH$R%G~e#@=uX7JB5xnQM{@`clO3H!bcotMg?Kdr97R>=QAL4^tMBG`0Ktapfy zVMtA5awuLqZ+*AeYa-}QetSGcFYVT2?^SoTTgl(pBs4FbH_e(XA?qc11~61g`%%}= zcVhgY3#~0ghe2PQCGh2ZRmnl@OSw+pABy_4e@-L+PV=3;=ncdJpU!-E81&%atx6W_ zaOO{qPSnr(>G`+8*PV0QTfqmh&4Wd|w4O@x4?%{1>Lj!e-fq3w{V~N;6#pCJFGD|{ zJT4OW9kZuR(EsVJ3x)W$V3Pk!Ji$G<$&~>7r?tH%Hd0<${BsHTSZ;EpNUW&*z@v@Z|+l;{Q* zfxd^oDJ8unJ&b?SkVkst>iV4G_gq7|9_NThP48O}$EWg>0J=G36ah2`?7!J*r2Y~-Q@+X^-rc_L; z1pFj6pY*iUBx(wL9r`-PoAp5bsh+FrFkbWJs;ThPjL4=2zM=bl6mT09e#hj>rJ#4=nzs%M`BR7KxkDvqTO=E8tS&W_6<`0J^f4z>d*W-1yWMV408fXg zqzvbHXGN3g{siq0RCHc|oD9jTL}9*f>O2p>U046Eu%BwoUil2{u7>9)!hTb(j=qTe zjjb0cZfLj0rJN#v6=YyJmguGZjNNPm{G}*NJ`Va;e4scJa*%qj`2wkVv33UVt@)tl zF7P?2sG)r%sYxvJ79sDPwzUB5-uEb0}@O%87Rlf^#UtmdJXlKE3fT}gx;)(xkLQ$wY5DZtS4-59%Ro`KU?0M zo(sV5w!`rR{6metayiC-y5#4}AvBImBpDC9uUHBTK|lL+%OTW1vgU{j^Y|*`V!E$G zdTlQDLOC5MGz)aAR?QD|fN&@H^3A>?-i}lIOQP0*k1g6C|2Fiap}b)j##h-?tC9b(uFge#v2D7!={evn>P*i=s&7lb8A{`Q z?pQlU$rWeoQp^(UbJsUFy~9&|YTfdwJipiEEIc_xkPG9y1UuX_LPXFs{0=r>kjKWL zl2)GNQQ`>r8TvJBY~;6Se^Sj}B|1zkqI4tj%}ra5BmMYdRU^*PkBOMS82J%~tey7j zA%sWrxCMgTcfV5JJJ0N#*nn{qzA*feXdfItX4<&dD^Y_mv>OR5N=-H0n!8V zBNCSra_)GuM+tnoKN4N(NcM{-E2l)d*yctHM&`TtR-n-O7KPbrtR8;z;5A zXNN?hM7!&S|3>#YC|(VmLi0J*@Ajm9%*dQCI*(q3f4^LK{4Dh8k*8{^pg*$aAws-! zb#gO}OY@Mojuq^Jt?k_p@N@|Hvu%?=C-+--^lFT6Nqvv(vfa9Q`9>Ya(b9V$0Jl85 zFdKCE9nBh!{RM}3z8>%-K_61QQfgY5dH68oab$-2Q=a6mZhNt033oQzVoo@If%dO& ztJ-Q&e_UNsi*c4G%j1x*aw}Ng^ zJ+13|{m!wPH<~f-)qi_i*oSF;|1joh>$t#abY9bL9eg#3_HA!lt2(*K7fAjcD>l=4 zr;@W5WYP1kv`>Gu^9}G-Z59dmcQ|SUzR7=2zX3e0o$tBeZ|v+=;aq3jSiF}Y*D%K7 zOa8so|Z2+BxL*Hx#UfJ1P zI{03~R?g%pZr=Y)_D^eRpQV0T+A_SCq=`M5j`(P9=h>TrpHj&L`=0EYN%6HWH**fw z*CTD6g(IRNuZKOHiQr3sv-dv8v=g0A0{%}eCmYY3jJ#NFp>wXbzw2bo7|5+GuTTMe z-u~i#8~82#;Gcg&`|m65f_^$JmdbV2ezuISToiA&TWtpxo}hZe?AbpF@+v=k^KIyR z#TYI5@gRfVA$b(`Cv`gaf!_MB4owC8TiI>-fS;ZtXMk_~_01));}%O}J^bILds;K< zwO=>Ve&#+C!>suN_Wn+HY(3zV^pxIN`*|w&uxb>=<-Zo4zJKQL@DuSa*D}cOx^9gS zhnvmgXdd*nHJgi{0{E(kOv#L-xKoPs4Jv%++4%1 z=JI;rb9w4+;wSmz^4BTuC5c?Jehj?Sji6|L<_)_dJ_CBr>ci%PKUb=Ic+hDz7g8z3HTjN`Jc57wnO8|( z#aqqI!v+Cf`n3!e>592?rfNuj6BQyqoP%V%e}&4iPA($*i8K|KX$5*2b-*OhJyV+7;ctdG2=s4l3c^UW~6|a6C{%-WLF3S7bj#lQ=I)ma9OLq_W_UfLA zYeI=X!#i(?ULkH}eD?atpbtHK)pgjxDofKM^uHQ-yB+B- zuU>8dUU};FpOIew`05HH&41lzs|w*4nzahL*BxnCaa~l1dtNOzeS!ctFn<{E&e)Xk zE!yolTtc%k-Oni7M(tnRs3^Xlf_p*Y;i6&Kue_=_lZbkeIE(h-_Zk8miq)l!ABQxzMkKyQ9V zP$l@)vaawL=qXwI`(NOHv|{sMT5rtfiob|xUZ;G; z>@T7Bizl&yp4t!I-WWpV?9p4Ee07RplCz8CookwPTupK02t!33(SCtD}Yad9#?FlcD~4vm#ND)0vZHh`aKZ8W-&)f4nHpM*2ejv!?nN)Q3o> ztN~vZR(z32_o58Vrt1R!^6?f6>K&UqXuc)>pJDScUS$Q=!*oBhs%k&duA^(xK+jzB zp=ju(CszaLVhaP(5`Q$_bx8s97_`y!|sbRGIN3qbpM`J#iE~n zgF?7Ru*P{^3%`-IBQpv5bLxuy1o)w4Uj7j60)uuJBA*%7yc}^wVbI4nF;6yISlY)4 z&SA|Jd%@3b0nt&w&&esYxMyUuIhDY}d$@?bz_;s!8bG~tcycEGvzADA;>UdxW{D!`KRS2HzTp%u4U#E{v!;Q z_AT_@#1PJ~Do?=UrKL-Wk903|<7SF;a!tOuSxNAphql-mq9dn0d)O23cb8WukUtz@ zI3beId`j>CvFjy#b!)a>zpIcZeY3MIQ~Bz>rX}l|FM{8U^gUW9<{DauaXkFl<+LRm zK}X`niee4bvxQT4@}Ns}iX*w2vqYHDu=za&c4p5We_u}g z$vL|?oBZU69Cm7R6XdxxS!DxVAO0-*9{T9NUqyZ|*f8~}DRi$g#o(w=TT!2x{bNrE zx7Hw?y_Duvx|fu5iMSbQxTn8TL}`w^Wthn1Q(&zyS`<@1{y0pJIBb*l=0scxP zp2dV;j;vVNXD}>T)4EYZ?drp7Hv{kgLE5{=HFafw!-sfjh!?E4THBe%R4^PBXl<*t zUZ_)N)Y{)rOHi;Nro}?)T~SM_#6)dK;sp%|F=C7)oScxLwjc%tN2l{s+oEGd98{n< ztq4kdunK~ZcYTlT{GRvuJb%3}|7`Yc?RDSl?3}ZlaU9C!rH{fhi&lj7-eGY5Tki^O?)Va?JB?xUdEJ?ZzD$wH56usX-3D z-nXYwoK2Qn7TOEDFrME6e`bAqZnOdX3H$mWeTU$soA1U7^>(x|3&nFEeX8*B3|2IC@{RT^qHRrEXlHS}buOG)q|P0gKo z{`JIH`QYcse~}ztTt#vWG0&3(k-lbI({jc=06ekSNzVMAhm9RW zc24g-@k-*;8gsebK=A_c^Q1R`_QTkKZU^W) z-*UD{i0hIKq))`>v&jNJRi3-Y(a*?k^Z~qims8nEgwKU04ZXLJZQXG1ZWZ9ZZeQC% zImPu%$f$cKXtVPw4%SD3dXysvdk= zpjIb-MEr|hW>1FPrLW)r4*ZntvY$kITxfC(;Oa#&?@yxAWs3}tB!A$@U+RKiu<)Tf zCV4(I-~XG`i@&&;n2d8dTp?rI}5K%0g4<1hOg0`M<;HQFP1A9$I{Ch+s4 ztOebwNAIQjjUr9s7{s57xJ3!re>4eZ;s^bn)wzY@u+?Vm z3zJ;n)7g2-v5;$mJvSWkhIMp3a`*!d(`I5wt zZKgciT>nL|x4+!o*>sHhor|1g_iN1J@~l?Cx5>+db)=~*=|{FX!n-E|>&3ey;X=Q8 z-rZy57vpm*l(*xUwa48~c29ObzU)sV2XpDa{#Q5r=7QKAhw1x2b$@z~7V|_RIlVVe z@6Q#Kh)|dCjuDXC=c~S>s4d%^HP^UDfODN|hTPl{Jx0hUuF(KJGRvAiq4&BXO}pGZ ztHAH6FP9&IANan#c`fAGhwG&Cv>5Y0&LU3{WgfknSPQ-u%KPXM4@cN7&>Qost8S+~ zr1s>D_MPY-^J<6$>nIE_Btfp`ygdsrZnFF6Ovrt%izoS!U(bvz!1s(1juRp1w|CZ2 z-Z8(9`D3{Z^(h-#Dgp1mL+zc=TUYL#>7eUa%e;})Z}Ly{*V8Gskv=z+g1(CIZ?0ip z1bfm8x@*4tUWn1?y$<-}8e zlvzH8p8&XZBa5oB{`k)GCjs|6yKxT6po>N!?w0R%l@p!jZ@=oA4t(F6n>Gu2L+RB< zK(7Xr_8fx#_2g~`{^pv5Vixcgo;YFvUh#R0D88ZR@Wz)KsNIzNPFFGHd`fX6 z#Z82$2aE${>QoA#d(TBn=lvh^T-AW^3o8a&q5z*v?RzCy zx4oxrFz~O)`WAL$a`u0aN&GV_FC~96)N#qU#p}hsW;%D`+9dFm-{8LqyUpvBNiqNF zml=-r)PL=I!y)*Qe;HQOdo)p|t*_QG;O{Q~0LsQheBW3a>NjSa#|AlaXq@h?h>~LJ z*RjJ-sJuq{-C;qz0`2VfFUem;n(j@#bs^TXQ&(Akl%7vWZ+aucC=Y>Y!sVcQ&?9@; z3?aUp&1Z9<=bUG9Bk0S^`4o0-s%}eO3%#s;bqc*79c6yI?rAUd*s`_oJ-};|T+eu& z_~OXVA}>zQ7v*mW@rv7TAudLlFBLy-Bl>k~8^wC?@9+o9(!dXqctU^dE3T}33-n-Y zTwE^jHdQ|=!MuX6tGvT#Je$&z0DN-7cpiKZsk(&y$u|9T(;I}>?wkB-X-oeq36 z7w-}1wO_B_e$2XDJ;Y|04yFE;`y(aj=X=Nff_d+RR`ft$J}zlf0*`vXcsHeR_bhVTps>8ekbtRLb7xKngWx%gxK^b9x zNjG!G$X&>n{oKw6k>JxZ)zW-?FYIi7oA&QE-NmkvNkY400qxgh=lZ0pz(=C0X0Yzv z!ijdwf4I4e^f=12NAnHo!2_ctZ-PLdJd}F}av#M-a)O+l`Prb)z&UTB&RLX)A=lSp zm=UO}vUt*3%8R}9Fy-f_@9;*>nL~7#GSxQ=Fwf4`ZJ|>cbDxk&51|Jmea&+4*|y1j z5BO z?*z&Rvh&HH>)z7?{|opy!Yq`}y;|3D<>pzmSA=_~(mWI28j=Tir@qOc-^ruQCuda7 z0H6O*c7HVO!)Di`aa+hf%^P||@E@jWMRy`GZb?@=_642y_LWBP@dclMH{fy$*c+fv zRI!?VzwsMycFDb1-(oN%0B&d3;x4qa?o*RdP8l$c){ilT4Zc_jzgxSzirx!ZuKtEM z@R*miERF2VZ`7C%NT7H2e}8lQA$@1m<}JDiyw-i-euDn1D`ykuJ|sSC)R%t5x;f6i^gU3u z?#%ZYgu;hngkubGpIZ4dk!L9ty6}J{4u!-&ytD!@`~FJdP3ew^L`E z7bA{JT3tbY+i#R}muY{CGUa6!(fM4IIWn@W1b(UW%gMs?)i{1U{jTfRHD9iz_i_D3 zQ*uTC&xI9FJmi(5OmCSMCjq{Vx6?S{f74I*A-CF$;ttU1i1hjJ9T_9@-2k57P3)+F zUwhG#%LBhQabzjtM0fk=Cjg%vB+~$o3n$yUG2ZX^;pb!473w;P(FQ!z4a%P|E@Dp| z{IbqxEuTXBx2g7a`-NeS3F?~~MzC|2#K41&i8Cv7kY93AoS?UX<2P#Ihq_w_t%85E zt9wa*=d1M#TghLnQ1?#M;5kGW$%qga>o{I|6L@wvyd%WHVG2bk5`0GF3 z=_otB#(eFw%_Hf2K=*2}rxJEm5>_VI<(8*jVITaW?xF~AmZp@_dk9gce;w(qMg5jy zoE+=*9-L`_-*5cbU;dEnsNwe{5^1z2hX$Cr%X*13u6r> zkKZ-eAT9YFzj1oEi1rb`?q;R770*d;RT?jVjxXB`#K&smg_&K;V9$J&o{wMWeiTmVE_rp2j8$2EXfi?$Z4Z+2-}JD;{BfsGaA5|L~D6 z8_E$W_E6YKe%2==KcXEdv**q?n769T|LojOT(k-Gdn)B2$l>#sCiP9yauNW)E_rzYL?Z$y0_lAg2U_$l-ih?-l@8GzS@TUVw+566q%d3h-9H#=Le(|h6} zrj#5P`5C`%dW2N)Bi(6BG&sM@OpK@J$Ts7nDozf*loeDkh)d%4r_=dEq$w$G$?+Hd zLHDiHr0<4Z7FXS%-^HR#tu-C={JT?K&wA*&Da5oeseUTjd+u&&M0u^vD58DCT3fq> zqvr{uw`)JeujEJle`VIAOl-yTqPf)FN^zrC$KSiA0e%{HO*#6LYAZFMKj#mM^O)CA zo2fO^`bmLa!aKy|X=sxG-$l!R(F~*c0Z)hUywR&jr~QY{EqfG1SCqM7%@R9})72#% zA-nb)SE*PL=6Ql!$lgLs9oPIAXWIX54Lz6Bxk}GMYNt3^kk!csDH&h`&~D4{F1> zSmyosO7bwAmPri+ru?ISzc(CIR_o3NJJGM5@Gjl6n_DV6BQ8V#zTT#4 zRZVHI%NnR2{rzxScgjB|(fwP2faTgfX(Qdw+3{`Tzy%FhU;6YX3*h}p{1S~@RK0D| zzzq%5zl)JLs5~utLvkAZqH$4iglDy8&u}lntNyRQ2bBZ@o!{=!FfD|4bscxIm@jq0aEL}H?^ z%K|+usSk<=Vj4n1dMCr_Vs5kK`iX zOLV+lJtq29qHoGSf(8Y(fFDuJkTR-Qzs!h<{*KdQ&bK$9jAF*90IzX!GSL}dJ!rtt zzpSzPbp>t3K6)xO&VE60Cfgci9>pjq9*!|TI`LyE?4(uxQZ4+Ljen7Y{}M^}aA?ou zcL{NpST#q2x{~L8g5T~liR?epoZIrS7vuY7r!7K%otWd{7dOYIzW{i_&RmKsLQF?` zdEvQ9Bgrz*`lg3FhfO|CrE7G4D9yL#shpITB+@ilBgX!u6B+JQ;kk9Y!;z1D)ZS#^ zQ0L|BGL(Dlyik|%v$EhHW!^F`+7F8idao|Z9G|dPfjY-qSd^@VC%XK`VQa6>L7lFL z;i&I_VUyD$I!sb80EH6$#HZzn!)y~clnahinOyeow zzhAfUuARO^xul!k#Rf2LyCpXTr7CQ!5chlUULbEo{#mtEcNm=?5iIJv`%Iq?dgc!~%g}hM!=Zp2bq&4cy(A~o;haqh z^!NES`oB@`er{S{@P}8*^(fOC|SaL<44Z33KN z)*ynuWhI2?t|7cEzQI1svkc$EL;sZVj&#)HEHPXgm8yg+TQ=$6*#%q_`0(_($o~fa zpMUd1A?{*F$_=0=Sj-CNHqspi;r!)>*C4$@@(DccS|H%%ieI#v*7NOZfnAz;2TO3h zI%8gous+K!qx%K@#+dzoo&!6kw9n6>J~Vrb82UeA`4A=Qvp*>v<<-TQv)MF3kJ?-| z!HHLGvh56Gv=~fPN+QP>#z~8jj zclQc(f66NXmzON}W8DJ_y!3lAosUeYZvbARAE!5BoXg;}KyP1+PZRuBN$80H#_2V3 z(wivLxwXS4LvPaK-19J=t`V?-&Smu780IMw_`^{q`kiF>>=;4+l|1bm^tzvEYUq*?W@csze{$^BuB@X>3Kx{%0%#~YFA4J;AYwM0-Ybmr3n7t!rExRA%Ew7 z`VIOe^d17~gKq5EZ|HYzudb`YJ&t~j)^!)eeHmq1uCt4S`(PcfrCtO47ev^)pofy; zsvgWw>F3~&5gpw7IUj<5Tvu-c68ikPT+P2p7V76djWbL^y{8GSVHGe z^jvqky%Xj1jZX7SV=7H}=*4W6dR;X=mz7YKR z&fU|2@wp>ad4j%hO-X>~+99ERoz9zY`@Tg#@3eF1Z|e{lAZIzBN4rP0ZsOJ>KKQ4x zvli_^zkzL2VZK3|7l-*7VHF1GrN8qF@~dR`y*_ktp+W^>dW>Kv?(GoyTiv zyrp&O5n;VTksW#;ub8(C_I2{E<||>`jK#e%G;cM%zYRX7H}DssS6Y6KV848VjrMiF z?(QPL;1>*{k#WG+>E!77&TkaYdV}^0zwVRh@wCs8pKzUJj}v}1iie$8m*WlL$Eg1F zQtuML!q<1TkbAjFiaWNbF_SD%r*!%2>GK2mOuh$6X# zv%YSEXVnzyNx%KZd97~<^wH-McHsXsb0fV^?$xbH_xrHkM0Ps8RqZ$axMax^;K3Qf zG$>uHT!xad7doTp-qWoNBL!djOFx{2`L{y5TIj8KQ^&bMLL66Up2uUnL8BUl{!`ce z?SSud*#!R~;Z%gr2Wq{9bqaiT$($IUl_r&9egDU`6hHWNcf7-1L%nD7lAC~&)%`?( zZ!pOFWBt{OUU(aDGh3P-g0FEZ!jI(2%y9~Q%5e=MIrxp+%NCLz`E~F3irxgAd44th zPT|$Hx~d|uF3YL%vCa=KG&G?6WADO5w5RdJMLZyv{KApaNR6UZ*e z&$-)*P;RofEXTTEZR{?Ip?PD1vc(ubLNb)SLi3*l+DlLmve;Ry6B?Rq$Go54tlAIx z?{FHVfScvg%TT6pQZ3*$RVg-OT)_WP1M19bi;ytSQzf|@Lw-P>$B8kY<(l2VZ=3YJ;qVud?KuLUGa~Lz1-*Y;a5+7j^iXT4 z%oXf$W$aeq-JhfQjQnmXuQkB0Q2uE_{wkYY*neHAd@9ye+u*!500+L!UHz?Xd2NP3DU zJIqamUoy@t!pYw*y{oxxRS?$Ja(#A zoCZExRhT8pP8XJ|#a$OEDp;Zh2W?tk%nVXOOg3hJHOc?5_FlSDbX@y!^-dYd5r1lm8j*Ndq*+e}$ znVol|o#X9B*g0)fHsJaB#mXDtx6LQ%AvmV2{Crgi*-b@A@sFs-yHrZhcfwYAG|IeF zO&13Wa*MX_%@Oofx+}WcxO|;$bVL~a%4lT9oVy3O<0^fmS6LC`x% zo1N^2{K(F@8nScUUjvn!1^QJy_+ZLc@$7sx?XMPz;MY?u`o7?!l=nXdoxLYYF3_oz z?)#(6YRt>c<&`K$Iy70>U*mWchw)`vSC=rasAUG|m{FU#gtB_*0wV(Cul&Z^*p)S~ zqr9XP%I2~{J(b>@1wW!0jj*n3K>|I;%~u~Rlrv}-i~IEV8ly~3)#$@mFM-#~fydK5 z&%F-%y%x?U@N;YocsxyiMDdkJ_u%ZRe}jJ-jqEVS zX|Jhju+Q9R3m*@BT6g$%#}FMEv-mo!$LI4bN-Z;7i+QR1h^3$}l@k4cZjZ}Ozc+bw zwutTwwEH^$kb}}DbL0X)5yO!l&sU2WO>`u+mnT$}PE5GD;vxZo%7d8WV1ve1ZRq~fX+FV>o|!~&{vUoss-z^ z;*5ee#7&Hb&abI{^e#o$;4h;Az7xM~;fM}XIG3W%R@lYK>V%{MJLF-Ydo=;i6&fxA97%tr3iCz5 zokYiS^{Gw1614Xh@0DR3_bL1_`Mq(h9R5Sobh-redPai zyJ#ND@T}2-ep5hr1oFw;+;ItXWpM9Me6?JCToX<3Ji38nqwZilCk_+*zaxvM_-ci& z-p5KXKDUh}_$2SoW0-1PmeNW0bfC^oeYQW$qx+|0Xq>FL9{Y%CnL$e9Jvt_8;z0PZ z_`~0R20l6^P9F25e+;AfwC>HQGmx8>YoX^U(hFv|unsqcFIq!(IDlVx7kIH*W62() z$gfBQdRpR|3V@e8C!_%O*xcgLf^Y6H-VHo#M;@)Bb#zksE|mZ`==mWSKY%TH;y1pp zwsYb>z(b$9N05Vr@>2j$#qAGW0$wj41ztMwmOG?RE7W>l)qbp>mS&)S@<+`~aJnVnj+<4m8cIv+G8!`>! zi`e2il-s@Cw*j9XL-J8__Pntu4`*ove=g`>?P0^hrT( zlZFZU8s<_N2##ryO3On|Q&;`sg?(+^?~22E;vE(#^e*rGC;?stS6quaU7wH({;>m3 zcVm46quDu$JZxgZN9n*TODmUvAK@0Q!b^Vha=+)JL&&cc)LH(Cc0R?H0{^SGF-piU z_G;hvuwLIIdo_@A*A?|+;2pl(NphaA*64Ety%`_gDA@HF36mx8BRrMf1M}*BIao;c zG++Ho-KrfZ-7bp|FDvzO;kl+HGDL_|{N-#W@a2zo-N*d?^43_4-zJh#{5M}cO2Wy3 zUrPAgG^}s%H60>+jC{wjR^Vlu>Z9**y}BQ&>N^DfA7+JpKrUTvgC3Rh>`u&6SFjq? z?|-|?0KQI~${Vnr?73i)E7{G!zEK$GtJ_o#f1|SG3H)YEjNq?kxWX!dkIFfgN9o9F z7UZy%*J=T$(!9?OxZYhYD^O<`LpJD=RX(P8dZ&7D-CeT#b+PuK0#FoIqrH~>4Ls9JWugE`OnYld~^z=WWppOz_H!3xgp2dH@`pE zW=vDEY^b0QYwxzvJ~Ur_V!uJqqdh^-;{8HK8y-pTGqvun%UiB)+n210$Np>N4NatN zJB{kz<_4@I+fZj)O>y%nzBC~4CF;j0@VSzgWq?1wwlo)^oND;*qZmJydFJs*X zzd7;OqdPO~(%-NL7!vy|V`@9BwQ4H@JB=pM-aYe9y*_1p|;!Vc<6Cxjv@toiX88M=Ksei=VAQJ&CEc|XZb=g;^h7sMjk@) z+Pq3i{~@lTvO{tCT!(sQeUe&6@%dKO;$75uHZ)bj}T zkjsn6&vBth|Sbz7qYaz5wUG6nH_wnck(GQd8Hzd&SGc?|- zS|scz%4Lhjpsq1h?xlW{Vdbd=7uRkKo|hw=QZJdD$5*<3H_mv|7P2OhWVyXjnQ zzB+l6B@6XqZw~$(<$)_`)YWdyW<9xFqUd zC*|@4xU5?{9s8(8qoMJflF{0(gOBC!CBzGK%;lLh`eh-3m+_!OY)I3CUYj_0mOvN1 z7+kGOQ`$Ap{NZSAa1r>#=Q`Ogur3wt>5B=M+= zFwd8{6j@~PyxpJ>;7bS|;O3?fJmRYpb<&qTO0rMAl8;jaqhF*-V~&v?9ePw^gWvnS zW1)tisH)0Z1v^k&%c1@c)IB$s7$`bd_1=8e?pakMU2S$Lw=8L)xGYP__oQn;51XS% z#yV{Oexf$4pGWvpT@#n00iTkIZ=i1;?<9I?B|WbQp>>zl2L=mtB_`T&{<=doR~VNc zmq6nNo9$Xgpo=jmxZn6L65#R*G33Lfpk1$&#e>hOL>J^j>$?;d0S^iF6Wxqmp+Y|! z_l&>#;NRML1;Hb^u)oa{N`fm*VXF5nUneoh2YPkY`-W1!uSl!MSk;mE5Pn+B?|&=A z>NT!z^ZC)QSdgQj@oMHPDe;-=i{chVTC4Z1somTVS?DzeZUySA_u>09%{$m1S-xb& zVCydWPTRdAipIGv!q(-UTcW8MwtJaxsOK9gjjzthJ4?L!TR?7Yx9OszvB6t;e)M1tg6vY)ev)t zHAP|0!MZ17m&x1qMOnFQr>boqjZ0C4?xpsJfvO&1eJ%4Y<~d!KLd-L##5>R~9UjA= zoqj%ahFED`=|GXN&UVH0d5>5cVm)RK(o4m_dqn!b z649Q_h{c%yZS3q=%v)y27vc!9Et>d1eBs@>SU2X+IV1&t9qXCwNHh> zce=(E~a#3CMH&M-$Imm!xWBu}bG4`6^_zm%kuNU|q}5;{YU_Kw8w+75VipZRz@ z#?P_sq4TBceT!1!V+6R0P>Q2Tt_sB>z*qEpH$H^q$7`hY)vCvs(Ri;K^H=ixJm^h- z#z69+6QjYNjTpZuE;-15fSyxY7RUkrvW5u)K4V@VI*>{_p9vzlRqu;S8JdDJK4rsF zlp|B(RuG*!hULpVMv_k&&w_4^w#0@058n&@Gvt`ar7w)6a$ESYM`+hDeM7-Vi%T^c z_2~ZFr5MK-LeEG(y1s*i_UP!L0)H71@qzpwBcUwY)%)rb3?HI@geZvgkND4MlAe`X zrvS%LG&hp^K4S>=uUG8fj52Xy&1{TM`LAEo!8c0x#rO~GRBtJ6>#E*2U;SJk zdVV(!rejSF!KvOCs(4WYKE*p&7V=2o=TaO}y>F~Su>kG%1SiqyG4>7~xES)eeDquu z>fTV7Fb`SG|wa@LTBBu6G(KeyZM=qZk?sc;S4}9|6Z^Q1NL0kODl6pS|!~ z1>il1cr*azi2;qhpl1Wmk-Vz+y?OQ1zTks0bm?7`bJ;|U*A?($-Y=||xPGTD#LAD( zAw8$~W*$R&Nc^G1fLNCwmBACe>lns%6a13!Wu#XtbT;0%8GMOuWF*wCbGalu))TF{ z`3U9E*`sn$#(f(9rcf@uoCChzNKYDp`uFPwlAM>T6AT7nUVPlU&!atd>D*|P{rf>L zm+QP7qrtcwgG?AVWbP0_PcLok5#+luWn4POr;N-=27OtdU3-M`&kLb%D|9NAh6DZs z1~F2|UBY>90iKQTCHtp%nXlRpI`iC4IrypgyJ9%{d6$INt=_j`f1kPZ>*oR9!fU~Q z10`yP+|Dvj8_+NMbk@5lW2e7%2K=wByw^!})TtB!7b|K>~P2o?i(02iX`$^}b!|GhapA!@kDJqE(2C#H@?tThGg)_?X}1ASE`a3bvAQai8mQk=kxf?c5V^`DM*qyLOVMt)Y{ zL(X90m)Bw=Kf6L*WbO4*KiPpCep|=e?vnmg?|VKaUlC&6snY~!kX)+wy}UOi6L=|7 z%<-V>pE-#N=#4Yj;R4+w{-PKz?8^swIv|(poe?(xZ))9?QCEsX%w3oGtHAr?Z5ys3 z&L8s6TMxX%Z~d5@e!}`TNigtl?9Tb2R8aj)@qFG^kSsZPM5g!RXS zc{)y8y>F-b-xWdU+xAUZH%-z=cD++w&is1{`pX$P#f5aPpPJAQ^Aa`k6~sqle9*F3 z#O;0m5Jd47@m2BXc=T^LqoH^wRcVP~s7zBj!%?P^+*Q(Dx=1UV$EgtahP&N9;Ae2> z8z_!SV8n$sn!ip~o?wR@@ABgf*w0#2c50{b`&oiBU){WcqkU`z{l37HUanAo&J+GL zj~N_k7ve09g`VGu{@f81|M+#L?|Y+$klaqT@IqY1FiwiovJ$vd;H6hOoaE2Ik6?)q zCv8{cq+O!*y07wl8_8Xt8$|#gl(>u!T-3W&bg4M=AFuO1b^K{n`k`N$>zf}kl)X{x?e}# zXlR@bd>X4K3i5QlY9sndUthIp&@W907w}y@c)&eDj!XAuVZ48nM$r2liS#h=8S~1? zZ=jF$SDI?UpL{;=0M@A}>k~oGFZ(!sIGyLvxkPXoy_LUQEobK@0Zt!r)Jl4O>rSm)=L&m-zFbQq(z( zZ3Fyo;9&^GXNW80g1<7@KAkN*Z)q(S&?( z`IAHmd1o_k<8$!*R@tVOqFmBeX+Zg;(yzgIgNr9Q?bLM#HcAFlnfOII*&Urr`<7`@ zzS(k%;@A1>xbBq<;2C5Rh5x{E^%rF)IrRU_eUj{Txw==ekoMc<>qH_KL;IwzjIX13 z-K#5V%ccF4&K>v+Nj3eh%aEghoF3lprE%5!uB}KE#v3vUsib|v$qVfZ_s>RY?7ie> z*3h{0#Dz}*hv!cUa1-tpi10kKnDx>)(hok9@R_f!ROA>yNBZ4Fy`T1fm+Ho^d-@P_@D~X588U*(^_pk@Q%J^q{M-NZGYunpo?+ImTKehhOJ0BT zEvo;2`V;*&D~Jgi64W<{(J;)h$8UIQ6#-e)FLWP-;uR)_%5+5^y4RfUXHejN^Yua* z^UHebKl7jV-|xNupZ?#+(|ry!@55h^Zyn_`cpv@-?|9p@ale()-%2gzk7;8Vg<{Qb z{cGB2U7C;k;S~!RW^Y@m0QcBqDi<>LV~+txtU2CBH*_l)F_l99Z*_wEpZf3Z|9{K> z+d7)#0v?Q<@IpU(yv=-?@DuF?9W{(-O&jrb3H`qGJ6*r=A^TZfeC$~%`<*Yp^MUv+ z;2T4HBsl-!`~S!#UFiQ^4!`r4zB~DaVd50O%O#338~yKceAfOqK`sjw-xJ)AJj|Je zG@kOhe_yMZMDrE2e?lLa0PeM?ekv)C>o1D`+-qO+Y&^BocgDXcSiGl4rA$oo2#zrC z_xZn<>*-?`z>EF8{C|xT=Klx2Fz)|Ym*8~#4<5hcBj77%m^Xm84EcnpB!dy~s8uXE z_BhrfZcx-5Cw*czDip`t-taK*ETl5MlzAR?Dzi~ifBJ9zG(MZ;CZ#&~sUW)%;A($^ zdkgpxotu9v1-hQ`>3`_^Kl$*iF7QjB^LM`dXPm&7_5b1Xvwq66^1tz2LGPOqK6VY= z6G7~iMb1U-Xc?XPZLVNhc zT>9>e?xU5y5{!Eqg0{U#c1n4z8Op0hZ!qhnTFQq`_oPR3b(GS$O}3Mihcni5D@(tv ztaN?pjjEw*(LQj%dF!>)>7^Iu=elrz{X8x|4&%6043|S+xcnS(<}Bd(n(F1q-&I?3 ziLByE;lHiC3VHW-ow)Ic@bm1@giDZzt!=Wud6MVH!qrUQzu`NVJ=31utEJ}7_n@CX z0}H~v=4THk-bknK9V6wz{jiS8_czLCImwaOU~BXnym3Pv z;kylb(D{J>Qw)`65$9n6w=QsT7W$vC<9o?Y%_s7-Zpw3GEt0i=FW|MQ*MhHF6WD0aml}|*Tt?Qgtw#Qm_n&<5*0p8al`d+&9bgE5}igJw0nSYJ=;y!k&1$Z6d zLNio*5=iNLJ z4-&=}OBo^L8cvD4JLLy5hC}X+vINRsMqga^w5>$mnKO-95s=rbQ}*wN{6=sUmCQb+D#x{oQ=GdAmBKI$ooED`V>+((*^yrHR<@xa6JuizHSm)u@> ztr+(N#F!X)CuKv4F$GH+>3ig3*5sy1U*kJ$2{U$rkiRHRH5d6&Q({$i$X!K0paZ{y zwqClgX_%v7=7mVmw|~Rck{oK+$gTZ>hwCjbME=}E-*ww?zlB)yaXHp;pRT$DJ1VDyK%i$= zL$4olXev8J-$9n0)`%A^E@E4CVJ0kF%En9YizPqIRT&IW9y#e$k=Gu-Ez;~`8%Y`zF?!N@w z@{GZPp1&M8VZr!w!QKbLyvqx0X8Nv^t4k8{BDd^3F2(o#6+hW%-PM#IZNMUwhHwk< zv%PTCfHeA!oAR2+#gQLrFEm!&74A8>S(|u^_-D;)=1CupS>?VxBoE5l(CQWVF#cZ2 zWUP1m2Yv(Q)$Mwj^flXRw>5VlUwOd0GZFV>n#!-!J#wV!JAEaPx2?XW9_3e&Tybn^ zSt)1OL3BPWY*877yshIWMo0ipYpEx@r~3+0H!PsivG~NL!QjXJH(#OrpH~WZ-^pAE zzDoB6w?eN);@&%;M=II$73QC0)N>Fpt`W6WG(h#vGec-*8%?S)UOI?1ol_uX%gIGKZW)XJX) z{Y%EZh3$m{{_Z9JG}O^~*GK+>Tj73<#mrJF*f9p&0WKznrO8378 zc5Ve7$x^)md{6$@;?aO_XsoNkxO~eZ3HWaBOj4u$^E>Z^Lw`Fm47=e+RE97o?jMNo zRc%3D%j*jRlwX3Lr+IHJ#veIY_W*R9zdw`mAW;5GnP@E9CHl(EDBo6Hps0rQt0FT1 zxym%-{t0@Si@sHYAN|xe7wc)+bisdGSAH`U^%Jc!L66_Rm?prh8F7RB$(6zquCxg7 zx_^|5bEsVMbUf)RegD&2>xwT33eKqOH*EP^* zB_9lYt-&&>U{CUvI^x3`GjHT+T(-6R3=@R!v9-Yr*$?GE;@a!5o@a1S0De#zw(=nA z-snCo@&UVD%(J|__uE%v-Aa}b{MP9K6Z66MggJ%;(sR$9+EBV5iuA-c0rwj?0{1)K zDLeg7>$T4flut0m`YP@Rpz+0@cXtcxGSUO^Z=08Fx&S@0o1HSii;G@V27K$g#)m@g zJ%N&m$QQ@WdUhX=JxELWa7bSi%d&vyO4}LY2i;pE9u!9SnYGaj=?CT64YxM}UkxLj zjP(qzG8@Jva}%`bw10(5<~)-t)3y-(Q`vqwm|sAAg+A)d+mXM(YD=Yi*Ggl|1s((O z@k(JwNlOgId&8t6lsvoXJj%MKUJ3G^jW*|}VEv>PnN+Zw(=Sy*f4sH0ACK-AP3lAM zT~NH2`mQ3K@HhQ(y9e?;m7tZP-g|7k7xY=;hERQ|!ye)L9PLw^H~P?SOVJc!J-4OH zj`l}q%a%~yE~`qUVPH4uaVtkd4|umrgFJ!?Maoj>W8OvEEUf>{K*M$5$I5mWp_J%5 zFQZK8(h7PQzI8VbILE3^lOB*hPq@}nN^G>#4Bu43sW63}HbsZ;gZwP%aDQ7g8zuCY>V*Kvl zh@*%Pju?&CfyV=TMm^|drZiMyezwCA1imOQw(!V@TpHlXf6@JS1~17!+bU(Eg}Ax? zc+*?3%d)KuJlSC6=v z{6KHn7TBrAR!;jP;yi}(D8`uC!Q+Sz?@4S=0pZr^f8@SFcWNZ*H$zf)zYaBoTG zxIQgpPuA5oDaEgJzus7lpto_hXZhyOp8J*jHGR+R3!^-8BsUwY0Nlx64W_&kIi+bi z`W(_1^BZzI`Th37GZl#|;3s4v7wHW$cjUYYd=E8!Da7mU-klR+H++NYI`DN5IFyBX zt@pQ(-cY`(#?J`q8mmb3^XECGM=6UPZ-8GIRg&(;xJ?;HCBP$B!lfY(p5d1S0gl0V zNbu(^nNR6^1j>K;=XfXLvTgDXM#S@ zfS=*s4maTb4u78u7m;r?$Hh^;wI6hhmgx`rL@5cQKcaO$vWfaY?=lBt4~gx7kJc*XbU@%W8@zj+yoHW()E$Yc&0Y=e~~VRnTY0L-n;UFuu9F#RB@) zX(evJyRVwn1G}s0_jwoSr{iXd6KJ1k^{YsZR;^cc65|I?3GYO^c*e^@e6XqA-GzDa z-L2ChzwcCyP1sNPtVG&RiLcS22TG|-J3U}9^yy9sPxIRg2T4RT$o|c?JPYDy&!&Q; zM>*84-CNWK`7s)sVDBXZT&?I2tlfSB>W^8J zj`T0wot*|BHp6-hwgjH9N-5YqU|mXWic(~xjhc@ zU*>r>jo|NH#_xpZz-wFndJuY%pPQNw{gU>Hkb|BgMLRu*Qhxhjc@*U*vU+$Q@tNYR z4QxN+o1=F8-6f#Et-PxMW%p0Fjp%o!BfsYQQk6ZJ@{O%8H577A+>^VgOH1}i`zK$S z2futWIi>^iY<)I|Ll54vk8grql^M^|dqf|3=BDLtM|(5x@*+;F{L>EwbPv5_$@dFy zVx3T9JjD&!=Br&7-h!SSaE&ow{9bJ{?F*z&dX>JE?hoJxOmt(NbNZ{J;9tVVYix+u zey#4lgm(UhN5EVAbM6St4_p}R1>Y{RqCY~9Yvn&+UE8t0t=7wg{UIXRHxT@` zZ;^aCSpJA+rh<=-B5nzj(R#zq4#Da^6exqQ}I~21noIS zo7D%p6%n}HjFZ_po6HiMuIbr=SfyaM~1?DlRz+1uzlgmsqnbCO;^ zEX-pxdfYSI$S>(2xqIGRvT-)_plnfs9^;M1M+)en+0J*PUVOq|g|cI}SGX^0QH!qu z>m5;+Q@$uViQ6ORpf@=q9Uq~+=Z^b4@QlpVQhv=Vg%RTzG3+KOQ{9Mr-oBqUK(J$p zIE(lgWfC*1g?)5)tB3s9P)EC_pfC7++F-!Cj;`C!_Vd&sL!z;NCGC%;ePF0#^LIWL z>v`OfU64cP$J{x{&-HB&iSM{0w7ZH>}TFn*ea z6M>(6`4;l$^!+`@Qv6Ndr!;C9z%O8PCAoyht;B_2K_7QbHqKb@A-zf4padQl47()o z7jH~<^Mb$sxav+R@nhjeXJ3r_%#}xR&?L{|#TN))x-Z3`b3v|6lErc0pFDX8;gepv zeRSv!*w69aJA)DDw6&_W;Da~wSJDrF@3&O5MBrKO5-q3Qg!EtVFzPN zm$}%Hkk>YOm?27=SzMu3ghL+G>~V}lj&8!qqxXhR7#~x>!dg~ z%F1dDD%g9;iF0=1zo+MmSCRxhJBa%)hj}t{9#Woay5A(vuE+C07-g^no~h=1AE zBY7H*h+FA(H3{^u zJ)?&54yTtcP%iio^2ifOX#P-7Mq7!Xeo_SBDOpp52WS+35`{d#$k3w0R-KfHN!`T8Jc$956c7Sg&L$phwx5mx} z%A4WQi3av((5?w`3jC(e5{ds5SGGc4e`95ECn2`wu|hpy|9yy{2Be270~)oI@SsDT<;v zjh{o$cjTYCdXAyKQtTdzc!!a3L`SyOGFB`Goo6O@Z-(85%jAOn9lbx3Fv< zdEO`gPS5?($EASt_(Dz{f_%cJG0r>3x+?WA+I{Z&-vEN)s4D7@{e=S2548C|bH;}yPKE#RR zImG?p4xduEcY6BA3vnO0BK^%8jBon47kXG49LCbVMf=L5hIat}rQl%ZL%KJuHjsH0 z_)XD@Xdj|`J@1?+dmQSxA&Vrr(>dt&f?WLG(I>L?E7WaVSh`@p1vp`xGP)i6u%LEzIMu&66>+WZZCu#eem6r2F%Nez`doho-qoQYN#W&bh~4lz^7MJ zHf&9&c;+ilCOzLw^0YQgq`Z<89~nKUJEDp+AA^p3gMAeGZ+ulDoNG-8%_2WSabjtN z0qrA3hVF*^hx&fvu%2Gxcn@$--UyEr@Z;FOf{uQc1qY#zlIDacoc|Az4t*Z;L>t2z z*OPyyYo+G^?$LW)@S}x#{dS`FVWD`b>oD?H@^5;j==VL{+=G3Hu_v5M$bPx+lnV zlMbRGuSZiOr<2}T#m!ez!H09If7QTFZK82y;4|kw68?H=nTJ>3YgzN{de0wXzg4WE z8+_N*&a8!e8`5t*q8kO+47kAjm-J_0mvW7herLeV!Eq_`o>2dV6H-A9_)AHS zPK=LE1$B+4ew5n;_;bW@3FGDcl<&Xg4YJ>8PD4LfM;l7F(cV(dDKYPX@ArqyVN9Rw zd7!4<#W+K89@JEPY(i!;`H8}Jq`3aHf4B8GpI45bHHrGE`DX@j<6m*w_Uw5~dQVkn zF`q{|_pIutX1yxGQOkO*hbJ6oeCK`kJel+RLj7&ozH@fPFQgsleomjyH2kf_68XO6 zI4;NOJ=T_O50<1o9A9|20RQ~BSoJ>f5%E6n_XRj#9$C^HV%bAJkNbx4{bos4 z;|clwN7lIukR$KI=;ZY#%VB}Pz<&PUQg_k|>XYA}`MddJa@hXK@=rhEyy&6q98A4m z8awz!KNHvash?!KLSX&s-(06Cx6NLINd2nL`8&(cZO2A(-DrM2D!}JYhn}gl;XPIP zC`nDeo;<9Z$a=4tCJeG6z2__4iRVsjmHr&`R9HIbtpNFoSLMxr6LR~nR@=&Y5l15t zcl30g&}UUqujb7b?EiqfUe(P@f8B7-kMD%9EK9LV1@zaE?Tt@Z-x6FYzxS!!M*6;3x3ir5hDu9%^1bdS@%;Hp?|EhxRw5)CE6| zdk)SL_^Zdo>g2xB9MA4C$6!Y|(adT+2YD5qTC3{t>34`gW@;z1KUIFxB#vXw%&f_r z&t+p9oV16&<|4nm4ro`!Q-4>*mN?i)NzG5K7r=LkH)VgX<)ovH*V5kwzcwkF{ZIMQ zXr!L@UjH#k_H&*4Zle6mv#+&N4$o@!W7)5Jlcx{)x?H>G7mlm=a)q0I#q9KzbKLG7 zx8yiE^iMes(#x8%cq!&X$dC9$8FX!9qmcgS;lAJZi_n}4Cc9Tv+0=Ks^Ute)xV z#|!>O|Dx{J06TrfnKbjq)iykjbPtjJo?)w^Fa4I|RxOagK)|>j=Vm4zw9WKo98E+wd|hf!a4`s%%D#(PMo_seHb_HtHh2TMEh8k^*ZJ+zPD)}JC^!;@cf@Gl)wL{ z*YC35uoDX;>Thzq_C4yM`uxAobG)HJ{o_bSF}0u%?exUMw(FcPEql#JsE5T3<64$~ z7hiI6dGBdoq5Q`yPujWuDf)B&HKL?+-UpahuuJo3S--2FtbNAz{~L0|Px-y0t7sr! zXHFlG-v=jU_v^=T-MZz;;5dgVidM7yzL)n35Z6qSun+3#RCKw1jQppmyiX~=Ahn>N z-DkG6r?CF!mSNqf-XHxFXpE}_0nu-^#uX)0CBif)=aonB=rO5u29a3@bi0=#t z+u$#-pWW10S_Zz=jykMoBTJM=-dRVwzKZMrWjz7$KHDYl4TqiL+}9FujCLiQ7k86y z&7{!RxL)*2u;bnY-Y>eN9mJ1blDaLCdRK|TD#qo7qwMw6H(pl-bAPIw@6I7#&-M*;p zh_?vbrwVUBrr}b-M)p5w*sL<@e`foq^H{HC+&;XI39pvRXPxAehRU>Gq|DpD6a{N)# zKIjJN1cw{lh<{5aIq&QyKi;rS|E6B@MW1;D_)aWvO(m}A(u#?7?7!jBNk8S+F}+~E z4S8?GX8GK=uKDUQ+D~J9SR?hnr=Yx$^d?K09l76u9HW^Q_RU4ScBy!$uhU?TJN@&4 zh+dkCPwYO~LcCPBQ-yWuQsLMkD$HK!GgQD+oJZAPYG(hDmm3=}4y)OhBg^GdW$9j? zOSS*-yerFB{~Q7Tj`hxUa0%mqZ^yjajdrm2QH8{PxbVg;56j2?`oZUv>z5Oo8Yu^* zQ^o}>T-{ay{}5^Y*{H%fcvJDi*5in$5dYie)Y3jjpHj&3p1Cz3+y98hDRO*U5Z*to z40QLdYfmQs5rIWY8}jkK`=yj8U;x~-BbUPiK30_k8@|{e%U>rYQXY20Y1xn5s;<^C ze^C9|O16{2#0TUzr8)31-V)iw*GdG{r z%>cgxh6oe5PM!Ry`3C9sJ-D%u@>bzop7yCSc0S1Qz53%}*e&dE&S+~M?5MrvJH+qX zt(j)NM?6xv&%ro;Wm$Nr!NvZ3*Qzm3VGl32$m@Xl_x++gufJ_+rJSxBm7lSnhDELC zs6R(cwugoDY;YU#6a{>Dm-| zy}#FdiGI80#!mS>)n=JLp7XA%tZXpn@3NbHt}uVsbOmt(aG#c)gTDgqTZx46;yh!E zG@1TV5v>_OyY%hxWm6A5f-}xAwZ|CVBEMCKs(vFsXT>UB)tf#q} zZT}C((|`U#oBW>ZeXW*qiuf%M0lN6?nZ-vrJCw-=wzC*2*R90!sCUYD%kxSpqQ+oUd@F@Td6FBJUSqT)#9woyqZ!+4&RfZiLfapH|QH zKK_@@v9z0cGoL^nJ)MDZ@_xd(bgy&??VNcN+Afp7$8PuQ^bb|$in;9noznZYBhimq zp&CfOuRFY6j$eAGp@`*w$T-l>bv)G;gZnzLYrC%#pW}ssUmmwM^Leao4&RV5=zREMPXltX*NWBGpDy*6zE{n*r9b3Uhi)E%qq#{RWV zZ5s1m*VME_F3xoi*ZqZjE1EO&n3@Bb4@aTD@7&A#0(Z}1TxM7Coco6V-r6#hudJCn ztPJ?e9`D&MvR(wwRnEh$Aqr4iRklgWm-V5KENv`&yKEq$9o;hjQXrh; zEctJ1LK^#btlW)x*;KrKuHMLg4Egx|1Lz*Jcr6@9uOm6#dA{IQPBN38D)MW@E5K*Y z-oKyvIPjM4+cM}~7noK$qvV3cVNX7F8RyrJwSj7upVF09v!A)?nk42cJrdUIrs8WK z1XWS4!QnfutV9~y-<-&}?@8+iS+w&MU#ODjdV5YHOhBsovcOOK+A{Na1o5v!f}MEl zI^5dDJjuv)r8X|dTz2vh?9J>Yf7y>B@1h+0`WJrZMAZ^M`@Q);pUdYk{(bwoP8Sad zi@^JursB>w7vkLZadBmH$&ky?|I>Nv@xC*@#8r@!KzWEqnwLaFg~xUat+7n?Ygv)d|50dnUs5}R57Luar3V6mS30SoaM$xt3Qgz{JJNd&18Hu zvH8M7*-vTJ^86msJ_hl1&yq0{xW9hI+3XETpuS!W@}y8Mp`I7_K_X5!k0$+J8_wP$ zPP|g*zfN5SDHZmRYj$6YV&0Y%yM}u8401V%)0g8+)zLolL_uV^rXmmTwPJJ6X1YU&)8mNO z;yeGizniqHBlW8{dhs52yLGew*bVYiJ8TQ&34eTSG2&im&fTZ-&d4z-EfI>vS{a$IeHT1bNysn z8OK>{_u?tyntXR@9_T+F{|WSk?~(eubs)XWU$P{o^CnIhwhHv+z6 z@*h247gFIeA7aGoScQy`$-+5fTti#J4w_8V*q>3KgV~Mp&H!XhL-+PUDV$X!|Xufh}84+Kb8>QyTHp{)_#Zn*F5 z{C9K3=d`17lWriROd~6e*L!q?p@)1+(3`}&Dd9!R&x4|Dz zO>)9s;6JNQK4AGs)zA#eWlH&(6x@rl`U~r2{xt&~4wk#uKgD_r`Jb2a*#Qi@0F!it0`rcc(rM_$eS9nEg7&3+`DdF`V}Yv$AuE zZ`ohcCbFG*jVRwE$nezTJAK&aZ^~Xs`#E>rb(-=p2(!Oty|BnFUgoo-{c{;tcq5NL zqJ8|Aq%G+{dV^OT4N-ZOGKJ@MotxVu8STo(8$N|baf%NoCO+jBgW zhh+FZgZ|ciHu+P^V^G_KmX&xOa=Wt&^sWBnPm@?K47~|GL|Q|-2i02PpXQc61dc4e z?;%VA{~^E|-e6$=*3>+ikGNU0AV=H_)vrgKv%RqA_MC+WsWa;)g{atNZ zGW=nP^|V5T^)%MH#bs8NodnLVd9$|+_U4irhLxS%RygBR{}swx=&>97#O>C`ZY5>( zXSJ(m=sAv*E9E}oCQII7UzTxPigP8Nqp~gnExL2IV)Z3I?gj7C!tV{Y4jVTV_bQiJ-Q~JsmS+R6 zk+|JGqGn-T#l585tB@w}3(eOLBF)t_3@}o@wgk76_*c&ITV9OE+M;^c$a)^7;}H2< zzyHMFiAVR9Eu)6dg|Ld@d_G#)jyUXa;rcNXAM*L6d+t!mqvXJSBlQ}*Ndvq-yeCn0 z^nt%zwNE~0u+GS6)UQIl8`0J4$+tc9cnIxo$%O}-srN~Ldn{27nho=Bk#3jM$D5hA zt9`&V-EK`uGb91`sIUhPR+#S-ZpQm};3)(<@>oAYnT7YhvDQ=O4@C+@^$t`yMgs0?&%D8o?F@J2=FsTmdy90fL>(oy=VD>m5{5Z`%Ca& z&||-)&|`=-Mim5m-Cme(8!Y2vDwQtm8@3lV>K8|nzS}a)P5BHdX#oyRNMVpdkxjaB zsX3wS_sizyw#z5an~pV$?8ka9)2w8w@)uPw-gxgH?whY*dDWc#p-12E5t6Q2S( zEw`3C%!n5t&*Q#!J}(N-#%T%e$36MQ41RO3`s@<>SrLdj&U8&%-cye6jQ{ijIj&1K z!=51L)5$VF)g||juv`ee)`9e5E~bei!O!>g2HacNUijIA`_-g7!ttpe^{f$Ly#l10 z|J!x0o4M!H##K>{mEj%-`LH~_iE-in!}_KO&eK19zX10`fRh(eeUoyE)9dHVfc&Bt zI+Ce(^@xY(C{NWE$8kPS7?d1Ky4i}@4@M&O*dxP<)9Bna-$TDpAPw3yvShmT;os~& z;^6f2baL|h=^^7v5qF=r2wjXhydQrtP$%P@>@XPj^FHuGon4majGVYt97lH4czGVZ zd2|BKzXO(oh55Lb3cOpxtpSWbwF$F;(>0^S0Q_NX+k|h9+0XxJq2G*)-&BO(|LHs99xdA`6dK%{$Njmzr3&U%lCwAU zma+64qBh`VOtoy2>0EW+qu#s`trqGh;g*?pWDTuffO}n$xm&!gODXTDKbG&OANZl^ z-lx=O2lq3ar^Qqrb7XwbVoir^#={Yg0@{uBjitBKiL02L*|eE*AMi$q ziv4KKui|@JMt`t`GZ5n>*Qxez1q#Z`;kuMI(oXO0d^mo`-{Tg zf%+2T(n3i$BENnE=hGjawW3|5^&L}V8rtO=E|%v}U+wFYu&!e~O(nUcdr+F-dIfx! zOM8>Zf0$(bjQiWXf=fv__sdm==->weCU0qp+`nSfJB1~nq?ew=b&9Ur=y*_b9m1;>oV_0 z2Q0JKD0Wky^9}JEXgAqEStnB8iMshhPvFKrTGMvXiu#c!Z|~zc{^z18NIN`V(@+C4FFbR^_C#y4Ka=cE3uhTL(Eu*x%fRT<)<%(@3F z!Cy_w&D(tLc^ux2Y160OVfVN8lF3T-S746_ee>VgX42!{v)4T?Wov}dbtgm zF9FvzV40#Bi+BU?DMXWva+?(!hj<0`Lp`Z%uTr^|QvQ0k|33A8rLN+cJWgA|)EVf{ ze7isVVx-l7@HlWkL#)C0n?-$<)t(>LEzKF$QsyF5=Z8M!SGszY3EAb`x%qaX@Y_6yL=1B4p2;9nKe@TkTn@BHVeyWyo%5B=AV!utTjorzA zWzKh;H@U9PkFp>?Ys!V>1wEY?EbDzfu4}p99=kk}a+N*{T<5&aZwpnk{qwb%&Xp*? ze6?;L{m9SeWw=K(Ja@wzwF2e4CD3IB+f}bF8-%a$SO*3;x1 z{YCj`IbQJw3LwSd)(Z!J1FrK0)2FwT*_2<=w1vdwwkVWCJ9Ay}X&isY+;f_IVg0^^7>>Sf3kiQ_}Y4>y^eGZ+9B|++YA5L zYh^6);O)2PHRHXvHPCol#=i^w#_S;7d(u@oz6(zG=td%cr@DuXqnVeQlP=G{bMN3@ zG4^4V`SQHA71^dzE&*W-;!EHk_BR$&E@`7qR&)Mq*T2?=`ni>r-3D{~`p5@z-1dEQ z+z`fTi66g+%Lc{e_hWg>n6uR!*ROk5#ZmulZ4oc=dG*1$eANI+u&c>Zrq^CR@%!)rHv`%<7UA5)<`^mTJq8ul;`$L zYPrgKSC%S{5QqAd?okAvC+yb0GYaGKm+z}(yWO>=V`vweTa%8GKY!d&aDTxxaYCOh zShcJ#ZGIFvyB+Y;&Kv@^fb#)@#i3?72UYAC>OBz<%!+4|A~n z<8{rj2W=G_G;Mbzt?u|jX= zbvY8OwyAjX{3773;&*s`rcA*&a&8Ec1-k&kHyeJbt&e;DUZYrGH0 zpW)Sf**;&ZtVTQ(Ykg(Pkj=2x6sOeQh^ z7}H0gXOcOt2hVr^hx|Ch3Oww`f9d*ZKCcY-MWJ1;)DV(SdMCcg#C!7L*5ebZCQ#0Q zI{L6b)?usX$>8;vpVrS>74#pu?;N-r$$Imeo478Re77&%q8wkX2y7)?cbs^Q<5N^F z!~2_n<$ANm$Nme<<|NX6);znJ&qeQvF-*sH8I1m8bHloyt)kz(vb7rbLKf-2k<7q@ z!TG?#bQy=#VBM{v-8ugK&5_6Wol&Fjz*+LOVwzXRIsd6#tvOsc#H3P$DH$h-mhy-6 zD+iXEudv?-m32nOlHcmL>!CvrYKEltwDQPdkY2^s1Kj zxqsK?n?3ObGq*H$3C~MZ^}0&ZQyEL}opp>)J6WWiB=m92qI{bh|1p)nCRBJmw14Xx zRd)}to;Lrz6!I^McGM173_W_h%G4X?8qWSN9#l~eCPDK&xu^4j<(Ah7JG)@HXROfi zcXvttxxfWKZ+U%!GK&3d`at&^>Hn!_9{rrDdrKYs73Ra<%UGv?H~Osl++%#FJs*JN ztbgM4z1fVT<}Ry*-ws$b?u%I8hUeyI9l-hAaBF1b(Ng-QXKTmE`>Vmy5WLp~e(A+3 z+{X=Aa+5RLxi75zy#!u)c<$)j*>g$XE;&#S@~{8pA@z18^WamC(-~P&!QYVyp%vH2 z=ec1|Yv|Yd734|euTdFU#yHX2lyQvo#crVn^6~xg#unBOIRANvcwMzBi=BL~GN=5) zdJ)@d>6c9vh2>+he&=4f-Sqt{&Y}A220@=*cYGaKM97VF!F8MqHIMG6YW#lX2zUnid}b>rkXI83V@L_O84=}?Nd zdMN@f9&p@dXZ0i2yK}$(bF2fof$ql;kKz2PeP1QVv1a|+^GI{oRXqMH<*`#CV4cEu zS5>NSVK?~xUCJho%RYLv99OLNM*fxfKYdQszd^ey9@GcF{~De5L+ zfz1zVMtFrx?o;BJU;boWADj=E-Uu$K;=C#iJ1Wo1_0N6sI{10*Sq16LPc6eegyFeA?{B-p z{0;434f|``Gto@Hf9s<_`D4tZr#BpFd_G1Yj^Mn}2on6wa;xF>Z*jkDyY1LeEG+JWJL*Rd6t>dqq zc$3d{>HYgMoiFxDWxH$uC(zIMEalgkkLWcdnDURBx}WiR?!JS0zj0ri?D6c9`!T%H zneR2kAS3(^a5-BPSVsb;>s7`E?vqAWS-$5u);5|U$Mcr&CpItSe3lZNG7hdv(&dr= zr%^ZeQtwqCm=UL*HyXJcC^kOnKL~-XBYx?UnJ1pODTVhlKC*;kzb% zJa(qNQyqgiPj=-j=raQ=P*&^RZ`f|>(ZGvyJLQ2j%s$gO0_BpNkcWAV@2x(#+`xHc@V3kGK(I00!}&gOT>D(&vG#c9)SqR3 z@SRZFOK?TDZ2z+s{kop=kb;lxBkrTSeQ6`@!O^PCqMYlN&zpmGrrNpt8`yrSPL%y# zNwEJu>mSQAv%YobcQri6$hEZ2e8}fw`$I43x>J%0*?!E)-%oNq&-|@Q9*@)f0w=l1 zA%$|ho&aK9WkU!|WDLjTZ#<(;$%eVL{iT|8g0s5TVQFIm*xXZdNj zsfj6+x2ZrQV7evzBfp#yiUX8B=nI<;- zvN$gUsTbZ_U4Y+S)=0W8rK6I3O9=(Cyak`MlQN+Stxy@qha{>uYDt(vi=54NK>tohkEP;0f%Yu-N=!p6>OX^^?Ba z-Q3FOcDuNVxTV*hR|Egm2OM(uGTO@!Z`%#hbLQolflFa}tMuNd%x}wgXM{4OjX*vE}??trNwGolOm zFKxK+l<6(U&Y7fVHs%gvIz)7Xui?4Tk2(;y-69Ps&0@X1lBpE<%GN1)c?(G|R=W#$ zQivxK-FDWy7sza;90IN1uVVesPzBBta30_?!;hcGcQxHxSWg)>tD5%s)OQa1lYqtO zXprODg)WCcda1U2&>NncG`!1Ed0wq4Lp+c3o616*C;Lp#4!EDNz2t6Q$NGt`92fa9 z<6a$BW6R{;bEc605kjjRU)dd-?6iXh%^$E109VB~jLgY3*!lxsw)SVa(oW48Rwd@xzXw%Ss#5|J7jwhg#Z4T z;|h89;dQn*CoRPM#(q4{o5JxKlJfGIcZs*d}$zbx(Ua{0WZRrKPVVYv0B#N@wmo`gwh1IbtO@CR3z7sX^bj+JzRlH-ZHIOpGZ zUTn-xHgMdAfq&{vzEqkp;O6-B=7tU3iR&WFn$;1v(JZU)JMcS{3#ReSVmsc#vDQ`FN=HGp_q@a$DZD1Lo~;YjpH`z!wh5Z8=v5 zT=wC)@x7N#L%qWEl$6fEdC0x6x_u(`eQf8%NZ^v2B)3Y|e}mi6Kst48e)U+Rg1?Jf2QDIbBI8#lFm$^TLlNZK7QkCVDmu;5gOBm}cfZv+{AS zf&EOcUhlGgr%)&80H>{`dpqqtHF<}V<0xI1(ZqJH28(R>Iw>4}4S1o?_W`dEc*jC? zG|MCKLY8hlE>MJbR1@(cZUrdH+kM+g>JqW5Dw2dp%Aes<%vjcc+Yh{cBd$M2tt@=&{p}6!w`UIb^y? zz?DL~Ew?;-NZ%`o$(#oj5nbORzXpYCA^lXkt5{^-?$Ed%7h|9BL^z*_7iI?C9z9_r4igy0^Vb*g#kCB`@xje47j(XL#-EN?~ zHw3&s%Io~=t*^-XXucN7cCBAFalN*j{GhsVxOK7q>P6x_ZnthqPnGHH&`HTGcfS4` z@FjrbCyH|F(iO;l)12*|!t%iPS8)Cju=u5uo5|Pxgi`Du0;Z;$Ex@^goIjRQ$cLm_ z6ky)mSpv>7&PRscl>NBypVwu3a#uLa6?_^K*gY zYOeGSCVp7U-h{QppLHmMJFp*L!A%3(#YNbgDR^qUi{B?zL-LbUaeyU}>6?o8&{on=DOM6P&W%-_Ldd778kwq`;rnfSGIq25< z8qRQ>_{_B^r}@cK_#JC!cyKWBi3F7@obt;{O2&MJ|97f|WoY-%d`I@jDv3B;kYn~B zxqWaSH%?Ko&#f}c^S^mf+dh6bd;fAf)*0e%NGK1Oj2$W&XB6i3(dDzgkSe`+=v(`3-xZ z9s;ovxxLjO?GbGvOj zWd0`1Zi@x~%W!|2bXV0$XJxra{U9f_OR}rkuRGW+kISs+BkT9;`bz9F5HCdc8qIoP zy>$!Ouh(;0mX|?rIVn$1W5t8Rp!@tn%RKs%0fXOivR*{!7Thwyx>w)|BR>UNmx}!+ z_LrFE?%I}QWB%ihQ|7aNVO4!3`!Oa-{h1%=i}aFyRaK6ka-aY0k~DcdOQRZCzQvo_ zPW&suZchdZEA$->zHmO0Zw;fq!iTiry(Z2Pihj0{ZhvXMi|cB)r|nOf_lTjeZ=Y%T zsz3$l4HL)X6ajukrBVef%dKv6nBhe|O{k2+dbCK!L$zwPsgz5{(B*jl4zpMM+z(#R0X=_p#R!&55BtSGfh#d>>P*aZ9Kqqjl;i)>6fcpN;yx0H@vL81pdsYTn zFa!P^xI|@lpf`NqzN5jwdMcM2_e4uf3+_IgP5V*Q*AXu@x1ZCM&h{nMs{5QrntZpC z^F`+gm*eb?p?@FE@_DuO68Tc;+`3qddur^m8v0kGxhjv(@i`hw!`j)6_zd&7Oai_$ z=;8a*vK{E`j%3pHq`kl+)!K5l$^7T_bCX|h^*^iGk5clqa~*U`ZlD1MEIatG4KH)w%> z!+ug2*@N{fhD71q1O9%XQubSGnvH(;U!1f9^l+cA^fy@_oArxN^0`qL2E0F<>vy)x z{;_^;mWAWpZ$1z)95{xm+&wuQm&%KSaoAl=Z|$n(;CF9}SET-39>-qlHLClU$xJl{ zCE}of<)yMj>}TL-j+VAvLc4kK>#m@m+|(R3&ar?`*L)VM8*r4(x(TH7C!qt^-(0Jt z@Q|OpT{3Rt3Q_q2Us@ODvXL)!dBaWOfvO#ToT32VQhHLx`uLq6@jP=qk}IF`!$M`J z{xZ&1T_Yd%3RNrXcFW0n{bibF^az{21&- zZH^``!>#^d@Nfxn9}aTNlTw)WaT;BDU8|(Z`{d)q#V&7i{JsLWU6$v-Tc{7b z=rn_p>BmWB7%%WiHw{zbZMfreS{N7C! zTVs*WoFvtfA88lm0vwT<@5*t`$@Y|^te=Jt{ZQ^D9)}d0J56toXvyUBif8>`Plz)@ zoq24h5X$pd&+Dky^}zG;q*5QgZfaV#G2P4l3+e^NH@OM;J|6K{qu&!`{8Yt$dw-5k zA>OTS#5jKIEMS~?4-`5{5eYhD4-_=9AGgYa(?R$-WfaaWfOnL8aVF+}%BP4|KGeVUFrk+H1;hb%+J$4Ugmnb>A5vU8_7j?- zGE&ZVsqy}B$f1iN_&)8Tx}x$b?exmNN(1$@*6>a=>8S51JCd$a=*W3&4Nu^?HTOOn?AKza)k0TrXVZJCkdw{ExD|tH0atZZFGx>Z?tuTq{ z-DJCi{M4HZ<#`?4*+b2ihINZrLoJV2)ewi=xr%JEHIT8G8 z!~yOj3bXqQ2K?#^xRL$6te+C&fxPkk;N)Zj$06q@s0jGm`G3v$o5F@3dKJa!A-b^5!g=RJC14n)Mu&(r{%HnOIv~QQn zC9$3QwJ@}YpT0i)6#Fr{{fN6@7eX(&ANN@40CCW}NHgz)Uapuk5c1rtA0lPuupfVd zV=q&$Eo5&j+TZh+7)dWkDRfxI`Q&}F6!<aeU#c zyv^}Byd~MP9vu1b8zrWL`8Mp{H=CA9(qPtm*f_L;`d6kI4D9coJ71K?;pigUk-L17 zF_v;U@RmqAQs+%EEH@-a%i|nmcI!fNb5c&HD8T0;{helaDANfI_7w76aq#4Ej$b+Q z6}f(xM`vdL!D5v}dNJxy2UDxTt)TrVH|>_^YyO$OGQCRo!7F?Y_=G&v%hgRcC}DT- zbM<%l-g3^o8LJo{7OsK3dF@u)hPYquQxvzm=u!*iV(1 zu0QXJc?^6z$5#gWv!uA6KO^7aTMsNH9YeNFwi_}0kSxCeDna&B?(nn`A@G;K?kV&iqinQ4xx`_CtMN zm0QE->SulBR8Sk__)QWvYDmu+W0vFde^%dQJZ+VV#3FgUh{|lHe9I+qGx^S_6b z;dfi$cQ)%I`}6z@^QUt#^on`YwQCQSH`lHyr@zq^V84uV;fw%(wOBvF6IMljbgqFC zQ)kXSSq~c|qmg!I-mnS#qgbm0KOB_X36|}&)6lBl5KnK`cdxxK+p)OBjA-aXeYE(7 z>@P)o`yKl6ad9`{f8du?5k;tP+H$kXLtIHgdV#mS;*(m8J10d5Q^5|fj_86$07DJTFP8c`5vr! z63Mh=+>pjbw0n2{sCS7^i60zikpOFY7PFXS5ytk-$f0n7{JB?<8)&QDr*m(p(2>}~Uo6fe?0 zFKcfhe`aYt{M#aZH@o>D_2Y3{v)S*DtDeH&L(Xmcej`1l!VdeyJue}&$ddxxx~YkB zJa%g2_urEK99@OTdPO^wkT2r@{!<{g5A_P&Re7EW&lT85V@3aC*AArP8fzZQd{)<> zM_9#l5$bI?#|NIOy%u%@{oq6Pq#H4$LAF=-fRvbkWwUAGQUQJ&@1><;r4R9XX8`np z@2_I}>r~|5VJ+Cf_6yUM@Oy~2%z1B-PQ&1& z9mJViaJ=zX@~_(WEBp@HOS>S~64T68BK@FMwCBVyRfQ{+0m}#aE-Ix+yXYW}k>i8{ z&6qaQGpmKpOm`fNf?nbG#tuKlw1dzQazXjIGR*(Y`nG~DD%KNEIPpGqk$y<9;vV(( z=+RxAe__6f4NC*j{ zJxbY`b4gdB^fB(XdI}1*li&8U&9LLN6t_xB;yf_AUC`Ty`U7#lc!{HKFr*Jy4%~SA z!yCU5Z&a18!Fvdt=k_aE6`7lkauIgAyihPIa!A)D_6eswB}$X>*`L8E?gZZ^bti)y z58ZHVJxThv)>Pz>&%==`PE14;4$W-Xoq6 zhX0xUHm`m5oc(n1+{J2`ogx@j18J|V-`!Zp@(9I2`CLcR{e)Y3xL=u&2YG!6y!Qx? zET3pWUboWSF?RALIu{D$N078a2;^%=D&wxoXPz!s&p;w!@#kj#=c!C`7kv{c~_9CCV6Kq1`S7|9pHm8u25@{VM zX>fk~p}u|9Dv|SH_wR{^I6i5i8|9FT!wh^y*n=toe4?McRAVFQ7lS_dw{J^996-9- zVDhEVr3=ffIVt;|lnSx%*BMV{+Ij9N0dJD~I_+f}&iNMUTd&VEXQ$xzYB`ejF#2!J zs)@=$UQ`umkH8M4)>WA2IVqw|n@qmN&YcwUxbkiCcnk@tu+N;7WIM-~of0Ftgmko* zvL*Ok#QU`__!Eq4&J9O4#<4@xXme6Rtl0{coH~qxmg6v*weJ7Z1J=Ww6oaHy%KfDB zd3s7{BIOLZ>YyKtQ}AekZ;Difa;_f^t&Zas6JE$SJNW;eOIn$pN_?SLgPf+P2>g^3geuxxOi-onge2PX_J*%e8UD--R80sfL`9pA{bmoL6f{ zgVG@9-`4_vc?-_x3=wQEO5TUW1GW1-i;4RgG(8V^-iSYZ6-mVH6jVVHag#Mkj#r82 zUejxOZ@d>PT&cYRI|wQK=t^(kL*qSdwqOn^JYp3(8ZnOd$a<4kPQP)au<@(M?X6E( zKd(5wZ{t^JpP>Di zEI-*6Xd&M<)3jMk<5$-J9~bu%l^wI0P6`!NFZ!PxPre-a=3j|NsQ|leQWGO7XQ`lodT{tYha7yC)N3tASbvIr8_t)`e-)QHJxl@l${~})POTv~8d_KJUN$BbPSF`eBgNRov`Qv~K`=NfB zLFmAK288xhBE|VkkPraEu=f3z^GIj%^!S$p#L3P}w8{1$V!sGFjy}Y#rynm3C*Aq) z_4|U)=a^^KFfGp6UDE^lbDN8McZZ(SrS$%&XF1bltD5zNj;UymG^k@|rcka!96s|~=J2YSXLj8LByMV(Dda(&I9=$R) zPR)LGE>Aw|X&h6cWIXyg`IBcezp2O8<YX{SM~K-rh)EV!AFVZt4GFm=7&_BSVH{wB(uX#`D>@g*U+xcjk`6JdbeqN#xsrA z#!VewTw-}rSKUs!u1jgaXNF#L(j@ll)Y+3FLGNkEBf0!DT(lrxy=PfFGCkGp-P6?5 zRQDVi58WswO6;$9{GT9?^OhFe=>rqd zΞ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 literal 0 HcmV?d00001 diff --git a/gamefiles/models/particle.txd b/gamefiles/models/particle.txd new file mode 100644 index 0000000000000000000000000000000000000000..b0c585f47cf6c871e996f876139846aeeee8e5d8 GIT binary patch literal 2668072 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 O; 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%0Ah1>*DtuAAN_bTI^;sZFigX((HG4&%IV> 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�RP(h5 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

@un+&@JPb5`x%O|E<>RoP@qYJrfA`IMyvKWN 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 literal 0 HcmV?d00001 diff --git a/premake5.lua b/premake5.lua index 77530c5..531f92e 100644 --- a/premake5.lua +++ b/premake5.lua @@ -1,420 +1,409 @@ -newoption { - trigger = "glfwdir64", - value = "PATH", - description = "Directory of glfw", - default = "vendor/glfw-3.3.2.bin.WIN64", -} - -newoption { - trigger = "glfwdir32", - value = "PATH", - description = "Directory of glfw", - default = "vendor/glfw-3.3.2.bin.WIN32", -} - -newoption { - trigger = "with-asan", - description = "Build with address sanitizer" -} - -newoption { - trigger = "with-librw", - description = "Build and use librw from this solution" -} - -newoption { - trigger = "with-opus", - description = "Build with opus" -} - -newoption { - trigger = "lto", - description = "Use link time optimization" -} - -if(_OPTIONS["with-librw"]) then - Librw = "vendor/librw" -else - Librw = os.getenv("LIBRW") or "vendor/librw" -end - -function getsys(a) - if a == 'windows' then - return 'win' - end - return a -end - -function getarch(a) - if a == 'x86_64' then - return 'amd64' - elseif a == 'ARM' then - return 'arm' - elseif a == 'ARM64' then - return 'arm64' - end - return a -end - -workspace "reLCS" - language "C++" - configurations { "Debug", "Release", "Vanilla" } - startproject "reLCS" - location "build" - symbols "Full" - staticruntime "off" - - -- for CVECTORHACK - configuration { "gmake*" } - buildoptions { "-fpermissive" } - - filter { "platforms:macosx*" } - buildoptions { "-Wno-address-of-temporary" } - - if _OPTIONS["with-asan"] then - buildoptions { "-fsanitize=address -g3 -fno-omit-frame-pointer" } - linkoptions { "-fsanitize=address" } - end - - filter { "system:windows" } - platforms { - "win-x86-RW34_d3d8-mss", - "win-x86-librw_d3d9-mss", - "win-x86-librw_gl3_glfw-mss", - "win-x86-RW34_d3d8-oal", - "win-x86-librw_d3d9-oal", - "win-x86-librw_gl3_glfw-oal", - "win-amd64-librw_d3d9-oal", - "win-amd64-librw_gl3_glfw-oal", - } - - filter { "system:linux" } - platforms { - "linux-x86-librw_gl3_glfw-oal", - "linux-amd64-librw_gl3_glfw-oal", - "linux-arm-librw_gl3_glfw-oal", - "linux-arm64-librw_gl3_glfw-oal", - } - - filter { "system:bsd" } - platforms { - "bsd-x86-librw_gl3_glfw-oal", - "bsd-amd64-librw_gl3_glfw-oal", - "bsd-arm-librw_gl3_glfw-oal", - "bsd-arm64-librw_gl3_glfw-oal" - } - - filter { "system:macosx" } - platforms { - "macosx-arm64-librw_gl3_glfw-oal", - "macosx-amd64-librw_gl3_glfw-oal", - } - - filter "configurations:Debug" - defines { "DEBUG" } - - filter "configurations:not Debug" - defines { "NDEBUG" } - optimize "Speed" - if(_OPTIONS["lto"]) then - flags { "LinkTimeOptimization" } - end - - filter "configurations:Vanilla" - defines { "VANILLA_DEFINES" } - - filter { "platforms:win*" } - system "windows" - - filter { "platforms:linux*" } - system "linux" - - filter { "platforms:bsd*" } - system "bsd" - - filter { "platforms:macosx*" } - system "macosx" - - filter { "platforms:*x86*" } - architecture "x86" - - filter { "platforms:*amd64*" } - architecture "amd64" - - filter { "platforms:*arm*" } - architecture "ARM" - - filter { "platforms:macosx-arm64-*" } - buildoptions { "-target", "arm64-apple-macos11", "-std=gnu++14" } - - filter { "platforms:macosx-amd64-*" } - buildoptions { "-target", "x86_64-apple-macos10.12", "-std=gnu++14" } - - filter { "platforms:*librw_d3d9*" } - defines { "RW_D3D9" } - if(not _OPTIONS["with-librw"]) then - libdirs { path.join(Librw, "lib/win-%{getarch(cfg.architecture)}-d3d9/%{cfg.buildcfg}") } - end - - filter "platforms:*librw_gl3_glfw*" - defines { "RW_GL3" } - if(not _OPTIONS["with-librw"]) then - libdirs { path.join(Librw, "lib/%{getsys(cfg.system)}-%{getarch(cfg.architecture)}-gl3/%{cfg.buildcfg}") } - end - - filter "platforms:*x86-librw_gl3_glfw*" - includedirs { path.join(_OPTIONS["glfwdir32"], "include") } - - filter "platforms:*amd64-librw_gl3_glfw*" - includedirs { path.join(_OPTIONS["glfwdir64"], "include") } - - filter {} - - function setpaths (gamepath, exepath) - if (gamepath) then - postbuildcommands { - '{COPYFILE} "%{cfg.buildtarget.abspath}" "' .. gamepath .. '%{cfg.buildtarget.name}"' - } - debugdir (gamepath) - if (exepath) then - -- Used VS variable $(TargetFileName) because it doesn't accept premake tokens. Does debugcommand even work outside VS?? - debugcommand (gamepath .. "$(TargetFileName)") - dir, file = exepath:match'(.*/)(.*)' - debugdir (gamepath .. (dir or "")) - end - end - end - -if(_OPTIONS["with-librw"]) then -project "librw" - kind "StaticLib" - targetname "rw" - targetdir(path.join(Librw, "lib/%{cfg.platform}/%{cfg.buildcfg}")) - files { path.join(Librw, "src/*.*") } +newoption { + trigger = "glfwdir64", + value = "PATH", + description = "Directory of glfw", + default = "vendor/glfw-3.3.2.bin.WIN64", +} + +newoption { + trigger = "glfwdir32", + value = "PATH", + description = "Directory of glfw", + default = "vendor/glfw-3.3.2.bin.WIN32", +} + +newoption { + trigger = "with-asan", + description = "Build with address sanitizer" +} + +newoption { + trigger = "with-librw", + description = "Build and use librw from this solution" +} + +newoption { + trigger = "with-opus", + description = "Build with opus" +} + +newoption { + trigger = "lto", + description = "Use link time optimization" +} + +if(_OPTIONS["with-librw"]) then + Librw = "vendor/librw" +else + Librw = os.getenv("LIBRW") or "vendor/librw" +end + +function getsys(a) + if a == 'windows' then + return 'win' + end + return a +end + +function getarch(a) + if a == 'x86_64' then + return 'amd64' + elseif a == 'ARM' then + return 'arm' + elseif a == 'ARM64' then + return 'arm64' + end + return a +end + +workspace "reVC" + language "C++" + configurations { "Debug", "Release", "Vanilla" } + startproject "reVC" + location "build" + symbols "Full" + staticruntime "off" + + if _OPTIONS["with-asan"] then + buildoptions { "-fsanitize=address -g3 -fno-omit-frame-pointer" } + linkoptions { "-fsanitize=address" } + end + + filter { "system:windows" } + platforms { + "win-x86-RW34_d3d8-mss", + "win-x86-librw_d3d9-mss", + "win-x86-librw_gl3_glfw-mss", + "win-x86-RW34_d3d8-oal", + "win-x86-librw_d3d9-oal", + "win-x86-librw_gl3_glfw-oal", + "win-amd64-librw_d3d9-oal", + "win-amd64-librw_gl3_glfw-oal", + } + + filter { "system:linux" } + platforms { + "linux-x86-librw_gl3_glfw-oal", + "linux-amd64-librw_gl3_glfw-oal", + "linux-arm-librw_gl3_glfw-oal", + "linux-arm64-librw_gl3_glfw-oal", + } + + filter { "system:bsd" } + platforms { + "bsd-x86-librw_gl3_glfw-oal", + "bsd-amd64-librw_gl3_glfw-oal", + "bsd-arm-librw_gl3_glfw-oal", + "bsd-arm64-librw_gl3_glfw-oal" + } + + filter { "system:macosx" } + platforms { + "macosx-arm64-librw_gl3_glfw-oal", + "macosx-amd64-librw_gl3_glfw-oal", + } + + filter "configurations:Debug" + defines { "DEBUG" } + + filter "configurations:not Debug" + defines { "NDEBUG" } + optimize "Speed" + if(_OPTIONS["lto"]) then + flags { "LinkTimeOptimization" } + end + + filter "configurations:Vanilla" + defines { "VANILLA_DEFINES" } + + filter { "platforms:win*" } + system "windows" + + filter { "platforms:linux*" } + system "linux" + + filter { "platforms:bsd*" } + system "bsd" + + filter { "platforms:macosx*" } + system "macosx" + + filter { "platforms:*x86*" } + architecture "x86" + + filter { "platforms:*amd64*" } + architecture "amd64" + + filter { "platforms:*arm*" } + architecture "ARM" + + filter { "platforms:macosx-arm64-*" } + buildoptions { "-target", "arm64-apple-macos11", "-std=gnu++14" } + + filter { "platforms:macosx-amd64-*" } + buildoptions { "-target", "x86_64-apple-macos10.12", "-std=gnu++14" } + + filter { "platforms:*librw_d3d9*" } + defines { "RW_D3D9" } + if(not _OPTIONS["with-librw"]) then + libdirs { path.join(Librw, "lib/win-%{getarch(cfg.architecture)}-d3d9/%{cfg.buildcfg}") } + end + + filter "platforms:*librw_gl3_glfw*" + defines { "RW_GL3" } + if(not _OPTIONS["with-librw"]) then + libdirs { path.join(Librw, "lib/%{getsys(cfg.system)}-%{getarch(cfg.architecture)}-gl3/%{cfg.buildcfg}") } + end + + filter "platforms:*x86-librw_gl3_glfw*" + includedirs { path.join(_OPTIONS["glfwdir32"], "include") } + + filter "platforms:*amd64-librw_gl3_glfw*" + includedirs { path.join(_OPTIONS["glfwdir64"], "include") } + + filter {} + + function setpaths (gamepath, exepath) + if (gamepath) then + postbuildcommands { + '{COPYFILE} "%{cfg.buildtarget.abspath}" "' .. gamepath .. '%{cfg.buildtarget.name}"' + } + debugdir (gamepath) + if (exepath) then + -- Used VS variable $(TargetFileName) because it doesn't accept premake tokens. Does debugcommand even work outside VS?? + debugcommand (gamepath .. "$(TargetFileName)") + dir, file = exepath:match'(.*/)(.*)' + debugdir (gamepath .. (dir or "")) + end + end + end + +if(_OPTIONS["with-librw"]) then +project "librw" + kind "StaticLib" + targetname "rw" + targetdir(path.join(Librw, "lib/%{cfg.platform}/%{cfg.buildcfg}")) + files { path.join(Librw, "src/*.*") } files { path.join(Librw, "src/*/*.*") } - files { path.join(Librw, "src/gl/*/*.*") } - - filter { "platforms:*x86*" } - architecture "x86" - - filter { "platforms:*amd64*" } - architecture "amd64" - - filter "platforms:win*" - defines { "_CRT_SECURE_NO_WARNINGS", "_CRT_NONSTDC_NO_DEPRECATE" } - staticruntime "on" - buildoptions { "/Zc:sizedDealloc-" } - - filter "platforms:bsd*" - includedirs { "/usr/local/include" } - libdirs { "/usr/local/lib" } - - filter "platforms:macosx*" - -- Support MacPorts and Homebrew - includedirs { "/opt/local/include" } - includedirs {"/usr/local/include" } - libdirs { "/opt/local/lib" } - libdirs { "/usr/local/lib" } - - filter "platforms:*gl3_glfw*" - staticruntime "off" - - filter "platforms:*RW34*" - flags { "ExcludeFromBuild" } - filter {} -end - -local function addSrcFiles( prefix ) - return prefix .. "/*cpp", prefix .. "/*.h", prefix .. "/*.c", prefix .. "/*.ico", prefix .. "/*.rc" -end - -project "reLCS" - kind "WindowedApp" - targetname "reLCS" - targetdir "bin/%{cfg.platform}/%{cfg.buildcfg}" - - if(_OPTIONS["with-librw"]) then - dependson "librw" - end - - files { addSrcFiles("src") } - files { addSrcFiles("src/animation") } - files { addSrcFiles("src/audio") } - files { addSrcFiles("src/audio/eax") } - files { addSrcFiles("src/audio/oal") } - files { addSrcFiles("src/buildings") } - files { addSrcFiles("src/collision") } - files { addSrcFiles("src/control") } - files { addSrcFiles("src/core") } - files { addSrcFiles("src/entities") } - files { addSrcFiles("src/leeds") } - files { addSrcFiles("src/leeds/base") } - files { addSrcFiles("src/math") } - files { addSrcFiles("src/modelinfo") } - files { addSrcFiles("src/objects") } - files { addSrcFiles("src/peds") } - files { addSrcFiles("src/render") } - files { addSrcFiles("src/rw") } - files { addSrcFiles("src/save") } - files { addSrcFiles("src/skel") } - files { addSrcFiles("src/skel/glfw") } - files { addSrcFiles("src/text") } - files { addSrcFiles("src/vehicles") } - files { addSrcFiles("src/weapons") } - files { addSrcFiles("src/extras") } - files { "src/extras/GitSHA1.cpp" } -- this won't be in repo in first build - - includedirs { "src" } - includedirs { "src/animation" } - includedirs { "src/audio" } - includedirs { "src/audio/eax" } - includedirs { "src/audio/oal" } - includedirs { "src/buildings" } - includedirs { "src/collision" } - includedirs { "src/control" } - includedirs { "src/core" } - includedirs { "src/entities" } - includedirs { "src/leeds" } - includedirs { "src/leeds/base" } - includedirs { "src/math" } - includedirs { "src/modelinfo" } - includedirs { "src/objects" } - includedirs { "src/peds" } - includedirs { "src/render" } - includedirs { "src/rw" } - includedirs { "src/save/" } - includedirs { "src/skel/" } - includedirs { "src/skel/glfw" } - includedirs { "src/text" } - includedirs { "src/vehicles" } - includedirs { "src/weapons" } - includedirs { "src/extras" } - - if _OPTIONS["with-opus"] then - includedirs { "vendor/ogg/include" } - includedirs { "vendor/opus/include" } - includedirs { "vendor/opusfile/include" } - end - - filter "platforms:*mss" - defines { "AUDIO_MSS" } - includedirs { "vendor/milessdk/include" } - libdirs { "vendor/milessdk/lib" } - - if _OPTIONS["with-opus"] then - filter "platforms:win*" - libdirs { "vendor/ogg/win32/VS2015/Win32/%{cfg.buildcfg}" } - libdirs { "vendor/opus/win32/VS2015/Win32/%{cfg.buildcfg}" } - libdirs { "vendor/opusfile/win32/VS2015/Win32/Release-NoHTTP" } - filter {} - defines { "AUDIO_OPUS" } - end - - filter "platforms:*oal" - defines { "AUDIO_OAL" } - - filter {} - if(os.getenv("GTA_LCS_RE_DIR")) then - setpaths(os.getenv("GTA_LCS_RE_DIR") .. "/", "%(cfg.buildtarget.name)") - end - - filter "platforms:win*" - files { addSrcFiles("src/skel/win") } - includedirs { "src/skel/win" } - buildoptions { "/Zc:sizedDealloc-" } - linkoptions "/SAFESEH:NO" - characterset ("MBCS") - targetextension ".exe" - if(_OPTIONS["with-librw"]) then - -- external librw is dynamic - staticruntime "on" - end - prebuildcommands { '"%{prj.location}..\\printHash.bat" "%{prj.location}..\\src\\extras\\GitSHA1.cpp"' } - - filter "platforms:not win*" - prebuildcommands { '"%{prj.location}/../printHash.sh" "%{prj.location}/../src/extras/GitSHA1.cpp"' } - - filter "platforms:win*glfw*" - staticruntime "off" - - filter "platforms:win*oal" - includedirs { "vendor/openal-soft/include" } - includedirs { "vendor/libsndfile/include" } - includedirs { "vendor/mpg123/include" } - - filter "platforms:win-x86*oal" - libdirs { "vendor/mpg123/lib/Win32" } - libdirs { "vendor/libsndfile/lib/Win32" } - libdirs { "vendor/openal-soft/libs/Win32" } - - filter "platforms:win-amd64*oal" - libdirs { "vendor/mpg123/lib/Win64" } - libdirs { "vendor/libsndfile/lib/Win64" } - libdirs { "vendor/openal-soft/libs/Win64" } - - filter "platforms:linux*oal" - links { "openal", "mpg123", "sndfile", "pthread" } - - filter "platforms:bsd*oal" - links { "openal", "mpg123", "sndfile", "pthread" } - - filter "platforms:macosx*oal" - links { "openal", "mpg123", "sndfile", "pthread" } - includedirs { "/usr/local/opt/openal-soft/include" } - libdirs { "/usr/local/opt/openal-soft/lib" } - - if _OPTIONS["with-opus"] then - filter {} - links { "libogg" } - links { "opus" } - links { "opusfile" } - end - - filter "platforms:*RW34*" - includedirs { "sdk/rwsdk/include/d3d8" } - libdirs { "sdk/rwsdk/lib/d3d8/release" } - links { "rwcore", "rpworld", "rpmatfx", "rpskin", "rphanim", "rtbmp", "rtquat", "rtanim", "rtcharse", "rpanisot" } - defines { "RWLIBS" } - linkoptions "/SECTION:_rwcseg,ER!W /MERGE:_rwcseg=.text" - - filter "platforms:*librw*" - defines { "LIBRW" } - files { addSrcFiles("src/fakerw") } - includedirs { "src/fakerw" } - includedirs { Librw } - if(_OPTIONS["with-librw"]) then - libdirs { "vendor/librw/lib/%{cfg.platform}/%{cfg.buildcfg}" } - end - links { "rw" } - - filter "platforms:*d3d9*" - defines { "USE_D3D9" } - links { "d3d9" } - - filter "platforms:*x86*d3d*" - includedirs { "sdk/dx8sdk/include" } - libdirs { "sdk/dx8sdk/lib" } - - filter "platforms:win-x86*gl3_glfw*" - libdirs { path.join(_OPTIONS["glfwdir32"], "lib-" .. string.gsub(_ACTION or '', "vs", "vc")) } - links { "opengl32", "glfw3" } - - filter "platforms:win-amd64*gl3_glfw*" - libdirs { path.join(_OPTIONS["glfwdir64"], "lib-" .. string.gsub(_ACTION or '', "vs", "vc")) } - links { "opengl32", "glfw3" } - - filter "platforms:linux*gl3_glfw*" - links { "GL", "glfw" } - - filter "platforms:bsd*gl3_glfw*" - links { "GL", "glfw", "sysinfo" } - includedirs { "/usr/local/include" } - libdirs { "/usr/local/lib" } - - filter "platforms:macosx*gl3_glfw*" - links { "glfw" } - linkoptions { "-framework OpenGL" } - includedirs { "/opt/local/include" } - includedirs { "/usr/local/include" } - libdirs { "/opt/local/lib" } - libdirs { "/usr/local/lib" } + files { path.join(Librw, "src/gl/*/*.*") } + + filter { "platforms:*x86*" } + architecture "x86" + + filter { "platforms:*amd64*" } + architecture "amd64" + + filter "platforms:win*" + defines { "_CRT_SECURE_NO_WARNINGS", "_CRT_NONSTDC_NO_DEPRECATE" } + staticruntime "on" + buildoptions { "/Zc:sizedDealloc-" } + + filter "platforms:bsd*" + includedirs { "/usr/local/include" } + libdirs { "/usr/local/lib" } + + filter "platforms:macosx*" + -- Support MacPorts and Homebrew + includedirs { "/opt/local/include" } + includedirs {"/usr/local/include" } + libdirs { "/opt/local/lib" } + libdirs { "/usr/local/lib" } + + filter "platforms:*gl3_glfw*" + staticruntime "off" + + filter "platforms:*RW34*" + flags { "ExcludeFromBuild" } + filter {} +end + +local function addSrcFiles( prefix ) + return prefix .. "/*cpp", prefix .. "/*.h", prefix .. "/*.c", prefix .. "/*.ico", prefix .. "/*.rc" +end + +project "reVC" + kind "WindowedApp" + targetname "reVC" + targetdir "bin/%{cfg.platform}/%{cfg.buildcfg}" + + if(_OPTIONS["with-librw"]) then + dependson "librw" + end + + files { addSrcFiles("src") } + files { addSrcFiles("src/animation") } + files { addSrcFiles("src/audio") } + files { addSrcFiles("src/audio/eax") } + files { addSrcFiles("src/audio/oal") } + files { addSrcFiles("src/buildings") } + files { addSrcFiles("src/collision") } + files { addSrcFiles("src/control") } + files { addSrcFiles("src/core") } + files { addSrcFiles("src/entities") } + files { addSrcFiles("src/math") } + files { addSrcFiles("src/modelinfo") } + files { addSrcFiles("src/objects") } + files { addSrcFiles("src/peds") } + files { addSrcFiles("src/render") } + files { addSrcFiles("src/rw") } + files { addSrcFiles("src/save") } + files { addSrcFiles("src/skel") } + files { addSrcFiles("src/skel/glfw") } + files { addSrcFiles("src/text") } + files { addSrcFiles("src/vehicles") } + files { addSrcFiles("src/weapons") } + files { addSrcFiles("src/extras") } + files { "src/extras/GitSHA1.cpp" } -- this won't be in repo in first build + + includedirs { "src" } + includedirs { "src/animation" } + includedirs { "src/audio" } + includedirs { "src/audio/eax" } + includedirs { "src/audio/oal" } + includedirs { "src/buildings" } + includedirs { "src/collision" } + includedirs { "src/control" } + includedirs { "src/core" } + includedirs { "src/entities" } + includedirs { "src/math" } + includedirs { "src/modelinfo" } + includedirs { "src/objects" } + includedirs { "src/peds" } + includedirs { "src/render" } + includedirs { "src/rw" } + includedirs { "src/save/" } + includedirs { "src/skel/" } + includedirs { "src/skel/glfw" } + includedirs { "src/text" } + includedirs { "src/vehicles" } + includedirs { "src/weapons" } + includedirs { "src/extras" } + + if _OPTIONS["with-opus"] then + includedirs { "vendor/ogg/include" } + includedirs { "vendor/opus/include" } + includedirs { "vendor/opusfile/include" } + end + + filter "platforms:*mss" + defines { "AUDIO_MSS" } + includedirs { "vendor/milessdk/include" } + libdirs { "vendor/milessdk/lib" } + + if _OPTIONS["with-opus"] then + filter "platforms:win*" + libdirs { "vendor/ogg/win32/VS2015/Win32/%{cfg.buildcfg}" } + libdirs { "vendor/opus/win32/VS2015/Win32/%{cfg.buildcfg}" } + libdirs { "vendor/opusfile/win32/VS2015/Win32/Release-NoHTTP" } + filter {} + defines { "AUDIO_OPUS" } + end + + filter "platforms:*oal" + defines { "AUDIO_OAL" } + + filter {} + if(os.getenv("GTA_VC_RE_DIR")) then + setpaths(os.getenv("GTA_VC_RE_DIR") .. "/", "%(cfg.buildtarget.name)") + end + + filter "platforms:win*" + files { addSrcFiles("src/skel/win") } + includedirs { "src/skel/win" } + buildoptions { "/Zc:sizedDealloc-" } + linkoptions "/SAFESEH:NO" + characterset ("MBCS") + targetextension ".exe" + if(_OPTIONS["with-librw"]) then + -- external librw is dynamic + staticruntime "on" + end + prebuildcommands { '"%{prj.location}..\\printHash.bat" "%{prj.location}..\\src\\extras\\GitSHA1.cpp"' } + + filter "platforms:not win*" + prebuildcommands { '"%{prj.location}/../printHash.sh" "%{prj.location}/../src/extras/GitSHA1.cpp"' } + + filter "platforms:win*glfw*" + staticruntime "off" + + filter "platforms:win*oal" + includedirs { "vendor/openal-soft/include" } + includedirs { "vendor/libsndfile/include" } + includedirs { "vendor/mpg123/include" } + + filter "platforms:win-x86*oal" + libdirs { "vendor/mpg123/lib/Win32" } + libdirs { "vendor/libsndfile/lib/Win32" } + libdirs { "vendor/openal-soft/libs/Win32" } + + filter "platforms:win-amd64*oal" + libdirs { "vendor/mpg123/lib/Win64" } + libdirs { "vendor/libsndfile/lib/Win64" } + libdirs { "vendor/openal-soft/libs/Win64" } + + filter "platforms:linux*oal" + links { "openal", "mpg123", "sndfile", "pthread", "X11" } + + filter "platforms:bsd*oal" + links { "openal", "mpg123", "sndfile", "pthread", "X11" } + + filter "platforms:macosx*oal" + links { "openal", "mpg123", "sndfile", "pthread" } + includedirs { "/usr/local/opt/openal-soft/include" } + libdirs { "/usr/local/opt/openal-soft/lib" } + + if _OPTIONS["with-opus"] then + filter {} + links { "libogg" } + links { "opus" } + links { "opusfile" } + end + + filter "platforms:*RW34*" + includedirs { "sdk/rwsdk/include/d3d8" } + libdirs { "sdk/rwsdk/lib/d3d8/release" } + links { "rwcore", "rpworld", "rpmatfx", "rpskin", "rphanim", "rtbmp", "rtquat", "rtanim", "rtcharse", "rpanisot" } + defines { "RWLIBS" } + linkoptions "/SECTION:_rwcseg,ER!W /MERGE:_rwcseg=.text" + + filter "platforms:*librw*" + defines { "LIBRW" } + files { addSrcFiles("src/fakerw") } + includedirs { "src/fakerw" } + includedirs { Librw } + if(_OPTIONS["with-librw"]) then + libdirs { "vendor/librw/lib/%{cfg.platform}/%{cfg.buildcfg}" } + end + links { "rw" } + + filter "platforms:*d3d9*" + defines { "USE_D3D9" } + links { "d3d9" } + + filter "platforms:*x86*d3d*" + includedirs { "sdk/dx8sdk/include" } + libdirs { "sdk/dx8sdk/lib" } + + filter "platforms:win-x86*gl3_glfw*" + libdirs { path.join(_OPTIONS["glfwdir32"], "lib-" .. string.gsub(_ACTION or '', "vs", "vc")) } + links { "opengl32", "glfw3" } + + filter "platforms:win-amd64*gl3_glfw*" + libdirs { path.join(_OPTIONS["glfwdir64"], "lib-" .. string.gsub(_ACTION or '', "vs", "vc")) } + links { "opengl32", "glfw3" } + + filter "platforms:linux*gl3_glfw*" + links { "GL", "glfw" } + + filter "platforms:bsd*gl3_glfw*" + links { "GL", "glfw", "sysinfo" } + includedirs { "/usr/local/include" } + libdirs { "/usr/local/lib" } + + filter "platforms:macosx*gl3_glfw*" + links { "glfw" } + linkoptions { "-framework OpenGL" } + includedirs { "/opt/local/include" } + includedirs { "/usr/local/include" } + libdirs { "/opt/local/lib" } + libdirs { "/usr/local/lib" } diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 10b40be..6c8ab28 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -107,8 +107,6 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang if (NOT LIBRW_PLATFORM_PS2) target_compile_options(${EXECUTABLE} PRIVATE - -fpermissive # for CVECTORHACK - -Wno-address-of-temporary # for CVECTORHACK -Wextra -Wdouble-promotion -Wpedantic diff --git a/src/animation/AnimBlendAssocGroup.cpp b/src/animation/AnimBlendAssocGroup.cpp index 7c0a10d..935e7fd 100644 --- a/src/animation/AnimBlendAssocGroup.cpp +++ b/src/animation/AnimBlendAssocGroup.cpp @@ -18,7 +18,6 @@ #include "RpAnimBlend.h" #include "AnimBlendAssociation.h" #include "AnimBlendAssocGroup.h" -#include "KeyGen.h" CAnimBlendAssocGroup::CAnimBlendAssocGroup(void) { @@ -112,34 +111,27 @@ strcmpIgnoringDigits(const char *s1, const char *s2) } } -extern const char* csPlayerNames[]; -extern const char* playerNames[]; - CBaseModelInfo* GetModelFromName(const char *name) { int i; - CBaseModelInfo* mi; - if (CKeyGen::GetUppercaseKey(name) == CKeyGen::GetUppercaseKey("cstoni_a")) { - i = 0; - while (csPlayerNames[i][0] != '\0') { - if (CModelInfo::GetModelInfo(0)->GetNameHashKey() == CKeyGen::GetUppercaseKey(playerNames[i])) { - name = csPlayerNames[i]; - break; - } - i++; - } + CBaseModelInfo *mi; + char playername[32]; + + if(strncasecmp(name, "CSplay", 6) == 0 && + strncasecmp(CModelInfo::GetModelInfo(MI_PLAYER)->GetModelName(), "ig", 2) == 0){ + strcpy(playername, CModelInfo::GetModelInfo(MI_PLAYER)->GetModelName()); + playername[0] = 'C'; + playername[1] = 'S'; + name = playername; } - uint32 hashKey = CKeyGen::GetUppercaseKey(name); - for (i = 0; i < MODELINFOSIZE; i++) { + for(i = 0; i < MODELINFOSIZE; i++){ mi = CModelInfo::GetModelInfo(i); - if (mi && mi->GetRwObject() - && RwObjectGetType(mi->GetRwObject()) == rpCLUMP && - hashKey == mi->GetNameHashKey()) + if(mi && mi->GetRwObject() && RwObjectGetType(mi->GetRwObject()) == rpCLUMP && + strcmpIgnoringDigits(mi->GetModelName(), name)) return mi; } - return nil; } @@ -193,45 +185,3 @@ CAnimBlendAssocGroup::CreateAssociations(const char *blockName, RpClump *clump, } numAssociations = numAssocs; } - -void -CAnimBlendAssocGroup::CreateAssociations(const char *blockName, const char *animNames, const char *objectNames, int numChars) -{ - if (!objectNames) { - CreateAssociations(blockName); - return; - } - - if (assocList) - DestroyAssociations(); - - animBlock = CAnimManager::GetAnimationBlock(blockName); - assocList = new CAnimBlendAssociation[animBlock->numAnims]; - - numAssociations = 0; - if (animBlock->numAnims > 0) - { - int i, j; - for (i = 0; i < animBlock->numAnims; i++) { - int animId = -1; - for (j = 0; j != animBlock->numAnims; j++) - if (strcmp(CAnimManager::GetAnimation(i + animBlock->firstIndex)->name, animNames + numChars * j) == 0) - animId = j; - - if (animId != -1) { - CBaseModelInfo* minfo = GetModelFromName(objectNames + numChars * animId); - if (minfo) - { - RpClump* clump = (RpClump*)minfo->CreateInstance(); - RpAnimBlendClumpInit(clump); - assocList[numAssociations].Init(clump, CAnimManager::GetAnimation(i + animBlock->firstIndex)); - if (IsClumpSkinned(clump)) - RpClumpForAllAtomics(clump, AtomicRemoveAnimFromSkinCB, nil); - RpClumpDestroy(clump); - assocList[numAssociations].animId = i + numAssociations; - assocList[numAssociations++].groupId = groupId; - } - } - } - } -} \ No newline at end of file diff --git a/src/animation/AnimBlendAssocGroup.h b/src/animation/AnimBlendAssocGroup.h index e264787..86f0ca1 100644 --- a/src/animation/AnimBlendAssocGroup.h +++ b/src/animation/AnimBlendAssocGroup.h @@ -21,5 +21,4 @@ public: CAnimBlendAssociation *CopyAnimation(const char *name); void CreateAssociations(const char *name); void CreateAssociations(const char *blockName, RpClump *clump, const char **animNames, int numAssocs); - void CreateAssociations(const char *blockName, const char *animNames, const char *objectNames, int numChars); }; diff --git a/src/animation/AnimManager.cpp b/src/animation/AnimManager.cpp index d0763ef..f6ac3eb 100644 --- a/src/animation/AnimManager.cpp +++ b/src/animation/AnimManager.cpp @@ -20,373 +20,281 @@ CAnimBlendAssocGroup *CAnimManager::ms_aAnimAssocGroups; CLinkList CAnimManager::ms_animCache; AnimAssocDesc aStdAnimDescs[] = { - { ANIM_STD_WALK, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_WALK }, - { ANIM_STD_RUN, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_WALK }, - { ANIM_STD_RUNFAST, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_WALK }, - { ANIM_STD_IDLE, ASSOC_REPEAT }, - { ANIM_STD_STARTWALK, ASSOC_HAS_TRANSLATION }, - { ANIM_STD_RUNSTOP1, ASSOC_DELETEFADEDOUT | ASSOC_HAS_TRANSLATION }, - { ANIM_STD_RUNSTOP2, ASSOC_DELETEFADEDOUT | ASSOC_HAS_TRANSLATION }, - { ANIM_STD_IDLE_CAM, ASSOC_REPEAT | ASSOC_PARTIAL }, - { ANIM_STD_IDLE_HBHB, ASSOC_REPEAT | ASSOC_PARTIAL }, - { ANIM_STD_IDLE_TIRED, ASSOC_REPEAT }, - { ANIM_STD_IDLE_BIGGUN, ASSOC_REPEAT | ASSOC_PARTIAL }, - { ANIM_STD_CHAT, ASSOC_REPEAT | ASSOC_PARTIAL }, - { ANIM_STD_HAILTAXI, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_KO_FRONT, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, - { ANIM_STD_KO_LEFT, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, - { ANIM_STD_KO_BACK, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, - { ANIM_STD_KO_RIGHT, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, - { ANIM_STD_KO_SHOT_FACE, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_STD_KO_SHOT_STOMACH, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, - { ANIM_STD_KO_SHOT_ARM_L, ASSOC_PARTIAL | ASSOC_FRONTAL }, - { ANIM_STD_KO_SHOT_ARM_R, ASSOC_PARTIAL | ASSOC_FRONTAL }, - { ANIM_STD_KO_SHOT_LEG_L, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_STD_KO_SHOT_LEG_R, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_STD_SPINFORWARD_LEFT, ASSOC_PARTIAL }, - { ANIM_STD_SPINFORWARD_RIGHT, ASSOC_PARTIAL }, - { ANIM_STD_HIGHIMPACT_FRONT, ASSOC_PARTIAL }, - { ANIM_STD_HIGHIMPACT_LEFT, ASSOC_PARTIAL }, - { ANIM_STD_HIGHIMPACT_BACK, ASSOC_PARTIAL | ASSOC_FRONTAL }, - { ANIM_STD_HIGHIMPACT_RIGHT, ASSOC_PARTIAL }, - { ANIM_STD_HITBYGUN_FRONT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, - { ANIM_STD_HITBYGUN_LEFT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, - { ANIM_STD_HITBYGUN_BACK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, - { ANIM_STD_HITBYGUN_RIGHT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, - { ANIM_STD_HIT_FRONT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_STD_HIT_LEFT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_HIT_BACK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_STD_HIT_RIGHT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_HIT_FLOOR, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_STD_HIT_WALL, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_STD_HIT_FLOOR_FRONT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_FRONTAL }, - { ANIM_STD_HIT_BEHIND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_FIGHT_IDLE, ASSOC_REPEAT }, - { ANIM_STD_FIGHT_2IDLE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_FIGHT_SHUFFLE_F, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_STD_PARTIAL_PUNCH, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_NOWALK }, - { ANIM_FIGHT_ATTACK_A1, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_FIGHT_ATTACK_A2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_FIGHT_ATTACK_A3, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_FIGHT_ATTACK_B1, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_FIGHT_ATTACK_B2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_FIGHT_ATTACK_B3, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_FIGHT_HIT_A1, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_FIGHT_HIT_A2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_FIGHT_HIT_A3, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_FIGHT_HIT_B1, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_FIGHT_HIT_B2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_FIGHT_HIT_B3, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_STD_DETONATE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_PUNCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_PARTIALPUNCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_KICKGROUND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_THROW_UNDER, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_FIGHT_SHUFFLE_B, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_STD_JACKEDCAR_RHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_STD_JACKEDCAR_LO_RHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_STD_JACKEDCAR_LHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_STD_JACKEDCAR_LO_LHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_STD_QUICKJACK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_QUICKJACKED, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_STD_CAR_ALIGN_DOOR_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CAR_ALIGNHI_DOOR_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CAR_OPEN_DOOR_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CARDOOR_LOCKED_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CAR_PULL_OUT_PED_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CAR_PULL_OUT_PED_LO_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CAR_GET_IN_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CAR_GET_IN_LO_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CAR_CLOSE_DOOR_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CAR_CLOSE_DOOR_LO_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LO_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CAR_JUMP_IN_LO_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_GETOUT_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_GETOUT_LO_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CAR_CLOSE_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CAR_ALIGN_DOOR_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CAR_ALIGNHI_DOOR_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CAR_OPEN_DOOR_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CARDOOR_LOCKED_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CAR_PULL_OUT_PED_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CAR_PULL_OUT_PED_LO_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CAR_GET_IN_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CAR_GET_IN_LO_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CAR_CLOSE_DOOR_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CAR_CLOSE_DOOR_LO_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CAR_SHUFFLE_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CAR_SHUFFLE_LO_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CAR_SIT, ASSOC_DELETEFADEDOUT }, - { ANIM_STD_CAR_SIT_LO, ASSOC_DELETEFADEDOUT }, - { ANIM_STD_CAR_SIT_P, ASSOC_DELETEFADEDOUT }, - { ANIM_STD_CAR_SIT_P_LO, ASSOC_DELETEFADEDOUT }, - { ANIM_STD_CAR_DRIVE_LEFT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_STD_CAR_DRIVE_RIGHT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_STD_CAR_DRIVE_LEFT_LO, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_STD_CAR_DRIVE_RIGHT_LO, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_STD_CAR_DRIVEBY_LEFT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_STD_CAR_DRIVEBY_RIGHT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_STD_CAR_DRIVEBY_LEFT_LO, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_STD_CAR_DRIVEBY_RIGHT_LO, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_STD_CAR_LOOKBEHIND, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_STD_BOAT_DRIVE, ASSOC_DELETEFADEDOUT | ASSOC_DRIVING }, - { ANIM_STD_BOAT_DRIVE_LEFT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_STD_BOAT_DRIVE_RIGHT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_STD_BOAT_LOOKBEHIND, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_STD_BIKE_PICKUP_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_BIKE_PICKUP_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_BIKE_PULLUP_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_BIKE_PULLUP_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_BIKE_ELBOW_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_BIKE_ELBOW_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_BIKE_FALLOFF, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_STD_BIKE_FALLBACK, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_STD_GETOUT_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_GETOUT_LO_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CAR_CLOSE_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CAR_HOOKERTALK, ASSOC_REPEAT | ASSOC_PARTIAL }, - { ANIM_STD_TRAIN_GETIN, ASSOC_DELETEFADEDOUT }, - { ANIM_STD_TRAIN_GETOUT, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE }, - { ANIM_STD_CRAWLOUT_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_CRAWLOUT_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_ROLLOUT_LHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION | ASSOC_FRONTAL }, - { ANIM_STD_ROLLOUT_RHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION | ASSOC_FRONTAL }, - { ANIM_STD_GET_UP, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_STD_GET_UP_LEFT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_STD_GET_UP_RIGHT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_STD_GET_UP_FRONT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_STD_JUMP_LAUNCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_STD_JUMP_GLIDE, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_STD_JUMP_LAND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_STD_FALL, ASSOC_DELETEFADEDOUT }, - { ANIM_STD_FALL_GLIDE, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_STD_FALL_LAND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_STD_FALL_COLLAPSE, ASSOC_REPEAT | ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_STD_FALL_ONBACK, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_STD_FALL_ONFRONT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_FRONTAL }, - { ANIM_STD_EVADE_STEP, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_STD_EVADE_DIVE, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, - { ANIM_STD_COMMANDO_ROLL, ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, - { ANIM_STD_XPRESS_SCRATCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, - { ANIM_STD_ROADCROSS, ASSOC_REPEAT | ASSOC_PARTIAL }, - { ANIM_STD_TURN180, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_ARREST, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_STD_DROWN, ASSOC_PARTIAL }, - { ANIM_STD_DUCK_DOWN, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_STD_DUCK_LOW, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_STD_DUCK_WEAPON, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_STD_RBLOCK_SHOOT, ASSOC_RUNNING }, - { ANIM_STD_HANDSUP, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_STD_HANDSCOWER, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_STD_PARTIAL_FUCKU, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, - { ANIM_STD_PHONE_IN, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_PHONE_OUT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_PHONE_TALK, ASSOC_REPEAT | ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_STD_SEAT_DOWN, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_SEAT_UP, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_SEAT_IDLE, ASSOC_REPEAT | ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_SEAT_RVRS, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_ATM, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_ABSEIL, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_WALK, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_WALK }, + { ANIM_STD_RUN, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_WALK }, + { ANIM_STD_RUNFAST, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_WALK }, + { ANIM_STD_IDLE, ASSOC_REPEAT }, + { ANIM_STD_STARTWALK, ASSOC_HAS_TRANSLATION }, + { ANIM_STD_RUNSTOP1, ASSOC_DELETEFADEDOUT | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_RUNSTOP2, ASSOC_DELETEFADEDOUT | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_IDLE_CAM, ASSOC_REPEAT | ASSOC_PARTIAL }, + { ANIM_STD_IDLE_HBHB, ASSOC_REPEAT | ASSOC_PARTIAL }, + { ANIM_STD_IDLE_TIRED, ASSOC_REPEAT }, + { ANIM_STD_IDLE_BIGGUN, ASSOC_REPEAT | ASSOC_PARTIAL }, + { ANIM_STD_CHAT, ASSOC_REPEAT | ASSOC_PARTIAL }, + { ANIM_STD_HAILTAXI, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_KO_FRONT, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, + { ANIM_STD_KO_LEFT, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, + { ANIM_STD_KO_BACK, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, + { ANIM_STD_KO_RIGHT, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, + { ANIM_STD_KO_SHOT_FACE, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, + { ANIM_STD_KO_SHOT_STOMACH, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_KO_SHOT_ARM_L, ASSOC_PARTIAL | ASSOC_FRONTAL }, + { ANIM_STD_KO_SHOT_ARM_R, ASSOC_PARTIAL | ASSOC_FRONTAL }, + { ANIM_STD_KO_SHOT_LEG_L, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_KO_SHOT_LEG_R, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_SPINFORWARD_LEFT, ASSOC_PARTIAL | ASSOC_FRONTAL }, + { ANIM_STD_SPINFORWARD_RIGHT, ASSOC_PARTIAL | ASSOC_FRONTAL }, + { ANIM_STD_HIGHIMPACT_FRONT, ASSOC_PARTIAL }, + { ANIM_STD_HIGHIMPACT_LEFT, ASSOC_PARTIAL }, + { ANIM_STD_HIGHIMPACT_BACK, ASSOC_PARTIAL | ASSOC_FRONTAL }, + { ANIM_STD_HIGHIMPACT_RIGHT, ASSOC_PARTIAL }, + { ANIM_STD_HITBYGUN_FRONT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, + { ANIM_STD_HITBYGUN_LEFT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, + { ANIM_STD_HITBYGUN_BACK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, + { ANIM_STD_HITBYGUN_RIGHT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, + { ANIM_STD_HIT_FRONT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_HIT_LEFT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_HIT_BACK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_HIT_RIGHT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_HIT_FLOOR, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_HIT_BODYBLOW, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_HIT_CHEST, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_HIT_HEAD, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_HIT_WALK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_HIT_WALL, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_HIT_FLOOR_FRONT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_FRONTAL }, + { ANIM_STD_HIT_BEHIND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_FIGHT_IDLE, ASSOC_REPEAT }, + { ANIM_STD_FIGHT_2IDLE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_FIGHT_SHUFFLE_F, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_FIGHT_BODYBLOW, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_FIGHT_HEAD, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_FIGHT_KICK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_FIGHT_KNEE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_FIGHT_LHOOK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_FIGHT_PUNCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_FIGHT_ROUNDHOUSE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_FIGHT_LONGKICK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_PARTIAL_PUNCH, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_NOWALK }, + { ANIM_STD_FIGHT_JAB, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_FIGHT_ELBOW_L, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_FIGHT_ELBOW_R, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_FIGHT_BKICK_L, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_FIGHT_BKICK_R, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_DETONATE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_PUNCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_PARTIALPUNCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_KICKGROUND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_THROW_UNDER, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_FIGHT_SHUFFLE_B, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_JACKEDCAR_RHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_JACKEDCAR_LO_RHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_JACKEDCAR_LHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_JACKEDCAR_LO_LHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_QUICKJACK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_QUICKJACKED, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_CAR_ALIGN_DOOR_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_ALIGNHI_DOOR_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_OPEN_DOOR_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CARDOOR_LOCKED_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_PULL_OUT_PED_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_PULL_OUT_PED_LO_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_GET_IN_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_GET_IN_LO_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_CLOSE_DOOR_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_CLOSE_DOOR_LO_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LO_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_JUMP_IN_LO_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_GETOUT_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_GETOUT_LO_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_CLOSE_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_ALIGN_DOOR_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_ALIGNHI_DOOR_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_OPEN_DOOR_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CARDOOR_LOCKED_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_PULL_OUT_PED_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_PULL_OUT_PED_LO_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_GET_IN_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_GET_IN_LO_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_CLOSE_DOOR_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_CLOSE_DOOR_LO_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_SHUFFLE_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_SHUFFLE_LO_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_SIT, ASSOC_DELETEFADEDOUT}, + { ANIM_STD_CAR_SIT_LO, ASSOC_DELETEFADEDOUT}, + { ANIM_STD_CAR_SIT_P, ASSOC_DELETEFADEDOUT}, + { ANIM_STD_CAR_SIT_P_LO, ASSOC_DELETEFADEDOUT}, + { ANIM_STD_CAR_DRIVE_LEFT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_STD_CAR_DRIVE_RIGHT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_STD_CAR_DRIVE_LEFT_LO, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_STD_CAR_DRIVE_RIGHT_LO, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_STD_CAR_DRIVEBY_LEFT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_STD_CAR_DRIVEBY_RIGHT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_STD_CAR_DRIVEBY_LEFT_LO, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_STD_CAR_DRIVEBY_RIGHT_LO, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_STD_CAR_LOOKBEHIND, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_STD_BOAT_DRIVE, ASSOC_DELETEFADEDOUT | ASSOC_DRIVING }, + { ANIM_STD_BOAT_DRIVE_LEFT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_STD_BOAT_DRIVE_RIGHT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_STD_BOAT_LOOKBEHIND, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_STD_BIKE_PICKUP_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_BIKE_PICKUP_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_BIKE_PULLUP_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_BIKE_PULLUP_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_BIKE_ELBOW_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_BIKE_ELBOW_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_BIKE_FALLOFF, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_BIKE_FALLBACK, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_GETOUT_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_GETOUT_LO_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_CLOSE_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_HOOKERTALK, ASSOC_REPEAT | ASSOC_PARTIAL }, + { ANIM_STD_TRAIN_GETIN, ASSOC_PARTIAL }, + { ANIM_STD_TRAIN_GETOUT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CRAWLOUT_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CRAWLOUT_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_ROLLOUT_LHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION }, + { ANIM_STD_ROLLOUT_RHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION }, + { ANIM_STD_GET_UP, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_GET_UP_LEFT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_GET_UP_RIGHT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_GET_UP_FRONT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_JUMP_LAUNCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_JUMP_GLIDE, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_JUMP_LAND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_FALL, ASSOC_REPEAT | ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_FALL_GLIDE, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_FALL_LAND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_FALL_COLLAPSE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_FALL_ONBACK, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_FALL_ONFRONT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_FRONTAL }, + { ANIM_STD_EVADE_STEP, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_EVADE_DIVE, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, + { ANIM_STD_XPRESS_SCRATCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, + { ANIM_STD_ROADCROSS, ASSOC_REPEAT | ASSOC_PARTIAL }, + { ANIM_STD_TURN180, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_ARREST, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_DROWN, ASSOC_PARTIAL }, + { ANIM_STD_DUCK_DOWN, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_DUCK_LOW, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_DUCK_WEAPON, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_RBLOCK_SHOOT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_HANDSUP, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_HANDSCOWER, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_PARTIAL_FUCKU, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, + { ANIM_STD_PHONE_IN, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_PHONE_OUT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_PHONE_TALK, ASSOC_REPEAT | ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_SEAT_DOWN, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_SEAT_UP, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_SEAT_IDLE, ASSOC_REPEAT | ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_SEAT_RVRS, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_ATM, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_ABSEIL, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, }; AnimAssocDesc aVanAnimDescs[] = { - { ANIM_STD_VAN_OPEN_DOOR_REAR_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_VAN_GET_IN_REAR_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_VAN_CLOSE_DOOR_REAR_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_VAN_GET_OUT_REAR_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_VAN_OPEN_DOOR_REAR_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_VAN_GET_IN_REAR_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_VAN_CLOSE_DOOR_REAR_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_VAN_GET_OUT_REAR_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_VAN_OPEN_DOOR_REAR_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_VAN_GET_IN_REAR_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_VAN_CLOSE_DOOR_REAR_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_VAN_GET_OUT_REAR_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_VAN_OPEN_DOOR_REAR_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_VAN_GET_IN_REAR_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_VAN_CLOSE_DOOR_REAR_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_VAN_GET_OUT_REAR_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, }; AnimAssocDesc aCoachAnimDescs[] = { - { ANIM_STD_COACH_OPEN_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_COACH_OPEN_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_COACH_GET_IN_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_COACH_GET_IN_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STD_COACH_GET_OUT_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_COACH_OPEN_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_COACH_OPEN_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_COACH_GET_IN_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_COACH_GET_IN_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_COACH_GET_OUT_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, }; AnimAssocDesc aBikeAnimDescs[] = { - { ANIM_BIKE_RIDE, ASSOC_DELETEFADEDOUT }, - { ANIM_BIKE_READY, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_BIKE_LEFT, ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_BIKE_RIGHT, ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_BIKE_LEANB, ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_BIKE_LEANF, ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_BIKE_WALKBACK, ASSOC_REPEAT | ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_BIKE_JUMPON_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_BIKE_JUMPON_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_BIKE_KICK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_BIKE_HIT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_BIKE_GETOFF_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_BIKE_GETOFF_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_BIKE_GETOFF_BACK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_BIKE_DRIVEBY_LHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_BIKE_DRIVEBY_RHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_BIKE_DRIVEBY_FORWARD, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_BIKE_RIDE_P, ASSOC_DELETEFADEDOUT | ASSOC_DRIVING }, + { ANIM_BIKE_RIDE, ASSOC_DELETEFADEDOUT}, + { ANIM_BIKE_READY, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_BIKE_LEFT, ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_BIKE_RIGHT, ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_BIKE_LEANB, ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_BIKE_LEANF, ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_BIKE_WALKBACK, ASSOC_REPEAT | ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_BIKE_JUMPON_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_BIKE_JUMPON_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_BIKE_KICK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_BIKE_HIT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_BIKE_GETOFF_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_BIKE_GETOFF_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_BIKE_GETOFF_BACK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_BIKE_DRIVEBY_LHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_BIKE_DRIVEBY_RHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_BIKE_DRIVEBY_FORWARD, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_BIKE_RIDE_P, ASSOC_DELETEFADEDOUT | ASSOC_DRIVING }, }; AnimAssocDesc aMeleeAnimDescs[] = { - { ANIM_MELEE_ATTACK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_MELEE_ATTACK_2ND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_MELEE_ATTACK_START, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, - { ANIM_MELEE_IDLE_FIGHTMODE, ASSOC_REPEAT }, - { ANIM_MELEE_ATTACK_FINISH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_MELEE_ATTACK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_MELEE_ATTACK_2ND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_MELEE_ATTACK_START, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, + { ANIM_MELEE_IDLE_FIGHTMODE, ASSOC_REPEAT }, + { ANIM_MELEE_ATTACK_FINISH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, }; AnimAssocDesc aSwingAnimDescs[] = { - { ANIM_MELEE_ATTACK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_MELEE_ATTACK_2ND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_MELEE_ATTACK_START, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_MELEE_IDLE_FIGHTMODE, ASSOC_REPEAT }, - { ANIM_MELEE_ATTACK_FINISH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_MELEE_ATTACK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_MELEE_ATTACK_2ND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_MELEE_ATTACK_START, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_MELEE_IDLE_FIGHTMODE, ASSOC_REPEAT }, + { ANIM_MELEE_ATTACK_FINISH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, }; AnimAssocDesc aWeaponAnimDescs[] = { - { ANIM_ATTACK_1, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_ATTACK_2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_ATTACK_EXTRA1, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_ATTACK_EXTRA2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_WEAPON_FIRE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_WEAPON_CROUCHFIRE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_WEAPON_RELOAD, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_WEAPON_CROUCHRELOAD, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_WEAPON_FIRE_3RD, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, }; AnimAssocDesc aMedicAnimDescs[] = { - { ANIM_MEDIC_CPR, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_MEDIC_CPR, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, }; AnimAssocDesc aSunbatheAnimDescs[] = { - { ANIM_SUNBATHE_IDLE, ASSOC_REPEAT | ASSOC_PARTIAL }, - { ANIM_SUNBATHE_DOWN, ASSOC_HAS_X_TRANSLATION | ASSOC_HAS_TRANSLATION | ASSOC_PARTIAL }, - { ANIM_SUNBATHE_UP, ASSOC_HAS_X_TRANSLATION | ASSOC_HAS_TRANSLATION | ASSOC_PARTIAL }, - { ANIM_SUNBATHE_ESCAPE, ASSOC_HAS_X_TRANSLATION | ASSOC_HAS_TRANSLATION | ASSOC_PARTIAL }, + { ANIM_SUNBATHE_IDLE, ASSOC_REPEAT | ASSOC_PARTIAL }, + { ANIM_SUNBATHE_DOWN, ASSOC_REPEAT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION }, + { ANIM_SUNBATHE_UP, ASSOC_REPEAT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION }, + { ANIM_SUNBATHE_ESCAPE, ASSOC_REPEAT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION }, }; AnimAssocDesc aPlayerIdleAnimDescs[] = { - { ANIM_PLAYER_IDLE1, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_PLAYER_IDLE2, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_PLAYER_IDLE3, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_PLAYER_IDLE4, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_PLAYER_IDLE1, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_PLAYER_IDLE2, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_PLAYER_IDLE3, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_PLAYER_IDLE4, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, }; AnimAssocDesc aRiotAnimDescs[] = { - { ANIM_RIOT_ANGRY, ASSOC_REPEAT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_RIOT_ANGRY_B, ASSOC_REPEAT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_RIOT_CHANT, ASSOC_REPEAT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_RIOT_PUNCHES, ASSOC_REPEAT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_RIOT_SHOUT, ASSOC_REPEAT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_RIOT_CHALLENGE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_RIOT_FUCKYOU, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_RIOT_ANGRY, ASSOC_REPEAT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_RIOT_ANGRY_B, ASSOC_REPEAT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_RIOT_CHANT, ASSOC_REPEAT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_RIOT_PUNCHES, ASSOC_REPEAT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_RIOT_SHOUT, ASSOC_REPEAT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_RIOT_CHALLENGE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_RIOT_FUCKYOU, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, }; AnimAssocDesc aStripAnimDescs[] = { - { ANIM_STRIP_A, ASSOC_REPEAT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STRIP_B, ASSOC_REPEAT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STRIP_C, ASSOC_REPEAT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STRIP_D, ASSOC_REPEAT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STRIP_E, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STRIP_F, ASSOC_REPEAT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_STRIP_G, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STRIP_A, ASSOC_REPEAT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STRIP_B, ASSOC_REPEAT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STRIP_C, ASSOC_REPEAT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STRIP_D, ASSOC_REPEAT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STRIP_E, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STRIP_F, ASSOC_REPEAT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STRIP_G, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, }; +#ifdef PC_PLAYER_CONTROLS AnimAssocDesc aStdAnimDescsSide[] = { - { ANIM_STD_WALK, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION | ASSOC_WALK }, - { ANIM_STD_RUN, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION | ASSOC_WALK }, - { ANIM_STD_RUNFAST, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION | ASSOC_WALK }, - { ANIM_STD_IDLE, ASSOC_REPEAT }, - { ANIM_STD_STARTWALK, ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION }, + { ANIM_STD_WALK, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION | ASSOC_WALK }, + { ANIM_STD_RUN, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION | ASSOC_WALK }, + { ANIM_STD_RUNFAST, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION | ASSOC_WALK }, + { ANIM_STD_IDLE, ASSOC_REPEAT }, + { ANIM_STD_STARTWALK, ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION }, }; -AnimAssocDesc aMPNoteAnimDescs[] = { - { ANIM_MULTIPLAYER_CUTSCENE_MPNOTE, ASSOC_PARTIAL | ASSOC_IDLE }, - { ANIM_MULTIPLAYER_CUTSCENE_MPNOTE_LOOP, ASSOC_REPEAT | ASSOC_PARTIAL | ASSOC_IDLE }, -}; -AnimAssocDesc aCSMiscAnimDescs[] = { - { ANIM_CS_MISC_IDLE_LOOK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, - { ANIM_CS_MISC_IDLE_NO, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, - { ANIM_CS_MISC_IDLE_YES, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, - { ANIM_CS_MISC_IDLE_CHAT2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, - { ANIM_CS_MISC_IDLE_COUGH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, - { ANIM_CS_MISC_IDLE_GIGGLE_FEMALE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, - { ANIM_CS_MISC_IDLE_TOUGH_CHAT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, - { ANIM_CS_MISC_IDLE_CELL_TALK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, -}; -AnimAssocDesc aDONH2AnimDescs[] = { - { ANIM_DONH2_CAMERA, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, -}; -AnimAssocDesc aDONH3AnimDescs[] = { - { ANIM_DONH3_HAPPY, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_IDLE }, -}; -AnimAssocDesc aJDT2AnimDescs[] = { - { ANIM_JDT2_ANXIOUS_TALK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, - { ANIM_JDT2_SHRUG, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, -}; -AnimAssocDesc aJDT4AnimDescs[] = { - { ANIM_JDT4_DILDO_TALK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, -}; -AnimAssocDesc aJDT5AnimDescs[] = { - { ANIM_JDT5_CALM_DOWN, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, - { ANIM_JDT5_POINT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, -}; -AnimAssocDesc aJDT6AnimDescs[] = { - { ANIM_JDT6_PICKUP, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, - { ANIM_JDT6_KNOCK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, -}; -AnimAssocDesc aMAR1AnimDescs[] = { - { ANIM_MAR1_SKIRT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, -}; -AnimAssocDesc aMAR2AnimDescs[] = { - { ANIM_MAR2_CELL_ANSWER, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, - { ANIM_MAR2_CELL_END, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, - { ANIM_MAR2_CELL_TALK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, - { ANIM_MAR2_FOOT_TAP, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, -}; -AnimAssocDesc aMAR3AnimDescs[] = { - { ANIM_MAR3_HOOCHY, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, - { ANIM_MAR3_NOTE_IDLE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, - { ANIM_MAR3_NOTE_PICKUP, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, -}; -AnimAssocDesc aSAL1AnimDescs[] = { - { ANIM_SAL1_BIREFCASE_DOWN, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, -}; -AnimAssocDesc aSAL2AnimDescs[] = { - { ANIM_SAL2_IDLE_SEATED, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, - { ANIM_SAL2_SEAT_TO_STAND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, -}; -AnimAssocDesc aSAL3AnimDescs[] = { - { ANIM_SAL3_SEATED_TALK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, - { ANIM_SAL3_SEATED_IDLE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, - { ANIM_SAL3_SIT_DOWN, ASSOC_PARTIAL | ASSOC_IDLE }, -}; -AnimAssocDesc aSAL4AnimDescs[] = { - { ANIM_SAL4_DUST_DOWN, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, - { ANIM_SAL4_GIRL_RUN, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, -}; -AnimAssocDesc aSAL6AnimDescs[] = { - { ANIM_SAL6_ANGRY_SEATED, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, - { ANIM_SAL6_IDLE_SEATED, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, -}; -AnimAssocDesc aSAL7AnimDescs[] = { - { ANIM_SAL7_LOOKOUT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, -}; -AnimAssocDesc aVIC2AnimDescs[] = { - { ANIM_VIC2_POINT_ANGRY, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, -}; -AnimAssocDesc aVIC3AnimDescs[] = { - { ANIM_VIC3_WAFT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, - { ANIM_VIC3_PICKUP_ROLL, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, -}; -AnimAssocDesc aVIC4AnimDescs[] = { - { ANIM_VIC4_CARRY_BOX, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, - { ANIM_VIC4_CELL_LOOK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, - { ANIM_VIC4_CRATE_IDLE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, -}; -AnimAssocDesc aVIC6AnimDescs[] = { - { ANIM_VIC6_CELL_ANGRY, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, -}; -AnimAssocDesc aTouristAnimDescs[] = { - { ANIM_TOURIST3, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, - { ANIM_TOURIST2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, - { ANIM_TOURIST1, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, -}; -AnimAssocDesc aMAC2AnimDescs[] = { - { ANIM_MAC2_PLEAD, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, -}; -AnimAssocDesc aVIC7AnimDescs[] = { - { ANIM_VIC7_PROD_WITH_FOOT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, -}; - -char const *aStdAnimations[] = { +#endif +char const* aStdAnimations[] = { "walk_civi", "run_civi", "sprint_panic", @@ -410,8 +318,8 @@ char const *aStdAnimations[] = { "KO_shot_armR", "KO_shot_legl", "KO_shot_legR", - "BIKE_fall_off", - "BIKE_fall_off", + "KD_left", + "KD_right", "KO_skid_front", "KO_spin_R", "KO_skid_back", @@ -425,28 +333,30 @@ char const *aStdAnimations[] = { "HIT_back", "HIT_R", "FLOOR_hit", - + "HIT_bodyblow", + "HIT_chest", + "HIT_head", + "HIT_walk", "HIT_wall", "FLOOR_hit_f", "HIT_behind", "FIGHTIDLE", "FIGHT2IDLE", "FIGHTsh_F", + "FIGHTbodyblow", + "FIGHThead", + "FIGHTkick", + "FIGHTknee", + "FIGHTLhook", + "FIGHTpunch", + "FIGHTrndhse", + "FIGHTlngkck", "FIGHTppunch", - - "l_hook", - "r_hook", - "uppercut", - "headbutt", - "frontkick", - "roundhouse", - "hit_l_hook", - "hit_r_hook", - "hit_uppercut", - "hit_headbutt", - "hit_frontkick", - "hit_rhouse", - + "FIGHTjab", + "FIGHTelbowL", + "FIGHTelbowR", + "FIGHTbkickL", + "FIGHTbkickR", "bomber", "punchR", "FIGHTppunch", @@ -516,13 +426,12 @@ char const *aStdAnimations[] = { "CAR_getoutL_RHS", "CAR_close_RHS", "car_hookertalk", - - "TRAIN_getin", - "TRAIN_getout", + "idle_stance", + "idle_stance", "CAR_crawloutRHS", "CAR_crawloutRHS", "CAR_rollout_LHS", - "CAR_rollout_RHS", + "CAR_rollout_LHS", "Getup", "Getup", "Getup", @@ -538,8 +447,6 @@ char const *aStdAnimations[] = { "FALL_front", "EV_step", "EV_dive", - - "commando_roll", "XPRESSscratch", "roadcross", "TURN_180", @@ -562,7 +469,7 @@ char const *aStdAnimations[] = { "ATM", "abseil", }; -char const *aVanAnimations[] = { +char const* aVanAnimations[] = { "VAN_openL", "VAN_getinL", "VAN_closeL", @@ -572,14 +479,14 @@ char const *aVanAnimations[] = { "VAN_close", "VAN_getout", }; -char const *aCoachAnimations[] = { +char const* aCoachAnimations[] = { + "COACH_opnL", "COACH_opnL", - "COACH_opnR", "COACH_inL", - "COACH_inR", + "COACH_inL", "COACH_outL", }; -char const *aBikesAnimations[] = { +char const* aBikesAnimations[] = { "BIKEs_Ride", "BIKEs_Still", "BIKEs_Left", @@ -599,7 +506,7 @@ char const *aBikesAnimations[] = { "BIKEs_drivebyFT", "BIKEs_passenger", }; -char const *aBikevAnimations[] = { +char const* aBikevAnimations[] = { "BIKEv_Ride", "BIKEv_Still", "BIKEv_Left", @@ -619,7 +526,7 @@ char const *aBikevAnimations[] = { "BIKEv_drivebyFT", "BIKEv_passenger", }; -char const *aBikehAnimations[] = { +char const* aBikehAnimations[] = { "BIKEh_Ride", "BIKEh_Still", "BIKEh_Left", @@ -639,7 +546,7 @@ char const *aBikehAnimations[] = { "BIKEh_drivebyFT", "BIKEh_passenger", }; -char const *aBikedAnimations[] = { +char const* aBikedAnimations[] = { "BIKEd_Ride", "BIKEd_Still", "BIKEd_Left", @@ -659,123 +566,115 @@ char const *aBikedAnimations[] = { "BIKEd_drivebyFT", "BIKEd_passenger", }; -char const *aUnarmedAnimations[] = { +char const* aUnarmedAnimations[] = { "punchR", "KICK_floor", "FIGHTppunch", }; -char const *aScrewdriverAnimations[] = { - "r_hook", - "r_hook", +char const* aScrewdriverAnimations[] = { + "FIGHTbodyblow", + "FIGHTbodyblow", "FIGHTppunch", "FIGHTIDLE", - "r_hook", + "FIGHTbodyblow", }; -char const *aKnifeAnimations[] = { +char const* aKnifeAnimations[] = { "WEAPON_knife_1", "WEAPON_knife_2", "knife_part", "WEAPON_knifeidle", "WEAPON_knife_3", }; -char const *aBaseballbatAnimations[] = { +char const* aBaseballbatAnimations[] = { "WEAPON_bat_h", "WEAPON_bat_v", "BAT_PART", "WEAPON_bat_h", "WEAPON_golfclub", }; -char const *aGolfclubAnimations[] = { +char const* aGolfclubAnimations[] = { "WEAPON_bat_h", "WEAPON_golfclub", "BAT_PART", "WEAPON_bat_h", "WEAPON_bat_v", }; -char const *aChainsawAnimations[] = { +char const* aChainsawAnimations[] = { "WEAPON_csaw", "WEAPON_csawlo", "csaw_part", }; -char const *aPythonAnimations[] = { +char const* aPythonAnimations[] = { "python_fire", "python_crouchfire", "python_reload", "python_crouchreload", }; -char const *aColtAnimations[] = { +char const* aColtAnimations[] = { "colt45_fire", "colt45_crouchfire", "colt45_reload", "colt45_crouchreload", "colt45_cop", }; -char const *aShotgunAnimations[] = { +char const* aShotgunAnimations[] = { "shotgun_fire", "shotgun_crouchfire", }; -char const *aBuddyAnimations[] = { +char const* aBuddyAnimations[] = { "buddy_fire", "buddy_crouchfire", - "buddy_reload", }; -char const *aTecAnimations[] = { +char const* aTecAnimations[] = { "TEC_fire", "TEC_crouchfire", "TEC_reload", "TEC_crouchreload", }; -char const *aUziAnimations[] = { +char const* aUziAnimations[] = { "UZI_fire", "UZI_crouchfire", "UZI_reload", "UZI_crouchreload", }; -char const *aRifleAnimations[] = { +char const* aRifleAnimations[] = { "RIFLE_fire", "RIFLE_crouchfire", "RIFLE_load", "RIFLE_crouchload", }; -char const *aM60Animations[] = { +char const* aM60Animations[] = { "M60_fire", "M60_fire", "M60_reload", }; -char const *aSniperAnimations[] = { - "sniper_fire", - "sniper_fire", - "sniper_reload", +char const* aSniperAnimations[] = { + "WEAPON_sniper", }; -char const *aThrowAnimations[] = { +char const* aThrowAnimations[] = { "WEAPON_throw", "WEAPON_throwu", "WEAPON_start_throw", }; -char const *aFlamethrowerAnimations[] = { +char const* aFlamethrowerAnimations[] = { "FLAME_fire", }; -char const *aRocketLauncherAnimations[] = { - "rocket_fire", - "rocket_fire", - "rocket_reload", -}; -char const *aMedicAnimations[] = { +char const* aMedicAnimations[] = { "CPR", }; -char const *aSunbatheAnimations[] = { +char const* aSunbatheAnimations[] = { "bather", "batherdown", "batherup", "batherscape", }; -char const *aPlayerIdleAnimations[] = { +char const* aPlayerIdleAnimations[] = { "stretch", "time", "shldr", "strleg", }; -char const *aRiotAnimations[] = { +char const* aRiotAnimations[] = { "riot_angry", "riot_angry_b", "riot_chant", @@ -784,7 +683,7 @@ char const *aRiotAnimations[] = { "riot_challenge", "riot_fuku", }; -char const *aStripAnimations[] = { +char const* aStripAnimations[] = { "strip_A", "strip_B", "strip_C", @@ -793,287 +692,212 @@ char const *aStripAnimations[] = { "strip_F", "strip_G", }; -char const *aLanceAnimations[] = { +char const* aLanceAnimations[] = { "lance", }; -char const *aPlayerAnimations[] = { +char const* aPlayerAnimations[] = { "walk_player", "run_player", "SPRINT_civi", "IDLE_STANCE", "walk_start", }; -char const *aPlayerWithRocketAnimations[] = { +char const* aPlayerWithRocketAnimations[] = { "walk_rocket", "run_rocket", - "sprint_rocket", + "run_rocket", "idle_rocket", "walk_start_rocket", }; -char const *aPlayer1ArmedAnimations[] = { +char const* aPlayer1ArmedAnimations[] = { "walk_player", "run_1armed", "SPRINT_civi", "IDLE_STANCE", "walk_start", }; -char const *aPlayer2ArmedAnimations[] = { +char const* aPlayer2ArmedAnimations[] = { "walk_armed", "run_armed", - "playersprint_armed", + "run_armed", "idle_armed", "walk_start_armed", }; -char const *aAIChainsawAnimations[] = { - "walk_aicsaw", - "run_aicsaw", - "run_aicsaw", - "IDLE_csaw", - "walk_start_aicsaw", +char const* aPlayerBBBatAnimations[] = { + "walk_player", + "run_player", + "run_player", + "IDLE_STANCE", + "walk_start", }; -char const *aPlayerChainsawAnimations[] = { +char const* aPlayerChainsawAnimations[] = { "walk_csaw", "run_csaw", - "sprint_csaw", + "run_csaw", "IDLE_csaw", "walk_start_csaw", }; -char const *aShuffleAnimations[] = { +char const* aShuffleAnimations[] = { "WALK_shuffle", "RUN_civi", "SPRINT_civi", "IDLE_STANCE", }; -char const *aOldAnimations[] = { +char const* aOldAnimations[] = { "walk_old", "run_civi", "sprint_civi", "idle_stance", }; -char const *aGang1Animations[] = { +char const* aGang1Animations[] = { "walk_gang1", "run_gang1", "sprint_civi", "idle_stance", }; -char const *aGang2Animations[] = { +char const* aGang2Animations[] = { "walk_gang2", "run_gang1", "sprint_civi", "idle_stance", }; -char const *aFatAnimations[] = { +char const* aFatAnimations[] = { "walk_fat", "run_civi", "woman_runpanic", "idle_stance", }; -char const *aOldFatAnimations[] = { +char const* aOldFatAnimations[] = { "walk_fatold", "run_fatold", "woman_runpanic", "idle_stance", }; -char const *aJoggerAnimations[] = { +char const* aJoggerAnimations[] = { "JOG_maleA", "run_civi", "sprint_civi", "idle_stance", }; -char const *aStdWomanAnimations[] = { +char const* aStdWomanAnimations[] = { "woman_walknorm", "woman_run", "woman_runpanic", "woman_idlestance", }; -char const *aWomanShopAnimations[] = { +char const* aWomanShopAnimations[] = { "woman_walkshop", "woman_run", "woman_run", "woman_idlestance", }; -char const *aBusyWomanAnimations[] = { +char const* aBusyWomanAnimations[] = { "woman_walkbusy", "woman_run", "woman_runpanic", "woman_idlestance", }; -char const *aSexyWomanAnimations[] = { +char const* aSexyWomanAnimations[] = { "woman_walksexy", "woman_run", "woman_runpanic", "woman_idlestance", }; -char const *aFatWomanAnimations[] = { +char const* aFatWomanAnimations[] = { "walk_fat", "woman_run", "woman_runpanic", "woman_idlestance", }; -char const *aOldWomanAnimations[] = { +char const* aOldWomanAnimations[] = { "woman_walkold", "woman_run", "woman_runpanic", "woman_idlestance", }; -char const *aJoggerWomanAnimations[] = { +char const* aJoggerWomanAnimations[] = { "JOG_maleB", "woman_run", "woman_runpanic", "woman_idlestance", }; -char const *aPanicChunkyAnimations[] = { +char const* aPanicChunkyAnimations[] = { "run_fatold", "woman_runpanic", "woman_runpanic", "idle_stance", }; -char const *aSkateAnimations[] = { +char const* aSkateAnimations[] = { "skate_run", "skate_sprint", "skate_sprint", "skate_idle", }; -char const *aPlayerStrafeBackAnimations[] = { +#ifdef PC_PLAYER_CONTROLS +char const* aPlayerStrafeBackAnimations[] = { "walk_back", "run_back", "run_back", "IDLE_STANCE", "walk_start_back", }; -char const *aPlayerStrafeLeftAnimations[] = { +char const* aPlayerStrafeLeftAnimations[] = { "walk_left", "run_left", "run_left", "IDLE_STANCE", "walk_start_left", }; -char const *aPlayerStrafeRightAnimations[] = { +char const* aPlayerStrafeRightAnimations[] = { "walk_right", "run_right", "run_right", "IDLE_STANCE", "walk_start_right", }; -char const *aRocketStrafeBackAnimations[] = { +char const* aRocketStrafeBackAnimations[] = { "walk_rocket_back", "run_rocket_back", "run_rocket_back", "idle_rocket", "walkst_rocket_back", }; -char const *aRocketStrafeLeftAnimations[] = { +char const* aRocketStrafeLeftAnimations[] = { "walk_rocket_left", "run_rocket_left", "run_rocket_left", "idle_rocket", "walkst_rocket_left", }; -char const *aRocketStrafeRightAnimations[] = { +char const* aRocketStrafeRightAnimations[] = { "walk_rocket_right", "run_rocket_right", "run_rocket_right", "idle_rocket", "walkst_rocket_right", }; -char const *aMPNoteAnimations[] = { - "MPNote", - "MPNoteloop", +char const* aChainsawStrafeBackAnimations[] = { + "walk_csaw_back", + "run_csaw_back", + "run_csaw_back", + "idle_csaw", + "walkst_csaw_back", }; -char const *aCSMiscAnimations[] = { - "IDLE_look", - "IDLE_no", - "IDLE_yes", - "IDLE_chat2", - "IDLE_cough", - "IDLE_giggle_female", - "IDLE_tough_chat", - "IDLE_cell_talk", +char const* aChainsawStrafeLeftAnimations[] = { + "walk_csaw_left", + "run_csaw_left", + "run_csaw_left", + "idle_csaw", + "walkst_csaw_left", }; -char const *aDONH2Animations[] = { - "DONH2_camera", -}; -char const *aDONH3Animations[] = { - "DONH3_happy", -}; -char const *aJDT2Animations[] = { - "JDT2_anxious_talk", - "JDT2_shrug", -}; -char const *aJDT4Animations[] = { - "JDT4_dildo_talk", -}; -char const *aJDT5Animations[] = { - "JDT5_calm_down", - "JDT5_point", -}; -char const *aJDT6Animations[] = { - "JDT6_pickup", - "JDT6_doorknock", -}; -char const *aMAR1Animations[] = { - "MAR1_skirt", -}; -char const *aMAR2Animations[] = { - "MAR2_cell_answer", - "MAR2_cell_end", - "MAR2_cell_talk", - "MAR2_foot_tap", -}; -char const *aMAR3Animations[] = { - "MAR3_hoochy", - "MAR3_note_idle", - "MAR3_note_pick", -}; -char const *aSAL1Animations[] = { - "SAL1_briefcase_down", -}; -char const *aSAL2Animations[] = { - "SAL2_idle_seated", - "SAL2_seat_to_stand", -}; -char const *aSAL3Animations[] = { - "SAL3_seated_talk", - "SAL3_seated_idle", - "SAL3_sit_down", -}; -char const *aSAL4Animations[] = { - "SAL4_dustdown", - "SAL4_girlrun", -}; -char const *aSAL6Animations[] = { - "SAL6_angry_seated", - "SAL6_idle_seated", -}; -char const *aSAL7Animations[] = { - "SAL7_lookout", -}; -char const *aVIC2Animations[] = { - "VIC2_point_angry", -}; -char const *aVIC3Animations[] = { - "VIC3_waft", - "VIC3_pickup_roll", -}; -char const *aVIC4Animations[] = { - "VIC4_carry_box", - "VIC4_cell_look", - "VIC4_crate_idle", -}; -char const *aVIC6Animations[] = { - "VIC6_cell_angry", -}; -char const *aTouristAnimations[] = { - "tourist3", - "tourist2", - "tourist1", -}; -char const *aMAC2Animations[] = { - "MAC2_plead", -}; -char const *aVIC7Animations[] = { - "VIC7_prod_with_foot", +char const* aChainsawStrafeRightAnimations[] = { + "walk_csaw_right", + "run_csaw_right", + "run_csaw_right", + "idle_csaw", + "walkst_csaw_right", }; +#endif #define awc(a) ARRAY_SIZE(a), a const AnimAssocDefinition CAnimManager::ms_aAnimAssocDefinitions[NUM_ANIM_ASSOC_GROUPS] = { @@ -1101,7 +925,6 @@ const AnimAssocDefinition CAnimManager::ms_aAnimAssocDefinitions[NUM_ANIM_ASSOC_ { "sniper", "sniper", MI_COP, awc(aSniperAnimations), aWeaponAnimDescs }, { "grenade", "grenade", MI_COP, awc(aThrowAnimations), aWeaponAnimDescs }, { "flame", "flame", MI_COP, awc(aFlamethrowerAnimations), aWeaponAnimDescs }, - { "rocketla", "rocketla", MI_COP, awc(aRocketLauncherAnimations), aWeaponAnimDescs }, { "medic", "medic", MI_COP, awc(aMedicAnimations), aMedicAnimDescs }, { "sunbathe", "sunbathe", MI_COP, 1, aSunbatheAnimations, aSunbatheAnimDescs }, // NB: not using awc here! { "playidles", "playidles", MI_COP, awc(aPlayerIdleAnimations), aPlayerIdleAnimDescs }, @@ -1112,8 +935,7 @@ const AnimAssocDefinition CAnimManager::ms_aAnimAssocDefinitions[NUM_ANIM_ASSOC_ { "playerrocket", "ped", MI_COP, awc(aPlayerWithRocketAnimations), aStdAnimDescs }, { "player1armed", "ped", MI_COP, awc(aPlayer1ArmedAnimations), aStdAnimDescs }, { "player2armed", "ped", MI_COP, awc(aPlayer2ArmedAnimations), aStdAnimDescs }, - { "playerBBBat", "ped", MI_COP, awc(aPlayer1ArmedAnimations), aStdAnimDescs }, - { "aicsaw2", "ped", MI_COP, awc(aAIChainsawAnimations), aStdAnimDescs }, + { "playerBBBat", "ped", MI_COP, awc(aPlayerBBBatAnimations), aStdAnimDescs }, { "playercsaw", "ped", MI_COP, awc(aPlayerChainsawAnimations), aStdAnimDescs }, { "shuffle", "ped", MI_COP, awc(aShuffleAnimations), aStdAnimDescs }, { "oldman", "ped", MI_COP, awc(aOldAnimations), aStdAnimDescs }, @@ -1131,39 +953,17 @@ const AnimAssocDefinition CAnimManager::ms_aAnimAssocDefinitions[NUM_ANIM_ASSOC_ { "jogwoman", "ped", MI_COP, awc(aJoggerWomanAnimations), aStdAnimDescs }, { "panicchunky", "ped", MI_COP, awc(aPanicChunkyAnimations), aStdAnimDescs }, { "skate", "skate", MI_COP, awc(aSkateAnimations), aStdAnimDescs }, -#ifdef PC_PLAYER_CONTROLS // strangely enabled even on PS2 +#ifdef PC_PLAYER_CONTROLS { "playerback", "ped", MI_COP, awc(aPlayerStrafeBackAnimations), aStdAnimDescs }, { "playerleft", "ped", MI_COP, awc(aPlayerStrafeLeftAnimations), aStdAnimDescsSide }, { "playerright", "ped", MI_COP, awc(aPlayerStrafeRightAnimations), aStdAnimDescsSide }, { "rocketback", "ped", MI_COP, awc(aRocketStrafeBackAnimations), aStdAnimDescs }, { "rocketleft", "ped", MI_COP, awc(aRocketStrafeLeftAnimations), aStdAnimDescsSide }, { "rocketright", "ped", MI_COP, awc(aRocketStrafeRightAnimations), aStdAnimDescsSide }, + { "csawback", "ped", MI_COP, awc(aChainsawStrafeBackAnimations), aStdAnimDescs }, + { "csawleft", "ped", MI_COP, awc(aChainsawStrafeLeftAnimations), aStdAnimDescsSide }, + { "csawright", "ped", MI_COP, awc(aChainsawStrafeRightAnimations), aStdAnimDescsSide }, #endif - - { "MPNote", "MPNote", MI_COP, awc(aMPNoteAnimations), aMPNoteAnimDescs }, - { "CS_MISC", "CS_MISC", MI_COP, awc(aCSMiscAnimations), aCSMiscAnimDescs }, - { "DONH2", "DONH2", MI_COP, awc(aDONH2Animations), aDONH2AnimDescs }, - { "DONH3", "DONH3", MI_COP, awc(aDONH3Animations), aDONH3AnimDescs }, - { "JDT2", "JDT2", MI_COP, awc(aJDT2Animations), aJDT2AnimDescs }, - { "JDT4", "JDT4", MI_COP, awc(aJDT4Animations), aJDT4AnimDescs }, - { "JDT5", "JDT5", MI_COP, awc(aJDT5Animations), aJDT5AnimDescs }, - { "JDT6", "JDT6", MI_COP, awc(aJDT6Animations), aJDT6AnimDescs }, - { "MAR1", "MAR1", MI_COP, awc(aMAR1Animations), aMAR1AnimDescs }, - { "MAR2", "MAR2", MI_COP, awc(aMAR2Animations), aMAR2AnimDescs }, - { "MAR3", "MAR3", MI_COP, awc(aMAR3Animations), aMAR3AnimDescs }, - { "SAL1", "SAL1", MI_COP, awc(aSAL1Animations), aSAL1AnimDescs }, - { "SAL2", "SAL2", MI_COP, awc(aSAL2Animations), aSAL2AnimDescs }, - { "SAL3", "SAL3", MI_COP, awc(aSAL3Animations), aSAL3AnimDescs }, - { "SAL4", "SAL4", MI_COP, awc(aSAL4Animations), aSAL4AnimDescs }, - { "SAL6", "SAL6", MI_COP, awc(aSAL6Animations), aSAL6AnimDescs }, - { "SAL7", "SAL7", MI_COP, awc(aSAL7Animations), aSAL7AnimDescs }, - { "VIC2", "VIC2", MI_COP, awc(aVIC2Animations), aVIC2AnimDescs }, - { "VIC3", "VIC3", MI_COP, awc(aVIC3Animations), aVIC3AnimDescs }, - { "VIC4", "VIC4", MI_COP, awc(aVIC4Animations), aVIC4AnimDescs }, - { "VIC6", "VIC6", MI_COP, awc(aVIC6Animations), aVIC6AnimDescs }, - { "TOURIST", "TOURIST", MI_COP, awc(aTouristAnimations), aTouristAnimDescs }, - { "MAC2", "MAC2", MI_COP, awc(aMAC2Animations), aMAC2AnimDescs }, - { "VIC7", "VIC7", MI_COP, awc(aVIC7Animations), aVIC7AnimDescs }, }; #undef awc diff --git a/src/animation/AnimManager.h b/src/animation/AnimManager.h index 9f556b5..213326b 100644 --- a/src/animation/AnimManager.h +++ b/src/animation/AnimManager.h @@ -29,7 +29,6 @@ enum AssocGroupId ASSOCGRP_SNIPER, ASSOCGRP_THROW, ASSOCGRP_FLAMETHROWER, - ASSOCGRP_ROCKETLAUNCHER, ASSOCGRP_MEDIC, ASSOCGRP_SUNBATHE, ASSOCGRP_PLAYER_IDLE, @@ -41,7 +40,6 @@ enum AssocGroupId ASSOCGRP_PLAYER1ARMED, ASSOCGRP_PLAYER2ARMED, ASSOCGRP_PLAYERBBBAT, - ASSOCGRP_AICHAINSAW, ASSOCGRP_PLAYERCHAINSAW, ASSOCGRP_SHUFFLE, ASSOCGRP_OLD, @@ -66,33 +64,11 @@ enum AssocGroupId ASSOCGRP_ROCKETBACK, ASSOCGRP_ROCKETLEFT, ASSOCGRP_ROCKETRIGHT, + ASSOCGRP_CHAINSAWBACK, + ASSOCGRP_CHAINSAWLEFT, + ASSOCGRP_CHAINSAWRIGHT, #endif - ASSOCGRP_MPNOTE, - ASSOCGRP_CSMISC, - ASSOCGRP_DONH2, - ASSOCGRP_DONH3, - ASSOCGRP_JDT2, - ASSOCGRP_JDT4, - ASSOCGRP_JDT5, - ASSOCGRP_JDT6, - ASSOCGRP_MAR1, - ASSOCGRP_MAR2, - ASSOCGRP_MAR3, - ASSOCGRP_SAL1, - ASSOCGRP_SAL2, - ASSOCGRP_SAL3, - ASSOCGRP_SAL4, - ASSOCGRP_SAL6, - ASSOCGRP_SAL7, - ASSOCGRP_VIC2, - ASSOCGRP_VIC3, - ASSOCGRP_VIC4, - ASSOCGRP_VIC6, - ASSOCGRP_TOURIST, - ASSOCGRP_MAC2, - ASSOCGRP_VIC7, - NUM_ANIM_ASSOC_GROUPS }; diff --git a/src/animation/AnimationId.h b/src/animation/AnimationId.h index 5a8f728..0b5d8d8 100644 --- a/src/animation/AnimationId.h +++ b/src/animation/AnimationId.h @@ -40,25 +40,42 @@ enum AnimationId ANIM_STD_HIT_BACK, ANIM_STD_HIT_RIGHT, ANIM_STD_HIT_FLOOR, + + /* names made up */ + ANIM_STD_HIT_BODYBLOW, + ANIM_STD_HIT_CHEST, + ANIM_STD_HIT_HEAD, + ANIM_STD_HIT_WALK, + /**/ + ANIM_STD_HIT_WALL, ANIM_STD_HIT_FLOOR_FRONT, ANIM_STD_HIT_BEHIND, ANIM_STD_FIGHT_IDLE, ANIM_STD_FIGHT_2IDLE, ANIM_STD_FIGHT_SHUFFLE_F, + + /* names made up */ + ANIM_STD_FIGHT_BODYBLOW, + ANIM_STD_FIGHT_HEAD, + ANIM_STD_FIGHT_KICK, + ANIM_STD_FIGHT_KNEE, + ANIM_STD_FIGHT_LHOOK, + ANIM_STD_FIGHT_PUNCH, + ANIM_STD_FIGHT_ROUNDHOUSE, + ANIM_STD_FIGHT_LONGKICK, + /**/ + ANIM_STD_PARTIAL_PUNCH, - ANIM_FIGHT_ATTACK_A1, - ANIM_FIGHT_ATTACK_A2, - ANIM_FIGHT_ATTACK_A3, - ANIM_FIGHT_ATTACK_B1, - ANIM_FIGHT_ATTACK_B2, - ANIM_FIGHT_ATTACK_B3, - ANIM_FIGHT_HIT_A1, - ANIM_FIGHT_HIT_A2, - ANIM_FIGHT_HIT_A3, - ANIM_FIGHT_HIT_B1, - ANIM_FIGHT_HIT_B2, - ANIM_FIGHT_HIT_B3, + + /* names made up */ + ANIM_STD_FIGHT_JAB, + ANIM_STD_FIGHT_ELBOW_L, + ANIM_STD_FIGHT_ELBOW_R, + ANIM_STD_FIGHT_BKICK_L, + ANIM_STD_FIGHT_BKICK_R, + /**/ + ANIM_STD_DETONATE, ANIM_STD_PUNCH, ANIM_STD_PARTIALPUNCH, @@ -157,7 +174,6 @@ enum AnimationId ANIM_STD_EVADE_STEP, ANIM_STD_EVADE_DIVE, - ANIM_STD_COMMANDO_ROLL, ANIM_STD_XPRESS_SCRATCH, ANIM_STD_ROADCROSS, ANIM_STD_TURN180, @@ -268,65 +284,4 @@ enum AnimationId ANIM_STRIP_E, ANIM_STRIP_F, ANIM_STRIP_G, - - - ANIM_MULTIPLAYER_CUTSCENE_MPNOTE, - ANIM_MULTIPLAYER_CUTSCENE_MPNOTE_LOOP, - - ANIM_CS_MISC_IDLE_LOOK, - ANIM_CS_MISC_IDLE_NO, - ANIM_CS_MISC_IDLE_YES, - ANIM_CS_MISC_IDLE_CHAT2, - ANIM_CS_MISC_IDLE_COUGH, - ANIM_CS_MISC_IDLE_GIGGLE_FEMALE, - ANIM_CS_MISC_IDLE_TOUGH_CHAT, - ANIM_CS_MISC_IDLE_CELL_TALK, - - ANIM_DONH2_CAMERA, - ANIM_DONH3_HAPPY, - - ANIM_JDT2_ANXIOUS_TALK, - ANIM_JDT2_SHRUG, - ANIM_JDT4_DILDO_TALK, - ANIM_JDT5_CALM_DOWN, - ANIM_JDT5_POINT, - ANIM_JDT6_PICKUP, - ANIM_JDT6_KNOCK, - - ANIM_MAR1_SKIRT, - ANIM_MAR2_CELL_ANSWER, - ANIM_MAR2_CELL_END, - ANIM_MAR2_CELL_TALK, - ANIM_MAR2_FOOT_TAP, - ANIM_MAR3_HOOCHY, - ANIM_MAR3_NOTE_IDLE, - ANIM_MAR3_NOTE_PICKUP, - - ANIM_SAL1_BIREFCASE_DOWN, - ANIM_SAL2_IDLE_SEATED, - ANIM_SAL2_SEAT_TO_STAND, - ANIM_SAL3_SEATED_TALK, - ANIM_SAL3_SEATED_IDLE, - ANIM_SAL3_SIT_DOWN, - ANIM_SAL4_DUST_DOWN, - ANIM_SAL4_GIRL_RUN, - ANIM_SAL6_ANGRY_SEATED, - ANIM_SAL6_IDLE_SEATED, - ANIM_SAL7_LOOKOUT, - - ANIM_VIC2_POINT_ANGRY, - ANIM_VIC3_WAFT, - ANIM_VIC3_PICKUP_ROLL, - ANIM_VIC4_CARRY_BOX, - ANIM_VIC4_CELL_LOOK, - ANIM_VIC4_CRATE_IDLE, - ANIM_VIC6_CELL_ANGRY, - - ANIM_TOURIST3, - ANIM_TOURIST2, - ANIM_TOURIST1, - - ANIM_MAC2_PLEAD, - - ANIM_VIC7_PROD_WITH_FOOT }; \ No newline at end of file diff --git a/src/animation/CutsceneMgr.cpp b/src/animation/CutsceneMgr.cpp index 088cb41..633618b 100644 --- a/src/animation/CutsceneMgr.cpp +++ b/src/animation/CutsceneMgr.cpp @@ -22,54 +22,154 @@ #include "ColStore.h" #include "Radar.h" #include "Pools.h" -#include "crossplatform.h" -static bool bModelsRemovedForCutscene; -static int32 NumberOfSavedWeapons; -static eWeaponType SavedWeaponIDs[TOTAL_WEAPON_SLOTS]; -static int32 SavedWeaponAmmo[TOTAL_WEAPON_SLOTS]; +const struct { + const char *szTrackName; + int iTrackId; +} musicNameIdAssoc[] = { + { "ASS_1", STREAMED_SOUND_CUTSCENE_ASS_1 }, + { "ASS_2", STREAMED_SOUND_CUTSCENE_ASS_2 }, + { "BANK_1", STREAMED_SOUND_CUTSCENE_BANK_1 }, + { "BANK_2A", STREAMED_SOUND_CUTSCENE_BANK_2A }, + { "BANK_2B", STREAMED_SOUND_CUTSCENE_BANK_2B }, + { "BANK_3A", STREAMED_SOUND_CUTSCENE_BANK_3A }, + { "BANK_3B", STREAMED_SOUND_CUTSCENE_BANK_3B }, + { "BANK_4", STREAMED_SOUND_CUTSCENE_BANK_4 }, + { "BIKE_1", STREAMED_SOUND_CUTSCENE_BIKE_1 }, + { "BIKE_2", STREAMED_SOUND_CUTSCENE_BIKE_2 }, + { "BIKE_3", STREAMED_SOUND_CUTSCENE_BIKE_3 }, + { "BUD_1", STREAMED_SOUND_CUTSCENE_BUD_1 }, + { "BUD_2", STREAMED_SOUND_CUTSCENE_BUD_2 }, + { "BUD_3", STREAMED_SOUND_CUTSCENE_BUD_3 }, + { "CAP_1", STREAMED_SOUND_CUTSCENE_CAP_1 }, + { "CAR_1", STREAMED_SOUND_CUTSCENE_CAR_1 }, + { "CNT_1A", STREAMED_SOUND_CUTSCENE_CNT_1A }, + { "CNT_1B", STREAMED_SOUND_CUTSCENE_CNT_1B }, + { "CNT_2", STREAMED_SOUND_CUTSCENE_CNT_2 }, + { "COK_1", STREAMED_SOUND_CUTSCENE_COK_1 }, + { "COK_2A", STREAMED_SOUND_CUTSCENE_COK_2A }, + { "COK_2B", STREAMED_SOUND_CUTSCENE_COK_2B }, + { "COK_3", STREAMED_SOUND_CUTSCENE_COK_3 }, + { "COK_4A", STREAMED_SOUND_CUTSCENE_COK_4A }, + { "COK_4A2", STREAMED_SOUND_CUTSCENE_COK_4A2 }, + { "COK_4B", STREAMED_SOUND_CUTSCENE_COK_4B }, + { "COL_1", STREAMED_SOUND_CUTSCENE_COL_1 }, + { "COL_2", STREAMED_SOUND_CUTSCENE_COL_2 }, + { "COL_3A", STREAMED_SOUND_CUTSCENE_COL_3A }, + { "COL_4A", STREAMED_SOUND_CUTSCENE_COL_4A }, + { "COL_5A", STREAMED_SOUND_CUTSCENE_COL_5A }, + { "COL_5B", STREAMED_SOUND_CUTSCENE_COL_5B }, + { "CUB_1", STREAMED_SOUND_CUTSCENE_CUB_1 }, + { "CUB_2", STREAMED_SOUND_CUTSCENE_CUB_2 }, + { "CUB_3", STREAMED_SOUND_CUTSCENE_CUB_3 }, + { "CUB_4", STREAMED_SOUND_CUTSCENE_CUB_4 }, + { "DRUG_1", STREAMED_SOUND_CUTSCENE_DRUG_1 }, + { "FIN", STREAMED_SOUND_CUTSCENE_FIN }, + { "FIN_2", STREAMED_SOUND_CUTSCENE_FIN2 }, + { "FINALE", STREAMED_SOUND_CUTSCENE_FINALE }, + { "HAT_1", STREAMED_SOUND_CUTSCENE_HAT_1 }, + { "HAT_2", STREAMED_SOUND_CUTSCENE_HAT_2 }, + { "HAT_3", STREAMED_SOUND_CUTSCENE_HAT_3 }, + { "ICE_1", STREAMED_SOUND_CUTSCENE_ICE_1 }, + { "INT_A", STREAMED_SOUND_CUTSCENE_INT_A }, + { "INT_B", STREAMED_SOUND_CUTSCENE_INT_B }, + { "INT_D", STREAMED_SOUND_CUTSCENE_INT_D }, + { "INT_M", STREAMED_SOUND_CUTSCENE_INT_M }, + { "LAW_1A", STREAMED_SOUND_CUTSCENE_LAW_1A }, + { "LAW_1B", STREAMED_SOUND_CUTSCENE_LAW_1B }, + { "LAW_2A", STREAMED_SOUND_CUTSCENE_LAW_2A }, + { "LAW_2B", STREAMED_SOUND_CUTSCENE_LAW_2B }, + { "LAW_2C", STREAMED_SOUND_CUTSCENE_LAW_2C }, + { "LAW_3", STREAMED_SOUND_CUTSCENE_LAW_3 }, + { "LAW_4", STREAMED_SOUND_CUTSCENE_LAW_4 }, + { "PHIL_1", STREAMED_SOUND_CUTSCENE_PHIL_1 }, + { "PHIL_2", STREAMED_SOUND_CUTSCENE_PHIL_2 }, + { "PORN_1", STREAMED_SOUND_CUTSCENE_PORN_1 }, + { "PORN_2", STREAMED_SOUND_CUTSCENE_PORN_2 }, + { "PORN_3", STREAMED_SOUND_CUTSCENE_PORN_3 }, + { "PORN_4", STREAMED_SOUND_CUTSCENE_PORN_4 }, + { "RESC_1A", STREAMED_SOUND_CUTSCENE_RESC_1A }, + { "ROK_1", STREAMED_SOUND_CUTSCENE_ROK_1 }, + { "ROK_2", STREAMED_SOUND_CUTSCENE_ROK_2 }, + { "ROK_3A", STREAMED_SOUND_CUTSCENE_ROK_3A }, + { "STRIPA", STREAMED_SOUND_CUTSCENE_STRIPA }, + { "TAX_1", STREAMED_SOUND_CUTSCENE_TAX_1 }, + { "TEX_1", STREAMED_SOUND_CUTSCENE_TEX_1 }, + { "TEX_2", STREAMED_SOUND_CUTSCENE_TEX_2 }, + { "TEX_3", STREAMED_SOUND_CUTSCENE_TEX_3 }, + { "GSPOT", STREAMED_SOUND_CUTSCENE_GLIGHT }, + { "FIST", STREAMED_SOUND_CUTSCENE_FIST }, + { "EL_PH1", STREAMED_SOUND_CUTSCENE_ELBURRO1_PH1 }, + { "EL_PH2", STREAMED_SOUND_CUTSCENE_ELBURRO2_PH2 }, + { NULL, 0 } +}; -char CCutsceneMgr::ms_cAppendAnimName[NUMCUTSCENEOBJECTS][NAMELENGTH]; -char CCutsceneMgr::ms_cAppendObjectName[NUMCUTSCENEOBJECTS][NAMELENGTH]; -int CCutsceneMgr::ms_numAppendObjectNames; -CDirectory *CCutsceneMgr::ms_pCutsceneDir; -bool CCutsceneMgr::ms_loaded; -bool CCutsceneMgr::ms_hasFileInfo; -bool CCutsceneMgr::ms_wasCutsceneSkipped; -bool CCutsceneMgr::ms_useLodMultiplier; -bool CCutsceneMgr::ms_cutsceneProcessing; -bool CCutsceneMgr::ms_running; -bool CCutsceneMgr::ms_animLoaded; -uint32 CCutsceneMgr::ms_cutsceneLoadStatus; - -void -CCutsceneMgr::Initialise(void *dir) +int +FindCutsceneAudioTrackId(const char *szCutsceneName) { - ms_cutsceneLoadStatus = CUTSCENE_NOT_LOADED; - ms_running = false; - ms_animLoaded = false; - ms_cutsceneProcessing = false; - ms_useLodMultiplier = false; - ms_wasCutsceneSkipped = false; - ms_hasFileInfo = false; - //ms_numCutsceneObjs = 0; - //ms_loaded = false; - if (gMakeResources) { - ms_pCutsceneDir = new CDirectory(CUTSCENEDIRSIZE); - ms_pCutsceneDir->ReadDirFile("ANIM\\CUTS.DIR"); + for (int i = 0; musicNameIdAssoc[i].szTrackName; i++) { + if (!CGeneral::faststricmp(musicNameIdAssoc[i].szTrackName, szCutsceneName)) + return musicNameIdAssoc[i].iTrackId; } - else - ms_pCutsceneDir = (CDirectory*)dir; - - //numUncompressedAnims = 0; - //uncompressedAnims[0][0] = '\0'; + return -1; } -void CCutsceneMgr::Write(base::cRelocatableChunkWriter& writer) +bool CCutsceneMgr::ms_running; +bool CCutsceneMgr::ms_cutsceneProcessing; +CDirectory *CCutsceneMgr::ms_pCutsceneDir; +CCutsceneObject *CCutsceneMgr::ms_pCutsceneObjects[NUMCUTSCENEOBJECTS]; +int32 CCutsceneMgr::ms_numCutsceneObjs; +bool CCutsceneMgr::ms_loaded; +bool CCutsceneMgr::ms_animLoaded; +bool CCutsceneMgr::ms_useLodMultiplier; +char CCutsceneMgr::ms_cutsceneName[CUTSCENENAMESIZE]; +CAnimBlendAssocGroup CCutsceneMgr::ms_cutsceneAssociations; +CVector CCutsceneMgr::ms_cutsceneOffset; +float CCutsceneMgr::ms_cutsceneTimer; +bool CCutsceneMgr::ms_wasCutsceneSkipped; +uint32 CCutsceneMgr::ms_cutsceneLoadStatus; +bool CCutsceneMgr::ms_useCutsceneShadows = true; + +bool bCamLoaded; +bool bIsEverythingRemovedFromTheWorldForTheBiggestFuckoffCutsceneEver; // pls don't shrink the name :P +int32 NumberOfSavedWeapons; +eWeaponType SavedWeaponIDs[TOTAL_WEAPON_SLOTS]; +int32 SavedWeaponAmmo[TOTAL_WEAPON_SLOTS]; +char uncompressedAnims[8][32]; +uint32 numUncompressedAnims; + + +RpAtomic * +CalculateBoundingSphereRadiusCB(RpAtomic *atomic, void *data) { - writer.AllocateRaw(ms_pCutsceneDir, sizeof(*ms_pCutsceneDir), 4, false, true); - writer.AllocateRaw(ms_pCutsceneDir->entries, sizeof(CDirectory::DirectoryInfo) * ms_pCutsceneDir->numEntries, 4, false, true); - writer.AddPatch(ms_pCutsceneDir); + float radius = RpAtomicGetBoundingSphere(atomic)->radius; + RwV3d center = RpAtomicGetBoundingSphere(atomic)->center; + + for (RwFrame *frame = RpAtomicGetFrame(atomic); RwFrameGetParent(frame); frame = RwFrameGetParent(frame)) + RwV3dTransformPoints(¢er, ¢er, 1, RwFrameGetMatrix(frame)); + + float size = RwV3dLength(¢er) + radius; + if (size > *(float *)data) + *(float *)data = size; + return atomic; +} + +void +CCutsceneMgr::Initialise(void) +{ + ms_numCutsceneObjs = 0; + ms_loaded = false; + ms_wasCutsceneSkipped = false; + ms_running = false; + ms_useLodMultiplier = false; + ms_animLoaded = false; + ms_cutsceneProcessing = false; + + ms_pCutsceneDir = new CDirectory(CUTSCENEDIRSIZE); + ms_pCutsceneDir->ReadDirFile("ANIM\\CUTS.DIR"); + + numUncompressedAnims = 0; + uncompressedAnims[0][0] = '\0'; } void @@ -81,25 +181,431 @@ CCutsceneMgr::Shutdown(void) void CCutsceneMgr::LoadCutsceneData(const char *szCutsceneName) { - LoadCutsceneData_overlay(szCutsceneName); + int file; + uint32 size; + uint32 offset; + CPlayerPed *pPlayerPed; + + ms_cutsceneProcessing = true; + ms_wasCutsceneSkipped = false; + CTimer::Suspend(); + if (!bIsEverythingRemovedFromTheWorldForTheBiggestFuckoffCutsceneEver) + CStreaming::RemoveCurrentZonesModels(); + + ms_pCutsceneDir->numEntries = 0; + ms_pCutsceneDir->ReadDirFile("ANIM\\CUTS.DIR"); + + CStreaming::RemoveUnusedModelsInLoadedList(); + CGame::DrasticTidyUpMemory(true); + + strcpy(ms_cutsceneName, szCutsceneName); + + RwStream *stream; + stream = RwStreamOpen(rwSTREAMFILENAME, rwSTREAMREAD, "ANIM\\CUTS.IMG"); + assert(stream); + + // Load animations + sprintf(gString, "%s.IFP", szCutsceneName); + if (ms_pCutsceneDir->FindItem(gString, offset, size)) { + CStreaming::MakeSpaceFor(size << 11); + CStreaming::ImGonnaUseStreamingMemory(); + RwStreamSkip(stream, offset << 11); + CAnimManager::LoadAnimFile(stream, true, uncompressedAnims); + ms_cutsceneAssociations.CreateAssociations(szCutsceneName); + CStreaming::IHaveUsedStreamingMemory(); + ms_animLoaded = true; + } else { + ms_animLoaded = false; + } + RwStreamClose(stream, nil); + + // Load camera data + file = CFileMgr::OpenFile("ANIM\\CUTS.IMG", "rb"); + sprintf(gString, "%s.DAT", szCutsceneName); + if (ms_pCutsceneDir->FindItem(gString, offset, size)) { + CStreaming::ImGonnaUseStreamingMemory(); + CFileMgr::Seek(file, offset << 11, SEEK_SET); + TheCamera.LoadPathSplines(file); + CStreaming::IHaveUsedStreamingMemory(); + bCamLoaded = true; + } else { + bCamLoaded = false; + } + + CFileMgr::CloseFile(file); + + if (CGeneral::faststricmp(ms_cutsceneName, "finale")) { + DMAudio.ChangeMusicMode(MUSICMODE_CUTSCENE); + int trackId = FindCutsceneAudioTrackId(szCutsceneName); + if (trackId != -1) { + printf("Start preload audio %s\n", szCutsceneName); + DMAudio.PreloadCutSceneMusic(trackId); + printf("End preload audio %s\n", szCutsceneName); + } + } + + ms_cutsceneTimer = 0.0f; + ms_loaded = true; + ms_cutsceneOffset = CVector(0.0f, 0.0f, 0.0f); + + pPlayerPed = FindPlayerPed(); + pPlayerPed->m_pWanted->ClearQdCrimes(); + pPlayerPed->bIsVisible = false; + pPlayerPed->m_fCurrentStamina = pPlayerPed->m_fMaxStamina; + CPad::GetPad(0)->SetDisablePlayerControls(PLAYERCONTROL_CUTSCENE); + CWorld::Players[CWorld::PlayerInFocus].MakePlayerSafe(true); + + CTimer::Resume(); +} + +void +CCutsceneMgr::FinishCutscene() +{ + ms_wasCutsceneSkipped = true; + if (bCamLoaded) { + CCutsceneMgr::ms_cutsceneTimer = TheCamera.GetCutSceneFinishTime() * 0.001f; + TheCamera.FinishCutscene(); + } + + FindPlayerPed()->bIsVisible = true; + CWorld::Players[CWorld::PlayerInFocus].MakePlayerSafe(false); +} + +void +CCutsceneMgr::SetupCutsceneToStart(void) +{ + if (bCamLoaded) { + TheCamera.SetCamCutSceneOffSet(ms_cutsceneOffset); + TheCamera.TakeControlWithSpline(JUMP_CUT); + TheCamera.SetWideScreenOn(); + } + + ms_cutsceneOffset.z++; + + for (int i = ms_numCutsceneObjs - 1; i >= 0; i--) { + assert(RwObjectGetType(ms_pCutsceneObjects[i]->m_rwObject) == rpCLUMP); + if (CAnimBlendAssociation *pAnimBlendAssoc = RpAnimBlendClumpGetFirstAssociation((RpClump*)ms_pCutsceneObjects[i]->m_rwObject)) { + assert(pAnimBlendAssoc->hierarchy->sequences[0].HasTranslation()); + if (ms_pCutsceneObjects[i]->m_pAttachTo != nil) { + pAnimBlendAssoc->flags &= (~ASSOC_HAS_TRANSLATION); + } else { + if (pAnimBlendAssoc->hierarchy->IsCompressed()){ + KeyFrameTransCompressed *keyFrames = ((KeyFrameTransCompressed*)pAnimBlendAssoc->hierarchy->sequences[0].GetKeyFrameCompressed(0)); + CVector trans; + keyFrames->GetTranslation(&trans); + ms_pCutsceneObjects[i]->SetPosition(ms_cutsceneOffset + trans); + }else{ + KeyFrameTrans *keyFrames = ((KeyFrameTrans*)pAnimBlendAssoc->hierarchy->sequences[0].GetKeyFrame(0)); + ms_pCutsceneObjects[i]->SetPosition(ms_cutsceneOffset + keyFrames->translation); + } + } + pAnimBlendAssoc->SetRun(); + } else { + ms_pCutsceneObjects[i]->SetPosition(ms_cutsceneOffset); + } + CWorld::Add(ms_pCutsceneObjects[i]); + if (RwObjectGetType(ms_pCutsceneObjects[i]->m_rwObject) == rpCLUMP) { + ms_pCutsceneObjects[i]->UpdateRpHAnim(); + } + } + + CTimer::Update(); + CTimer::Update(); + ms_running = true; + ms_cutsceneTimer = 0.0f; +} + +void +CCutsceneMgr::SetCutsceneAnim(const char *animName, CObject *pObject) +{ + CAnimBlendAssociation *pNewAnim; + CAnimBlendClumpData *pAnimBlendClumpData; + + assert(RwObjectGetType(pObject->m_rwObject) == rpCLUMP); + debug("Give cutscene anim %s\n", animName); + RpAnimBlendClumpRemoveAllAssociations((RpClump*)pObject->m_rwObject); + + pNewAnim = ms_cutsceneAssociations.GetAnimation(animName); + if (!pNewAnim) { + debug("\n\nHaven't I told you I can't find the fucking animation %s\n\n\n", animName); + return; + } + + if (pNewAnim->hierarchy->IsCompressed()) + pNewAnim->hierarchy->keepCompressed = true; + + CStreaming::ImGonnaUseStreamingMemory(); + pNewAnim = ms_cutsceneAssociations.CopyAnimation(animName); + CStreaming::IHaveUsedStreamingMemory(); + + pNewAnim->SetCurrentTime(0.0f); + pNewAnim->flags |= ASSOC_HAS_TRANSLATION; + pNewAnim->flags &= ~ASSOC_RUNNING; + + pAnimBlendClumpData = *RPANIMBLENDCLUMPDATA(pObject->m_rwObject); + pAnimBlendClumpData->link.Prepend(&pNewAnim->link); + + if (pNewAnim->hierarchy->keepCompressed) + pAnimBlendClumpData->frames->flag |= AnimBlendFrameData::COMPRESSED; +} + +void +CCutsceneMgr::SetCutsceneAnimToLoop(const char* animName) +{ + ms_cutsceneAssociations.GetAnimation(animName)->flags |= ASSOC_REPEAT; +} + +CCutsceneHead * +CCutsceneMgr::AddCutsceneHead(CObject *pObject, int modelId) +{ + return nil; +} + +void UpdateCutsceneObjectBoundingBox(RpClump* clump, int modelId) +{ + if (modelId >= MI_CUTOBJ01 && modelId <= MI_CUTOBJ05) { + CColModel* pColModel = &CTempColModels::ms_colModelCutObj[modelId - MI_CUTOBJ01]; + float radius = 0.0f; + RpClumpForAllAtomics(clump, CalculateBoundingSphereRadiusCB, &radius); + pColModel->boundingSphere.radius = radius; + pColModel->boundingBox.min = CVector(-radius, -radius, -radius); + pColModel->boundingBox.max = CVector(radius, radius, radius); + } +} + +CCutsceneObject * +CCutsceneMgr::CreateCutsceneObject(int modelId) +{ + CBaseModelInfo *pModelInfo; + CColModel *pColModel; + CCutsceneObject *pCutsceneObject; + + CStreaming::ImGonnaUseStreamingMemory(); + debug("Created cutscene object %s\n", CModelInfo::GetModelInfo(modelId)->GetModelName()); + if (modelId >= MI_CUTOBJ01 && modelId <= MI_CUTOBJ05) { + pModelInfo = CModelInfo::GetModelInfo(modelId); + pColModel = &CTempColModels::ms_colModelCutObj[modelId - MI_CUTOBJ01]; + pModelInfo->SetColModel(pColModel); + UpdateCutsceneObjectBoundingBox((RpClump*)pModelInfo->GetRwObject(), modelId); + } else if (modelId >= MI_SPECIAL01 && modelId <= MI_SPECIAL21) { + pModelInfo = CModelInfo::GetModelInfo(modelId); + if (pModelInfo->GetColModel() == &CTempColModels::ms_colModelPed1) { + CColModel *colModel = new CColModel(); + colModel->boundingSphere.radius = 2.0f; + colModel->boundingSphere.center = CVector(0.0f, 0.0f, 0.0f); + pModelInfo->SetColModel(colModel, true); + } + pColModel = pModelInfo->GetColModel(); + float radius = 2.0f; + pColModel->boundingSphere.radius = radius; + pColModel->boundingBox.min = CVector(-radius, -radius, -radius); + pColModel->boundingBox.max = CVector(radius, radius, radius); + } + + pCutsceneObject = new CCutsceneObject(); + pCutsceneObject->SetModelIndex(modelId); + if (ms_useCutsceneShadows) + pCutsceneObject->CreateShadow(); + ms_pCutsceneObjects[ms_numCutsceneObjs++] = pCutsceneObject; + CStreaming::IHaveUsedStreamingMemory(); + return pCutsceneObject; } void CCutsceneMgr::DeleteCutsceneData(void) { - DeleteCutsceneData_overlay(); - if (bModelsRemovedForCutscene) - LoadEverythingBecauseCutsceneDeletedAllOfIt(); + if (!ms_loaded) return; + CTimer::Suspend(); + + ms_cutsceneProcessing = false; + ms_useLodMultiplier = false; + ms_useCutsceneShadows = true; + + for (--ms_numCutsceneObjs; ms_numCutsceneObjs >= 0; ms_numCutsceneObjs--) { + CWorld::Remove(ms_pCutsceneObjects[ms_numCutsceneObjs]); + ms_pCutsceneObjects[ms_numCutsceneObjs]->DeleteRwObject(); + delete ms_pCutsceneObjects[ms_numCutsceneObjs]; + ms_pCutsceneObjects[ms_numCutsceneObjs] = nil; + } + ms_numCutsceneObjs = 0; + + for (int i = MI_SPECIAL01; i < MI_SPECIAL21; i++) { + CBaseModelInfo *minfo = CModelInfo::GetModelInfo(i); + CColModel *colModel = minfo->GetColModel(); + if (colModel != &CTempColModels::ms_colModelPed1) { + delete colModel; + minfo->SetColModel(&CTempColModels::ms_colModelPed1); + } + } + + if (ms_animLoaded) + CAnimManager::RemoveLastAnimFile(); + + ms_animLoaded = false; + numUncompressedAnims = 0; + uncompressedAnims[0][0] = '\0'; + + if (bCamLoaded) { + TheCamera.RestoreWithJumpCut(); + TheCamera.SetWideScreenOff(); + TheCamera.DeleteCutSceneCamDataMemory(); + } + ms_running = false; + ms_loaded = false; + + FindPlayerPed()->bIsVisible = true; + CPad::GetPad(0)->SetEnablePlayerControls(PLAYERCONTROL_CUTSCENE); + CWorld::Players[CWorld::PlayerInFocus].MakePlayerSafe(false); + + if (CGeneral::faststricmp(ms_cutsceneName, "finale")) { + DMAudio.StopCutSceneMusic(); + DMAudio.ChangeMusicMode(MUSICMODE_GAME); + } + + CStreaming::ms_disableStreaming = false; + CWorld::bProcessCutsceneOnly = false; + + if(bCamLoaded) + CGame::DrasticTidyUpMemory(TheCamera.GetScreenFadeStatus() == FADE_2); + + CPad::GetPad(0)->Clear(false); + if (bIsEverythingRemovedFromTheWorldForTheBiggestFuckoffCutsceneEver) { + CStreaming::LoadInitialPeds(); + CStreaming::LoadInitialWeapons(); + CStreaming::LoadInitialVehicles(); + bIsEverythingRemovedFromTheWorldForTheBiggestFuckoffCutsceneEver = false; + + CPlayerPed *pPlayerPed = FindPlayerPed(); + for (int i = 0; i < NumberOfSavedWeapons; i++) { + int32 weaponModelId = CWeaponInfo::GetWeaponInfo(SavedWeaponIDs[i])->m_nModelId; + uint8 flags = CStreaming::ms_aInfoForModel[weaponModelId].m_flags; + CStreaming::RequestModel(weaponModelId, STREAMFLAGS_DONT_REMOVE); + CStreaming::LoadAllRequestedModels(false); + if (CWeaponInfo::GetWeaponInfo(SavedWeaponIDs[i])->m_nModel2Id != -1) { + CStreaming::RequestModel(CWeaponInfo::GetWeaponInfo(SavedWeaponIDs[i])->m_nModel2Id, 0); + CStreaming::LoadAllRequestedModels(false); + } + if (!(flags & STREAMFLAGS_DONT_REMOVE)) + CStreaming::SetModelIsDeletable(weaponModelId); + pPlayerPed->GiveWeapon(SavedWeaponIDs[i], SavedWeaponAmmo[i], true); + } + NumberOfSavedWeapons = 0; + } + + CTimer::Resume(); } void -CCutsceneMgr::RemoveEverythingBecauseCutsceneDoesntFitInMemory() +CCutsceneMgr::Update(void) { - //CStreaming::ms_disableStreaming = true; - CWorld::ClearExcitingStuffFromArea(FindPlayerCoors(), 120.0f, true); + enum { + CUTSCENE_LOADING_0 = 0, + CUTSCENE_LOADING_AUDIO, + CUTSCENE_LOADING_2, + CUTSCENE_LOADING_3, + CUTSCENE_LOADING_4 + }; + + switch (ms_cutsceneLoadStatus) { + case CUTSCENE_LOADING_AUDIO: + SetupCutsceneToStart(); + if (CGeneral::faststricmp(ms_cutsceneName, "finale")) + DMAudio.PlayPreloadedCutSceneMusic(); + ms_cutsceneLoadStatus++; + break; + case CUTSCENE_LOADING_2: + case CUTSCENE_LOADING_3: + ms_cutsceneLoadStatus++; + break; + case CUTSCENE_LOADING_4: + ms_cutsceneLoadStatus = CUTSCENE_LOADING_0; + break; + default: + break; + } + + if (!ms_running) return; + + ms_cutsceneTimer += CTimer::GetTimeStepNonClippedInSeconds(); + + for (int i = 0; i < ms_numCutsceneObjs; i++) { + int modelId = ms_pCutsceneObjects[i]->GetModelIndex(); + if (modelId >= MI_CUTOBJ01 && modelId <= MI_CUTOBJ05) + UpdateCutsceneObjectBoundingBox(ms_pCutsceneObjects[i]->GetClump(), modelId); + + if (ms_pCutsceneObjects[i]->m_pAttachTo != nil && modelId >= MI_SPECIAL01 && modelId <= MI_SPECIAL21) + UpdateCutsceneObjectBoundingBox(ms_pCutsceneObjects[i]->GetClump(), modelId); + } + + if (bCamLoaded) + if (CGeneral::faststricmp(ms_cutsceneName, "finale") && TheCamera.Cams[TheCamera.ActiveCam].Mode == CCam::MODE_FLYBY && ms_cutsceneLoadStatus == CUTSCENE_LOADING_0) { + if (CPad::GetPad(0)->GetCrossJustDown() + || (CGame::playingIntro && CPad::GetPad(0)->GetStartJustDown()) + || CPad::GetPad(0)->GetLeftMouseJustDown() + || CPad::GetPad(0)->GetEnterJustDown() + || CPad::GetPad(0)->GetCharJustDown(' ')) + FinishCutscene(); + } +} + +bool CCutsceneMgr::HasCutsceneFinished(void) { return !bCamLoaded || TheCamera.GetPositionAlongSpline() == 1.0f; } + +void +CCutsceneMgr::LoadAnimationUncompressed(char const* name) +{ + strcpy(uncompressedAnims[numUncompressedAnims], name); + + // Because that's how CAnimManager knows the end of array + ++numUncompressedAnims; + assert(numUncompressedAnims < ARRAY_SIZE(uncompressedAnims)); + uncompressedAnims[numUncompressedAnims][0] = '\0'; +} + +void +CCutsceneMgr::AttachObjectToParent(CObject *pObject, CEntity *pAttachTo) +{ + ((CCutsceneObject*)pObject)->m_pAttachmentObject = nil; + ((CCutsceneObject*)pObject)->m_pAttachTo = RpClumpGetFrame(pAttachTo->GetClump()); + + debug("Attach %s to %s\n", CModelInfo::GetModelInfo(pObject->GetModelIndex())->GetModelName(), CModelInfo::GetModelInfo(pAttachTo->GetModelIndex())->GetModelName()); +} + +void +CCutsceneMgr::AttachObjectToFrame(CObject *pObject, CEntity *pAttachTo, const char *frame) +{ + ((CCutsceneObject*)pObject)->m_pAttachmentObject = nil; + ((CCutsceneObject*)pObject)->m_pAttachTo = RpAnimBlendClumpFindFrame(pAttachTo->GetClump(), frame)->frame; + debug("Attach %s to component %s of %s\n", + CModelInfo::GetModelInfo(pObject->GetModelIndex())->GetModelName(), + frame, + CModelInfo::GetModelInfo(pAttachTo->GetModelIndex())->GetModelName()); + if (RwObjectGetType(pObject->m_rwObject) == rpCLUMP) { + RpClump *clump = (RpClump*)pObject->m_rwObject; + if (IsClumpSkinned(clump)) + RpAtomicGetBoundingSphere(GetFirstAtomic(clump))->radius *= 1.1f; + } +} + +void +CCutsceneMgr::AttachObjectToBone(CObject *pObject, CObject *pAttachTo, int bone) +{ + RpHAnimHierarchy *hanim = GetAnimHierarchyFromSkinClump(pAttachTo->GetClump()); + RwInt32 id = RpHAnimIDGetIndex(hanim, bone); + RwMatrix *matrixArray = RpHAnimHierarchyGetMatrixArray(hanim); + ((CCutsceneObject*)pObject)->m_pAttachmentObject = pAttachTo; + ((CCutsceneObject*)pObject)->m_pAttachTo = &matrixArray[id]; + debug("Attach %s to %s\n", + CModelInfo::GetModelInfo(pObject->GetModelIndex())->GetModelName(), + CModelInfo::GetModelInfo(pAttachTo->GetModelIndex())->GetModelName()); +} + +void +CCutsceneMgr::RemoveEverythingFromTheWorldForTheBiggestFuckoffCutsceneEver() +{ + CStreaming::ms_disableStreaming = true; CColStore::RemoveAllCollision(); CWorld::bProcessCutsceneOnly = true; - /*ms_cutsceneProcessing = true; + ms_cutsceneProcessing = true; for (int i = CPools::GetPedPool()->GetSize() - 1; i >= 0; i--) { CPed *pPed = CPools::GetPedPool()->GetSlot(i); @@ -120,21 +626,25 @@ CCutsceneMgr::RemoveEverythingBecauseCutsceneDoesntFitInMemory() } } } - CWorld::bProcessCutsceneOnly = true; - //bIsEverythingRemovedFromTheWorldForTheBiggestFuckoffCutsceneEver = true;*/ + + bIsEverythingRemovedFromTheWorldForTheBiggestFuckoffCutsceneEver = true; CStreaming::RemoveCurrentZonesModels(); - while (CStreaming::RemoveLoadedVehicle()); - CRadar::RemoveRadarSections(); CStreaming::SetModelIsDeletable(MI_MALE01); CStreaming::SetModelTxdIsDeletable(MI_MALE01); - CStreaming::SetModelIsDeletable(MI_COLT45); - CStreaming::SetModelTxdIsDeletable(MI_COLT45); + CStreaming::SetModelIsDeletable(MI_TAXI_D); + CStreaming::SetModelTxdIsDeletable(MI_TAXI_D); CStreaming::SetModelIsDeletable(MI_NIGHTSTICK); CStreaming::SetModelTxdIsDeletable(MI_NIGHTSTICK); CStreaming::SetModelIsDeletable(MI_MISSILE); CStreaming::SetModelTxdIsDeletable(MI_MISSILE); + CStreaming::SetModelIsDeletable(MI_POLICE); + CStreaming::SetModelTxdIsDeletable(MI_POLICE); - /*for (int i = CPools::GetDummyPool()->GetSize() - 1; i >= 0; i--) { + while (CStreaming::RemoveLoadedVehicle()) ; + + CRadar::RemoveRadarSections(); + + for (int i = CPools::GetDummyPool()->GetSize() - 1; i >= 0; i--) { CDummy* pDummy = CPools::GetDummyPool()->GetSlot(i); if (pDummy) pDummy->DeleteRwObject(); @@ -154,7 +664,7 @@ CCutsceneMgr::RemoveEverythingBecauseCutsceneDoesntFitInMemory() if (!pBuilding->bImBeingRendered) pBuilding->DeleteRwObject(); } - }*/ + } CPlayerPed *pPlayerPed = FindPlayerPed(); pPlayerPed->RemoveWeaponAnims(0, -1000.0f); @@ -169,69 +679,5 @@ CCutsceneMgr::RemoveEverythingBecauseCutsceneDoesntFitInMemory() } pPlayerPed->ClearWeapons(); - bModelsRemovedForCutscene = true; - //CGame::DrasticTidyUpMemory(true); -} - -void -CCutsceneMgr::LoadEverythingBecauseCutsceneDeletedAllOfIt() -{ - bModelsRemovedForCutscene = false; - CStreaming::LoadInitialPeds(); - CStreaming::LoadInitialWeapons(); - //CStreaming::LoadInitialVehicles(); - - CPlayerPed *pPlayerPed = FindPlayerPed(); - for (int i = 0; i < NumberOfSavedWeapons; i++) { - int32 weaponModelId = CWeaponInfo::GetWeaponInfo(SavedWeaponIDs[i])->m_nModelId; - uint8 flags = CStreaming::ms_aInfoForModel[weaponModelId].m_flags; - CStreaming::RequestModel(weaponModelId, STREAMFLAGS_DONT_REMOVE); - CStreaming::LoadAllRequestedModels(false); - if (CWeaponInfo::GetWeaponInfo(SavedWeaponIDs[i])->m_nModel2Id != -1) { - CStreaming::RequestModel(CWeaponInfo::GetWeaponInfo(SavedWeaponIDs[i])->m_nModel2Id, 0); - CStreaming::LoadAllRequestedModels(false); - } - if (!(flags & STREAMFLAGS_DONT_REMOVE)) - CStreaming::SetModelIsDeletable(weaponModelId); - pPlayerPed->GiveWeapon(SavedWeaponIDs[i], SavedWeaponAmmo[i], true); - } - NumberOfSavedWeapons = 0; -} - -void -CCutsceneMgr::Update(void) -{ - if (ms_cutsceneLoadStatus != CUTSCENE_NOT_LOADED) - Update_overlay(); -} - -void -CCutsceneMgr::LoadAnimationUncompressed(char const* name) -{ - strcpy(ms_aUncompressedCutsceneAnims[ms_numUncompressedCutsceneAnims], name); - - // Because that's how CAnimManager knows the end of array - ++ms_numUncompressedCutsceneAnims; - assert(ms_numUncompressedCutsceneAnims < ARRAY_SIZE(ms_aUncompressedCutsceneAnims)); - ms_aUncompressedCutsceneAnims[ms_numUncompressedCutsceneAnims][0] = '\0'; -} - - -bool -CCutsceneMgr::IsCutsceneSkipButtonBeingPressed() -{ - return (CPad::GetPad(0)->GetCrossJustDown() - || CPad::GetPad(0)->GetLeftMouseJustDown() - || CPad::GetPad(0)->GetEnterJustDown() - || CPad::GetPad(0)->GetCharJustDown(' ')); -} - -void -CCutsceneMgr::AppendToNextCutscene(const char *object, const char *anim) -{ - strcpy(ms_cAppendObjectName[ms_numAppendObjectNames], object); - strlwr(ms_cAppendObjectName[ms_numAppendObjectNames]); - strcpy(ms_cAppendAnimName[ms_numAppendObjectNames], anim); - strlwr(ms_cAppendAnimName[ms_numAppendObjectNames]); - ms_numAppendObjectNames++; + CGame::DrasticTidyUpMemory(true); } \ No newline at end of file diff --git a/src/animation/CutsceneMgr.h b/src/animation/CutsceneMgr.h index 7c749d4..51ef6c0 100644 --- a/src/animation/CutsceneMgr.h +++ b/src/animation/CutsceneMgr.h @@ -1,69 +1,14 @@ #pragma once #include "CutsceneObject.h" +#define CUTSCENENAMESIZE 8 class CDirectory; class CAnimBlendAssocGroup; class CCutsceneHead; -enum { - CUTSCENE_NOT_LOADED = 0, - CUTSCENE_LOADING, - CUTSCENE_LOADED, -}; - -enum { - CUTSCENE_PLAYING_0 = 0, - CUTSCENE_STARTED, - CUTSCENE_PLAYING_2, - CUTSCENE_PLAYING_3, - CUTSCENE_PLAYING_4, -}; - -enum -{ - NAMELENGTH = 32, - NUM_CUTS_PARTICLE_EFFECTS = 8, - NUM_CUTS_MAX_TEXTS = 64, - NUM_CUTS_UNCOMPRESSED_ANIMS = 8, - TEXT_KEY_SIZE = 8, - CUTSCENENAMESIZE = 8 -}; - -struct sToHideItem -{ - float x, y, z; - char name[NAMELENGTH]; -}; - -// TODO: figure out from SA -// this is unused in LCS anyway -struct sParticleEffect -{ - char name[NAMELENGTH]; - bool bPlayed; // ?? - int iTime; - int unk1; - int unk2; - char name2[NAMELENGTH]; - float x; - float y; - float z; - float unkX; - float unkY; - float unkZ; - bool unk10; - bool unk11; -}; - -struct sAttachInfo -{ - int attachToId, objectId, boneId; -}; - class CCutsceneMgr { - static bool ms_running; static CCutsceneObject *ms_pCutsceneObjects[NUMCUTSCENEOBJECTS]; @@ -79,55 +24,10 @@ class CCutsceneMgr static bool ms_wasCutsceneSkipped; static bool ms_cutsceneProcessing; static bool ms_useCutsceneShadows; - static bool ms_hasFileInfo; - static int ms_numLoadObjectNames; - - static char ms_cAppendAnimName[NUMCUTSCENEOBJECTS][NAMELENGTH]; - static char ms_cAppendObjectName[NUMCUTSCENEOBJECTS][NAMELENGTH]; - static int ms_numAppendObjectNames; public: static CDirectory *ms_pCutsceneDir; static uint32 ms_cutsceneLoadStatus; - static bool mCutsceneSkipFading; - static int mCutsceneSkipFadeTime; - - static float m_fPrevCarDensity; - static float m_fPrevPedDensity; - - static bool m_PrevExtraColourOn; - static uint32 m_PrevExtraColour; - - static uint32 ms_iNumParticleEffects; - static sParticleEffect ms_pParticleEffects[NUM_CUTS_PARTICLE_EFFECTS]; - - static sToHideItem ms_crToHideItems[NUMCUTSCENEOBJECTS]; - static uint32 ms_iNumHiddenEntities; - static CEntity *ms_pHiddenEntities[NUMCUTSCENEOBJECTS]; - - static int ms_numAttachObjectToBones; - static bool ms_bRepeatObject[NUMCUTSCENEOBJECTS]; - - static sAttachInfo ms_iAttachObjectToBone[NUMCUTSCENEOBJECTS]; - - static uint32 ms_numUncompressedCutsceneAnims; - - static char ms_aUncompressedCutsceneAnims[NUM_CUTS_UNCOMPRESSED_ANIMS][NAMELENGTH]; - - static uint32 ms_iTextDuration[NUM_CUTS_MAX_TEXTS]; - static uint32 ms_iTextStartTime[NUM_CUTS_MAX_TEXTS]; - static char ms_cTextOutput[NUM_CUTS_MAX_TEXTS][TEXT_KEY_SIZE]; - - static uint32 ms_currTextOutput; - static uint32 ms_numTextOutput; - static uint32 ms_iModelIndex[NUMCUTSCENEOBJECTS]; - - static char ms_cLoadAnimName[NUMCUTSCENEOBJECTS][NAMELENGTH]; - static char ms_cLoadObjectName[NUMCUTSCENEOBJECTS][NAMELENGTH]; - - static uint32 ms_cutscenePlayStatus; - - static void StartCutscene(); static void StartCutsceneProcessing() { ms_cutsceneProcessing = true; } static bool IsRunning(void) { return ms_running; } static bool HasLoaded(void) { return ms_loaded; } @@ -135,19 +35,19 @@ public: static bool WasCutsceneSkipped(void) { return ms_wasCutsceneSkipped; } static bool UseLodMultiplier(void) { return ms_useLodMultiplier; } static CCutsceneObject* GetCutsceneObject(int id) { return ms_pCutsceneObjects[id]; } - static uint32 GetCutsceneTimeInMilleseconds(void); + static int GetCutsceneTimeInMilleseconds(void) { return 1000.0f * ms_cutsceneTimer; } static char *GetCutsceneName(void) { return ms_cutsceneName; } static void SetCutsceneOffset(const CVector& vec) { ms_cutsceneOffset = vec; } static bool HasCutsceneFinished(void); - static void Initialise(void *dir = nil); + static void Initialise(void); static void Shutdown(void); static void LoadCutsceneData(const char *szCutsceneName); static void FinishCutscene(void); static void SetupCutsceneToStart(void); static void SetCutsceneAnim(const char *animName, CObject *pObject); static void SetCutsceneAnimToLoop(const char *animName); - static CCutsceneHead *SetHeadAnim(const char*, CObject *pObject); + static CCutsceneHead *AddCutsceneHead(CObject *pObject, int modelId); static CCutsceneObject *CreateCutsceneObject(int modelId); static void DeleteCutsceneData(void); static void LoadAnimationUncompressed(char const*); @@ -156,24 +56,6 @@ public: static void AttachObjectToParent(CObject *pObject, CEntity *pAttachTo); static void AttachObjectToFrame(CObject *pObject, CEntity *pAttachTo, const char *frame); static void AttachObjectToBone(CObject *pObject, CObject *pAttachTo, int frame); - static void RemoveEverythingBecauseCutsceneDoesntFitInMemory(); - static void LoadEverythingBecauseCutsceneDeletedAllOfIt(); + static void RemoveEverythingFromTheWorldForTheBiggestFuckoffCutsceneEver(); static void DisableCutsceneShadows() { ms_useCutsceneShadows = false; } - - - static void LoadCutsceneData_overlay(const char* szCutsceneName); - static bool LoadCutsceneData_postload(bool b = false); - static void Update_overlay(void); - static void DeleteCutsceneData_overlay(void); - - static bool IsCutsceneSkipButtonBeingPressed(); - static void AppendToNextCutscene(const char *object, const char *anim); - - static void LoadCutsceneData_preload(); - static void LoadCutsceneData_loading(); - static void HideRequestedObjects(); - - static bool PresubBodge(); - - static void Write(base::cRelocatableChunkWriter& writer); }; diff --git a/src/animation/CutsceneMgr_overlay.cpp b/src/animation/CutsceneMgr_overlay.cpp deleted file mode 100644 index 5fcb752..0000000 --- a/src/animation/CutsceneMgr_overlay.cpp +++ /dev/null @@ -1,1030 +0,0 @@ -#include "common.h" -#include "relocatableChunk.h" - -#include "General.h" -#include "CutsceneMgr.h" -#include "Directory.h" -#include "Camera.h" -#include "Streaming.h" -#include "FileMgr.h" -#include "main.h" -#include "AnimManager.h" -#include "AnimBlendAssociation.h" -#include "AnimBlendAssocGroup.h" -#include "AnimBlendClumpData.h" -#include "Pad.h" -#include "DMAudio.h" -#include "World.h" -#include "PlayerPed.h" -#include "Wanted.h" -#include "RpAnimBlend.h" -#include "ModelIndices.h" -#include "TempColModels.h" -#include "ColStore.h" -#include "Radar.h" -#include "Pools.h" -#include "Messages.h" -#include "Population.h" -#include "CarCtrl.h" -#include "Timecycle.h" -#include "Rubbish.h" -#include "Text.h" -#include "Hud.h" -#include "crossplatform.h" - -const struct { - const char *szTrackName; - int iTrackId; -} musicNameIdAssoc[] = { - { "BIKER", STREAMED_SOUND_CUTSCENE_BIKER }, - { "BONEVOY", STREAMED_SOUND_CUTSCENE_BONEVOY }, - { "CAMPAIN", STREAMED_SOUND_CUTSCENE_CAMPAIN }, - { "CASHCHP", STREAMED_SOUND_CUTSCENE_CASHCHP }, - { "CONTBAN", STREAMED_SOUND_CUTSCENE_CONTBAN }, - { "CRAZY69", STREAMED_SOUND_CUTSCENE_CRAZY69 }, - { "CUTTEST", STREAMED_SOUND_CUTSCENE_CUTTEST }, - { "DEADLY", STREAMED_SOUND_CUTSCENE_DEADLY }, - { "DONPROB", STREAMED_SOUND_CUTSCENE_DONPROB }, - { "DRIVNMR", STREAMED_SOUND_CUTSCENE_DRIVNMR }, - { "ELECTON", STREAMED_SOUND_CUTSCENE_ELECTON }, - { "FINAL", STREAMED_SOUND_CUTSCENE_FINAL }, - { "FINAL_2", STREAMED_SOUND_CUTSCENE_FINAL_2 }, - { "HOMSWET", STREAMED_SOUND_CUTSCENE_HOMSWET }, - { "HOTWHEL", STREAMED_SOUND_CUTSCENE_HOTWHEL }, - { "KIDNAPP", STREAMED_SOUND_CUTSCENE_KIDNAPP }, - { "LANDGRB", STREAMED_SOUND_CUTSCENE_LANDGRB }, - { "MORGUE", STREAMED_SOUND_CUTSCENE_MORGUE }, - { "OVERDOS", STREAMED_SOUND_CUTSCENE_OVERDOS }, - { "RUFJUST", STREAMED_SOUND_CUTSCENE_RUFJUST }, - { "SAYONAR", STREAMED_SOUND_CUTSCENE_SAYONAR }, - { "SICILAN", STREAMED_SOUND_CUTSCENE_SICILAN }, - { "THEOFER", STREAMED_SOUND_CUTSCENE_THEOFER }, - { "INTRO", STREAMED_SOUND_CUTSCENE_INTRO }, - { "FINALE", STREAMED_SOUND_CUTSCENE_FINALE }, - { NULL, 0 } -}; - -int -FindCutsceneAudioTrackId(const char *szCutsceneName) -{ - debug("looking for cutscene music track\n"); - for (int i = 0; musicNameIdAssoc[i].szTrackName; i++) { - if (!CGeneral::faststricmp(musicNameIdAssoc[i].szTrackName, szCutsceneName)) { - debug("HUZZA! FOUND cutscene music track\n"); - return musicNameIdAssoc[i].iTrackId; - } - } - debug("NOT FOUND cutscene music track\n"); - return -1; -} - -const char * -GetNextLine(const char *buf, char *line, uint32 lineSize) -{ - while (*buf == '\n' || *buf == '\r') - buf++; - - if (*buf == '\0') - return nil; - - // size check never happened, eh? - while (*buf != '\n' && *buf != '\r') { - if (*buf == '\0') - break; - *(line++) = *(buf++); - } - *(line++) = '\0'; - return buf; -} - -RpAtomic* -CalculateBoundingSphereRadiusCB(RpAtomic* atomic, void* data) -{ - float radius = RpAtomicGetBoundingSphere(atomic)->radius; - RwV3d center = RpAtomicGetBoundingSphere(atomic)->center; - - for (RwFrame* frame = RpAtomicGetFrame(atomic); RwFrameGetParent(frame); frame = RwFrameGetParent(frame)) - RwV3dTransformPoints(¢er, ¢er, 1, RwFrameGetMatrix(frame)); - - float size = RwV3dLength(¢er) + radius; - if (size > *(float*)data) - *(float*)data = size; - return atomic; -} - -void UpdateCutsceneObjectBoundingBox(RpClump* clump, int modelId) -{ - if (modelId >= MI_CUTOBJ01 && modelId <= MI_CUTOBJ10) { - CColModel* pColModel = &CTempColModels::ms_colModelCutObj[modelId - MI_CUTOBJ01]; - float oldRadius = pColModel->boundingSphere.radius; - float radius = 0.0f; - RpClumpForAllAtomics(clump, CalculateBoundingSphereRadiusCB, &radius); - if (oldRadius < 20.0f) oldRadius = 20.0f; - if (oldRadius < radius) { - debug("Limiting cutscene object radius %f\n", oldRadius); - radius = oldRadius; - } - radius = oldRadius; - pColModel->boundingSphere.radius = radius; - pColModel->boundingBox.min = CVector(-radius, -radius, -radius); - pColModel->boundingBox.max = CVector(radius, radius, radius); - } -} - -bool bCamLoaded; -bool bCamFading; - -// yes, they've actually doubled this thing here, thus this one is unused -static bool bModelsRemovedForCutscene; -static int32 NumberOfSavedWeapons; -static eWeaponType SavedWeaponIDs[TOTAL_WEAPON_SLOTS]; -static int32 SavedWeaponAmmo[TOTAL_WEAPON_SLOTS]; - -enum -{ - CUTMODEL_PLAYER = 1, - CUTMODEL_SIMPLE, - CUTMODEL_REPEATED, -}; - -bool CCutsceneMgr::ms_useCutsceneShadows = true; -bool CCutsceneMgr::mCutsceneSkipFading; -int CCutsceneMgr::mCutsceneSkipFadeTime; -float CCutsceneMgr::m_fPrevCarDensity; -float CCutsceneMgr::m_fPrevPedDensity; -bool CCutsceneMgr::m_PrevExtraColourOn; -uint32 CCutsceneMgr::m_PrevExtraColour; -uint32 CCutsceneMgr::ms_iNumParticleEffects; -sParticleEffect CCutsceneMgr::ms_pParticleEffects[NUM_CUTS_PARTICLE_EFFECTS]; -sToHideItem CCutsceneMgr::ms_crToHideItems[NUMCUTSCENEOBJECTS]; -uint32 CCutsceneMgr::ms_iNumHiddenEntities; -CEntity *CCutsceneMgr::ms_pHiddenEntities[NUMCUTSCENEOBJECTS]; -int CCutsceneMgr::ms_numAttachObjectToBones; -bool CCutsceneMgr::ms_bRepeatObject[NUMCUTSCENEOBJECTS]; -sAttachInfo CCutsceneMgr::ms_iAttachObjectToBone[NUMCUTSCENEOBJECTS]; -uint32 CCutsceneMgr::ms_numUncompressedCutsceneAnims; -char CCutsceneMgr::ms_aUncompressedCutsceneAnims[NUM_CUTS_UNCOMPRESSED_ANIMS][NAMELENGTH]; -uint32 CCutsceneMgr::ms_iTextDuration[NUM_CUTS_MAX_TEXTS]; -uint32 CCutsceneMgr::ms_iTextStartTime[NUM_CUTS_MAX_TEXTS]; -char CCutsceneMgr::ms_cTextOutput[NUM_CUTS_MAX_TEXTS][TEXT_KEY_SIZE]; -uint32 CCutsceneMgr::ms_currTextOutput; -uint32 CCutsceneMgr::ms_numTextOutput; -uint32 CCutsceneMgr::ms_iModelIndex[NUMCUTSCENEOBJECTS]; -char CCutsceneMgr::ms_cLoadAnimName[NUMCUTSCENEOBJECTS][NAMELENGTH]; -char CCutsceneMgr::ms_cLoadObjectName[NUMCUTSCENEOBJECTS][NAMELENGTH]; -int CCutsceneMgr::ms_numLoadObjectNames; -CCutsceneObject *CCutsceneMgr::ms_pCutsceneObjects[NUMCUTSCENEOBJECTS]; -int32 CCutsceneMgr::ms_numCutsceneObjs; -CVector CCutsceneMgr::ms_cutsceneOffset; -float CCutsceneMgr::ms_cutsceneTimer; -uint32 CCutsceneMgr::ms_cutscenePlayStatus; -CAnimBlendAssocGroup CCutsceneMgr::ms_cutsceneAssociations; -char CCutsceneMgr::ms_cutsceneName[CUTSCENENAMESIZE]; - -CCutsceneObject * -CCutsceneMgr::CreateCutsceneObject(int modelId) -{ - CBaseModelInfo *pModelInfo; - CColModel *pColModel; - CCutsceneObject *pCutsceneObject; - - CStreaming::ImGonnaUseStreamingMemory(); - debug("Created cutscene object %s\n", CModelInfo::GetModelInfo(modelId)->GetModelName()); - if (modelId >= MI_CUTOBJ01 && modelId <= MI_CUTOBJ10) { - pModelInfo = CModelInfo::GetModelInfo(modelId); - pColModel = &CTempColModels::ms_colModelCutObj[modelId - MI_CUTOBJ01]; - pModelInfo->SetColModel(pColModel); - UpdateCutsceneObjectBoundingBox((RpClump*)pModelInfo->GetRwObject(), modelId); - } - - pCutsceneObject = new CCutsceneObject(); - pCutsceneObject->SetModelIndex(modelId); - if (ms_useCutsceneShadows) - pCutsceneObject->CreateShadow(); - ms_pCutsceneObjects[ms_numCutsceneObjs++] = pCutsceneObject; - CStreaming::IHaveUsedStreamingMemory(); - return pCutsceneObject; -} - -void -CCutsceneMgr::SetCutsceneAnim(const char *animName, CObject *pObject) -{ - CAnimBlendAssociation *pNewAnim; - CAnimBlendClumpData *pAnimBlendClumpData; - - debug("Give cutscene anim %s\n", animName); - /*assert(RwObjectGetType(pObject->m_rwObject) == rpCLUMP); - debug("Give cutscene anim %s\n", animName); - RpAnimBlendClumpRemoveAllAssociations((RpClump*)pObject->m_rwObject); - - pNewAnim = ms_cutsceneAssociations.GetAnimation(animName); - if (!pNewAnim) { - debug("\n\nHaven't I told you I can't find the fucking animation %s\n\n\n", animName); - return; - } - - if (pNewAnim->hierarchy->IsCompressed()) - pNewAnim->hierarchy->keepCompressed = true;*/ - - CStreaming::ImGonnaUseStreamingMemory(); - pNewAnim = ms_cutsceneAssociations.CopyAnimation(animName); - CStreaming::IHaveUsedStreamingMemory(); - - pNewAnim->SetCurrentTime(0.0f); - pNewAnim->flags |= ASSOC_HAS_TRANSLATION; - pNewAnim->flags &= ~ASSOC_RUNNING; - - pAnimBlendClumpData = *RPANIMBLENDCLUMPDATA(pObject->m_rwObject); - pAnimBlendClumpData->link.Prepend(&pNewAnim->link); - - //if (pNewAnim->hierarchy->keepCompressed) - // pAnimBlendClumpData->frames->flag |= AnimBlendFrameData::COMPRESSED; -} - -void -CCutsceneMgr::SetCutsceneAnimToLoop(const char* animName) -{ - ms_cutsceneAssociations.GetAnimation(animName)->flags |= ASSOC_REPEAT; -} - -CCutsceneHead* -CCutsceneMgr::SetHeadAnim(const char*, CObject* pObject) -{ - return nil; -} - -void -CCutsceneMgr::StartCutscene() -{ - ms_cutscenePlayStatus = CUTSCENE_STARTED; - if (bCamLoaded) { - TheCamera.SetWideScreenOn(); - CHud::SetHelpMessage(nil, true); - } -} - -void -CCutsceneMgr::SetupCutsceneToStart(void) -{ - if (bCamLoaded) { - TheCamera.SetCamCutSceneOffSet(ms_cutsceneOffset); - TheCamera.TakeControlWithSpline(JUMP_CUT); - TheCamera.SetWideScreenOn(); - CHud::SetHelpMessage(nil, true); - } - - ms_cutsceneOffset.z += 1.0f; - - for (int i = ms_numCutsceneObjs - 1; i >= 0; i--) { - assert(RwObjectGetType(ms_pCutsceneObjects[i]->m_rwObject) == rpCLUMP); - if (CAnimBlendAssociation *pAnimBlendAssoc = RpAnimBlendClumpGetFirstAssociation((RpClump*)ms_pCutsceneObjects[i]->m_rwObject)) { - assert(pAnimBlendAssoc->hierarchy->sequences[0].HasTranslation()); - if (ms_pCutsceneObjects[i]->m_pAttachTo != nil) { - pAnimBlendAssoc->flags &= (~ASSOC_HAS_TRANSLATION); - } else { - if (pAnimBlendAssoc->hierarchy->IsCompressed()){ - KeyFrameTransCompressed *keyFrames = ((KeyFrameTransCompressed*)pAnimBlendAssoc->hierarchy->sequences[0].GetKeyFrameCompressed(0)); - CVector trans; - keyFrames->GetTranslation(&trans); - ms_pCutsceneObjects[i]->SetPosition(ms_cutsceneOffset + trans); - }else{ - KeyFrameTrans *keyFrames = ((KeyFrameTrans*)pAnimBlendAssoc->hierarchy->sequences[0].GetKeyFrame(0)); - ms_pCutsceneObjects[i]->SetPosition(ms_cutsceneOffset + keyFrames->translation); - } - } - pAnimBlendAssoc->SetRun(); - } else { - ms_pCutsceneObjects[i]->SetPosition(ms_cutsceneOffset); - } - CWorld::Add(ms_pCutsceneObjects[i]); - if (RwObjectGetType(ms_pCutsceneObjects[i]->m_rwObject) == rpCLUMP) { - ms_pCutsceneObjects[i]->UpdateRpHAnim(); - } - } - - CTimer::Update(); - CTimer::Update(); - ms_cutsceneTimer = 0.0f; - ms_running = true; - mCutsceneSkipFadeTime = 0; - mCutsceneSkipFading = 0; -} - -void -CCutsceneMgr::FinishCutscene() -{ - if (bCamLoaded) { - ms_cutsceneTimer = TheCamera.GetCutSceneFinishTime() * 0.001f; - TheCamera.FinishCutscene(); - } - - FindPlayerPed()->bIsVisible = true; - CWorld::Players[CWorld::PlayerInFocus].MakePlayerSafe(false); -} - -uint32 -CCutsceneMgr::GetCutsceneTimeInMilleseconds(void) -{ - return 1000.0f * ms_cutsceneTimer; -} - -bool CCutsceneMgr::HasCutsceneFinished(void) -{ - return !bCamLoaded || TheCamera.GetPositionAlongSpline() == 1.0f; -} - -void -CCutsceneMgr::AttachObjectToBone(CObject *pObject, CObject *pAttachTo, int bone) -{ - RpHAnimHierarchy *hanim = GetAnimHierarchyFromSkinClump(pAttachTo->GetClump()); - RwInt32 id = RpHAnimIDGetIndex(hanim, bone); - RwMatrix *matrixArray = RpHAnimHierarchyGetMatrixArray(hanim); - ((CCutsceneObject*)pObject)->m_pAttachmentObject = pAttachTo; - ((CCutsceneObject*)pObject)->m_pAttachTo = &matrixArray[id]; - //debug("Attach %s to %s\n", - // CModelInfo::GetModelInfo(pObject->GetModelIndex())->GetModelName(), - // CModelInfo::GetModelInfo(pAttachTo->GetModelIndex())->GetModelName()); -} - -void -CCutsceneMgr::AttachObjectToFrame(CObject *pObject, CEntity *pAttachTo, const char *frame) -{ - ((CCutsceneObject*)pObject)->m_pAttachmentObject = nil; - ((CCutsceneObject*)pObject)->m_pAttachTo = RpAnimBlendClumpFindFrame(pAttachTo->GetClump(), frame)->frame; - //debug("Attach %s to component %s of %s\n", - // CModelInfo::GetModelInfo(pObject->GetModelIndex())->GetModelName(), - // frame, - // CModelInfo::GetModelInfo(pAttachTo->GetModelIndex())->GetModelName()); - if (RwObjectGetType(pObject->m_rwObject) == rpCLUMP) { - RpClump *clump = (RpClump*)pObject->m_rwObject; - if (IsClumpSkinned(clump)) - RpAtomicGetBoundingSphere(GetFirstAtomic(clump))->radius *= 1.1f; - } -} - -void -CCutsceneMgr::AttachObjectToParent(CObject *pObject, CEntity *pAttachTo) -{ - ((CCutsceneObject*)pObject)->m_pAttachmentObject = nil; - ((CCutsceneObject*)pObject)->m_pAttachTo = RpClumpGetFrame(pAttachTo->GetClump()); - - //debug("Attach %s to %s\n", CModelInfo::GetModelInfo(pObject->GetModelIndex())->GetModelName(), CModelInfo::GetModelInfo(pAttachTo->GetModelIndex())->GetModelName()); -} - -void -CCutsceneMgr::HideRequestedObjects(void) -{ - int num = ms_iNumHiddenEntities; - ms_iNumHiddenEntities = 0; - - for (int i = 0; i < num; i++) { - int id; - if (CModelInfo::GetModelInfo(ms_crToHideItems[i].name, &id)) { - CVector pos(ms_crToHideItems[i].x, ms_crToHideItems[i].y, ms_crToHideItems[i].z); - int16 foundEntities; - CEntity* pEntities[32]; - CWorld::FindObjectsOfTypeInRange(id, pos, 1.5f, true, &foundEntities, 32, pEntities, true, false, false, true, true); - for (int j = 0; i < foundEntities; j++) { - if (pEntities[j]->bIsVisible) { - ms_pHiddenEntities[ms_iNumHiddenEntities] = pEntities[j]; - ms_pHiddenEntities[ms_iNumHiddenEntities]->RegisterReference(&ms_pHiddenEntities[ms_iNumHiddenEntities]); - ms_pHiddenEntities[ms_iNumHiddenEntities]->bIsVisible = false; - ms_iNumHiddenEntities++; - } - } - } - } -} - -bool -CCutsceneMgr::PresubBodge() -{ - return true; -} - -void -CCutsceneMgr::LoadCutsceneData_loading() -{ - for (int i = 0; i < ms_numLoadObjectNames; i++) { - int mi = ms_iModelIndex[i]; - if (mi >= MI_CUTOBJ01 && mi <= MI_CUTOBJ10) { - if (CStreaming::ms_aInfoForModel[mi].m_loadState != STREAMSTATE_LOADED) - return; - } - } - - if (!LoadCutsceneData_postload()) - return; - - CCutsceneObject* cutsceneObject; - for (int i = 0; i < ms_numLoadObjectNames; i++) { - if (!ms_bRepeatObject[i]) - cutsceneObject = CreateCutsceneObject(ms_iModelIndex[i]); - if (ms_cLoadAnimName[i][0] != '\0') - SetCutsceneAnim(ms_cLoadAnimName[i], cutsceneObject); - } - - for (int i = 0; i < ms_numAttachObjectToBones; i++) { - int objectId = ms_iAttachObjectToBone[i].objectId; - int attachToId = ms_iAttachObjectToBone[i].attachToId; - int bone = ms_iAttachObjectToBone[i].boneId; - AttachObjectToBone(ms_pCutsceneObjects[objectId], ms_pCutsceneObjects[attachToId], bone); - } -} - -bool -CCutsceneMgr::LoadCutsceneData_postload(bool b) -{ - RwStream *stream = nil; - uint32 size; - uint32 offset; - - bool result; - - CMessages::ClearThisBigPrintNow(0); - CPopulation::PedDensityMultiplier = 0.0f; - CCarCtrl::CarDensityMultiplier = 0.0f; - CStreaming::ms_disableStreaming = false; - if (b) - { - sprintf(gString, "%s.IFP", ms_cutsceneName); - result = false; - ms_animLoaded = false; - RwStreamClose(stream, nil); // umm... - sprintf(gString, "%s.DAT", ms_cutsceneName); - bCamLoaded = false; - } else { - - stream = RwStreamOpen(rwSTREAMFILENAME, rwSTREAMREAD, "ANIM\\CUTS.IMG"); - sprintf(gString, "%s.IFP", ms_cutsceneName); - if (stream) { - if (ms_pCutsceneDir->FindItem(gString, offset, size)) - { - CStreaming::MakeSpaceFor(size << 11); - CStreaming::ImGonnaUseStreamingMemory(); - RwStreamSkip(stream, offset << 11); - CAnimManager::LoadAnimFile(stream, true, ms_aUncompressedCutsceneAnims); - ms_cutsceneAssociations.CreateAssociations(ms_cutsceneName, ms_cLoadAnimName[0], ms_cLoadObjectName[0], NAMELENGTH); - CStreaming::IHaveUsedStreamingMemory(); - ms_animLoaded = true; - } - else - { - ms_animLoaded = false; - } - RwStreamClose(stream, nil); - - int file = CFileMgr::OpenFile("ANIM\\CUTS.IMG", "rb"); - sprintf(gString, "%s.DAT", ms_cutsceneName); - if (file) { - if (ms_pCutsceneDir->FindItem(gString, offset, size)) - { - CStreaming::ImGonnaUseStreamingMemory(); - CFileMgr::Seek(file, offset << 11, 0); - TheCamera.LoadPathSplines(file); - CStreaming::IHaveUsedStreamingMemory(); - bCamLoaded = true; - } - else - { - bCamLoaded = false; - } - result = true; - CFileMgr::CloseFile(file); - } - else - { - bCamLoaded = false; - result = true; - } - } - else - { - result = false; - ms_animLoaded = false; - RwStreamClose(stream, nil); - sprintf(gString, "%s.DAT", ms_cutsceneName); - bCamLoaded = false; - } - } - ms_cutsceneLoadStatus = CUTSCENE_LOADED; - ms_cutsceneTimer = 0.0f; - FindPlayerPed()->m_pWanted->ClearQdCrimes(); - return result; -} - -void -CCutsceneMgr::LoadCutsceneData_overlay(const char *szCutsceneName) -{ - CTimer::Suspend(); - ms_cutsceneProcessing = true; - ms_wasCutsceneSkipped = false; - if (!bModelsRemovedForCutscene) - CStreaming::RemoveCurrentZonesModels(); - - ms_pCutsceneDir->numEntries = 0; - ms_pCutsceneDir->ReadDirFile("ANIM\\CUTS.DIR"); - - CStreaming::RemoveUnusedModelsInLoadedList(); - CGame::DrasticTidyUpMemory(true); - - strcpy(ms_cutsceneName, szCutsceneName); - - LoadCutsceneData_preload(); - CTimer::Resume(); -} - -void -CCutsceneMgr::LoadCutsceneData_preload(void) -{ - uint32 size; - uint32 offset; - CPlayerPed* pPlayerPed; - if (CGeneral::faststricmp(ms_cutsceneName, "finale")) { - DMAudio.ChangeMusicMode(MUSICMODE_CUTSCENE); - int trackId = FindCutsceneAudioTrackId(ms_cutsceneName); - if (trackId != -1) { - printf("Start preload audio %s\n", ms_cutsceneName); - DMAudio.PreloadCutSceneMusic(trackId); - printf("End preload audio %s\n", ms_cutsceneName); - } - } - - for (int i = MI_CUTOBJ01; i <= MI_CUTOBJ10; i++) { - if (CModelInfo::GetModelInfo(i)->GetNumRefs() <= 0) { - if (CStreaming::ms_aInfoForModel[i].m_loadState == STREAMSTATE_LOADED) { - CStreaming::RemoveModel(i); - CModelInfo::GetModelInfo(i)->SetModelName("&*%"); - } - } - } - - m_PrevExtraColour = CTimeCycle::m_ExtraColour; - m_PrevExtraColourOn = CTimeCycle::m_bExtraColourOn != 0; - m_fPrevPedDensity = CPopulation::PedDensityMultiplier; - m_fPrevCarDensity = CCarCtrl::CarDensityMultiplier; - ms_cutsceneOffset = CVector(0.0f, 0.0f, 0.0f); - ms_numTextOutput = 0; - ms_currTextOutput = 0; - ms_numLoadObjectNames = 0; - ms_numUncompressedCutsceneAnims = 0; - ms_numAttachObjectToBones = 0; - ms_iNumHiddenEntities = 0; - bCamFading = false; - ms_iNumParticleEffects = 0; - - for (int i = 0; i < NUM_CUTS_UNCOMPRESSED_ANIMS; i++) - ms_aUncompressedCutsceneAnims[i][0] = '\0'; - - memset(ms_iModelIndex, 0, sizeof(ms_iModelIndex)); - CRubbish::SetVisibility(false); - - pPlayerPed = FindPlayerPed(); - pPlayerPed->m_pWanted->ClearQdCrimes(); - pPlayerPed->bIsVisible = false; - pPlayerPed->m_fCurrentStamina = pPlayerPed->m_fMaxStamina; - CPad::GetPad(0)->SetDisablePlayerControls(PLAYERCONTROL_CUTSCENE); - CWorld::Players[CWorld::PlayerInFocus].MakePlayerSafe(true); - - sprintf(gString, "%s.CUT", ms_cutsceneName); - if (!ms_pCutsceneDir->FindItem(gString, offset, size)) { - LoadCutsceneData_postload(); - return; - } - - size <<= 11; - offset <<= 11; - - char *cutsBuf = new char[size]; - - RwStream* stream = RwStreamOpen(rwSTREAMFILENAME, rwSTREAMREAD, "ANIM\\CUTS.IMG"); - - if (stream) { - RwStreamSkip(stream, offset); - RwStreamRead(stream, cutsBuf, size); - RwStreamClose(stream, nil); - } - - enum - { - CUT_NONE = 0, - CUT_INFO, - CUT_MODEL, - CUT_TEXT, - CUT_UNCOMPRESS, - CUT_ATTACH, - CUT_REMOVE, - CUT_PARTICLE_EFFECT, - CUT_EXTRA_COLOR, - }; - - int cutSection = CUT_NONE; - bool bExtraColSet = false; - - char line[1024]; - const char *pCurLine = cutsBuf; - - while (true) - { - pCurLine = GetNextLine(pCurLine, line, sizeof(line)); - if (pCurLine) { - if (line[0] == '\0') - break; - - if (strcmp(line, "end") == 0) { - cutSection = CUT_NONE; - continue; - } - - switch (cutSection) - { - case CUT_NONE: - if (strcmp(line, "info") == 0) - cutSection = CUT_INFO; - if (strcmp(line, "model") == 0) - cutSection = CUT_MODEL; - if (strcmp(line, "text") == 0) - cutSection = CUT_TEXT; - if (strcmp(line, "uncompress") == 0) - cutSection = CUT_UNCOMPRESS; - if (strcmp(line, "attach") == 0) - cutSection = CUT_ATTACH; - if (strcmp(line, "remove") == 0) - cutSection = CUT_REMOVE; - if (strcmp(line, "peffect") == 0) - cutSection = CUT_PARTICLE_EFFECT; - if (strcmp(line, "extracol") == 0) - cutSection = CUT_EXTRA_COLOR; - break; - case CUT_INFO: - { - if (strncmp(line, "offset", 6) == 0) { - float x, y, z; - sscanf(line+7, "%f %f %f", &x, &y, &z); - FindPlayerPed(); // called for some sa check in here - ms_cutsceneOffset = CVector(x, y, z); - } - break; - } - case CUT_MODEL: - { - char objectName[NAMELENGTH]; - char animName[NAMELENGTH]; - - int num; // unused - sscanf(strtok(line, " ,"), "%d", &num); - strcpy(objectName, strtok(nil, " ,")); - char* pAnimName = strtok(0, " ,"); - strlwr(objectName); - - bool bUsedFirstTime = true; - if (pAnimName) { - do { - strcpy(animName, pAnimName); - strlwr(animName); - strcpy(ms_cLoadObjectName[ms_numLoadObjectNames], objectName); - strcpy(ms_cLoadAnimName[ms_numLoadObjectNames], animName); - if (bUsedFirstTime) { - bUsedFirstTime = false; - ms_iModelIndex[ms_numLoadObjectNames] = CUTMODEL_SIMPLE; - ms_bRepeatObject[ms_numLoadObjectNames] = false; - } else { - ms_bRepeatObject[ms_numLoadObjectNames] = true; - ms_iModelIndex[ms_numLoadObjectNames] = CUTMODEL_REPEATED; - } - ms_numLoadObjectNames++; - pAnimName = strtok(0, " ,"); - } while (pAnimName); - } - break; - } - case CUT_TEXT: - { - int iTextStartTime, iTextDuration; - char cTextOutput[8]; - sscanf(line, "%d,%d,%s", &iTextStartTime, &iTextDuration, cTextOutput); - for (size_t i = 0; i < strlen(cTextOutput); i++) - cTextOutput[i] = toupper(cTextOutput[i]); - - memcpy(ms_cTextOutput[ms_numTextOutput], cTextOutput, strlen(cTextOutput)+1); - ms_iTextStartTime[ms_numTextOutput] = iTextStartTime; - ms_iTextDuration[ms_numTextOutput] = iTextDuration; - ms_numTextOutput++; - break; - } - case CUT_UNCOMPRESS: - LoadAnimationUncompressed(strtok(line, " ,")); - break; - case CUT_ATTACH: - { - int attachToId, objectId, bone; - sscanf(line, "%d,%d,%d", &attachToId, &objectId, &bone); - ms_iAttachObjectToBone[ms_numAttachObjectToBones].attachToId = attachToId; - ms_iAttachObjectToBone[ms_numAttachObjectToBones].objectId = objectId; - ms_iAttachObjectToBone[ms_numAttachObjectToBones].boneId = bone; - ms_numAttachObjectToBones++; - break; - } - case CUT_REMOVE: - { - float x, y, z; - char name[NAMELENGTH]; - sscanf(line, "%f,%f,%f,%s", &x, &y, &z, name); - ms_crToHideItems[ms_iNumHiddenEntities].x = x; - ms_crToHideItems[ms_iNumHiddenEntities].y = y; - ms_crToHideItems[ms_iNumHiddenEntities].z = z; - strcpy(ms_crToHideItems[ms_iNumHiddenEntities].name, name); - ms_iNumHiddenEntities++; - break; - } - case CUT_PARTICLE_EFFECT: - { - char name[NAMELENGTH]; - char name2[NAMELENGTH]; - - int iTime; - int unk1; - int unk2; - float x; - float y; - float z; - float unkX; - float unkY; - float unkZ; - - memset(name, 0, NAMELENGTH); - memset(name2, 0, NAMELENGTH); - - strncpy(name, strtok(line, ","), NAMELENGTH-1); - iTime = atoi(strtok(0, ",")); - unk1 = atoi(strtok(0, ",")); - unk2 = atoi(strtok(0, ",")); - strncpy(name, strtok(line, ","), NAMELENGTH-1); - x = strtod(strtok(0, ","), nil); - y = strtod(strtok(0, ","), nil); - z = strtod(strtok(0, ","), nil); - unkX = strtod(strtok(0, ","), nil); - unkY = strtod(strtok(0, ","), nil); - unkZ = strtod(strtok(0, ","), nil); - - ms_pParticleEffects[ms_iNumParticleEffects].bPlayed = false; - ms_pParticleEffects[ms_iNumParticleEffects].iTime = iTime; - ms_pParticleEffects[ms_iNumParticleEffects].unk1 = unk1; - ms_pParticleEffects[ms_iNumParticleEffects].unk2 = unk2; - strcpy(CCutsceneMgr::ms_pParticleEffects[ms_iNumParticleEffects].name2, name2); - ms_pParticleEffects[ms_iNumParticleEffects].unk10 = false; - ms_pParticleEffects[ms_iNumParticleEffects].x = x; - ms_pParticleEffects[ms_iNumParticleEffects].y = y; - ms_pParticleEffects[ms_iNumParticleEffects].z = z; - ms_pParticleEffects[ms_iNumParticleEffects].unkX = unkX; - ms_pParticleEffects[ms_iNumParticleEffects].unkY = unkY; - ms_pParticleEffects[ms_iNumParticleEffects].unkZ = unkZ; - ms_pParticleEffects[ms_iNumParticleEffects].unk11 = false; - strcpy(CCutsceneMgr::ms_pParticleEffects[ms_iNumParticleEffects].name, name); - ms_iNumParticleEffects++; - break; - } - case CUT_EXTRA_COLOR: - if (!bExtraColSet) { - int colorId; - sscanf(line, "%d", &colorId); - if (colorId == 0) - bExtraColSet = false; - else { - CTimeCycle::StartExtraColour(colorId - 1, false); - bExtraColSet = true; - } - } - break; - default: - break; - }; - - } - else - { - delete[]cutsBuf; - - // add manually inserted objects - for (int i = 0; i < ms_numAppendObjectNames; i++) { - strcpy(ms_cLoadObjectName[ms_numLoadObjectNames], ms_cAppendObjectName[i]); - strcpy(ms_cLoadAnimName[ms_numLoadObjectNames], ms_cAppendAnimName[i]); - ms_iModelIndex[ms_numLoadObjectNames] = CUTMODEL_SIMPLE; - ms_numLoadObjectNames++; - } - ms_numAppendObjectNames = 0; - - int specialId = 0; - for (int i = 0; i < ms_numLoadObjectNames; i++) - { - if (strcasecmp(ms_cLoadObjectName[i], "csplay") == 0) { - ms_iModelIndex[i] = CUTMODEL_PLAYER; - continue; - } else if (ms_iModelIndex[i] == CUTMODEL_SIMPLE) { - int id; - if (CModelInfo::GetModelInfo(ms_cLoadObjectName[i], &id)) { - ms_iModelIndex[i] = id; - CStreaming::RequestModel(id, STREAMFLAGS_SCRIPTOWNED | STREAMFLAGS_DEPENDENCY | STREAMFLAGS_PRIORITY); - } else { - CStreaming::RequestSpecialModel(specialId + MI_CUTOBJ01, ms_cLoadObjectName[i], STREAMFLAGS_SCRIPTOWNED | STREAMFLAGS_DEPENDENCY | STREAMFLAGS_PRIORITY); - ms_iModelIndex[i] = specialId + MI_CUTOBJ01; - specialId++; - // skip if id is busy - while (CStreaming::ms_aInfoForModel[specialId + MI_CUTOBJ01].m_loadState == STREAMSTATE_LOADED) - specialId++; - } - } - else if (ms_iModelIndex[i] == CUTMODEL_REPEATED && i != 0) - ms_iModelIndex[i] = ms_iModelIndex[i - 1]; - } - - CStreaming::LoadAllRequestedModels(true); - ms_cutsceneLoadStatus = CUTSCENE_LOADING; - return; - } - } - - delete[]cutsBuf; - LoadCutsceneData_postload(true); -} - -void -CCutsceneMgr::DeleteCutsceneData_overlay(void) -{ - if (ms_cutsceneLoadStatus == CUTSCENE_NOT_LOADED) return; - CTimer::Suspend(); - CPopulation::PedDensityMultiplier = m_fPrevPedDensity; - CCarCtrl::CarDensityMultiplier = m_fPrevCarDensity; - if (m_PrevExtraColourOn) - CTimeCycle::StartExtraColour(m_PrevExtraColour, false); - else - CTimeCycle::StopExtraColour(m_PrevExtraColourOn); - - for (uint32 i = 0; i < ms_iNumHiddenEntities; i++) { - if (ms_pHiddenEntities[i]) { - ms_pHiddenEntities[i]->CleanUpOldReference(&ms_pHiddenEntities[i]); - ms_pHiddenEntities[i]->bIsVisible = true; - } - } - - ms_iNumHiddenEntities = 0; - ms_iNumParticleEffects = 0; - CMessages::ClearMessages(); - CRubbish::SetVisibility(true); - - ms_cutsceneProcessing = false; - ms_useLodMultiplier = false; - ms_useCutsceneShadows = false; - - ms_numCutsceneObjs--; - while (ms_numCutsceneObjs >= 0) { - CWorld::Remove(ms_pCutsceneObjects[ms_numCutsceneObjs]); - ms_pCutsceneObjects[ms_numCutsceneObjs]->DeleteRwObject(); - delete ms_pCutsceneObjects[ms_numCutsceneObjs]; - ms_pCutsceneObjects[ms_numCutsceneObjs] = nil; - ms_numCutsceneObjs--; - } - ms_numCutsceneObjs = 0; - - if (ms_animLoaded) - CAnimManager::RemoveLastAnimFile(); - - ms_animLoaded = false; - ms_cutsceneAssociations.DestroyAssociations(); - - ms_aUncompressedCutsceneAnims[0][0] = '\0'; - ms_numUncompressedCutsceneAnims = 0; - - if (bCamLoaded) { - TheCamera.RestoreWithJumpCut(); - TheCamera.SetWideScreenOff(); - TheCamera.DeleteCutSceneCamDataMemory(); - } - ms_cutsceneLoadStatus = CUTSCENE_NOT_LOADED; - ms_running = false; - - FindPlayerPed()->bIsVisible = true; - CPad::GetPad(0)->SetEnablePlayerControls(PLAYERCONTROL_CUTSCENE); - CWorld::Players[CWorld::PlayerInFocus].MakePlayerSafe(false); - - if (CGeneral::faststricmp(ms_cutsceneName, "finale")) { - DMAudio.StopCutSceneMusic(); - DMAudio.ChangeMusicMode(MUSICMODE_GAME); - } - - CStreaming::ms_disableStreaming = false; - CWorld::bProcessCutsceneOnly = false; - - //if(bCamLoaded) - // CGame::DrasticTidyUpMemory(TheCamera.GetScreenFadeStatus() == FADE_2); - - CPad::GetPad(0)->Clear(false); - - if (bModelsRemovedForCutscene) { - CStreaming::LoadInitialPeds(); - CStreaming::LoadInitialWeapons(); - CStreaming::LoadInitialVehicles(); - bModelsRemovedForCutscene = false; - - CPlayerPed *pPlayerPed = FindPlayerPed(); - for (int i = 0; i < NumberOfSavedWeapons; i++) { - int32 weaponModelId = CWeaponInfo::GetWeaponInfo(SavedWeaponIDs[i])->m_nModelId; - uint8 flags = CStreaming::ms_aInfoForModel[weaponModelId].m_flags; - CStreaming::RequestModel(weaponModelId, STREAMFLAGS_DONT_REMOVE); - CStreaming::LoadAllRequestedModels(false); - if (CWeaponInfo::GetWeaponInfo(SavedWeaponIDs[i])->m_nModel2Id != -1) { - CStreaming::RequestModel(CWeaponInfo::GetWeaponInfo(SavedWeaponIDs[i])->m_nModel2Id, 0); - CStreaming::LoadAllRequestedModels(false); - } - if (!(flags & STREAMFLAGS_DONT_REMOVE)) - CStreaming::SetModelIsDeletable(weaponModelId); - pPlayerPed->GiveWeapon(SavedWeaponIDs[i], SavedWeaponAmmo[i], true); - } - NumberOfSavedWeapons = 0; - } - - for (int i = 0; i < ms_numLoadObjectNames; i++) - CStreaming::SetMissionDoesntRequireModel(ms_iModelIndex[i]); - - CStreaming::SetMissionDoesntRequireModel(MI_COP); - CStreaming::StreamZoneModels(FindPlayerCoors()); - CTimer::Resume(); -} - -void -CCutsceneMgr::Update_overlay(void) -{ - if (ms_cutsceneLoadStatus == CUTSCENE_LOADING) { - debug("Loading Cutscene...\n"); - CTimer::Suspend(); - LoadCutsceneData_loading(); - CTimer::Resume(); - return; - } - - if (ms_cutsceneLoadStatus != CUTSCENE_LOADED) { - debug("Cutscene Not Loaded!\n"); - return; - } - - switch (ms_cutscenePlayStatus) { - case CUTSCENE_STARTED: - SetupCutsceneToStart(); - HideRequestedObjects(); - ms_cutscenePlayStatus++; - break; - case CUTSCENE_PLAYING_2: - case CUTSCENE_PLAYING_3: - ms_cutscenePlayStatus++; - break; - case CUTSCENE_PLAYING_4: - ms_cutscenePlayStatus = CUTSCENE_PLAYING_0; - if (CGeneral::faststricmp(ms_cutsceneName, "finale")) - DMAudio.PlayPreloadedCutSceneMusic(); - break; - default: - break; - } - - if (!ms_running) return; - - ms_cutsceneTimer += CTimer::GetTimeStepNonClippedInSeconds(); - uint32 cutsceneTimeInMS = GetCutsceneTimeInMilleseconds(); - - if (ms_currTextOutput < ms_numTextOutput && cutsceneTimeInMS > ms_iTextStartTime[ms_currTextOutput]) { - CMessages::AddMessageJumpQ(TheText.Get(ms_cTextOutput[ms_currTextOutput]), ms_iTextDuration[ms_currTextOutput], 1); - ms_currTextOutput++; - } - - for (int i = 0; i < ms_numCutsceneObjs; i++) { - int modelId = ms_pCutsceneObjects[i]->GetModelIndex(); - if (modelId >= MI_CUTOBJ01 && modelId <= MI_CUTOBJ10) - UpdateCutsceneObjectBoundingBox(ms_pCutsceneObjects[i]->GetClump(), modelId); - } - - if (!bCamLoaded) return; - - if (CGeneral::faststricmp(ms_cutsceneName, "finale") && TheCamera.Cams[TheCamera.ActiveCam].Mode == CCam::MODE_FLYBY && ms_cutsceneLoadStatus == CUTSCENE_LOADED) { - if (TheCamera.GetCutSceneFinishTime() < cutsceneTimeInMS + 1000) { - if (!bCamFading) { - bCamFading = true; - TheCamera.Fade(1.0f, FADE_OUT); - } - } - if (mCutsceneSkipFading) { - mCutsceneSkipFadeTime -= CTimer::GetTimeStepInMilliseconds(); - if (mCutsceneSkipFadeTime < 0) { - CHud::m_BigMessage[1][0] = '\0'; - ms_wasCutsceneSkipped = true; - FinishCutscene(); - mCutsceneSkipFading = false; - mCutsceneSkipFadeTime = 0; - } - } - else if (IsCutsceneSkipButtonBeingPressed() && PresubBodge()){ - mCutsceneSkipFading = true; - mCutsceneSkipFadeTime = 1000; - TheCamera.Fade(1.0f, FADE_OUT); - } - } -} \ No newline at end of file diff --git a/src/audio/AudioLogic.cpp b/src/audio/AudioLogic.cpp index f3d41b8..7469f57 100644 --- a/src/audio/AudioLogic.cpp +++ b/src/audio/AudioLogic.cpp @@ -4366,18 +4366,14 @@ cAudioManager::ProcessPedOneShots(cPedParams ¶ms) if (weaponType == WEAPONTYPE_BRASSKNUCKLE) { CPed* ped = params.m_pPed; uint32 fightMove = ped->m_curFightMove; - // LCS:removed for now - //if (fightMove == FIGHTMOVE_BACKLEFT || fightMove == FIGHTMOVE_STDPUNCH || fightMove == FIGHTMOVE_PUNCH || - if ( + if (fightMove == FIGHTMOVE_BACKLEFT || fightMove == FIGHTMOVE_STDPUNCH || fightMove == FIGHTMOVE_PUNCH || ped->m_nPedState == PED_ATTACK) { CEntity* damageEntity = ped->m_pDamageEntity; if (!damageEntity) m_sQueueSample.m_nSampleIndex = m_anRandomTable[3] % 2 + SFX_HAMMER_HIT_1; else if (damageEntity->GetType() != ENTITY_TYPE_PED) m_sQueueSample.m_nSampleIndex = m_anRandomTable[3] % 2 + SFX_HAMMER_HIT_1; - // LCS:removed for now - //else if (((CPed*)damageEntity)->m_curFightMove != FIGHTMOVE_HITHEAD) - else if(1) + else if (((CPed*)damageEntity)->m_curFightMove != FIGHTMOVE_HITHEAD) m_sQueueSample.m_nSampleIndex = m_anRandomTable[3] % 2 + SFX_HAMMER_HIT_1; else m_sQueueSample.m_nSampleIndex = SFX_HAMMER_HIT_1; @@ -5303,7 +5299,6 @@ cAudioManager::GetPedCommentSfx(CPed *ped, int32 sound) case MI_MEDIC: return GetMedicTalkSfx(ped, sound); case MI_FIREMAN: return GetFiremanTalkSfx(ped, sound); case MI_MALE01: return GetDefaultTalkSfx(ped, sound); -/* LCS: removed for now case MI_HFYST: return GetHFYSTTalkSfx(ped, sound); case MI_HFOST: return GetHFOSTTalkSfx(ped, sound); case MI_HMYST: return GetHMYSTTalkSfx(ped, sound); @@ -5392,7 +5387,6 @@ cAudioManager::GetPedCommentSfx(CPed *ped, int32 sound) case MI_BKB: return GetBKTalkSfx(ped, sound); case MI_PGA: case MI_PGB: return GetPGTalkSfx(ped, sound); -*/ case MI_VICE1: case MI_VICE2: case MI_VICE3: @@ -7576,8 +7570,7 @@ cAudioManager::GetSGTalkSfx(CPed *ped, int16 sound) case SOUND_PED_CHAT: GetPhrase(sfx, ped->m_lastComment, 1064, 12); break; default: return GetGenericMaleTalkSfx(ped, sound); } -// LCS removed for now -// if(ped->GetModelIndex() == MI_SGB) sfx += 93; + if(ped->GetModelIndex() == MI_SGB) sfx += 93; return sfx; } @@ -9313,8 +9306,7 @@ cAudioManager::ProcessBridge() void cAudioManager::ProcessBridgeWarning() { - // TODO: LCS -/* if (CStats::CommercialPassed && m_sQueueSample.m_fDistance < 450.f) { + if (CStats::CommercialPassed && m_sQueueSample.m_fDistance < 450.f) { m_sQueueSample.m_nVolume = ComputeVolume(100, 450.f, m_sQueueSample.m_fDistance); if (m_sQueueSample.m_nVolume != 0) { m_sQueueSample.m_nCounter = 0; @@ -9335,7 +9327,7 @@ cAudioManager::ProcessBridgeWarning() m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } - }*/ + } } void @@ -9411,7 +9403,7 @@ struct MissionAudioData { const MissionAudioData MissionAudioNameSfxAssoc[] = { - /*{"mobring", STREAMED_SOUND_MISSION_MOBR1}, {"pagring", STREAMED_SOUND_MISSION_PAGER}, {"carrev", STREAMED_SOUND_MISSION_CARREV}, + {"mobring", STREAMED_SOUND_MISSION_MOBR1}, {"pagring", STREAMED_SOUND_MISSION_PAGER}, {"carrev", STREAMED_SOUND_MISSION_CARREV}, {"bikerev", STREAMED_SOUND_MISSION_BIKEREV}, {"liftop", STREAMED_SOUND_MISSION_LIFTOP}, {"liftcl", STREAMED_SOUND_MISSION_LIFTCL}, {"liftrun", STREAMED_SOUND_MISSION_LIFTRUN}, {"liftbel", STREAMED_SOUND_MISSION_LIFTBEL}, {"inlift", STREAMED_SOUND_MISSION_INLIFT}, {"caml", STREAMED_SOUND_MISSION_CAMERAL}, {"camr", STREAMED_SOUND_MISSION_CAMERAR}, {"cheer1", STREAMED_SOUND_MISSION_CHEER1}, @@ -9784,7 +9776,7 @@ const MissionAudioData MissionAudioNameSfxAssoc[] = { {"bust_18", STREAMED_SOUND_MISSION_BUST_18}, {"bust_19", STREAMED_SOUND_MISSION_BUST_19}, {"bust_20", STREAMED_SOUND_MISSION_BUST_20}, {"bust_21", STREAMED_SOUND_MISSION_BUST_21}, {"bust_22", STREAMED_SOUND_MISSION_BUST_22}, {"bust_23", STREAMED_SOUND_MISSION_BUST_23}, {"bust_24", STREAMED_SOUND_MISSION_BUST_24}, {"bust_25", STREAMED_SOUND_MISSION_BUST_25}, {"bust_26", STREAMED_SOUND_MISSION_BUST_26}, - {"bust_27", STREAMED_SOUND_MISSION_BUST_27}, {"bust_28", STREAMED_SOUND_MISSION_BUST_28}, */ {nil, 0} }; + {"bust_27", STREAMED_SOUND_MISSION_BUST_27}, {"bust_28", STREAMED_SOUND_MISSION_BUST_28}, {nil, 0} }; int32 FindMissionAudioSfx(const char *name) @@ -9851,8 +9843,8 @@ cAudioManager::PlayLoadedMissionAudio(uint8 slot) bool cAudioManager::ShouldDuckMissionAudio(uint8 slot) const { - //if (IsMissionAudioSamplePlaying(slot)) - // return m_sMissionAudio.m_nSampleIndex[slot] != STREAMED_SOUND_MISSION_ROK2_01; + if (IsMissionAudioSamplePlaying(slot)) + return m_sMissionAudio.m_nSampleIndex[slot] != STREAMED_SOUND_MISSION_ROK2_01; return false; } @@ -9951,11 +9943,11 @@ cAudioManager::ProcessMissionAudioSlot(uint8 slot) if (m_nUserPause) SampleManager.PauseStream(1, slot + 1); if (m_sMissionAudio.m_bPredefinedProperties[slot]) { - //if (m_sMissionAudio.m_nSampleIndex[slot] == STREAMED_SOUND_MISSION_CAMERAL) - // SampleManager.SetStreamedVolumeAndPan(80, 0, 1, slot + 1); - //else if (m_sMissionAudio.m_nSampleIndex[slot] == STREAMED_SOUND_MISSION_CAMERAR) - // SampleManager.SetStreamedVolumeAndPan(80, 127, 1, slot + 1); - //else + if (m_sMissionAudio.m_nSampleIndex[slot] == STREAMED_SOUND_MISSION_CAMERAL) + SampleManager.SetStreamedVolumeAndPan(80, 0, 1, slot + 1); + else if (m_sMissionAudio.m_nSampleIndex[slot] == STREAMED_SOUND_MISSION_CAMERAR) + SampleManager.SetStreamedVolumeAndPan(80, 127, 1, slot + 1); + else SampleManager.SetStreamedVolumeAndPan(80, 63, 1, slot + 1); } else { distSquared = GetDistanceSquared(m_sMissionAudio.m_vecPos[slot]); @@ -9977,8 +9969,8 @@ cAudioManager::ProcessMissionAudioSlot(uint8 slot) } m_sMissionAudio.m_nPlayStatus[slot] = PLAY_STATUS_PLAYING; nCheckPlayingDelay[slot] = 30; - //if (m_sMissionAudio.m_nSampleIndex[slot] >= STREAMED_SOUND_MISSION_MOB_01A && m_sMissionAudio.m_nSampleIndex[slot] <= STREAMED_SOUND_MISSION_MOB_99A) - // m_sMissionAudio.m_bIsMobile[slot] = true; + if (m_sMissionAudio.m_nSampleIndex[slot] >= STREAMED_SOUND_MISSION_MOB_01A && m_sMissionAudio.m_nSampleIndex[slot] <= STREAMED_SOUND_MISSION_MOB_99A) + m_sMissionAudio.m_bIsMobile[slot] = true; break; case PLAY_STATUS_PLAYING: if (m_bTimerJustReset) { @@ -10021,12 +10013,12 @@ cAudioManager::ProcessMissionAudioSlot(uint8 slot) SampleManager.SetStreamedVolumeAndPan(emittingVol, pan, 1, slot + 1); } } - //} else if (m_sMissionAudio.m_nSampleIndex[slot] == STREAMED_SOUND_MISSION_ROK2_01) { - // m_sMissionAudio.m_nPlayStatus[slot] = PLAY_STATUS_STOPPED; + } else if (m_sMissionAudio.m_nSampleIndex[slot] == STREAMED_SOUND_MISSION_ROK2_01) { + m_sMissionAudio.m_nPlayStatus[slot] = PLAY_STATUS_STOPPED; } else { m_sMissionAudio.m_nPlayStatus[slot] = PLAY_STATUS_FINISHED; - //if (m_sMissionAudio.m_nSampleIndex[slot] >= STREAMED_SOUND_MISSION_MOB_01A && m_sMissionAudio.m_nSampleIndex[slot] <= STREAMED_SOUND_MISSION_MOB_99A) - // m_sMissionAudio.m_bIsMobile[slot] = false; + if (m_sMissionAudio.m_nSampleIndex[slot] >= STREAMED_SOUND_MISSION_MOB_01A && m_sMissionAudio.m_nSampleIndex[slot] <= STREAMED_SOUND_MISSION_MOB_99A) + m_sMissionAudio.m_bIsMobile[slot] = false; m_sMissionAudio.m_nSampleIndex[slot] = NO_SAMPLE; SampleManager.StopStreamedFile(slot + 1); m_sMissionAudio.m_nMissionAudioCounter[slot] = 0; diff --git a/src/audio/AudioManager.h b/src/audio/AudioManager.h index 2eb2220..14eacda 100644 --- a/src/audio/AudioManager.h +++ b/src/audio/AudioManager.h @@ -466,7 +466,7 @@ public: void ProcessScriptObject(int32 id); // done void ProcessSpecial(); // done #ifdef GTA_TRAIN - bool ProcessTrainNoise(cVehicleParams ¶ms); //done(bcs not exists in VC) + bool ProcessTrainNoise(cVehicleParams *params); //done(bcs not exists in VC) #endif void ProcessVehicle(CVehicle *vehicle); // done bool ProcessVehicleDoors(cVehicleParams ¶ms); // done @@ -544,8 +544,8 @@ public: #endif }; -//#ifdef AUDIO_MSS -//static_assert(sizeof(cAudioManager) == 0x5558, "cAudioManager: error"); -//#endif +#ifdef AUDIO_MSS +static_assert(sizeof(cAudioManager) == 0x5558, "cAudioManager: error"); +#endif extern cAudioManager AudioManager; diff --git a/src/audio/AudioSamples.h b/src/audio/AudioSamples.h index 403ef68..5c5d857 100644 --- a/src/audio/AudioSamples.h +++ b/src/audio/AudioSamples.h @@ -814,8 +814,4 @@ enum eSfxSample SAMPLEBANK_PED_START = SFX_FOOTSTEP_SAND_4 + 1, SAMPLEBANK_PED_END = 9940, SAMPLEBANK_PED_MAX = SAMPLEBANK_PED_END + 1, - - // LCS: TODO - SFX_TRAIN_FAR = NO_SAMPLE, - SFX_TRAIN_NEAR = NO_SAMPLE, }; diff --git a/src/audio/MusicManager.cpp b/src/audio/MusicManager.cpp index 34eae77..f2e3cfd 100644 --- a/src/audio/MusicManager.cpp +++ b/src/audio/MusicManager.cpp @@ -164,8 +164,8 @@ cMusicManager::SetStartingTrackPositions(uint8 isNewGameTimer) if (i < STREAMED_SOUND_CITY_AMBIENT && isNewGameTimer) m_aTracks[i].m_nPosition = NewGameRadioTimers[i]; - //else if (i < STREAMED_SOUND_ANNOUNCE_BRIDGE_CLOSED) - // m_aTracks[i].m_nPosition = (pos * AudioManager.GetRandomNumber(i % 5)) % m_aTracks[i].m_nLength; + else if (i < STREAMED_SOUND_ANNOUNCE_BRIDGE_CLOSED) + m_aTracks[i].m_nPosition = (pos * AudioManager.GetRandomNumber(i % 5)) % m_aTracks[i].m_nLength; else m_aTracks[i].m_nPosition = 0; @@ -578,7 +578,7 @@ cMusicManager::ServiceGameMode() if (!m_bRadioStreamReady) { if(vehicle == nil) { - m_nFrontendTrack = STREAMED_SOUND_RADIO_LCFR; // huh? + m_nFrontendTrack = STREAMED_SOUND_RADIO_WAVE; // huh? return; } if(m_bRadioSetByScript) { @@ -751,7 +751,7 @@ cMusicManager::SetUpCorrectAmbienceTrack() else if (TheCamera.DistanceToWater <= 90.0f) { if (CCullZones::bAtBeachForAudio) { if (CWeather::OldWeatherType != WEATHER_HURRICANE && CWeather::NewWeatherType != WEATHER_HURRICANE || CWeather::Wind <= 1.0f) - m_nFrontendTrack = STREAMED_SOUND_SAWMILL; + m_nFrontendTrack = STREAMED_SOUND_BEACH_AMBIENT; else m_nFrontendTrack = STREAMED_SOUND_HAVANA_BEACH_AMBIENT; } @@ -1299,12 +1299,31 @@ cMusicManager::DisplayRadioStationName() case RADIO_ESPANTOSO: string = TheText.Get("FEA_FM6"); break; case EMOTION: string = TheText.Get("FEA_FM7"); break; case WAVE: string = TheText.Get("FEA_FM8"); break; - case 9: string = TheText.Get("FEA_FM9"); break; - case 10: + case USERTRACK: if (!SampleManager.IsMP3RadioChannelAvailable()) return; string = TheText.Get("FEA_MP3"); break; - default: string = TheText.Get("FEA_NON"); break; +#ifdef RADIO_OFF_TEXT + case STREAMED_SOUND_RADIO_POLICE: + case STREAMED_SOUND_RADIO_TAXI: + return; + default: { + // Otherwise pausing-resuming game will show RADIO OFF, since radio isn't set yet + if (m_nPlayingTrack == NO_TRACK && m_nFrontendTrack == NO_TRACK) + return; + + extern wchar WideErrorString[]; + + string = TheText.Get("FEA_NON"); + if (string == WideErrorString) { + pCurrentStation = nil; + return; + } + break; + } +#else + default: return; +#endif }; if (pCurrentStation != string) { @@ -1318,22 +1337,21 @@ cMusicManager::DisplayRadioStationName() CFont::SetJustifyOff(); CFont::SetBackgroundOff(); - CFont::SetDropShadowPosition(2); - CFont::SetScale(PSP_SCREEN_SCALE_X(0.5f), PSP_SCREEN_SCALE_Y(0.88f)); + CFont::SetScale(SCREEN_SCALE_X(0.8f), SCREEN_SCALE_Y(1.35f)); CFont::SetPropOn(); - CFont::SetFontStyle(FONT_BANK); + CFont::SetFontStyle(FONT_STANDARD); CFont::SetCentreOn(); - CFont::SetCentreSize(PSP_SCREEN_SCALE_X(260.0f)); - CFont::SetDropColor(CRGBA(0, 0, 0, 255)); + CFont::SetCentreSize(SCREEN_STRETCH_X(DEFAULT_SCREEN_WIDTH)); + CFont::SetColor(CRGBA(0, 0, 0, 255)); + CFont::PrintString(SCREEN_WIDTH / 2 + SCREEN_SCALE_X(2.0f), SCREEN_SCALE_Y(22.0f) + SCREEN_SCALE_Y(2.0f), pCurrentStation); if (gNumRetunePresses) - CFont::SetColor(CRGBA(77, 155, 210, 255)); + CFont::SetColor(CRGBA(102, 133, 143, 255)); else - CFont::SetColor(CRGBA(77, 155, 210, 255)); + CFont::SetColor(CRGBA(147, 196, 211, 255)); - CFont::PrintString(SCREEN_WIDTH / 2, PSP_SCREEN_SCALE_Y(7.0f), pCurrentStation); + CFont::PrintString(SCREEN_WIDTH / 2, SCREEN_SCALE_Y(22.0f), pCurrentStation); CFont::DrawFonts(); - CFont::SetCentreSize(SCREEN_STRETCH_X(DEFAULT_SCREEN_WIDTH)); } } // Always show station text after entering car. Same behaviour as III and SA. @@ -1364,7 +1382,7 @@ cMusicManager::UsesPoliceRadio(CVehicle *veh) bool cMusicManager::UsesTaxiRadio(CVehicle *veh) { - if (veh->GetModelIndex() != MI_CABBIE) return false; + if (veh->GetModelIndex() != MI_KAUFMAN) return false; return CTheScripts::bPlayerHasMetDebbieHarry; } diff --git a/src/audio/PoliceRadio.cpp b/src/audio/PoliceRadio.cpp index b8f44f6..227d27d 100644 --- a/src/audio/PoliceRadio.cpp +++ b/src/audio/PoliceRadio.cpp @@ -547,7 +547,8 @@ cAudioManager::SetupSuspectLastSeenReport() break; case MI_TAXI: case MI_CABBIE: - case MI_BORGNINE: + case MI_ZEBRA: + case MI_KAUFMAN: sample = SFX_POLICE_RADIO_TAXI; break; case MI_BOBCAT: diff --git a/src/audio/audio_enums.h b/src/audio/audio_enums.h index cd3e2e4..990b2d7 100644 --- a/src/audio/audio_enums.h +++ b/src/audio/audio_enums.h @@ -12,8 +12,8 @@ enum eRadioStation EMOTION, WAVE, USERTRACK, - NUM_RADIOS = 11, - POLICE_RADIO = 11, + NUM_RADIOS = 10, + POLICE_RADIO = 10, RADIO_OFF = 10, //TAXI_RADIO, }; @@ -38,72 +38,1230 @@ enum ePlayerMood enum eStreamedSounds { - STREAMED_SOUND_RADIO_HEAD, - STREAMED_SOUND_RADIO_DOUBLE, - STREAMED_SOUND_RADIO_KJAH, - STREAMED_SOUND_RADIO_RISE, - STREAMED_SOUND_RADIO_LIPS, - STREAMED_SOUND_RADIO_MUNDO, - STREAMED_SOUND_RADIO_MSX, + STREAMED_SOUND_RADIO_WILD, STREAMED_SOUND_RADIO_FLASH, - STREAMED_SOUND_RADIO_LCJ, - STREAMED_SOUND_RADIO_LCFR, + STREAMED_SOUND_RADIO_KCHAT, + STREAMED_SOUND_RADIO_FEVER, + STREAMED_SOUND_RADIO_VROCK, + STREAMED_SOUND_RADIO_VCPR, + STREAMED_SOUND_RADIO_ESPANTOSO, + STREAMED_SOUND_RADIO_EMOTION, + STREAMED_SOUND_RADIO_WAVE, STREAMED_SOUND_RADIO_MP3_PLAYER, STREAMED_SOUND_CITY_AMBIENT, STREAMED_SOUND_WATER_AMBIENT, - STREAMED_SOUND_SAWMILL, - STREAMED_SOUND_HAVANA_CITY_AMBIENT, // CITY - STREAMED_SOUND_HAVANA_WATER_AMBIENT, // WATER - STREAMED_SOUND_HAVANA_BEACH_AMBIENT, // WATER - STREAMED_SOUND_MALL_AMBIENT, // CITY - STREAMED_SOUND_STRIPCLUB_AMBIENT, // CITY - STREAMED_SOUND_MALIBU_AMBIENT, // CITY - STREAMED_SOUND_HOTEL_AMBIENT, // CITY - STREAMED_SOUND_DIRTRING_AMBIENT, // CITY - STREAMED_SOUND_LAW4RIOT_AMBIENT, // CITY - STREAMED_SOUND_AMBSIL_AMBIENT, // CITY + STREAMED_SOUND_BEACH_AMBIENT, + STREAMED_SOUND_HAVANA_CITY_AMBIENT, + STREAMED_SOUND_HAVANA_WATER_AMBIENT, + STREAMED_SOUND_HAVANA_BEACH_AMBIENT, + STREAMED_SOUND_MALL_AMBIENT, + STREAMED_SOUND_STRIPCLUB_AMBIENT, + STREAMED_SOUND_MALIBU_AMBIENT, + STREAMED_SOUND_HOTEL_AMBIENT, + STREAMED_SOUND_DIRTRING_AMBIENT, + STREAMED_SOUND_LAW4RIOT_AMBIENT, + STREAMED_SOUND_AMBSIL_AMBIENT, STREAMED_SOUND_RADIO_POLICE, STREAMED_SOUND_RADIO_TAXI, - STREAMED_SOUND_NEWS_A, - STREAMED_SOUND_NEWS_B, - STREAMED_SOUND_NEWS_C, - STREAMED_SOUND_NEWS_D, - STREAMED_SOUND_NEWS_E, - STREAMED_SOUND_NEWS_F, - STREAMED_SOUND_NEWS_G, - STREAMED_SOUND_NEWS_H, - STREAMED_SOUND_NEWS_I, - STREAMED_SOUND_NEWS_J, - STREAMED_SOUND_NEWS_K, - STREAMED_SOUND_NEWS_L, - STREAMED_SOUND_NEWS_M, - STREAMED_SOUND_NEWS_N, - STREAMED_SOUND_CUTSCENE_BIKER, - STREAMED_SOUND_CUTSCENE_BONEVOY, - STREAMED_SOUND_CUTSCENE_CAMPAIN, - STREAMED_SOUND_CUTSCENE_CASHCHP, - STREAMED_SOUND_CUTSCENE_CONTBAN, - STREAMED_SOUND_CUTSCENE_CRAZY69, - STREAMED_SOUND_CUTSCENE_CUTTEST, - STREAMED_SOUND_CUTSCENE_DEADLY, - STREAMED_SOUND_CUTSCENE_DONPROB, - STREAMED_SOUND_CUTSCENE_DRIVNMR, - STREAMED_SOUND_CUTSCENE_ELECTON, - STREAMED_SOUND_CUTSCENE_FINAL, - STREAMED_SOUND_CUTSCENE_FINAL_2, - STREAMED_SOUND_CUTSCENE_HOMSWET, - STREAMED_SOUND_CUTSCENE_HOTWHEL, - STREAMED_SOUND_CUTSCENE_KIDNAPP, - STREAMED_SOUND_CUTSCENE_LANDGRB, - STREAMED_SOUND_CUTSCENE_MORGUE, - STREAMED_SOUND_CUTSCENE_OVERDOS, - STREAMED_SOUND_CUTSCENE_RUFJUST, - STREAMED_SOUND_CUTSCENE_SAYONAR, - STREAMED_SOUND_CUTSCENE_SICILAN, - STREAMED_SOUND_CUTSCENE_THEOFER, - STREAMED_SOUND_CUTSCENE_INTRO, + STREAMED_SOUND_ANNOUNCE_BRIDGE_CLOSED, + STREAMED_SOUND_ANNOUNCE_BRIDGE_OPEN, + STREAMED_SOUND_CUTSCENE_ASS_1, + STREAMED_SOUND_CUTSCENE_ASS_2, + STREAMED_SOUND_CUTSCENE_BANK_1, + STREAMED_SOUND_CUTSCENE_BANK_2A, + STREAMED_SOUND_CUTSCENE_BANK_2B, + STREAMED_SOUND_CUTSCENE_BANK_3A, + STREAMED_SOUND_CUTSCENE_BANK_3B, + STREAMED_SOUND_CUTSCENE_BANK_4, + STREAMED_SOUND_CUTSCENE_BIKE_1, + STREAMED_SOUND_CUTSCENE_BIKE_2, + STREAMED_SOUND_CUTSCENE_BIKE_3, + STREAMED_SOUND_CUTSCENE_BUD_1, + STREAMED_SOUND_CUTSCENE_BUD_2, + STREAMED_SOUND_CUTSCENE_BUD_3, + STREAMED_SOUND_CUTSCENE_CAP_1, + STREAMED_SOUND_CUTSCENE_CAR_1, + STREAMED_SOUND_CUTSCENE_CNT_1A, + STREAMED_SOUND_CUTSCENE_CNT_1B, + STREAMED_SOUND_CUTSCENE_CNT_2, + STREAMED_SOUND_CUTSCENE_COK_1, + STREAMED_SOUND_CUTSCENE_COK_2A, + STREAMED_SOUND_CUTSCENE_COK_2B, + STREAMED_SOUND_CUTSCENE_COK_3, + STREAMED_SOUND_CUTSCENE_COK_4A, + STREAMED_SOUND_CUTSCENE_COK_4A2, + STREAMED_SOUND_CUTSCENE_COK_4B, + STREAMED_SOUND_CUTSCENE_COL_1, + STREAMED_SOUND_CUTSCENE_COL_2, + STREAMED_SOUND_CUTSCENE_COL_3A, + STREAMED_SOUND_CUTSCENE_COL_4A, + STREAMED_SOUND_CUTSCENE_COL_5A, + STREAMED_SOUND_CUTSCENE_COL_5B, + STREAMED_SOUND_CUTSCENE_CUB_1, + STREAMED_SOUND_CUTSCENE_CUB_2, + STREAMED_SOUND_CUTSCENE_CUB_3, + STREAMED_SOUND_CUTSCENE_CUB_4, + STREAMED_SOUND_CUTSCENE_DRUG_1, + STREAMED_SOUND_CUTSCENE_FIN, + STREAMED_SOUND_CUTSCENE_FIN2, STREAMED_SOUND_CUTSCENE_FINALE, + STREAMED_SOUND_CUTSCENE_HAT_1, + STREAMED_SOUND_CUTSCENE_HAT_2, + STREAMED_SOUND_CUTSCENE_HAT_3, + STREAMED_SOUND_CUTSCENE_ICE_1, + STREAMED_SOUND_CUTSCENE_INT_A, + STREAMED_SOUND_CUTSCENE_INT_B, + STREAMED_SOUND_CUTSCENE_INT_D, + STREAMED_SOUND_CUTSCENE_INT_M, + STREAMED_SOUND_CUTSCENE_LAW_1A, + STREAMED_SOUND_CUTSCENE_LAW_1B, + STREAMED_SOUND_CUTSCENE_LAW_2A, + STREAMED_SOUND_CUTSCENE_LAW_2B, + STREAMED_SOUND_CUTSCENE_LAW_2C, + STREAMED_SOUND_CUTSCENE_LAW_3, + STREAMED_SOUND_CUTSCENE_LAW_4, + STREAMED_SOUND_CUTSCENE_PHIL_1, + STREAMED_SOUND_CUTSCENE_PHIL_2, + STREAMED_SOUND_CUTSCENE_PORN_1, + STREAMED_SOUND_CUTSCENE_PORN_2, + STREAMED_SOUND_CUTSCENE_PORN_3, + STREAMED_SOUND_CUTSCENE_PORN_4, + STREAMED_SOUND_CUTSCENE_RESC_1A, + STREAMED_SOUND_CUTSCENE_ROK_1, + STREAMED_SOUND_CUTSCENE_ROK_2, + STREAMED_SOUND_CUTSCENE_ROK_3A, + STREAMED_SOUND_CUTSCENE_STRIPA, + STREAMED_SOUND_CUTSCENE_TAX_1, + STREAMED_SOUND_CUTSCENE_TEX_1, + STREAMED_SOUND_CUTSCENE_TEX_2, + STREAMED_SOUND_CUTSCENE_TEX_3, + STREAMED_SOUND_CUTSCENE_GLIGHT, + STREAMED_SOUND_CUTSCENE_FIST, + STREAMED_SOUND_CUTSCENE_ELBURRO1_PH1, + STREAMED_SOUND_CUTSCENE_ELBURRO2_PH2, STREAMED_SOUND_MISSION_COMPLETED, + STREAMED_SOUND_MISSION_COMPLETED4, + STREAMED_SOUND_MISSION_MOBR1, + STREAMED_SOUND_MISSION_PAGER, + STREAMED_SOUND_MISSION_CARREV, + STREAMED_SOUND_MISSION_BIKEREV, + STREAMED_SOUND_MISSION_LIFTOP, + STREAMED_SOUND_MISSION_LIFTCL, + STREAMED_SOUND_MISSION_LIFTRUN, + STREAMED_SOUND_MISSION_LIFTBEL, + STREAMED_SOUND_MISSION_INLIFT, + STREAMED_SOUND_MISSION_SFX_01, + STREAMED_SOUND_MISSION_SFX_02, + STREAMED_SOUND_MISSION_CAMERAL, + STREAMED_SOUND_MISSION_CAMERAR, + STREAMED_SOUND_MISSION_CHEER1, + STREAMED_SOUND_MISSION_CHEER2, + STREAMED_SOUND_MISSION_CHEER3, + STREAMED_SOUND_MISSION_CHEER4, + STREAMED_SOUND_MISSION_OOH1, + STREAMED_SOUND_MISSION_OOH2, + STREAMED_SOUND_MISSION_RACE1, + STREAMED_SOUND_MISSION_RACE2, + STREAMED_SOUND_MISSION_RACE3, + STREAMED_SOUND_MISSION_RACE4, + STREAMED_SOUND_MISSION_RACE5, + STREAMED_SOUND_MISSION_RACE6, + STREAMED_SOUND_MISSION_RACE7, + STREAMED_SOUND_MISSION_RACE8, + STREAMED_SOUND_MISSION_RACE9, + STREAMED_SOUND_MISSION_RACE10, + STREAMED_SOUND_MISSION_RACE11, + STREAMED_SOUND_MISSION_RACE12, + STREAMED_SOUND_MISSION_RACE13, + STREAMED_SOUND_MISSION_RACE14, + STREAMED_SOUND_MISSION_RACE15, + STREAMED_SOUND_MISSION_HOT1, + STREAMED_SOUND_MISSION_HOT2, + STREAMED_SOUND_MISSION_HOT3, + STREAMED_SOUND_MISSION_HOT4, + STREAMED_SOUND_MISSION_HOT5, + STREAMED_SOUND_MISSION_HOT6, + STREAMED_SOUND_MISSION_HOT7, + STREAMED_SOUND_MISSION_HOT8, + STREAMED_SOUND_MISSION_HOT9, + STREAMED_SOUND_MISSION_HOT10, + STREAMED_SOUND_MISSION_HOT11, + STREAMED_SOUND_MISSION_HOT12, + STREAMED_SOUND_MISSION_HOT13, + STREAMED_SOUND_MISSION_HOT14, + STREAMED_SOUND_MISSION_HOT15, + STREAMED_SOUND_MISSION_LANSTP1, + STREAMED_SOUND_MISSION_LANSTP2, + STREAMED_SOUND_MISSION_LANAMU1, + STREAMED_SOUND_MISSION_LANAMU2, + STREAMED_SOUND_MISSION_AIRHORNL, + STREAMED_SOUND_MISSION_AIRHORNR, + STREAMED_SOUND_MISSION_SNIPSCRL, + STREAMED_SOUND_MISSION_SNIPSHORT, + STREAMED_SOUND_MISSION_BLOWROOF, + STREAMED_SOUND_MISSION_ASS_1, + STREAMED_SOUND_MISSION_ASS_2, + STREAMED_SOUND_MISSION_ASS_3, + STREAMED_SOUND_MISSION_ASS_4, + STREAMED_SOUND_MISSION_ASS_5, + STREAMED_SOUND_MISSION_ASS_6, + STREAMED_SOUND_MISSION_ASS_7, + STREAMED_SOUND_MISSION_ASS_8, + STREAMED_SOUND_MISSION_ASS_9, + STREAMED_SOUND_MISSION_ASS_10, + STREAMED_SOUND_MISSION_ASS_11, + STREAMED_SOUND_MISSION_ASS_12, + STREAMED_SOUND_MISSION_ASS_13, + STREAMED_SOUND_MISSION_ASS_14, + STREAMED_SOUND_MISSION_BIKE1_1, + STREAMED_SOUND_MISSION_BIKE1_2, + STREAMED_SOUND_MISSION_BIKE1_3, + STREAMED_SOUND_MISSION_BNK1_1, + STREAMED_SOUND_MISSION_BNK1_2, + STREAMED_SOUND_MISSION_BNK1_3, + STREAMED_SOUND_MISSION_BNK1_4, + STREAMED_SOUND_MISSION_BNK1_5, + STREAMED_SOUND_MISSION_BNK1_6, + STREAMED_SOUND_MISSION_BNK1_7, + STREAMED_SOUND_MISSION_BNK1_8, + STREAMED_SOUND_MISSION_BNK1_10, + STREAMED_SOUND_MISSION_BNK1_11, + STREAMED_SOUND_MISSION_BNK1_12, + STREAMED_SOUND_MISSION_BNK1_13, + STREAMED_SOUND_MISSION_BNK1_14, + STREAMED_SOUND_MISSION_BNK2_1, + STREAMED_SOUND_MISSION_BNK2_2, + STREAMED_SOUND_MISSION_BNK2_3, + STREAMED_SOUND_MISSION_BNK2_4, + STREAMED_SOUND_MISSION_BNK2_5, + STREAMED_SOUND_MISSION_BNK2_6, + STREAMED_SOUND_MISSION_BNK2_7, + STREAMED_SOUND_MISSION_BNK2_8, + STREAMED_SOUND_MISSION_BNK2_9, + STREAMED_SOUND_MISSION_BNK3_1, + STREAMED_SOUND_MISSION_BNK3_2, + STREAMED_SOUND_MISSION_BNK3_3A, + STREAMED_SOUND_MISSION_BNK3_3B, + STREAMED_SOUND_MISSION_BNK3_3C, + STREAMED_SOUND_MISSION_BNK3_4A, + STREAMED_SOUND_MISSION_BNK3_4B, + STREAMED_SOUND_MISSION_BNK3_4C, + STREAMED_SOUND_MISSION_BNK4_1, + STREAMED_SOUND_MISSION_BNK4_2, + STREAMED_SOUND_MISSION_BNK4_3A, + STREAMED_SOUND_MISSION_BNK4_3B, + STREAMED_SOUND_MISSION_BNK4_3C, + STREAMED_SOUND_MISSION_BNK4_3D, + STREAMED_SOUND_MISSION_BNK4_3E, + STREAMED_SOUND_MISSION_BNK4_3F, + STREAMED_SOUND_MISSION_BNK4_3G, + STREAMED_SOUND_MISSION_BNK4_3H, + STREAMED_SOUND_MISSION_BNK4_3I, + STREAMED_SOUND_MISSION_BNK4_3J, + STREAMED_SOUND_MISSION_BNK4_3K, + STREAMED_SOUND_MISSION_BNK4_3M, + STREAMED_SOUND_MISSION_BNK4_3O, + STREAMED_SOUND_MISSION_BNK4_3P, + STREAMED_SOUND_MISSION_BNK4_3Q, + STREAMED_SOUND_MISSION_BNK4_3R, + STREAMED_SOUND_MISSION_BNK4_3S, + STREAMED_SOUND_MISSION_BNK4_3T, + STREAMED_SOUND_MISSION_BNK4_3U, + STREAMED_SOUND_MISSION_BNK4_3V, + STREAMED_SOUND_MISSION_BNK4_4A, + STREAMED_SOUND_MISSION_BNK4_4B, + STREAMED_SOUND_MISSION_BNK4_5, + STREAMED_SOUND_MISSION_BNK4_6, + STREAMED_SOUND_MISSION_BNK4_7, + STREAMED_SOUND_MISSION_BNK4_8, + STREAMED_SOUND_MISSION_BNK4_9, + STREAMED_SOUND_MISSION_BNK4_10, + STREAMED_SOUND_MISSION_BNK4_11, + STREAMED_SOUND_MISSION_BK4_12A, + STREAMED_SOUND_MISSION_BK4_12B, + STREAMED_SOUND_MISSION_BK4_12C, + STREAMED_SOUND_MISSION_BNK4_13, + STREAMED_SOUND_MISSION_BK4_14A, + STREAMED_SOUND_MISSION_BK4_14B, + STREAMED_SOUND_MISSION_BNK4_15, + STREAMED_SOUND_MISSION_BNK4_16, + STREAMED_SOUND_MISSION_BNK4_17, + STREAMED_SOUND_MISSION_BNK4_18, + STREAMED_SOUND_MISSION_BK4_19A, + STREAMED_SOUND_MISSION_BK4_19B, + STREAMED_SOUND_MISSION_BK4_20A, + STREAMED_SOUND_MISSION_BK4_20B, + STREAMED_SOUND_MISSION_BNK4_21, + STREAMED_SOUND_MISSION_BNK422A, + STREAMED_SOUND_MISSION_BNK422B, + STREAMED_SOUND_MISSION_BK4_23A, + STREAMED_SOUND_MISSION_BK4_23B, + STREAMED_SOUND_MISSION_BK4_23C, + STREAMED_SOUND_MISSION_BK4_23D, + STREAMED_SOUND_MISSION_BK4_24A, + STREAMED_SOUND_MISSION_BK4_24B, + STREAMED_SOUND_MISSION_BNK4_25, + STREAMED_SOUND_MISSION_BNK4_26, + STREAMED_SOUND_MISSION_BNK4_27, + STREAMED_SOUND_MISSION_BNK4_28, + STREAMED_SOUND_MISSION_BNK4_29, + STREAMED_SOUND_MISSION_BNK4_30, + STREAMED_SOUND_MISSION_BK4_31A, + STREAMED_SOUND_MISSION_BK4_31B, + STREAMED_SOUND_MISSION_BNK4_32, + STREAMED_SOUND_MISSION_BK4_34A, + STREAMED_SOUND_MISSION_BK4_34B, + STREAMED_SOUND_MISSION_BK4_35A, + STREAMED_SOUND_MISSION_BK4_35B, + STREAMED_SOUND_MISSION_BNK4_36, + STREAMED_SOUND_MISSION_BNK4_37, + STREAMED_SOUND_MISSION_BNK4_38, + STREAMED_SOUND_MISSION_BNK4_39, + STREAMED_SOUND_MISSION_BK4_40A, + STREAMED_SOUND_MISSION_BK4_40B, + STREAMED_SOUND_MISSION_BNK4_41, + STREAMED_SOUND_MISSION_BNK4_42, + STREAMED_SOUND_MISSION_BNK4_43, + STREAMED_SOUND_MISSION_BNK4_44, + STREAMED_SOUND_MISSION_BNK4_45, + STREAMED_SOUND_MISSION_BNK4_46, + STREAMED_SOUND_MISSION_BNK4_47, + STREAMED_SOUND_MISSION_BNK4_48, + STREAMED_SOUND_MISSION_BNK4_49, + STREAMED_SOUND_MISSION_BNK450A, + STREAMED_SOUND_MISSION_BNK450B, + STREAMED_SOUND_MISSION_BNK4_51, + STREAMED_SOUND_MISSION_BNK4_94, + STREAMED_SOUND_MISSION_BNK4_95, + STREAMED_SOUND_MISSION_BNK4_96, + STREAMED_SOUND_MISSION_BNK4_97, + STREAMED_SOUND_MISSION_BNK4_98, + STREAMED_SOUND_MISSION_BNK4_99, + STREAMED_SOUND_MISSION_BUD1_1, + STREAMED_SOUND_MISSION_BUD1_2, + STREAMED_SOUND_MISSION_BUD1_3, + STREAMED_SOUND_MISSION_BUD1_4, + STREAMED_SOUND_MISSION_BUD1_5, + STREAMED_SOUND_MISSION_BUD1_9, + STREAMED_SOUND_MISSION_BUD1_10, + STREAMED_SOUND_MISSION_BUD2_1, + STREAMED_SOUND_MISSION_BUD2_2, + STREAMED_SOUND_MISSION_BUD2_3, + STREAMED_SOUND_MISSION_BUD2_4, + STREAMED_SOUND_MISSION_BUD2_5, + STREAMED_SOUND_MISSION_BUD2_6, + STREAMED_SOUND_MISSION_BUD2_7, + STREAMED_SOUND_MISSION_BUD3_1, + STREAMED_SOUND_MISSION_BUD3_1A, + STREAMED_SOUND_MISSION_BUD3_1B, + STREAMED_SOUND_MISSION_BUD3_1C, + STREAMED_SOUND_MISSION_BUD3_2, + STREAMED_SOUND_MISSION_BUD3_3, + STREAMED_SOUND_MISSION_BUD3_4, + STREAMED_SOUND_MISSION_BUD3_5, + STREAMED_SOUND_MISSION_BUD3_6, + STREAMED_SOUND_MISSION_BUD3_7, + STREAMED_SOUND_MISSION_BUD3_8A, + STREAMED_SOUND_MISSION_BUD3_8B, + STREAMED_SOUND_MISSION_BUD3_8C, + STREAMED_SOUND_MISSION_BUD3_9A, + STREAMED_SOUND_MISSION_BUD3_9B, + STREAMED_SOUND_MISSION_BUD3_9C, + STREAMED_SOUND_MISSION_CAP1_2, + STREAMED_SOUND_MISSION_CAP1_3, + STREAMED_SOUND_MISSION_CAP1_4, + STREAMED_SOUND_MISSION_CAP1_5, + STREAMED_SOUND_MISSION_CAP1_6, + STREAMED_SOUND_MISSION_CAP1_7, + STREAMED_SOUND_MISSION_CAP1_8, + STREAMED_SOUND_MISSION_CAP1_9, + STREAMED_SOUND_MISSION_CAP1_10, + STREAMED_SOUND_MISSION_CAP1_11, + STREAMED_SOUND_MISSION_CAP1_12, + STREAMED_SOUND_MISSION_CNT1_1, + STREAMED_SOUND_MISSION_CNT1_2, + STREAMED_SOUND_MISSION_CNT1_3, + STREAMED_SOUND_MISSION_CNT1_4, + STREAMED_SOUND_MISSION_CNT1_5, + STREAMED_SOUND_MISSION_CNT2_1, + STREAMED_SOUND_MISSION_CNT2_2, + STREAMED_SOUND_MISSION_CNT2_3, + STREAMED_SOUND_MISSION_CNT2_4, + STREAMED_SOUND_MISSION_COK1_1, + STREAMED_SOUND_MISSION_COK1_2, + STREAMED_SOUND_MISSION_COK1_3, + STREAMED_SOUND_MISSION_COK1_4, + STREAMED_SOUND_MISSION_COK1_5, + STREAMED_SOUND_MISSION_COK1_6, + STREAMED_SOUND_MISSION_COK2_1, + STREAMED_SOUND_MISSION_COK2_2, + STREAMED_SOUND_MISSION_COK2_3, + STREAMED_SOUND_MISSION_COK2_4, + STREAMED_SOUND_MISSION_COK2_5, + STREAMED_SOUND_MISSION_COK2_6, + STREAMED_SOUND_MISSION_COK2_7A, + STREAMED_SOUND_MISSION_COK2_7B, + STREAMED_SOUND_MISSION_COK2_7C, + STREAMED_SOUND_MISSION_COK2_8A, + STREAMED_SOUND_MISSION_COK2_8B, + STREAMED_SOUND_MISSION_COK2_8C, + STREAMED_SOUND_MISSION_COK2_8D, + STREAMED_SOUND_MISSION_COK2_9, + STREAMED_SOUND_MISSION_COK210A, + STREAMED_SOUND_MISSION_COK210B, + STREAMED_SOUND_MISSION_COK210C, + STREAMED_SOUND_MISSION_COK212A, + STREAMED_SOUND_MISSION_COK212B, + STREAMED_SOUND_MISSION_COK2_13, + STREAMED_SOUND_MISSION_COK2_14, + STREAMED_SOUND_MISSION_COK2_15, + STREAMED_SOUND_MISSION_COK2_16, + STREAMED_SOUND_MISSION_COK2_20, + STREAMED_SOUND_MISSION_COK2_21, + STREAMED_SOUND_MISSION_COK2_22, + STREAMED_SOUND_MISSION_COK3_1, + STREAMED_SOUND_MISSION_COK3_2, + STREAMED_SOUND_MISSION_COK3_3, + STREAMED_SOUND_MISSION_COK3_4, + STREAMED_SOUND_MISSION_COK4_1, + STREAMED_SOUND_MISSION_COK4_2, + STREAMED_SOUND_MISSION_COK4_3, + STREAMED_SOUND_MISSION_COK4_4, + STREAMED_SOUND_MISSION_COK4_5, + STREAMED_SOUND_MISSION_COK4_6, + STREAMED_SOUND_MISSION_COK4_7, + STREAMED_SOUND_MISSION_COK4_8, + STREAMED_SOUND_MISSION_COK4_9, + STREAMED_SOUND_MISSION_COK4_9A, + STREAMED_SOUND_MISSION_COK4_10, + STREAMED_SOUND_MISSION_COK4_11, + STREAMED_SOUND_MISSION_COK4_12, + STREAMED_SOUND_MISSION_COK4_13, + STREAMED_SOUND_MISSION_COK4_14, + STREAMED_SOUND_MISSION_COK4_15, + STREAMED_SOUND_MISSION_COK4_16, + STREAMED_SOUND_MISSION_COK4_17, + STREAMED_SOUND_MISSION_COK4_18, + STREAMED_SOUND_MISSION_COK4_19, + STREAMED_SOUND_MISSION_COK4_20, + STREAMED_SOUND_MISSION_COK4_21, + STREAMED_SOUND_MISSION_COK4_22, + STREAMED_SOUND_MISSION_COK4_23, + STREAMED_SOUND_MISSION_COK4_24, + STREAMED_SOUND_MISSION_COK4_25, + STREAMED_SOUND_MISSION_COK4_26, + STREAMED_SOUND_MISSION_COK4_27, + STREAMED_SOUND_MISSION_COL1_1, + STREAMED_SOUND_MISSION_COL1_2, + STREAMED_SOUND_MISSION_COL1_3, + STREAMED_SOUND_MISSION_COL1_4, + STREAMED_SOUND_MISSION_COL1_5, + STREAMED_SOUND_MISSION_COL1_6, + STREAMED_SOUND_MISSION_COL1_7, + STREAMED_SOUND_MISSION_COL1_8, + STREAMED_SOUND_MISSION_COL2_1, + STREAMED_SOUND_MISSION_COL2_2, + STREAMED_SOUND_MISSION_COL2_3, + STREAMED_SOUND_MISSION_COL2_4, + STREAMED_SOUND_MISSION_COL2_5, + STREAMED_SOUND_MISSION_COL2_6A, + STREAMED_SOUND_MISSION_COL2_7, + STREAMED_SOUND_MISSION_COL2_8, + STREAMED_SOUND_MISSION_COL2_9, + STREAMED_SOUND_MISSION_COL2_10, + STREAMED_SOUND_MISSION_COL2_11, + STREAMED_SOUND_MISSION_COL2_12, + STREAMED_SOUND_MISSION_COL2_13, + STREAMED_SOUND_MISSION_COL2_14, + STREAMED_SOUND_MISSION_COL2_15, + STREAMED_SOUND_MISSION_COL2_16, + STREAMED_SOUND_MISSION_COL3_1, + STREAMED_SOUND_MISSION_COL3_2, + STREAMED_SOUND_MISSION_COL3_2A, + STREAMED_SOUND_MISSION_COL3_2B, + STREAMED_SOUND_MISSION_COL3_3, + STREAMED_SOUND_MISSION_COL3_4, + STREAMED_SOUND_MISSION_COL3_5, + STREAMED_SOUND_MISSION_COL3_6, + STREAMED_SOUND_MISSION_COL3_7, + STREAMED_SOUND_MISSION_COL3_8, + STREAMED_SOUND_MISSION_COL3_9, + STREAMED_SOUND_MISSION_COL3_10, + STREAMED_SOUND_MISSION_COL3_11, + STREAMED_SOUND_MISSION_COL3_12, + STREAMED_SOUND_MISSION_COL3_13, + STREAMED_SOUND_MISSION_COL3_14, + STREAMED_SOUND_MISSION_COL3_15, + STREAMED_SOUND_MISSION_COL3_16, + STREAMED_SOUND_MISSION_COL3_17, + STREAMED_SOUND_MISSION_COL3_18, + STREAMED_SOUND_MISSION_COL3_19, + STREAMED_SOUND_MISSION_COL3_20, + STREAMED_SOUND_MISSION_COL3_21, + STREAMED_SOUND_MISSION_COL3_23, + STREAMED_SOUND_MISSION_COL3_24, + STREAMED_SOUND_MISSION_COL3_25, + STREAMED_SOUND_MISSION_COL4_1, + STREAMED_SOUND_MISSION_COL4_2, + STREAMED_SOUND_MISSION_COL4_3, + STREAMED_SOUND_MISSION_COL4_4, + STREAMED_SOUND_MISSION_COL4_5, + STREAMED_SOUND_MISSION_COL4_6, + STREAMED_SOUND_MISSION_COL4_7, + STREAMED_SOUND_MISSION_COL4_8, + STREAMED_SOUND_MISSION_COL4_9, + STREAMED_SOUND_MISSION_COL4_10, + STREAMED_SOUND_MISSION_COL4_11, + STREAMED_SOUND_MISSION_COL4_12, + STREAMED_SOUND_MISSION_COL4_13, + STREAMED_SOUND_MISSION_COL4_14, + STREAMED_SOUND_MISSION_COL4_15, + STREAMED_SOUND_MISSION_COL4_16, + STREAMED_SOUND_MISSION_COL4_17, + STREAMED_SOUND_MISSION_COL4_18, + STREAMED_SOUND_MISSION_COL4_19, + STREAMED_SOUND_MISSION_COL4_20, + STREAMED_SOUND_MISSION_COL4_21, + STREAMED_SOUND_MISSION_COL4_22, + STREAMED_SOUND_MISSION_COL4_23, + STREAMED_SOUND_MISSION_COL4_24, + STREAMED_SOUND_MISSION_COL4_25, + STREAMED_SOUND_MISSION_COL4_26, + STREAMED_SOUND_MISSION_COL5_1, + STREAMED_SOUND_MISSION_COL5_2, + STREAMED_SOUND_MISSION_COL5_3, + STREAMED_SOUND_MISSION_COL5_4, + STREAMED_SOUND_MISSION_COL5_5, + STREAMED_SOUND_MISSION_COL5_6, + STREAMED_SOUND_MISSION_COL5_7, + STREAMED_SOUND_MISSION_COL5_8, + STREAMED_SOUND_MISSION_COL5_9, + STREAMED_SOUND_MISSION_COL5_10, + STREAMED_SOUND_MISSION_COL5_11, + STREAMED_SOUND_MISSION_COL5_12, + STREAMED_SOUND_MISSION_COL5_13, + STREAMED_SOUND_MISSION_COL5_14, + STREAMED_SOUND_MISSION_COL5_15, + STREAMED_SOUND_MISSION_COL5_16, + STREAMED_SOUND_MISSION_COL5_17, + STREAMED_SOUND_MISSION_COL5_18, + STREAMED_SOUND_MISSION_COL5_19, + STREAMED_SOUND_MISSION_COL5_20, + STREAMED_SOUND_MISSION_COL5_21, + STREAMED_SOUND_MISSION_COL5_22, + STREAMED_SOUND_MISSION_CUB1_1, + STREAMED_SOUND_MISSION_CUB1_2, + STREAMED_SOUND_MISSION_CUB1_3, + STREAMED_SOUND_MISSION_CUB1_4, + STREAMED_SOUND_MISSION_CUB1_5, + STREAMED_SOUND_MISSION_CUB1_6, + STREAMED_SOUND_MISSION_CUB1_7, + STREAMED_SOUND_MISSION_CUB1_8, + STREAMED_SOUND_MISSION_CUB1_9, + STREAMED_SOUND_MISSION_CUB1_10, + STREAMED_SOUND_MISSION_CUB2_1, + STREAMED_SOUND_MISSION_CUB2_2, + STREAMED_SOUND_MISSION_CUB2_3A, + STREAMED_SOUND_MISSION_CUB2_3B, + STREAMED_SOUND_MISSION_CUB2_3C, + STREAMED_SOUND_MISSION_CUB2_4A, + STREAMED_SOUND_MISSION_CUB2_5, + STREAMED_SOUND_MISSION_CUB2_6, + STREAMED_SOUND_MISSION_CUB2_7, + STREAMED_SOUND_MISSION_CUB2_8, + STREAMED_SOUND_MISSION_CUB2_9, + STREAMED_SOUND_MISSION_CUB2_10, + STREAMED_SOUND_MISSION_CUB2_11, + STREAMED_SOUND_MISSION_CUB3_1, + STREAMED_SOUND_MISSION_CUB3_2, + STREAMED_SOUND_MISSION_CUB3_3, + STREAMED_SOUND_MISSION_CUB3_4, + STREAMED_SOUND_MISSION_CUB4_1, + STREAMED_SOUND_MISSION_CUB4_2, + STREAMED_SOUND_MISSION_CUB4_3, + STREAMED_SOUND_MISSION_CUB4_4, + STREAMED_SOUND_MISSION_CUB4_5, + STREAMED_SOUND_MISSION_CUB4_5A, + STREAMED_SOUND_MISSION_CUB4_6, + STREAMED_SOUND_MISSION_CUB4_7, + STREAMED_SOUND_MISSION_CUB4_8, + STREAMED_SOUND_MISSION_CUB4_9, + STREAMED_SOUND_MISSION_CUB4_10, + STREAMED_SOUND_MISSION_CUB4_11, + STREAMED_SOUND_MISSION_CUB4_12, + STREAMED_SOUND_MISSION_CUB4_13, + STREAMED_SOUND_MISSION_CUB4_14, + STREAMED_SOUND_MISSION_CUB4_15, + STREAMED_SOUND_MISSION_CUB4_16, + STREAMED_SOUND_MISSION_GOLF_1, + STREAMED_SOUND_MISSION_GOLF_2, + STREAMED_SOUND_MISSION_GOLF_3, + STREAMED_SOUND_MISSION_BAR_1, + STREAMED_SOUND_MISSION_BAR_2, + STREAMED_SOUND_MISSION_BAR_3, + STREAMED_SOUND_MISSION_BAR_4, + STREAMED_SOUND_MISSION_BAR_5, + STREAMED_SOUND_MISSION_BAR_6, + STREAMED_SOUND_MISSION_BAR_7, + STREAMED_SOUND_MISSION_BAR_8, + STREAMED_SOUND_MISSION_STRIP_1, + STREAMED_SOUND_MISSION_STRIP_2, + STREAMED_SOUND_MISSION_STRIP_3, + STREAMED_SOUND_MISSION_STRIP_4, + STREAMED_SOUND_MISSION_STRIP_5, + STREAMED_SOUND_MISSION_STRIP_6, + STREAMED_SOUND_MISSION_STRIP_7, + STREAMED_SOUND_MISSION_STRIP_8, + STREAMED_SOUND_MISSION_STRIP_9, + STREAMED_SOUND_MISSION_STAR_1, + STREAMED_SOUND_MISSION_STAR_2, + STREAMED_SOUND_MISSION_STAR_3, + STREAMED_SOUND_MISSION_STAR_4, + STREAMED_SOUND_MISSION_FIN_1A, + STREAMED_SOUND_MISSION_FIN_1B, + STREAMED_SOUND_MISSION_FIN_1C, + STREAMED_SOUND_MISSION_FIN_2B, + STREAMED_SOUND_MISSION_FIN_2C, + STREAMED_SOUND_MISSION_FIN_3, + STREAMED_SOUND_MISSION_FIN_4, + STREAMED_SOUND_MISSION_FIN_5, + STREAMED_SOUND_MISSION_FIN_6, + STREAMED_SOUND_MISSION_FIN_10, + STREAMED_SOUND_MISSION_FIN_11A, + STREAMED_SOUND_MISSION_FIN_11B, + STREAMED_SOUND_MISSION_FIN_12A, + STREAMED_SOUND_MISSION_FIN_12B, + STREAMED_SOUND_MISSION_FIN_12C, + STREAMED_SOUND_MISSION_FIN_13, + STREAMED_SOUND_MISSION_FINKILL, + STREAMED_SOUND_MISSION_LAW1_1, + STREAMED_SOUND_MISSION_LAW1_2, + STREAMED_SOUND_MISSION_LAW1_3, + STREAMED_SOUND_MISSION_LAW1_4, + STREAMED_SOUND_MISSION_LAW1_5, + STREAMED_SOUND_MISSION_LAW1_6, + STREAMED_SOUND_MISSION_LAW1_7, + STREAMED_SOUND_MISSION_LAW1_8, + STREAMED_SOUND_MISSION_LAW1_9, + STREAMED_SOUND_MISSION_LAW1_10, + STREAMED_SOUND_MISSION_LAW2_1, + STREAMED_SOUND_MISSION_LAW2_2, + STREAMED_SOUND_MISSION_LAW2_3, + STREAMED_SOUND_MISSION_LAW2_4, + STREAMED_SOUND_MISSION_LAW2_5, + STREAMED_SOUND_MISSION_LAW2_6, + STREAMED_SOUND_MISSION_LAW2_7, + STREAMED_SOUND_MISSION_LAW2_8, + STREAMED_SOUND_MISSION_LAW2_9, + STREAMED_SOUND_MISSION_LAW2_10, + STREAMED_SOUND_MISSION_LAW3_1, + STREAMED_SOUND_MISSION_LAW3_2, + STREAMED_SOUND_MISSION_LAW3_3, + STREAMED_SOUND_MISSION_LAW3_4, + STREAMED_SOUND_MISSION_LAW3_5, + STREAMED_SOUND_MISSION_LAW3_6, + STREAMED_SOUND_MISSION_LAW3_10, + STREAMED_SOUND_MISSION_LAW3_11, + STREAMED_SOUND_MISSION_LAW3_12, + STREAMED_SOUND_MISSION_LAW3_13, + STREAMED_SOUND_MISSION_LAW3_14, + STREAMED_SOUND_MISSION_LAW3_16, + STREAMED_SOUND_MISSION_LAW3_17, + STREAMED_SOUND_MISSION_LAW3_18, + STREAMED_SOUND_MISSION_LAW3_19, + STREAMED_SOUND_MISSION_LAW3_20, + STREAMED_SOUND_MISSION_LAW3_21, + STREAMED_SOUND_MISSION_LAW3_22, + STREAMED_SOUND_MISSION_LAW3_23, + STREAMED_SOUND_MISSION_LAW3_24, + STREAMED_SOUND_MISSION_LAW3_25, + STREAMED_SOUND_MISSION_LAW4_1A, + STREAMED_SOUND_MISSION_LAW4_1B, + STREAMED_SOUND_MISSION_LAW4_1C, + STREAMED_SOUND_MISSION_LAW4_1D, + STREAMED_SOUND_MISSION_LAW4_10, + STREAMED_SOUND_MISSION_LAW4_3, + STREAMED_SOUND_MISSION_LAW4_4, + STREAMED_SOUND_MISSION_LAW4_5, + STREAMED_SOUND_MISSION_LAW4_6, + STREAMED_SOUND_MISSION_LAW4_7, + STREAMED_SOUND_MISSION_LAW4_8, + STREAMED_SOUND_MISSION_LAW4_9, + STREAMED_SOUND_MISSION_PHIL1_2, + STREAMED_SOUND_MISSION_PHIL1_3, + STREAMED_SOUND_MISSION_PHIL2_1, + STREAMED_SOUND_MISSION_PHIL2_2, + STREAMED_SOUND_MISSION_PHIL2_3, + STREAMED_SOUND_MISSION_PHIL2_4, + STREAMED_SOUND_MISSION_PHIL2_5, + STREAMED_SOUND_MISSION_PHIL2_6, + STREAMED_SOUND_MISSION_PHIL2_7, + STREAMED_SOUND_MISSION_PHIL2_8, + STREAMED_SOUND_MISSION_PHIL2_9, + STREAMED_SOUND_MISSION_PHIL210, + STREAMED_SOUND_MISSION_PHIL211, + STREAMED_SOUND_MISSION_PORN1_1, + STREAMED_SOUND_MISSION_PORN1_2, + STREAMED_SOUND_MISSION_PORN1_3, + STREAMED_SOUND_MISSION_PRN1_3A, + STREAMED_SOUND_MISSION_PORN1_4, + STREAMED_SOUND_MISSION_PORN1_5, + STREAMED_SOUND_MISSION_PORN1_6, + STREAMED_SOUND_MISSION_PORN1_7, + STREAMED_SOUND_MISSION_PORN1_8, + STREAMED_SOUND_MISSION_PORN1_9, + STREAMED_SOUND_MISSION_PRN1_10, + STREAMED_SOUND_MISSION_PRN1_11, + STREAMED_SOUND_MISSION_PRN1_12, + STREAMED_SOUND_MISSION_PRN1_13, + STREAMED_SOUND_MISSION_PRN1_14, + STREAMED_SOUND_MISSION_PRN1_15, + STREAMED_SOUND_MISSION_PRN1_16, + STREAMED_SOUND_MISSION_PRN1_17, + STREAMED_SOUND_MISSION_PRN1_18, + STREAMED_SOUND_MISSION_PRN1_19, + STREAMED_SOUND_MISSION_PRN1_20, + STREAMED_SOUND_MISSION_PRN1_21, + STREAMED_SOUND_MISSION_PORN3_1, + STREAMED_SOUND_MISSION_PORN3_2, + STREAMED_SOUND_MISSION_PORN3_3, + STREAMED_SOUND_MISSION_PORN3_4, + STREAMED_SOUND_MISSION_PSYCH_1, + STREAMED_SOUND_MISSION_PSYCH_2, + STREAMED_SOUND_MISSION_ROK2_01, + STREAMED_SOUND_MISSION_ROK3_1, + STREAMED_SOUND_MISSION_ROK3_2, + STREAMED_SOUND_MISSION_ROK3_3, + STREAMED_SOUND_MISSION_ROK3_4, + STREAMED_SOUND_MISSION_ROK3_5, + STREAMED_SOUND_MISSION_ROK3_6, + STREAMED_SOUND_MISSION_ROK3_7, + STREAMED_SOUND_MISSION_ROK3_8, + STREAMED_SOUND_MISSION_ROK3_9, + STREAMED_SOUND_MISSION_ROK3_10, + STREAMED_SOUND_MISSION_ROK3_11, + STREAMED_SOUND_MISSION_ROK3_12, + STREAMED_SOUND_MISSION_ROK3_13, + STREAMED_SOUND_MISSION_ROK3_14, + STREAMED_SOUND_MISSION_ROK3_15, + STREAMED_SOUND_MISSION_ROK3_16, + STREAMED_SOUND_MISSION_ROK3_17, + STREAMED_SOUND_MISSION_ROK3_18, + STREAMED_SOUND_MISSION_ROK3_19, + STREAMED_SOUND_MISSION_ROK3_20, + STREAMED_SOUND_MISSION_ROK3_21, + STREAMED_SOUND_MISSION_ROK3_22, + STREAMED_SOUND_MISSION_ROK3_23, + STREAMED_SOUND_MISSION_ROK3_24, + STREAMED_SOUND_MISSION_ROK3_25, + STREAMED_SOUND_MISSION_ROK3_26, + STREAMED_SOUND_MISSION_ROK3_27, + STREAMED_SOUND_MISSION_ROK3_62, + STREAMED_SOUND_MISSION_ROK3_63, + STREAMED_SOUND_MISSION_ROK3_64, + STREAMED_SOUND_MISSION_ROK3_65, + STREAMED_SOUND_MISSION_ROK3_66, + STREAMED_SOUND_MISSION_ROK3_67, + STREAMED_SOUND_MISSION_ROK3_68, + STREAMED_SOUND_MISSION_ROK3_69, + STREAMED_SOUND_MISSION_ROK3_70, + STREAMED_SOUND_MISSION_ROK3_71, + STREAMED_SOUND_MISSION_ROK3_73, + STREAMED_SOUND_MISSION_RESC_1, + STREAMED_SOUND_MISSION_RESC_2, + STREAMED_SOUND_MISSION_RESC_3, + STREAMED_SOUND_MISSION_RESC_4, + STREAMED_SOUND_MISSION_RESC_5, + STREAMED_SOUND_MISSION_RESC_6, + STREAMED_SOUND_MISSION_RESC_7, + STREAMED_SOUND_MISSION_RESC_8, + STREAMED_SOUND_MISSION_RESC_9, + STREAMED_SOUND_MISSION_RESC_10, + STREAMED_SOUND_MISSION_ROK1_1A, + STREAMED_SOUND_MISSION_ROK1_1B, + STREAMED_SOUND_MISSION_ROK1_5, + STREAMED_SOUND_MISSION_ROK1_6, + STREAMED_SOUND_MISSION_ROK1_7, + STREAMED_SOUND_MISSION_ROK1_8, + STREAMED_SOUND_MISSION_ROK1_9, + STREAMED_SOUND_MISSION_TAX1_1, + STREAMED_SOUND_MISSION_TAX1_2, + STREAMED_SOUND_MISSION_TAX1_3, + STREAMED_SOUND_MISSION_TAX1_4, + STREAMED_SOUND_MISSION_TAX1_5, + STREAMED_SOUND_MISSION_TAX2_1, + STREAMED_SOUND_MISSION_TAX2_2, + STREAMED_SOUND_MISSION_TAX2_3, + STREAMED_SOUND_MISSION_TAX2_4, + STREAMED_SOUND_MISSION_TAX2_5, + STREAMED_SOUND_MISSION_TAX2_6, + STREAMED_SOUND_MISSION_TAX2_7, + STREAMED_SOUND_MISSION_TAX3_1, + STREAMED_SOUND_MISSION_TAX3_2, + STREAMED_SOUND_MISSION_TAX3_3, + STREAMED_SOUND_MISSION_TAX3_4, + STREAMED_SOUND_MISSION_TAX3_5, + STREAMED_SOUND_MISSION_TEX1_1, + STREAMED_SOUND_MISSION_TEX1_2, + STREAMED_SOUND_MISSION_TEX1_3, + STREAMED_SOUND_MISSION_TEX1_4, + STREAMED_SOUND_MISSION_TEX1_5, + STREAMED_SOUND_MISSION_TEX1_6, + STREAMED_SOUND_MISSION_TEX2_1, + STREAMED_SOUND_MISSION_TEX3_1, + STREAMED_SOUND_MISSION_TEX3_2, + STREAMED_SOUND_MISSION_TEX3_3, + STREAMED_SOUND_MISSION_TEX3_4, + STREAMED_SOUND_MISSION_TEX3_5, + STREAMED_SOUND_MISSION_TEX3_6, + STREAMED_SOUND_MISSION_TEX3_7, + STREAMED_SOUND_MISSION_TEX3_8, + STREAMED_SOUND_MISSION_HAT_1A, + STREAMED_SOUND_MISSION_INTRO1, + STREAMED_SOUND_MISSION_INTRO2, + STREAMED_SOUND_MISSION_INTRO3, + STREAMED_SOUND_MISSION_INTRO4, + STREAMED_SOUND_MISSION_MOB_01A, + STREAMED_SOUND_MISSION_MOB_01B, + STREAMED_SOUND_MISSION_MOB_01C, + STREAMED_SOUND_MISSION_MOB_02A, + STREAMED_SOUND_MISSION_MOB_02B, + STREAMED_SOUND_MISSION_MOB_02C, + STREAMED_SOUND_MISSION_MOB_03A, + STREAMED_SOUND_MISSION_MOB_03B, + STREAMED_SOUND_MISSION_MOB_03C, + STREAMED_SOUND_MISSION_MOB_03D, + STREAMED_SOUND_MISSION_MOB_03E, + STREAMED_SOUND_MISSION_SHARK_1, + STREAMED_SOUND_MISSION_SHARK_2, + STREAMED_SOUND_MISSION_SHARK_3, + STREAMED_SOUND_MISSION_SHARK_4, + STREAMED_SOUND_MISSION_SHARK_5, + STREAMED_SOUND_MISSION_MOB_04A, + STREAMED_SOUND_MISSION_MOB_04B, + STREAMED_SOUND_MISSION_MOB_04C, + STREAMED_SOUND_MISSION_MOB_04D, + STREAMED_SOUND_MISSION_MOB_05A, + STREAMED_SOUND_MISSION_MOB_05B, + STREAMED_SOUND_MISSION_MOB_05C, + STREAMED_SOUND_MISSION_MOB_05D, + STREAMED_SOUND_MISSION_MOB_06A, + STREAMED_SOUND_MISSION_MOB_06B, + STREAMED_SOUND_MISSION_MOB_06C, + STREAMED_SOUND_MISSION_MOB_07A, + STREAMED_SOUND_MISSION_MOB_07B, + STREAMED_SOUND_MISSION_MOB_08A, + STREAMED_SOUND_MISSION_MOB_08B, + STREAMED_SOUND_MISSION_MOB_08C, + STREAMED_SOUND_MISSION_MOB_08D, + STREAMED_SOUND_MISSION_MOB_08E, + STREAMED_SOUND_MISSION_MOB_08F, + STREAMED_SOUND_MISSION_MOB_08G, + STREAMED_SOUND_MISSION_MOB_09A, + STREAMED_SOUND_MISSION_MOB_09B, + STREAMED_SOUND_MISSION_MOB_09C, + STREAMED_SOUND_MISSION_MOB_09D, + STREAMED_SOUND_MISSION_MOB_09E, + STREAMED_SOUND_MISSION_MOB_09F, + STREAMED_SOUND_MISSION_MOB_10A, + STREAMED_SOUND_MISSION_MOB_10B, + STREAMED_SOUND_MISSION_MOB_10C, + STREAMED_SOUND_MISSION_MOB_10D, + STREAMED_SOUND_MISSION_MOB_10E, + STREAMED_SOUND_MISSION_MOB_11A, + STREAMED_SOUND_MISSION_MOB_11B, + STREAMED_SOUND_MISSION_MOB_11C, + STREAMED_SOUND_MISSION_MOB_11D, + STREAMED_SOUND_MISSION_MOB_11E, + STREAMED_SOUND_MISSION_MOB_11F, + STREAMED_SOUND_MISSION_MOB_14A, + STREAMED_SOUND_MISSION_MOB_14B, + STREAMED_SOUND_MISSION_MOB_14C, + STREAMED_SOUND_MISSION_MOB_14D, + STREAMED_SOUND_MISSION_MOB_14E, + STREAMED_SOUND_MISSION_MOB_14F, + STREAMED_SOUND_MISSION_MOB_14G, + STREAMED_SOUND_MISSION_MOB_14H, + STREAMED_SOUND_MISSION_MOB_16A, + STREAMED_SOUND_MISSION_MOB_16B, + STREAMED_SOUND_MISSION_MOB_16C, + STREAMED_SOUND_MISSION_MOB_16D, + STREAMED_SOUND_MISSION_MOB_16E, + STREAMED_SOUND_MISSION_MOB_16F, + STREAMED_SOUND_MISSION_MOB_16G, + STREAMED_SOUND_MISSION_MOB_17A, + STREAMED_SOUND_MISSION_MOB_17B, + STREAMED_SOUND_MISSION_MOB_17C, + STREAMED_SOUND_MISSION_MOB_17D, + STREAMED_SOUND_MISSION_MOB_17E, + STREAMED_SOUND_MISSION_MOB_17G, + STREAMED_SOUND_MISSION_MOB_17H, + STREAMED_SOUND_MISSION_MOB_17I, + STREAMED_SOUND_MISSION_MOB_17J, + STREAMED_SOUND_MISSION_MOB_17K, + STREAMED_SOUND_MISSION_MOB_17L, + STREAMED_SOUND_MISSION_MOB_18A, + STREAMED_SOUND_MISSION_MOB_18B, + STREAMED_SOUND_MISSION_MOB_18C, + STREAMED_SOUND_MISSION_MOB_18D, + STREAMED_SOUND_MISSION_MOB_18E, + STREAMED_SOUND_MISSION_MOB_18F, + STREAMED_SOUND_MISSION_MOB_18G, + STREAMED_SOUND_MISSION_MOB_20A, + STREAMED_SOUND_MISSION_MOB_20B, + STREAMED_SOUND_MISSION_MOB_20C, + STREAMED_SOUND_MISSION_MOB_20D, + STREAMED_SOUND_MISSION_MOB_20E, + STREAMED_SOUND_MISSION_MOB_24A, + STREAMED_SOUND_MISSION_MOB_24B, + STREAMED_SOUND_MISSION_MOB_24C, + STREAMED_SOUND_MISSION_MOB_24D, + STREAMED_SOUND_MISSION_MOB_24E, + STREAMED_SOUND_MISSION_MOB_24F, + STREAMED_SOUND_MISSION_MOB_24G, + STREAMED_SOUND_MISSION_MOB_24H, + STREAMED_SOUND_MISSION_MOB_25A, + STREAMED_SOUND_MISSION_MOB_25B, + STREAMED_SOUND_MISSION_MOB_25C, + STREAMED_SOUND_MISSION_MOB_25D, + STREAMED_SOUND_MISSION_MOB_26A, + STREAMED_SOUND_MISSION_MOB_26B, + STREAMED_SOUND_MISSION_MOB_26C, + STREAMED_SOUND_MISSION_MOB_26D, + STREAMED_SOUND_MISSION_MOB_26E, + STREAMED_SOUND_MISSION_MOB_29A, + STREAMED_SOUND_MISSION_MOB_29B, + STREAMED_SOUND_MISSION_MOB_29C, + STREAMED_SOUND_MISSION_MOB_29D, + STREAMED_SOUND_MISSION_MOB_29E, + STREAMED_SOUND_MISSION_MOB_29F, + STREAMED_SOUND_MISSION_MOB_29G, + STREAMED_SOUND_MISSION_MOB_30A, + STREAMED_SOUND_MISSION_MOB_30B, + STREAMED_SOUND_MISSION_MOB_30C, + STREAMED_SOUND_MISSION_MOB_30D, + STREAMED_SOUND_MISSION_MOB_30E, + STREAMED_SOUND_MISSION_MOB_30F, + STREAMED_SOUND_MISSION_MOB_33A, + STREAMED_SOUND_MISSION_MOB_33B, + STREAMED_SOUND_MISSION_MOB_33C, + STREAMED_SOUND_MISSION_MOB_33D, + STREAMED_SOUND_MISSION_MOB_34A, + STREAMED_SOUND_MISSION_MOB_34B, + STREAMED_SOUND_MISSION_MOB_34C, + STREAMED_SOUND_MISSION_MOB_34D, + STREAMED_SOUND_MISSION_MOB_35A, + STREAMED_SOUND_MISSION_MOB_35B, + STREAMED_SOUND_MISSION_MOB_35C, + STREAMED_SOUND_MISSION_MOB_35D, + STREAMED_SOUND_MISSION_MOB_36A, + STREAMED_SOUND_MISSION_MOB_36B, + STREAMED_SOUND_MISSION_MOB_36C, + STREAMED_SOUND_MISSION_MOB_40A, + STREAMED_SOUND_MISSION_MOB_40B, + STREAMED_SOUND_MISSION_MOB_40C, + STREAMED_SOUND_MISSION_MOB_40D, + STREAMED_SOUND_MISSION_MOB_40E, + STREAMED_SOUND_MISSION_MOB_40F, + STREAMED_SOUND_MISSION_MOB_40G, + STREAMED_SOUND_MISSION_MOB_40H, + STREAMED_SOUND_MISSION_MOB_40I, + STREAMED_SOUND_MISSION_MOB_41A, + STREAMED_SOUND_MISSION_MOB_41B, + STREAMED_SOUND_MISSION_MOB_41C, + STREAMED_SOUND_MISSION_MOB_41D, + STREAMED_SOUND_MISSION_MOB_41E, + STREAMED_SOUND_MISSION_MOB_41F, + STREAMED_SOUND_MISSION_MOB_41G, + STREAMED_SOUND_MISSION_MOB_41H, + STREAMED_SOUND_MISSION_MOB_42A, + STREAMED_SOUND_MISSION_MOB_42B, + STREAMED_SOUND_MISSION_MOB_42C, + STREAMED_SOUND_MISSION_MOB_42D, + STREAMED_SOUND_MISSION_MOB_42E, + STREAMED_SOUND_MISSION_MOB_43A, + STREAMED_SOUND_MISSION_MOB_43B, + STREAMED_SOUND_MISSION_MOB_43C, + STREAMED_SOUND_MISSION_MOB_43D, + STREAMED_SOUND_MISSION_MOB_43E, + STREAMED_SOUND_MISSION_MOB_43F, + STREAMED_SOUND_MISSION_MOB_43G, + STREAMED_SOUND_MISSION_MOB_43H, + STREAMED_SOUND_MISSION_MOB_45A, + STREAMED_SOUND_MISSION_MOB_45B, + STREAMED_SOUND_MISSION_MOB_45C, + STREAMED_SOUND_MISSION_MOB_45D, + STREAMED_SOUND_MISSION_MOB_45E, + STREAMED_SOUND_MISSION_MOB_45F, + STREAMED_SOUND_MISSION_MOB_45G, + STREAMED_SOUND_MISSION_MOB_45H, + STREAMED_SOUND_MISSION_MOB_45I, + STREAMED_SOUND_MISSION_MOB_45J, + STREAMED_SOUND_MISSION_MOB_45K, + STREAMED_SOUND_MISSION_MOB_45L, + STREAMED_SOUND_MISSION_MOB_45M, + STREAMED_SOUND_MISSION_MOB_45N, + STREAMED_SOUND_MISSION_MOB_46A, + STREAMED_SOUND_MISSION_MOB_46B, + STREAMED_SOUND_MISSION_MOB_46C, + STREAMED_SOUND_MISSION_MOB_46D, + STREAMED_SOUND_MISSION_MOB_46E, + STREAMED_SOUND_MISSION_MOB_46F, + STREAMED_SOUND_MISSION_MOB_46G, + STREAMED_SOUND_MISSION_MOB_46H, + STREAMED_SOUND_MISSION_MOB_47A, + STREAMED_SOUND_MISSION_MOB_52A, + STREAMED_SOUND_MISSION_MOB_52B, + STREAMED_SOUND_MISSION_MOB_52C, + STREAMED_SOUND_MISSION_MOB_52D, + STREAMED_SOUND_MISSION_MOB_52E, + STREAMED_SOUND_MISSION_MOB_52F, + STREAMED_SOUND_MISSION_MOB_52G, + STREAMED_SOUND_MISSION_MOB_52H, + STREAMED_SOUND_MISSION_MOB_54A, + STREAMED_SOUND_MISSION_MOB_54B, + STREAMED_SOUND_MISSION_MOB_54C, + STREAMED_SOUND_MISSION_MOB_54D, + STREAMED_SOUND_MISSION_MOB_54E, + STREAMED_SOUND_MISSION_MOB_55A, + STREAMED_SOUND_MISSION_MOB_55B, + STREAMED_SOUND_MISSION_MOB_55C, + STREAMED_SOUND_MISSION_MOB_55D, + STREAMED_SOUND_MISSION_MOB_55E, + STREAMED_SOUND_MISSION_MOB_55F, + STREAMED_SOUND_MISSION_MOB_56A, + STREAMED_SOUND_MISSION_MOB_56B, + STREAMED_SOUND_MISSION_MOB_56C, + STREAMED_SOUND_MISSION_MOB_56D, + STREAMED_SOUND_MISSION_MOB_56E, + STREAMED_SOUND_MISSION_MOB_56F, + STREAMED_SOUND_MISSION_MOB_57A, + STREAMED_SOUND_MISSION_MOB_57B, + STREAMED_SOUND_MISSION_MOB_57C, + STREAMED_SOUND_MISSION_MOB_57D, + STREAMED_SOUND_MISSION_MOB_57E, + STREAMED_SOUND_MISSION_MOB_58A, + STREAMED_SOUND_MISSION_MOB_58B, + STREAMED_SOUND_MISSION_MOB_58C, + STREAMED_SOUND_MISSION_MOB_58D, + STREAMED_SOUND_MISSION_MOB_58E, + STREAMED_SOUND_MISSION_MOB_58F, + STREAMED_SOUND_MISSION_MOB_58G, + STREAMED_SOUND_MISSION_MOB_61A, + STREAMED_SOUND_MISSION_MOB_61B, + STREAMED_SOUND_MISSION_MOB_62A, + STREAMED_SOUND_MISSION_MOB_62B, + STREAMED_SOUND_MISSION_MOB_62C, + STREAMED_SOUND_MISSION_MOB_62D, + STREAMED_SOUND_MISSION_MOB_63A, + STREAMED_SOUND_MISSION_MOB_63B, + STREAMED_SOUND_MISSION_MOB_63C, + STREAMED_SOUND_MISSION_MOB_63D, + STREAMED_SOUND_MISSION_MOB_63E, + STREAMED_SOUND_MISSION_MOB_63F, + STREAMED_SOUND_MISSION_MOB_63G, + STREAMED_SOUND_MISSION_MOB_63H, + STREAMED_SOUND_MISSION_MOB_63I, + STREAMED_SOUND_MISSION_MOB_63J, + STREAMED_SOUND_MISSION_MOB_66A, + STREAMED_SOUND_MISSION_MOB_66B, + STREAMED_SOUND_MISSION_MOB_68A, + STREAMED_SOUND_MISSION_MOB_68B, + STREAMED_SOUND_MISSION_MOB_68C, + STREAMED_SOUND_MISSION_MOB_68D, + STREAMED_SOUND_MISSION_MOB_70A, + STREAMED_SOUND_MISSION_MOB_70B, + STREAMED_SOUND_MISSION_MOB_71A, + STREAMED_SOUND_MISSION_MOB_71B, + STREAMED_SOUND_MISSION_MOB_71C, + STREAMED_SOUND_MISSION_MOB_71D, + STREAMED_SOUND_MISSION_MOB_71E, + STREAMED_SOUND_MISSION_MOB_71F, + STREAMED_SOUND_MISSION_MOB_71G, + STREAMED_SOUND_MISSION_MOB_71H, + STREAMED_SOUND_MISSION_MOB_71I, + STREAMED_SOUND_MISSION_MOB_71J, + STREAMED_SOUND_MISSION_MOB_71K, + STREAMED_SOUND_MISSION_MOB_71L, + STREAMED_SOUND_MISSION_MOB_71M, + STREAMED_SOUND_MISSION_MOB_71N, + STREAMED_SOUND_MISSION_MOB_72A, + STREAMED_SOUND_MISSION_MOB_72B, + STREAMED_SOUND_MISSION_MOB_72C, + STREAMED_SOUND_MISSION_MOB_72D, + STREAMED_SOUND_MISSION_MOB_72E, + STREAMED_SOUND_MISSION_MOB_72F, + STREAMED_SOUND_MISSION_MOB_72G, + STREAMED_SOUND_MISSION_MOB_73A, + STREAMED_SOUND_MISSION_MOB_73C, + STREAMED_SOUND_MISSION_MOB_73D, + STREAMED_SOUND_MISSION_MOB_73F, + STREAMED_SOUND_MISSION_MOB_73G, + STREAMED_SOUND_MISSION_MOB_73I, + STREAMED_SOUND_MISSION_MOB_95A, + STREAMED_SOUND_MISSION_MOB_96A, + STREAMED_SOUND_MISSION_MOB_98A, + STREAMED_SOUND_MISSION_MOB_99A, + STREAMED_SOUND_MISSION_JOB1_1B, + STREAMED_SOUND_MISSION_JOB1_1C, + STREAMED_SOUND_MISSION_JOB1_1D, + STREAMED_SOUND_MISSION_JOB2_1B, + STREAMED_SOUND_MISSION_JOB2_2, + STREAMED_SOUND_MISSION_JOB2_3, + STREAMED_SOUND_MISSION_JOB2_4, + STREAMED_SOUND_MISSION_JOB2_5, + STREAMED_SOUND_MISSION_JOB2_6, + STREAMED_SOUND_MISSION_JOB2_7, + STREAMED_SOUND_MISSION_JOB2_8, + STREAMED_SOUND_MISSION_JOB2_9, + STREAMED_SOUND_MISSION_JOB3_1, + STREAMED_SOUND_MISSION_JOB3_2, + STREAMED_SOUND_MISSION_JOB3_3, + STREAMED_SOUND_MISSION_JOB4_1, + STREAMED_SOUND_MISSION_JOB4_2, + STREAMED_SOUND_MISSION_JOB4_3, + STREAMED_SOUND_MISSION_JOB5_1, + STREAMED_SOUND_MISSION_JOB5_2, + STREAMED_SOUND_MISSION_JOB5_3, + STREAMED_SOUND_MISSION_BJM1_20, + STREAMED_SOUND_MISSION_BJM1_4, + STREAMED_SOUND_MISSION_BJM1_5, + STREAMED_SOUND_MISSION_MERC_39, + STREAMED_SOUND_MISSION_MONO_1, + STREAMED_SOUND_MISSION_MONO_2, + STREAMED_SOUND_MISSION_MONO_3, + STREAMED_SOUND_MISSION_MONO_4, + STREAMED_SOUND_MISSION_MONO_5, + STREAMED_SOUND_MISSION_MONO_6, + STREAMED_SOUND_MISSION_MONO_7, + STREAMED_SOUND_MISSION_MONO_8, + STREAMED_SOUND_MISSION_MONO_9, + STREAMED_SOUND_MISSION_MONO10, + STREAMED_SOUND_MISSION_MONO11, + STREAMED_SOUND_MISSION_MONO12, + STREAMED_SOUND_MISSION_MONO13, + STREAMED_SOUND_MISSION_MONO14, + STREAMED_SOUND_MISSION_MONO15, + STREAMED_SOUND_MISSION_MONO16, + STREAMED_SOUND_MISSION_FUD_01, + STREAMED_SOUND_MISSION_FUD_02, + STREAMED_SOUND_MISSION_FUD_03, + STREAMED_SOUND_MISSION_FUD_04, + STREAMED_SOUND_MISSION_FUD_05, + STREAMED_SOUND_MISSION_FUD_06, + STREAMED_SOUND_MISSION_FUD_07, + STREAMED_SOUND_MISSION_FUD_08, + STREAMED_SOUND_MISSION_FUD_09, + STREAMED_SOUND_MISSION_FUD_10, + STREAMED_SOUND_MISSION_FUD_11, + STREAMED_SOUND_MISSION_FUD_12, + STREAMED_SOUND_MISSION_FUD_13, + STREAMED_SOUND_MISSION_FUD_14, + STREAMED_SOUND_MISSION_FUD_15, + STREAMED_SOUND_MISSION_FUD_16, + STREAMED_SOUND_MISSION_FUD_17, + STREAMED_SOUND_MISSION_FUD_18, + STREAMED_SOUND_MISSION_FUD_19, + STREAMED_SOUND_MISSION_FUD_20, + STREAMED_SOUND_MISSION_BURG_01, + STREAMED_SOUND_MISSION_BURG_02, + STREAMED_SOUND_MISSION_BURG_03, + STREAMED_SOUND_MISSION_BURG_04, + STREAMED_SOUND_MISSION_BURG_05, + STREAMED_SOUND_MISSION_BURG_06, + STREAMED_SOUND_MISSION_BURG_07, + STREAMED_SOUND_MISSION_BURG_08, + STREAMED_SOUND_MISSION_BURG_09, + STREAMED_SOUND_MISSION_BURG_10, + STREAMED_SOUND_MISSION_BURG_11, + STREAMED_SOUND_MISSION_BURG_12, + STREAMED_SOUND_MISSION_CRUST01, + STREAMED_SOUND_MISSION_CRUST02, + STREAMED_SOUND_MISSION_CRUST03, + STREAMED_SOUND_MISSION_CRUST04, + STREAMED_SOUND_MISSION_CRUST05, + STREAMED_SOUND_MISSION_CRUST06, + STREAMED_SOUND_MISSION_CRUST07, + STREAMED_SOUND_MISSION_CRUST08, + STREAMED_SOUND_MISSION_CRUST09, + STREAMED_SOUND_MISSION_BAND_01, + STREAMED_SOUND_MISSION_BAND_02, + STREAMED_SOUND_MISSION_BAND_03, + STREAMED_SOUND_MISSION_BAND_04, + STREAMED_SOUND_MISSION_BAND_05, + STREAMED_SOUND_MISSION_BAND_06, + STREAMED_SOUND_MISSION_BAND_07, + STREAMED_SOUND_MISSION_BAND_08, + STREAMED_SOUND_MISSION_SHAFT01, + STREAMED_SOUND_MISSION_SHAFT02, + STREAMED_SOUND_MISSION_SHAFT03, + STREAMED_SOUND_MISSION_SHAFT04, + STREAMED_SOUND_MISSION_SHAFT05, + STREAMED_SOUND_MISSION_SHAFT06, + STREAMED_SOUND_MISSION_SHAFT07, + STREAMED_SOUND_MISSION_SHAFT08, + STREAMED_SOUND_MISSION_PISS_01, + STREAMED_SOUND_MISSION_PISS_02, + STREAMED_SOUND_MISSION_PISS_03, + STREAMED_SOUND_MISSION_PISS_04, + STREAMED_SOUND_MISSION_PISS_05, + STREAMED_SOUND_MISSION_PISS_06, + STREAMED_SOUND_MISSION_PISS_07, + STREAMED_SOUND_MISSION_PISS_08, + STREAMED_SOUND_MISSION_PISS_09, + STREAMED_SOUND_MISSION_PISS_10, + STREAMED_SOUND_MISSION_PISS_11, + STREAMED_SOUND_MISSION_PISS_12, + STREAMED_SOUND_MISSION_PISS_13, + STREAMED_SOUND_MISSION_PISS_14, + STREAMED_SOUND_MISSION_PISS_15, + STREAMED_SOUND_MISSION_PISS_16, + STREAMED_SOUND_MISSION_PISS_17, + STREAMED_SOUND_MISSION_PISS_18, + STREAMED_SOUND_MISSION_PISS_19, + STREAMED_SOUND_MISSION_GIMME01, + STREAMED_SOUND_MISSION_GIMME02, + STREAMED_SOUND_MISSION_GIMME03, + STREAMED_SOUND_MISSION_GIMME04, + STREAMED_SOUND_MISSION_GIMME05, + STREAMED_SOUND_MISSION_GIMME06, + STREAMED_SOUND_MISSION_GIMME07, + STREAMED_SOUND_MISSION_GIMME08, + STREAMED_SOUND_MISSION_GIMME09, + STREAMED_SOUND_MISSION_GIMME10, + STREAMED_SOUND_MISSION_GIMME11, + STREAMED_SOUND_MISSION_GIMME12, + STREAMED_SOUND_MISSION_GIMME13, + STREAMED_SOUND_MISSION_GIMME14, + STREAMED_SOUND_MISSION_GIMME15, + STREAMED_SOUND_MISSION_BUST_01, + STREAMED_SOUND_MISSION_BUST_02, + STREAMED_SOUND_MISSION_BUST_03, + STREAMED_SOUND_MISSION_BUST_04, + STREAMED_SOUND_MISSION_BUST_05, + STREAMED_SOUND_MISSION_BUST_06, + STREAMED_SOUND_MISSION_BUST_07, + STREAMED_SOUND_MISSION_BUST_08, + STREAMED_SOUND_MISSION_BUST_09, + STREAMED_SOUND_MISSION_BUST_10, + STREAMED_SOUND_MISSION_BUST_11, + STREAMED_SOUND_MISSION_BUST_12, + STREAMED_SOUND_MISSION_BUST_13, + STREAMED_SOUND_MISSION_BUST_14, + STREAMED_SOUND_MISSION_BUST_15, + STREAMED_SOUND_MISSION_BUST_16, + STREAMED_SOUND_MISSION_BUST_17, + STREAMED_SOUND_MISSION_BUST_18, + STREAMED_SOUND_MISSION_BUST_19, + STREAMED_SOUND_MISSION_BUST_20, + STREAMED_SOUND_MISSION_BUST_21, + STREAMED_SOUND_MISSION_BUST_22, + STREAMED_SOUND_MISSION_BUST_23, + STREAMED_SOUND_MISSION_BUST_24, + STREAMED_SOUND_MISSION_BUST_25, + STREAMED_SOUND_MISSION_BUST_26, + STREAMED_SOUND_MISSION_BUST_27, + STREAMED_SOUND_MISSION_BUST_28, TOTAL_STREAMED_SOUNDS, NO_TRACK, }; diff --git a/src/audio/sampman.h b/src/audio/sampman.h index 697a7aa..5d7d39a 100644 --- a/src/audio/sampman.h +++ b/src/audio/sampman.h @@ -277,72 +277,109 @@ static char StreamedNameTable[][25] = { #elif defined(PS2_AUDIO_PATHS) static char StreamedNameTable[][40] = { - "AUDIO\\MUSIC\\HEAD.VB", - "AUDIO\\MUSIC\\DOUBLE.VB", - "AUDIO\\MUSIC\\KJAH.VB", - "AUDIO\\MUSIC\\RISE.VB", - "AUDIO\\MUSIC\\LIPS.VB", - "AUDIO\\MUSIC\\MUNDO.VB", - "AUDIO\\MUSIC\\MSX.VB", + "AUDIO\\MUSIC\\WILD.VB", "AUDIO\\MUSIC\\FLASH.VB", - "AUDIO\\MUSIC\\LCJ.VB", - "AUDIO\\MUSIC\\LCFR.VB", - "AUDIO\\MUSIC\\MISCOM2.VB", + "AUDIO\\MUSIC\\KCHAT.VB", // 16 khz + "AUDIO\\MUSIC\\FEVER.VB", + "AUDIO\\MUSIC\\VROCK.VB", + "AUDIO\\MUSIC\\VCPR.VB", // 16 khz + "AUDIO\\MUSIC\\ESPANT.VB", + "AUDIO\\MUSIC\\EMOTION.VB", + "AUDIO\\MUSIC\\WAVE.VB", + "AUDIO\\MUSIC\\MISCOM.VB", "AUDIO\\MUSIC\\CITY.VB", "AUDIO\\MUSIC\\WATER.VB", - "AUDIO\\MUSIC\\SAWMILL.VB", - "AUDIO\\MUSIC\\CITY.VB", - "AUDIO\\MUSIC\\WATER.VB", - "AUDIO\\MUSIC\\WATER.VB", - "AUDIO\\MUSIC\\CITY.VB", - "AUDIO\\MUSIC\\CITY.VB", - "AUDIO\\MUSIC\\CITY.VB", - "AUDIO\\MUSIC\\CITY.VB", - "AUDIO\\MUSIC\\CITY.VB", - "AUDIO\\MUSIC\\CITY.VB", - "AUDIO\\MUSIC\\CITY.VB", - "AUDIO\\MUSIC\\POLICE.VB", + "AUDIO\\MUSIC\\BEACHAMB.VB", + "AUDIO\\MUSIC\\HCITY.VB", + "AUDIO\\MUSIC\\HWATER.VB", + "AUDIO\\MUSIC\\HBEACH.VB", + "AUDIO\\MUSIC\\MALLAMB.VB", + "AUDIO\\MUSIC\\STRIP.VB", + "AUDIO\\MUSIC\\MALIBU.VB", + "AUDIO\\MUSIC\\HOTEL.VB", + "AUDIO\\MUSIC\\DIRTRING.VB", + "AUDIO\\MUSIC\\LAW4RIOT.VB", + "AUDIO\\MUSIC\\AMBSIL.VB", + "AUDIO\\MUSIC\\POLICE.VB", // 16 khz "AUDIO\\MUSIC\\TAXI.VB", - "AUDIO\\NEWS\\NEWS_A.VB", - "AUDIO\\NEWS\\NEWS_B.VB", - "AUDIO\\NEWS\\NEWS_C.VB", - "AUDIO\\NEWS\\NEWS_D.VB", - "AUDIO\\NEWS\\NEWS_E.VB", - "AUDIO\\NEWS\\NEWS_F.VB", - "AUDIO\\NEWS\\NEWS_G.VB", - "AUDIO\\NEWS\\NEWS_H.VB", - "AUDIO\\NEWS\\NEWS_I.VB", - "AUDIO\\NEWS\\NEWS_J.VB", - "AUDIO\\NEWS\\NEWS_K.VB", - "AUDIO\\NEWS\\NEWS_L.VB", - "AUDIO\\NEWS\\NEWS_M.VB", - "AUDIO\\NEWS\\NEWS_N.VB", - "AUDIO\\CUTSCENE\\BIKER.VB", - "AUDIO\\CUTSCENE\\BONEVOY.VB", - "AUDIO\\CUTSCENE\\CAMPAIN.VB", - "AUDIO\\CUTSCENE\\CASHCHP.VB", - "AUDIO\\CUTSCENE\\CONTBAN.VB", - "AUDIO\\CUTSCENE\\CRAZY69.VB", - "AUDIO\\CUTSCENE\\CRAZY69.VB", - "AUDIO\\CUTSCENE\\DEADLY.VB", - "AUDIO\\CUTSCENE\\DONPROB.VB", - "AUDIO\\CUTSCENE\\DRIVNMR.VB", - "AUDIO\\CUTSCENE\\ELECTON.VB", - "AUDIO\\CUTSCENE\\FINAL.VB", - "AUDIO\\CUTSCENE\\FINAL_2.VB", - "AUDIO\\CUTSCENE\\HOMSWET.VB", - "AUDIO\\CUTSCENE\\HOTWHEL.VB", - "AUDIO\\CUTSCENE\\KIDNAPP.VB", - "AUDIO\\CUTSCENE\\LANDGRB.VB", - "AUDIO\\CUTSCENE\\MORGUE.VB", - "AUDIO\\CUTSCENE\\OVERDOS.VB", - "AUDIO\\CUTSCENE\\RUFJUST.VB", - "AUDIO\\CUTSCENE\\SAYONAR.VB", - "AUDIO\\CUTSCENE\\SICILAN.VB", - "AUDIO\\CUTSCENE\\THEOFER.VB", - "AUDIO\\CUTSCENE\\INTRO.VB", - "AUDIO\\MUSIC\\FINALE.VB", - "AUDIO\\MUSIC\\MISCOM2.VB" + "AUDIO\\MUSIC\\BCLOSED.VB", + "AUDIO\\MUSIC\\BOPEN.VB", + "AUDIO\\CUTSCENE\\ASS\\ASS_1.VB", + "AUDIO\\CUTSCENE\\ASS\\ASS_2.VB", + "AUDIO\\CUTSCENE\\BANK\\BANK_1.VB", + "AUDIO\\CUTSCENE\\BANK\\BANK_2A.VB", + "AUDIO\\CUTSCENE\\BANK\\BANK_2B.VB", + "AUDIO\\CUTSCENE\\BANK\\BANK_3A.VB", + "AUDIO\\CUTSCENE\\BANK\\BANK_3B.VB", + "AUDIO\\CUTSCENE\\BANK\\BANK_4.VB", + "AUDIO\\CUTSCENE\\BIKE\\BIKE_1.VB", + "AUDIO\\CUTSCENE\\BIKE\\BIKE_2.VB", + "AUDIO\\CUTSCENE\\BIKE\\BIKE_3.VB", + "AUDIO\\CUTSCENE\\BUD\\BUD_1.VB", + "AUDIO\\CUTSCENE\\BUD\\BUD_2.VB", + "AUDIO\\CUTSCENE\\BUD\\BUD_3.VB", + "AUDIO\\CUTSCENE\\CAP\\CAP_1.VB", + "AUDIO\\CUTSCENE\\CAR\\CAR_1.VB", + "AUDIO\\CUTSCENE\\CNT\\CNT_1A.VB", + "AUDIO\\CUTSCENE\\CNT\\CNT_1B.VB", + "AUDIO\\CUTSCENE\\CNT\\CNT_2.VB", + "AUDIO\\CUTSCENE\\COK\\COK_1.VB", + "AUDIO\\CUTSCENE\\COK\\COK_2A.VB", + "AUDIO\\CUTSCENE\\COK\\COK_2B.VB", + "AUDIO\\CUTSCENE\\COK\\COK_3.VB", + "AUDIO\\CUTSCENE\\COK\\COK_4A.VB", + "AUDIO\\CUTSCENE\\COK\\COK_4A2.VB", + "AUDIO\\CUTSCENE\\COK\\COK_4B.VB", + "AUDIO\\CUTSCENE\\COL\\COL_1.VB", + "AUDIO\\CUTSCENE\\COL\\COL_2.VB", + "AUDIO\\CUTSCENE\\COL\\COL_3A.VB", + "AUDIO\\CUTSCENE\\COL\\COL_4A.VB", + "AUDIO\\CUTSCENE\\COL\\COL_5A.VB", + "AUDIO\\CUTSCENE\\COL\\COL_5B.VB", + "AUDIO\\CUTSCENE\\CUB\\CUB_1.VB", + "AUDIO\\CUTSCENE\\CUB\\CUB_2.VB", + "AUDIO\\CUTSCENE\\CUB\\CUB_3.VB", + "AUDIO\\CUTSCENE\\CUB\\CUB_4.VB", + "AUDIO\\CUTSCENE\\DRUG\\DRUG_1.VB", + "AUDIO\\CUTSCENE\\FIN\\FIN.VB", + "AUDIO\\CUTSCENE\\FIN\\FIN2.VB", + "AUDIO\\CUTSCENE\\FINALE\\FINALE.VB", + "AUDIO\\CUTSCENE\\HAT\\HAT_1.VB", + "AUDIO\\CUTSCENE\\HAT\\HAT_2.VB", + "AUDIO\\CUTSCENE\\HAT\\HAT_3.VB", + "AUDIO\\CUTSCENE\\ICE\\ICE_1.VB", + "AUDIO\\CUTSCENE\\INT\\INT_A.VB", + "AUDIO\\CUTSCENE\\INT\\INT_B.VB", + "AUDIO\\CUTSCENE\\INT\\INT_D.VB", + "AUDIO\\CUTSCENE\\INT\\INT_M.VB", + "AUDIO\\CUTSCENE\\LAW\\LAW_1A.VB", + "AUDIO\\CUTSCENE\\LAW\\LAW_1B.VB", + "AUDIO\\CUTSCENE\\LAW\\LAW_2A.VB", + "AUDIO\\CUTSCENE\\LAW\\LAW_2B.VB", + "AUDIO\\CUTSCENE\\LAW\\LAW_2C.VB", + "AUDIO\\CUTSCENE\\LAW\\LAW_3.VB", + "AUDIO\\CUTSCENE\\LAW\\LAW_4.VB", + "AUDIO\\CUTSCENE\\PHIL\\PHIL_1.VB", + "AUDIO\\CUTSCENE\\PHIL\\PHIL_2.VB", + "AUDIO\\CUTSCENE\\PORN\\PORN_1.VB", + "AUDIO\\CUTSCENE\\PORN\\PORN_2.VB", + "AUDIO\\CUTSCENE\\PORN\\PORN_3.VB", + "AUDIO\\CUTSCENE\\PORN\\PORN_4.VB", + "AUDIO\\CUTSCENE\\RESC\\RESC_1A.VB", + "AUDIO\\CUTSCENE\\ROK\\ROK_1.VB", + "AUDIO\\CUTSCENE\\ROK\\ROK_2.VB", + "AUDIO\\CUTSCENE\\ROK\\ROK_3A.VB", + "AUDIO\\CUTSCENE\\STRIPA\\STRIPA.VB", + "AUDIO\\CUTSCENE\\TAX\\TAX_1.VB", + "AUDIO\\CUTSCENE\\TEX\\TEX_1.VB", + "AUDIO\\CUTSCENE\\TEX\\TEX_2.VB", + "AUDIO\\CUTSCENE\\TEX\\TEX_3.VB", + "AUDIO\\MUSIC\\GLIGHT.VB", + "AUDIO\\MUSIC\\FIST.VB", + "AUDIO\\MUSIC\\MISCOM.VB", + "AUDIO\\MUSIC\\MISCOM.VB", + "AUDIO\\MUSIC\\MISCOM.VB", + "AUDIO\\MUSIC\\MISCOM.VB", #else static char StreamedNameTable[][25] = { @@ -450,5 +487,1125 @@ static char StreamedNameTable[][25] = "AUDIO\\MISCOM.MP3", "AUDIO\\MISCOM.MP3", #endif - + "AUDIO\\MOBR1.WAV", + "AUDIO\\PAGER.WAV", + "AUDIO\\CARREV.WAV", + "AUDIO\\BIKEREV.WAV", + "AUDIO\\LIFTOP.WAV", + "AUDIO\\LIFTCL.WAV", + "AUDIO\\LIFTRUN.WAV", + "AUDIO\\LIFTBEL.WAV", + "AUDIO\\INLIFT.WAV", + "AUDIO\\SFX_01.WAV", + "AUDIO\\SFX_02.WAV", + "AUDIO\\CAMERAL.WAV", + "AUDIO\\CAMERAR.WAV", + "AUDIO\\CHEER1.WAV", + "AUDIO\\CHEER2.WAV", + "AUDIO\\CHEER3.WAV", + "AUDIO\\CHEER4.WAV", + "AUDIO\\OOH1.WAV", + "AUDIO\\OOH2.WAV", + "AUDIO\\RACE1.WAV", + "AUDIO\\RACE2.WAV", + "AUDIO\\RACE3.WAV", + "AUDIO\\RACE4.WAV", + "AUDIO\\RACE5.WAV", + "AUDIO\\RACE6.WAV", + "AUDIO\\RACE7.WAV", + "AUDIO\\RACE8.WAV", + "AUDIO\\RACE9.WAV", + "AUDIO\\RACE10.WAV", + "AUDIO\\RACE11.WAV", + "AUDIO\\RACE12.WAV", + "AUDIO\\RACE13.WAV", + "AUDIO\\RACE14.WAV", + "AUDIO\\RACE15.WAV", + "AUDIO\\HOT1.WAV", + "AUDIO\\HOT2.WAV", + "AUDIO\\HOT3.WAV", + "AUDIO\\HOT4.WAV", + "AUDIO\\HOT5.WAV", + "AUDIO\\HOT6.WAV", + "AUDIO\\HOT7.WAV", + "AUDIO\\HOT8.WAV", + "AUDIO\\HOT9.WAV", + "AUDIO\\HOT10.WAV", + "AUDIO\\HOT11.WAV", + "AUDIO\\HOT12.WAV", + "AUDIO\\HOT13.WAV", + "AUDIO\\HOT14.WAV", + "AUDIO\\HOT15.WAV", + "AUDIO\\LANSTP1.WAV", + "AUDIO\\LANSTP2.WAV", + "AUDIO\\LANAMU1.WAV", + "AUDIO\\LANAMU2.WAV", + "AUDIO\\AIRHORNL.WAV", + "AUDIO\\AIRHORNR.WAV", + "AUDIO\\SNIPSCRL.WAV", + "AUDIO\\SNIPSHORT.WAV", + "AUDIO\\BLOWROOF.WAV", + "AUDIO\\ASS_1.WAV", + "AUDIO\\ASS_2.WAV", + "AUDIO\\ASS_3.WAV", + "AUDIO\\ASS_4.WAV", + "AUDIO\\ASS_5.WAV", + "AUDIO\\ASS_6.WAV", + "AUDIO\\ASS_7.WAV", + "AUDIO\\ASS_8.WAV", + "AUDIO\\ASS_9.WAV", + "AUDIO\\ASS_10.WAV", + "AUDIO\\ASS_11.WAV", + "AUDIO\\ASS_12.WAV", + "AUDIO\\ASS_13.WAV", + "AUDIO\\ASS_14.WAV", + "AUDIO\\BIKE1_1.WAV", + "AUDIO\\BIKE1_2.WAV", + "AUDIO\\BIKE1_3.WAV", + "AUDIO\\BNK1_1.WAV", + "AUDIO\\BNK1_2.WAV", + "AUDIO\\BNK1_3.WAV", + "AUDIO\\BNK1_4.WAV", + "AUDIO\\BNK1_5.WAV", + "AUDIO\\BNK1_6.WAV", + "AUDIO\\BNK1_7.WAV", + "AUDIO\\BNK1_8.WAV", + "AUDIO\\BNK1_10.WAV", + "AUDIO\\BNK1_11.WAV", + "AUDIO\\BNK1_12.WAV", + "AUDIO\\BNK1_13.WAV", + "AUDIO\\BNK1_14.WAV", + "AUDIO\\BNK2_1.WAV", + "AUDIO\\BNK2_2.WAV", + "AUDIO\\BNK2_3.WAV", + "AUDIO\\BNK2_4.WAV", + "AUDIO\\BNK2_5.WAV", + "AUDIO\\BNK2_6.WAV", + "AUDIO\\BNK2_7.WAV", + "AUDIO\\BNK2_8.WAV", + "AUDIO\\BNK2_9.WAV", + "AUDIO\\BNK3_1.WAV", + "AUDIO\\BNK3_2.WAV", + "AUDIO\\BNK3_3A.WAV", + "AUDIO\\BNK3_3B.WAV", + "AUDIO\\BNK3_3C.WAV", + "AUDIO\\BNK3_4A.WAV", + "AUDIO\\BNK3_4B.WAV", + "AUDIO\\BNK3_4C.WAV", + "AUDIO\\BNK4_1.WAV", + "AUDIO\\BNK4_2.WAV", + "AUDIO\\BNK4_3A.WAV", + "AUDIO\\BNK4_3B.WAV", + "AUDIO\\BNK4_3C.WAV", + "AUDIO\\BNK4_3D.WAV", + "AUDIO\\BNK4_3E.WAV", + "AUDIO\\BNK4_3F.WAV", + "AUDIO\\BNK4_3G.WAV", + "AUDIO\\BNK4_3H.WAV", + "AUDIO\\BNK4_3I.WAV", + "AUDIO\\BNK4_3J.WAV", + "AUDIO\\BNK4_3K.WAV", + "AUDIO\\BNK4_3M.WAV", + "AUDIO\\BNK4_3O.WAV", + "AUDIO\\BNK4_3P.WAV", + "AUDIO\\BNK4_3Q.WAV", + "AUDIO\\BNK4_3R.WAV", + "AUDIO\\BNK4_3S.WAV", + "AUDIO\\BNK4_3T.WAV", + "AUDIO\\BNK4_3U.WAV", + "AUDIO\\BNK4_3V.WAV", + "AUDIO\\BNK4_4A.WAV", + "AUDIO\\BNK4_4B.WAV", + "AUDIO\\BNK4_5.WAV", + "AUDIO\\BNK4_6.WAV", + "AUDIO\\BNK4_7.WAV", + "AUDIO\\BNK4_8.WAV", + "AUDIO\\BNK4_9.WAV", + "AUDIO\\BNK4_10.WAV", + "AUDIO\\BNK4_11.WAV", + "AUDIO\\BK4_12A.WAV", + "AUDIO\\BK4_12B.WAV", + "AUDIO\\BK4_12C.WAV", + "AUDIO\\BNK4_13.WAV", + "AUDIO\\BK4_14A.WAV", + "AUDIO\\BK4_14B.WAV", + "AUDIO\\BNK4_15.WAV", + "AUDIO\\BNK4_16.WAV", + "AUDIO\\BNK4_17.WAV", + "AUDIO\\BNK4_18.WAV", + "AUDIO\\BK4_19A.WAV", + "AUDIO\\BK4_19B.WAV", + "AUDIO\\BK4_20A.WAV", + "AUDIO\\BK4_20B.WAV", + "AUDIO\\BNK4_21.WAV", + "AUDIO\\BNK422A.WAV", + "AUDIO\\BNK422B.WAV", + "AUDIO\\BK4_23A.WAV", + "AUDIO\\BK4_23B.WAV", + "AUDIO\\BK4_23C.WAV", + "AUDIO\\BK4_23D.WAV", + "AUDIO\\BK4_24A.WAV", + "AUDIO\\BK4_24B.WAV", + "AUDIO\\BNK4_25.WAV", + "AUDIO\\BNK4_26.WAV", + "AUDIO\\BNK4_27.WAV", + "AUDIO\\BNK4_28.WAV", + "AUDIO\\BNK4_29.WAV", + "AUDIO\\BNK4_30.WAV", + "AUDIO\\BK4_31A.WAV", + "AUDIO\\BK4_31B.WAV", + "AUDIO\\BNK4_32.WAV", + "AUDIO\\BK4_34A.WAV", + "AUDIO\\BK4_34B.WAV", + "AUDIO\\BK4_35A.WAV", + "AUDIO\\BK4_35B.WAV", + "AUDIO\\BNK4_36.WAV", + "AUDIO\\BNK4_37.WAV", + "AUDIO\\BNK4_38.WAV", + "AUDIO\\BNK4_39.WAV", + "AUDIO\\BK4_40A.WAV", + "AUDIO\\BK4_40B.WAV", + "AUDIO\\BNK4_41.WAV", + "AUDIO\\BNK4_42.WAV", + "AUDIO\\BNK4_43.WAV", + "AUDIO\\BNK4_44.WAV", + "AUDIO\\BNK4_45.WAV", + "AUDIO\\BNK4_46.WAV", + "AUDIO\\BNK4_47.WAV", + "AUDIO\\BNK4_48.WAV", + "AUDIO\\BNK4_49.WAV", + "AUDIO\\BNK450A.WAV", + "AUDIO\\BNK450B.WAV", + "AUDIO\\BNK4_51.WAV", + "AUDIO\\BNK4_94.WAV", + "AUDIO\\BNK4_95.WAV", + "AUDIO\\BNK4_96.WAV", + "AUDIO\\BNK4_97.WAV", + "AUDIO\\BNK4_98.WAV", + "AUDIO\\BNK4_99.WAV", + "AUDIO\\BUD1_1.WAV", + "AUDIO\\BUD1_2.WAV", + "AUDIO\\BUD1_3.WAV", + "AUDIO\\BUD1_4.WAV", + "AUDIO\\BUD1_5.WAV", + "AUDIO\\BUD1_9.WAV", + "AUDIO\\BUD1_10.WAV", + "AUDIO\\BUD2_1.WAV", + "AUDIO\\BUD2_2.WAV", + "AUDIO\\BUD2_3.WAV", + "AUDIO\\BUD2_4.WAV", + "AUDIO\\BUD2_5.WAV", + "AUDIO\\BUD2_6.WAV", + "AUDIO\\BUD2_7.WAV", + "AUDIO\\BUD3_1.WAV", + "AUDIO\\BUD3_1A.WAV", + "AUDIO\\BUD3_1B.WAV", + "AUDIO\\BUD3_1C.WAV", + "AUDIO\\BUD3_2.WAV", + "AUDIO\\BUD3_3.WAV", + "AUDIO\\BUD3_4.WAV", + "AUDIO\\BUD3_5.WAV", + "AUDIO\\BUD3_6.WAV", + "AUDIO\\BUD3_7.WAV", + "AUDIO\\BUD3_8A.WAV", + "AUDIO\\BUD3_8B.WAV", + "AUDIO\\BUD3_8C.WAV", + "AUDIO\\BUD3_9A.WAV", + "AUDIO\\BUD3_9B.WAV", + "AUDIO\\BUD3_9C.WAV", + "AUDIO\\CAP1_2.WAV", + "AUDIO\\CAP1_3.WAV", + "AUDIO\\CAP1_4.WAV", + "AUDIO\\CAP1_5.WAV", + "AUDIO\\CAP1_6.WAV", + "AUDIO\\CAP1_7.WAV", + "AUDIO\\CAP1_8.WAV", + "AUDIO\\CAP1_9.WAV", + "AUDIO\\CAP1_10.WAV", + "AUDIO\\CAP1_11.WAV", + "AUDIO\\CAP1_12.WAV", + "AUDIO\\CNT1_1.WAV", + "AUDIO\\CNT1_2.WAV", + "AUDIO\\CNT1_3.WAV", + "AUDIO\\CNT1_4.WAV", + "AUDIO\\CNT1_5.WAV", + "AUDIO\\CNT2_1.WAV", + "AUDIO\\CNT2_2.WAV", + "AUDIO\\CNT2_3.WAV", + "AUDIO\\CNT2_4.WAV", + "AUDIO\\COK1_1.WAV", + "AUDIO\\COK1_2.WAV", + "AUDIO\\COK1_3.WAV", + "AUDIO\\COK1_4.WAV", + "AUDIO\\COK1_5.WAV", + "AUDIO\\COK1_6.WAV", + "AUDIO\\COK2_1.WAV", + "AUDIO\\COK2_2.WAV", + "AUDIO\\COK2_3.WAV", + "AUDIO\\COK2_4.WAV", + "AUDIO\\COK2_5.WAV", + "AUDIO\\COK2_6.WAV", + "AUDIO\\COK2_7A.WAV", + "AUDIO\\COK2_7B.WAV", + "AUDIO\\COK2_7C.WAV", + "AUDIO\\COK2_8A.WAV", + "AUDIO\\COK2_8B.WAV", + "AUDIO\\COK2_8C.WAV", + "AUDIO\\COK2_8D.WAV", + "AUDIO\\COK2_9.WAV", + "AUDIO\\COK210A.WAV", + "AUDIO\\COK210B.WAV", + "AUDIO\\COK210C.WAV", + "AUDIO\\COK212A.WAV", + "AUDIO\\COK212B.WAV", + "AUDIO\\COK2_13.WAV", + "AUDIO\\COK2_14.WAV", + "AUDIO\\COK2_15.WAV", + "AUDIO\\COK2_16.WAV", + "AUDIO\\COK2_20.WAV", + "AUDIO\\COK2_21.WAV", + "AUDIO\\COK2_2.WAV", // this is probably a typo of COK2_22 + "AUDIO\\COK3_1.WAV", + "AUDIO\\COK3_2.WAV", + "AUDIO\\COK3_3.WAV", + "AUDIO\\COK3_4.WAV", + "AUDIO\\COK4_1.WAV", + "AUDIO\\COK4_2.WAV", + "AUDIO\\COK4_3.WAV", + "AUDIO\\COK4_4.WAV", + "AUDIO\\COK4_5.WAV", + "AUDIO\\COK4_6.WAV", + "AUDIO\\COK4_7.WAV", + "AUDIO\\COK4_8.WAV", + "AUDIO\\COK4_9.WAV", + "AUDIO\\COK4_9A.WAV", + "AUDIO\\COK4_10.WAV", + "AUDIO\\COK4_11.WAV", + "AUDIO\\COK4_12.WAV", + "AUDIO\\COK4_13.WAV", + "AUDIO\\COK4_14.WAV", + "AUDIO\\COK4_15.WAV", + "AUDIO\\COK4_16.WAV", + "AUDIO\\COK4_17.WAV", + "AUDIO\\COK4_18.WAV", + "AUDIO\\COK4_19.WAV", + "AUDIO\\COK4_20.WAV", + "AUDIO\\COK4_21.WAV", + "AUDIO\\COK4_22.WAV", + "AUDIO\\COK4_23.WAV", + "AUDIO\\COK4_24.WAV", + "AUDIO\\COK4_25.WAV", + "AUDIO\\COK4_26.WAV", + "AUDIO\\COK4_27.WAV", + "AUDIO\\COL1_1.WAV", + "AUDIO\\COL1_2.WAV", + "AUDIO\\COL1_3.WAV", + "AUDIO\\COL1_4.WAV", + "AUDIO\\COL1_5.WAV", + "AUDIO\\COL1_6.WAV", + "AUDIO\\COL1_7.WAV", + "AUDIO\\COL1_8.WAV", + "AUDIO\\COL2_1.WAV", + "AUDIO\\COL2_2.WAV", + "AUDIO\\COL2_3.WAV", + "AUDIO\\COL2_4.WAV", + "AUDIO\\COL2_5.WAV", + "AUDIO\\COL2_6A.WAV", + "AUDIO\\COL2_7.WAV", + "AUDIO\\COL2_8.WAV", + "AUDIO\\COL2_9.WAV", + "AUDIO\\COL2_10.WAV", + "AUDIO\\COL2_11.WAV", + "AUDIO\\COL2_12.WAV", + "AUDIO\\COL2_13.WAV", + "AUDIO\\COL2_14.WAV", + "AUDIO\\COL2_15.WAV", + "AUDIO\\COL2_16.WAV", + "AUDIO\\COL3_1.WAV", + "AUDIO\\COL3_2.WAV", + "AUDIO\\COL3_2A.WAV", + "AUDIO\\COL3_2B.WAV", + "AUDIO\\COL3_3.WAV", + "AUDIO\\COL3_4.WAV", + "AUDIO\\COL3_5.WAV", + "AUDIO\\COL3_6.WAV", + "AUDIO\\COL3_7.WAV", + "AUDIO\\COL3_8.WAV", + "AUDIO\\COL3_9.WAV", + "AUDIO\\COL3_10.WAV", + "AUDIO\\COL3_11.WAV", + "AUDIO\\COL3_12.WAV", + "AUDIO\\COL3_13.WAV", + "AUDIO\\COL3_14.WAV", + "AUDIO\\COL3_15.WAV", + "AUDIO\\COL3_16.WAV", + "AUDIO\\COL3_17.WAV", + "AUDIO\\COL3_18.WAV", + "AUDIO\\COL3_19.WAV", + "AUDIO\\COL3_20.WAV", + "AUDIO\\COL3_21.WAV", + "AUDIO\\COL3_23.WAV", + "AUDIO\\COL3_24.WAV", + "AUDIO\\COL3_25.WAV", + "AUDIO\\COL4_1.WAV", + "AUDIO\\COL4_2.WAV", + "AUDIO\\COL4_3.WAV", + "AUDIO\\COL4_4.WAV", + "AUDIO\\COL4_5.WAV", + "AUDIO\\COL4_6.WAV", + "AUDIO\\COL4_7.WAV", + "AUDIO\\COL4_8.WAV", + "AUDIO\\COL4_9.WAV", + "AUDIO\\COL4_10.WAV", + "AUDIO\\COL4_11.WAV", + "AUDIO\\COL4_12.WAV", + "AUDIO\\COL4_13.WAV", + "AUDIO\\COL4_14.WAV", + "AUDIO\\COL4_15.WAV", + "AUDIO\\COL4_16.WAV", + "AUDIO\\COL4_17.WAV", + "AUDIO\\COL4_18.WAV", + "AUDIO\\COL4_19.WAV", + "AUDIO\\COL4_20.WAV", + "AUDIO\\COL4_21.WAV", + "AUDIO\\COL4_22.WAV", + "AUDIO\\COL4_23.WAV", + "AUDIO\\COL4_24.WAV", + "AUDIO\\COL4_25.WAV", + "AUDIO\\COL4_26.WAV", + "AUDIO\\COL5_1.WAV", + "AUDIO\\COL5_2.WAV", + "AUDIO\\COL5_3.WAV", + "AUDIO\\COL5_4.WAV", + "AUDIO\\COL5_5.WAV", + "AUDIO\\COL5_6.WAV", + "AUDIO\\COL5_7.WAV", + "AUDIO\\COL5_8.WAV", + "AUDIO\\COL5_9.WAV", + "AUDIO\\COL5_10.WAV", + "AUDIO\\COL5_11.WAV", + "AUDIO\\COL5_12.WAV", + "AUDIO\\COL5_13.WAV", + "AUDIO\\COL5_14.WAV", + "AUDIO\\COL5_15.WAV", + "AUDIO\\COL5_16.WAV", + "AUDIO\\COL5_17.WAV", + "AUDIO\\COL5_18.WAV", + "AUDIO\\COL5_19.WAV", + "AUDIO\\COL5_20.WAV", + "AUDIO\\COL5_21.WAV", + "AUDIO\\COL5_22.WAV", + "AUDIO\\CUB1_1.WAV", + "AUDIO\\CUB1_2.WAV", + "AUDIO\\CUB1_3.WAV", + "AUDIO\\CUB1_4.WAV", + "AUDIO\\CUB1_5.WAV", + "AUDIO\\CUB1_6.WAV", + "AUDIO\\CUB1_7.WAV", + "AUDIO\\CUB1_8.WAV", + "AUDIO\\CUB1_9.WAV", + "AUDIO\\CUB1_10.WAV", + "AUDIO\\CUB2_1.WAV", + "AUDIO\\CUB2_2.WAV", + "AUDIO\\CUB2_3A.WAV", + "AUDIO\\CUB2_3B.WAV", + "AUDIO\\CUB2_3C.WAV", + "AUDIO\\CUB2_4A.WAV", + "AUDIO\\CUB2_5.WAV", + "AUDIO\\CUB2_6.WAV", + "AUDIO\\CUB2_7.WAV", + "AUDIO\\CUB2_8.WAV", + "AUDIO\\CUB2_9.WAV", + "AUDIO\\CUB2_10.WAV", + "AUDIO\\CUB2_11.WAV", + "AUDIO\\CUB3_1.WAV", + "AUDIO\\CUB3_2.WAV", + "AUDIO\\CUB3_3.WAV", + "AUDIO\\CUB3_4.WAV", + "AUDIO\\CUB4_1.WAV", + "AUDIO\\CUB4_2.WAV", + "AUDIO\\CUB4_3.WAV", + "AUDIO\\CUB4_4.WAV", + "AUDIO\\CUB4_5.WAV", + "AUDIO\\CUB4_5A.WAV", + "AUDIO\\CUB4_6.WAV", + "AUDIO\\CUB4_7.WAV", + "AUDIO\\CUB4_8.WAV", + "AUDIO\\CUB4_9.WAV", + "AUDIO\\CUB4_10.WAV", + "AUDIO\\CUB4_11.WAV", + "AUDIO\\CUB4_12.WAV", + "AUDIO\\CUB4_13.WAV", + "AUDIO\\CUB4_14.WAV", + "AUDIO\\CUB4_15.WAV", + "AUDIO\\CUB4_16.WAV", + "AUDIO\\GOLF_1.WAV", + "AUDIO\\GOLF_2.WAV", + "AUDIO\\GOLF_3.WAV", + "AUDIO\\BAR_1.WAV", + "AUDIO\\BAR_2.WAV", + "AUDIO\\BAR_3.WAV", + "AUDIO\\BAR_4.WAV", + "AUDIO\\BAR_5.WAV", + "AUDIO\\BAR_6.WAV", + "AUDIO\\BAR_7.WAV", + "AUDIO\\BAR_8.WAV", + "AUDIO\\STRIP_1.WAV", + "AUDIO\\STRIP_2.WAV", + "AUDIO\\STRIP_3.WAV", + "AUDIO\\STRIP_4.WAV", + "AUDIO\\STRIP_5.WAV", + "AUDIO\\STRIP_6.WAV", + "AUDIO\\STRIP_7.WAV", + "AUDIO\\STRIP_8.WAV", + "AUDIO\\STRIP_9.WAV", + "AUDIO\\STAR_1.WAV", + "AUDIO\\STAR_2.WAV", + "AUDIO\\STAR_3.WAV", + "AUDIO\\STAR_4.WAV", + "AUDIO\\FIN_1A.WAV", + "AUDIO\\FIN_1B.WAV", + "AUDIO\\FIN_1C.WAV", + "AUDIO\\FIN_2B.WAV", + "AUDIO\\FIN_2C.WAV", + "AUDIO\\FIN_3.WAV", + "AUDIO\\FIN_4.WAV", + "AUDIO\\FIN_5.WAV", + "AUDIO\\FIN_6.WAV", + "AUDIO\\FIN_10.WAV", + "AUDIO\\FIN_11A.WAV", + "AUDIO\\FIN_11B.WAV", + "AUDIO\\FIN_12A.WAV", + "AUDIO\\FIN_12B.WAV", + "AUDIO\\FIN_12C.WAV", + "AUDIO\\FIN_13.WAV", + "AUDIO\\FINKILL.WAV", + "AUDIO\\LAW1_1.WAV", + "AUDIO\\LAW1_2.WAV", + "AUDIO\\LAW1_3.WAV", + "AUDIO\\LAW1_4.WAV", + "AUDIO\\LAW1_5.WAV", + "AUDIO\\LAW1_6.WAV", + "AUDIO\\LAW1_7.WAV", + "AUDIO\\LAW1_8.WAV", + "AUDIO\\LAW1_9.WAV", + "AUDIO\\LAW1_10.WAV", + "AUDIO\\LAW2_1.WAV", + "AUDIO\\LAW2_2.WAV", + "AUDIO\\LAW2_3.WAV", + "AUDIO\\LAW2_4.WAV", + "AUDIO\\LAW2_5.WAV", + "AUDIO\\LAW2_6.WAV", + "AUDIO\\LAW2_7.WAV", + "AUDIO\\LAW2_8.WAV", + "AUDIO\\LAW2_9.WAV", + "AUDIO\\LAW2_10.WAV", + "AUDIO\\LAW3_1.WAV", + "AUDIO\\LAW3_2.WAV", + "AUDIO\\LAW3_3.WAV", + "AUDIO\\LAW3_4.WAV", + "AUDIO\\LAW3_5.WAV", + "AUDIO\\LAW3_6.WAV", + "AUDIO\\LAW3_10.WAV", + "AUDIO\\LAW3_11.WAV", + "AUDIO\\LAW3_12.WAV", + "AUDIO\\LAW3_13.WAV", + "AUDIO\\LAW3_14.WAV", + "AUDIO\\LAW3_16.WAV", + "AUDIO\\LAW3_17.WAV", + "AUDIO\\LAW3_18.WAV", + "AUDIO\\LAW3_19.WAV", + "AUDIO\\LAW3_20.WAV", + "AUDIO\\LAW3_21.WAV", + "AUDIO\\LAW3_22.WAV", + "AUDIO\\LAW3_23.WAV", + "AUDIO\\LAW3_24.WAV", + "AUDIO\\LAW3_25.WAV", + "AUDIO\\LAW4_1A.WAV", + "AUDIO\\LAW4_1B.WAV", + "AUDIO\\LAW4_1C.WAV", + "AUDIO\\LAW4_1D.WAV", + "AUDIO\\LAW4_10.WAV", + "AUDIO\\LAW4_3.WAV", + "AUDIO\\LAW4_4.WAV", + "AUDIO\\LAW4_5.WAV", + "AUDIO\\LAW4_6.WAV", + "AUDIO\\LAW4_7.WAV", + "AUDIO\\LAW4_8.WAV", + "AUDIO\\LAW4_9.WAV", + "AUDIO\\PHIL1_2.WAV", + "AUDIO\\PHIL1_3.WAV", + "AUDIO\\PHIL2_1.WAV", + "AUDIO\\PHIL2_2.WAV", + "AUDIO\\PHIL2_3.WAV", + "AUDIO\\PHIL2_4.WAV", + "AUDIO\\PHIL2_5.WAV", + "AUDIO\\PHIL2_6.WAV", + "AUDIO\\PHIL2_7.WAV", + "AUDIO\\PHIL2_8.WAV", + "AUDIO\\PHIL2_9.WAV", + "AUDIO\\PHIL210.WAV", + "AUDIO\\PHIL211.WAV", + "AUDIO\\PORN1_1.WAV", + "AUDIO\\PORN1_2.WAV", + "AUDIO\\PORN1_3.WAV", + "AUDIO\\PRN1_3A.WAV", + "AUDIO\\PORN1_4.WAV", + "AUDIO\\PORN1_5.WAV", + "AUDIO\\PORN1_6.WAV", + "AUDIO\\PORN1_7.WAV", + "AUDIO\\PORN1_8.WAV", + "AUDIO\\PORN1_9.WAV", + "AUDIO\\PRN1_10.WAV", + "AUDIO\\PRN1_11.WAV", + "AUDIO\\PRN1_12.WAV", + "AUDIO\\PRN1_13.WAV", + "AUDIO\\PRN1_14.WAV", + "AUDIO\\PRN1_15.WAV", + "AUDIO\\PRN1_16.WAV", + "AUDIO\\PRN1_17.WAV", + "AUDIO\\PRN1_18.WAV", + "AUDIO\\PRN1_19.WAV", + "AUDIO\\PRN1_20.WAV", + "AUDIO\\PRN1_21.WAV", + "AUDIO\\PORN3_1.WAV", + "AUDIO\\PORN3_2.WAV", + "AUDIO\\PORN3_3.WAV", + "AUDIO\\PORN3_4.WAV", + "AUDIO\\PSYCH_1.WAV", + "AUDIO\\PSYCH_2.WAV", + "AUDIO\\ROK2_01.WAV", + "AUDIO\\ROK3_1.WAV", + "AUDIO\\ROK3_2.WAV", + "AUDIO\\ROK3_3.WAV", + "AUDIO\\ROK3_4.WAV", + "AUDIO\\ROK3_5.WAV", + "AUDIO\\ROK3_6.WAV", + "AUDIO\\ROK3_7.WAV", + "AUDIO\\ROK3_8.WAV", + "AUDIO\\ROK3_9.WAV", + "AUDIO\\ROK3_10.WAV", + "AUDIO\\ROK3_11.WAV", + "AUDIO\\ROK3_12.WAV", + "AUDIO\\ROK3_13.WAV", + "AUDIO\\ROK3_14.WAV", + "AUDIO\\ROK3_15.WAV", + "AUDIO\\ROK3_16.WAV", + "AUDIO\\ROK3_17.WAV", + "AUDIO\\ROK3_18.WAV", + "AUDIO\\ROK3_19.WAV", + "AUDIO\\ROK3_20.WAV", + "AUDIO\\ROK3_21.WAV", + "AUDIO\\ROK3_22.WAV", + "AUDIO\\ROK3_23.WAV", + "AUDIO\\ROK3_24.WAV", + "AUDIO\\ROK3_25.WAV", + "AUDIO\\ROK3_26.WAV", + "AUDIO\\ROK3_27.WAV", + "AUDIO\\ROK3_62.WAV", + "AUDIO\\ROK3_63.WAV", + "AUDIO\\ROK3_64.WAV", + "AUDIO\\ROK3_65.WAV", + "AUDIO\\ROK3_66.WAV", + "AUDIO\\ROK3_67.WAV", + "AUDIO\\ROK3_68.WAV", + "AUDIO\\ROK3_69.WAV", + "AUDIO\\ROK3_70.WAV", + "AUDIO\\ROK3_71.WAV", + "AUDIO\\ROK3_73.WAV", + "AUDIO\\RESC_1.WAV", + "AUDIO\\RESC_2.WAV", + "AUDIO\\RESC_3.WAV", + "AUDIO\\RESC_4.WAV", + "AUDIO\\RESC_5.WAV", + "AUDIO\\RESC_6.WAV", + "AUDIO\\RESC_7.WAV", + "AUDIO\\RESC_8.WAV", + "AUDIO\\RESC_9.WAV", + "AUDIO\\RESC_10.WAV", + "AUDIO\\ROK1_1A.WAV", + "AUDIO\\ROK1_1B.WAV", + "AUDIO\\ROK1_5.WAV", + "AUDIO\\ROK1_6.WAV", + "AUDIO\\ROK1_7.WAV", + "AUDIO\\ROK1_8.WAV", + "AUDIO\\ROK1_9.WAV", + "AUDIO\\TAX1_1.WAV", + "AUDIO\\TAX1_2.WAV", + "AUDIO\\TAX1_3.WAV", + "AUDIO\\TAX1_4.WAV", + "AUDIO\\TAX1_5.WAV", + "AUDIO\\TAX2_1.WAV", + "AUDIO\\TAX2_2.WAV", + "AUDIO\\TAX2_3.WAV", + "AUDIO\\TAX2_4.WAV", + "AUDIO\\TAX2_5.WAV", + "AUDIO\\TAX2_6.WAV", + "AUDIO\\TAX2_7.WAV", + "AUDIO\\TAX3_1.WAV", + "AUDIO\\TAX3_2.WAV", + "AUDIO\\TAX3_3.WAV", + "AUDIO\\TAX3_4.WAV", + "AUDIO\\TAX3_5.WAV", + "AUDIO\\TEX1_1.WAV", + "AUDIO\\TEX1_2.WAV", + "AUDIO\\TEX1_3.WAV", + "AUDIO\\TEX1_4.WAV", + "AUDIO\\TEX1_5.WAV", + "AUDIO\\TEX1_6.WAV", + "AUDIO\\TEX2_1.WAV", + "AUDIO\\TEX3_1.WAV", + "AUDIO\\TEX3_2.WAV", + "AUDIO\\TEX3_3.WAV", + "AUDIO\\TEX3_4.WAV", + "AUDIO\\TEX3_5.WAV", + "AUDIO\\TEX3_6.WAV", + "AUDIO\\TEX3_7.WAV", + "AUDIO\\TEX3_8.WAV", + "AUDIO\\HAT_1A.WAV", + "AUDIO\\INTRO1.WAV", + "AUDIO\\INTRO2.WAV", + "AUDIO\\INTRO3.WAV", + "AUDIO\\INTRO4.WAV", + "AUDIO\\MOB_01A.WAV", + "AUDIO\\MOB_01B.WAV", + "AUDIO\\MOB_01C.WAV", + "AUDIO\\MOB_02A.WAV", + "AUDIO\\MOB_02B.WAV", + "AUDIO\\MOB_02C.WAV", + "AUDIO\\MOB_03A.WAV", + "AUDIO\\MOB_03B.WAV", + "AUDIO\\MOB_03C.WAV", + "AUDIO\\MOB_03D.WAV", + "AUDIO\\MOB_03E.WAV", + "AUDIO\\SHARK_1.WAV", + "AUDIO\\SHARK_2.WAV", + "AUDIO\\SHARK_3.WAV", + "AUDIO\\SHARK_4.WAV", + "AUDIO\\SHARK_5.WAV", + "AUDIO\\MOB_04A.WAV", + "AUDIO\\MOB_04B.WAV", + "AUDIO\\MOB_04C.WAV", + "AUDIO\\MOB_04D.WAV", + "AUDIO\\MOB_05A.WAV", + "AUDIO\\MOB_05B.WAV", + "AUDIO\\MOB_05C.WAV", + "AUDIO\\MOB_05D.WAV", + "AUDIO\\MOB_06A.WAV", + "AUDIO\\MOB_06B.WAV", + "AUDIO\\MOB_06C.WAV", + "AUDIO\\MOB_07A.WAV", + "AUDIO\\MOB_07B.WAV", + "AUDIO\\MOB_08A.WAV", + "AUDIO\\MOB_08B.WAV", + "AUDIO\\MOB_08C.WAV", + "AUDIO\\MOB_08D.WAV", + "AUDIO\\MOB_08E.WAV", + "AUDIO\\MOB_08F.WAV", + "AUDIO\\MOB_08G.WAV", + "AUDIO\\MOB_09A.WAV", + "AUDIO\\MOB_09B.WAV", + "AUDIO\\MOB_09C.WAV", + "AUDIO\\MOB_09D.WAV", + "AUDIO\\MOB_09E.WAV", + "AUDIO\\MOB_09F.WAV", + "AUDIO\\MOB_10A.WAV", + "AUDIO\\MOB_10B.WAV", + "AUDIO\\MOB_10C.WAV", + "AUDIO\\MOB_10D.WAV", + "AUDIO\\MOB_10E.WAV", + "AUDIO\\MOB_11A.WAV", + "AUDIO\\MOB_11B.WAV", + "AUDIO\\MOB_11C.WAV", + "AUDIO\\MOB_11D.WAV", + "AUDIO\\MOB_11E.WAV", + "AUDIO\\MOB_11F.WAV", + "AUDIO\\MOB_14A.WAV", + "AUDIO\\MOB_14B.WAV", + "AUDIO\\MOB_14C.WAV", + "AUDIO\\MOB_14D.WAV", + "AUDIO\\MOB_14E.WAV", + "AUDIO\\MOB_14F.WAV", + "AUDIO\\MOB_14G.WAV", + "AUDIO\\MOB_14H.WAV", + "AUDIO\\MOB_16A.WAV", + "AUDIO\\MOB_16B.WAV", + "AUDIO\\MOB_16C.WAV", + "AUDIO\\MOB_16D.WAV", + "AUDIO\\MOB_16E.WAV", + "AUDIO\\MOB_16F.WAV", + "AUDIO\\MOB_16G.WAV", + "AUDIO\\MOB_17A.WAV", + "AUDIO\\MOB_17B.WAV", + "AUDIO\\MOB_17C.WAV", + "AUDIO\\MOB_17D.WAV", + "AUDIO\\MOB_17E.WAV", + "AUDIO\\MOB_17G.WAV", + "AUDIO\\MOB_17H.WAV", + "AUDIO\\MOB_17I.WAV", + "AUDIO\\MOB_17J.WAV", + "AUDIO\\MOB_17K.WAV", + "AUDIO\\MOB_17L.WAV", + "AUDIO\\MOB_18A.WAV", + "AUDIO\\MOB_18B.WAV", + "AUDIO\\MOB_18C.WAV", + "AUDIO\\MOB_18D.WAV", + "AUDIO\\MOB_18E.WAV", + "AUDIO\\MOB_18F.WAV", + "AUDIO\\MOB_18G.WAV", + "AUDIO\\MOB_20A.WAV", + "AUDIO\\MOB_20B.WAV", + "AUDIO\\MOB_20C.WAV", + "AUDIO\\MOB_20D.WAV", + "AUDIO\\MOB_20E.WAV", + "AUDIO\\MOB_24A.WAV", + "AUDIO\\MOB_24B.WAV", + "AUDIO\\MOB_24C.WAV", + "AUDIO\\MOB_24D.WAV", + "AUDIO\\MOB_24E.WAV", + "AUDIO\\MOB_24F.WAV", + "AUDIO\\MOB_24G.WAV", + "AUDIO\\MOB_24H.WAV", + "AUDIO\\MOB_25A.WAV", + "AUDIO\\MOB_25B.WAV", + "AUDIO\\MOB_25C.WAV", + "AUDIO\\MOB_25D.WAV", + "AUDIO\\MOB_26A.WAV", + "AUDIO\\MOB_26B.WAV", + "AUDIO\\MOB_26C.WAV", + "AUDIO\\MOB_26D.WAV", + "AUDIO\\MOB_26E.WAV", + "AUDIO\\MOB_29A.WAV", + "AUDIO\\MOB_29B.WAV", + "AUDIO\\MOB_29C.WAV", + "AUDIO\\MOB_29D.WAV", + "AUDIO\\MOB_29E.WAV", + "AUDIO\\MOB_29F.WAV", + "AUDIO\\MOB_29G.WAV", + "AUDIO\\MOB_30A.WAV", + "AUDIO\\MOB_30B.WAV", + "AUDIO\\MOB_30C.WAV", + "AUDIO\\MOB_30D.WAV", + "AUDIO\\MOB_30E.WAV", + "AUDIO\\MOB_30F.WAV", + "AUDIO\\MOB_33A.WAV", + "AUDIO\\MOB_33B.WAV", + "AUDIO\\MOB_33C.WAV", + "AUDIO\\MOB_33D.WAV", + "AUDIO\\MOB_34A.WAV", + "AUDIO\\MOB_34B.WAV", + "AUDIO\\MOB_34C.WAV", + "AUDIO\\MOB_34D.WAV", + "AUDIO\\MOB_35A.WAV", + "AUDIO\\MOB_35B.WAV", + "AUDIO\\MOB_35C.WAV", + "AUDIO\\MOB_35D.WAV", + "AUDIO\\MOB_36A.WAV", + "AUDIO\\MOB_36B.WAV", + "AUDIO\\MOB_36C.WAV", + "AUDIO\\MOB_40A.WAV", + "AUDIO\\MOB_40B.WAV", + "AUDIO\\MOB_40C.WAV", + "AUDIO\\MOB_40D.WAV", + "AUDIO\\MOB_40E.WAV", + "AUDIO\\MOB_40F.WAV", + "AUDIO\\MOB_40G.WAV", + "AUDIO\\MOB_40H.WAV", + "AUDIO\\MOB_40I.WAV", + "AUDIO\\MOB_41A.WAV", + "AUDIO\\MOB_41B.WAV", + "AUDIO\\MOB_41C.WAV", + "AUDIO\\MOB_41D.WAV", + "AUDIO\\MOB_41E.WAV", + "AUDIO\\MOB_41F.WAV", + "AUDIO\\MOB_41G.WAV", + "AUDIO\\MOB_41H.WAV", + "AUDIO\\MOB_42A.WAV", + "AUDIO\\MOB_42B.WAV", + "AUDIO\\MOB_42C.WAV", + "AUDIO\\MOB_42D.WAV", + "AUDIO\\MOB_42E.WAV", + "AUDIO\\MOB_43A.WAV", + "AUDIO\\MOB_43B.WAV", + "AUDIO\\MOB_43C.WAV", + "AUDIO\\MOB_43D.WAV", + "AUDIO\\MOB_43E.WAV", + "AUDIO\\MOB_43F.WAV", + "AUDIO\\MOB_43G.WAV", + "AUDIO\\MOB_43H.WAV", + "AUDIO\\MOB_45A.WAV", + "AUDIO\\MOB_45B.WAV", + "AUDIO\\MOB_45C.WAV", + "AUDIO\\MOB_45D.WAV", + "AUDIO\\MOB_45E.WAV", + "AUDIO\\MOB_45F.WAV", + "AUDIO\\MOB_45G.WAV", + "AUDIO\\MOB_45H.WAV", + "AUDIO\\MOB_45I.WAV", + "AUDIO\\MOB_45J.WAV", + "AUDIO\\MOB_45K.WAV", + "AUDIO\\MOB_45L.WAV", + "AUDIO\\MOB_45M.WAV", + "AUDIO\\MOB_45N.WAV", + "AUDIO\\MOB_46A.WAV", + "AUDIO\\MOB_46B.WAV", + "AUDIO\\MOB_46C.WAV", + "AUDIO\\MOB_46D.WAV", + "AUDIO\\MOB_46E.WAV", + "AUDIO\\MOB_46F.WAV", + "AUDIO\\MOB_46G.WAV", + "AUDIO\\MOB_46H.WAV", + "AUDIO\\MOB_47A.WAV", + "AUDIO\\MOB_52A.WAV", + "AUDIO\\MOB_52B.WAV", + "AUDIO\\MOB_52C.WAV", + "AUDIO\\MOB_52D.WAV", + "AUDIO\\MOB_52E.WAV", + "AUDIO\\MOB_52F.WAV", + "AUDIO\\MOB_52G.WAV", + "AUDIO\\MOB_52H.WAV", + "AUDIO\\MOB_54A.WAV", + "AUDIO\\MOB_54B.WAV", + "AUDIO\\MOB_54C.WAV", + "AUDIO\\MOB_54D.WAV", + "AUDIO\\MOB_54E.WAV", + "AUDIO\\MOB_55A.WAV", + "AUDIO\\MOB_55B.WAV", + "AUDIO\\MOB_55C.WAV", + "AUDIO\\MOB_55D.WAV", + "AUDIO\\MOB_55E.WAV", + "AUDIO\\MOB_55F.WAV", + "AUDIO\\MOB_56A.WAV", + "AUDIO\\MOB_56B.WAV", + "AUDIO\\MOB_56C.WAV", + "AUDIO\\MOB_56D.WAV", + "AUDIO\\MOB_56E.WAV", + "AUDIO\\MOB_56F.WAV", + "AUDIO\\MOB_57A.WAV", + "AUDIO\\MOB_57B.WAV", + "AUDIO\\MOB_57C.WAV", + "AUDIO\\MOB_57D.WAV", + "AUDIO\\MOB_57E.WAV", + "AUDIO\\MOB_58A.WAV", + "AUDIO\\MOB_58B.WAV", + "AUDIO\\MOB_58C.WAV", + "AUDIO\\MOB_58D.WAV", + "AUDIO\\MOB_58E.WAV", + "AUDIO\\MOB_58F.WAV", + "AUDIO\\MOB_58G.WAV", + "AUDIO\\MOB_61A.WAV", + "AUDIO\\MOB_61B.WAV", + "AUDIO\\MOB_62A.WAV", + "AUDIO\\MOB_62B.WAV", + "AUDIO\\MOB_62C.WAV", + "AUDIO\\MOB_62D.WAV", + "AUDIO\\MOB_63A.WAV", + "AUDIO\\MOB_63B.WAV", + "AUDIO\\MOB_63C.WAV", + "AUDIO\\MOB_63D.WAV", + "AUDIO\\MOB_63E.WAV", + "AUDIO\\MOB_63F.WAV", + "AUDIO\\MOB_63G.WAV", + "AUDIO\\MOB_63H.WAV", + "AUDIO\\MOB_63I.WAV", + "AUDIO\\MOB_63J.WAV", + "AUDIO\\MOB_66A.WAV", + "AUDIO\\MOB_66B.WAV", + "AUDIO\\MOB_68A.WAV", + "AUDIO\\MOB_68B.WAV", + "AUDIO\\MOB_68C.WAV", + "AUDIO\\MOB_68D.WAV", + "AUDIO\\MOB_70A.WAV", + "AUDIO\\MOB_70B.WAV", + "AUDIO\\MOB_71A.WAV", + "AUDIO\\MOB_71B.WAV", + "AUDIO\\MOB_71C.WAV", + "AUDIO\\MOB_71D.WAV", + "AUDIO\\MOB_71E.WAV", + "AUDIO\\MOB_71F.WAV", + "AUDIO\\MOB_71G.WAV", + "AUDIO\\MOB_71H.WAV", + "AUDIO\\MOB_71I.WAV", + "AUDIO\\MOB_71J.WAV", + "AUDIO\\MOB_71K.WAV", + "AUDIO\\MOB_71L.WAV", + "AUDIO\\MOB_71M.WAV", + "AUDIO\\MOB_71N.WAV", + "AUDIO\\MOB_72A.WAV", + "AUDIO\\MOB_72B.WAV", + "AUDIO\\MOB_72C.WAV", + "AUDIO\\MOB_72D.WAV", + "AUDIO\\MOB_72E.WAV", + "AUDIO\\MOB_72F.WAV", + "AUDIO\\MOB_72G.WAV", + "AUDIO\\MOB_73A.WAV", + "AUDIO\\MOB_73C.WAV", + "AUDIO\\MOB_73D.WAV", + "AUDIO\\MOB_73F.WAV", + "AUDIO\\MOB_73G.WAV", + "AUDIO\\MOB_73I.WAV", + "AUDIO\\MOB_95A.WAV", + "AUDIO\\MOB_96A.WAV", + "AUDIO\\MOB_98A.WAV", + "AUDIO\\MOB_99A.WAV", + "AUDIO\\JOB1_1B.WAV", + "AUDIO\\JOB1_1C.WAV", + "AUDIO\\JOB1_1D.WAV", + "AUDIO\\JOB2_1B.WAV", + "AUDIO\\JOB2_2.WAV", + "AUDIO\\JOB2_3.WAV", + "AUDIO\\JOB2_4.WAV", + "AUDIO\\JOB2_5.WAV", + "AUDIO\\JOB2_6.WAV", + "AUDIO\\JOB2_7.WAV", + "AUDIO\\JOB2_8.WAV", + "AUDIO\\JOB2_9.WAV", + "AUDIO\\JOB3_1.WAV", + "AUDIO\\JOB3_2.WAV", + "AUDIO\\JOB3_3.WAV", + "AUDIO\\JOB4_1.WAV", + "AUDIO\\JOB4_2.WAV", + "AUDIO\\JOB4_3.WAV", + "AUDIO\\JOB5_1.WAV", + "AUDIO\\JOB5_2.WAV", + "AUDIO\\JOB5_3.WAV", + "AUDIO\\BJM1_20.WAV", + "AUDIO\\BJM1_4.WAV", + "AUDIO\\BJM1_5.WAV", + "AUDIO\\MERC_39.WAV", + "AUDIO\\MONO_1.WAV", + "AUDIO\\MONO_2.WAV", + "AUDIO\\MONO_3.WAV", + "AUDIO\\MONO_4.WAV", + "AUDIO\\MONO_5.WAV", + "AUDIO\\MONO_6.WAV", + "AUDIO\\MONO_7.WAV", + "AUDIO\\MONO_8.WAV", + "AUDIO\\MONO_9.WAV", + "AUDIO\\MONO10.WAV", + "AUDIO\\MONO11.WAV", + "AUDIO\\MONO12.WAV", + "AUDIO\\MONO13.WAV", + "AUDIO\\MONO14.WAV", + "AUDIO\\MONO15.WAV", + "AUDIO\\MONO16.WAV", + "AUDIO\\FUD_01.WAV", + "AUDIO\\FUD_02.WAV", + "AUDIO\\FUD_03.WAV", + "AUDIO\\FUD_04.WAV", + "AUDIO\\FUD_05.WAV", + "AUDIO\\FUD_06.WAV", + "AUDIO\\FUD_07.WAV", + "AUDIO\\FUD_08.WAV", + "AUDIO\\FUD_09.WAV", + "AUDIO\\FUD_10.WAV", + "AUDIO\\FUD_11.WAV", + "AUDIO\\FUD_12.WAV", + "AUDIO\\FUD_13.WAV", + "AUDIO\\FUD_14.WAV", + "AUDIO\\FUD_15.WAV", + "AUDIO\\FUD_16.WAV", + "AUDIO\\FUD_17.WAV", + "AUDIO\\FUD_18.WAV", + "AUDIO\\FUD_19.WAV", + "AUDIO\\FUD_20.WAV", + "AUDIO\\BURG_01.WAV", + "AUDIO\\BURG_02.WAV", + "AUDIO\\BURG_03.WAV", + "AUDIO\\BURG_04.WAV", + "AUDIO\\BURG_05.WAV", + "AUDIO\\BURG_06.WAV", + "AUDIO\\BURG_07.WAV", + "AUDIO\\BURG_08.WAV", + "AUDIO\\BURG_09.WAV", + "AUDIO\\BURG_10.WAV", + "AUDIO\\BURG_11.WAV", + "AUDIO\\BURG_12.WAV", + "AUDIO\\CRUST01.WAV", + "AUDIO\\CRUST02.WAV", + "AUDIO\\CRUST03.WAV", + "AUDIO\\CRUST04.WAV", + "AUDIO\\CRUST05.WAV", + "AUDIO\\CRUST06.WAV", + "AUDIO\\CRUST07.WAV", + "AUDIO\\CRUST08.WAV", + "AUDIO\\CRUST09.WAV", + "AUDIO\\BAND_01.WAV", + "AUDIO\\BAND_02.WAV", + "AUDIO\\BAND_03.WAV", + "AUDIO\\BAND_04.WAV", + "AUDIO\\BAND_05.WAV", + "AUDIO\\BAND_06.WAV", + "AUDIO\\BAND_07.WAV", + "AUDIO\\BAND_08.WAV", + "AUDIO\\SHAFT01.WAV", + "AUDIO\\SHAFT02.WAV", + "AUDIO\\SHAFT03.WAV", + "AUDIO\\SHAFT04.WAV", + "AUDIO\\SHAFT05.WAV", + "AUDIO\\SHAFT06.WAV", + "AUDIO\\SHAFT07.WAV", + "AUDIO\\SHAFT08.WAV", + "AUDIO\\PISS_01.WAV", + "AUDIO\\PISS_02.WAV", + "AUDIO\\PISS_03.WAV", + "AUDIO\\PISS_04.WAV", + "AUDIO\\PISS_05.WAV", + "AUDIO\\PISS_06.WAV", + "AUDIO\\PISS_07.WAV", + "AUDIO\\PISS_08.WAV", + "AUDIO\\PISS_09.WAV", + "AUDIO\\PISS_10.WAV", + "AUDIO\\PISS_11.WAV", + "AUDIO\\PISS_12.WAV", + "AUDIO\\PISS_13.WAV", + "AUDIO\\PISS_14.WAV", + "AUDIO\\PISS_15.WAV", + "AUDIO\\PISS_16.WAV", + "AUDIO\\PISS_17.WAV", + "AUDIO\\PISS_18.WAV", + "AUDIO\\PISS_19.WAV", + "AUDIO\\GIMME01.WAV", + "AUDIO\\GIMME02.WAV", + "AUDIO\\GIMME03.WAV", + "AUDIO\\GIMME04.WAV", + "AUDIO\\GIMME05.WAV", + "AUDIO\\GIMME06.WAV", + "AUDIO\\GIMME07.WAV", + "AUDIO\\GIMME08.WAV", + "AUDIO\\GIMME09.WAV", + "AUDIO\\GIMME10.WAV", + "AUDIO\\GIMME11.WAV", + "AUDIO\\GIMME12.WAV", + "AUDIO\\GIMME13.WAV", + "AUDIO\\GIMME14.WAV", + "AUDIO\\GIMME15.WAV", + "AUDIO\\BUST_01.WAV", + "AUDIO\\BUST_02.WAV", + "AUDIO\\BUST_03.WAV", + "AUDIO\\BUST_04.WAV", + "AUDIO\\BUST_05.WAV", + "AUDIO\\BUST_06.WAV", + "AUDIO\\BUST_07.WAV", + "AUDIO\\BUST_08.WAV", + "AUDIO\\BUST_09.WAV", + "AUDIO\\BUST_10.WAV", + "AUDIO\\BUST_11.WAV", + "AUDIO\\BUST_12.WAV", + "AUDIO\\BUST_13.WAV", + "AUDIO\\BUST_14.WAV", + "AUDIO\\BUST_15.WAV", + "AUDIO\\BUST_16.WAV", + "AUDIO\\BUST_17.WAV", + "AUDIO\\BUST_18.WAV", + "AUDIO\\BUST_19.WAV", + "AUDIO\\BUST_20.WAV", + "AUDIO\\BUST_21.WAV", + "AUDIO\\BUST_22.WAV", + "AUDIO\\BUST_23.WAV", + "AUDIO\\BUST_24.WAV", + "AUDIO\\BUST_25.WAV", + "AUDIO\\BUST_26.WAV", + "AUDIO\\BUST_27.WAV", + "AUDIO\\BUST_28.WAV", }; \ No newline at end of file diff --git a/src/audio/sampman_miles.cpp b/src/audio/sampman_miles.cpp index bf91a87..3eee78a 100644 --- a/src/audio/sampman_miles.cpp +++ b/src/audio/sampman_miles.cpp @@ -1054,7 +1054,7 @@ cSampleManager::Initialise(void) m_szCDRomRootPath[0] = '\0'; strcpy(m_WavFilesPath, m_szCDRomRootPath); - /* + #ifdef AUDIO_CACHE if ( CreateCache ) #endif @@ -1081,7 +1081,7 @@ cSampleManager::Initialise(void) return false; } } - */ + // Find path of MP3s (originally in CD-Rom) // if NO_CDCHECK is NOT defined but AUDIO_CACHE is defined, we still need to find MP3s' path, but will exit after the first file #ifndef NO_CDCHECK @@ -1099,7 +1099,7 @@ cSampleManager::Initialise(void) { #endif - for (int32 i = 0; i < TOTAL_STREAMED_SOUNDS; i++) + for (int32 i = 0; i < STREAMED_SOUND_MISSION_MOBR1; i++) { strcpy(filepath, m_MP3FilesPath); strcat(filepath, StreamedNameTable[i]); @@ -1140,7 +1140,7 @@ cSampleManager::Initialise(void) #endif if ( !bFileNotFound ) { -/* + #ifdef AUDIO_CACHE if ( CreateCache ) #endif @@ -1166,7 +1166,7 @@ cSampleManager::Initialise(void) bFileNotFound = true; break; } - }*/ + } } m_bInitialised = !bFileNotFound; @@ -2043,7 +2043,7 @@ cSampleManager::PreloadStreamedFile(uint32 nFile, uint8 nStream) char filepath[MAX_PATH]; - strcpy(filepath, m_MP3FilesPath); + strcpy(filepath, nFile < STREAMED_SOUND_MISSION_COMPLETED4 ? m_MP3FilesPath : (nFile < STREAMED_SOUND_MISSION_MOBR1 ? m_MiscomPath : m_WavFilesPath)); strcat(filepath, StreamedNameTable[nFile]); mp3Stream[nStream] = AIL_open_stream(DIG, filepath, 0); @@ -2082,142 +2082,136 @@ cSampleManager::StartPreloadedStreamedFile(uint8 nStream) bool cSampleManager::StartStreamedFile(uint32 nFile, uint32 nPos, uint8 nStream) { + int i = 0; uint32 position = nPos; char filename[MAX_PATH]; - if ( m_bInitialised && nFile < TOTAL_STREAMED_SOUNDS ) + if ( !m_bInitialised || nFile >= TOTAL_STREAMED_SOUNDS ) + return false; + + if ( mp3Stream[nStream] ) { - if ( mp3Stream[nStream] ) + AIL_pause_stream(mp3Stream[nStream], 1); + AIL_close_stream(mp3Stream[nStream]); + } + if ( nFile == STREAMED_SOUND_RADIO_MP3_PLAYER ) + { + do { - AIL_pause_stream(mp3Stream[nStream], 1); - AIL_close_stream(mp3Stream[nStream]); - } - - if ( nFile == STREAMED_SOUND_RADIO_MP3_PLAYER ) - { - uint32 i = 0; - do { - if(i != 0 || _bIsMp3Active) { - if(++_CurMP3Index >= nNumMP3s) _CurMP3Index = 0; - - _CurMP3Pos = 0; - - tMP3Entry *mp3 = _GetMP3EntryByIndex(_CurMP3Index); - - if(mp3) { - mp3 = _pMP3List; - if(mp3 == NULL) { - _bIsMp3Active = false; - nFile = 0; - strcpy(filename, m_MiscomPath); - strcat(filename, StreamedNameTable[nFile]); - - mp3Stream[nStream] = - AIL_open_stream(DIG, filename, 0); - if(mp3Stream[nStream]) { - AIL_set_stream_loop_count( - mp3Stream[nStream], nStreamLoopedFlag[nStream] ? 0 : 1); - nStreamLoopedFlag[nStream] = true; - AIL_set_stream_ms_position( - mp3Stream[nStream], position); - AIL_pause_stream(mp3Stream[nStream], - 0); - return true; - } - - return false; - } - } - - if(mp3->pLinkPath != NULL) - mp3Stream[nStream] = - AIL_open_stream(DIG, mp3->pLinkPath, 0); - else { - strcpy(filename, _mp3DirectoryPath); - strcat(filename, mp3->aFilename); - - mp3Stream[nStream] = - AIL_open_stream(DIG, filename, 0); - } + // Just switched to MP3 player + if ( !_bIsMp3Active && i == 0 ) + { + if ( nPos > nStreamLength[STREAMED_SOUND_RADIO_MP3_PLAYER] ) + position = 0; + tMP3Entry *e = _pMP3List; + // Try to continue from previous song, if already started + if(!_GetMP3PosFromStreamPos(&position, &e) && !e) { + nFile = 0; + strcpy(filename, m_MiscomPath); + strcat(filename, StreamedNameTable[nFile]); + mp3Stream[nStream] = + AIL_open_stream(DIG, filename, 0); if(mp3Stream[nStream]) { - AIL_set_stream_loop_count(mp3Stream[nStream], 1); - AIL_set_stream_ms_position(mp3Stream[nStream], 0); + AIL_set_stream_loop_count(mp3Stream[nStream], nStreamLoopedFlag[nStream] ? 0 : 1); + nStreamLoopedFlag[nStream] = true; + AIL_set_stream_ms_position(mp3Stream[nStream], position); AIL_pause_stream(mp3Stream[nStream], 0); return true; } + return false; - _bIsMp3Active = false; - continue; - } - if ( nPos > nStreamLength[STREAMED_SOUND_RADIO_MP3_PLAYER] ) - position = 0; + } else { + if ( e->pLinkPath != NULL ) + mp3Stream[nStream] = AIL_open_stream(DIG, e->pLinkPath, 0); + else { + strcpy(filename, _mp3DirectoryPath); + strcat(filename, e->aFilename); + + mp3Stream[nStream] = AIL_open_stream(DIG, filename, 0); + } + + if ( mp3Stream[nStream] ) { + AIL_set_stream_loop_count(mp3Stream[nStream], 1); + AIL_set_stream_ms_position(mp3Stream[nStream], position); + AIL_pause_stream(mp3Stream[nStream], 0); + + _bIsMp3Active = true; - tMP3Entry *e; - if ( !_GetMP3PosFromStreamPos(&position, &e) ) + return true; + } + // fall through, start playing from another song + } + } else { + if(++_CurMP3Index >= nNumMP3s) _CurMP3Index = 0; + + _CurMP3Pos = 0; + + tMP3Entry *mp3 = _GetMP3EntryByIndex(_CurMP3Index); + if ( !mp3 ) { - if ( e == NULL ) + mp3 = _pMP3List; + if ( !_pMP3List ) { nFile = 0; + _bIsMp3Active = 0; strcpy(filename, m_MiscomPath); strcat(filename, StreamedNameTable[nFile]); + mp3Stream[nStream] = AIL_open_stream(DIG, filename, 0); if(mp3Stream[nStream]) { - AIL_set_stream_loop_count(mp3Stream[nStream], nStreamLoopedFlag[nStream] ? 0 : 1); + AIL_set_stream_loop_count( + mp3Stream[nStream], nStreamLoopedFlag[nStream] ? 0 : 1); nStreamLoopedFlag[nStream] = true; - AIL_set_stream_ms_position(mp3Stream[nStream], position); - AIL_pause_stream(mp3Stream[nStream], 0); + AIL_set_stream_ms_position( + mp3Stream[nStream], position); + AIL_pause_stream(mp3Stream[nStream], + 0); return true; } - return false; } } - - if ( e->pLinkPath != NULL ) - mp3Stream[nStream] = AIL_open_stream(DIG, e->pLinkPath, 0); - else - { + if(mp3->pLinkPath != NULL) + mp3Stream[nStream] = AIL_open_stream(DIG, mp3->pLinkPath, 0); + else { strcpy(filename, _mp3DirectoryPath); - strcat(filename, e->aFilename); - - mp3Stream[nStream] = AIL_open_stream(DIG, filename, 0); + strcat(filename, mp3->aFilename); + + mp3Stream[nStream] = + AIL_open_stream(DIG, filename, 0); } - - if ( mp3Stream[nStream] ) - { + + if(mp3Stream[nStream]) { AIL_set_stream_loop_count(mp3Stream[nStream], 1); - AIL_set_stream_ms_position(mp3Stream[nStream], position); + AIL_set_stream_ms_position(mp3Stream[nStream], 0); AIL_pause_stream(mp3Stream[nStream], 0); - +#ifdef FIX_BUGS _bIsMp3Active = true; - +#endif return true; } - - _bIsMp3Active = false; - } while(++i < nNumMP3s); - - position = 0; - nFile = 0; - } - - strcpy(filename, m_MiscomPath); - strcat(filename, StreamedNameTable[nFile]); - - mp3Stream[nStream] = AIL_open_stream(DIG, filename, 0); - if ( mp3Stream[nStream] ) - { - AIL_set_stream_loop_count(mp3Stream[nStream], nStreamLoopedFlag[nStream] ? 0 : 1); - nStreamLoopedFlag[nStream] = true; - AIL_set_stream_ms_position(mp3Stream[nStream], position); - AIL_pause_stream(mp3Stream[nStream], 0); - return true; + } + _bIsMp3Active = 0; } + while ( ++i < nNumMP3s ); + position = 0; + nFile = 0; } + strcpy(filename, m_MiscomPath); + strcat(filename, StreamedNameTable[nFile]); + mp3Stream[nStream] = AIL_open_stream(DIG, filename, 0); + if ( mp3Stream[nStream] ) + { + AIL_set_stream_loop_count(mp3Stream[nStream], nStreamLoopedFlag[nStream] ? 0 : 1); + nStreamLoopedFlag[nStream] = true; + AIL_set_stream_ms_position(mp3Stream[nStream], position); + AIL_pause_stream(mp3Stream[nStream], 0); + return true; + } return false; } diff --git a/src/audio/sampman_oal.cpp b/src/audio/sampman_oal.cpp index 57a7024..5a300cf 100644 --- a/src/audio/sampman_oal.cpp +++ b/src/audio/sampman_oal.cpp @@ -392,7 +392,7 @@ set_new_provider(int index) static bool IsThisTrackAt16KHz(uint32 track) { - return false;// track == STREAMED_SOUND_RADIO_KCHAT || track == STREAMED_SOUND_RADIO_VCPR || track == STREAMED_SOUND_RADIO_POLICE; + return track == STREAMED_SOUND_RADIO_KCHAT || track == STREAMED_SOUND_RADIO_VCPR || track == STREAMED_SOUND_RADIO_POLICE; } cSampleManager::cSampleManager(void) @@ -1734,93 +1734,94 @@ cSampleManager::StartPreloadedStreamedFile(uint8 nStream) bool cSampleManager::StartStreamedFile(uint32 nFile, uint32 nPos, uint8 nStream) { + int i = 0; uint32 position = nPos; - char filename[256]; + char filename[MAX_PATH]; - ASSERT( nStream < MAX_STREAMS ); - - if ( nFile < TOTAL_STREAMED_SOUNDS ) + if ( nFile >= TOTAL_STREAMED_SOUNDS ) + return false; + + if ( aStream[nStream] ) { - if ( aStream[nStream] ) + delete aStream[nStream]; + aStream[nStream] = NULL; + } + if ( nFile == STREAMED_SOUND_RADIO_MP3_PLAYER ) + { + do { - delete aStream[nStream]; - aStream[nStream] = NULL; - } - - if ( nFile == STREAMED_SOUND_RADIO_MP3_PLAYER ) - { - uint32 i = 0; - do { - if(i != 0 || _bIsMp3Active) { - if(++_CurMP3Index >= nNumMP3s) _CurMP3Index = 0; + // Just switched to MP3 player + if ( !_bIsMp3Active && i == 0 ) + { + if ( nPos > nStreamLength[STREAMED_SOUND_RADIO_MP3_PLAYER] ) + position = 0; + tMP3Entry *e = _pMP3List; - _CurMP3Pos = 0; + // Try to continue from previous song, if already started + if(!_GetMP3PosFromStreamPos(&position, &e) && !e) { + nFile = 0; - tMP3Entry *mp3 = _GetMP3EntryByIndex(_CurMP3Index); + strcpy(filename, StreamedNameTable[nFile]); + CStream* stream = new CStream(filename, ALStreamSources[nStream], ALStreamBuffers[nStream], IsThisTrackAt16KHz(nFile) ? 16000 : 32000); - if(mp3) { - mp3 = _pMP3List; - if(mp3 == NULL) { - _bIsMp3Active = false; - nFile = 0; - strcat(filename, StreamedNameTable[nFile]); + aStream[nStream] = stream; - CStream* stream = new CStream(filename, ALStreamSources[nStream], ALStreamBuffers[nStream], IsThisTrackAt16KHz(nFile) ? 16000 : 32000); - ASSERT(stream != NULL); + if (stream->Setup()) { + stream->SetLoopCount(nStreamLoopedFlag[nStream] ? 0 : 1); + nStreamLoopedFlag[nStream] = true; + if (position != 0) + stream->SetPosMS(position); - aStream[nStream] = stream; + stream->Start(); - if (stream->Setup()) { - stream->SetLoopCount(nStreamLoopedFlag[nStream] ? 0 : 1); - nStreamLoopedFlag[nStream] = true; - if (position != 0) - stream->SetPosMS(position); - - stream->Start(); - - return true; - } else { - delete stream; - aStream[nStream] = NULL; - } - - return false; - } + return true; + } else { + delete stream; + aStream[nStream] = NULL; } + return false; - if (mp3->pLinkPath != NULL) - aStream[nStream] = new CStream(mp3->pLinkPath, ALStreamSources[nStream], ALStreamBuffers[nStream], IsThisTrackAt16KHz(nFile) ? 16000 : 32000); + } else { + + if (e->pLinkPath != NULL) + aStream[nStream] = new CStream(e->pLinkPath, ALStreamSources[nStream], ALStreamBuffers[nStream], IsThisTrackAt16KHz(nFile) ? 16000 : 32000); else { strcpy(filename, _mp3DirectoryPath); - strcat(filename, mp3->aFilename); + strcat(filename, e->aFilename); - aStream[nStream] = new CStream(filename, ALStreamSources[nStream], ALStreamBuffers[nStream], IsThisTrackAt16KHz(nFile) ? 16000 : 32000); + aStream[nStream] = new CStream(filename, ALStreamSources[nStream], ALStreamBuffers[nStream]); } if (aStream[nStream]->Setup()) { + if (position != 0) + aStream[nStream]->SetPosMS(position); + aStream[nStream]->Start(); + _bIsMp3Active = true; return true; } else { delete aStream[nStream]; aStream[nStream] = NULL; } - - _bIsMp3Active = false; - continue; + // fall through, start playing from another song } - if ( nPos > nStreamLength[STREAMED_SOUND_RADIO_MP3_PLAYER] ) - position = 0; - - tMP3Entry *e; - if ( !_GetMP3PosFromStreamPos(&position, &e) ) + } else { + if(++_CurMP3Index >= nNumMP3s) _CurMP3Index = 0; + + _CurMP3Pos = 0; + + tMP3Entry *mp3 = _GetMP3EntryByIndex(_CurMP3Index); + if ( !mp3 ) { - if ( e == NULL ) + mp3 = _pMP3List; + if ( !_pMP3List ) { nFile = 0; - strcat(filename, StreamedNameTable[nFile]); + _bIsMp3Active = 0; + strcpy(filename, StreamedNameTable[nFile]); + CStream* stream = new CStream(filename, ALStreamSources[nStream], ALStreamBuffers[nStream], IsThisTrackAt16KHz(nFile) ? 16000 : 32000); - ASSERT(stream != NULL); aStream[nStream] = stream; @@ -1837,63 +1838,55 @@ cSampleManager::StartStreamedFile(uint32 nFile, uint32 nPos, uint8 nStream) delete stream; aStream[nStream] = NULL; } - return false; } } - - if (e->pLinkPath != NULL) - aStream[nStream] = new CStream(e->pLinkPath, ALStreamSources[nStream], ALStreamBuffers[nStream], IsThisTrackAt16KHz(nFile) ? 16000 : 32000); + if (mp3->pLinkPath != NULL) + aStream[nStream] = new CStream(mp3->pLinkPath, ALStreamSources[nStream], ALStreamBuffers[nStream], IsThisTrackAt16KHz(nFile) ? 16000 : 32000); else { strcpy(filename, _mp3DirectoryPath); - strcat(filename, e->aFilename); + strcat(filename, mp3->aFilename); - aStream[nStream] = new CStream(filename, ALStreamSources[nStream], ALStreamBuffers[nStream]); + aStream[nStream] = new CStream(filename, ALStreamSources[nStream], ALStreamBuffers[nStream], IsThisTrackAt16KHz(nFile) ? 16000 : 32000); } if (aStream[nStream]->Setup()) { - if (position != 0) - aStream[nStream]->SetPosMS(position); - aStream[nStream]->Start(); - +#ifdef FIX_BUGS _bIsMp3Active = true; +#endif return true; } else { delete aStream[nStream]; aStream[nStream] = NULL; } - - _bIsMp3Active = false; - } while(++i < nNumMP3s); - - position = 0; - nFile = 0; - } - - strcpy(filename, StreamedNameTable[nFile]); - - CStream *stream = new CStream(filename, ALStreamSources[nStream], ALStreamBuffers[nStream], IsThisTrackAt16KHz(nFile) ? 16000 : 32000); - ASSERT(stream != NULL); - - aStream[nStream] = stream; - - if ( stream->Setup() ) { - stream->SetLoopCount(nStreamLoopedFlag[nStream] ? 0 : 1); - nStreamLoopedFlag[nStream] = true; - if (position != 0) - stream->SetPosMS(position); - - stream->Start(); - - return true; - } else { - delete stream; - aStream[nStream] = NULL; + } + _bIsMp3Active = 0; } + while ( ++i < nNumMP3s ); + position = 0; + nFile = 0; } + strcpy(filename, StreamedNameTable[nFile]); + CStream *stream = new CStream(filename, ALStreamSources[nStream], ALStreamBuffers[nStream], IsThisTrackAt16KHz(nFile) ? 16000 : 32000); + + aStream[nStream] = stream; + + if ( stream->Setup() ) { + stream->SetLoopCount(nStreamLoopedFlag[nStream] ? 0 : 1); + nStreamLoopedFlag[nStream] = true; + if (position != 0) + stream->SetPosMS(position); + + stream->Start(); + + return true; + } else { + delete stream; + aStream[nStream] = NULL; + } return false; } diff --git a/src/collision/ColBox.h b/src/collision/ColBox.h index 721756b..0df5592 100644 --- a/src/collision/ColBox.h +++ b/src/collision/ColBox.h @@ -19,12 +19,4 @@ struct CColBox : public CBox using CBox::Set; CColBox& operator=(const CColBox &other); -}; - -// no name for this -// bounds for a number of triangles -struct CColTriBBox : public CBox -{ - int32 first; - int32 last; -}; +}; \ No newline at end of file diff --git a/src/collision/ColLine.h b/src/collision/ColLine.h index a2cb9a0..21587a0 100644 --- a/src/collision/ColLine.h +++ b/src/collision/ColLine.h @@ -4,9 +4,9 @@ struct CColLine { // NB: this has to be compatible with two CVuVectors CVector p0; -// int pad0; + int pad0; CVector p1; -// int pad1; + int pad1; CColLine(void) { }; CColLine(const CVector &p0, const CVector &p1) { this->p0 = p0; this->p1 = p1; }; diff --git a/src/collision/ColModel.cpp b/src/collision/ColModel.cpp index 2071369..49847db 100644 --- a/src/collision/ColModel.cpp +++ b/src/collision/ColModel.cpp @@ -1,5 +1,4 @@ #include "common.h" -#include "main.h" #include "ColModel.h" #include "Collision.h" #include "Game.h" @@ -8,10 +7,6 @@ CColModel::CColModel(void) { - boundingSphere.Set(0.0001f, CVector(0.0f, 0.0f, 0.0f)); - boundingBox.Set(CVector(0.0f, 0.0f, 0.0f), CVector(0.0f, 0.0f, 0.0f)); - numTriBBoxes = 0; - triBBoxes = nil; numSpheres = 0; spheres = nil; numLines = 0; @@ -23,18 +18,14 @@ CColModel::CColModel(void) triangles = nil; trianglePlanes = nil; level = LEVEL_GENERIC; // generic col slot -// ownsCollisionVolumes = true; + ownsCollisionVolumes = true; } CColModel::~CColModel(void) { - if(!gNASTY_NASTY_MEM_SHUTDOWN_HACK){ - RemoveTrianglePlanes(); - RemoveCollisionVolumes(); - } + RemoveCollisionVolumes(); } -//--LCS: no pool used, but maybe we better keep it? void* CColModel::operator new(size_t) { @@ -52,28 +43,19 @@ CColModel::operator delete(void *p, size_t) void CColModel::RemoveCollisionVolumes(void) { -#ifdef FIX_BUGS - // why is this missing? - if(ownsCollisionVolumes) -#endif - if(!gUseChunkFiles){ - delete[] triBBoxes; - delete[] spheres; - delete[] lines; - delete[] boxes; - delete[] vertices; - delete[] triangles; + if(ownsCollisionVolumes){ + RwFree(spheres); + RwFree(lines); + RwFree(boxes); + RwFree(vertices); + RwFree(triangles); + CCollision::RemoveTrianglePlanes(this); } - CCollision::RemoveTrianglePlanes(this); numSpheres = 0; - numTriBBoxes = 0; numLines = 0; numBoxes = 0; numTriangles = 0; spheres = nil; -#ifdef FIX_BUGS - triBBoxes = nil; -#endif lines = nil; boxes = nil; vertices = nil; @@ -86,7 +68,7 @@ CColModel::CalculateTrianglePlanes(void) PUSH_MEMID(MEMID_COLLISION); // HACK: allocate space for one more element to stuff the link pointer into - trianglePlanes = new CColTrianglePlane[numTriangles+1]; + trianglePlanes = (CColTrianglePlane*)RwMalloc(sizeof(CColTrianglePlane) * (numTriangles+1)); REGISTER_MEMPTR(&trianglePlanes); for(int i = 0; i < numTriangles; i++) trianglePlanes[i].Set(vertices, triangles[i]); @@ -97,10 +79,8 @@ CColModel::CalculateTrianglePlanes(void) void CColModel::RemoveTrianglePlanes(void) { - if(trianglePlanes){ - delete[] trianglePlanes; - trianglePlanes = nil; - } + RwFree(trianglePlanes); + trianglePlanes = nil; } void @@ -132,33 +112,20 @@ CColModel::operator=(const CColModel &other) boundingSphere = other.boundingSphere; boundingBox = other.boundingBox; - // copy tri bboxes - if(other.numTriBBoxes){ - if(numTriBBoxes != other.numTriBBoxes){ - numTriBBoxes = other.numTriBBoxes; - delete[] triBBoxes; - triBBoxes = new CColTriBBox[numTriBBoxes]; - } - for(i = 0; i < numTriBBoxes; i++) - triBBoxes[i] = other.triBBoxes[i]; - }else{ - numTriBBoxes = 0; - delete[] triBBoxes; - triBBoxes = nil; - } - // copy spheres if(other.numSpheres){ if(numSpheres != other.numSpheres){ numSpheres = other.numSpheres; - delete[] spheres; - spheres = new CColSphere[numSpheres]; + if(spheres) + RwFree(spheres); + spheres = (CColSphere*)RwMalloc(numSpheres*sizeof(CColSphere)); } for(i = 0; i < numSpheres; i++) spheres[i] = other.spheres[i]; }else{ numSpheres = 0; - delete[] spheres; + if(spheres) + RwFree(spheres); spheres = nil; } @@ -166,14 +133,16 @@ CColModel::operator=(const CColModel &other) if(other.numLines){ if(numLines != other.numLines){ numLines = other.numLines; - delete[] lines; - lines = new CColLine[numLines]; + if(lines) + RwFree(lines); + lines = (CColLine*)RwMalloc(numLines*sizeof(CColLine)); } for(i = 0; i < numLines; i++) lines[i] = other.lines[i]; }else{ numLines = 0; - delete[] lines; + if(lines) + RwFree(lines); lines = nil; } @@ -181,21 +150,23 @@ CColModel::operator=(const CColModel &other) if(other.numBoxes){ if(numBoxes != other.numBoxes){ numBoxes = other.numBoxes; - delete[] boxes; - boxes = new CColBox[numBoxes]; + if(boxes) + RwFree(boxes); + boxes = (CColBox*)RwMalloc(numBoxes*sizeof(CColBox)); } for(i = 0; i < numBoxes; i++) boxes[i] = other.boxes[i]; }else{ numBoxes = 0; - delete[] boxes; + if(boxes) + RwFree(boxes); boxes = nil; } // copy mesh if(other.numTriangles){ // copy vertices - numVerts = -1; + numVerts = 0; for(i = 0; i < other.numTriangles; i++){ if(other.triangles[i].a > numVerts) numVerts = other.triangles[i].a; @@ -205,9 +176,10 @@ CColModel::operator=(const CColModel &other) numVerts = other.triangles[i].c; } numVerts++; - delete[] vertices; + if(vertices) + RwFree(vertices); if(numVerts){ - vertices = new CompressedVector[numVerts]; + vertices = (CompressedVector*)RwMalloc(numVerts*sizeof(CompressedVector)); for(i = 0; i < numVerts; i++) vertices[i] = other.vertices[i]; } @@ -215,54 +187,20 @@ CColModel::operator=(const CColModel &other) // copy triangles if(numTriangles != other.numTriangles){ numTriangles = other.numTriangles; - delete[] triangles; - triangles = new CColTriangle[numTriangles]; + if(triangles) + RwFree(triangles); + triangles = (CColTriangle*)RwMalloc(numTriangles*sizeof(CColTriangle)); } for(i = 0; i < numTriangles; i++) triangles[i] = other.triangles[i]; }else{ numTriangles = 0; - delete[] triangles; + if(triangles) + RwFree(triangles); triangles = nil; - delete[] vertices; + if(vertices) + RwFree(vertices); vertices = nil; } return *this; } - -bool -CColModel::Write(base::cRelocatableChunkWriter &writer, bool allocSpace) -{ - int numVerts = -1; - for(int i = 0; i < numTriangles; i++){ - if(triangles[i].a > numVerts) - numVerts = triangles[i].a; - if(triangles[i].b > numVerts) - numVerts = triangles[i].b; - if(triangles[i].c > numVerts) - numVerts = triangles[i].c; - } - numVerts++; - - if(allocSpace) - writer.AllocateRaw(this, sizeof(*this), 16, false, true); - writer.AllocateRaw(spheres, sizeof(*spheres)*numSpheres, 16, false, true); - writer.AddPatch(&spheres); - writer.AllocateRaw(lines, sizeof(*lines)*numLines, 16, false, true); - writer.AddPatch(&lines); - writer.AllocateRaw(boxes, sizeof(*boxes)*numBoxes, 16, false, true); - writer.AddPatch(&boxes); - if(triBBoxes && numTriBBoxes != 0){ - writer.AllocateRaw(triBBoxes, sizeof(*triBBoxes)*numTriBBoxes, 16, false, true); - writer.AddPatch(&triBBoxes); - }else - triBBoxes = nil; - if(numTriangles != 0){ - writer.AllocateRaw(vertices, sizeof(*vertices)*numVerts, 2, false, true); - writer.AddPatch(&vertices); - writer.AllocateRaw(triangles, sizeof(*triangles)*numTriangles, 2, false, true); - writer.AddPatch(&triangles); - RemoveTrianglePlanes(); - } - return 1; -} diff --git a/src/collision/ColModel.h b/src/collision/ColModel.h index 64911db..cd5ae65 100644 --- a/src/collision/ColModel.h +++ b/src/collision/ColModel.h @@ -15,13 +15,11 @@ struct CColModel int16 numBoxes; int16 numTriangles; int8 numLines; - int8 numTriBBoxes; uint8 level; // colstore slot but probably still named level bool ownsCollisionVolumes; CColSphere *spheres; CColLine *lines; CColBox *boxes; - CColTriBBox *triBBoxes; CompressedVector *vertices; CColTriangle *triangles; CColTrianglePlane *trianglePlanes; @@ -38,6 +36,4 @@ struct CColModel void *operator new(size_t); void operator delete(void *p, size_t); CColModel& operator=(const CColModel& other); - - bool Write(base::cRelocatableChunkWriter &writer, bool allocSpace); }; \ No newline at end of file diff --git a/src/collision/ColPoint.h b/src/collision/ColPoint.h index 36801ef..a15b234 100644 --- a/src/collision/ColPoint.h +++ b/src/collision/ColPoint.h @@ -3,13 +3,15 @@ struct CColPoint { CVector point; - float depth; + int pad1; // the surface normal on the surface of point CVector normal; + int pad2; uint8 surfaceA; uint8 pieceA; uint8 surfaceB; uint8 pieceB; + float depth; const CVector &GetNormal() { return normal; } float GetDepth() { return depth; } diff --git a/src/collision/ColSphere.h b/src/collision/ColSphere.h index 3f18d8c..f86b282 100644 --- a/src/collision/ColSphere.h +++ b/src/collision/ColSphere.h @@ -2,11 +2,10 @@ #include "SurfaceTable.h" -// TODO(LCS): maybe this was in a union with CVuVector? or is the alignment manual? -struct TYPEALIGN(16) CSphere +struct CSphere { // NB: this has to be compatible with a CVuVector - RwV3d center; + CVector center; float radius; void Set(float radius, const CVector ¢er) { this->center = center; this->radius = radius; } }; diff --git a/src/collision/ColStore.cpp b/src/collision/ColStore.cpp index 90a29bc..f1e695f 100644 --- a/src/collision/ColStore.cpp +++ b/src/collision/ColStore.cpp @@ -1,7 +1,5 @@ #include "common.h" -#include "main.h" -#include "smallHeap.h" #include "templates.h" #include "General.h" #include "ModelInfo.h" @@ -10,9 +8,6 @@ #include "Script.h" #include "Timer.h" #include "Camera.h" -#include "World.h" -#include "Zones.h" -#include "Garages.h" #include "Frontend.h" #include "Physical.h" #include "ColStore.h" @@ -20,55 +15,16 @@ #include "Pools.h" CPool *CColStore::ms_pColPool; -bool CColStore::m_onlyBB; #ifndef MASTER bool bDispColInMem; #endif -// LCS: file done except unused: -// CColStore::LoadCol(int,char const*) -// CColStore::LoadAllBoundingBoxes(void) -// CColStore::Write(base::cRelocatableChunkWriter &) - -const CVector& -LevelPos(eLevelName level) -{ - static CVector pos[4] = { - CVector(1060.0f, -800.0f, 0.0f), - CVector(1060.0f, -800.0f, 0.0f), - CVector(350.0f, -624.0f, 0.0f), - CVector(-670.0f, -511.0f, 0.0f) - }; - return pos[level]; -}; - -static eLevelName -PosLevel(const CVector &pos) -{ - static eLevelName lastPlayerLevel = LEVEL_INDUSTRIAL; - static eLevelName lastOtherLevel = LEVEL_INDUSTRIAL; - - if(Abs(FindPlayerCoors().x - pos.x) < 5.0f && - Abs(FindPlayerCoors().y - pos.y) < 5.0f && - Abs(FindPlayerCoors().z - pos.z) < 5.0f){ - if(CGame::currLevel != LEVEL_GENERIC) - lastPlayerLevel = CGame::currLevel; - return lastPlayerLevel; - }else{ - eLevelName lvl = CTheZones::GetLevelFromPosition(&pos); - if(lvl != LEVEL_GENERIC) - lastOtherLevel = lvl; - return lastOtherLevel; - } -} - void CColStore::Initialise(void) { - if(ms_pColPool == nil){ + if(ms_pColPool == nil) ms_pColPool = new CPool(COLSTORESIZE, "CollisionFiles"); - AddColSlot("generic"); // slot 0. not streamed - } + AddColSlot("generic"); // slot 0. not streamed #ifndef MASTER VarConsole.Add("Display collision in memory", &bDispColInMem, true); #endif @@ -82,9 +38,7 @@ CColStore::Shutdown(void) RemoveColSlot(i); if(ms_pColPool) delete ms_pColPool; -#ifdef FIX_BUGS ms_pColPool = nil; -#endif } int @@ -165,34 +119,11 @@ CColStore::LoadCol(int32 slot, uint8 *buffer, int32 bufsize) return success; } -struct ColChunkEntry -{ - int32 modelId; // -1 marks end - CColModel *colModel; -}; - -void -CColStore::LoadColCHK(int32 slot, void *data, void *chunk) -{ - ColDef *def = GetSlot(slot); - def->chunk = chunk; - CStreaming::RegisterPointer(&def->chunk, 1, true); - for(ColChunkEntry *entry = (ColChunkEntry*)data; entry->modelId != -1; entry++){ - CBaseModelInfo *mi = CModelInfo::GetModelInfo(entry->modelId); - mi->SetColModel(entry->colModel, true); // we own this? can that work? - CStreaming::RegisterPointer(&mi->m_colModel, 1, true); - } - def->isLoaded = true; -} - -CColModel nullCollision; - void CColStore::RemoveCol(int32 slot) { int id; - ColDef *def = GetSlot(slot); - def->isLoaded = false; + GetSlot(slot)->isLoaded = false; for(id = 0; id < MODELINFOSIZE; id++){ CBaseModelInfo *mi = CModelInfo::GetModelInfo(id); if(mi){ @@ -201,23 +132,6 @@ CColStore::RemoveCol(int32 slot) col->RemoveCollisionVolumes(); } } - if(gUseChunkFiles){ - for(id = 0; id < MODELINFOSIZE; id++){ - CBaseModelInfo *mi = CModelInfo::GetModelInfo(id); - if(mi){ - CColModel *col = mi->GetColModel(); - if(col && col->level == slot){ - mi->SetColModel(&nullCollision); - CStreaming::UnregisterPointer(&mi->m_colModel, 1); - } - } - } - if(def->chunk){ - CStreaming::UnregisterPointer(&def->chunk, 1); - cSmallHeap::msInstance.Free(def->chunk); - def->chunk = nil; - } - } } void @@ -242,49 +156,29 @@ CColStore::RemoveAllCollision(void) } static bool bLoadAtSecondPosition; -static CVector secondPosition; +static CVector2D secondPosition; void -CColStore::AddCollisionNeededAtPosn(const CVector &pos) +CColStore::AddCollisionNeededAtPosn(const CVector2D &pos) { bLoadAtSecondPosition = true; secondPosition = pos; } void -CColStore::LoadCollision(const CVector &pos, eLevelName level) +CColStore::LoadCollision(const CVector2D &pos) { int i; if(CStreaming::ms_disableStreaming) return; - if(level == LEVEL_GENERIC) - level = PosLevel(pos); - - eLevelName allowedLevel = (eLevelName)CTheScripts::AllowedCollision[0]; - if(allowedLevel == LEVEL_GENERIC) - allowedLevel = (eLevelName)CTheScripts::AllowedCollision[1]; - - bool requestedSomething = false; - for(i = 1; i < COLSTORESIZE; i++){ - if(GetSlot(i) == nil || !DoScriptsWantThisIn(i)) + if(GetSlot(i) == nil) continue; bool wantThisOne = false; - if(strcmp(GetColName(i), "indust") == 0){ - if(allowedLevel != LEVEL_GENERIC && level != LEVEL_INDUSTRIAL) - wantThisOne = allowedLevel == LEVEL_INDUSTRIAL; - else - wantThisOne = level == LEVEL_INDUSTRIAL; - }else if(GetBoundingBox(i).IsPointInside(LevelPos(level))) - wantThisOne = true; - else if(allowedLevel != LEVEL_GENERIC && GetBoundingBox(i).IsPointInside(LevelPos(allowedLevel))) - wantThisOne = true; - -/* // LCS: removed if(GetBoundingBox(i).IsPointInside(pos) || bLoadAtSecondPosition && GetBoundingBox(i).IsPointInside(secondPosition, -119.0f) || strcmp(GetColName(i), "yacht") == 0){ @@ -309,38 +203,28 @@ CColStore::LoadCollision(const CVector &pos, eLevelName level) } } } -*/ - if(wantThisOne){ + if(wantThisOne) CStreaming::RequestCol(i, STREAMFLAGS_PRIORITY); - requestedSomething = true; - }else + else CStreaming::RemoveCol(i); } - if(requestedSomething){ - CTimer::Suspend(); - // BUG? request was done with priority but now loading non-priority? - CStreaming::LoadAllRequestedModels(false); - CGarages::SetupAnyGaragesForThisIsland(); - CTimer::Resume(); - } bLoadAtSecondPosition = false; } void -CColStore::RequestCollision(const CVector &pos) +CColStore::RequestCollision(const CVector2D &pos) { int i; for(i = 1; i < COLSTORESIZE; i++) - if(GetSlot(i) && DoScriptsWantThisIn(i) && GetBoundingBox(i).IsPointInside(LevelPos(PosLevel(pos)), -115.0f)) + if(GetSlot(i) && GetBoundingBox(i).IsPointInside(pos, -115.0f)) CStreaming::RequestCol(i, STREAMFLAGS_PRIORITY); } void -CColStore::EnsureCollisionIsInMemory(const CVector &pos) +CColStore::EnsureCollisionIsInMemory(const CVector2D &pos) { -/* // LCS: removed int i; if(CStreaming::ms_disableStreaming) @@ -356,48 +240,16 @@ CColStore::EnsureCollisionIsInMemory(const CVector &pos) CStreaming::LoadAllRequestedModels(false); CTimer::Resume(); } -*/ } bool -CColStore::DoScriptsWantThisIn(int32 slot) -{ - if(slot == 0) - return false; - ColDef *coldef = GetSlot(slot); - if(coldef == nil) - return false; - if(strcmp(coldef->name, "fortstaunton") == 0) - return !CTheScripts::IsFortStauntonDestroyed(); - if(strcmp(coldef->name, "fortdestroyed") == 0) - return CTheScripts::IsFortStauntonDestroyed(); - return true; -} - -bool -CColStore::HasCollisionLoaded(eLevelName level) +CColStore::HasCollisionLoaded(const CVector2D &pos) { int i; - const CVector &pos = LevelPos(level); for(i = 1; i < COLSTORESIZE; i++) - if(GetSlot(i) && DoScriptsWantThisIn(i) && - (!CGeneral::faststricmp(GetColName(i), "indust") && level == LEVEL_INDUSTRIAL || - GetBoundingBox(i).IsPointInside(pos)) && + if(GetSlot(i) && GetBoundingBox(i).IsPointInside(pos, -115.0f) && !GetSlot(i)->isLoaded) return false; return true; } - -bool -CColStore::HasCollisionLoaded(const CVector &pos) -{ - return HasCollisionLoaded(PosLevel(pos)); -} - -void -CColStore::Load(bool onlyBB, CPool *pool) -{ - ms_pColPool = pool; - m_onlyBB = onlyBB; -} diff --git a/src/collision/ColStore.h b/src/collision/ColStore.h index d09bbf8..8e2a3a7 100644 --- a/src/collision/ColStore.h +++ b/src/collision/ColStore.h @@ -9,13 +9,11 @@ struct ColDef { // made up name char name[20]; int16 minIndex; int16 maxIndex; - void *chunk; }; class CColStore { static CPool *ms_pColPool; - static bool m_onlyBB; public: static void Initialise(void); @@ -27,18 +25,14 @@ public: static CRect &GetBoundingBox(int32 slot); static void IncludeModelIndex(int32 slot, int32 modelIndex); static bool LoadCol(int32 storeID, uint8 *buffer, int32 bufsize); - static void LoadColCHK(int32 slot, void *data, void *chunk); static void RemoveCol(int32 slot); - static void AddCollisionNeededAtPosn(const CVector &pos); + static void AddCollisionNeededAtPosn(const CVector2D &pos); static void LoadAllCollision(void); static void RemoveAllCollision(void); - static void LoadCollision(const CVector &pos, eLevelName level = LEVEL_GENERIC); - static void RequestCollision(const CVector &pos); - static void EnsureCollisionIsInMemory(const CVector &pos); - static bool DoScriptsWantThisIn(int32 slot); - static bool HasCollisionLoaded(eLevelName level); - static bool HasCollisionLoaded(const CVector &pos); - static void Load(bool, CPool *pool); + static void LoadCollision(const CVector2D &pos); + static void RequestCollision(const CVector2D &pos); + static void EnsureCollisionIsInMemory(const CVector2D &pos); + static bool HasCollisionLoaded(const CVector2D &pos); static ColDef *GetSlot(int slot) { assert(slot >= 0); diff --git a/src/collision/ColTriangle.h b/src/collision/ColTriangle.h index 5ce543b..a2580c5 100644 --- a/src/collision/ColTriangle.h +++ b/src/collision/ColTriangle.h @@ -62,7 +62,6 @@ struct CColTrianglePlane } #endif #else - // TODO(LCS): LCS actually uses CompressedVector too CVector normal; float dist; uint8 dir; diff --git a/src/collision/Collision.cpp b/src/collision/Collision.cpp index 1f15670..50c22e3 100644 --- a/src/collision/Collision.cpp +++ b/src/collision/Collision.cpp @@ -24,10 +24,6 @@ #include "Camera.h" #include "ColStore.h" -// gotta figure out how they handled CSphere exactly -// so using this to remind me to look into it again. -#define CVECTORHACK(rwv3d) CVector(rwv3d) - #ifdef VU_COLLISION #include "VuCollision.h" @@ -403,7 +399,7 @@ CCollision::TestLineSphere(const CColLine &line, const CColSphere &sph) // The length of the tangent would be this: Sqrt((c-p0)^2 - r^2). // Negative if p0 is inside the sphere! This breaks the test! float tansq = 4.0f * linesq * - (CVECTORHACK(sph.center).MagnitudeSqr() - 2.0f*DotProduct(sph.center, line.p0) + line.p0.MagnitudeSqr() - sph.radius*sph.radius); + (sph.center.MagnitudeSqr() - 2.0f*DotProduct(sph.center, line.p0) + line.p0.MagnitudeSqr() - sph.radius*sph.radius); float diffsq = projline*projline - tansq; // if diffsq < 0 that means the line is a passant, so no intersection if(diffsq < 0.0f) @@ -482,9 +478,9 @@ CCollision::TestSphereTriangle(const CColSphere &sphere, case 2: // closest to an edge // looks like original game as DistToLine manually inlined - if(!insideAB) dist = DistToLine(&va, &vb, &CVECTORHACK(sphere.center)); - else if(!insideAC) dist = DistToLine(&va, &vc, &CVECTORHACK(sphere.center)); - else if(!insideBC) dist = DistToLine(&vb, &vc, &CVECTORHACK(sphere.center)); + if(!insideAB) dist = DistToLine(&va, &vb, &sphere.center); + else if(!insideAC) dist = DistToLine(&va, &vc, &sphere.center); + else if(!insideBC) dist = DistToLine(&vb, &vc, &sphere.center); else assert(0); break; case 3: @@ -1300,9 +1296,9 @@ CCollision::ProcessSphereTriangle(const CColSphere &sphere, case 2: // closest to an edge // looks like original game as DistToLine manually inlined - if(!insideAB) dist = DistToLine(&va, &vb, &CVECTORHACK(sphere.center), p); - else if(!insideAC) dist = DistToLine(&va, &vc, &CVECTORHACK(sphere.center), p); - else if(!insideBC) dist = DistToLine(&vb, &vc, &CVECTORHACK(sphere.center), p); + if(!insideAB) dist = DistToLine(&va, &vb, &sphere.center, p); + else if(!insideAC) dist = DistToLine(&va, &vc, &sphere.center, p); + else if(!insideBC) dist = DistToLine(&vb, &vc, &sphere.center, p); else assert(0); break; case 3: diff --git a/src/collision/TempColModels.cpp b/src/collision/TempColModels.cpp index 148b86f..0c0d437 100644 --- a/src/collision/TempColModels.cpp +++ b/src/collision/TempColModels.cpp @@ -1,25 +1,22 @@ #include "common.h" -#include "main.h" #include "TempColModels.h" #include "Game.h" -// LCS: haven't yet checked the numbers but they probably haven't changed - +CColModel CTempColModels::ms_colModelPed1; CColModel CTempColModels::ms_colModelPed2; +CColModel CTempColModels::ms_colModelBBox; CColModel CTempColModels::ms_colModelBumper1; CColModel CTempColModels::ms_colModelWheel1; CColModel CTempColModels::ms_colModelPanel1; CColModel CTempColModels::ms_colModelBodyPart2; CColModel CTempColModels::ms_colModelBodyPart1; -CColModel CTempColModels::ms_colModelCutObj[10]; +CColModel CTempColModels::ms_colModelCutObj[5]; CColModel CTempColModels::ms_colModelPedGroundHit; CColModel CTempColModels::ms_colModelBoot1; CColModel CTempColModels::ms_colModelDoor1; CColModel CTempColModels::ms_colModelBonnet1; -CColModel CTempColModels::ms_colModelFerryDocked; - -CTempColModels *gpTempColModels; +CColModel CTempColModels::ms_colModelWeapon; CColSphere s_aPedSpheres[3]; @@ -37,7 +34,6 @@ CColSphere s_aBootSpheres[4]; CColSphere s_aWheelSpheres[2]; CColSphere s_aBodyPartSpheres1[2]; CColSphere s_aBodyPartSpheres2[2]; -CColBox S_aFerryDockedBoxes[1]; void CTempColModels::Initialise(void) @@ -48,27 +44,12 @@ CTempColModels::Initialise(void) colmodel.level = LEVEL_GENERIC;\ colmodel.ownsCollisionVolumes = false; - if(gMakeResources){ - if(gpTempColModels == nil){ - gpTempColModels = new CTempColModels; - gpTempColModels->Initialise(); - return; - } - - ms_colModelBBox.boundingSphere.Set(2.0f, CVector(0.0f, 0.0f, 0.0f)); - ms_colModelBBox.boundingBox.Set(CVector(-2.0f, -2.0f, -2.0f), CVector(2.0f, 2.0f, 2.0f)); - ms_colModelBBox.level = LEVEL_GENERIC; - - ms_colModelPed1.boundingSphere.Set(1.25f, CVector(0.0f, 0.0f, 0.0f)); - ms_colModelPed1.boundingBox.Set(CVector(-0.35f, -0.35f, -1.0f), CVector(0.35f, 0.35f, 0.9f)); - SET_COLMODEL_SPHERES(ms_colModelPed1, s_aPedSpheres); - - ms_colModelWeapon.boundingSphere.Set(0.25f, CVector(0.0f, 0.0f, 0.0f)); - ms_colModelWeapon.boundingBox.Set(CVector(-0.25f, -0.25f, -0.25f), CVector(0.25f, 0.25f, 0.25f)); - } - int i; + ms_colModelBBox.boundingSphere.Set(2.0f, CVector(0.0f, 0.0f, 0.0f)); + ms_colModelBBox.boundingBox.Set(CVector(-2.0f, -2.0f, -2.0f), CVector(2.0f, 2.0f, 2.0f)); + ms_colModelBBox.level = LEVEL_GENERIC; + for (i = 0; i < ARRAY_SIZE(ms_colModelCutObj); i++) { ms_colModelCutObj[i].boundingSphere.Set(2.0f, CVector(0.0f, 0.0f, 0.0f)); ms_colModelCutObj[i].boundingBox.Set(CVector(-2.0f, -2.0f, -2.0f), CVector(2.0f, 2.0f, 2.0f)); @@ -93,6 +74,10 @@ CTempColModels::Initialise(void) s_aPedSpheres[i].piece = 0; } + ms_colModelPed1.boundingSphere.Set(1.25f, CVector(0.0f, 0.0f, 0.0f)); + ms_colModelPed1.boundingBox.Set(CVector(-0.35f, -0.35f, -1.0f), CVector(0.35f, 0.35f, 0.9f)); + SET_COLMODEL_SPHERES(ms_colModelPed1, s_aPedSpheres); + // Ped 2 Spheres s_aPed2Spheres[0].radius = 0.3f; @@ -309,47 +294,13 @@ CTempColModels::Initialise(void) SET_COLMODEL_SPHERES(ms_colModelBodyPart2, s_aBodyPartSpheres2); - // Ferry Docked - - S_aFerryDockedBoxes[0].Set(CVector(-6.3f, -22.78f, -2.0f), CVector(6.3f, 22.78f, 2.8f), SURFACE_THICK_METAL_PLATE, SURFACE_DEFAULT); - - ms_colModelFerryDocked.boundingSphere.Set(35.0f, CVector(0.0f, -0.0f, 0.0f)); - ms_colModelFerryDocked.boundingBox.Set(S_aFerryDockedBoxes[0].min, S_aFerryDockedBoxes[0].max); - ms_colModelFerryDocked.spheres = nil; - ms_colModelFerryDocked.numSpheres = 0; - ms_colModelFerryDocked.boxes = S_aFerryDockedBoxes; - ms_colModelFerryDocked.numBoxes = ARRAY_SIZE(S_aFerryDockedBoxes); - ms_colModelFerryDocked.level = LEVEL_GENERIC; - + ms_colModelWeapon.boundingSphere.radius = 0.25f; + ms_colModelWeapon.boundingBox.min.x = -0.25f; + ms_colModelWeapon.boundingBox.min.y = -0.25f; + ms_colModelWeapon.boundingBox.min.z = -0.25f; + ms_colModelWeapon.boundingBox.max.x = 0.25f; + ms_colModelWeapon.boundingBox.max.y = 0.25f; + ms_colModelWeapon.boundingBox.max.z = 0.25f; #undef SET_COLMODEL_SPHERES } - -void -CTempColModels::Write(base::cRelocatableChunkWriter &writer) -{ - writer.AllocateRaw(this, sizeof(*this), 0x10, false, true); - - ms_colModelBBox.Write(writer, false); - writer.AddPatch(&ms_colModelBBox); - - ms_colModelPed1.Write(writer, false); - writer.AddPatch(&ms_colModelPed1); - - ms_colModelWeapon.Write(writer, false); - writer.AddPatch(&ms_colModelWeapon); - - for(int i = 0; i < ARRAY_SIZE(ms_colModelCutObj); i++) - ms_colModelCutObj[i].Write(writer, true); - ms_colModelPed2.Write(writer, true); - ms_colModelPedGroundHit.Write(writer, true); - ms_colModelDoor1.Write(writer, true); - ms_colModelBumper1.Write(writer, true); - ms_colModelPanel1.Write(writer, true); - ms_colModelBonnet1.Write(writer, true); - ms_colModelBoot1.Write(writer, true); - ms_colModelWheel1.Write(writer, true); - ms_colModelBodyPart1.Write(writer, true); - ms_colModelBodyPart2.Write(writer, true); - ms_colModelFerryDocked.Write(writer, true); -} diff --git a/src/collision/TempColModels.h b/src/collision/TempColModels.h index 0f1f06c..1a88872 100644 --- a/src/collision/TempColModels.h +++ b/src/collision/TempColModels.h @@ -5,25 +5,20 @@ class CTempColModels { public: - CColModel ms_colModelPed1; - CColModel ms_colModelBBox; - CColModel ms_colModelWeapon; - + static CColModel ms_colModelPed1; static CColModel ms_colModelPed2; + static CColModel ms_colModelBBox; static CColModel ms_colModelBumper1; static CColModel ms_colModelWheel1; static CColModel ms_colModelPanel1; static CColModel ms_colModelBodyPart2; static CColModel ms_colModelBodyPart1; - static CColModel ms_colModelCutObj[10]; + static CColModel ms_colModelCutObj[5]; static CColModel ms_colModelPedGroundHit; static CColModel ms_colModelBoot1; static CColModel ms_colModelDoor1; static CColModel ms_colModelBonnet1; - static CColModel ms_colModelFerryDocked; + static CColModel ms_colModelWeapon; - void Initialise(void); - void Write(base::cRelocatableChunkWriter &writer); + static void Initialise(void); }; - -extern CTempColModels *gpTempColModels; diff --git a/src/control/Bridge.cpp b/src/control/Bridge.cpp index e7c76a9..1e63cf3 100644 --- a/src/control/Bridge.cpp +++ b/src/control/Bridge.cpp @@ -161,23 +161,3 @@ bool CBridge::ThisIsABridgeObjectMovingUp(int index) return false; #endif } - -void CBridge::ForceBridgeState(uint8 state) -{ -#ifdef GTA_BRIDGE - State = state; - switch (state) - { - case STATE_BRIDGE_LOCKED: - case STATE_LIFT_PART_MOVING_DOWN: - case STATE_LIFT_PART_ABOUT_TO_MOVE_UP: - ThePaths.SetLinksBridgeLights(-330.0f, -230.0f, -700.0f, -588.0f, true); - break; - case STATE_BRIDGE_ALWAYS_UNLOCKED: - ThePaths.SetLinksBridgeLights(-330.0f, -230.0f, -700.0f, -588.0f, false); - break; - default: - break; - } -#endif -} \ No newline at end of file diff --git a/src/control/Bridge.h b/src/control/Bridge.h index e639d4c..c570262 100644 --- a/src/control/Bridge.h +++ b/src/control/Bridge.h @@ -8,8 +8,7 @@ enum bridgeStates { STATE_LIFT_PART_MOVING_DOWN, STATE_LIFT_PART_IS_DOWN, STATE_LIFT_PART_ABOUT_TO_MOVE_UP, - STATE_LIFT_PART_MOVING_UP, - STATE_BRIDGE_ALWAYS_UNLOCKED + STATE_LIFT_PART_MOVING_UP }; class CBridge @@ -26,5 +25,4 @@ public: static bool ShouldLightsBeFlashing(); static void FindBridgeEntities(); static bool ThisIsABridgeObjectMovingUp(int); - static void ForceBridgeState(uint8 state); }; diff --git a/src/control/CarAI.cpp b/src/control/CarAI.cpp index 45652b2..8e79fee 100644 --- a/src/control/CarAI.cpp +++ b/src/control/CarAI.cpp @@ -4,7 +4,6 @@ #include "Accident.h" #include "AutoPilot.h" -#include "Bridge.h" #include "CarCtrl.h" #include "General.h" #include "HandlingMgr.h" @@ -73,18 +72,6 @@ void CCarAI::UpdateCarAI(CVehicle* pVehicle) case STATUS_PLAYER_DISABLED: break; case STATUS_SIMPLE: - { - if (pVehicle->m_pCurGroundEntity && CBridge::ThisIsABridgeObjectMovingUp(pVehicle->m_pCurGroundEntity->GetModelIndex())) - pVehicle->SetStatus(STATUS_PHYSICS); - CColPoint colPoint; - CEntity* pEntity; - if ((pVehicle->m_randomSeed & 0x3F) == (CTimer::GetFrameCounter() & 0x3F) && - !CWorld::ProcessVerticalLine(pVehicle->GetPosition(), -2.0f, colPoint, pEntity, true, false, false, false, true, false, nil)) { - debug("FLOATING CAR TURNED INTO PHYSICS CAR!\n"); - pVehicle->SetStatus(STATUS_PHYSICS); - } - } - // fallthough case STATUS_PHYSICS: switch (pVehicle->AutoPilot.m_nCarMission) { case MISSION_RAMPLAYER_FARAWAY: diff --git a/src/control/CarCtrl.cpp b/src/control/CarCtrl.cpp index ac02abe..8db6fd9 100644 --- a/src/control/CarCtrl.cpp +++ b/src/control/CarCtrl.cpp @@ -11,7 +11,6 @@ #include "Cranes.h" #include "Curves.h" #include "CutsceneMgr.h" -#include "Frontend.h" #include "Gangs.h" #include "Game.h" #include "Garages.h" @@ -78,11 +77,10 @@ #define DISTANCE_BETWEEN_CAR_AND_DEAD_PED (6.0f) #define PROBABILITY_OF_PASSENGER_IN_VEHICLE (0.125f) -#define ONSCREEN_DESPAWN_RANGE (190.0f) -#define MINIMAL_DISTANCE_TO_SPAWN_ONSCREEN (130.0f) -#define REQUEST_ONSCREEN_DISTANCE (140.0f) -#define OFFSCREEN_DESPAWN_RANGE (60.0f) -#define MINIMAL_DISTANCE_TO_SPAWN_OFFSCREEN (40.0f) +#define ONSCREEN_DESPAWN_RANGE (120.0f) +#define MINIMAL_DISTANCE_TO_SPAWN_ONSCREEN (100.0f) +#define REQUEST_ONSCREEN_DISTANCE ((ONSCREEN_DESPAWN_RANGE + MINIMAL_DISTANCE_TO_SPAWN_ONSCREEN) / 2) +#define OFFSCREEN_DESPAWN_RANGE (40.0f) #define EXTENDED_RANGE_DESPAWN_MULTIPLIER (1.5f) bool CCarCtrl::bMadDriversCheat; @@ -96,7 +94,7 @@ int32 CCarCtrl::NumRandomCars; int32 CCarCtrl::NumParkedCars; int32 CCarCtrl::NumPermanentCars; int8 CCarCtrl::CountDownToCarsAtStart; -int32 CCarCtrl::MaxNumberOfCarsInUse = 30; +int32 CCarCtrl::MaxNumberOfCarsInUse = 12; uint32 CCarCtrl::LastTimeLawEnforcerCreated; uint32 CCarCtrl::LastTimeFireTruckCreated; uint32 CCarCtrl::LastTimeAmbulanceCreated; @@ -111,8 +109,6 @@ int32 CCarCtrl::LoadedCarsArray[TOTAL_CUSTOM_CLASSES][MAX_CAR_MODELS_IN_ARRAY]; CVehicle* apCarsToKeep[MAX_CARS_TO_KEEP]; uint32 aCarsToKeepTime[MAX_CARS_TO_KEEP]; -bool gbEmergencyVehiclesEnabled = true; - void CCarCtrl::GenerateRandomCars() { @@ -162,19 +158,14 @@ CCarCtrl::GenerateOneRandomCar() carClass = COPS; carModel = ChoosePoliceCarModel(); }else{ - for (int i = 0; i < 5; i++) { - carModel = ChooseModel(&zone, &carClass); - if (carModel == -1) - return; - if (!(carClass == COPS && pWanted->GetWantedLevel() >= 1)) - /* All cop spawns with wanted level are handled by condition above. */ - /* In particular it means that cop cars never spawn if player has wanted level of 1. */ - break; - } + carModel = ChooseModel(&zone, &carClass); + if (carModel == -1 || (carClass == COPS && pWanted->GetWantedLevel() >= 1)) + /* All cop spawns with wanted level are handled by condition above. */ + /* In particular it means that cop cars never spawn if player has wanted level of 1. */ + return; } float frontX, frontY; float preferredDistance, angleLimit; - float requestMultiplier = 1.0f; bool invertAngleLimitTest; CVector spawnPosition; int32 curNodeId, nextNodeId; @@ -194,14 +185,11 @@ CCarCtrl::GenerateOneRandomCar() angleLimit = -1.0f; bTopDownCamera = true; invertAngleLimitTest = true; - preferredDistance = MINIMAL_DISTANCE_TO_SPAWN_OFFSCREEN + 15.0f; + preferredDistance = OFFSCREEN_DESPAWN_RANGE + 15.0f; /* BUG: testForCollision not initialized in original game. */ testForCollision = false; }else if (!pPlayerVehicle){ /* Player is not in vehicle. */ - requestMultiplier = 13.0f / 20.0f; - if (FrontEndMenuManager.m_PrefsUseWideScreen) // TODO(LCS): static - requestMultiplier *= 4.0f / 3.0f; testForCollision = true; frontX = TheCamera.CamFrontXNorm; frontY = TheCamera.CamFrontYNorm; @@ -211,105 +199,95 @@ CCarCtrl::GenerateOneRandomCar() /* Forward to his current direction (camera direction). */ angleLimit = 0.707f; /* 45 degrees */ invertAngleLimitTest = true; - preferredDistance = REQUEST_ONSCREEN_DISTANCE * requestMultiplier * TheCamera.GenerationDistMultiplier; + preferredDistance = REQUEST_ONSCREEN_DISTANCE * TheCamera.GenerationDistMultiplier; break; case 1: /* Spawn a vehicle close to player to his side. */ /* Kinda not within camera angle. */ angleLimit = 0.707f; /* 45 degrees */ invertAngleLimitTest = false; - preferredDistance = MINIMAL_DISTANCE_TO_SPAWN_OFFSCREEN; + preferredDistance = OFFSCREEN_DESPAWN_RANGE; break; } - } - else { - requestMultiplier = 13.0f / 20.0f; - if (TheCamera.Cams[TheCamera.ActiveCam].Mode == CCam::MODE_1STPERSON && !FrontEndMenuManager.m_PrefsUseWideScreen) - requestMultiplier *= 0.9f; - if (FrontEndMenuManager.m_PrefsUseWideScreen) // TODO(LCS): static - requestMultiplier *= 4.0f / 3.0f; - if (fPlayerVehicleSpeed > 0.4f) { /* 72 km/h */ + }else if (fPlayerVehicleSpeed > 0.4f){ /* 72 km/h */ /* Player is moving fast in vehicle */ /* Prefer spawning vehicles very far away from him. */ - frontX = vecPlayerVehicleSpeed.x / fPlayerVehicleSpeed; - frontY = vecPlayerVehicleSpeed.y / fPlayerVehicleSpeed; - testForCollision = false; - switch (CTimer::GetFrameCounter() & 3) { - case 0: - case 1: - /* Spawn a vehicle in a very narrow gap in front of a player */ - angleLimit = 0.85f; /* approx 30 degrees */ - invertAngleLimitTest = true; - preferredDistance = REQUEST_ONSCREEN_DISTANCE * requestMultiplier * TheCamera.GenerationDistMultiplier; - break; - case 2: - /* Spawn a vehicle relatively far away from player. */ - /* Forward to his current direction (camera direction). */ - angleLimit = 0.707f; /* 45 degrees */ - invertAngleLimitTest = true; - preferredDistance = REQUEST_ONSCREEN_DISTANCE * requestMultiplier * TheCamera.GenerationDistMultiplier; - break; - case 3: - /* Spawn a vehicle close to player to his side. */ - /* Kinda not within camera angle. */ - angleLimit = 0.707f; /* 45 degrees */ - invertAngleLimitTest = false; - preferredDistance = MINIMAL_DISTANCE_TO_SPAWN_OFFSCREEN; - break; - } + frontX = vecPlayerVehicleSpeed.x / fPlayerVehicleSpeed; + frontY = vecPlayerVehicleSpeed.y / fPlayerVehicleSpeed; + testForCollision = false; + switch (CTimer::GetFrameCounter() & 3) { + case 0: + case 1: + /* Spawn a vehicle in a very narrow gap in front of a player */ + angleLimit = 0.85f; /* approx 30 degrees */ + invertAngleLimitTest = true; + preferredDistance = REQUEST_ONSCREEN_DISTANCE * TheCamera.GenerationDistMultiplier; + break; + case 2: + /* Spawn a vehicle relatively far away from player. */ + /* Forward to his current direction (camera direction). */ + angleLimit = 0.707f; /* 45 degrees */ + invertAngleLimitTest = true; + preferredDistance = REQUEST_ONSCREEN_DISTANCE * TheCamera.GenerationDistMultiplier; + break; + case 3: + /* Spawn a vehicle close to player to his side. */ + /* Kinda not within camera angle. */ + angleLimit = 0.707f; /* 45 degrees */ + invertAngleLimitTest = false; + preferredDistance = OFFSCREEN_DESPAWN_RANGE; + break; } - else if (fPlayerVehicleSpeed > 0.1f) { /* 18 km/h */ - /* Player is moving moderately fast in vehicle */ - /* Spawn more vehicles to player's side. */ - frontX = vecPlayerVehicleSpeed.x / fPlayerVehicleSpeed; - frontY = vecPlayerVehicleSpeed.y / fPlayerVehicleSpeed; - testForCollision = false; - switch (CTimer::GetFrameCounter() & 3) { - case 0: - /* Spawn a vehicle in a very narrow gap in front of a player */ - angleLimit = 0.85f; /* approx 30 degrees */ - invertAngleLimitTest = true; - preferredDistance = REQUEST_ONSCREEN_DISTANCE * requestMultiplier * TheCamera.GenerationDistMultiplier; - break; - case 1: - /* Spawn a vehicle relatively far away from player. */ - /* Forward to his current direction (camera direction). */ - angleLimit = 0.707f; /* 45 degrees */ - invertAngleLimitTest = true; - preferredDistance = REQUEST_ONSCREEN_DISTANCE * requestMultiplier * TheCamera.GenerationDistMultiplier; - break; - case 2: - case 3: - /* Spawn a vehicle close to player to his side. */ - /* Kinda not within camera angle. */ - angleLimit = 0.707f; /* 45 degrees */ - invertAngleLimitTest = false; - preferredDistance = MINIMAL_DISTANCE_TO_SPAWN_OFFSCREEN; - break; - } + }else if (fPlayerVehicleSpeed > 0.1f){ /* 18 km/h */ + /* Player is moving moderately fast in vehicle */ + /* Spawn more vehicles to player's side. */ + frontX = vecPlayerVehicleSpeed.x / fPlayerVehicleSpeed; + frontY = vecPlayerVehicleSpeed.y / fPlayerVehicleSpeed; + testForCollision = false; + switch (CTimer::GetFrameCounter() & 3) { + case 0: + /* Spawn a vehicle in a very narrow gap in front of a player */ + angleLimit = 0.85f; /* approx 30 degrees */ + invertAngleLimitTest = true; + preferredDistance = REQUEST_ONSCREEN_DISTANCE * TheCamera.GenerationDistMultiplier; + break; + case 1: + /* Spawn a vehicle relatively far away from player. */ + /* Forward to his current direction (camera direction). */ + angleLimit = 0.707f; /* 45 degrees */ + invertAngleLimitTest = true; + preferredDistance = REQUEST_ONSCREEN_DISTANCE * TheCamera.GenerationDistMultiplier; + break; + case 2: + case 3: + /* Spawn a vehicle close to player to his side. */ + /* Kinda not within camera angle. */ + angleLimit = 0.707f; /* 45 degrees */ + invertAngleLimitTest = false; + preferredDistance = OFFSCREEN_DESPAWN_RANGE; + break; } - else { - /* Player is in vehicle but moving very slow. */ - /* Then use camera direction instead of vehicle direction. */ - testForCollision = true; - frontX = TheCamera.CamFrontXNorm; - frontY = TheCamera.CamFrontYNorm; - switch (CTimer::GetFrameCounter() & 1) { - case 0: - /* Spawn a vehicle relatively far away from player. */ - /* Forward to his current direction (camera direction). */ - angleLimit = 0.707f; /* 45 degrees */ - invertAngleLimitTest = true; - preferredDistance = REQUEST_ONSCREEN_DISTANCE * requestMultiplier * TheCamera.GenerationDistMultiplier; - break; - case 1: - /* Spawn a vehicle close to player to his side. */ - /* Kinda not within camera angle. */ - angleLimit = 0.707f; /* 45 degrees */ - invertAngleLimitTest = false; - preferredDistance = MINIMAL_DISTANCE_TO_SPAWN_OFFSCREEN; - break; - } + }else{ + /* Player is in vehicle but moving very slow. */ + /* Then use camera direction instead of vehicle direction. */ + testForCollision = true; + frontX = TheCamera.CamFrontXNorm; + frontY = TheCamera.CamFrontYNorm; + switch (CTimer::GetFrameCounter() & 1) { + case 0: + /* Spawn a vehicle relatively far away from player. */ + /* Forward to his current direction (camera direction). */ + angleLimit = 0.707f; /* 45 degrees */ + invertAngleLimitTest = true; + preferredDistance = REQUEST_ONSCREEN_DISTANCE * TheCamera.GenerationDistMultiplier; + break; + case 1: + /* Spawn a vehicle close to player to his side. */ + /* Kinda not within camera angle. */ + angleLimit = 0.707f; /* 45 degrees */ + invertAngleLimitTest = false; + preferredDistance = OFFSCREEN_DESPAWN_RANGE; + break; } } if (!ThePaths.GenerateCarCreationCoors(vecTargetPos.x, vecTargetPos.y, frontX, frontY, @@ -319,8 +297,6 @@ CCarCtrl::GenerateOneRandomCar() CPathNode* pCurNode = &ThePaths.m_pathNodes[curNodeId]; CPathNode* pNextNode = &ThePaths.m_pathNodes[nextNodeId]; bool bBoatGenerated = false; - if (!OkToCreateVehicleAtThisPosition(spawnPosition)) - return; if ((CGeneral::GetRandomNumber() & 0xF) > Min(pCurNode->spawnRate, pNextNode->spawnRate)) return; if (pCurNode->bWaterPath) { @@ -620,12 +596,12 @@ CCarCtrl::GenerateOneRandomCar() return; } }else{ - if ((vecTargetPos - pVehicle->GetPosition()).Magnitude2D() > TheCamera.GenerationDistMultiplier * requestMultiplier * (pVehicle->bExtendedRange ? EXTENDED_RANGE_DESPAWN_MULTIPLIER : 1.0f) * ONSCREEN_DESPAWN_RANGE || - (vecTargetPos - pVehicle->GetPosition()).Magnitude2D() < TheCamera.GenerationDistMultiplier * requestMultiplier * MINIMAL_DISTANCE_TO_SPAWN_ONSCREEN) { + if ((vecTargetPos - pVehicle->GetPosition()).Magnitude2D() > TheCamera.GenerationDistMultiplier * (pVehicle->bExtendedRange ? EXTENDED_RANGE_DESPAWN_MULTIPLIER : 1.0f) * ONSCREEN_DESPAWN_RANGE || + (vecTargetPos - pVehicle->GetPosition()).Magnitude2D() < TheCamera.GenerationDistMultiplier * MINIMAL_DISTANCE_TO_SPAWN_ONSCREEN) { delete pVehicle; return; } - if ((TheCamera.GetPosition() - pVehicle->GetPosition()).Magnitude2D() < 105.0f * requestMultiplier * TheCamera.GenerationDistMultiplier || bTopDownCamera) { + if ((TheCamera.GetPosition() - pVehicle->GetPosition()).Magnitude2D() < 82.5f * TheCamera.GenerationDistMultiplier || bTopDownCamera) { delete pVehicle; return; } @@ -675,13 +651,13 @@ CCarCtrl::GenerateOneRandomCar() int nMadDrivers; switch (pVehicle->GetVehicleAppearance()) { case VEHICLE_APPEARANCE_BIKE: - nMadDrivers = 20; + nMadDrivers = 30; break; case VEHICLE_APPEARANCE_BOAT: nMadDrivers = 40; break; default: - nMadDrivers = 3; + nMadDrivers = 6; break; } if ((CGeneral::GetRandomNumber() & 0x7F) < nMadDrivers || bMadDriversCheat) { @@ -740,6 +716,12 @@ CCarCtrl::GenerateOneRandomCar() } } +bool +CCarCtrl::BoatWithTallMast(int32 mi) +{ + return mi == MI_RIO || mi == MI_TROPIC || mi == MI_MARQUIS; +} + int32 CCarCtrl::ChooseBoatModel(int32 rating) { @@ -959,7 +941,6 @@ CCarCtrl::RemoveCarsIfThePoolGetsFull(void) } } if (pClosestVehicle) { - debug(":::::::::::\'Nearest removed\' cause pools was full -> NumRandomCars %d\n", NumRandomCars); CWorld::Remove(pClosestVehicle); delete pClosestVehicle; } @@ -982,10 +963,7 @@ CCarCtrl::PossiblyRemoveVehicle(CVehicle* pVehicle) return; } float distanceToPlayer = (pVehicle->GetPosition() - vecPlayerPos).Magnitude2D(); - float despawnMultiplier = 1.0f; - if (FindPlayerVehicle() && TheCamera.Cams[TheCamera.ActiveCam].Mode == CCam::MODE_1STPERSON && !FrontEndMenuManager.m_PrefsUseWideScreen) - despawnMultiplier = 0.75f; - float threshold = OFFSCREEN_DESPAWN_RANGE * despawnMultiplier; + float threshold = OFFSCREEN_DESPAWN_RANGE; if (pVehicle->GetIsOnScreen() || TheCamera.Cams[TheCamera.ActiveCam].LookingLeft || TheCamera.Cams[TheCamera.ActiveCam].LookingRight || @@ -998,7 +976,7 @@ CCarCtrl::PossiblyRemoveVehicle(CVehicle* pVehicle) pVehicle->bIsCarParkVehicle || CTimer::GetTimeInMilliseconds() < pVehicle->m_nSetPieceExtendedRangeTime ){ - threshold = ONSCREEN_DESPAWN_RANGE * despawnMultiplier * TheCamera.GenerationDistMultiplier; + threshold = ONSCREEN_DESPAWN_RANGE * TheCamera.GenerationDistMultiplier; } if (TheCamera.GetForward().z < -0.9f) threshold = 70.0f; @@ -1591,7 +1569,7 @@ void CCarCtrl::WeaveForOtherCar(CEntity* pOtherEntity, CVehicle* pVehicle, float if (pVehicle->AutoPilot.m_nCarMission == MISSION_RAMCAR_CLOSE && pOtherEntity == pVehicle->AutoPilot.m_pTargetCar) return; CVector2D vecDiff = pOtherCar->GetPosition() - pVehicle->GetPosition(); - float angleBetweenVehicles = GetATanOfXY(vecDiff.x, vecDiff.y); + float angleBetweenVehicles = CGeneral::GetATanOfXY(vecDiff.x, vecDiff.y); float distance = vecDiff.Magnitude(); if (distance < 1.0f) return; @@ -1601,7 +1579,7 @@ void CCarCtrl::WeaveForOtherCar(CEntity* pOtherEntity, CVehicle* pVehicle, float return; CVector2D forward = pVehicle->GetForward(); forward.Normalise(); - float forwardAngle = GetATanOfXY(forward.x, forward.y); + float forwardAngle = CGeneral::GetATanOfXY(forward.x, forward.y); float angleDiff = angleBetweenVehicles - forwardAngle; float lenProjection = ABS(pOtherCar->GetColModel()->boundingBox.max.y * sin(angleDiff)); float widthProjection = ABS(pOtherCar->GetColModel()->boundingBox.max.x * cos(angleDiff)); @@ -1610,12 +1588,16 @@ void CCarCtrl::WeaveForOtherCar(CEntity* pOtherEntity, CVehicle* pVehicle, float diffToLeftAngle = ABS(diffToLeftAngle); float angleToWeave = lengthToEvade / 2; if (diffToLeftAngle < angleToWeave){ - *pAngleToWeaveLeft = LimitRadianAngle(angleBetweenVehicles - angleToWeave); + *pAngleToWeaveLeft = angleBetweenVehicles - angleToWeave; + while (*pAngleToWeaveLeft < -PI) + *pAngleToWeaveLeft += TWOPI; } float diffToRightAngle = LimitRadianAngle(angleBetweenVehicles - *pAngleToWeaveRight); diffToRightAngle = ABS(diffToRightAngle); if (diffToRightAngle < angleToWeave){ - *pAngleToWeaveRight = LimitRadianAngle(angleBetweenVehicles + angleToWeave); + *pAngleToWeaveRight = angleBetweenVehicles + angleToWeave; + while (*pAngleToWeaveRight > PI) + *pAngleToWeaveRight -= TWOPI; } } @@ -1647,19 +1629,23 @@ void CCarCtrl::WeaveForPed(CEntity* pOtherEntity, CVehicle* pVehicle, float* pAn return; CPed* pPed = (CPed*)pOtherEntity; CVector2D vecDiff = pPed->GetPosition() - pVehicle->GetPosition(); - float angleBetweenVehicleAndPed = GetATanOfXY(vecDiff.x, vecDiff.y); + float angleBetweenVehicleAndPed = CGeneral::GetATanOfXY(vecDiff.x, vecDiff.y); float distance = vecDiff.Magnitude(); float lengthToEvade = (WIDTH_COEF_TO_WEAVE_SAFELY * 2 * pVehicle->GetColModel()->boundingBox.max.x + PED_WIDTH_TO_WEAVE) / distance; float diffToLeftAngle = LimitRadianAngle(angleBetweenVehicleAndPed - *pAngleToWeaveLeft); diffToLeftAngle = ABS(diffToLeftAngle); float angleToWeave = lengthToEvade / 2; if (diffToLeftAngle < angleToWeave) { - *pAngleToWeaveLeft = LimitRadianAngle(angleBetweenVehicleAndPed - angleToWeave); + *pAngleToWeaveLeft = angleBetweenVehicleAndPed - angleToWeave; + while (*pAngleToWeaveLeft < -PI) + *pAngleToWeaveLeft += TWOPI; } float diffToRightAngle = LimitRadianAngle(angleBetweenVehicleAndPed - *pAngleToWeaveRight); diffToRightAngle = ABS(diffToRightAngle); if (diffToRightAngle < angleToWeave) { - *pAngleToWeaveRight = LimitRadianAngle(angleBetweenVehicleAndPed + angleToWeave); + *pAngleToWeaveRight = angleBetweenVehicleAndPed + angleToWeave; + while (*pAngleToWeaveRight > PI) + *pAngleToWeaveRight -= TWOPI; } } @@ -1715,19 +1701,23 @@ void CCarCtrl::WeaveForObject(CEntity* pOtherEntity, CVehicle* pVehicle, float* rightCoef * pObject->GetRight() + forwardCoef * pObject->GetForward() - pVehicle->GetPosition(); - float angleBetweenVehicleAndObject = GetATanOfXY(vecDiff.x, vecDiff.y); + float angleBetweenVehicleAndObject = CGeneral::GetATanOfXY(vecDiff.x, vecDiff.y); float distance = vecDiff.Magnitude(); float lengthToEvade = (WIDTH_COEF_TO_WEAVE_SAFELY * 2 * pVehicle->GetColModel()->boundingBox.max.x + OBJECT_WIDTH_TO_WEAVE) / distance; float diffToLeftAngle = LimitRadianAngle(angleBetweenVehicleAndObject - *pAngleToWeaveLeft); diffToLeftAngle = ABS(diffToLeftAngle); float angleToWeave = lengthToEvade / 2; if (diffToLeftAngle < angleToWeave) { - *pAngleToWeaveLeft = LimitRadianAngle(angleBetweenVehicleAndObject - angleToWeave); + *pAngleToWeaveLeft = angleBetweenVehicleAndObject - angleToWeave; + while (*pAngleToWeaveLeft < -PI) + *pAngleToWeaveLeft += TWOPI; } float diffToRightAngle = LimitRadianAngle(angleBetweenVehicleAndObject - *pAngleToWeaveRight); diffToRightAngle = ABS(diffToRightAngle); if (diffToRightAngle < angleToWeave) { - *pAngleToWeaveRight = LimitRadianAngle(angleBetweenVehicleAndObject + angleToWeave); + *pAngleToWeaveRight = angleBetweenVehicleAndObject + angleToWeave; + while (*pAngleToWeaveRight > PI) + *pAngleToWeaveRight -= TWOPI; } } @@ -1769,7 +1759,7 @@ bool CCarCtrl::PickNextNodeAccordingStrategy(CVehicle* pVehicle) void CCarCtrl::PickNextNodeRandomly(CVehicle* pVehicle) { if (pVehicle->m_nRouteSeed) - CGeneral::SetRandomSeed(pVehicle->m_nRouteSeed++); + CGeneral::SetRandomSeed(pVehicle->m_nRouteSeed); int32 prevNode = pVehicle->AutoPilot.m_nCurrentRouteNode; int32 curNode = pVehicle->AutoPilot.m_nNextRouteNode; uint8 totalLinks = ThePaths.m_pathNodes[curNode].numLinks; @@ -1855,15 +1845,13 @@ void CCarCtrl::PickNextNodeRandomly(CVehicle* pVehicle) pNextPathNode = &ThePaths.m_pathNodes[pVehicle->AutoPilot.m_nNextRouteNode]; if ((!pNextPathNode->bDisabled || pPrevPathNode->bDisabled) && (!pNextPathNode->bBetweenLevels || pPrevPathNode->bBetweenLevels || !pVehicle->AutoPilot.m_bStayInCurrentLevel)) - break; + /* Nice way to exit loop but this will fail because this is used for indexing! */ + nextLink = 1000; } } - if (nextLink >= totalLinks) { + if (nextLink < 999) /* If everything else failed, turn vehicle around */ - nextLink = 0; - debug("Couldn\'t find ANYTHING. Just go back from where we came.\n"); pVehicle->AutoPilot.m_nNextRouteNode = prevNode; - } } pNextPathNode = &ThePaths.m_pathNodes[pVehicle->AutoPilot.m_nNextRouteNode]; pNextLink = &ThePaths.m_carPathLinks[ThePaths.m_carPathConnections[nextLink + pCurPathNode->firstLink]]; @@ -1976,7 +1964,7 @@ void CCarCtrl::PickNextNodeToChaseCar(CVehicle* pVehicle, float targetX, float t #endif { if (pVehicle->m_nRouteSeed) - CGeneral::SetRandomSeed(pVehicle->m_nRouteSeed++); + CGeneral::SetRandomSeed(pVehicle->m_nRouteSeed); int prevNode = pVehicle->AutoPilot.m_nCurrentRouteNode; int curNode = pVehicle->AutoPilot.m_nNextRouteNode; CPathNode* pPrevNode = &ThePaths.m_pathNodes[prevNode]; @@ -1996,7 +1984,7 @@ void CCarCtrl::PickNextNodeToChaseCar(CVehicle* pVehicle, float targetX, float t int nextLink; if (numNodes != 1 && numNodes != 2 || pTargetNode[0] == pCurNode){ if (numNodes != 2 || pTargetNode[1] == pCurNode) { - float currentAngle = GetATanOfXY(targetX - pVehicle->GetPosition().x, targetY - pVehicle->GetPosition().y); + float currentAngle = CGeneral::GetATanOfXY(targetX - pVehicle->GetPosition().x, targetY - pVehicle->GetPosition().y); nextLink = 0; float lowestAngleChange = 10.0f; int numLinks = pCurNode->numLinks; @@ -2006,7 +1994,7 @@ void CCarCtrl::PickNextNodeToChaseCar(CVehicle* pVehicle, float targetX, float t if (conNode == prevNode && i > 1) continue; CPathNode* pTestNode = &ThePaths.m_pathNodes[conNode]; - float angle = GetATanOfXY(pTestNode->GetX() - pCurNode->GetX(), pTestNode->GetY() - pCurNode->GetY()); + float angle = CGeneral::GetATanOfXY(pTestNode->GetX() - pCurNode->GetX(), pTestNode->GetY() - pCurNode->GetY()); angle = LimitRadianAngle(angle - currentAngle); angle = ABS(angle); if (angle < lowestAngleChange) { @@ -2424,16 +2412,6 @@ void CCarCtrl::SteerAICarWithPhysics_OnlyMission(CVehicle* pVehicle, float* pSwe *pHandbrake = true; return; case MISSION_CRUISE: - if (CTrafficLights::ShouldCarStopForBridge(pVehicle)) { - *pAccel = 0.0f; - *pBrake = 1.0f; - *pHandbrake = true; -#ifdef FIX_BUGS - *pSwerve = 0.0f; -#endif - break; - } - // fallthough case MISSION_RAMPLAYER_FARAWAY: case MISSION_BLOCKPLAYER_FARAWAY: case MISSION_GOTOCOORDS: @@ -2504,19 +2482,11 @@ void CCarCtrl::SteerAICarWithPhysics_OnlyMission(CVehicle* pVehicle, float* pSwe *pHandbrake = false; return; case MISSION_RAMCAR_CLOSE: - if (!pVehicle->AutoPilot.m_pTargetCar) { - debug("NO TARGET VEHICLE FOR MISSION_RAMCAR_CLOSE\n"); - return; - } SteerAICarWithPhysicsHeadingForTarget(pVehicle, pVehicle->AutoPilot.m_pTargetCar, pVehicle->AutoPilot.m_pTargetCar->GetPosition().x, pVehicle->AutoPilot.m_pTargetCar->GetPosition().y, pSwerve, pAccel, pBrake, pHandbrake); return; case MISSION_BLOCKCAR_CLOSE: - if (!pVehicle->AutoPilot.m_pTargetCar) { - debug("NO TARGET VEHICLE FOR MISSION_BLOCKCAR_CLOSE\n"); - return; - } SteerAICarWithPhysicsTryingToBlockTarget(pVehicle, pVehicle->AutoPilot.m_pTargetCar->GetPosition().x, pVehicle->AutoPilot.m_pTargetCar->GetPosition().y, @@ -2525,9 +2495,6 @@ void CCarCtrl::SteerAICarWithPhysics_OnlyMission(CVehicle* pVehicle, float* pSwe pSwerve, pAccel, pBrake, pHandbrake); return; case MISSION_BLOCKCAR_HANDBRAKESTOP: - if (!pVehicle->AutoPilot.m_pTargetCar) { - return; - } SteerAICarWithPhysicsTryingToBlockTarget_Stop(pVehicle, pVehicle->AutoPilot.m_pTargetCar->GetPosition().x, pVehicle->AutoPilot.m_pTargetCar->GetPosition().y, @@ -2605,8 +2572,8 @@ void CCarCtrl::SteerAIBoatWithPhysicsHeadingForTarget(CVehicle* pVehicle, float { CVector2D forward = pVehicle->GetForward(); forward.Normalise(); - float angleToTarget = GetATanOfXY(targetX - pVehicle->GetPosition().x, targetY - pVehicle->GetPosition().y); - float angleForward = GetATanOfXY(forward.x, forward.y); + float angleToTarget = CGeneral::GetATanOfXY(targetX - pVehicle->GetPosition().x, targetY - pVehicle->GetPosition().y); + float angleForward = CGeneral::GetATanOfXY(forward.x, forward.y); float steerAngle = LimitRadianAngle(angleToTarget - angleForward); steerAngle = clamp(steerAngle, -DEFAULT_MAX_STEER_ANGLE, DEFAULT_MAX_STEER_ANGLE); #ifdef FIX_BUGS @@ -2637,8 +2604,8 @@ void CCarCtrl::SteerAIBoatWithPhysicsAttackingPlayer(CVehicle* pVehicle, float* CVector2D forward = pVehicle->GetForward(); forward.Normalise(); CVector2D vecToProjection = FindPlayerCoors() + FindPlayerSpeed() * projection * GAME_SPEED_TO_CARAI_SPEED; - float angleToTarget = GetATanOfXY(vecToProjection.x - pVehicle->GetPosition().x, vecToProjection.y - pVehicle->GetPosition().y); - float angleForward = GetATanOfXY(forward.x, forward.y); + float angleToTarget = CGeneral::GetATanOfXY(vecToProjection.x - pVehicle->GetPosition().x, vecToProjection.y - pVehicle->GetPosition().y); + float angleForward = CGeneral::GetATanOfXY(forward.x, forward.y); float steerAngle = LimitRadianAngle(angleToTarget - angleForward); #ifdef FIX_BUGS float speedTarget = pVehicle->AutoPilot.GetCruiseSpeed(); @@ -2726,7 +2693,7 @@ void CCarCtrl::SteerAIHeliTowardsTargetCoors(CAutomobile* pHeli) if (distanceToTarget < 8.0f && pHeli->m_fHeliOrientation < 0.0f) ZTurnSpeedTarget = 0.0f; else { - float fAngleTarget = GetATanOfXY(vecToTarget.x, vecToTarget.y) + PI; + float fAngleTarget = CGeneral::GetATanOfXY(vecToTarget.x, vecToTarget.y) + PI; if (pHeli->m_fHeliOrientation >= 0.0f) fAngleTarget = pHeli->m_fHeliOrientation; fAngleTarget -= pHeli->m_fOrientation; @@ -2769,7 +2736,7 @@ void CCarCtrl::SteerAIPlaneTowardsTargetCoors(CAutomobile* pPlane) CVector2D vecToTarget = pPlane->AutoPilot.m_vecDestinationCoors - pPlane->GetPosition(); float fForwardZ = (pPlane->AutoPilot.m_vecDestinationCoors.z - pPlane->GetPosition().z) / vecToTarget.Magnitude(); fForwardZ = clamp(fForwardZ, -0.3f, 0.3f); - float angle = GetATanOfXY(vecToTarget.x, vecToTarget.y); + float angle = CGeneral::GetATanOfXY(vecToTarget.x, vecToTarget.y); while (angle > TWOPI) angle -= TWOPI; float difference = LimitRadianAngle(angle - pPlane->m_fOrientation); @@ -2866,8 +2833,8 @@ void CCarCtrl::SteerAICarWithPhysicsFollowPath(CVehicle* pVehicle, float* pSwerv projectedPosition.y = positionOnCurrentLinkIncludingLane.y; } CVector2D distanceToProjectedPosition = projectedPosition - pVehicle->GetPosition(); - float angleCurrentLink = GetATanOfXY(distanceToProjectedPosition.x, distanceToProjectedPosition.y); - float angleForward = GetATanOfXY(forward.x, forward.y); + float angleCurrentLink = CGeneral::GetATanOfXY(distanceToProjectedPosition.x, distanceToProjectedPosition.y); + float angleForward = CGeneral::GetATanOfXY(forward.x, forward.y); if (pVehicle->AutoPilot.m_nDrivingStyle == DRIVINGSTYLE_AVOID_CARS) angleCurrentLink = FindAngleToWeaveThroughTraffic(pVehicle, nil, angleCurrentLink, angleForward); float steerAngle = LimitRadianAngle(angleCurrentLink - angleForward); @@ -2912,11 +2879,11 @@ void CCarCtrl::SteerAICarWithPhysicsFollowPath(CVehicle* pVehicle, float* pSwerv pCurrentLink->GetY() - ((pVehicle->AutoPilot.m_nCurrentLane + pCurrentLink->OneWayLaneOffset()) * LANE_WIDTH) * currentPathLinkForward.x); trajectory -= pVehicle->GetPosition(); float speedAngleMultiplier = FindSpeedMultiplier( - GetATanOfXY(trajectory.x, trajectory.y) - angleForward, + CGeneral::GetATanOfXY(trajectory.x, trajectory.y) - angleForward, MIN_ANGLE_FOR_SPEED_LIMITING, MAX_ANGLE_FOR_SPEED_LIMITING, MIN_LOWERING_SPEED_COEFFICIENT); float tmpWideMultiplier = FindSpeedMultiplier( - GetATanOfXY(currentPathLinkForward.x, currentPathLinkForward.y) - - GetATanOfXY(nextPathLinkForwardX, nextPathLinkForwardY), + CGeneral::GetATanOfXY(currentPathLinkForward.x, currentPathLinkForward.y) - + CGeneral::GetATanOfXY(nextPathLinkForwardX, nextPathLinkForwardY), MIN_ANGLE_FOR_SPEED_LIMITING_BETWEEN_NODES, MAX_ANGLE_FOR_SPEED_LIMITING, MIN_LOWERING_SPEED_COEFFICIENT); float speedNodesMultiplier; if (scalarDistanceToNextNode > DISTANCE_TO_NEXT_NODE_TO_CONSIDER_SLOWING_DOWN || pVehicle->AutoPilot.m_nCruiseSpeed < 12) @@ -2950,8 +2917,8 @@ void CCarCtrl::SteerAICarWithPhysicsHeadingForTarget(CVehicle* pVehicle, CPhysic *pHandbrake = false; CVector2D forward = pVehicle->GetForward(); forward.Normalise(); - float angleToTarget = GetATanOfXY(targetX - pVehicle->GetPosition().x, targetY - pVehicle->GetPosition().y); - float angleForward = GetATanOfXY(forward.x, forward.y); + float angleToTarget = CGeneral::GetATanOfXY(targetX - pVehicle->GetPosition().x, targetY - pVehicle->GetPosition().y); + float angleForward = CGeneral::GetATanOfXY(forward.x, forward.y); if (pVehicle->AutoPilot.m_nDrivingStyle == DRIVINGSTYLE_AVOID_CARS) angleToTarget = FindAngleToWeaveThroughTraffic(pVehicle, pTarget, angleToTarget, angleForward); float steerAngle = LimitRadianAngle(angleToTarget - angleForward); @@ -3157,7 +3124,7 @@ bool CCarCtrl::JoinCarWithRoadSystemGotoCoors(CVehicle* pVehicle, CVector vecTar void CCarCtrl::FindLinksToGoWithTheseNodes(CVehicle* pVehicle) { if (pVehicle->m_nRouteSeed) - CGeneral::SetRandomSeed(pVehicle->m_nRouteSeed++); + CGeneral::SetRandomSeed(pVehicle->m_nRouteSeed); int nextLink; CPathNode* pCurNode = &ThePaths.m_pathNodes[pVehicle->AutoPilot.m_nCurrentRouteNode]; for (nextLink = 0; nextLink < 12; nextLink++) @@ -3199,12 +3166,10 @@ void CCarCtrl::GenerateEmergencyServicesCar(void) return; if (CGame::IsInInterior()) return; - if (TheCamera.m_WideScreenOn) // TODO(LCS): verify - return; if (NumFiretrucksOnDuty + NumAmbulancesOnDuty + NumParkedCars + NumMissionCars + NumLawEnforcerCars + NumRandomCars > MaxNumberOfCarsInUse) return; - if (NumAmbulancesOnDuty == 0 && gbEmergencyVehiclesEnabled){ + if (NumAmbulancesOnDuty == 0){ if (gAccidentManager.CountActiveAccidents() < 2){ if (CStreaming::HasModelLoaded(MI_AMBULAN)) CStreaming::SetModelIsDeletable(MI_MEDIC); @@ -3224,7 +3189,7 @@ void CCarCtrl::GenerateEmergencyServicesCar(void) } } } - if (NumFiretrucksOnDuty == 0 && gbEmergencyVehiclesEnabled){ + if (NumFiretrucksOnDuty == 0){ if (gFireManager.GetTotalActiveFires() < 3){ if (CStreaming::HasModelLoaded(MI_FIRETRUCK)) CStreaming::SetModelIsDeletable(MI_FIREMAN); @@ -3273,7 +3238,7 @@ bool CCarCtrl::GenerateOneEmergencyServicesCar(uint32 mi, CVector vecPos) attempts += 1; } if (attempts >= 5) - return nil; + return false; CAutomobile* pVehicle = new CAutomobile(mi, RANDOM_VEHICLE); pVehicle->AutoPilot.m_vecDestinationCoors = vecPos; pVehicle->SetPosition(spawnPos); @@ -3388,17 +3353,6 @@ bool CCarCtrl::MapCouldMoveInThisArea(float x, float y) #endif } -bool -CCarCtrl::BoatWithTallMast(int32 mi) -{ - return mi == MI_RIO || mi == MI_TROPIC || mi == MI_MARQUIS; -} - -bool CCarCtrl::OkToCreateVehicleAtThisPosition(const CVector& pos) -{ - return true; -} - float CCarCtrl::FindSpeedMultiplierWithSpeedFromNodes(int8 type) { switch (type) @@ -3408,8 +3362,3 @@ float CCarCtrl::FindSpeedMultiplierWithSpeedFromNodes(int8 type) } return 1.0f; } - -void CCarCtrl::RenderDebugInfo(CVehicle*) -{ - //TODO(LCS) -} diff --git a/src/control/CarCtrl.h b/src/control/CarCtrl.h index edf1f41..5efbe27 100644 --- a/src/control/CarCtrl.h +++ b/src/control/CarCtrl.h @@ -1,7 +1,6 @@ #pragma once #include "PathFind.h" #include "Boat.h" -#include "General.h" #include "Vehicle.h" #define GAME_SPEED_TO_METERS_PER_SECOND 50.0f @@ -131,10 +130,6 @@ public: static void SteerAIBoatWithPhysicsAttackingPlayer(CVehicle*, float*, float*, float*, bool*); static void SteerAICarBlockingPlayerForwardAndBack(CVehicle*, float*, float*, float*, bool*); - static bool OkToCreateVehicleAtThisPosition(const CVector&); - static void RenderDebugInfo(CVehicle*); - static float GetATanOfXY(float x, float y) { float t = CGeneral::GetATanOfXY(x, y); if (t < 0.0f) t += TWOPI; return t; } - static float GetPositionAlongCurrentCurve(CVehicle* pVehicle) { uint32 timeInCurve = CTimer::GetTimeInMilliseconds() - pVehicle->AutoPilot.m_nTimeEnteredCurve; @@ -143,7 +138,11 @@ public: static float LimitRadianAngle(float angle) { - return CGeneral::LimitRadianAngle(angle); + while (angle < -PI) + angle += TWOPI; + while (angle > PI) + angle -= TWOPI; + return angle; } static bool bMadDriversCheat; @@ -172,5 +171,4 @@ public: static int32 LoadedCarsArray[TOTAL_CUSTOM_CLASSES][MAX_CAR_MODELS_IN_ARRAY]; }; -extern CVehicle* apCarsToKeep[MAX_CARS_TO_KEEP]; -extern bool gbEmergencyVehiclesEnabled; \ No newline at end of file +extern CVehicle* apCarsToKeep[MAX_CARS_TO_KEEP]; \ No newline at end of file diff --git a/src/control/GameLogic.cpp b/src/control/GameLogic.cpp index e238a8b..33c40c9 100644 --- a/src/control/GameLogic.cpp +++ b/src/control/GameLogic.cpp @@ -45,7 +45,6 @@ float CGameLogic::AfterDeathStartPointOrientation[NUM_SHORTCUT_START_POINTS]; CVector CGameLogic::ShortCutDropOffForMission; float CGameLogic::ShortCutDropOffOrientationForMission; bool CGameLogic::MissionDropOffReadyToBeUsed; -char CGameLogic::mStoredPlayerOutfit[8] = "plr3"; #define SHORTCUT_TAXI_COST (9) #define TOTAL_BUSTED_AUDIO (28) @@ -89,7 +88,7 @@ CGameLogic::SortOutStreamingAndMemory(const CVector &pos) CStreaming::DeleteRwObjectsAfterDeath(pos); CStreaming::RemoveUnusedModelsInLoadedList(); CGame::DrasticTidyUpMemory(true); - CWorld::Players[CWorld::PlayerInFocus].m_pPed->Undress(mStoredPlayerOutfit); + CWorld::Players[CWorld::PlayerInFocus].m_pPed->Undress("player"); CStreaming::LoadSceneCollision(pos); CStreaming::LoadScene(pos); CWorld::Players[CWorld::PlayerInFocus].m_pPed->Dress(); @@ -392,7 +391,7 @@ CGameLogic::RestorePlayerStuffDuringResurrection(CPlayerPed *pPlayerPed, CVector CWorld::Add(pPlayerPed); CHud::ResetWastedText(); CStreaming::StreamZoneModels(pos); - //clearWaterDrop = true; + clearWaterDrop = true; } void @@ -419,7 +418,7 @@ CGameLogic::SetUpShortCut(CVector vStartPos, float fStartAngle, CVector vEndPos, ShortCutStartOrientation = fStartAngle; ShortCutDestination = vEndPos; ShortCutDestinationOrientation = fEndAngle; - CStreaming::RequestModel(MI_CABBIE, 0); + CStreaming::RequestModel(MI_KAUFMAN, 0); } void @@ -451,11 +450,11 @@ CGameLogic::UpdateShortCut() { switch (ShortCutState) { case SHORTCUT_INIT: - if (!CStreaming::HasModelLoaded(MI_CABBIE)) { - CStreaming::RequestModel(MI_CABBIE, 0); + if (!CStreaming::HasModelLoaded(MI_KAUFMAN)) { + CStreaming::RequestModel(MI_KAUFMAN, 0); return; } - pShortCutTaxi = new CAutomobile(MI_CABBIE, RANDOM_VEHICLE); + pShortCutTaxi = new CAutomobile(MI_KAUFMAN, RANDOM_VEHICLE); if (!pShortCutTaxi) return; pShortCutTaxi->SetPosition(ShortCutStart); diff --git a/src/control/GameLogic.h b/src/control/GameLogic.h index a12b403..9b774cc 100644 --- a/src/control/GameLogic.h +++ b/src/control/GameLogic.h @@ -48,5 +48,4 @@ public: static CVector ShortCutDropOffForMission; static float ShortCutDropOffOrientationForMission; static bool MissionDropOffReadyToBeUsed; - static char mStoredPlayerOutfit[8]; }; \ No newline at end of file diff --git a/src/control/Garages.cpp b/src/control/Garages.cpp index c0eac80..7cf58d0 100644 --- a/src/control/Garages.cpp +++ b/src/control/Garages.cpp @@ -8,7 +8,6 @@ #include "DMAudio.h" #include "General.h" #include "Font.h" -#include "Frontend.h" #include "HandlingMgr.h" #include "Hud.h" #include "Messages.h" @@ -16,9 +15,7 @@ #include "Pad.h" #include "Particle.h" #include "PlayerPed.h" -#include "Radar.h" #include "Replay.h" -#include "Script.h" #include "Stats.h" #include "Streaming.h" #include "Text.h" @@ -46,7 +43,7 @@ #define RESPRAY_PRICE (100) // Distances -#define DISTANCE_TO_CALL_OFF_CHASE (50.0f) +#define DISTANCE_TO_CALL_OFF_CHASE (10.0f) #define DISTANCE_FOR_MRWHOOP_HACK (0.5f) #define DISTANCE_TO_ACTIVATE_GARAGE (8.0f) #define DISTANCE_TO_ACTIVATE_KEEPCAR_GARAGE (17.0f) @@ -103,10 +100,10 @@ const int32 gaCarsToCollectInCraigsGarages[TOTAL_COLLECTCARS_GARAGES][TOTAL_COLLECTCARS_CARS] = { - { MI_HEARSE, MI_FAGGIO, MI_FREEWAY, MI_SPIDER, MI_MANANA, MI_SHELBY, MI_PONTIAC, MI_ESPRIT, MI_HOTROD, MI_PCJ600, MI_SENTINEL, MI_INFERNUS, MI_BANSHEE, MI_PATRIOT, MI_BFINJECT, MI_LANDSTAL }, - { MI_HEARSE, MI_FAGGIO, MI_FREEWAY, MI_SPIDER, MI_MANANA, MI_SHELBY, MI_PONTIAC, MI_ESPRIT, MI_HOTROD, MI_PCJ600, MI_SENTINEL, MI_INFERNUS, MI_BANSHEE, MI_PATRIOT, MI_BFINJECT, MI_LANDSTAL }, - { MI_HEARSE, MI_FAGGIO, MI_FREEWAY, MI_SPIDER, MI_MANANA, MI_SHELBY, MI_PONTIAC, MI_ESPRIT, MI_HOTROD, MI_PCJ600, MI_SENTINEL, MI_INFERNUS, MI_BANSHEE, MI_PATRIOT, MI_BFINJECT, MI_LANDSTAL }, - { MI_HEARSE, MI_FAGGIO, MI_FREEWAY, MI_SPIDER, MI_MANANA, MI_SHELBY, MI_PONTIAC, MI_ESPRIT, MI_HOTROD, MI_PCJ600, MI_SENTINEL, MI_INFERNUS, MI_BANSHEE, MI_PATRIOT, MI_BFINJECT, MI_LANDSTAL }, + { MI_LANDSTAL, MI_IDAHO, MI_ESPERANT, MI_STALLION, MI_RANCHER, MI_BLISTAC }, + { MI_SABRE, MI_VIRGO, MI_SENTINEL, MI_STRETCH, MI_WASHING, MI_ADMIRAL }, + { MI_CHEETAH, MI_INFERNUS, MI_BANSHEE, MI_PHEONIX, MI_COMET, MI_STINGER }, + { MI_VOODOO, MI_CUBAN, MI_CADDY, MI_BAGGAGE, MI_MRWHOOP, MI_PIZZABOY } }; const int32 gaCarsToCollectIn60Seconds[] = { MI_CHEETAH, MI_TAXI, MI_ESPERANT, MI_SENTINEL, MI_IDAHO }; @@ -130,7 +127,6 @@ CStoredCar CGarages::aCarsInSafeHouses[TOTAL_HIDEOUT_GARAGES][NUM_GARAGE_STORED_ int32 hGarages = AEHANDLE_NONE; CGarage CGarages::aGarages[NUM_GARAGES]; bool CGarages::bCamShouldBeOutisde; -uint8 CGarages::CrusherRewardMultiplier; #ifndef MASTER bool bPrintNearestObject; @@ -141,7 +137,6 @@ void CGarages::Init(void) #ifndef MASTER VarConsole.Add("Print nearest object", &bPrintNearestObject, true); #endif - CrusherRewardMultiplier = 1; CrushedCarId = -1; NumGarages = 0; MessageEndTime = 0; @@ -222,7 +217,7 @@ int16 CGarages::AddOne(float X1, float Y1, float Z1, float X2, float Y2, float X pGarage->m_fSupX = Max(Max(X1, X2), X3); pGarage->m_fInfY = Min(Min(Min(Y1, Y2), Y3), Y2 + Y3 - Y1); pGarage->m_fSupY = Max(Max(Y1, Y2), Y3); - pGarage->m_vecCorner1 = CVector2D(X1, Y1); + pGarage->m_vecCorner1 = CVector(X1, Y1, Z1); pGarage->m_fInfZ = Z1; pGarage->m_vDir1 = CVector2D(X2 - X1, Y2 - Y1); pGarage->m_vDir2 = CVector2D(X3 - X1, Y3 - Y1); @@ -240,22 +235,6 @@ int16 CGarages::AddOne(float X1, float Y1, float Z1, float X2, float Y2, float X pGarage->m_bRecreateDoorOnNextRefresh = false; pGarage->m_bRotatedDoor = false; pGarage->m_bCameraFollowsPlayer = false; - pGarage->m_nTimeToStartAction = 0; - pGarage->field_2 = false; - pGarage->m_nTargetModelIndex = targetId; - pGarage->m_bCollectedCarsState = 0; - pGarage->m_bDeactivated = false; - pGarage->m_bResprayHappened = false; - pGarage->m_bInitialized = false; - pGarage->m_bSSGarageAcceptedVehicle = false; - pGarage->m_bSSGarageStateChanging = false; - pGarage->m_bInitialized = InitDoorGubbins(NumGarages, type); - return NumGarages++; -} - -bool CGarages::InitDoorGubbins(uint32 id, uint8 type) -{ - CGarage* pGarage = &aGarages[id]; pGarage->RefreshDoorPointers(true); if (pGarage->m_pDoor1) { pGarage->m_fDoor1Z = pGarage->m_pDoor1->GetPosition().z; @@ -270,6 +249,12 @@ bool CGarages::InitDoorGubbins(uint32 id, uint8 type) pGarage->m_fDoorHeight = pGarage->m_pDoor1 ? FindDoorHeightForMI(pGarage->m_pDoor1->GetModelIndex()) : 4.0f; pGarage->m_fDoorPos = 0.0f; pGarage->m_eGarageState = GS_FULLYCLOSED; + pGarage->m_nTimeToStartAction = 0; + pGarage->field_2 = false; + pGarage->m_nTargetModelIndex = targetId; + pGarage->m_bCollectedCarsState = 0; + pGarage->m_bDeactivated = false; + pGarage->m_bResprayHappened = false; switch (type) { case GARAGE_MISSION: case GARAGE_COLLECTORSITEMS: @@ -278,6 +263,7 @@ bool CGarages::InitDoorGubbins(uint32 id, uint8 type) case GARAGE_COLLECTCARS_2: case GARAGE_COLLECTCARS_3: case GARAGE_FORCARTOCOMEOUTOF: + case GARAGE_60SECONDS: case GARAGE_MISSION_KEEPCAR: case GARAGE_FOR_SCRIPT_TO_OPEN: case GARAGE_HIDEOUT_ONE: @@ -304,7 +290,6 @@ bool CGarages::InitDoorGubbins(uint32 id, uint8 type) case GARAGE_BOMBSHOP2: case GARAGE_BOMBSHOP3: case GARAGE_RESPRAY: - case GARAGE_CRATE_GARAGE: pGarage->m_eGarageState = GS_OPENED; pGarage->m_fDoorPos = pGarage->m_fDoorHeight; break; @@ -319,16 +304,7 @@ bool CGarages::InitDoorGubbins(uint32 id, uint8 type) pGarage->UpdateCrusherAngle(); else pGarage->UpdateDoorsHeight(); - return pGarage->m_fDoorHeight > 0.0f; -} - -void CGarages::SetupAnyGaragesForThisIsland(void) -{ - for (uint32 i = 0; i < NumGarages; i++) { - CGarage* pGarage = &aGarages[i]; - if (!pGarage->m_bInitialized) - pGarage->m_bInitialized = InitDoorGubbins(i, pGarage->m_eGarageType); - } + return NumGarages++; } void CGarages::ChangeGarageType(int16 garage, uint8 type, int32 mi) @@ -339,27 +315,8 @@ void CGarages::ChangeGarageType(int16 garage, uint8 type, int32 mi) pGarage->m_eGarageState = GS_FULLYCLOSED; } -void CGarages::LockGarage(int16 garage, bool state) -{ - CGarage* pGarage = &aGarages[garage]; - pGarage->m_bLocked = state; - if (pGarage->m_bLocked) { - pGarage->m_fDoorPos = 0.0f; - pGarage->m_eGarageState = GS_FULLYCLOSED; - pGarage->m_nTimeToStartAction = CTimer::GetTimeInMilliseconds() + 2000; - pGarage->UpdateDoorsHeight(); - } - else { - pGarage->m_eGarageState = GS_OPENING; - } -} - void CGarage::Update() { -#ifdef GTA_NETWORK - if (/* gIsMultiplayerGame && */m_eGarageType != GARAGE_CRATE_GARAGE) // TODO(multiplayer) - return; -#endif if (m_eGarageType != GARAGE_CRUSHER) { switch (m_eGarageState) { case GS_FULLYCLOSED: @@ -397,7 +354,7 @@ void CGarage::Update() if (m_bDeactivated && m_eGarageState == GS_FULLYCLOSED) return; if (m_bRotatedDoor) { -#if defined GTA_PS2 || defined GTA_PSP +#ifdef GTA_PS2 if (m_eGarageState == GS_OPENING) { if (m_pDoor1) { if (FindPlayerPed()->m_pCurrentPhysSurface == m_pDoor1) @@ -481,10 +438,7 @@ void CGarage::Update() #else if (FindPlayerVehicle()) #endif - { ((CAutomobile*)(FindPlayerVehicle()))->m_fFireBlowUpTimer = 0.0f; - FindPlayerVehicle()->m_bGarageTurnedLightsOff = true; - } CWorld::CallOffChaseForArea( m_fInfX - DISTANCE_TO_CALL_OFF_CHASE, m_fInfY - DISTANCE_TO_CALL_OFF_CHASE, @@ -492,7 +446,6 @@ void CGarage::Update() m_fSupY + DISTANCE_TO_CALL_OFF_CHASE); break; case GS_FULLYCLOSED: - m_fDoorPos = 0.0f; if (CTimer::GetTimeInMilliseconds() > m_nTimeToStartAction) { m_eGarageState = GS_OPENING; DMAudio.PlayFrontEndSound(SOUND_GARAGE_OPENING, 1); @@ -527,8 +480,11 @@ void CGarage::Update() FindPlayerVehicle()->GetRight() = -FindPlayerVehicle()->GetRight(); } bChangedColour = false; - if ((!FindPlayerVehicle()->IsCar() || !((CAutomobile*)(FindPlayerVehicle()))->bFixedColour) && - (!FindPlayerVehicle()->IsBike() || !((CBike*)(FindPlayerVehicle()))->bFixedColour)) { +#ifdef FIX_BUGS + if (!FindPlayerVehicle()->IsCar() || !((CAutomobile*)(FindPlayerVehicle()))->bFixedColour) { +#else + if (!((CAutomobile*)(FindPlayerVehicle()))->bFixedColour) { +#endif uint8 colour1, colour2; uint16 attempt; FindPlayerVehicle()->GetModelInfo()->ChooseVehicleColour(colour1, colour2); @@ -541,36 +497,12 @@ void CGarage::Update() FindPlayerVehicle()->m_currentColour1 = colour1; FindPlayerVehicle()->m_currentColour2 = colour2; if (bChangedColour) { - CVector vCorners[] = { - CVector(m_fInfX, m_fInfY, 0.0f), CVector(m_fInfX, m_fSupY, 0.0f), - CVector(m_fSupX, m_fInfY, 0.0f), CVector(m_fSupX, m_fSupY, 0.0f) - }; - CVector vMiddles[] = { - CVector(m_fInfX + (m_fSupX - m_fInfX) / 2, m_fInfY, 0.0f), CVector(m_fInfX, m_fInfY + (m_fSupY - m_fInfY) / 2, 0.0f), - CVector(m_fInfX + (m_fSupX - m_fInfX) / 2, m_fSupY, 0.0f), CVector(m_fSupX, m_fInfY + (m_fSupY - m_fInfY) / 2, 0.0f), - }; - int nClosestCornerToCamera = 0; - int nClosestMiddleToCamera = 0; - for (int i = 1; i < 4; i++) { - if ((vCorners[nClosestCornerToCamera] - TheCamera.GetPosition()).Magnitude() > - (vCorners[i] - TheCamera.GetPosition()).Magnitude()) - nClosestCornerToCamera = i; - if ((vMiddles[nClosestMiddleToCamera] - TheCamera.GetPosition()).Magnitude() > - (vMiddles[i] - TheCamera.GetPosition()).Magnitude()) - nClosestMiddleToCamera = i; - } - CVector vDirectionCenterToMiddle = vMiddles[nClosestMiddleToCamera] - CVector(GetGarageCenterX(), GetGarageCenterY(), 0.0f); - vDirectionCenterToMiddle.Normalise(); - for (int i = 0; i < NUM_PARTICLES_IN_RESPRAY; i++) { - CVector pos(vMiddles[nClosestMiddleToCamera] - vDirectionCenterToMiddle * 0.5f); - CVector dir(CrossProduct(vDirectionCenterToMiddle, CVector(0.0f, 0.0f, 1.0f))); - float fDirMultiplier = (vCorners[nClosestCornerToCamera] - vMiddles[nClosestMiddleToCamera]).Magnitude(); - pos += dir * CGeneral::GetRandomNumberInRange(-1.0f, 1.0f) * fDirMultiplier; // TODO: base::RandomReal? - pos += vDirectionCenterToMiddle * CGeneral::GetRandomNumberInRange(-6.0f, 0.4f); - dir = vDirectionCenterToMiddle * 0.04f; - pos.z = m_fInfZ + CGeneral::GetRandomNumberInRange(-0.4f, 0.0f); - CParticle::AddParticle(PARTICLE_GARAGEPAINT_SPRAY, pos, dir, nil, 0.0f, CVehicleModelInfo::mspInfo->ms_vehicleColourTable[colour1]); + CVector pos; + pos.x = CGeneral::GetRandomNumberInRange(m_fInfX + 0.5f, m_fSupX - 0.5f); + pos.y = CGeneral::GetRandomNumberInRange(m_fInfY + 0.5f, m_fSupY - 0.5f); + pos.z = CGeneral::GetRandomNumberInRange(m_fDoor1Z - 3.0f, m_fDoor1Z + 1.0f); + CParticle::AddParticle(PARTICLE_GARAGEPAINT_SPRAY, pos, CVector(0.0f, 0.0f, 0.0f), nil, 0.0f, CVehicleModelInfo::ms_vehicleColourTable[colour1]); } } } @@ -580,11 +512,8 @@ void CGarage::Update() if (!CGarages::RespraysAreFree) { CWorld::Players[CWorld::PlayerInFocus].m_nMoney = Max(0, CWorld::Players[CWorld::PlayerInFocus].m_nMoney - RESPRAY_PRICE); CStats::AutoPaintingBudget += RESPRAY_PRICE; - CGarages::TriggerMessage("GA_2", -1, 4000, -1); // New engine and paint job. The cops won't recognize you! - } - else { - CGarages::TriggerMessage("GA_17", -1, 4000, -1); } + CGarages::TriggerMessage("GA_2", -1, 4000, -1); // New engine and paint job. The cops won't recognize you! } else if (bChangedColour) { if (CGeneral::GetRandomTrueFalse()) @@ -609,8 +538,6 @@ void CGarage::Update() UpdateDoorsHeight(); break; case GS_OPENEDCONTAINSCAR: - if (FindPlayerVehicle()) - FindPlayerVehicle()->m_bGarageTurnedLightsOff = false; if (IsPlayerOutsideGarage()) m_eGarageState = GS_OPENED; break; @@ -623,20 +550,9 @@ void CGarage::Update() case GARAGE_BOMBSHOP1: case GARAGE_BOMBSHOP2: case GARAGE_BOMBSHOP3: - if (m_bLocked) { - UpdateDoorsHeight(); - break; - } switch (m_eGarageState) { case GS_OPENED: - UpdateDoorsHeight(); if (IsStaticPlayerCarEntirelyInside()) { - if (FindPlayerVehicle()->GetVehicleAppearance() == VEHICLE_APPEARANCE_BIKE) { - CGarages::TriggerMessage("GA_22", -1, 4000, -1); - m_eGarageState = GS_OPENEDCONTAINSCAR; - DMAudio.PlayFrontEndSound(SOUND_GARAGE_BOMB_ALREADY_SET, 1); - break; - } if (!FindPlayerVehicle() || FindPlayerVehicle()->m_bombType) { CGarages::TriggerMessage("GA_5", -1, 4000, -1); //"Your car is already fitted with a bomb" m_eGarageState = GS_OPENEDCONTAINSCAR; @@ -663,8 +579,6 @@ void CGarage::Update() m_nTimeToStartAction = CTimer::GetTimeInMilliseconds() + TIME_TO_SETUP_BOMB; DMAudio.PlayOneShot(hGarages, SOUND_GARAGE_DOOR_CLOSED, 1.0f); } - if (FindPlayerVehicle()) - FindPlayerVehicle()->m_bGarageTurnedLightsOff = true; UpdateDoorsHeight(); if (m_eGarageType == GARAGE_BOMBSHOP3) CStreaming::RequestModel(MI_BOMB, STREAMFLAGS_DONT_REMOVE); @@ -681,25 +595,13 @@ void CGarage::Update() if (!CGarages::BombsAreFree) CWorld::Players[CWorld::PlayerInFocus].m_nMoney = Max(0, CWorld::Players[CWorld::PlayerInFocus].m_nMoney - BOMB_PRICE); if (FindPlayerVehicle() && (FindPlayerVehicle()->IsCar() || FindPlayerVehicle()->IsBike())) { -#if (!defined GTA_PS2 || defined FIX_BUGS) // <- this remained in CAutomobile in LCS +#if (!defined GTA_PS2 || defined FIX_BUGS) FindPlayerVehicle()->m_bombType = CGarages::GetBombTypeForGarageType(m_eGarageType); FindPlayerVehicle()->m_pBombRigger = FindPlayerPed(); #else // PS2 version contained a bug: CBike was casted to CAutomobile, but due to coincidence it didn't corrupt memory ((CAutomobile*)(FindPlayerVehicle()))->m_bombType = CGarages::GetBombTypeForGarageType(m_eGarageType); ((CAutomobile*)(FindPlayerVehicle()))->m_pBombRigger = FindPlayerPed(); #endif - // what is this - uint32 i = CPools::GetVehiclePool()->GetSize(); - while (i--) { - CVehicle* pVehicle = CPools::GetVehiclePool()->GetSlot(i); - if (pVehicle) { - if (pVehicle->IsCar() && pVehicle->GetStatus() == STATUS_WRECKED) { - CAutomobile* pCar = (CAutomobile*)pVehicle; - pCar->m_pBombRigger = nil; - pCar->m_pBlowUpEntity = nil; - } - } - } if (m_eGarageType == GARAGE_BOMBSHOP3) CGarages::GivePlayerDetonator(); CStats::KgsOfExplosivesUsed += KGS_OF_EXPLOSIVES_IN_BOMB; @@ -738,7 +640,6 @@ void CGarage::Update() CHud::SetHelpMessage(TheText.Get("GA_8"), false); // Use the detonator to activate the bomb. break; } - CGarages::TriggerMessage(CGarages::BombsAreFree ? "GA_24" : "GA_23", -1, 4000, -1); CPad::GetPad(0)->SetEnablePlayerControls(PLAYERCONTROL_GARAGE); FindPlayerPed()->m_pWanted->m_bIgnoredByCops = false; } @@ -756,8 +657,6 @@ void CGarage::Update() UpdateDoorsHeight(); break; case GS_OPENEDCONTAINSCAR: - if (FindPlayerVehicle()) - FindPlayerVehicle()->m_bGarageTurnedLightsOff = false; if (IsPlayerOutsideGarage()) m_eGarageState = GS_OPENED; break; @@ -771,12 +670,16 @@ void CGarage::Update() switch (m_eGarageState) { case GS_OPENED: if (((CVector2D)FindPlayerCoors() - CVector2D(GetGarageCenterX(), GetGarageCenterY())).MagnitudeSqr() > SQR(DISTANCE_TO_CLOSE_MISSION_GARAGE)) { - if ((CTimer::GetFrameCounter() & 0x1F) == 0 && !IsAnyOtherCarTouchingGarage(nil)) { + if ((CTimer::GetFrameCounter() & 0x1F) == 0 +#ifndef GTA_PS2 + && (!m_pTarget || IsEntityTouching3D(m_pTarget)) +#endif + ) { m_eGarageState = GS_CLOSING; m_bClosingWithoutTargetCar = true; } } - else if (m_pTarget && IsEntityEntirelyInside3D(m_pTarget, 0.0f) && + else if (!FindPlayerVehicle() && m_pTarget && IsEntityEntirelyInside3D(m_pTarget, 0.0f) && IsEntityEntirelyOutside(FindPlayerVehicle() ? (CEntity*)FindPlayerVehicle() : (CEntity*)FindPlayerPed(), 2.0f)) { CPad::GetPad(0)->SetDisablePlayerControls(PLAYERCONTROL_GARAGE); FindPlayerPed()->m_pWanted->m_bIgnoredByCops = true; @@ -788,11 +691,7 @@ void CGarage::Update() if (m_pTarget) ThrowCarsNearDoorOutOfGarage(m_pTarget); m_fDoorPos = Max(0.0f, m_fDoorPos - (m_bRotatedDoor ? ROTATED_DOOR_CLOSE_SPEED : DEFAULT_DOOR_CLOSE_SPEED) * CTimer::GetTimeStep()); - if (!IsEntityEntirelyOutside(FindPlayerPed(), 1.0f)) { - printf("FIX FOR IE GARAGE TRAPPING PLAYER\n"); - m_eGarageState = GS_OPENING; - } - else if (m_fDoorPos == 0.0f) { + if (m_fDoorPos == 0.0f) { DMAudio.PlayOneShot(hGarages, SOUND_GARAGE_DOOR_CLOSED, 1.0f); if (m_bClosingWithoutTargetCar) m_eGarageState = GS_FULLYCLOSED; @@ -888,21 +787,22 @@ void CGarage::Update() UpdateDoorsHeight(); break; case GS_FULLYCLOSED: - if (CTheScripts::IsPlayerOnAMission()) { - m_pTarget = nil; - break; - } - if (!IsEntityEntirelyOutside(FindPlayerPed(), 0.0f)) { - printf("FIX FOR IE GARAGE TRAPPING PLAYER\n"); - m_eGarageState = GS_OPENING; - } if (FindPlayerVehicle() && CalcSmallestDistToGarageDoorSquared( FindPlayerVehicle()->GetPosition().x, FindPlayerVehicle()->GetPosition().y ) < SQR(DISTANCE_TO_ACTIVATE_GARAGE)) { if (DoesCraigNeedThisCar(FindPlayerVehicle()->GetModelIndex())) { - m_eGarageState = GS_OPENING; + if (FindPlayerVehicle()->VehicleCreatedBy == MISSION_VEHICLE) + CGarages::TriggerMessage("GA_1A", -1, 5000, -1); // Come back when you're not so busy... + else + m_eGarageState = GS_OPENING; + } + else { + if (HasCraigCollectedThisCar(FindPlayerVehicle()->GetModelIndex())) + CGarages::TriggerMessage("GA_20", -1, 5000, -1); // We got more of these than we can shift. Sorry man, no deal. + else if (FindPlayerSpeed().Magnitude() < MAX_SPEED_TO_SHOW_COLLECTED_MESSAGE) + CGarages::TriggerMessage("GA_19", -1, 5000, -1); // We're not interested in that model. } } m_pTarget = nil; @@ -938,7 +838,6 @@ void CGarage::Update() m_eGarageState = GS_FULLYCLOSED; DMAudio.PlayOneShot(hGarages, SOUND_GARAGE_DOOR_CLOSED, 1.0f); } - UpdateDoorsHeight(); if (!IsGarageEmpty()) m_eGarageState = GS_OPENING; break; @@ -959,169 +858,8 @@ void CGarage::Update() break; } break; - case GARAGE_CRATE_GARAGE: -#ifdef GTA_NETWORK - { - switch (m_eGarageState) { - case GS_OPENED: - if (m_pSSVehicle) { - // if (m_pSSVehicle->GetVehiclePointer() && IsEntityEntirelyInside3D(m_pSSVehicle->GetVehiclePointer()) - { - if (m_pSSTargetCar) - m_pSSTargetCar->CleanUpOldReference((CEntity**)&m_pSSTargetCar); - // m_pSSTargetCar = m_pSSVehicle->GetVehiclePointer(); - m_pSSTargetCar->RegisterReference((CEntity**)&m_pSSTargetCar); - } - // else - { - if (m_pSSTargetCar) - m_pSSTargetCar->CleanUpOldReference((CEntity**)&m_pSSTargetCar); - m_pSSTargetCar = nil; - } - if (m_pSSTargetCar) { - if (!FindPlayerVehicle()/* && m_pSSTargetCar == m_pSSVehicle->GetVehiclePointer() */) - { - if (IsEntityEntirelyOutside(FindPlayerPed(), 6.0f)) { - if (FindPlayerPed()->m_fHealth > 0.0f) { - CPad::GetPad(0)->SetDisablePlayerControls(PLAYERCONTROL_GARAGE); - m_eGarageState = GS_CLOSING; - m_bSSGarageStateChanging = true; - } - } - } - } - } - break; - case GS_CLOSING: - m_fDoorPos = Max(0.0f, m_fDoorPos - (m_bRotatedDoor ? ROTATED_DOOR_CLOSE_SPEED : DEFAULT_DOOR_CLOSE_SPEED) * CTimer::GetTimeStep()); - if (m_fDoorPos == 0.0f) { - // if (? == m_nSSGarageState) - { - if (m_pSSTargetCar) { - // if (m_pSSVehicle->GetVehiclePointer()) - { - if (IsEntityEntirelyInside3D(/* m_pSSVehicle->GetVehiclePointer() */nil, 0.0f)) { - if (m_pSSTargetCar) - m_pSSTargetCar->CleanUpOldReference((CEntity**)&m_pSSTargetCar); - CWorld::Remove(m_pSSTargetCar); - delete m_pSSTargetCar; - m_pSSTargetCar = nil; - m_pSSVehicle = nil; - m_bSSGarageAcceptedVehicle = true; - printf("Destroying Car Inside Crate....\n"); - } - } - } - } - // TODO: some loop :( - CPad::GetPad(0)->SetEnablePlayerControls(PLAYERCONTROL_GARAGE); - m_eGarageState = GS_FULLYCLOSED; - DMAudio.PlayOneShot(hGarages, SOUND_GARAGE_DOOR_CLOSED, 1.0f); - } - UpdateDoorsHeight(); - if (!IsGarageEmpty()) - m_eGarageState = GS_OPENING; - break; - case GS_FULLYCLOSED: - { - // if (? == m_nSSGarageState) - { - if (CalcDistToGarageRectangleSquared(FindPlayerPed()->GetPosition().x, FindPlayerPed()->GetPosition().y) > SQR(10.0f)) - m_eGarageState = GS_OPENING; - } - break; - } - case GS_OPENING: - m_fDoorPos = Min(m_fDoorHeight, m_fDoorPos + (m_bRotatedDoor ? ROTATED_DOOR_OPEN_SPEED : DEFAULT_DOOR_OPEN_SPEED) * CTimer::GetTimeStep()); - if (m_fDoorPos == m_fDoorHeight) { - m_bSSGarageStateChanging = false; - m_eGarageState = GS_OPENED; - DMAudio.PlayOneShot(hGarages, SOUND_GARAGE_DOOR_OPENED, 1.0f); - } - UpdateDoorsHeight(); - break; - } - break; - } -#endif case GARAGE_CRUSHER: - { - switch (m_eGarageState) { - case GS_OPENED: - { - int i = CPools::GetVehiclePool()->GetSize() * (CTimer::GetFrameCounter() % CRUSHER_VEHICLE_TEST_SPAN) / CRUSHER_VEHICLE_TEST_SPAN; - int end = CPools::GetVehiclePool()->GetSize() * (CTimer::GetFrameCounter() % CRUSHER_VEHICLE_TEST_SPAN + 1) / CRUSHER_VEHICLE_TEST_SPAN; - for (; i < end; i++) { - CVehicle* pVehicle = CPools::GetVehiclePool()->GetSlot(i); - if (!pVehicle) - continue; - if ((pVehicle->IsCar() || pVehicle->IsBike()) && IsEntityEntirelyInside3D(pVehicle, 0.0f)) { - m_eGarageState = GS_WAITINGFORCAR; - m_pTarget = pVehicle; - m_nTimeCrusherCraneActivated = CTimer::GetTimeInMilliseconds(); - m_pTarget->RegisterReference((CEntity**)&m_pTarget); - } - } - break; - } - case GS_CLOSING: - if (m_pTarget) { - m_fDoorPos = Max(0.0f, m_fDoorPos - CRUSHER_CRANE_SPEED * CTimer::GetTimeStep()); - if (m_fDoorPos < TWOPI / 5) { - m_pTarget->bUsesCollision = false; - m_pTarget->bAffectedByGravity = false; - m_pTarget->SetMoveSpeed(0.0f, 0.0f, 0.0f); - } - else { - m_pTarget->SetMoveSpeed(m_pTarget->GetMoveSpeed() * Pow(0.8f, CTimer::GetTimeStep())); - } - if (m_fDoorPos == 0.0f) { - CGarages::CrushedCarId = CPools::GetVehiclePool()->GetIndex(m_pTarget); - float reward = Min(CRUSHER_MAX_REWARD, CRUSHER_MIN_REWARD + m_pTarget->pHandling->nMonetaryValue * m_pTarget->m_fHealth * CRUSHER_REWARD_COEFFICIENT); - CWorld::Players[CWorld::PlayerInFocus].m_nMoney += reward * CGarages::CrusherRewardMultiplier; - CMessages::AddMessageWithNumber(TheText.Get("CRUSHED"), 5000, 1, reward* CGarages::CrusherRewardMultiplier, -1, -1, -1, -1, -1); - DestroyVehicleAndDriverAndPassengers(m_pTarget); - //++CStats::CarsCrushed; // TODO - m_pTarget = nil; - m_eGarageState = GS_AFTERDROPOFF; - m_nTimeToStartAction = CTimer::GetTimeInMilliseconds() + TIME_TO_CRUSH_CAR; - DMAudio.PlayOneShot(hGarages, SOUND_GARAGE_DOOR_CLOSED, 1.0f); - } - } - else - m_eGarageState = GS_OPENING; - UpdateCrusherAngle(); - break; - case GS_AFTERDROPOFF: - if (CTimer::GetTimeInMilliseconds() <= m_nTimeToStartAction) { - UpdateCrusherShake((myrand() & 0xFF - 128) * 0.0002f, (myrand() & 0xFF - 128) * 0.0002f); - } - else { - UpdateCrusherShake(0.0f, 0.0f); - m_eGarageState = GS_OPENING; - } - break; - case GS_OPENING: - m_fDoorPos = Min(HALFPI, m_fDoorPos + CTimer::GetTimeStep() * CRUSHER_CRANE_SPEED); - if (m_fDoorPos == HALFPI) { - m_eGarageState = GS_OPENED; - DMAudio.PlayOneShot(hGarages, SOUND_GARAGE_DOOR_OPENED, 1.0f); - } - UpdateCrusherAngle(); - break; - case GS_WAITINGFORCAR: - if (m_pTarget) { - if (CTimer::GetTimeInMilliseconds() - m_nTimeCrusherCraneActivated > 3000) - m_eGarageState = GS_CLOSING; - } - break; - default: - break; - } - if (!FindPlayerVehicle() && (CTimer::GetFrameCounter() & 0x1F) == 0x17 && IsEntityEntirelyInside3D(FindPlayerPed(), 0.0f)) - FindPlayerPed()->InflictDamage(nil, WEAPONTYPE_RAMMEDBYCAR, 300.0f, PEDPIECE_TORSO, 0); break; - } case GARAGE_MISSION_KEEPCAR: case GARAGE_MISSION_KEEPCAR_REMAINCLOSED: switch (m_eGarageState) { @@ -1279,10 +1017,7 @@ void CGarage::Update() break; case GS_FULLYCLOSED: { - float distance = INFINITY; - if (CWorld::Players[CWorld::PlayerInFocus].m_pPed) { - distance = CalcDistToGarageRectangleSquared(FindPlayerCoors().x, FindPlayerCoors().y); - } + float distance = CalcDistToGarageRectangleSquared(FindPlayerCoors().x, FindPlayerCoors().y); if (distance < SQR(DISTANCE_TO_OPEN_HIDEOUT_GARAGE_ON_FOOT) || distance < SQR(DISTANCE_TO_OPEN_HIDEOUT_GARAGE_IN_CAR) && FindPlayerVehicle()) { if (FindPlayerVehicle() && CGarages::CountCarsInHideoutGarage(m_eGarageType) >= FindMaxNumStoredCarsForGarage()) { @@ -1474,15 +1209,8 @@ bool CGarage::IsEntityEntirelyInside3D(CEntity* pEntity, float fMargin) for (int i = 0; i < pColModel->numSpheres; i++) { CVector pos = pEntity->GetMatrix() * pColModel->spheres[i].center; float radius = pColModel->spheres[i].radius; - if (m_eGarageType == GARAGE_CRATE_GARAGE) { - if (pos.x + radius < m_fInfX - fMargin || pos.x - radius > m_fSupX + fMargin || - pos.y + radius < m_fInfY - fMargin || pos.y - radius > m_fSupX + fMargin) - return false; - } - else { - if (!IsPointInsideGarage(pos, fMargin - radius)) - return false; - } + if (!IsPointInsideGarage(pos, fMargin - radius)) + return false; } return true; } @@ -1496,23 +1224,12 @@ bool CGarage::IsEntityEntirelyOutside(CEntity * pEntity, float fMargin) for (int i = 0; i < pColModel->numSpheres; i++) { CVector pos = pEntity->GetMatrix() * pColModel->spheres[i].center; float radius = pColModel->spheres[i].radius; - if (m_eGarageType == GARAGE_CRATE_GARAGE) { - if (pos.x + radius > m_fInfX - fMargin && pos.x - radius < m_fSupX + fMargin && - pos.y + radius > m_fInfY - fMargin && pos.y - radius < m_fSupX + fMargin) - return false; - } - else { - if (IsPointInsideGarage(pos, fMargin + radius)) - return false; - } + if (IsPointInsideGarage(pos, fMargin + radius)) + return false; } return true; } -#ifdef GTA_NETWORK -// some CGarage method (0x134E7C) -#endif - bool CGarage::IsGarageEmpty() { int16 num; @@ -1683,20 +1400,23 @@ void CGarage::RemoveCarsBlockingDoorNotInside() void CGarages::PrintMessages() { if (CTimer::GetTimeInMilliseconds() > MessageStartTime && CTimer::GetTimeInMilliseconds() < MessageEndTime) { - // CRadar::m_FadeDownRadar = true; // TODO CFont::DrawFonts(); - float x_scale = FrontEndMenuManager.m_PrefsUseWideScreen ? 0.34506f : 0.3834f; - CFont::SetScale(PSP_SCREEN_SCALE_X(x_scale), PSP_SCREEN_SCALE_Y(0.71f)); + CFont::SetScale(SCREEN_SCALE_X(1.2f), SCREEN_SCALE_Y(1.5f)); CFont::SetPropOn(); CFont::SetJustifyOff(); CFont::SetBackgroundOff(); +#ifdef FIX_BUGS + CFont::SetCentreSize(SCREEN_SCALE_X(DEFAULT_SCREEN_WIDTH - 50)); +#else + CFont::SetCentreSize(SCREEN_WIDTH - 50); +#endif CFont::SetCentreOn(); CFont::SetFontStyle(FONT_LOCALE(FONT_STANDARD)); CFont::SetColor(CRGBA(27, 89, 130, 255)); CFont::SetDropShadowPosition(2); CFont::SetDropColor(CRGBA(0, 0, 0, 255)); - CFont::SetCentreSize(PSP_SCREEN_SCALE_X(454.0f)); - float y_offset = PSP_SCREEN_SCALE_Y(170.0f); + + float y_offset = SCREEN_SCALE_Y(140.0f); if (MessageNumberInString2 >= 0) { CMessages::InsertNumberInString(TheText.Get(MessageIDString), MessageNumberInString, MessageNumberInString2, -1, -1, -1, -1, gUString); @@ -1717,7 +1437,6 @@ bool CGarages::IsCarSprayable(CVehicle * pVehicle) switch (pVehicle->GetModelIndex()) { case MI_FIRETRUCK: case MI_AMBULAN: - case MI_FBICAR: case MI_POLICE: case MI_ENFORCER: case MI_BUS: @@ -1725,6 +1444,9 @@ bool CGarages::IsCarSprayable(CVehicle * pVehicle) case MI_BARRACKS: case MI_DODO: case MI_COACH: +#ifndef GTA_PS2 + case MI_FBIRANCH: +#endif return false; default: break; @@ -1781,7 +1503,6 @@ void CGarage::UpdateCrusherAngle() void CGarage::UpdateCrusherShake(float X, float Y) { - /* RefreshDoorPointers(false); m_pDoor1->GetMatrix().GetPosition().x += X; m_pDoor1->GetMatrix().GetPosition().y += Y; @@ -1795,7 +1516,6 @@ void CGarage::UpdateCrusherShake(float X, float Y) m_pDoor2->UpdateRwFrame(); m_pDoor2->GetMatrix().GetPosition().x -= X; m_pDoor2->GetMatrix().GetPosition().y -= Y; - */ } void CGarage::RefreshDoorPointers(bool bCreate) @@ -1861,7 +1581,6 @@ void CGarages::TriggerMessage(const char* text, int16 num1, uint16 time, int16 n MessageEndTime = CTimer::GetTimeInMilliseconds() - 500 + time; } else { - CMessages::AddToPreviousBriefArray(TheText.Get(text), -1, -1, -1, -1, -1, -1, nil); strcpy(MessageIDString, text); MessageStartTime = CTimer::GetTimeInMilliseconds(); MessageEndTime = CTimer::GetTimeInMilliseconds() + time; @@ -1907,8 +1626,7 @@ int32 CGarages::QueryCarsCollected(int16 garage) bool CGarages::HasImportExportGarageCollectedThisCar(int16 garage, int8 car) { - uint32 total; - return CarTypesCollected[GetCarsCollectedIndexForGarageType(aGarages[garage].m_eGarageType, total)] & (BIT(car)); + return CarTypesCollected[GetCarsCollectedIndexForGarageType(aGarages[garage].m_eGarageType)] & (BIT(car)); } bool CGarages::IsGarageOpen(int16 garage) @@ -1928,9 +1646,8 @@ bool CGarages::HasThisCarBeenCollected(int16 garage, uint8 id) bool CGarage::DoesCraigNeedThisCar(int32 mi) { - uint32 total; - int ct = CGarages::GetCarsCollectedIndexForGarageType(m_eGarageType, total); - for (int i = 0; i < total; i++) { + int ct = CGarages::GetCarsCollectedIndexForGarageType(m_eGarageType); + for (int i = 0; i < TOTAL_COLLECTCARS_CARS; i++) { if (mi == gaCarsToCollectInCraigsGarages[ct][i] || (gaCarsToCollectInCraigsGarages[ct][i] == MI_CHEETAH && mi == MI_VICECHEE)) return (CGarages::CarTypesCollected[ct] & BIT(i)) == 0; } @@ -1939,10 +1656,9 @@ bool CGarage::DoesCraigNeedThisCar(int32 mi) bool CGarage::HasCraigCollectedThisCar(int32 mi) { - uint32 total; - int ct = CGarages::GetCarsCollectedIndexForGarageType(m_eGarageType, total); - for (int i = 0; i < total; i++) { - if (mi == gaCarsToCollectInCraigsGarages[ct][i]) + int ct = CGarages::GetCarsCollectedIndexForGarageType(m_eGarageType); + for (int i = 0; i < TOTAL_COLLECTCARS_CARS; i++) { + if (mi == gaCarsToCollectInCraigsGarages[ct][i] || (gaCarsToCollectInCraigsGarages[ct][i] == MI_CHEETAH && mi == MI_VICECHEE)) return CGarages::CarTypesCollected[ct] & BIT(i); } return false; @@ -1950,21 +1666,24 @@ bool CGarage::HasCraigCollectedThisCar(int32 mi) bool CGarage::MarkThisCarAsCollectedForCraig(int32 mi) { - uint32 total; - int ct = CGarages::GetCarsCollectedIndexForGarageType(m_eGarageType, total); + int ct = CGarages::GetCarsCollectedIndexForGarageType(m_eGarageType); int index; - for (index = 0; index < total; index++) { - if (mi == gaCarsToCollectInCraigsGarages[ct][index]) + for (index = 0; index < TOTAL_COLLECTCARS_CARS; index++) { + if (mi == gaCarsToCollectInCraigsGarages[ct][index] || (gaCarsToCollectInCraigsGarages[ct][index] == MI_CHEETAH && mi == MI_VICECHEE)) break; } - if (index >= total) + if (index >= TOTAL_COLLECTCARS_CARS) return false; CGarages::CarTypesCollected[ct] |= BIT(index); - for (int i = 0; i < total; i++) { + CWorld::Players[CWorld::PlayerInFocus].m_nMoney += IMPORT_REWARD; + for (int i = 0; i < TOTAL_COLLECTCARS_CARS; i++) { if ((CGarages::CarTypesCollected[ct] & BIT(i)) == 0) { + CGarages::TriggerMessage("GA_13", -1, 5000, -1); // Delivered like a pro. Complete the list and there'll be a bonus for you. return false; } } + CWorld::Players[CWorld::PlayerInFocus].m_nMoney += IMPORT_ALLCARS_REWARD; + CGarages::TriggerMessage("GA_14", -1, 5000, -1); // All the cars. NICE! Here's a little something. return true; } @@ -2032,17 +1751,15 @@ void CGarage::FindDoorsEntities() } } if (m_pDoor1 && m_pDoor2) { - if (m_pDoor1->GetModelIndex() != MI_CRUSHERBODY && m_pDoor1->GetModelIndex() != MI_CRUSHERLID) { - CVector2D vecDoor1ToGarage(m_pDoor1->GetPosition().x - GetGarageCenterX(), m_pDoor1->GetPosition().y - GetGarageCenterY()); - CVector2D vecDoor2ToGarage(m_pDoor2->GetPosition().x - GetGarageCenterX(), m_pDoor2->GetPosition().y - GetGarageCenterY()); - if (DotProduct2D(vecDoor1ToGarage, vecDoor2ToGarage) > 0.0f) { - if (vecDoor1ToGarage.MagnitudeSqr() >= vecDoor2ToGarage.MagnitudeSqr()) { - m_pDoor1 = m_pDoor2; - m_bDoor1IsDummy = m_bDoor2IsDummy; - } - m_pDoor2 = nil; - m_bDoor2IsDummy = false; + CVector2D vecDoor1ToGarage(m_pDoor1->GetPosition().x - GetGarageCenterX(), m_pDoor1->GetPosition().y - GetGarageCenterY()); + CVector2D vecDoor2ToGarage(m_pDoor2->GetPosition().x - GetGarageCenterX(), m_pDoor2->GetPosition().y - GetGarageCenterY()); + if (DotProduct2D(vecDoor1ToGarage, vecDoor2ToGarage) > 0.0f) { + if (vecDoor1ToGarage.MagnitudeSqr() >= vecDoor2ToGarage.MagnitudeSqr()) { + m_pDoor1 = m_pDoor2; + m_bDoor1IsDummy = m_bDoor2IsDummy; } + m_pDoor2 = nil; + m_bDoor2IsDummy = false; } } if (m_pDoor1) @@ -2061,27 +1778,8 @@ void CGarage::FindDoorsEntitiesSectorList(CPtrList& list, bool dummy) pEntity->m_scanCode = CWorld::GetCurrentScanCode(); if (!pEntity || !CGarages::IsModelIndexADoor(pEntity->GetModelIndex())) continue; - if (Abs(pEntity->GetPosition().x - GetGarageCenterX()) >= 20.0f || - Abs(pEntity->GetPosition().y - GetGarageCenterY()) >= 20.0f) + if (!IsPointInsideGarage(pEntity->GetPosition(), 2.0f)) continue; - if (pEntity->GetModelIndex() == MI_CRUSHERBODY) { - m_pDoor1 = pEntity; - m_bDoor1IsDummy = dummy; - if (dummy) - m_bDoor1PoolIndex = (CPools::GetDummyPool()->GetIndex((CDummy*)pEntity)) & 0x7F; - else - m_bDoor1PoolIndex = (CPools::GetObjectPool()->GetIndex((CObject*)pEntity)) & 0x7F; - continue; - } - if (pEntity->GetModelIndex() == MI_CRUSHERLID) { - m_pDoor2 = pEntity; - m_bDoor2IsDummy = dummy; - if (dummy) - m_bDoor2PoolIndex = (CPools::GetDummyPool()->GetIndex((CDummy*)pEntity)) & 0x7F; - else - m_bDoor2PoolIndex = (CPools::GetObjectPool()->GetIndex((CObject*)pEntity)) & 0x7F; - continue; - } if (!m_pDoor1) { m_pDoor1 = pEntity; m_bDoor1IsDummy = dummy; @@ -2138,48 +1836,25 @@ bool CGarages::HasCarBeenCrushed(int32 handle) void CStoredCar::StoreCar(CVehicle* pVehicle) { m_nModelIndex = pVehicle->GetModelIndex(); - m_fPosX = pVehicle->GetPosition().x; - m_fPosY = pVehicle->GetPosition().y; - m_fPosY = pVehicle->GetPosition().z; - m_fForwardX = pVehicle->GetForward().x; - m_fForwardY = pVehicle->GetForward().y; - m_fForwardZ = pVehicle->GetForward().z; - m_fTractionMultiplier = 1.0f; + m_vecPos = pVehicle->GetPosition(); + m_vecAngle = pVehicle->GetForward(); m_nPrimaryColor = pVehicle->m_currentColour1; m_nSecondaryColor = pVehicle->m_currentColour2; m_nRadioStation = pVehicle->m_nRadioStation; m_nVariationA = pVehicle->m_aExtras[0]; m_nVariationB = pVehicle->m_aExtras[1]; - m_nFlags = 0; - if (pVehicle->bRewardVehicle) m_nFlags |= FLAG_REWARD_VEHICLE; - if (pVehicle->bBulletProof) m_nFlags |= FLAG_BULLETPROOF; - if (pVehicle->bFireProof) m_nFlags |= FLAG_FIREPROOF; - if (pVehicle->bExplosionProof) m_nFlags |= FLAG_EXPLOSIONPROOF; - if (pVehicle->bCollisionProof) m_nFlags |= FLAG_COLLISIONPROOF; - if (pVehicle->bMeleeProof) m_nFlags |= FLAG_MELEEPROOF; - if (pVehicle->bTyresDontBurst) m_nFlags |= FLAG_TIRES_INVULNERABLE; - if (pVehicle->bTakeLessDamage) m_nFlags |= FLAG_STRONG; - if (pVehicle->bIsHeavy) m_nFlags |= FLAG_HEAVY; - if (pVehicle->IsCar()) { - CAutomobile* pAutomobile = (CAutomobile*)pVehicle; - if (pAutomobile->bFixedColour) m_nFlags |= FLAG_PERMANENT_COLOUR; - if (pAutomobile->m_bombType) m_nFlags |= FLAG_BOMB; - if (pAutomobile->bNotDamagedUpsideDown) m_nFlags |= FLAG_NOT_DAMAGED_UPSIDEDOWN; - m_fTractionMultiplier = pAutomobile->m_fTraction; - } - else if (pVehicle->IsBike()) { - CBike* pBike = (CBike*)pVehicle; - if (pBike->bFixedColour) m_nFlags |= FLAG_PERMANENT_COLOUR; - m_fTractionMultiplier = pBike->m_fTraction; - } + m_bBulletproof = pVehicle->bBulletProof; + m_bFireproof = pVehicle->bFireProof; + m_bExplosionproof = pVehicle->bExplosionProof; + m_bCollisionproof = pVehicle->bCollisionProof; + m_bMeleeproof = pVehicle->bMeleeProof; + if (pVehicle->IsCar() || pVehicle->IsBike()) + m_nCarBombType = ((CAutomobile*)pVehicle)->m_bombType; // NB: cast to CAutomobile is original behaviour } CVehicle* CStoredCar::RestoreCar() { CStreaming::RequestModel(m_nModelIndex, STREAMFLAGS_DEPENDENCY); - uint8 owner = RANDOM_VEHICLE; - if (m_nFlags & FLAG_REWARD_VEHICLE) - owner = MISSION_VEHICLE; if (!CStreaming::HasModelLoaded(m_nModelIndex)) return nil; #ifdef FIX_BUGS @@ -2192,19 +1867,19 @@ CVehicle* CStoredCar::RestoreCar() } CVehicle* pVehicle; if (CModelInfo::IsBoatModel(m_nModelIndex)) - pVehicle = new CBoat(m_nModelIndex, owner); + pVehicle = new CBoat(m_nModelIndex, RANDOM_VEHICLE); else if (CModelInfo::IsBikeModel(m_nModelIndex)) { - CBike* pBike = new CBike(m_nModelIndex, owner); + CBike* pBike = new CBike(m_nModelIndex, RANDOM_VEHICLE); pBike->bIsStanding = true; pVehicle = pBike; } else - pVehicle = new CAutomobile(m_nModelIndex, owner); - pVehicle->SetPosition(m_fPosX, m_fPosY, m_fPosZ); + pVehicle = new CAutomobile(m_nModelIndex, RANDOM_VEHICLE); + pVehicle->SetPosition(m_vecPos); pVehicle->SetStatus(STATUS_ABANDONED); - pVehicle->GetForward() = CVector(m_fForwardX, m_fForwardY, m_fForwardZ); - pVehicle->GetRight() = CVector(m_fForwardY, -m_fForwardX, 0.0f); + pVehicle->GetForward() = m_vecAngle; + pVehicle->GetRight() = CVector(m_vecAngle.y, -m_vecAngle.x, 0.0f); pVehicle->GetUp() = CVector(0.0f, 0.0f, 1.0f); pVehicle->pDriver = nil; pVehicle->m_currentColour1 = m_nPrimaryColor; @@ -2221,36 +1896,11 @@ CVehicle* CStoredCar::RestoreCar() } pVehicle->bHasBeenOwnedByPlayer = true; pVehicle->m_nDoorLock = CARLOCK_UNLOCKED; - if (m_nFlags & FLAG_REWARD_VEHICLE) pVehicle->bRewardVehicle = true; - if (m_nFlags & FLAG_BULLETPROOF) pVehicle->bBulletProof = true; - if (m_nFlags & FLAG_FIREPROOF) pVehicle->bFireProof = true; - if (m_nFlags & FLAG_EXPLOSIONPROOF) pVehicle->bExplosionProof = true; - if (m_nFlags & FLAG_COLLISIONPROOF) pVehicle->bCollisionProof = true; - if (m_nFlags & FLAG_MELEEPROOF) pVehicle->bMeleeProof = true; - if (m_nFlags & FLAG_TIRES_INVULNERABLE) pVehicle->bTyresDontBurst = true; - if (m_nFlags & FLAG_STRONG) pVehicle->bTakeLessDamage = true; - if (m_nFlags & FLAG_HEAVY) { - pVehicle->bIsHeavy = true; - pVehicle->m_fMass = pVehicle->pHandling->GetMass(); - pVehicle->m_fTurnMass = pVehicle->pHandling->GetTurnMass(); - } - else { - pVehicle->bIsHeavy = false; - pVehicle->m_fMass = pVehicle->pHandling->GetMass() * 3.0f; - pVehicle->m_fTurnMass = pVehicle->pHandling->GetTurnMass() * 5.0f; - } - if (pVehicle->IsCar()) { - CAutomobile* pAutomobile = (CAutomobile*)pVehicle; - if (m_nFlags & FLAG_PERMANENT_COLOUR) pAutomobile->bFixedColour = true; - if (m_nFlags & FLAG_BOMB) pAutomobile->m_bombType = CARBOMB_TIMED; - if (m_nFlags & FLAG_NOT_DAMAGED_UPSIDEDOWN) pAutomobile->bNotDamagedUpsideDown = true; - m_fTractionMultiplier = pAutomobile->m_fTraction; - } - else if (pVehicle->IsBike()) { - CBike* pBike = (CBike*)pVehicle; - if (m_nFlags & FLAG_PERMANENT_COLOUR) pBike->bFixedColour = true; - m_fTractionMultiplier = pBike->m_fTraction; - } + pVehicle->bBulletProof = m_bBulletproof; + pVehicle->bFireProof = m_bFireproof; + pVehicle->bExplosionProof = m_bExplosionproof; + pVehicle->bCollisionProof = m_bCollisionproof; + pVehicle->bMeleeProof = m_bMeleeproof; return pVehicle; } @@ -2265,23 +1915,13 @@ void CGarage::StoreAndRemoveCarsForThisHideout(CStoredCar* aCars, int32 nMax) if (!pVehicle) continue; if (IsPointInsideGarage(pVehicle->GetPosition())) { -#if defined GTA_PS2 || defined GTA_MOBILE - if (pVehicle->GetStatus() == STATUS_WRECKED) { + if (pVehicle->VehicleCreatedBy != MISSION_VEHICLE) { + if (index < Max(NUM_GARAGE_STORED_CARS, nMax) && !EntityHasASphereWayOutsideGarage(pVehicle, 1.0f)) + aCars[index++].StoreCar(pVehicle); CWorld::Players[CWorld::PlayerInFocus].CancelPlayerEnteringCars(pVehicle); CWorld::Remove(pVehicle); delete pVehicle; } - else if (pVehicle->m_bombType == CARBOMB_NONE || pVehicle->bRewardVehicle) // <- probably condition looked different -#endif - { - if (pVehicle->VehicleCreatedBy != MISSION_VEHICLE || pVehicle->bRewardVehicle) { - if (index < Max(NUM_GARAGE_STORED_CARS, nMax) && !EntityHasASphereWayOutsideGarage(pVehicle, 1.0f)) - aCars[index++].StoreCar(pVehicle); - CWorld::Players[CWorld::PlayerInFocus].CancelPlayerEnteringCars(pVehicle); - CWorld::Remove(pVehicle); - delete pVehicle; - } - } } } // why? @@ -2432,7 +2072,7 @@ void CGarage::PlayerArrestedOrDied() case GARAGE_COLLECTCARS_2: case GARAGE_COLLECTCARS_3: case GARAGE_FORCARTOCOMEOUTOF: - case GARAGE_CRATE_GARAGE: + case GARAGE_60SECONDS: case GARAGE_MISSION_KEEPCAR: case GARAGE_FOR_SCRIPT_TO_OPEN: case GARAGE_HIDEOUT_ONE: @@ -2622,7 +2262,7 @@ void CGarages::SetAllDoorsBackToOriginalHeight() void CGarages::Save(uint8 * buf, uint32 * size) { //INITSAVEBUF - *size = 10692; // for some reason it's not actual size again + *size = 7876; // for some reason it's not actual size again //*size = (6 * sizeof(uint32) + TOTAL_COLLECTCARS_GARAGES * sizeof(*CarTypesCollected) + sizeof(uint32) + TOTAL_HIDEOUT_GARAGES * NUM_GARAGE_STORED_CARS * sizeof(CStoredCar) + NUM_GARAGES * sizeof(CGarage)); CloseHideOutGaragesBeforeSave(); WriteSaveBuf(buf, NumGarages); @@ -2644,10 +2284,29 @@ void CGarages::Save(uint8 * buf, uint32 * size) //VALIDATESAVEBUF(*size); } +const CStoredCar &CStoredCar::operator=(const CStoredCar & other) +{ + m_nModelIndex = other.m_nModelIndex; + m_vecPos = other.m_vecPos; + m_vecAngle = other.m_vecAngle; + m_bBulletproof = other.m_bBulletproof; + m_bFireproof = other.m_bFireproof; + m_bExplosionproof = other.m_bExplosionproof; + m_bCollisionproof = other.m_bCollisionproof; + m_bMeleeproof = other.m_bMeleeproof; + m_nPrimaryColor = other.m_nPrimaryColor; + m_nSecondaryColor = other.m_nSecondaryColor; + m_nRadioStation = other.m_nRadioStation; + m_nVariationA = other.m_nVariationA; + m_nVariationB = other.m_nVariationB; + m_nCarBombType = other.m_nCarBombType; + return *this; +} + void CGarages::Load(uint8* buf, uint32 size) { //INITSAVEBUF - assert(size == 10692); + assert(size = 7876); //assert(size == (6 * sizeof(uint32) + TOTAL_COLLECTCARS_GARAGES * sizeof(*CarTypesCollected) + sizeof(uint32) + TOTAL_HIDEOUT_GARAGES * NUM_GARAGE_STORED_CARS * sizeof(CStoredCar) + NUM_GARAGES * sizeof(CGarage))); CloseHideOutGaragesBeforeSave(); NumGarages = ReadSaveBuf(buf); @@ -2686,24 +2345,7 @@ void CGarages::Load(uint8* buf, uint32 size) bool CGarages::IsModelIndexADoor(uint32 id) { - return id == MI_GARAGEDOOR1 || - id == MI_GARAGEDOOR17 || - id == MI_GARAGEDOOR27 || - id == MI_GARAGEDOOR28 || - id == MI_GARAGEDOOR29 || - id == MI_GARAGEDOOR30 || - id == MI_GARAGEDOOR31 || - id == MI_GARAGEDOOR32 || - id == MI_GARAGEDOOR33 || - id == MI_GARAGEDOOR34 || - id == MI_GARAGEDOOR35 || - id == MI_GARAGEDOOR36 || - id == MI_GARAGEDOOR37 || - id == MI_GARAGEDOOR38 || - id == MI_GARAGEDOOR39 || - id == MI_CRUSHERBODY || - id == MI_CRUSHERLID || - id == MI_GARAGEDOOR2 || + return id == MI_GARAGEDOOR2 || id == MI_GARAGEDOOR3 || id == MI_GARAGEDOOR4 || id == MI_GARAGEDOOR5 || @@ -2725,8 +2367,7 @@ CGarages::IsModelIndexADoor(uint32 id) id == MI_GARAGEDOOR23 || id == MI_GARAGEDOOR24 || id == MI_GARAGEDOOR25 || - id == MI_GARAGEDOOR26 || - id == MI_DOOR2_SJL; + id == MI_GARAGEDOOR26; } void CGarages::StopCarFromBlowingUp(CAutomobile* pCar) @@ -2766,109 +2407,3 @@ bool CGarage::IsPlayerEntirelyInsideGarage() { return IsEntityEntirelyInside3D(FindPlayerVehicle() ? (CEntity*)FindPlayerVehicle() : (CEntity*)FindPlayerPed(), 0.0f); } - -int16 CGarages::AddCrateGarage(CVector pos, float angle) -{ - CMatrix matrix; - matrix.SetUnity(); - matrix.SetRotateZOnly(DEGTORAD(angle)); - CStreaming::RequestModel(MI_CRATE_SJL, STREAMFLAGS_DEPENDENCY); -#ifdef FIX_BUGS - CStreaming::LoadAllRequestedModels(false); -#endif - CObject* pCrate = new CObject(MI_CRATE_SJL, false); - pCrate->ObjectCreatedBy = MISSION_OBJECT; - pCrate->SetPosition(pos); - pCrate->SetOrientation(0.0f, 0.0f, DEGTORAD(angle)); - pCrate->GetMatrix().UpdateRW(); - pCrate->UpdateRwFrame(); - pCrate->bAffectedByGravity = false; - pCrate->m_phy_flagA08 = true; - pCrate->bExplosionProof = true; - pCrate->bIsStatic = false; - - CStreaming::RequestModel(MI_DOOR1_SJL, STREAMFLAGS_DEPENDENCY); -#ifdef FIX_BUGS - CStreaming::LoadAllRequestedModels(false); -#endif - CObject* pDoor1 = new CObject(MI_DOOR1_SJL, false); - pDoor1->ObjectCreatedBy = MISSION_OBJECT; - CVector vDoor1Pos = matrix * CVector(0.0f, 5.64f, 5.168f); - pDoor1->SetPosition(vDoor1Pos); - pDoor1->SetOrientation(0.0f, 0.0f, DEGTORAD(angle)); - pDoor1->GetMatrix().UpdateRW(); - pDoor1->UpdateRwFrame(); - pDoor1->bAffectedByGravity = false; - pDoor1->m_phy_flagA08 = true; - pDoor1->bExplosionProof = true; - pDoor1->bIsStatic = false; - - CStreaming::RequestModel(MI_DOOR2_SJL, STREAMFLAGS_DEPENDENCY); -#ifdef FIX_BUGS - CStreaming::LoadAllRequestedModels(false); -#endif - CObject* pDoor2 = new CObject(MI_DOOR2_SJL, false); - pDoor2->ObjectCreatedBy = MISSION_OBJECT; - CVector vDoor2Pos = matrix * CVector(0.0f, -5.64f, 5.168f); - pDoor2->SetPosition(vDoor2Pos); - pDoor2->SetOrientation(0.0f, 0.0f, DEGTORAD(angle)); - pDoor2->GetMatrix().UpdateRW(); - pDoor2->UpdateRwFrame(); - pDoor2->bAffectedByGravity = false; - pDoor2->m_phy_flagA08 = true; - pDoor2->bExplosionProof = true; - pDoor2->bIsStatic = false; - - CWorld::Add(pCrate); - CWorld::Add(pDoor1); - CWorld::Add(pDoor2); - - CVector corner = matrix * CVector(-3.0f, -3.5f, -0.5f) + pos; - CVector xplane = matrix * CVector(0.0f, 2.0f, 0.0f) + pos; - CVector yplane = matrix * CVector(0.0f, 0.0f, 0.0f) + pos; - - printf("Posttrans Corner[%f][%f][%f] XPlane[%f][%f][%f] YPlane[%f][%f][%f]", - corner.x, corner.y, corner.z, xplane.x, xplane.y, xplane.z, yplane.x, yplane.y, yplane.z); - int16 index = AddOne(corner.x, corner.y, corner.z, xplane.x, xplane.y, yplane.x, yplane.y, pos.z + 4.0f, GARAGE_CRATE_GARAGE, 0); - SetLeaveCameraForThisGarage(index); - CGarage* pGarage = &aGarages[index]; - pGarage->m_bSSGarageAcceptedVehicle = false; - pGarage->m_bSSGarageStateChanging = false; - pGarage->m_vecSSGaragePos = pos; - pGarage->m_fSSGarageAngle = angle; - return index; -} - -#ifdef GTA_NETWORK -void CGarages::RemoveAllCrateGarages() -{ - for (uint32 i = 0; i < NUM_GARAGES; i++) { - CGarage* pGarage = &aGarages[i]; - if (pGarage->m_eGarageType == GARAGE_CRATE_GARAGE) { - pGarage->m_eGarageType = GARAGE_NONE; - pGarage->m_bSSGarageStateChanging = false; - pGarage->m_bSSGarageAcceptedVehicle = false; - pGarage->m_pSSVehicle = nil; - --NumGarages; - } - } -} - -bool CGarages::HasSSGarageAcceptedVehicle(int16 garage) -{ - return aGarages[garage].m_bSSGarageAcceptedVehicle; -} - -void CGarages::SetVehicleForSSGarage(bool state, int16 garage, void* pVehicle) -{ - CGarage* pGarage = &aGarages[garage]; - pGarage->m_pSSVehicle = pVehicle; - pGarage->m_nSSGarageState = state; - pGarage->m_bSSGarageAcceptedVehicle = false; - if (!pVehicle) { - if (pGarage->m_pSSTargetCar) - pGarage->m_pSSTargetCar->CleanUpOldReference((CEntity**)pGarage->m_pSSTargetCar); - pGarage->m_pSSTargetCar = nil; - } -} -#endif diff --git a/src/control/Garages.h b/src/control/Garages.h index 2ab7460..07d5f71 100644 --- a/src/control/Garages.h +++ b/src/control/Garages.h @@ -15,7 +15,6 @@ enum eGarageState GS_OPENEDCONTAINSCAR, GS_CLOSEDCONTAINSCAR, GS_AFTERDROPOFF, - GS_WAITINGFORCAR }; enum eGarageType @@ -32,7 +31,7 @@ enum eGarageType GARAGE_COLLECTCARS_2, GARAGE_COLLECTCARS_3, GARAGE_FORCARTOCOMEOUTOF, - GARAGE_CRATE_GARAGE, + GARAGE_60SECONDS, GARAGE_CRUSHER, GARAGE_MISSION_KEEPCAR, GARAGE_FOR_SCRIPT_TO_OPEN, @@ -59,34 +58,19 @@ enum { TOTAL_COLLECTCARS_GARAGES = 4, TOTAL_HIDEOUT_GARAGES = 12, - TOTAL_COLLECTCARS_CARS = 16 + TOTAL_COLLECTCARS_CARS = 6 }; class CStoredCar { - enum { - FLAG_BULLETPROOF = 0x1, - FLAG_FIREPROOF = 0x2, - FLAG_EXPLOSIONPROOF = 0x4, - FLAG_COLLISIONPROOF = 0x8, - FLAG_MELEEPROOF = 0x10, - FLAG_TIRES_INVULNERABLE = 0x20, - FLAG_STRONG = 0x40, - FLAG_HEAVY = 0x80, - FLAG_PERMANENT_COLOUR = 0x100, - FLAG_BOMB = 0x200, - FLAG_NOT_DAMAGED_UPSIDEDOWN = 0x400, - FLAG_REWARD_VEHICLE = 0x8000 - }; int32 m_nModelIndex; - float m_fPosX; - float m_fPosY; - float m_fPosZ; - float m_fForwardX; - float m_fForwardY; - float m_fForwardZ; - float m_fTractionMultiplier; - int32 m_nFlags; + CVector m_vecPos; + CVector m_vecAngle; + int32 m_bBulletproof : 1; + int32 m_bFireproof : 1; + int32 m_bExplosionproof : 1; + int32 m_bCollisionproof : 1; + int32 m_bMeleeproof : 1; int8 m_nPrimaryColor; int8 m_nSecondaryColor; int8 m_nRadioStation; @@ -97,6 +81,7 @@ public: void Init() { m_nModelIndex = 0; } void Clear() { m_nModelIndex = 0; } bool HasCar() { return m_nModelIndex != 0; } + const CStoredCar &operator=(const CStoredCar& other); void StoreCar(CVehicle*); CVehicle* RestoreCar(); }; @@ -130,16 +115,12 @@ public: CVector2D m_vDir1; CVector2D m_vDir2; float m_fSupZ; - CVector m_vecSSGaragePos; - float m_fSSGarageAngle; float m_fDir1Len; float m_fDir2Len; float m_fInfX; float m_fSupX; float m_fInfY; float m_fSupY; - uint32 m_nTimeCrusherCraneActivated; - CVehicle* m_pSSTargetCar; float m_fDoorPos; float m_fDoorHeight; float m_fDoor1X; @@ -152,14 +133,6 @@ public: uint8 m_bCollectedCarsState; CVehicle *m_pTarget; CStoredCar m_sStoredCar; // not needed - bool m_bInitialized; -#ifdef GTA_NETWORK - void* m_pSSVehicle; // some multiplayer vehicle structure, +104 == GetVehiclePointer -#endif - bool m_bSSGarageAcceptedVehicle; - bool m_bLocked; - bool m_nSSGarageState; - bool m_bSSGarageStateChanging; void OpenThisGarage(); void CloseThisGarage(); @@ -246,7 +219,6 @@ public: static CGarage aGarages[NUM_GARAGES]; static CStoredCar aCarsInSafeHouses[TOTAL_HIDEOUT_GARAGES][NUM_GARAGE_STORED_CARS]; static bool bCamShouldBeOutisde; - static uint8 CrusherRewardMultiplier; static void Init(void); #ifndef PS2 @@ -294,13 +266,13 @@ public: static void CloseHideOutGaragesBeforeSave(void); static int32 CountCarsInHideoutGarage(uint8); static int32 GetBombTypeForGarageType(uint8 type) { return type - GARAGE_BOMBSHOP1 + 1; } - static int32 GetCarsCollectedIndexForGarageType(uint8 type, uint32& total) + static int32 GetCarsCollectedIndexForGarageType(uint8 type) { switch (type) { - case GARAGE_COLLECTCARS_1: total = TOTAL_COLLECTCARS_CARS; return 0; - case GARAGE_COLLECTCARS_2: total = 0; return 1; - case GARAGE_COLLECTCARS_3: total = 0; return 2; - case GARAGE_COLLECTCARS_4: total = 0; return 3; + case GARAGE_COLLECTCARS_1: return 0; + case GARAGE_COLLECTCARS_2: return 1; + case GARAGE_COLLECTCARS_3: return 2; + case GARAGE_COLLECTCARS_4: return 3; default: assert(0); } return 0; @@ -325,15 +297,4 @@ public: } static bool IsThisGarageTypeSafehouse(uint8 type) { return FindSafeHouseIndexForGarageType(type) >= 0; } - static bool InitDoorGubbins(uint32, uint8); - static void SetupAnyGaragesForThisIsland(void); - static void LockGarage(int16, bool); - static int16 AddCrateGarage(CVector, float); - -#ifdef GTA_NETWORK - static void RemoveAllCrateGarages(); - static bool HasSSGarageAcceptedVehicle(int16 garage); - static void SetVehicleForSSGarage(bool state, int16 garage, void* pVehicle); // void* -> ? -#endif - }; diff --git a/src/control/PathFind.cpp b/src/control/PathFind.cpp index 3d18eb0..bf72199 100644 --- a/src/control/PathFind.cpp +++ b/src/control/PathFind.cpp @@ -1763,18 +1763,18 @@ CPathFind::TestCoorsCloseness(CVector target, uint8 type, CVector start) float dist; if(type == PATH_CAR) - DoPathSearch(type, start, -1, target, pNodeList, &DummyResult, 32, nil, &dist, 170.0f, -1); + DoPathSearch(type, start, -1, target, pNodeList, &DummyResult, 32, nil, &dist, 999999.88f, -1); else DoPathSearch(type, start, -1, target, nil, &DummyResult2, 0, nil, &dist, 50.0f, -1); #ifdef FIX_BUGS // dist has GenerationDistMultiplier as a factor, so our reference dist should have it too if(type == PATH_CAR) - return dist < 180.0f*TheCamera.GenerationDistMultiplier; + return dist < 150.0f*TheCamera.GenerationDistMultiplier; else return dist < 100.0f*TheCamera.GenerationDistMultiplier; #else if(type == PATH_CAR) - return dist < 180.0f; + return dist < 150.0f; else return dist < 100.0f; #endif diff --git a/src/control/Pickups.cpp b/src/control/Pickups.cpp index 0b4a8b6..7bc8832 100644 --- a/src/control/Pickups.cpp +++ b/src/control/Pickups.cpp @@ -1671,20 +1671,4 @@ CPed::CreateDeadPedPickupCoors(float *x, float *y, float *z) *y = GetPosition().y; *z = GetPosition().z + 0.4f; #undef NUMBER_OF_ATTEMPTS -} - -float CPickups::GetValue(int index) -{ - int i = GetActualPickupIndex(index); - if (i == -1) - return 0.0f; - return aPickUps[i].m_fRevenue; -} - -void CPickups::SetValue(int index, float value) -{ - int i = GetActualPickupIndex(index); - if (i == -1) - return; - aPickUps[i].m_fRevenue = value; -} +} \ No newline at end of file diff --git a/src/control/Pickups.h b/src/control/Pickups.h index fd8b15c..0de7f82 100644 --- a/src/control/Pickups.h +++ b/src/control/Pickups.h @@ -117,9 +117,6 @@ public: static void RemoveAllPickupsOfACertainWeaponGroupWithNoAmmo(eWeaponType); static CPickup *FindPickUpForThisObject(CEntity*); - - static float GetValue(int); - static void SetValue(int, float); }; extern uint16 AmmoForWeapon[WEAPONTYPE_TOTALWEAPONS + 1]; diff --git a/src/control/Remote.cpp b/src/control/Remote.cpp index dc02554..047b19f 100644 --- a/src/control/Remote.cpp +++ b/src/control/Remote.cpp @@ -9,7 +9,7 @@ #include "PlayerInfo.h" #include "Vehicle.h" -CVehicle* +void CRemote::GivePlayerRemoteControlledCar(float x, float y, float z, float rot, uint16 model) { CAutomobile *car = new CAutomobile(model, MISSION_VEHICLE); @@ -40,7 +40,6 @@ CRemote::GivePlayerRemoteControlledCar(float x, float y, float z, float rot, uin TheCamera.SetZoomValueCamStringScript(0); } else TheCamera.TakeControl(car, CCam::MODE_BEHINDCAR, INTERPOLATION, CAMCONTROL_SCRIPT); - return car; } void diff --git a/src/control/Remote.h b/src/control/Remote.h index 4c40dd9..72cabb7 100644 --- a/src/control/Remote.h +++ b/src/control/Remote.h @@ -3,6 +3,6 @@ class CRemote { public: - static CVehicle* GivePlayerRemoteControlledCar(float, float, float, float, uint16); + static void GivePlayerRemoteControlledCar(float, float, float, float, uint16); static void TakeRemoteControlledCarFromPlayer(bool blowUp = true); }; diff --git a/src/control/Replay.cpp b/src/control/Replay.cpp index 6134578..cd612d5 100644 --- a/src/control/Replay.cpp +++ b/src/control/Replay.cpp @@ -1285,7 +1285,7 @@ void CReplay::TriggerPlayback(uint8 cam_mode, float cam_x, float cam_y, float ca DMAudio.SetEffectsFadeVol(0); DMAudio.SetMusicFadeVol(0); CEscalators::Shutdown(); - //CWaterCreatures::RemoveAll(); + CWaterCreatures::RemoveAll(); int current; for (current = 0; current < NUM_REPLAYBUFFERS; current++) if (BufferStatus[current] == REPLAYBUFFER_RECORD) diff --git a/src/control/Replay.h b/src/control/Replay.h index 98e0257..5dd8b65 100644 --- a/src/control/Replay.h +++ b/src/control/Replay.h @@ -46,7 +46,7 @@ enum { struct CStoredDetailedAnimationState { - uint16 aAnimId[NUM_MAIN_ANIMS_IN_REPLAY]; + uint8 aAnimId[NUM_MAIN_ANIMS_IN_REPLAY]; uint8 aCurTime[NUM_MAIN_ANIMS_IN_REPLAY]; uint8 aSpeed[NUM_MAIN_ANIMS_IN_REPLAY]; uint8 aBlendAmount[NUM_MAIN_ANIMS_IN_REPLAY]; @@ -54,7 +54,7 @@ struct CStoredDetailedAnimationState uint8 aFunctionCallbackID[NUM_MAIN_ANIMS_IN_REPLAY]; uint16 aFlags[NUM_MAIN_ANIMS_IN_REPLAY]; uint8 aGroupId[NUM_MAIN_ANIMS_IN_REPLAY]; - uint16 aAnimId2[NUM_PARTIAL_ANIMS_IN_REPLAY]; + uint8 aAnimId2[NUM_PARTIAL_ANIMS_IN_REPLAY]; uint8 aCurTime2[NUM_PARTIAL_ANIMS_IN_REPLAY]; uint8 aSpeed2[NUM_PARTIAL_ANIMS_IN_REPLAY]; uint8 aBlendAmount2[NUM_PARTIAL_ANIMS_IN_REPLAY]; diff --git a/src/control/Script.cpp b/src/control/Script.cpp index 1bf9415..cb20891 100644 --- a/src/control/Script.cpp +++ b/src/control/Script.cpp @@ -11,7 +11,6 @@ #include "CivilianPed.h" #include "Clock.h" #include "CopPed.h" -#include "Coronas.h" #include "Debug.h" #include "DMAudio.h" #include "EmergencyPed.h" @@ -50,19 +49,16 @@ #include "Timecycle.h" #include "TxdStore.h" #include "Bike.h" -#include "smallHeap.h" #ifdef USE_ADVANCED_SCRIPT_DEBUG_OUTPUT #include #endif -//--LCS: file done except TODOs and command table -uint8* CTheScripts::ScriptSpace; +uint8 CTheScripts::ScriptSpace[SIZE_SCRIPT_SPACE]; CRunningScript CTheScripts::ScriptsArray[MAX_NUM_SCRIPTS]; intro_text_line CTheScripts::IntroTextLines[MAX_NUM_INTRO_TEXT_LINES]; intro_script_rectangle CTheScripts::IntroRectangles[MAX_NUM_INTRO_RECTANGLES]; CSprite2d CTheScripts::ScriptSprites[MAX_NUM_SCRIPT_SRPITES]; script_sphere_struct CTheScripts::ScriptSphereArray[MAX_NUM_SCRIPT_SPHERES]; -tCollectiveData CTheScripts::CollectiveArray[MAX_NUM_COLLECTIVES]; tUsedObject CTheScripts::UsedObjectArray[MAX_NUM_USED_OBJECTS]; int32 CTheScripts::MultiScriptArray[MAX_NUM_MISSION_SCRIPTS]; tBuildingSwap CTheScripts::BuildingSwapArray[MAX_NUM_BUILDING_SWAPS]; @@ -98,19 +94,10 @@ uint32 CTheScripts::LastMissionPassedTime; uint16 CTheScripts::NumberOfExclusiveMissionScripts; bool CTheScripts::bPlayerHasMetDebbieHarry; bool CTheScripts::bPlayerIsInTheStatium; -int CTheScripts::AllowedCollision[MAX_ALLOWED_COLLISIONS]; -int CTheScripts::FSDestroyedFlag; -short* CTheScripts::SavedVarIndices; -int CTheScripts::NumSaveVars; -int gScriptsFile = -1; -int CTheScripts::NextProcessId = 1; -bool CTheScripts::InTheScripts; -CRunningScript* pCurrent; -uint16 CTheScripts::NumTrueGlobals; -uint16 CTheScripts::MostGlobals; -CVector gVectorSetInLua; -int CTheScripts::NextScriptCoronaID; -base::cSList CTheScripts::mCoronas; +#if (defined GTA_PC && !defined GTAVC_JP_PATCH || defined GTA_XBOX || defined SUPPORT_XBOX_SCRIPT || defined GTA_MOBILE || defined SUPPORT_MOBILE_SCRIPT) +int16 CTheScripts::CardStack[CARDS_IN_DECK * MAX_DECKS]; +int16 CTheScripts::CardStackPosition; +#endif #ifdef MISSION_REPLAY @@ -367,11 +354,6 @@ const tScriptCommandData commands[] = { REGISTER_COMMAND(COMMAND_WHILE, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), REGISTER_COMMAND(COMMAND_WHILENOT, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), REGISTER_COMMAND(COMMAND_ENDWHILE, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_214, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_215, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_216, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_217, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_218, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), REGISTER_COMMAND(COMMAND_ANDOR, INPUT_ARGUMENTS(ARGTYPE_ANDOR,), OUTPUT_ARGUMENTS(), false, -1, ""), REGISTER_COMMAND(COMMAND_LAUNCH_MISSION, INPUT_ARGUMENTS(ARGTYPE_LABEL,), OUTPUT_ARGUMENTS(), false, -1, ""), REGISTER_COMMAND(COMMAND_MISSION_HAS_FINISHED, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), @@ -426,7 +408,7 @@ const tScriptCommandData commands[] = { REGISTER_COMMAND(COMMAND_ADD_SCORE, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), REGISTER_COMMAND(COMMAND_IS_SCORE_GREATER, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""), REGISTER_COMMAND(COMMAND_STORE_SCORE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(ARGTYPE_INT, ), false, -1, ""), - REGISTER_COMMAND(COMMAND_GIVE_REMOTE_CONTROLLED_CAR_TO_PLAYER, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(ARGTYPE_INT, ), false, -1, ""), + REGISTER_COMMAND(COMMAND_GIVE_REMOTE_CONTROLLED_CAR_TO_PLAYER, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""), REGISTER_COMMAND(COMMAND_ALTER_WANTED_LEVEL, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), REGISTER_COMMAND(COMMAND_ALTER_WANTED_LEVEL_NO_DROP, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), REGISTER_COMMAND(COMMAND_IS_WANTED_LEVEL_GREATER, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""), @@ -1234,7 +1216,7 @@ const tScriptCommandData commands[] = { REGISTER_COMMAND(COMMAND_IS_CAR_PASSENGER_SEAT_FREE, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""), REGISTER_COMMAND(COMMAND_GET_CHAR_IN_CAR_PASSENGER_SEAT, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(ARGTYPE_INT, ), false, -1, ""), REGISTER_COMMAND(COMMAND_SET_CHAR_IS_CHRIS_CRIMINAL, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_START_CREDITS, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), + REGISTER_COMMAND(COMMAND_START_CREDITS, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), REGISTER_COMMAND(COMMAND_STOP_CREDITS, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), REGISTER_COMMAND(COMMAND_ARE_CREDITS_FINISHED, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""), REGISTER_COMMAND(COMMAND_CREATE_SINGLE_PARTICLE, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""), @@ -1322,7 +1304,7 @@ const tScriptCommandData commands[] = { REGISTER_COMMAND(COMMAND_SHUT_CHAR_UP, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), REGISTER_COMMAND(COMMAND_SET_ENABLE_RC_DETONATE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), REGISTER_COMMAND(COMMAND_SET_CAR_RANDOM_ROUTE_SEED, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_IS_ANY_PICKUP_AT_COORDS, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), true, -1, ""), + REGISTER_COMMAND(COMMAND_IS_ANY_PICKUP_AT_COORDS, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), true, -1, ""), REGISTER_COMMAND(COMMAND_GET_FIRST_PICKUP_COORDS, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), false, -1, ""), REGISTER_COMMAND(COMMAND_GET_NEXT_PICKUP_COORDS, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), false, -1, ""), REGISTER_COMMAND(COMMAND_REMOVE_ALL_CHAR_WEAPONS, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), @@ -1594,222 +1576,39 @@ const tScriptCommandData commands[] = { REGISTER_COMMAND(COMMAND_REGISTER_FIRE_LEVEL, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), REGISTER_COMMAND(COMMAND_IS_AUSTRALIAN_GAME, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""), REGISTER_COMMAND(COMMAND_DISARM_CAR_BOMB, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), +#if (defined GTAVC_JP_PATCH || defined SUPPORT_JAPANESE_SCRIPT) REGISTER_COMMAND(COMMAND_IS_JAPANESE_GAME, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""), - REGISTER_COMMAND(COMMAND_1442, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_1443, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_GET_DISTANCE_BETWEEN_2D_POINTS, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(ARGTYPE_FLOAT, ), false, -1, ""), - REGISTER_COMMAND(COMMAND_GET_DISTANCE_BETWEEN_3D_POINTS, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(ARGTYPE_FLOAT, ), false, -1, ""), - REGISTER_COMMAND(COMMAND_DOT_PRODUCT_2D, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(ARGTYPE_FLOAT, ), false, -1, ""), - REGISTER_COMMAND(COMMAND_DOT_PRODUCT_3D, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(ARGTYPE_FLOAT, ), false, -1, ""), - REGISTER_COMMAND(COMMAND_DEBUG_PRINT_WITH_1_FLOAT, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_DEBUG_PRINT_WITH_2_FLOATS, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_DEBUG_PRINT_WITH_3_FLOATS, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_GET_PAD_BUTTON_STATE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(ARGTYPE_INT, ), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_NAVIGATION_ARROW, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_CLEAR_NAVIGATION_ARROW, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_CALL, INPUT_ARGUMENTS(ARGTYPE_FUNCTION, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_CALLNOT, INPUT_ARGUMENTS(ARGTYPE_FUNCTION, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_IS_CAR_AUTOMOBILE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""), - REGISTER_COMMAND(COMMAND_IS_CAR_BIKE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""), - REGISTER_COMMAND(COMMAND_IS_CAR_PLANE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""), - REGISTER_COMMAND(COMMAND_IS_CAR_HELI, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""), - REGISTER_COMMAND(COMMAND_1460, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_1461, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_1462, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_1463, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_1464, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_1465, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_1466, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_1467, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_1468, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_1469, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_1470, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_1471, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_1472, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_1473, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_1474, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_1475, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_1476, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_RETURN_IF_TRUE, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_RETURN_TRUE_IF_TRUE, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_CHAR_ONLY_ALLOWED_TO_SIT_BEHIND, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_RC_HELI_HEIGHT_LIMIT, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_CREATE_SCRIPT_CORONA, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REMOVE_SCRIPT_CORONA, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_IS_BOAT_IN_WATER, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""), - REGISTER_COMMAND(COMMAND_IS_CAR_DRIVER_BEING_JACKED, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""), - REGISTER_COMMAND(COMMAND_SET_CHAR_ONLY_ALLOWED_TO_SIT_IN_FRONT, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_CAR_TILTED_BY_CHAR, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_GET_WEAPON_TYPE_FOR_PICKUP_IN_AREA, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(ARGTYPE_INT, ), false, -1, ""), - REGISTER_COMMAND(COMMAND_IS_PLAYER_USING_FIRST_PERSON_WEAPON_CAMERA, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""), - REGISTER_COMMAND(COMMAND_1489, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_1490, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_1491, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_DEBUG_MENU_ACTIVE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_DRAW_HUD, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_GET_RANDOM_CHAR_IN_AREA_NO_CHECKS, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_GET_RANDOM_CAR_IN_AREA_NO_CHECKS_NO_SAVE, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_STORE_CAR_COLLIDED_WITH_NO_SAVE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(ARGTYPE_INT, ), false, -1, ""), - REGISTER_COMMAND(COMMAND_DISABLE_FERRY_PATH, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_ENABLE_FERRY_PATH, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_GET_CLOSEST_DOCKED_FERRY, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(ARGTYPE_INT, ), false, -1, ""), - REGISTER_COMMAND(COMMAND_OPEN_FERRY_DOOR, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_CLOSE_FERRY_DOOR, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_IS_FERRY_DOOR_OPEN, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""), - REGISTER_COMMAND(COMMAND_IS_FERRY_DOOR_CLOSED, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""), - REGISTER_COMMAND(COMMAND_SKIP_FERRY_TO_NEXT_DOCK, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_CHAR_DROPS_WEAPONS_ON_DEATH, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_IS_CHAR_CROUCHING, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""), - REGISTER_COMMAND(COMMAND_GET_FERRY_BOARDING_SPACE, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), false, -1, ""), - REGISTER_COMMAND(COMMAND_GET_FERRY_HEADING, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(ARGTYPE_FLOAT, ), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_FERRIES_ENABLED, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_COMPLETE_FERRY_DOOR_MOVEMENT, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_OVERRIDE_CAR_REMOTE_CONTROL, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_CANCEL_REMOTE_MODE, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_CAR_SOLD, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_ADD_MONEY_MADE_WITH_CAR_SALES, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_BRIDGE_STATE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_OBJECT_TURN_SPEED, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_OBJECT_MASS, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_HAS_CUTSCENE_LOADED, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""), - REGISTER_COMMAND(COMMAND_SET_UNIQUE_JUMPS_FOUND, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_HIDDEN_PACKAGES_COLLECTED, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_BIKE_SOLD, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_ADD_MONEY_MADE_WITH_BIKE_SALES, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_PACKAGE_SMUGGLED, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_SMUGGLER_WASTED, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_FASTEST_SMUGGLING_TIME, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_CHAR_DIVE_FROM_CAR, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_WRECK_CAR, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_ADD_MONEY_MADE_IN_COACH, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_ADD_MONEY_MADE_COLLECTING_TRASH, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_HITMAN_KILLED, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_GUARDIAN_ANGEL_MISSION_PASSED, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_HIGHEST_GUARDIAN_ANGEL_JUSTICE_DISHED, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_BEST_BANDIT_LAP_TIME, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_BEST_BANDIT_POSITION, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_MOST_TIME_LEFT_TRAIN_RACE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_HIGHEST_TRAIN_CASH_EARNED, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_FASTEST_HELI_RACE_TIME, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_BEST_HELI_RACE_POSITION, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_OUTFIT_CHANGE, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_STREET_RACE_FASTEST_TIME, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_STREET_RACE_FASTEST_LAP, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_STREET_RACE_BEST_POSITION, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_HAS_OBJECT_BEEN_DAMAGED_BY_WEAPON, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""), - REGISTER_COMMAND(COMMAND_CLEAR_OBJECT_LAST_WEAPON_DAMAGE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_CAR_TURN_SPEED, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_CAR_MOVE_SPEED, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_OBJECT_PROOFS, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_GET_CAMERA_PED_ZOOM_INDICATOR, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(ARGTYPE_INT, ), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_CAMERA_PED_ZOOM_INDICATOR, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_GET_CAR_ORIENTATION, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_CAR_ORIENTATION, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_IS_DEBUG_MENU_ON, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""), - REGISTER_COMMAND(COMMAND_OPEN_VAN_BACK_DOORS, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_GET_CHAR_THREAT_CHAR, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(ARGTYPE_INT, ), false, -1, ""), - REGISTER_COMMAND(COMMAND_FREEZE_PED_ZOOM_SWITCH, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_OBJECT_RENDERED_DAMAGED, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_GET_RANDOM_CAR_IN_AREA_NO_SAVE, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(ARGTYPE_INT, ), false, -1, ""), - REGISTER_COMMAND(COMMAND_IS_PLAYER_MADE_SAFE, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""), - REGISTER_COMMAND(COMMAND_PRINT_IF_FREE, INPUT_ARGUMENTS(ARGTYPE_STRING, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_IS_E3_BUILD, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""), - REGISTER_COMMAND(COMMAND_DECLARE_FORT_STAUNTON_DESTROYED_FLAG, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_CLEAR_BIG_MESSAGES, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_CLEAR_AREA_OF_OBJECTS, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_LOAD_NON_STANDARD_PED_ANIM, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_UNLOAD_NON_STANDARD_PED_ANIM, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_1566, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_BUILD_WORLD_GEOMETRY, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_STORE_BUILDING_SWAP, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_IS_MULTIPLAYER_ACTIVE, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""), - REGISTER_COMMAND(COMMAND_GET_MULTIPLAYER_MODE, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(ARGTYPE_INT, ), false, -1, ""), - REGISTER_COMMAND(COMMAND_MULTIPLAYER_SCRIPT_DONE, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""), - REGISTER_COMMAND(COMMAND_IS_MULTIPLAYER_SERVER, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""), - REGISTER_COMMAND(COMMAND_IS_MULTIPLAYER_TEAM_GAME, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""), - REGISTER_COMMAND(COMMAND_GET_MULTIPLAYER_TEAM_ID, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(ARGTYPE_INT, ), false, -1, ""), - REGISTER_COMMAND(COMMAND_DOES_SHORTCUT_TAXI_EXIST, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""), - REGISTER_COMMAND(COMMAND_SET_ONSCREEN_TIMER_COLOUR, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_ONSCREEN_TIMER_BACKGROUND_COLOUR, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REMOVE_CAR_BOOT, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_ADD_POINT_3D_MARKER, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_GET_VECTOR_FROM_MULTIPLAYER, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), false, -1, ""), - REGISTER_COMMAND(COMMAND_PRINT_HELP_ALWAYS, INPUT_ARGUMENTS(ARGTYPE_STRING, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_PRINT_HELP_FOREVER_ALWAYS, INPUT_ARGUMENTS(ARGTYPE_STRING, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SWITCH_FERRY_COLLISION, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_CHAR_MAX_HEALTH, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_CHAR_SHOOT_TIMER, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_CHAR_ATTACK_TIMER, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_HELI_ROTOR_BLADES_FULLSPEED, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_CRUSHER_REWARD_MULTIPLIER, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SWAP_BUILDINGS, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_STREAM_BUILDING_SWAPS, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""), - REGISTER_COMMAND(COMMAND_IS_WORLD_STREAMING_COMPLETE, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""), - REGISTER_COMMAND(COMMAND_SWAP_TO_STREAMED_SECTOR, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_CHAR_ATTACKS_PLAYER_WITH_COPS, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_FACE_PLANT_DISTANCE, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_MAX_SECONDS_ON_CARNAGE_LEFT, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_MAX_KILLS_ON_RC_TRIAD, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_HIGHEST_LEVEL_SLASH_TV, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_ADD_MONEY_MADE_WITH_SLASH_TV, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_ADD_TOTAL_KILLS_ON_SLASH_TV, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_ADD_NOODLES_DELIVERED, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_SCRAPYARD_CHALLENGE_SCORE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_9MM_MAYHEM_SCORE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_SCOOTER_SHOOTER_SCORE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_ADD_MONEY_MADE_FROM_TOURIST, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_ADD_TOURISTS_TAKEN_TO_SPOTS, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_ADD_EXPORTED_CARS, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_TOTAL_EXPORT_CARS, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_DIRT_BIKE_FASTEST_LAP, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_DIRT_BIKE_FASTEST_TIME, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_DIRT_BIKE_AIR_TIME, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_ADD_ARROW_3D_MARKER, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_PRINT_NOW_OVERRIDE_FADE, INPUT_ARGUMENTS(ARGTYPE_STRING, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_GET_PICKUP_VALUE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(ARGTYPE_INT, ), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_PICKUP_VALUE, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_IS_DEVELOPER, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""), - REGISTER_COMMAND(COMMAND_SET_DEVELOPER_FLAG, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_WICHITA_WIPEOUT_SCORE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_ATTACH_OBJECT_TO_CAR, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_DETACH_OBJECT_FROM_CAR, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_PAD_STICKS_MULTIPLIER, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_PRINT_SUBTITLE_NOW, INPUT_ARGUMENTS(ARGTYPE_STRING, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_PRINT_SUBTITLE_NOW_OVERRIDE_FADE, INPUT_ARGUMENTS(ARGTYPE_STRING, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_PRINT_SUBTITLE_NOW_NO_BRIEF, INPUT_ARGUMENTS(ARGTYPE_STRING, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_PRINT_WITH_NUMBER_NOW_NO_BRIEF, INPUT_ARGUMENTS(ARGTYPE_STRING, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_GET_ANGLE_BETWEEN_POINTS, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(ARGTYPE_FLOAT, ), false, -1, ""), - REGISTER_COMMAND(COMMAND_OVERRIDE_CHAR_MOVE_ANIM, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_1627, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_ENABLE_EMERGENCY_VEHICLES, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_ADD_UNLOCKED_COSTUME, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_CLEAR_MULTIPLAYER_SPLASH_SCREEN, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_PRINT_WITH_2_NUMBERS_NOW_NO_BRIEF, INPUT_ARGUMENTS(ARGTYPE_STRING, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_GET_OBJECT_ORIENTATION, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_OBJECT_ORIENTATION, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_CHANGE_ONSCREEN_COUNTER_PREFIX, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_STORE_PLAYER_OUTFIT, INPUT_ARGUMENTS(ARGTYPE_STRING, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_DISPLAY_ONSCREEN_TIMER_WITH_NUMBER_AND_STRING, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_STRING, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_PLAYER_CURRENT_WEAPON_AMMO_IN_CLIP, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_CHAR_WAIT_STATE_REPEAT, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_BEST_TIME_GOGO_FAGGIO, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_LOCK_GARAGE, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_IS_FINAL_GAME, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""), - REGISTER_COMMAND(COMMAND_SET_ALLOWED_COLLISION, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_REGISTER_GUARDIAN_ANGEL_LEVEL, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_DISPLAY_ONSCREEN_TIMER_WITH_NUMBER_AND_2_STRINGS, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_STRING, ARGTYPE_STRING, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_GET_PLAYER_STORED_WEAPON, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(ARGTYPE_INT, ), false, -1, ""), - REGISTER_COMMAND(COMMAND_DISABLE_PAUSE_MENU, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_IS_CHANNEL_PLAYING, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""), - REGISTER_COMMAND(COMMAND_SET_CLOCK_EVENT_WARNING, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_EXTRA_COLOUR_LIGHT_DIRECTION, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_CHAR_CAN_BE_TARGETTED_BY_LEADER, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_PRINT_HELP_NO_BRIEF, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_PRINT_HELP_FOREVER_NO_BRIEF, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_PRINT_HELP_ALWAYS_NO_BRIEF, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_PRINT_HELP_FOREVER_ALWAYS_NO_BRIEF, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_SET_CAR_IS_REWARD, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), - REGISTER_COMMAND(COMMAND_FREEZE_ALL_PLAYER_FOLLOWERS, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), +#elif (!defined GTA_PS2) + REGISTER_COMMAND(COMMAND_SET_ONSCREEN_COUNTER_FLASH_WHEN_FIRST_DISPLAYED, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), +#endif +#if (defined GTA_PC && !defined GTAVC_JP_PATCH || defined GTA_XBOX || defined SUPPORT_XBOX_SCRIPT || defined GTA_MOBILE || defined SUPPORT_MOBILE_SCRIPT) + REGISTER_COMMAND(COMMAND_SHUFFLE_CARD_DECKS, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), + REGISTER_COMMAND(COMMAND_FETCH_NEXT_CARD, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(ARGTYPE_INT, ), false, -1, ""), + REGISTER_COMMAND(COMMAND_GET_OBJECT_VELOCITY, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), false, -1, ""), + REGISTER_COMMAND(COMMAND_IS_DEBUG_CAMERA_ON, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""), + REGISTER_COMMAND(COMMAND_ADD_TO_OBJECT_ROTATION_VELOCITY, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""), + REGISTER_COMMAND(COMMAND_SET_OBJECT_ROTATION_VELOCITY, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""), + REGISTER_COMMAND(COMMAND_IS_OBJECT_STATIC, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""), + REGISTER_COMMAND(COMMAND_GET_ANGLE_BETWEEN_2D_VECTORS, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(ARGTYPE_FLOAT, ), false, -1, ""), + REGISTER_COMMAND(COMMAND_DO_2D_RECTANGLES_COLLIDE, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), true, -1, ""), + REGISTER_COMMAND(COMMAND_GET_OBJECT_ROTATION_VELOCITY, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), false, -1, ""), + REGISTER_COMMAND(COMMAND_ADD_VELOCITY_RELATIVE_TO_OBJECT_VELOCITY, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""), + REGISTER_COMMAND(COMMAND_GET_OBJECT_SPEED, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(ARGTYPE_FLOAT, ), false, -1, ""), +#endif +#if (defined GTA_XBOX || defined SUPPORT_XBOX_SCRIPT) + REGISTER_COMMAND(COMMAND_MARK_CUTSCENE_START, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), + REGISTER_COMMAND(COMMAND_MARK_CUTSCENE_END, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), + REGISTER_COMMAND(COMMAND_CUTSCENE_SCROLL, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), +#elif (defined GTA_MOBILE || defined SUPPORT_MOBILE_SCRIPT) + REGISTER_COMMAND(COMMAND_IS_MISSION_SKIP, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(ARGTYPE_INT, ), false, -1, ""), + REGISTER_COMMAND(COMMAND_SET_IN_AMMUNATION, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), + REGISTER_COMMAND(COMMAND_DO_SAVE_GAME, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""), + REGISTER_COMMAND(COMMAND_IS_RETRY, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(ARGTYPE_INT, ), false, -1, ""), + REGISTER_COMMAND(COMMAND_DUMMY, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), + REGISTER_COMMAND(COMMAND_MARK_CUTSCENE_START, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), + REGISTER_COMMAND(COMMAND_MARK_CUTSCENE_END, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), + REGISTER_COMMAND(COMMAND_CUTSCENE_SCROLL, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""), +#endif }; #undef REGISTER_COMMAND #undef INPUT_ARGUMENTS @@ -1882,23 +1681,6 @@ cleanup_entity_struct* CMissionCleanup::FindFree() return nil; } -void SleepThisPed(cleanup_entity_struct* pCleanup, CPed* pPed) -{ - printf("*** SLEEPING PED %i %i\n", pCleanup->id, pPed->GetModelIndex()); - if (!pPed->GetIsStatic()) - pPed->RemoveFromMovingList(); - pPed->bIsStaticWaitingForCollision = true; -} - -void WakeThisPed(cleanup_entity_struct* pCleanup, CPed* pPed) -{ - printf("*** WAKING UP PED %i %i\n", pCleanup->id, pPed->GetModelIndex()); - pPed->bIsStaticWaitingForCollision = false; - if (!pPed->bIsStatic) - pPed->AddToMovingList(); - -} - void CMissionCleanup::AddEntityToList(int32 id, uint8 type) { cleanup_entity_struct* pNew = FindFree(); @@ -1968,100 +1750,46 @@ void CMissionCleanup::CheckIfCollisionHasLoadedForMissionObjects() { CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(m_sEntities[i].id); if (pVehicle) { - eLevelName level = CTheZones::GetLevelFromPosition(&pVehicle->GetPosition()); - if (level == LEVEL_GENERIC) - level = CGame::currLevel; - if (!CColStore::HasCollisionLoaded(level)) { - if (!pVehicle->bIsStaticWaitingForCollision) { - if (!pVehicle->IsHeli() && !pVehicle->IsPlane() && pVehicle->GetVehicleAppearance() == VEHICLE_APPEARANCE_HELI && - pVehicle->GetVehicleAppearance() == VEHICLE_APPEARANCE_BOAT && pVehicle->GetVehicleAppearance() == VEHICLE_APPEARANCE_PLANE) { - printf("*** SLEEPING VEHICLE %i %i\n", m_sEntities[i].id, pVehicle->GetModelIndex()); - if (!pVehicle->GetIsStatic()) - pVehicle->RemoveFromMovingList(); - pVehicle->bIsStaticWaitingForCollision = true; - } - } - } - else { - if (pVehicle->bIsStaticWaitingForCollision) { - printf("*** WAKING UP VEHICLE %i %i\n", m_sEntities[i].id, pVehicle->GetModelIndex()); + if (pVehicle->bIsStaticWaitingForCollision) { + if (CColStore::HasCollisionLoaded(pVehicle->GetPosition())) { pVehicle->bIsStaticWaitingForCollision = false; - if (!pVehicle->bIsStatic) - pVehicle->AddToMovingList(); + if (!pVehicle->GetIsStatic()) + pVehicle->AddToMovingList(); } } } + break; } - break; - case CLEANUP_OBJECT: - CObject* pObject = CPools::GetObjectPool()->GetAt(m_sEntities[i].id); - if (pObject) { - eLevelName level = CTheZones::GetLevelFromPosition(&pObject->GetPosition()); - if (level == LEVEL_GENERIC) - level = CGame::currLevel; - if (!CColStore::HasCollisionLoaded(level)) { - if (!pObject->bIsStaticWaitingForCollision) { - if (!pObject->GetIsStatic()) - pObject->RemoveFromMovingList(); - pObject->bIsStaticWaitingForCollision = true; - } - } - else { - if (pObject->bIsStaticWaitingForCollision) { - pObject->bIsStaticWaitingForCollision = false; - if (!pObject->bIsStatic) - pObject->AddToMovingList(); - } - } - } - } - } - for (int i = 0; i < MAX_CLEANUP; i++) { - switch (m_sEntities[i].type) { case CLEANUP_CHAR: { CPed* pPed = CPools::GetPedPool()->GetAt(m_sEntities[i].id); if (pPed) { - eLevelName level = CTheZones::GetLevelFromPosition(&pPed->GetPosition()); - if (level == LEVEL_GENERIC) - level = CGame::currLevel; - if (!pPed->bIsStaticWaitingForCollision) { - if (pPed->bInVehicle) { - if (pPed->m_pMyVehicle->GetIsStatic()) { - SleepThisPed(&m_sEntities[i], pPed); - continue; - } - } - if (!CColStore::HasCollisionLoaded(level)) { - if (pPed->bInVehicle && pPed->m_pMyVehicle->GetIsStatic() || - pPed->m_attachedTo && pPed->m_attachedTo->GetIsStatic()) - SleepThisPed(&m_sEntities[i], pPed); + if (pPed->bIsStaticWaitingForCollision) { + if (CColStore::HasCollisionLoaded(pPed->GetPosition())) { + pPed->bIsStaticWaitingForCollision = false; + if (!pPed->GetIsStatic()) + pPed->AddToMovingList(); } } - else { - if (!pPed->bInVehicle) { - if (CColStore::HasCollisionLoaded(level)) { - if (!(pPed->bInVehicle && pPed->m_pMyVehicle->GetIsStatic() || - pPed->m_attachedTo && pPed->m_attachedTo->GetIsStatic())) - WakeThisPed(&m_sEntities[i], pPed); - } - } - else { - if (!pPed->m_pMyVehicle->GetIsStatic()) { - WakeThisPed(&m_sEntities[i], pPed); - continue; - } - if (CColStore::HasCollisionLoaded(level)) { - if (!(pPed->bInVehicle && pPed->m_pMyVehicle->GetIsStatic() || - pPed->m_attachedTo && pPed->m_attachedTo->GetIsStatic())) - WakeThisPed(&m_sEntities[i], pPed); - } - } - } - } + break; } - break; + case CLEANUP_OBJECT: + { + CObject* pObject = CPools::GetObjectPool()->GetAt(m_sEntities[i].id); + if (pObject) { + if (pObject->bIsStaticWaitingForCollision) { + if (CColStore::HasCollisionLoaded(pObject->GetPosition())) { + pObject->bIsStaticWaitingForCollision = false; + if (!pObject->GetIsStatic()) + pObject->AddToMovingList(); + } + } + } + break; + } + default: + break; } } } @@ -2073,8 +1801,6 @@ void CMissionCleanup::Process() CCarCtrl::CarDensityMultiplier = 1.0f; CPed::nThreatReactionRangeMultiplier = 1; CPed::nEnterCarRangeMultiplier = 1; - for (int i = 0; i < MAX_ALLOWED_COLLISIONS; i++) - CTheScripts::AllowedCollision[i] = 0; FindPlayerPed()->m_pWanted->m_fCrimeSensitivity = 1.0f; CRoadBlocks::ClearScriptRoadBlocks(); CRouteNode::Initialise(); @@ -2082,19 +1808,20 @@ void CMissionCleanup::Process() TheCamera.Restore(); TheCamera.SetWideScreenOff(); CSpecialFX::bLiftCam = false; - // TODO(LCS): CHud::m_ClockEventWarningMinutes = 0; - // TODO(LCS): CHud::m_ClockEventFlashTimer = 0; - CTimeCycle::StopExtraColour(0); // TODO: thiscall + CSpecialFX::bVideoCam = false; + CTimeCycle::StopExtraColour(0); for (int i = 0; i < MISSION_AUDIO_SLOTS; i++) DMAudio.ClearMissionAudio(i); CWeather::ReleaseWeather(); for (int i = 0; i < NUM_OF_SPECIAL_CHARS; i++) CStreaming::SetMissionDoesntRequireSpecialChar(i); + for (int i = 0; i < NUM_OF_CUTSCENE_OBJECTS; i++) + CStreaming::SetMissionDoesntRequireModel(MI_CUTOBJ01 + i); CStreaming::ms_disableStreaming = false; - if (CHud::m_ItemToFlash != ITEM_ARMOUR && CHud::m_ItemToFlash != ITEM_HEALTH) - CHud::m_ItemToFlash = -1; - CHud::SetHelpMessage(nil, false); // nil, false, false, true TODO(LCS) + CHud::m_ItemToFlash = -1; + CHud::SetHelpMessage(nil, false); CUserDisplay::OnscnTimer.m_bDisabled = false; + CTheScripts::RemoveScriptTextureDictionary(); CWorld::Players[0].m_pPed->m_pWanted->m_bIgnoredByCops = false; CWorld::Players[0].m_pPed->m_pWanted->m_bIgnoredByEveryone = false; CWorld::Players[0].MakePlayerSafe(false); @@ -2102,11 +1829,10 @@ void CMissionCleanup::Process() CWorld::Players[0].m_pPed->m_nDrunkCountdown = 0; CPad::GetPad(0)->SetDrunkInputDelay(0); CWorld::Players[0].m_bDriveByAllowed = true; - CPad::GetPad(0)->unk_B4 = 1.0f; - CPad::GetPad(0)->unk_B8 = 0.5f; DMAudio.ShutUpPlayerTalking(0); CVehicle::bDisableRemoteDetonation = false; CVehicle::bDisableRemoteDetonationOnContact = false; + CGameLogic::ClearShortCut(); CTheScripts::RiotIntensity = 0; CTheScripts::StoreVehicleIndex = -1; CTheScripts::StoreVehicleWasRandom = true; @@ -2142,10 +1868,6 @@ void CMissionCleanup::Process() } RemoveEntityFromList(m_sEntities[i].id, m_sEntities[i].type); } - for (int i = 1; i < NUMSTREAMINFO; i++) { - if (CStreaming::IsScriptOwnedModel(i)) - CStreaming::SetMissionDoesntRequireModel(i); - } #ifdef SECUROM if ((myrand() & 3) == 2){ // if pirated game @@ -2174,7 +1896,7 @@ bool CUpsideDownCarCheck::IsCarUpsideDown(int32 id) bool CUpsideDownCarCheck::IsCarUpsideDown(CVehicle* pVehicle) { - script_assert(pVehicle); + assert(pVehicle); return pVehicle->GetUp().z <= UPSIDEDOWN_UP_THRESHOLD && pVehicle->GetMoveSpeed().Magnitude() < UPSIDEDOWN_MOVE_SPEED_THRESHOLD && pVehicle->GetTurnSpeed().Magnitude() < UPSIDEDOWN_TURN_SPEED_THRESHOLD; @@ -2313,157 +2035,109 @@ bool CStuckCarCheck::HasCarBeenStuckForAWhile(int32 id) return false; } -void CRunningScript::CollectParameters(uint32* pIp, int16 total, int* pParameters) +void CRunningScript::CollectParameters(uint32* pIp, int16 total) { - while (total--){ + for (int16 i = 0; i < total; i++){ + uint16 varIndex; switch (CTheScripts::Read1ByteFromScript(pIp)) { - case ARGUMENT_END: - return; - case ARGUMENT_INT_ZERO: - *pParameters = 0; - break; - case ARGUMENT_FLOAT_ZERO: - *pParameters = 0; - break; - case ARGUMENT_FLOAT_1BYTE: - *pParameters = (uint32)(uint8)CTheScripts::Read1ByteFromScript(pIp) << 24; - break; - case ARGUMENT_FLOAT_2BYTES: - *pParameters = (uint32)(uint16)CTheScripts::Read2BytesFromScript(pIp) << 16; - break; - case ARGUMENT_FLOAT_3BYTES: - *pParameters = (uint32)(uint8)CTheScripts::Read1ByteFromScript(pIp) << 8; - *pParameters |= (uint32)(uint16)CTheScripts::Read2BytesFromScript(pIp) << 16; - break; case ARGUMENT_INT32: case ARGUMENT_FLOAT: - *pParameters = CTheScripts::Read4BytesFromScript(pIp); + ScriptParams[i] = CTheScripts::Read4BytesFromScript(pIp); + break; + case ARGUMENT_GLOBALVAR: + varIndex = CTheScripts::Read2BytesFromScript(pIp); + script_assert(varIndex >= 8 && varIndex < CTheScripts::GetSizeOfVariableSpace()); + ScriptParams[i] = *((int32*)&CTheScripts::ScriptSpace[varIndex]); + break; + case ARGUMENT_LOCALVAR: + varIndex = CTheScripts::Read2BytesFromScript(pIp); + script_assert(varIndex >= 0 && varIndex < ARRAY_SIZE(m_anLocalVariables)); + ScriptParams[i] = m_anLocalVariables[varIndex]; break; case ARGUMENT_INT8: - *pParameters = CTheScripts::Read1ByteFromScript(pIp); + ScriptParams[i] = CTheScripts::Read1ByteFromScript(pIp); break; case ARGUMENT_INT16: - *pParameters = CTheScripts::Read2BytesFromScript(pIp); + ScriptParams[i] = CTheScripts::Read2BytesFromScript(pIp); break; default: - *pIp -= 1; - *pParameters = *GetPointerToScriptVariable(pIp, 0); + script_assert(0); break; } - pParameters++; } } #ifdef USE_ADVANCED_SCRIPT_DEBUG_OUTPUT -int32* GetPointerToScriptVariableForDebug(CRunningScript* pScript, uint32* pIp, char* buf) -{ - char tmpstr[24]; - uint8 type = CTheScripts::Read1ByteFromScript(pIp); - if (type >= ARGUMENT_GLOBAL_ARRAY) { - uint8 index_in_block = CTheScripts::Read1ByteFromScript(pIp); - uint8 index_id = CTheScripts::Read1ByteFromScript(pIp); - uint8 size = CTheScripts::Read1ByteFromScript(pIp); - script_assert(size > 0); - script_assert(pScript->m_anLocalVariables[pScript->m_nLocalsPointer + index_id] < size); - uint8 index = Min(pScript->m_anLocalVariables[pScript->m_nLocalsPointer + index_id], size - 1); - sprintf(tmpstr, " $%d[%d@ (%d)]", ((int)(type - ARGUMENT_GLOBAL_ARRAY) << 8) + index_in_block, index_id, pScript->m_anLocalVariables[pScript->m_nLocalsPointer + index_id]); - strcat(buf, tmpstr); - return (int32*)&CTheScripts::ScriptSpace[4 * (((int)(type - ARGUMENT_GLOBAL_ARRAY) << 8) + index + index_in_block)]; - } - else if (type >= ARGUMENT_GLOBAL) { - uint8 index_in_block = CTheScripts::Read1ByteFromScript(pIp); - sprintf(tmpstr, " $%d", ((int)(type - ARGUMENT_GLOBAL) << 8) + index_in_block); - strcat(buf, tmpstr); - return (int32*)&CTheScripts::ScriptSpace[4 * (((int)(type - ARGUMENT_GLOBAL) << 8) + index_in_block)]; - } - else if (type >= ARGUMENT_LOCAL_ARRAY) { - uint8 index_id = CTheScripts::Read1ByteFromScript(pIp); - uint8 size = CTheScripts::Read1ByteFromScript(pIp); - script_assert(size > 0); - script_assert(pScript->m_anLocalVariables[pScript->m_nLocalsPointer + index_id] < size); - uint8 index = Min(pScript->m_anLocalVariables[pScript->m_nLocalsPointer + index_id], size - 1); - sprintf(tmpstr, " %d@[%d@ (%d)]", (type - ARGUMENT_LOCAL_ARRAY), index_id, pScript->m_anLocalVariables[pScript->m_nLocalsPointer + index_id]); - strcat(buf, tmpstr); - return &pScript->m_anLocalVariables[pScript->m_nLocalsPointer + (type - ARGUMENT_LOCAL_ARRAY) + index]; - } - else if (type >= ARGUMENT_LOCAL) { - sprintf(tmpstr, " %d@", (type - ARGUMENT_LOCAL)); - strcat(buf, tmpstr); - return &pScript->m_anLocalVariables[pScript->m_nLocalsPointer + (type - ARGUMENT_LOCAL)]; - } - else if (type >= ARGUMENT_TIMER) { - sprintf(tmpstr, " TIMER%d@", (type - ARGUMENT_TIMER)); - strcat(buf, tmpstr); - return &pScript->m_anLocalVariables[NUM_LOCAL_VARS + 8 + (type - ARGUMENT_TIMER)]; // why 8? - } - script_assert(false && "wrong type for variable"); - return nil; -} - int CRunningScript::CollectParameterForDebug(char* buf, bool& var) { + uint16 varIndex; + char tmpstr[24]; var = false; - int tmp; switch (CTheScripts::Read1ByteFromScript(&m_nIp)) { - case ARGUMENT_END: - return 0; // TODO(LCS) - case ARGUMENT_INT_ZERO: - return 0; - case ARGUMENT_FLOAT_ZERO: - return 0; - case ARGUMENT_FLOAT_1BYTE: - return (uint32)(uint8)CTheScripts::Read1ByteFromScript(&m_nIp) << 24; - case ARGUMENT_FLOAT_2BYTES: - return (uint32)(uint16)CTheScripts::Read2BytesFromScript(&m_nIp) << 16; - case ARGUMENT_FLOAT_3BYTES: - tmp = (uint32)(uint8)CTheScripts::Read1ByteFromScript(&m_nIp) << 8; - tmp |= (uint32)(uint16)CTheScripts::Read2BytesFromScript(&m_nIp) << 16; - return tmp; case ARGUMENT_INT32: case ARGUMENT_FLOAT: return CTheScripts::Read4BytesFromScript(&m_nIp); + case ARGUMENT_GLOBALVAR: + varIndex = CTheScripts::Read2BytesFromScript(&m_nIp); + script_assert(varIndex >= 8 && varIndex < CTheScripts::GetSizeOfVariableSpace()); + var = true; + sprintf(tmpstr, " $%d", varIndex / 4); + strcat(buf, tmpstr); + return *((int32*)&CTheScripts::ScriptSpace[varIndex]); + case ARGUMENT_LOCALVAR: + varIndex = CTheScripts::Read2BytesFromScript(&m_nIp); + script_assert(varIndex >= 0 && varIndex < ARRAY_SIZE(m_anLocalVariables)); + var = true; + sprintf(tmpstr, " %d@", varIndex); + strcat(buf, tmpstr); + return m_anLocalVariables[varIndex]; case ARGUMENT_INT8: return CTheScripts::Read1ByteFromScript(&m_nIp); case ARGUMENT_INT16: return CTheScripts::Read2BytesFromScript(&m_nIp); default: - var = true; - --m_nIp; - return *GetPointerToScriptVariableForDebug(this, &m_nIp, buf); + PrintToLog("%s - script assertion failed in CollectParameterForDebug", buf); + script_assert(0); + break; } return 0; } void CRunningScript::GetStoredParameterForDebug(char* buf) { - GetPointerToScriptVariableForDebug(this, &m_nIp, buf); + uint16 varIndex; + char tmpstr[24]; + switch (CTheScripts::Read1ByteFromScript(&m_nIp)) { + case ARGUMENT_GLOBALVAR: + varIndex = CTheScripts::Read2BytesFromScript(&m_nIp); + sprintf(tmpstr, " $%d", varIndex / 4); + strcat(buf, tmpstr); + break; + case ARGUMENT_LOCALVAR: + varIndex = CTheScripts::Read2BytesFromScript(&m_nIp); + sprintf(tmpstr, " %d@", varIndex); + strcat(buf, tmpstr); + break; + default: + PrintToLog("%s - script_assertion failed in GetStoredParameterForDebug", buf); + script_assert(0); + } } #endif int32 CRunningScript::CollectNextParameterWithoutIncreasingPC(uint32 ip) { uint32* pIp = &ip; - int tmp; switch (CTheScripts::Read1ByteFromScript(pIp)) { - case ARGUMENT_END: - return 0; // TODO(LCS) - case ARGUMENT_INT_ZERO: - return 0; - case ARGUMENT_FLOAT_ZERO: - return 0; - case ARGUMENT_FLOAT_1BYTE: - return (uint32)(uint8)CTheScripts::Read1ByteFromScript(pIp) << 24; - case ARGUMENT_FLOAT_2BYTES: - return (uint32)(uint16)CTheScripts::Read2BytesFromScript(pIp) << 16; - case ARGUMENT_FLOAT_3BYTES: - tmp = (uint32)(uint8)CTheScripts::Read1ByteFromScript(pIp) << 8; - tmp |= (uint32)(uint16)CTheScripts::Read2BytesFromScript(pIp) << 16; - return tmp; case ARGUMENT_INT32: return CTheScripts::Read4BytesFromScript(pIp); + case ARGUMENT_GLOBALVAR: + return *((int32*)&CTheScripts::ScriptSpace[(uint16)CTheScripts::Read2BytesFromScript(pIp)]); + case ARGUMENT_LOCALVAR: + return m_anLocalVariables[CTheScripts::Read2BytesFromScript(pIp)]; case ARGUMENT_INT8: return CTheScripts::Read1ByteFromScript(pIp); case ARGUMENT_INT16: @@ -2471,8 +2145,7 @@ int32 CRunningScript::CollectNextParameterWithoutIncreasingPC(uint32 ip) case ARGUMENT_FLOAT: return CTheScripts::Read4BytesFromScript(pIp); default: - (*pIp)--; - return *GetPointerToScriptVariable(pIp, 0); + script_assert(0); } return -1; } @@ -2480,61 +2153,38 @@ int32 CRunningScript::CollectNextParameterWithoutIncreasingPC(uint32 ip) void CRunningScript::StoreParameters(uint32* pIp, int16 number) { for (int16 i = 0; i < number; i++){ - *GetPointerToScriptVariable(pIp, 0) = ScriptParams[i]; + switch (CTheScripts::Read1ByteFromScript(pIp)) { + case ARGUMENT_GLOBALVAR: + *(int32*)&CTheScripts::ScriptSpace[(uint16)CTheScripts::Read2BytesFromScript(pIp)] = ScriptParams[i]; + break; + case ARGUMENT_LOCALVAR: + m_anLocalVariables[CTheScripts::Read2BytesFromScript(pIp)] = ScriptParams[i]; + break; + default: + script_assert(0); + } } } -int32* GetPointerToScriptVariable(CRunningScript* pScript, uint32* pIp) -{ - uint8 type = CTheScripts::Read1ByteFromScript(pIp); - if (type >= ARGUMENT_GLOBAL_ARRAY) { - uint8 index_in_block = CTheScripts::Read1ByteFromScript(pIp); - uint8 index_id = CTheScripts::Read1ByteFromScript(pIp); - uint8 size = CTheScripts::Read1ByteFromScript(pIp); - script_assert(size > 0); - script_assert(pScript->m_anLocalVariables[pScript->m_nLocalsPointer + index_id] < size); - uint8 index = Min(pScript->m_anLocalVariables[pScript->m_nLocalsPointer + index_id], size - 1); - return (int32*)&CTheScripts::ScriptSpace[4 * (((int)(type - ARGUMENT_GLOBAL_ARRAY) << 8) + index + index_in_block)]; - } - else if (type >= ARGUMENT_GLOBAL) { - uint8 index_in_block = CTheScripts::Read1ByteFromScript(pIp); - return (int32*)&CTheScripts::ScriptSpace[4 * (((int)(type - ARGUMENT_GLOBAL) << 8) + index_in_block)]; - } - else if (type >= ARGUMENT_LOCAL_ARRAY) { - uint8 index_id = CTheScripts::Read1ByteFromScript(pIp); - uint8 size = CTheScripts::Read1ByteFromScript(pIp); - script_assert(size > 0); - script_assert(pScript->m_anLocalVariables[pScript->m_nLocalsPointer + index_id] < size); - uint8 index = Min(pScript->m_anLocalVariables[pScript->m_nLocalsPointer + index_id], size - 1); - return &pScript->m_anLocalVariables[pScript->m_nLocalsPointer + (type - ARGUMENT_LOCAL_ARRAY) + index]; - } - else if (type >= ARGUMENT_LOCAL) { - return &pScript->m_anLocalVariables[pScript->m_nLocalsPointer + (type - ARGUMENT_LOCAL)]; - } - else if (type >= ARGUMENT_TIMER) { - return &pScript->m_anLocalVariables[NUM_LOCAL_VARS + 8 + (type - ARGUMENT_TIMER)]; - } - script_assert(false && "wrong type for variable"); - return &pScript->m_anLocalVariables[pScript->m_nLocalsPointer + (type - ARGUMENT_LOCAL)]; -} - int32 *CRunningScript::GetPointerToScriptVariable(uint32* pIp, int16 type) { - return ::GetPointerToScriptVariable(this, pIp); -} - -int CTheScripts::GetSaveVarIndex(int var) -{ - for (int i = 0; i < NumSaveVars; i++) { - if (SavedVarIndices[i] == var) - return i; + switch (CTheScripts::Read1ByteFromScript(pIp)) + { + case ARGUMENT_GLOBALVAR: + script_assert(type == VAR_GLOBAL); + return (int32*)&CTheScripts::ScriptSpace[(uint16)CTheScripts::Read2BytesFromScript(pIp)]; + case ARGUMENT_LOCALVAR: + script_assert(type == VAR_LOCAL); + return &m_anLocalVariables[CTheScripts::Read2BytesFromScript(pIp)]; + default: + script_assert(0); } - return -1; + return nil; } void CRunningScript::Init() { - sprintf(m_abScriptName, "id%02i", m_nId); + strcpy(m_abScriptName, "noname"); next = prev = nil; SetIP(0); for (int i = 0; i < MAX_STACK_DEPTH; i++) @@ -2545,28 +2195,13 @@ void CRunningScript::Init() m_bCondResult = false; m_bIsMissionScript = false; m_bSkipWakeTime = false; - for (int i = 0; i < NUM_LOCAL_VARS + 8 + NUM_TIMERS; i++) + for (int i = 0; i < NUM_LOCAL_VARS + NUM_TIMERS; i++) m_anLocalVariables[i] = 0; m_nAndOrState = 0; m_bNotFlag = false; m_bDeatharrestEnabled = true; m_bDeatharrestExecuted = false; m_bMissionFlag = false; - m_nLocalsPointer = 0; -} - -void CTheScripts::Shutdown() -{ - if (gScriptsFile != -1) { - CFileMgr::CloseFile(gScriptsFile); - gScriptsFile = -1; - } - if (ScriptSpace) { - base::cMainMemoryManager::Instance()->Free(ScriptSpace); - ScriptSpace = nil; - FSDestroyedFlag = false; - OnAMissionFlag = 0; - } } #ifdef USE_DEBUG_SCRIPT_LOADER @@ -2589,17 +2224,17 @@ int open_script() #endif switch (scriptToLoad) { case 0: scriptfile = "main.scm"; break; - case 1: scriptfile = "freeroam_lcs.scm"; break; + case 1: scriptfile = "freeroam_miami.scm"; break; case 2: scriptfile = "main_d.scm"; break; } return CFileMgr::OpenFile(scriptfile, "rb"); } #endif -bool CTheScripts::Init(bool loaddata) +void CTheScripts::Init() { - bool retval = false; - printf("CTheScripts::Init\n"); + for (int i = 0; i < SIZE_SCRIPT_SPACE; i++) + ScriptSpace[i] = 0; pActiveScripts = pIdleScripts = nil; for (int i = 0; i < MAX_NUM_SCRIPTS; i++){ ScriptsArray[i].Init(); @@ -2608,47 +2243,25 @@ bool CTheScripts::Init(bool loaddata) MissionCleanUp.Init(); UpsideDownCars.Init(); StuckCars.Init(); - StoreVehicleIndex = -1; - StoreVehicleWasRandom = true; - OnAMissionFlag = 0; - LastMissionPassedTime = (uint32)-1; - for (int i = 0; i < MAX_NUM_COLLECTIVES; i++) { - CollectiveArray[i].colIndex = -1; - CollectiveArray[i].pedIndex = 0; - } - NextFreeCollectiveIndex = 0; - LastRandomPedId = -1; - for (int i = 0; i < MAX_NUM_USED_OBJECTS; i++){ - memset(&UsedObjectArray[i].name, 0, sizeof(UsedObjectArray[i].name)); - UsedObjectArray[i].index = 0; - } -#if defined FIX_BUGS || (!defined GTA_PS2 && !defined GTA_PSP) - for (base::cSList::tSItem* i = CTheScripts::mCoronas.first; i;) { - base::cSList::tSItem* next = i->next; - delete i; - i = next; - } - CTheScripts::mCoronas.first = nil; -#endif - NumberOfUsedObjects = 0; - if (ScriptSpace) - Shutdown(); - CFileMgr::SetDir("DATA"); + CFileMgr::SetDir("data"); #ifdef USE_DEBUG_SCRIPT_LOADER int mainf = open_script(); #else int mainf = CFileMgr::OpenFile("main.scm", "rb"); #endif - CFileMgr::Read(mainf, (char*)&MainScriptSize, sizeof(MainScriptSize)); - int nLargestMissionSize = 0; - CFileMgr::Read(mainf, (char*)&nLargestMissionSize, sizeof(nLargestMissionSize)); - if (!cSmallHeap::msInstance.IsLocked()) - cSmallHeap::msInstance.Lock(); - ScriptSpace = (uint8*)base::cMainMemoryManager::Instance()->Allocate(MainScriptSize + nLargestMissionSize); - memset(ScriptSpace, 0, MainScriptSize + nLargestMissionSize); - CFileMgr::Read(mainf, (char*)ScriptSpace, MainScriptSize); - gScriptsFile = mainf; + CFileMgr::Read(mainf, (char*)ScriptSpace, SIZE_MAIN_SCRIPT); + CFileMgr::CloseFile(mainf); CFileMgr::SetDir(""); + StoreVehicleIndex = -1; + StoreVehicleWasRandom = true; + OnAMissionFlag = 0; + LastMissionPassedTime = (uint32)-1; + LastRandomPedId = -1; + for (int i = 0; i < MAX_NUM_USED_OBJECTS; i++){ + memset(&UsedObjectArray[i].name, 0, sizeof(UsedObjectArray[i].name)); + UsedObjectArray[i].index = 0; + } + NumberOfUsedObjects = 0; ReadObjectNamesFromScript(); UpdateObjectIndices(); bAlreadyRunningAMissionScript = false; @@ -2658,10 +2271,11 @@ bool CTheScripts::Init(bool loaddata) NumberOfExclusiveMissionScripts = 0; NumberOfMissionScripts = 0; LargestMissionScriptSize = 0; + MainScriptSize = 0; ReadMultiScriptFileOffsetsFromScript(); FailCurrentMission = 0; DbgFlag = false; - //NumScriptDebugLines = 0; + NumScriptDebugLines = 0; RiotIntensity = 0; bPlayerHasMetDebbieHarry = false; bPlayerIsInTheStatium = false; @@ -2685,7 +2299,7 @@ bool CTheScripts::Init(bool loaddata) IntroRectangles[i].m_sColor = CRGBA(255, 255, 255, 255); } NumberOfIntroRectanglesThisFrame = 0; - //RemoveScriptTextureDictionary(); // TODO(LCS) - probably not needed + RemoveScriptTextureDictionary(); for (int i = 0; i < MAX_NUM_BUILDING_SWAPS; i++){ BuildingSwapArray[i].m_pBuilding = nil; BuildingSwapArray[i].m_nNewModel = -1; @@ -2693,12 +2307,6 @@ bool CTheScripts::Init(bool loaddata) } for (int i = 0; i < MAX_NUM_INVISIBILITY_SETTINGS; i++) InvisibilitySettingArray[i] = nil; - if (loaddata) { - printf("loaddata = true\n"); - //retval = GenericLoad(); // TODO - } - for (int i = 0; i < MAX_ALLOWED_COLLISIONS; i++) - AllowedCollision[i] = 0; #if defined USE_ADVANCED_SCRIPT_DEBUG_OUTPUT && SCRIPT_LOG_FILE_LEVEL == 2 CFileMgr::SetDirMyDocuments(); @@ -2709,10 +2317,8 @@ bool CTheScripts::Init(bool loaddata) PrintToLog(init_msg); CFileMgr::SetDir(""); #endif - return retval; } -/* void CTheScripts::RemoveScriptTextureDictionary() { for (int i = 0; i < ARRAY_SIZE(CTheScripts::ScriptSprites); i++) @@ -2721,7 +2327,6 @@ void CTheScripts::RemoveScriptTextureDictionary() if (slot != -1) CTxdStore::RemoveTxd(slot); } -*/ void CRunningScript::RemoveScriptFromList(CRunningScript** ppScript) { @@ -2747,7 +2352,6 @@ CRunningScript* CTheScripts::StartNewScript(uint32 ip) CRunningScript* pNew = pIdleScripts; script_assert(pNew); pNew->RemoveScriptFromList(&pIdleScripts); - pNew->m_nId = NextProcessId++; pNew->Init(); pNew->SetIP(ip); pNew->AddScriptToList(&pActiveScripts); @@ -2759,8 +2363,6 @@ void CTheScripts::Process() { if (CReplay::IsPlayingBack()) return; - if (!ScriptSpace) - return; CommandsExecuted = 0; ScriptsUpdated = 0; float timeStep = CTimer::GetTimeStepInMilliseconds(); @@ -2832,7 +2434,6 @@ void CTheScripts::Process() #endif CRunningScript* script = pActiveScripts; - InTheScripts = true; while (script != nil){ CRunningScript* next = script->GetNext(); ++ScriptsUpdated; @@ -2842,11 +2443,6 @@ void CTheScripts::Process() if (script && !script->m_bIsActive) script = nil; } - InTheScripts = false; - for (base::cSList::tSItem* i = CTheScripts::mCoronas.first; i; i = i->next) { - CCoronas::RegisterCorona((uint32)(uintptr)i, i->item.r, i->item.g, i->item.b, 255, CVector(i->item.x, i->item.y, i->item.z), - -i->item.size, 450.0f, i->item.type, i->item.flareType, 1, 0, 0, 0.0f); - } DbgFlag = false; #ifdef USE_ADVANCED_SCRIPT_DEBUG_OUTPUT PrintToLog("Script processing done, ScriptsUpdated: %d, CommandsExecuted: %d\n", ScriptsUpdated, CommandsExecuted); @@ -2872,7 +2468,6 @@ void CRunningScript::Process() #ifdef USE_ADVANCED_SCRIPT_DEBUG_OUTPUT PrintToLog("\n\nProcessing script %s (id %d)\n\n", m_abScriptName, this - CTheScripts::ScriptsArray); #endif - pCurrent = this; if (m_bIsMissionScript) DoDeatharrestCheck(); if (m_bMissionFlag && CTheScripts::FailCurrentMission == 1 && m_nStackPointer == 1) @@ -2905,59 +2500,34 @@ int8 CRunningScript::ProcessOneCommand() #ifdef USE_ADVANCED_SCRIPT_DEBUG_OUTPUT char commandInfo[1024]; uint32 ip = m_nIp; - uint8 nInputParams; - uint8 nOutputParameters; - uint8 nLocalsOffset; if (command < ARRAY_SIZE(commands)) { script_assert(commands[command].id == command); m_nIp -= 2; - sprintf(commandInfo, m_nIp >= CTheScripts::MainScriptSize ? "M<%5d> " : "<%6d> ", m_nIp >= CTheScripts::MainScriptSize ? m_nIp - CTheScripts::MainScriptSize : m_nIp); + sprintf(commandInfo, m_nIp >= SIZE_MAIN_SCRIPT ? "M<%5d> " : "<%6d> ", m_nIp >= SIZE_MAIN_SCRIPT ? m_nIp - SIZE_MAIN_SCRIPT : m_nIp); m_nIp += 2; if (m_bNotFlag) strcat(commandInfo, "NOT "); if (commands[command].position == -1) strcat(commandInfo, commands[command].name + sizeof("COMMAND_") - 1); - if (commands[command].input[0] == ARGTYPE_FUNCTION) { + for (int i = 0; commands[command].input[i] != ARGTYPE_NONE; i++) { char tmp[32]; bool var = false; - nInputParams = CTheScripts::Read1ByteFromScript(&m_nIp); - nOutputParameters = CTheScripts::Read1ByteFromScript(&m_nIp); - nLocalsOffset = CTheScripts::Read1ByteFromScript(&m_nIp); - int value = CollectParameterForDebug(commandInfo, var); - sprintf(tmp, var ? " (%s(%d))" : " %s(%d)", value >= 0 ? "G" : "L", abs(value)); + int value; + switch (commands[command].input[i]) { + case ARGTYPE_INT: + case ARGTYPE_PED_HANDLE: + case ARGTYPE_VEHICLE_HANDLE: + case ARGTYPE_OBJECT_HANDLE: value = CollectParameterForDebug(commandInfo, var); sprintf(tmp, var ? " (%d)" : " %d", value); break; + case ARGTYPE_FLOAT: value = CollectParameterForDebug(commandInfo, var); sprintf(tmp, var ? " (%.3f)" : " %.3f", *(float*)&value); break; + case ARGTYPE_STRING: sprintf(tmp, " '%s'", (const char*)&CTheScripts::ScriptSpace[m_nIp]); m_nIp += KEY_LENGTH_IN_SCRIPT; break; + case ARGTYPE_LABEL: value = CollectParameterForDebug(commandInfo, var); sprintf(tmp, var ? " (%s(%d))" : " %s(%d)", value >= 0 ? "G" : "L", abs(value)); break; + case ARGTYPE_BOOL: value = CollectParameterForDebug(commandInfo, var); sprintf(tmp, var ? " (%s)" : " %s", value ? "TRUE" : "FALSE"); break; + case ARGTYPE_ANDOR: value = CollectParameterForDebug(commandInfo, var); sprintf(tmp, " %d %ss", (value + 1) % 10, value / 10 == 0 ? "AND" : "OR"); break; + default: script_assert(0); + } strcat(commandInfo, tmp); - strcat(commandInfo, "{"); - for (int i = 0; i < nInputParams; i++) { - if (i != 0) - strcat(commandInfo, ", "); - value = CollectParameterForDebug(commandInfo, var); - sprintf(tmp, var ? "(%d)" : "%d", value); - strcat(commandInfo, tmp); - - } - strcat(commandInfo, "}"); - } - else { - for (int i = 0; commands[command].input[i] != ARGTYPE_NONE; i++) { - char tmp[32]; - bool var = false; - int value; - switch (commands[command].input[i]) { - case ARGTYPE_INT: - case ARGTYPE_PED_HANDLE: - case ARGTYPE_VEHICLE_HANDLE: - case ARGTYPE_OBJECT_HANDLE: value = CollectParameterForDebug(commandInfo, var); sprintf(tmp, var ? " (%d)" : " %d", value); break; - case ARGTYPE_FLOAT: value = CollectParameterForDebug(commandInfo, var); sprintf(tmp, var ? " (%.3f)" : " %.3f", *(float*)&value); break; - case ARGTYPE_STRING: sprintf(tmp, " '%s'", (const char*)&CTheScripts::ScriptSpace[m_nIp]); m_nIp += KEY_LENGTH_IN_SCRIPT; break; - case ARGTYPE_LABEL: value = CollectParameterForDebug(commandInfo, var); sprintf(tmp, var ? " (%s(%d))" : " %s(%d)", value >= 0 ? "G" : "L", abs(value)); break; - case ARGTYPE_BOOL: value = CollectParameterForDebug(commandInfo, var); sprintf(tmp, var ? " (%s)" : " %s", value ? "TRUE" : "FALSE"); break; - case ARGTYPE_ANDOR: value = CollectParameterForDebug(commandInfo, var); sprintf(tmp, " %d %ss", (value) % 10, value / 10 == 0 ? "AND" : "OR"); break; - default: script_assert(0); - } - strcat(commandInfo, tmp); - if (commands[command].position == i) - strcat(commandInfo, commands[command].name_override); - } + if (commands[command].position == i) + strcat(commandInfo, commands[command].name_override); } uint32 t = m_nIp; m_nIp = ip; @@ -2968,38 +2538,32 @@ int8 CRunningScript::ProcessOneCommand() retval = ProcessCommands0To99(command); else if (command < 200) retval = ProcessCommands100To199(command); - else if (command < 305) + else if (command < 300) retval = ProcessCommands200To299(command); - else if (command < 405) + else if (command < 400) retval = ProcessCommands300To399(command); - else if (command < 505) + else if (command < 500) retval = ProcessCommands400To499(command); - else if (command < 605) + else if (command < 600) retval = ProcessCommands500To599(command); - else if (command < 705) + else if (command < 700) retval = ProcessCommands600To699(command); - else if (command < 805) + else if (command < 800) retval = ProcessCommands700To799(command); - else if (command < 905) + else if (command < 900) retval = ProcessCommands800To899(command); - else if (command < 1005) + else if (command < 1000) retval = ProcessCommands900To999(command); - else if (command < 1105) + else if (command < 1100) retval = ProcessCommands1000To1099(command); - else if (command < 1205) + else if (command < 1200) retval = ProcessCommands1100To1199(command); - else if (command < 1305) + else if (command < 1300) retval = ProcessCommands1200To1299(command); - else if (command < 1405) + else if (command < 1400) retval = ProcessCommands1300To1399(command); - else if (command < 1497) + else if (command < 1500) retval = ProcessCommands1400To1499(command); - else if (command < 1600) - retval = ProcessCommands1500To1599(command); - else if (command < 1700) - retval = ProcessCommands1600To1699(command); - else - script_assert(false); #ifdef USE_ADVANCED_SCRIPT_DEBUG_OUTPUT if (command < ARRAY_SIZE(commands)) { if (commands[command].cond || commands[command].output[0] != ARGTYPE_NONE) { @@ -3009,17 +2573,15 @@ int8 CRunningScript::ProcessOneCommand() uint32 t = m_nIp; m_nIp = ip; ip = t; - if (commands[command].input[0] != ARGTYPE_FUNCTION) { - for (int i = 0; commands[command].output[i] != ARGTYPE_NONE; i++) { - char tmp[32]; - switch (commands[command].output[i]) { - case ARGTYPE_INT: - case ARGTYPE_PED_HANDLE: - case ARGTYPE_VEHICLE_HANDLE: - case ARGTYPE_OBJECT_HANDLE: GetStoredParameterForDebug(commandInfo); sprintf(tmp, " (%d)", ScriptParams[i]); strcat(commandInfo, tmp); break; - case ARGTYPE_FLOAT: GetStoredParameterForDebug(commandInfo); sprintf(tmp, " (%8.3f)", *(float*)&ScriptParams[i]); strcat(commandInfo, tmp); break; - default: script_assert(0 && "Script only returns INTs and FLOATs"); - } + for (int i = 0; commands[command].output[i] != ARGTYPE_NONE; i++) { + char tmp[32]; + switch (commands[command].output[i]) { + case ARGTYPE_INT: + case ARGTYPE_PED_HANDLE: + case ARGTYPE_VEHICLE_HANDLE: + case ARGTYPE_OBJECT_HANDLE: GetStoredParameterForDebug(commandInfo); sprintf(tmp, " (%d)", ScriptParams[i]); strcat(commandInfo, tmp); break; + case ARGTYPE_FLOAT: GetStoredParameterForDebug(commandInfo); sprintf(tmp, " (%8.3f)", *(float*)&ScriptParams[i]); strcat(commandInfo, tmp); break; + default: script_assert(0 && "Script only returns INTs and FLOATs"); } } m_nIp = ip; @@ -3048,18 +2610,16 @@ int8 CRunningScript::ProcessCommands0To99(int32 command) float *fScriptVar1; int *nScriptVar1; switch (command) { - /* case COMMAND_NOP: return 0; - */ case COMMAND_WAIT: CollectParameters(&m_nIp, 1); - m_nWakeTime = CTimer::GetTimeInMilliseconds() + GET_INTEGER_PARAM(0); + m_nWakeTime = CTimer::GetTimeInMilliseconds() + ScriptParams[0]; m_bSkipWakeTime = false; return 1; case COMMAND_GOTO: CollectParameters(&m_nIp, 1); - SetIP(GET_INTEGER_PARAM(0) >= 0 ? GET_INTEGER_PARAM(0) : CTheScripts::MainScriptSize - GET_INTEGER_PARAM(0)); + SetIP(ScriptParams[0] >= 0 ? ScriptParams[0] : SIZE_MAIN_SCRIPT - ScriptParams[0]); /* Known issue: GOTO to 0. It might have been "better" to use > instead of >= */ /* simply because it never makes sense to jump to start of the script */ /* but jumping to start of a custom mission is an issue for simple mission-like scripts */ @@ -3068,174 +2628,174 @@ int8 CRunningScript::ProcessCommands0To99(int32 command) return 0; case COMMAND_SHAKE_CAM: CollectParameters(&m_nIp, 1); - CamShakeNoPos(&TheCamera, GET_INTEGER_PARAM(0) / 1000.0f); + CamShakeNoPos(&TheCamera, ScriptParams[0] / 1000.0f); return 0; case COMMAND_SET_VAR_INT: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); CollectParameters(&m_nIp, 1); - *ptr = GET_INTEGER_PARAM(0); + *ptr = ScriptParams[0]; return 0; } case COMMAND_SET_VAR_FLOAT: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); CollectParameters(&m_nIp, 1); - *(float*)ptr = GET_FLOAT_PARAM(0); + *(float*)ptr = *(float*)&ScriptParams[0]; return 0; } case COMMAND_SET_LVAR_INT: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); CollectParameters(&m_nIp, 1); - *ptr = GET_INTEGER_PARAM(0); + *ptr = ScriptParams[0]; return 0; } case COMMAND_SET_LVAR_FLOAT: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); CollectParameters(&m_nIp, 1); - *(float*)ptr = GET_FLOAT_PARAM(0); + *(float*)ptr = *(float*)&ScriptParams[0]; return 0; } case COMMAND_ADD_VAL_TO_INT_VAR: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); CollectParameters(&m_nIp, 1); - *ptr += GET_INTEGER_PARAM(0); + *ptr += ScriptParams[0]; return 0; } case COMMAND_ADD_VAL_TO_FLOAT_VAR: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); CollectParameters(&m_nIp, 1); - *(float*)ptr += GET_FLOAT_PARAM(0); + *(float*)ptr += *(float*)&ScriptParams[0]; return 0; } case COMMAND_ADD_VAL_TO_INT_LVAR: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); CollectParameters(&m_nIp, 1); - *ptr += GET_INTEGER_PARAM(0); + *ptr += ScriptParams[0]; return 0; } case COMMAND_ADD_VAL_TO_FLOAT_LVAR: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); CollectParameters(&m_nIp, 1); - *(float*)ptr += GET_FLOAT_PARAM(0); + *(float*)ptr += *(float*)&ScriptParams[0]; return 0; } case COMMAND_SUB_VAL_FROM_INT_VAR: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); CollectParameters(&m_nIp, 1); - *ptr -= GET_INTEGER_PARAM(0); + *ptr -= ScriptParams[0]; return 0; } case COMMAND_SUB_VAL_FROM_FLOAT_VAR: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); CollectParameters(&m_nIp, 1); - *(float*)ptr -= GET_FLOAT_PARAM(0); + *(float*)ptr -= *(float*)&ScriptParams[0]; return 0; } case COMMAND_SUB_VAL_FROM_INT_LVAR: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); CollectParameters(&m_nIp, 1); - *ptr -= GET_INTEGER_PARAM(0); + *ptr -= ScriptParams[0]; return 0; } case COMMAND_SUB_VAL_FROM_FLOAT_LVAR: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); CollectParameters(&m_nIp, 1); - *(float*)ptr -= GET_FLOAT_PARAM(0); + *(float*)ptr -= *(float*)&ScriptParams[0]; return 0; } case COMMAND_MULT_INT_VAR_BY_VAL: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); CollectParameters(&m_nIp, 1); - *ptr *= GET_INTEGER_PARAM(0); + *ptr *= ScriptParams[0]; return 0; } case COMMAND_MULT_FLOAT_VAR_BY_VAL: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); CollectParameters(&m_nIp, 1); - *(float*)ptr *= GET_FLOAT_PARAM(0); + *(float*)ptr *= *(float*)&ScriptParams[0]; return 0; } case COMMAND_MULT_INT_LVAR_BY_VAL: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); CollectParameters(&m_nIp, 1); - *ptr *= GET_INTEGER_PARAM(0); + *ptr *= ScriptParams[0]; return 0; } case COMMAND_MULT_FLOAT_LVAR_BY_VAL: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); CollectParameters(&m_nIp, 1); - *(float*)ptr *= GET_FLOAT_PARAM(0); + *(float*)ptr *= *(float*)&ScriptParams[0]; return 0; } case COMMAND_DIV_INT_VAR_BY_VAL: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); CollectParameters(&m_nIp, 1); - *ptr /= GET_INTEGER_PARAM(0); + *ptr /= ScriptParams[0]; return 0; } case COMMAND_DIV_FLOAT_VAR_BY_VAL: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); CollectParameters(&m_nIp, 1); - *(float*)ptr /= GET_FLOAT_PARAM(0); + *(float*)ptr /= *(float*)&ScriptParams[0]; return 0; } case COMMAND_DIV_INT_LVAR_BY_VAL: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); CollectParameters(&m_nIp, 1); - *ptr /= GET_INTEGER_PARAM(0); + *ptr /= ScriptParams[0]; return 0; } case COMMAND_DIV_FLOAT_LVAR_BY_VAL: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); CollectParameters(&m_nIp, 1); - *(float*)ptr /= GET_FLOAT_PARAM(0); + *(float*)ptr /= *(float*)&ScriptParams[0]; return 0; } case COMMAND_IS_INT_VAR_GREATER_THAN_NUMBER: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); CollectParameters(&m_nIp, 1); - UpdateCompareFlag(*ptr > GET_INTEGER_PARAM(0)); + UpdateCompareFlag(*ptr > ScriptParams[0]); return 0; } case COMMAND_IS_INT_LVAR_GREATER_THAN_NUMBER: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); CollectParameters(&m_nIp, 1); - UpdateCompareFlag(*ptr > GET_INTEGER_PARAM(0)); + UpdateCompareFlag(*ptr > ScriptParams[0]); return 0; } case COMMAND_IS_NUMBER_GREATER_THAN_INT_VAR: { CollectParameters(&m_nIp, 1); int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); - UpdateCompareFlag(GET_INTEGER_PARAM(0) > *ptr); + UpdateCompareFlag(ScriptParams[0] > *ptr); return 0; } case COMMAND_IS_NUMBER_GREATER_THAN_INT_LVAR: { CollectParameters(&m_nIp, 1); int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); - UpdateCompareFlag(GET_INTEGER_PARAM(0) > *ptr); + UpdateCompareFlag(ScriptParams[0] > *ptr); return 0; } case COMMAND_IS_INT_VAR_GREATER_THAN_INT_VAR: @@ -3270,28 +2830,28 @@ int8 CRunningScript::ProcessCommands0To99(int32 command) { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); CollectParameters(&m_nIp, 1); - UpdateCompareFlag(*(float*)ptr > GET_FLOAT_PARAM(0)); + UpdateCompareFlag(*(float*)ptr > *(float*)&ScriptParams[0]); return 0; } case COMMAND_IS_FLOAT_LVAR_GREATER_THAN_NUMBER: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); CollectParameters(&m_nIp, 1); - UpdateCompareFlag(*(float*)ptr > GET_FLOAT_PARAM(0)); + UpdateCompareFlag(*(float*)ptr > *(float*)&ScriptParams[0]); return 0; } case COMMAND_IS_NUMBER_GREATER_THAN_FLOAT_VAR: { CollectParameters(&m_nIp, 1); int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); - UpdateCompareFlag(GET_FLOAT_PARAM(0) > *(float*)ptr); + UpdateCompareFlag(*(float*)&ScriptParams[0] > *(float*)ptr); return 0; } case COMMAND_IS_NUMBER_GREATER_THAN_FLOAT_LVAR: { CollectParameters(&m_nIp, 1); int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); - UpdateCompareFlag(GET_FLOAT_PARAM(0) > *(float*)ptr); + UpdateCompareFlag(*(float*)&ScriptParams[0] > *(float*)ptr); return 0; } case COMMAND_IS_FLOAT_VAR_GREATER_THAN_FLOAT_VAR: @@ -3326,28 +2886,28 @@ int8 CRunningScript::ProcessCommands0To99(int32 command) { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); CollectParameters(&m_nIp, 1); - UpdateCompareFlag(*ptr >= GET_INTEGER_PARAM(0)); + UpdateCompareFlag(*ptr >= ScriptParams[0]); return 0; } case COMMAND_IS_INT_LVAR_GREATER_OR_EQUAL_TO_NUMBER: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); CollectParameters(&m_nIp, 1); - UpdateCompareFlag(*ptr >= GET_INTEGER_PARAM(0)); + UpdateCompareFlag(*ptr >= ScriptParams[0]); return 0; } case COMMAND_IS_NUMBER_GREATER_OR_EQUAL_TO_INT_VAR: { CollectParameters(&m_nIp, 1); int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); - UpdateCompareFlag(GET_INTEGER_PARAM(0) >= *ptr); + UpdateCompareFlag(ScriptParams[0] >= *ptr); return 0; } case COMMAND_IS_NUMBER_GREATER_OR_EQUAL_TO_INT_LVAR: { CollectParameters(&m_nIp, 1); int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); - UpdateCompareFlag(GET_INTEGER_PARAM(0) >= *ptr); + UpdateCompareFlag(ScriptParams[0] >= *ptr); return 0; } case COMMAND_IS_INT_VAR_GREATER_OR_EQUAL_TO_INT_VAR: @@ -3382,28 +2942,28 @@ int8 CRunningScript::ProcessCommands0To99(int32 command) { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); CollectParameters(&m_nIp, 1); - UpdateCompareFlag(*(float*)ptr >= GET_FLOAT_PARAM(0)); + UpdateCompareFlag(*(float*)ptr >= *(float*)&ScriptParams[0]); return 0; } case COMMAND_IS_FLOAT_LVAR_GREATER_OR_EQUAL_TO_NUMBER: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); CollectParameters(&m_nIp, 1); - UpdateCompareFlag(*(float*)ptr >= GET_FLOAT_PARAM(0)); + UpdateCompareFlag(*(float*)ptr >= *(float*)&ScriptParams[0]); return 0; } case COMMAND_IS_NUMBER_GREATER_OR_EQUAL_TO_FLOAT_VAR: { CollectParameters(&m_nIp, 1); int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); - UpdateCompareFlag(GET_FLOAT_PARAM(0) >= *(float*)ptr); + UpdateCompareFlag(*(float*)&ScriptParams[0] >= *(float*)ptr); return 0; } case COMMAND_IS_NUMBER_GREATER_OR_EQUAL_TO_FLOAT_LVAR: { CollectParameters(&m_nIp, 1); int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); - UpdateCompareFlag(GET_FLOAT_PARAM(0) >= *(float*)ptr); + UpdateCompareFlag(*(float*)&ScriptParams[0] >= *(float*)ptr); return 0; } case COMMAND_IS_FLOAT_VAR_GREATER_OR_EQUAL_TO_FLOAT_VAR: @@ -3438,14 +2998,14 @@ int8 CRunningScript::ProcessCommands0To99(int32 command) { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); CollectParameters(&m_nIp, 1); - UpdateCompareFlag(*ptr == GET_INTEGER_PARAM(0)); + UpdateCompareFlag(*ptr == ScriptParams[0]); return 0; } case COMMAND_IS_INT_LVAR_EQUAL_TO_NUMBER: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); CollectParameters(&m_nIp, 1); - UpdateCompareFlag(*ptr == GET_INTEGER_PARAM(0)); + UpdateCompareFlag(*ptr == ScriptParams[0]); return 0; } case COMMAND_IS_INT_VAR_EQUAL_TO_INT_VAR: @@ -3478,14 +3038,14 @@ int8 CRunningScript::ProcessCommands0To99(int32 command) { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); CollectParameters(&m_nIp, 1); - UpdateCompareFlag(*(float*)ptr == GET_FLOAT_PARAM(0)); + UpdateCompareFlag(*(float*)ptr == *(float*)&ScriptParams[0]); return 0; } case COMMAND_IS_FLOAT_LVAR_EQUAL_TO_NUMBER: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); CollectParameters(&m_nIp, 1); - UpdateCompareFlag(*(float*)ptr == GET_FLOAT_PARAM(0)); + UpdateCompareFlag(*(float*)ptr == *(float*)&ScriptParams[0]); return 0; } case COMMAND_IS_FLOAT_VAR_EQUAL_TO_FLOAT_VAR: @@ -3514,15 +3074,17 @@ int8 CRunningScript::ProcessCommands0To99(int32 command) //case COMMAND_IS_FLOAT_VAR_NOT_EQUAL_TO_FLOAT_VAR: //case COMMAND_IS_FLOAT_LVAR_NOT_EQUAL_TO_FLOAT_LVAR: //case COMMAND_IS_FLOAT_VAR_NOT_EQUAL_TO_FLOAT_LVAR: + /* case COMMAND_GOTO_IF_TRUE: CollectParameters(&m_nIp, 1); if (m_bCondResult) - SetIP(GET_INTEGER_PARAM(0) >= 0 ? GET_INTEGER_PARAM(0) : CTheScripts::MainScriptSize - GET_INTEGER_PARAM(0)); + SetIP(ScriptParams[0] >= 0 ? ScriptParams[0] : SIZE_MAIN_SCRIPT - ScriptParams[0]); return 0; + */ case COMMAND_GOTO_IF_FALSE: CollectParameters(&m_nIp, 1); if (!m_bCondResult) - SetIP(GET_INTEGER_PARAM(0) >= 0 ? GET_INTEGER_PARAM(0) : CTheScripts::MainScriptSize - GET_INTEGER_PARAM(0)); + SetIP(ScriptParams[0] >= 0 ? ScriptParams[0] : SIZE_MAIN_SCRIPT - ScriptParams[0]); /* Check COMMAND_GOTO note. */ return 0; case COMMAND_TERMINATE_THIS_SCRIPT: @@ -3548,19 +3110,47 @@ int8 CRunningScript::ProcessCommands0To99(int32 command) case COMMAND_START_NEW_SCRIPT: { CollectParameters(&m_nIp, 1); - script_assert(GET_INTEGER_PARAM(0) >= 0); - CRunningScript* pNew = CTheScripts::StartNewScript(GET_INTEGER_PARAM(0)); - CollectParameters(&m_nIp, NUM_LOCAL_VARS, pNew->m_anLocalVariables); + script_assert(ScriptParams[0] >= 0); + CRunningScript* pNew = CTheScripts::StartNewScript(ScriptParams[0]); + pNew->m_bIsActive = true; + int8 type = CTheScripts::Read1ByteFromScript(&m_nIp); + float tmp; + for (int i = 0; type != ARGUMENT_END; type = CTheScripts::Read1ByteFromScript(&m_nIp), i++) { + switch (type) { + case ARGUMENT_INT32: + pNew->m_anLocalVariables[i] = CTheScripts::Read4BytesFromScript(&m_nIp); + break; + case ARGUMENT_GLOBALVAR: + pNew->m_anLocalVariables[i] = *(int32*)&CTheScripts::ScriptSpace[(uint16)CTheScripts::Read2BytesFromScript(&m_nIp)]; + break; + case ARGUMENT_LOCALVAR: + pNew->m_anLocalVariables[i] = m_anLocalVariables[CTheScripts::Read2BytesFromScript(&m_nIp)]; + break; + case ARGUMENT_INT8: + pNew->m_anLocalVariables[i] = CTheScripts::Read1ByteFromScript(&m_nIp); + break; + case ARGUMENT_INT16: + pNew->m_anLocalVariables[i] = CTheScripts::Read2BytesFromScript(&m_nIp); + break; + case ARGUMENT_FLOAT: + tmp = CTheScripts::ReadFloatFromScript(&m_nIp); + pNew->m_anLocalVariables[i] = *(int32*)&tmp; + break; + default: + break; + } + } return 0; } case COMMAND_GOSUB: CollectParameters(&m_nIp, 1); script_assert(m_nStackPointer < MAX_STACK_DEPTH); m_anStack[m_nStackPointer++] = m_nIp; - SetIP(GET_INTEGER_PARAM(0) >= 0 ? GET_INTEGER_PARAM(0) : CTheScripts::MainScriptSize - GET_INTEGER_PARAM(0)); + SetIP(ScriptParams[0] >= 0 ? ScriptParams[0] : SIZE_MAIN_SCRIPT - ScriptParams[0]); return 0; case COMMAND_RETURN: - ReturnFromGosubOrFunction(); + script_assert(m_nStackPointer > 0); /* No more SSU */ + SetIP(m_anStack[--m_nStackPointer]); return 0; case COMMAND_LINE: CollectParameters(&m_nIp, 6); @@ -3569,7 +3159,7 @@ int8 CRunningScript::ProcessCommands0To99(int32 command) case COMMAND_CREATE_PLAYER: { CollectParameters(&m_nIp, 4); - int32 index = GET_INTEGER_PARAM(0); + int32 index = ScriptParams[0]; script_assert(index < NUMPLAYERS); printf("&&&&&&&&&&&&&Creating player: %d\n", index); if (!CStreaming::HasModelLoaded(MI_PLAYER)) { @@ -3579,14 +3169,14 @@ int8 CRunningScript::ProcessCommands0To99(int32 command) CPlayerPed::SetupPlayerPed(index); CWorld::Players[index].m_pPed->CharCreatedBy = MISSION_CHAR; CPlayerPed::DeactivatePlayerPed(index); - CVector pos = GET_VECTOR_PARAM(1); + CVector pos = *(CVector*)&ScriptParams[1]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); pos.z += CWorld::Players[index].m_pPed->GetDistanceFromCentreOfMassToBaseOfModel(); CWorld::Players[index].m_pPed->SetPosition(pos); CTheScripts::ClearSpaceForMissionEntity(pos, CWorld::Players[index].m_pPed); CPlayerPed::ReactivatePlayerPed(index); - SET_INTEGER_PARAM(0, index); + ScriptParams[0] = index; StoreParameters(&m_nIp, 1); return 0; } @@ -3594,23 +3184,23 @@ int8 CRunningScript::ProcessCommands0To99(int32 command) { CVector pos; CollectParameters(&m_nIp, 1); - if (CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed->bInVehicle && CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed->m_pMyVehicle) - pos = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed->m_pMyVehicle->GetPosition(); + if (CWorld::Players[ScriptParams[0]].m_pPed->bInVehicle) + pos = CWorld::Players[ScriptParams[0]].m_pPed->m_pMyVehicle->GetPosition(); else - pos = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed->GetPosition(); - SET_VECTOR_PARAM(0, pos); + pos = CWorld::Players[ScriptParams[0]].m_pPed->GetPosition(); + *(CVector*)&ScriptParams[0] = pos; StoreParameters(&m_nIp, 3); return 0; } case COMMAND_SET_PLAYER_COORDINATES: { CollectParameters(&m_nIp, 4); - CVector pos = GET_VECTOR_PARAM(1); - int index = GET_INTEGER_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[1]; + int index = ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); CPlayerPed* ped = CWorld::Players[index].m_pPed; - if (ped->bInVehicle && ped->m_pMyVehicle) { + if (ped->bInVehicle) { pos.z += ped->m_pMyVehicle->GetDistanceFromCentreOfMassToBaseOfModel(); ped->m_pMyVehicle->Teleport(pos); // removed dumb stuff that was present here CTheScripts::ClearSpaceForMissionEntity(pos, ped->m_pMyVehicle); @@ -3658,43 +3248,39 @@ int8 CRunningScript::ProcessCommands0To99(int32 command) case COMMAND_IS_PLAYER_IN_AREA_2D: { CollectParameters(&m_nIp, 6); - CPlayerPed* ped = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; - float x1 = GET_FLOAT_PARAM(1); - float y1 = GET_FLOAT_PARAM(2); - float x2 = GET_FLOAT_PARAM(3); - float y2 = GET_FLOAT_PARAM(4); + CPlayerPed* ped = CWorld::Players[ScriptParams[0]].m_pPed; + float x1 = *(float*)&ScriptParams[1]; + float y1 = *(float*)&ScriptParams[2]; + float x2 = *(float*)&ScriptParams[3]; + float y2 = *(float*)&ScriptParams[4]; if (!ped->bInVehicle) UpdateCompareFlag(ped->IsWithinArea(x1, y1, x2, y2)); else UpdateCompareFlag(ped->m_pMyVehicle->IsWithinArea(x1, y1, x2, y2)); - if (GET_INTEGER_PARAM(5)) + if (ScriptParams[5]) CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, x1, y1, x2, y2, MAP_Z_LOW_LIMIT); - /* if (CTheScripts::DbgFlag) CTheScripts::DrawDebugSquare(x1, y1, x2, y2); - */ return 0; } case COMMAND_IS_PLAYER_IN_AREA_3D: { CollectParameters(&m_nIp, 8); - CPlayerPed* ped = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; - float x1 = GET_FLOAT_PARAM(1); - float y1 = GET_FLOAT_PARAM(2); - float z1 = GET_FLOAT_PARAM(3); - float x2 = GET_FLOAT_PARAM(4); - float y2 = GET_FLOAT_PARAM(5); - float z2 = GET_FLOAT_PARAM(6); + CPlayerPed* ped = CWorld::Players[ScriptParams[0]].m_pPed; + float x1 = *(float*)&ScriptParams[1]; + float y1 = *(float*)&ScriptParams[2]; + float z1 = *(float*)&ScriptParams[3]; + float x2 = *(float*)&ScriptParams[4]; + float y2 = *(float*)&ScriptParams[5]; + float z2 = *(float*)&ScriptParams[6]; if (ped->bInVehicle) UpdateCompareFlag(ped->m_pMyVehicle->IsWithinArea(x1, y1, z1, x2, y2, z2)); else UpdateCompareFlag(ped->IsWithinArea(x1, y1, z1, x2, y2, z2)); - if (GET_INTEGER_PARAM(7)) + if (ScriptParams[7]) CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, x1, y1, x2, y2, (z1 + z2) / 2); - /* if (CTheScripts::DbgFlag) CTheScripts::DrawDebugCube(x1, y1, z1, x2, y2, z2); - */ return 0; } case COMMAND_ADD_INT_VAR_TO_INT_VAR: @@ -3841,25 +3427,33 @@ int8 CRunningScript::ProcessCommands100To199(int32 command) { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); CollectParameters(&m_nIp, 1); - *(float*)ptr += CTimer::GetTimeStep() * GET_FLOAT_PARAM(0); + *(float*)ptr += CTimer::GetTimeStep() * *(float*)&ScriptParams[0]; return 0; } case COMMAND_ADD_TIMED_VAL_TO_FLOAT_LVAR: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); CollectParameters(&m_nIp, 1); - *(float*)ptr += CTimer::GetTimeStep() * GET_FLOAT_PARAM(0); + *(float*)ptr += CTimer::GetTimeStep() * *(float*)&ScriptParams[0]; return 0; } case COMMAND_ADD_TIMED_FLOAT_VAR_TO_FLOAT_VAR: fScriptVar1 = (float*)GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); *fScriptVar1 += CTimer::GetTimeStep() * *(float*)GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); return 0; +#ifdef FIX_BUGS case COMMAND_ADD_TIMED_FLOAT_VAR_TO_FLOAT_LVAR: +#else + case COMMAND_ADD_TIMED_FLOAT_LVAR_TO_FLOAT_VAR: +#endif fScriptVar1 = (float*)GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); *fScriptVar1 += CTimer::GetTimeStep() * *(float*)GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); return 0; +#ifdef FIX_BUGS case COMMAND_ADD_TIMED_FLOAT_LVAR_TO_FLOAT_VAR: +#else + case COMMAND_ADD_TIMED_FLOAT_VAR_TO_FLOAT_LVAR: +#endif fScriptVar1 = (float*)GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); *fScriptVar1 += CTimer::GetTimeStep() * *(float*)GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); return 0; @@ -3871,25 +3465,33 @@ int8 CRunningScript::ProcessCommands100To199(int32 command) { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); CollectParameters(&m_nIp, 1); - *(float*)ptr -= CTimer::GetTimeStep() * GET_FLOAT_PARAM(0); + *(float*)ptr -= CTimer::GetTimeStep() * *(float*)&ScriptParams[0]; return 0; } case COMMAND_SUB_TIMED_VAL_FROM_FLOAT_LVAR: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); CollectParameters(&m_nIp, 1); - *(float*)ptr -= CTimer::GetTimeStep() * GET_FLOAT_PARAM(0); + *(float*)ptr -= CTimer::GetTimeStep() * *(float*)&ScriptParams[0]; return 0; } case COMMAND_SUB_TIMED_FLOAT_VAR_FROM_FLOAT_VAR: fScriptVar1 = (float*)GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); *fScriptVar1 -= CTimer::GetTimeStep() * *(float*)GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); return 0; +#ifdef FIX_BUGS // in SA it was fixed by reversing their order in enum case COMMAND_SUB_TIMED_FLOAT_VAR_FROM_FLOAT_LVAR: +#else + case COMMAND_SUB_TIMED_FLOAT_LVAR_FROM_FLOAT_VAR: +#endif fScriptVar1 = (float*)GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); *fScriptVar1 -= CTimer::GetTimeStep() * *(float*)GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); return 0; +#ifdef FIX_BUGS case COMMAND_SUB_TIMED_FLOAT_LVAR_FROM_FLOAT_VAR: +#else + case COMMAND_SUB_TIMED_FLOAT_VAR_FROM_FLOAT_LVAR: +#endif fScriptVar1 = (float*)GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); *fScriptVar1 -= CTimer::GetTimeStep() * *(float*)GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); return 0; @@ -4038,46 +3640,46 @@ int8 CRunningScript::ProcessCommands100To199(int32 command) case COMMAND_CREATE_CHAR: { CollectParameters(&m_nIp, 5); - switch (GET_INTEGER_PARAM(1)) { + switch (ScriptParams[1]) { case MI_COP: - if (GET_INTEGER_PARAM(0) == PEDTYPE_COP) - SET_INTEGER_PARAM(1, COP_STREET); + if (ScriptParams[0] == PEDTYPE_COP) + ScriptParams[1] = COP_STREET; break; case MI_SWAT: - if (GET_INTEGER_PARAM(0) == PEDTYPE_COP) - SET_INTEGER_PARAM(1, COP_SWAT); + if (ScriptParams[0] == PEDTYPE_COP) + ScriptParams[1] = COP_SWAT; break; case MI_FBI: - if (GET_INTEGER_PARAM(0) == PEDTYPE_COP) - SET_INTEGER_PARAM(1, COP_FBI); + if (ScriptParams[0] == PEDTYPE_COP) + ScriptParams[1] = COP_FBI; break; case MI_ARMY: - if (GET_INTEGER_PARAM(0) == PEDTYPE_COP) - SET_INTEGER_PARAM(1, COP_ARMY); + if (ScriptParams[0] == PEDTYPE_COP) + ScriptParams[1] = COP_ARMY; break; case MI_MEDIC: - if (GET_INTEGER_PARAM(0) == PEDTYPE_EMERGENCY) - SET_INTEGER_PARAM(1, PEDTYPE_EMERGENCY); + if (ScriptParams[0] == PEDTYPE_EMERGENCY) + ScriptParams[1] = PEDTYPE_EMERGENCY; break; case MI_FIREMAN: - if (GET_INTEGER_PARAM(0) == PEDTYPE_FIREMAN) - SET_INTEGER_PARAM(1, PEDTYPE_FIREMAN); + if (ScriptParams[0] == PEDTYPE_FIREMAN) + ScriptParams[1] = PEDTYPE_FIREMAN; break; default: break; } CPed* ped; - if (GET_INTEGER_PARAM(0) == PEDTYPE_COP) - ped = new CCopPed((eCopType)GET_INTEGER_PARAM(1)); - else if (GET_INTEGER_PARAM(0) == PEDTYPE_EMERGENCY || GET_INTEGER_PARAM(0) == PEDTYPE_FIREMAN) - ped = new CEmergencyPed(GET_INTEGER_PARAM(1)); + if (ScriptParams[0] == PEDTYPE_COP) + ped = new CCopPed((eCopType)ScriptParams[1]); + else if (ScriptParams[0] == PEDTYPE_EMERGENCY || ScriptParams[0] == PEDTYPE_FIREMAN) + ped = new CEmergencyPed(ScriptParams[1]); else - ped = new CCivilianPed((ePedType)GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); + ped = new CCivilianPed((ePedType)ScriptParams[0], ScriptParams[1]); ped->CharCreatedBy = MISSION_CHAR; ped->bRespondsToThreats = false; ped->bAllowMedicsToReviveMe = false; ped->bIsPlayerFriend = false; - CVector pos = GET_VECTOR_PARAM(2); + CVector pos = *(CVector*)&ScriptParams[2]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); pos.z += 1.0f; @@ -4089,29 +3691,29 @@ int8 CRunningScript::ProcessCommands100To199(int32 command) CWorld::Add(ped); ped->m_nZoneLevel = CTheZones::GetLevelFromPosition(&pos); CPopulation::ms_nTotalMissionPeds++; - SET_INTEGER_PARAM(0, CPools::GetPedPool()->GetIndex(ped)); + ScriptParams[0] = CPools::GetPedPool()->GetIndex(ped); StoreParameters(&m_nIp, 1); if (m_bIsMissionScript) - CTheScripts::MissionCleanUp.AddEntityToList(GET_INTEGER_PARAM(0), CLEANUP_CHAR); + CTheScripts::MissionCleanUp.AddEntityToList(ScriptParams[0], CLEANUP_CHAR); return 0; } case COMMAND_DELETE_CHAR: { CollectParameters(&m_nIp, 1); - CPed* ped = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* ped = CPools::GetPedPool()->GetAt(ScriptParams[0]); CTheScripts::RemoveThisPed(ped); if (m_bIsMissionScript) - CTheScripts::MissionCleanUp.RemoveEntityFromList(GET_INTEGER_PARAM(0), CLEANUP_CHAR); + CTheScripts::MissionCleanUp.RemoveEntityFromList(ScriptParams[0], CLEANUP_CHAR); return 0; } case COMMAND_CHAR_WANDER_DIR: { CollectParameters(&m_nIp, 2); - CPed* ped = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* ped = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(ped); ped->ClearAll(); - int8 path = GET_INTEGER_PARAM(1); - if (GET_INTEGER_PARAM(1) < 0 || GET_INTEGER_PARAM(1) > 7) + int8 path = ScriptParams[1]; + if (ScriptParams[1] < 0 || ScriptParams[1] > 7) // Max number GetRandomNumberInRange returns is max-1 #ifdef FIX_BUGS path = CGeneral::GetRandomNumberInRange(0, 8); @@ -4126,19 +3728,19 @@ int8 CRunningScript::ProcessCommands100To199(int32 command) case COMMAND_CHAR_FOLLOW_PATH: { CollectParameters(&m_nIp, 6); - CPed* ped = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* ped = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(ped); if (ped->GetPedState() == PED_ATTACK || ped->GetPedState() == PED_FIGHT || !ped->IsPedInControl()) return 0; - CVector pos = GET_VECTOR_PARAM(1); + CVector pos = *(CVector*)&ScriptParams[1]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); - float radius = GET_FLOAT_PARAM(4); + float radius = *(float*)&ScriptParams[4]; eMoveState state; - switch (GET_INTEGER_PARAM(5)) { + switch (ScriptParams[5]) { case 0: state = PEDMOVE_WALK; break; case 1: state = PEDMOVE_RUN; break; - default: state = PEDMOVE_WALK; break; + default: assert(0); } ped->ClearAll(); ped->m_pathNodeTimer = 0; @@ -4148,7 +3750,7 @@ int8 CRunningScript::ProcessCommands100To199(int32 command) case COMMAND_CHAR_SET_IDLE: { CollectParameters(&m_nIp, 1); - CPed* ped = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* ped = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(ped); ped->bScriptObjectiveCompleted = false; ped->SetObjective(OBJECTIVE_WAIT_ON_FOOT); @@ -4157,7 +3759,7 @@ int8 CRunningScript::ProcessCommands100To199(int32 command) case COMMAND_GET_CHAR_COORDINATES: { CollectParameters(&m_nIp, 1); - CPed* ped = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* ped = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(ped); CVehicle* vehicle; CVector pos; @@ -4170,21 +3772,21 @@ int8 CRunningScript::ProcessCommands100To199(int32 command) pos = vehicle->GetPosition(); else pos = ped->GetPosition(); - SET_VECTOR_PARAM(0, pos); + *(CVector*)&ScriptParams[0] = pos; StoreParameters(&m_nIp, 3); return 0; } case COMMAND_SET_CHAR_COORDINATES: { CollectParameters(&m_nIp, 4); - CPed* ped = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* ped = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(ped); CVehicle* vehicle; if (ped->bInVehicle) vehicle = ped->m_pMyVehicle; else vehicle = nil; - CVector pos = GET_VECTOR_PARAM(1); + CVector pos = *(CVector*)&ScriptParams[1]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); // removed dumb stuff again @@ -4207,74 +3809,72 @@ int8 CRunningScript::ProcessCommands100To199(int32 command) } return 0; } + /* case COMMAND_IS_CHAR_STILL_ALIVE: { CollectParameters(&m_nIp, 1); - CPed* ped = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - UpdateCompareFlag(ped && !ped->DyingOrDead()); + CPed* ped = CPools::GetPedPool()->GetAt(ScriptParams[0]); + UpdateCompareFlag(ped && ped->GetPedState() != PED_DEAD && ped->GetPedState() != PED_DIE); return 0; } + */ case COMMAND_IS_CHAR_IN_AREA_2D: { CollectParameters(&m_nIp, 6); - CPed* ped = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* ped = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(ped); CVehicle* vehicle; if (ped->bInVehicle) vehicle = ped->m_pMyVehicle; else vehicle = nil; - float x1 = GET_FLOAT_PARAM(1); - float y1 = GET_FLOAT_PARAM(2); - float x2 = GET_FLOAT_PARAM(3); - float y2 = GET_FLOAT_PARAM(4); + float x1 = *(float*)&ScriptParams[1]; + float y1 = *(float*)&ScriptParams[2]; + float x2 = *(float*)&ScriptParams[3]; + float y2 = *(float*)&ScriptParams[4]; if (vehicle) UpdateCompareFlag(ped->m_pMyVehicle->IsWithinArea(x1, y1, x2, y2)); else UpdateCompareFlag(ped->IsWithinArea(x1, y1, x2, y2)); - if (GET_INTEGER_PARAM(5)) + if (ScriptParams[5]) CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, x1, y1, x2, y2, MAP_Z_LOW_LIMIT); - /* if (CTheScripts::DbgFlag) CTheScripts::DrawDebugSquare(x1, y1, x2, y2); - */ return 0; } case COMMAND_IS_CHAR_IN_AREA_3D: { CollectParameters(&m_nIp, 8); - CPed* ped = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* ped = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(ped); CVehicle* vehicle; if (ped->bInVehicle) vehicle = ped->m_pMyVehicle; else vehicle = nil; - float x1 = GET_FLOAT_PARAM(1); - float y1 = GET_FLOAT_PARAM(2); - float z1 = GET_FLOAT_PARAM(3); - float x2 = GET_FLOAT_PARAM(4); - float y2 = GET_FLOAT_PARAM(5); - float z2 = GET_FLOAT_PARAM(6); + float x1 = *(float*)&ScriptParams[1]; + float y1 = *(float*)&ScriptParams[2]; + float z1 = *(float*)&ScriptParams[3]; + float x2 = *(float*)&ScriptParams[4]; + float y2 = *(float*)&ScriptParams[5]; + float z2 = *(float*)&ScriptParams[6]; if (vehicle) UpdateCompareFlag(ped->m_pMyVehicle->IsWithinArea(x1, y1, z1, x2, y2, z2)); else UpdateCompareFlag(ped->IsWithinArea(x1, y1, z1, x2, y2, z2)); - if (GET_INTEGER_PARAM(7)) + if (ScriptParams[7]) CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, x1, y1, x2, y2, (z1 + z2) / 2); - /* if (CTheScripts::DbgFlag) CTheScripts::DrawDebugCube(x1, y1, z1, x2, y2, z2); - */ return 0; } case COMMAND_CREATE_CAR: { CollectParameters(&m_nIp, 4); int32 handle; - if (CModelInfo::IsBoatModel(GET_INTEGER_PARAM(0))) { - CBoat* boat = new CBoat(GET_INTEGER_PARAM(0), MISSION_VEHICLE); - CVector pos = GET_VECTOR_PARAM(1); + if (CModelInfo::IsBoatModel(ScriptParams[0])) { + CBoat* boat = new CBoat(ScriptParams[0], MISSION_VEHICLE); + CVector pos = *(CVector*)&ScriptParams[1]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); pos.z += boat->GetDistanceFromCentreOfMassToBaseOfModel(); @@ -4293,13 +3893,13 @@ int8 CRunningScript::ProcessCommands100To199(int32 command) else { CVehicle* car; - if (!CModelInfo::IsBikeModel(GET_INTEGER_PARAM(0))) - car = new CAutomobile(GET_INTEGER_PARAM(0), MISSION_VEHICLE); + if (!CModelInfo::IsBikeModel(ScriptParams[0])) + car = new CAutomobile(ScriptParams[0], MISSION_VEHICLE); else { - car = new CBike(GET_INTEGER_PARAM(0), MISSION_VEHICLE); + car = new CBike(ScriptParams[0], MISSION_VEHICLE); ((CBike*)(car))->bIsStanding = true; } - CVector pos = GET_VECTOR_PARAM(1); + CVector pos = *(CVector*)&ScriptParams[1]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); pos.z += car->GetDistanceFromCentreOfMassToBaseOfModel(); @@ -4314,14 +3914,14 @@ int8 CRunningScript::ProcessCommands100To199(int32 command) car->AutoPilot.m_nCruiseSpeed = car->AutoPilot.m_fMaxTrafficSpeed = 9.0f; car->AutoPilot.m_nCurrentLane = car->AutoPilot.m_nNextLane = 0; car->bEngineOn = false; - car->m_nZoneLevel = CTheZones::GetLevelFromPosition(&pos); // TODO: gpTheZones + car->m_nZoneLevel = CTheZones::GetLevelFromPosition(&pos); car->bHasBeenOwnedByPlayer = true; if (m_bIsMissionScript) car->bIsStaticWaitingForCollision = true; CWorld::Add(car); handle = CPools::GetVehiclePool()->GetIndex(car); } - SET_INTEGER_PARAM(0, handle); + ScriptParams[0] = handle; StoreParameters(&m_nIp, 1); if (m_bIsMissionScript) CTheScripts::MissionCleanUp.AddEntityToList(handle, CLEANUP_CAR); @@ -4330,26 +3930,25 @@ int8 CRunningScript::ProcessCommands100To199(int32 command) case COMMAND_DELETE_CAR: { CollectParameters(&m_nIp, 1); - CVehicle* car = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* car = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); if (car) { CWorld::Remove(car); CWorld::RemoveReferencesToDeletedObject(car); delete car; } if (m_bIsMissionScript) - CTheScripts::MissionCleanUp.RemoveEntityFromList(GET_INTEGER_PARAM(0), CLEANUP_CAR); + CTheScripts::MissionCleanUp.RemoveEntityFromList(ScriptParams[0], CLEANUP_CAR); return 0; } case COMMAND_CAR_GOTO_COORDINATES: { CollectParameters(&m_nIp, 4); - CVehicle* car = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* car = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(car); - CVector pos = GET_VECTOR_PARAM(1); + CVector pos = *(CVector*)&ScriptParams[1]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); pos.z += car->GetDistanceFromCentreOfMassToBaseOfModel(); - uint8 nOldMission = car->AutoPilot.m_nCarMission; if (CCarCtrl::JoinCarWithRoadSystemGotoCoors(car, pos, false)) car->AutoPilot.m_nCarMission = MISSION_GOTOCOORDS_STRAIGHT; else @@ -4357,14 +3956,13 @@ int8 CRunningScript::ProcessCommands100To199(int32 command) car->SetStatus(STATUS_PHYSICS); car->bEngineOn = true; car->AutoPilot.m_nCruiseSpeed = Max(1, car->AutoPilot.m_nCruiseSpeed); - if (nOldMission != car->AutoPilot.m_nCarMission) - car->AutoPilot.m_nAntiReverseTimer = CTimer::GetTimeInMilliseconds(); + car->AutoPilot.m_nAntiReverseTimer = CTimer::GetTimeInMilliseconds(); return 0; } case COMMAND_CAR_WANDER_RANDOMLY: { CollectParameters(&m_nIp, 1); - CVehicle* car = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* car = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(car); CCarCtrl::JoinCarWithRoadSystem(car); car->AutoPilot.m_nCarMission = MISSION_CRUISE; @@ -4376,7 +3974,7 @@ int8 CRunningScript::ProcessCommands100To199(int32 command) case COMMAND_CAR_SET_IDLE: { CollectParameters(&m_nIp, 1); - CVehicle* car = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* car = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(car); car->AutoPilot.m_nCarMission = MISSION_NONE; return 0; @@ -4384,18 +3982,18 @@ int8 CRunningScript::ProcessCommands100To199(int32 command) case COMMAND_GET_CAR_COORDINATES: { CollectParameters(&m_nIp, 1); - CVehicle* car = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* car = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(car); - SET_VECTOR_PARAM(0, car->GetPosition()); + *(CVector*)&ScriptParams[0] = car->GetPosition(); StoreParameters(&m_nIp, 3); return 0; } case COMMAND_SET_CAR_COORDINATES: { CollectParameters(&m_nIp, 4); - CVehicle* car = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* car = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(car); - CVector pos = GET_VECTOR_PARAM(1); + CVector pos = *(CVector*)&ScriptParams[1]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); pos.z += car->GetDistanceFromCentreOfMassToBaseOfModel(); @@ -4441,84 +4039,80 @@ int8 CRunningScript::ProcessCommands100To199(int32 command) } return 0; } + /* case COMMAND_IS_CAR_STILL_ALIVE: { CollectParameters(&m_nIp, 1); - CVehicle* car = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* car = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); UpdateCompareFlag(car && car->GetStatus() != STATUS_WRECKED && (car->IsBoat() || !car->bIsInWater)); return 0; } + */ case COMMAND_SET_CAR_CRUISE_SPEED: { CollectParameters(&m_nIp, 2); - CVehicle* car = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* car = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(car); #if defined MISSION_REPLAY && defined SIMPLIER_MISSIONS - car->AutoPilot.m_nCruiseSpeed = GET_FLOAT_PARAM(1); + car->AutoPilot.m_nCruiseSpeed = *(float*)&ScriptParams[1]; if (missionRetryScriptIndex == 40 && car->GetModelIndex() == MI_CHEETAH) // Turismo car->AutoPilot.m_nCruiseSpeed = 8 * car->AutoPilot.m_nCruiseSpeed / 10; car->AutoPilot.m_nCruiseSpeed = Min(car->AutoPilot.m_nCruiseSpeed, 60.0f * car->pHandling->Transmission.fMaxCruiseVelocity); #else - car->AutoPilot.m_nCruiseSpeed = Min(GET_FLOAT_PARAM(1), 60.0f * car->pHandling->Transmission.fMaxCruiseVelocity); + car->AutoPilot.m_nCruiseSpeed = Min(*(float*)&ScriptParams[1], 60.0f * car->pHandling->Transmission.fMaxCruiseVelocity); #endif return 0; } case COMMAND_SET_CAR_DRIVING_STYLE: { CollectParameters(&m_nIp, 2); - CVehicle* car = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* car = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(car); - car->AutoPilot.m_nDrivingStyle = (uint8)GET_INTEGER_PARAM(1); + car->AutoPilot.m_nDrivingStyle = (uint8)ScriptParams[1]; return 0; } case COMMAND_SET_CAR_MISSION: { CollectParameters(&m_nIp, 2); - CVehicle* car = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* car = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(car); - if ((uint8)GET_INTEGER_PARAM(1) != car->AutoPilot.m_nCarMission) { - car->AutoPilot.m_nCarMission = (uint8)GET_INTEGER_PARAM(1); - car->AutoPilot.m_nAntiReverseTimer = CTimer::GetTimeInMilliseconds(); - } + car->AutoPilot.m_nCarMission = (uint8)ScriptParams[1]; + car->AutoPilot.m_nAntiReverseTimer = CTimer::GetTimeInMilliseconds(); car->bEngineOn = true; return 0; } case COMMAND_IS_CAR_IN_AREA_2D: { CollectParameters(&m_nIp, 6); - CVehicle* vehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* vehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(vehicle); - float x1 = GET_FLOAT_PARAM(1); - float y1 = GET_FLOAT_PARAM(2); - float x2 = GET_FLOAT_PARAM(3); - float y2 = GET_FLOAT_PARAM(4); + float x1 = *(float*)&ScriptParams[1]; + float y1 = *(float*)&ScriptParams[2]; + float x2 = *(float*)&ScriptParams[3]; + float y2 = *(float*)&ScriptParams[4]; UpdateCompareFlag(vehicle->IsWithinArea(x1, y1, x2, y2)); - if (GET_INTEGER_PARAM(5)) + if (ScriptParams[5]) CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, x1, y1, x2, y2, MAP_Z_LOW_LIMIT); - /* if (CTheScripts::DbgFlag) CTheScripts::DrawDebugSquare(x1, y1, x2, y2); - */ return 0; } case COMMAND_IS_CAR_IN_AREA_3D: { CollectParameters(&m_nIp, 8); - CVehicle* vehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* vehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(vehicle); - float x1 = GET_FLOAT_PARAM(1); - float y1 = GET_FLOAT_PARAM(2); - float z1 = GET_FLOAT_PARAM(3); - float x2 = GET_FLOAT_PARAM(4); - float y2 = GET_FLOAT_PARAM(5); - float z2 = GET_FLOAT_PARAM(6); + float x1 = *(float*)&ScriptParams[1]; + float y1 = *(float*)&ScriptParams[2]; + float z1 = *(float*)&ScriptParams[3]; + float x2 = *(float*)&ScriptParams[4]; + float y2 = *(float*)&ScriptParams[5]; + float z2 = *(float*)&ScriptParams[6]; UpdateCompareFlag(vehicle->IsWithinArea(x1, y1, z1, x2, y2, z2)); - if (GET_INTEGER_PARAM(7)) + if (ScriptParams[7]) CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, x1, y1, x2, y2, (z1 + z2) / 2); - /* if (CTheScripts::DbgFlag) CTheScripts::DrawDebugCube(x1, y1, z1, x2, y2, z2); - */ return 0; } case COMMAND_SPECIAL_0: @@ -4539,54 +4133,56 @@ int8 CRunningScript::ProcessCommands100To199(int32 command) AllowMissionReplay = 1; #endif CollectParameters(&m_nIp, 2); - CMessages::AddBigMessage(key, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1) - 1); + CMessages::AddBigMessage(key, ScriptParams[0], ScriptParams[1] - 1); return 0; } case COMMAND_PRINT: { wchar* key = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 2); - CMessages::AddMessage(key, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); + CMessages::AddMessage(key, ScriptParams[0], ScriptParams[1]); return 0; } case COMMAND_PRINT_NOW: { wchar* key = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 2); - CMessages::AddMessageJumpQ(key, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); + CMessages::AddMessageJumpQ(key, ScriptParams[0], ScriptParams[1]); return 0; } + /* case COMMAND_PRINT_SOON: { wchar* key = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 2); - CMessages::AddMessageSoon(key, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); + CMessages::AddMessageSoon(key, ScriptParams[0], ScriptParams[1]); return 0; } + */ case COMMAND_CLEAR_PRINTS: CMessages::ClearMessages(); return 0; case COMMAND_GET_TIME_OF_DAY: - SET_INTEGER_PARAM(0, CClock::GetHours()); - SET_INTEGER_PARAM(1, CClock::GetMinutes()); + ScriptParams[0] = CClock::GetHours(); + ScriptParams[1] = CClock::GetMinutes(); StoreParameters(&m_nIp, 2); return 0; case COMMAND_SET_TIME_OF_DAY: CollectParameters(&m_nIp, 2); - CClock::SetGameClock(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); + CClock::SetGameClock(ScriptParams[0], ScriptParams[1]); return 0; case COMMAND_GET_MINUTES_TO_TIME_OF_DAY: CollectParameters(&m_nIp, 2); - SET_INTEGER_PARAM(0, CClock::GetGameClockMinutesUntil(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1))); + ScriptParams[0] = CClock::GetGameClockMinutesUntil(ScriptParams[0], ScriptParams[1]); StoreParameters(&m_nIp, 1); return 0; case COMMAND_IS_POINT_ON_SCREEN: { CollectParameters(&m_nIp, 4); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= -100) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); - UpdateCompareFlag(TheCamera.IsSphereVisible(pos, GET_FLOAT_PARAM(3))); + UpdateCompareFlag(TheCamera.IsSphereVisible(pos, *(float*)&ScriptParams[3])); return 0; } case COMMAND_DEBUG_ON: @@ -4595,14 +4191,14 @@ int8 CRunningScript::ProcessCommands100To199(int32 command) case COMMAND_DEBUG_OFF: CTheScripts::DbgFlag = false; return 0; + /* case COMMAND_RETURN_TRUE: UpdateCompareFlag(true); - ReturnFromGosubOrFunction(); return 0; case COMMAND_RETURN_FALSE: UpdateCompareFlag(false); - ReturnFromGosubOrFunction(); return 0; + */ //case COMMAND_VAR_INT: default: script_assert(0); @@ -4629,21 +4225,18 @@ int8 CRunningScript::ProcessCommands200To299(int32 command) case COMMAND_WHILE: case COMMAND_WHILENOT: case COMMAND_ENDWHILE: - case COMMAND_214: - case COMMAND_215: - case COMMAND_216: - case COMMAND_217: - case COMMAND_218: */ case COMMAND_ANDOR: CollectParameters(&m_nIp, 1); - m_nAndOrState = GET_INTEGER_PARAM(0); + m_nAndOrState = ScriptParams[0]; if (m_nAndOrState == ANDOR_NONE){ m_bCondResult = false; // pointless }else if (m_nAndOrState >= ANDS_1 && m_nAndOrState <= ANDS_8){ m_bCondResult = true; + m_nAndOrState++; }else if (m_nAndOrState >= ORS_1 && m_nAndOrState <= ORS_8){ m_bCondResult = false; + m_nAndOrState++; }else{ script_assert(0 && "COMMAND_ANDOR: invalid ANDOR state"); } @@ -4651,7 +4244,7 @@ int8 CRunningScript::ProcessCommands200To299(int32 command) case COMMAND_LAUNCH_MISSION: { CollectParameters(&m_nIp, 1); - CRunningScript* pNew = CTheScripts::StartNewScript(GET_INTEGER_PARAM(0)); + CRunningScript* pNew = CTheScripts::StartNewScript(ScriptParams[0]); pNew->m_bIsMissionScript = true; return 0; } @@ -4665,7 +4258,7 @@ int8 CRunningScript::ProcessCommands200To299(int32 command) case COMMAND_STORE_CAR_CHAR_IS_IN: { CollectParameters(&m_nIp, 1); - CPed* ped = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* ped = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(ped); CVehicle* pCurrent = nil; if (ped->bInVehicle) { @@ -4710,14 +4303,14 @@ int8 CRunningScript::ProcessCommands200To299(int32 command) break; } } - SET_INTEGER_PARAM(0, CTheScripts::StoreVehicleIndex); + ScriptParams[0] = CTheScripts::StoreVehicleIndex; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_STORE_CAR_PLAYER_IS_IN: { CollectParameters(&m_nIp, 1); - CPed* ped = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* ped = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(ped); if (!ped->bInVehicle) return 0; // No value written to output variable @@ -4761,15 +4354,15 @@ int8 CRunningScript::ProcessCommands200To299(int32 command) break; } } - SET_INTEGER_PARAM(0, CTheScripts::StoreVehicleIndex); + ScriptParams[0] = CTheScripts::StoreVehicleIndex; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_IS_CHAR_IN_CAR: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - CVehicle* pCheckedVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); + CVehicle* pCheckedVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[1]); CVehicle* pActualVehicle = pPed->bInVehicle ? pPed->m_pMyVehicle : nil; UpdateCompareFlag(pActualVehicle && pActualVehicle == pCheckedVehicle); return 0; @@ -4777,51 +4370,51 @@ int8 CRunningScript::ProcessCommands200To299(int32 command) case COMMAND_IS_PLAYER_IN_CAR: { CollectParameters(&m_nIp, 2); - CVehicle* pCheckedVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CVehicle* pCheckedVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[1]); + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; UpdateCompareFlag(pPed->bInVehicle && pPed->m_pMyVehicle == pCheckedVehicle); return 0; } case COMMAND_IS_CHAR_IN_MODEL: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); CVehicle* pActualVehicle = pPed->bInVehicle ? pPed->m_pMyVehicle : nil; - UpdateCompareFlag(pActualVehicle && pActualVehicle->GetModelIndex() == GET_INTEGER_PARAM(1)); + UpdateCompareFlag(pActualVehicle && pActualVehicle->GetModelIndex() == ScriptParams[1]); return 0; } case COMMAND_IS_PLAYER_IN_MODEL: { CollectParameters(&m_nIp, 2); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; - UpdateCompareFlag(pPed->bInVehicle && pPed->m_pMyVehicle->GetModelIndex() == GET_INTEGER_PARAM(1)); + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; + UpdateCompareFlag(pPed->bInVehicle && pPed->m_pMyVehicle->GetModelIndex() == ScriptParams[1]); return 0; } case COMMAND_IS_CHAR_IN_ANY_CAR: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); UpdateCompareFlag(pPed->bInVehicle && pPed->m_pMyVehicle); return 0; } case COMMAND_IS_PLAYER_IN_ANY_CAR: { CollectParameters(&m_nIp, 1); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; UpdateCompareFlag(pPed->bInVehicle && pPed->m_pMyVehicle); return 0; } case COMMAND_IS_BUTTON_PRESSED: { CollectParameters(&m_nIp, 2); - UpdateCompareFlag(GetPadState(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)) != 0); + UpdateCompareFlag(GetPadState(ScriptParams[0], ScriptParams[1]) != 0); return 0; } /* case COMMAND_GET_PAD_STATE: { CollectParameters(&m_nIp, 1); - SET_INTEGER_PARAM(0, GetPadState(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1))); + ScriptParams[0] = GetPadState(ScriptParams[0], ScriptParams[1]); StoreParameters(&m_nIp, 1); return 0; } @@ -4881,10 +4474,10 @@ int8 CRunningScript::ProcessCommands200To299(int32 command) case COMMAND_CREATE_OBJECT: { CollectParameters(&m_nIp, 4); - int mi = GET_INTEGER_PARAM(0) >= 0 ? GET_INTEGER_PARAM(0) : CTheScripts::UsedObjectArray[-GET_INTEGER_PARAM(0)].index; + int mi = ScriptParams[0] >= 0 ? ScriptParams[0] : CTheScripts::UsedObjectArray[-ScriptParams[0]].index; CObject* pObj = new CObject(mi, false); pObj->ObjectCreatedBy = MISSION_OBJECT; - CVector pos = GET_VECTOR_PARAM(1); + CVector pos = *(CVector*)&ScriptParams[1]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); pos.z += pObj->GetDistanceFromCentreOfMassToBaseOfModel(); @@ -4892,72 +4485,73 @@ int8 CRunningScript::ProcessCommands200To299(int32 command) pObj->SetOrientation(0.0f, 0.0f, 0.0f); pObj->GetMatrix().UpdateRW(); pObj->UpdateRwFrame(); + CBaseModelInfo* pModelInfo = CModelInfo::GetModelInfo(mi); + if (pModelInfo->IsBuilding() && ((CSimpleModelInfo*)pModelInfo)->m_isBigBuilding) + pObj->SetupBigBuilding(); CTheScripts::ClearSpaceForMissionEntity(pos, pObj); CWorld::Add(pObj); - SET_INTEGER_PARAM(0, CPools::GetObjectPool()->GetIndex(pObj)); + ScriptParams[0] = CPools::GetObjectPool()->GetIndex(pObj); StoreParameters(&m_nIp, 1); if (m_bIsMissionScript) - CTheScripts::MissionCleanUp.AddEntityToList(GET_INTEGER_PARAM(0), CLEANUP_OBJECT); + CTheScripts::MissionCleanUp.AddEntityToList(ScriptParams[0], CLEANUP_OBJECT); return 0; } case COMMAND_DELETE_OBJECT: { CollectParameters(&m_nIp, 1); - CObject* pObj = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObj = CPools::GetObjectPool()->GetAt(ScriptParams[0]); if (pObj){ CWorld::Remove(pObj); CWorld::RemoveReferencesToDeletedObject(pObj); delete pObj; } if (m_bIsMissionScript) - CTheScripts::MissionCleanUp.RemoveEntityFromList(GET_INTEGER_PARAM(0), CLEANUP_OBJECT); + CTheScripts::MissionCleanUp.RemoveEntityFromList(ScriptParams[0], CLEANUP_OBJECT); return 0; } case COMMAND_ADD_SCORE: CollectParameters(&m_nIp, 2); - CWorld::Players[GET_INTEGER_PARAM(0)].m_nMoney += GET_INTEGER_PARAM(1); - if (CWorld::Players[GET_INTEGER_PARAM(0)].m_nMoney < 0) - CWorld::Players[GET_INTEGER_PARAM(0)].m_nMoney = 0; + CWorld::Players[ScriptParams[0]].m_nMoney += ScriptParams[1]; + if (CWorld::Players[ScriptParams[0]].m_nMoney < 0) + CWorld::Players[ScriptParams[0]].m_nMoney = 0; return 0; case COMMAND_IS_SCORE_GREATER: CollectParameters(&m_nIp, 2); - UpdateCompareFlag(CWorld::Players[GET_INTEGER_PARAM(0)].m_nMoney > GET_INTEGER_PARAM(1)); + UpdateCompareFlag(CWorld::Players[ScriptParams[0]].m_nMoney > ScriptParams[1]); return 0; case COMMAND_STORE_SCORE: CollectParameters(&m_nIp, 1); - SET_INTEGER_PARAM(0, CWorld::Players[GET_INTEGER_PARAM(0)].m_nMoney); + ScriptParams[0] = CWorld::Players[ScriptParams[0]].m_nMoney; StoreParameters(&m_nIp, 1); return 0; case COMMAND_GIVE_REMOTE_CONTROLLED_CAR_TO_PLAYER: { CollectParameters(&m_nIp, 5); - CVector pos = GET_VECTOR_PARAM(1); + CVector pos = *(CVector*)&ScriptParams[1]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); - CVehicle* pVehicle = CRemote::GivePlayerRemoteControlledCar(pos.x, pos.y, pos.z, DEGTORAD(GET_FLOAT_PARAM(4)), MI_RCBANDIT); - SET_INTEGER_PARAM(0, CPools::GetVehiclePool()->GetIndex(pVehicle)); - StoreParameters(&m_nIp, 1); + CRemote::GivePlayerRemoteControlledCar(pos.x, pos.y, pos.z, DEGTORAD(*(float*)&ScriptParams[4]), MI_RCBANDIT); return 0; } case COMMAND_ALTER_WANTED_LEVEL: CollectParameters(&m_nIp, 2); - CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed->SetWantedLevel(GET_INTEGER_PARAM(1)); + CWorld::Players[ScriptParams[0]].m_pPed->SetWantedLevel(ScriptParams[1]); return 0; case COMMAND_ALTER_WANTED_LEVEL_NO_DROP: CollectParameters(&m_nIp, 2); - CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed->SetWantedLevelNoDrop(GET_INTEGER_PARAM(1)); + CWorld::Players[ScriptParams[0]].m_pPed->SetWantedLevelNoDrop(ScriptParams[1]); return 0; case COMMAND_IS_WANTED_LEVEL_GREATER: CollectParameters(&m_nIp, 2); - UpdateCompareFlag(CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed->m_pWanted->GetWantedLevel() > GET_INTEGER_PARAM(1)); + UpdateCompareFlag(CWorld::Players[ScriptParams[0]].m_pPed->m_pWanted->GetWantedLevel() > ScriptParams[1]); return 0; case COMMAND_CLEAR_WANTED_LEVEL: CollectParameters(&m_nIp, 1); - CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed->SetWantedLevel(0); + CWorld::Players[ScriptParams[0]].m_pPed->SetWantedLevel(0); return 0; case COMMAND_SET_DEATHARREST_STATE: CollectParameters(&m_nIp, 1); - m_bDeatharrestEnabled = (GET_INTEGER_PARAM(0) == 1); + m_bDeatharrestEnabled = (ScriptParams[0] == 1); return 0; case COMMAND_HAS_DEATHARREST_BEEN_EXECUTED: UpdateCompareFlag(m_bDeatharrestExecuted); @@ -4966,54 +4560,51 @@ int8 CRunningScript::ProcessCommands200To299(int32 command) case COMMAND_ADD_AMMO_TO_PLAYER: { CollectParameters(&m_nIp, 3); - CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed->GrantAmmo((eWeaponType)GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2)); + CWorld::Players[ScriptParams[0]].m_pPed->GrantAmmo((eWeaponType)ScriptParams[1], ScriptParams[2]); return 0; } */ case COMMAND_ADD_AMMO_TO_CHAR: { CollectParameters(&m_nIp, 3); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->GrantAmmo((eWeaponType)GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2)); + pPed->GrantAmmo((eWeaponType)ScriptParams[1], ScriptParams[2]); return 0; } //case COMMAND_ADD_AMMO_TO_CAR: - case COMMAND_IS_PLAYER_STILL_ALIVE: - CollectParameters(&m_nIp, 1); - UpdateCompareFlag(CWorld::Players[GET_INTEGER_PARAM(0)].m_WBState != WBSTATE_WASTED); - return 0; + //case COMMAND_IS_PLAYER_STILL_ALIVE: case COMMAND_IS_PLAYER_DEAD: CollectParameters(&m_nIp, 1); - UpdateCompareFlag(CWorld::Players[GET_INTEGER_PARAM(0)].m_WBState == WBSTATE_WASTED); + UpdateCompareFlag(CWorld::Players[ScriptParams[0]].m_WBState == WBSTATE_WASTED); return 0; case COMMAND_IS_CHAR_DEAD: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - UpdateCompareFlag(!pPed || pPed->DyingOrDead() || pPed->m_objective == OBJECTIVE_LEAVE_CAR_AND_DIE); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); + UpdateCompareFlag(!pPed || pPed->DyingOrDead()); return 0; } case COMMAND_IS_CAR_DEAD: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); UpdateCompareFlag(!pVehicle || pVehicle->GetStatus() == STATUS_WRECKED || pVehicle->bIsDrowning); return 0; } case COMMAND_SET_CHAR_THREAT_SEARCH: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->m_fearFlags |= GET_INTEGER_PARAM(1); + pPed->m_fearFlags |= ScriptParams[1]; return 0; } //case COMMAND_SET_CHAR_THREAT_REACTION: case COMMAND_SET_CHAR_OBJ_NO_OBJ: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); pPed->bScriptObjectiveCompleted = false; pPed->ClearObjective(); @@ -5026,7 +4617,7 @@ int8 CRunningScript::ProcessCommands200To299(int32 command) case COMMAND_IS_PLAYER_IN_ZONE: { CollectParameters(&m_nIp, 1); - CPlayerInfo* pPlayer = &CWorld::Players[GET_INTEGER_PARAM(0)]; + CPlayerInfo* pPlayer = &CWorld::Players[ScriptParams[0]]; char label[12]; CTheScripts::ReadTextLabelFromScript(&m_nIp, label); int zoneToCheck = CTheZones::FindZoneByLabelAndReturnIndex(label, ZONE_DEFAULT); @@ -5039,15 +4630,15 @@ int8 CRunningScript::ProcessCommands200To299(int32 command) } case COMMAND_IS_PLAYER_PRESSING_HORN: CollectParameters(&m_nIp, 1); - UpdateCompareFlag(CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed->GetPedState() == PED_DRIVING && - CPad::GetPad(GET_INTEGER_PARAM(0))->GetHorn()); + UpdateCompareFlag(CWorld::Players[ScriptParams[0]].m_pPed->GetPedState() == PED_DRIVING && + CPad::GetPad(ScriptParams[0])->GetHorn()); return 0; case COMMAND_HAS_CHAR_SPOTTED_PLAYER: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - UpdateCompareFlag(pPed->OurPedCanSeeThisOne(CWorld::Players[GET_INTEGER_PARAM(1)].m_pPed)); + UpdateCompareFlag(pPed->OurPedCanSeeThisOne(CWorld::Players[ScriptParams[1]].m_pPed)); return 0; } //case COMMAND_ORDER_CHAR_TO_BACKDOOR: @@ -5055,7 +4646,7 @@ int8 CRunningScript::ProcessCommands200To299(int32 command) case COMMAND_IS_CHAR_OBJECTIVE_PASSED: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); UpdateCompareFlag(pPed->bScriptObjectiveCompleted); return 0; @@ -5067,43 +4658,43 @@ int8 CRunningScript::ProcessCommands200To299(int32 command) case COMMAND_CREATE_CHAR_INSIDE_CAR: { CollectParameters(&m_nIp, 3); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - switch (GET_INTEGER_PARAM(2)) { + switch (ScriptParams[2]) { case MI_COP: - if (GET_INTEGER_PARAM(1) == PEDTYPE_COP) - SET_INTEGER_PARAM(2, COP_STREET); + if (ScriptParams[1] == PEDTYPE_COP) + ScriptParams[2] = COP_STREET; break; case MI_SWAT: - if (GET_INTEGER_PARAM(1) == PEDTYPE_COP) - SET_INTEGER_PARAM(2, COP_SWAT); + if (ScriptParams[1] == PEDTYPE_COP) + ScriptParams[2] = COP_SWAT; break; case MI_FBI: - if (GET_INTEGER_PARAM(1) == PEDTYPE_COP) - SET_INTEGER_PARAM(2, COP_FBI); + if (ScriptParams[1] == PEDTYPE_COP) + ScriptParams[2] = COP_FBI; break; case MI_ARMY: - if (GET_INTEGER_PARAM(1) == PEDTYPE_COP) - SET_INTEGER_PARAM(2, COP_ARMY); + if (ScriptParams[1] == PEDTYPE_COP) + ScriptParams[2] = COP_ARMY; break; case MI_MEDIC: - if (GET_INTEGER_PARAM(1) == PEDTYPE_EMERGENCY) - SET_INTEGER_PARAM(2, PEDTYPE_EMERGENCY); + if (ScriptParams[1] == PEDTYPE_EMERGENCY) + ScriptParams[2] = PEDTYPE_EMERGENCY; break; case MI_FIREMAN: - if (GET_INTEGER_PARAM(1) == PEDTYPE_FIREMAN) - SET_INTEGER_PARAM(2, PEDTYPE_FIREMAN); + if (ScriptParams[1] == PEDTYPE_FIREMAN) + ScriptParams[2] = PEDTYPE_FIREMAN; break; default: break; } CPed* pPed; - if (GET_INTEGER_PARAM(1) == PEDTYPE_COP) - pPed = new CCopPed((eCopType)GET_INTEGER_PARAM(2)); - else if (GET_INTEGER_PARAM(1) == PEDTYPE_EMERGENCY || GET_INTEGER_PARAM(1) == PEDTYPE_FIREMAN) - pPed = new CEmergencyPed(GET_INTEGER_PARAM(2)); + if (ScriptParams[1] == PEDTYPE_COP) + pPed = new CCopPed((eCopType)ScriptParams[2]); + else if (ScriptParams[1] == PEDTYPE_EMERGENCY || ScriptParams[1] == PEDTYPE_FIREMAN) + pPed = new CEmergencyPed(ScriptParams[2]); else - pPed = new CCivilianPed((ePedType)GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2)); + pPed = new CCivilianPed((ePedType)ScriptParams[1], ScriptParams[2]); pPed->CharCreatedBy = MISSION_CHAR; pPed->bRespondsToThreats = false; pPed->bAllowMedicsToReviveMe = false; @@ -5113,6 +4704,7 @@ int8 CRunningScript::ProcessCommands200To299(int32 command) pPed->SetPosition(pVehicle->GetPosition()); pPed->SetOrientation(0.0f, 0.0f, 0.0f); pPed->SetPedState(PED_DRIVING); + CPopulation::ms_nTotalMissionPeds++; script_assert(!pVehicle->pDriver); pVehicle->pDriver = pPed; pVehicle->pDriver->RegisterReference((CEntity**)&pVehicle->pDriver); @@ -5127,18 +4719,17 @@ int8 CRunningScript::ProcessCommands200To299(int32 command) pPed->AddInCarAnims(pVehicle, true); pPed->m_nZoneLevel = CTheZones::GetLevelFromPosition(&pPed->GetPosition()); CWorld::Add(pPed); - CPopulation::ms_nTotalMissionPeds++; - SET_INTEGER_PARAM(0, CPools::GetPedPool()->GetIndex(pPed)); + ScriptParams[0] = CPools::GetPedPool()->GetIndex(pPed); StoreParameters(&m_nIp, 1); if (m_bIsMissionScript) - CTheScripts::MissionCleanUp.AddEntityToList(GET_INTEGER_PARAM(0), CLEANUP_CHAR); + CTheScripts::MissionCleanUp.AddEntityToList(ScriptParams[0], CLEANUP_CHAR); return 0; } case COMMAND_WARP_PLAYER_FROM_CAR_TO_COORD: { CollectParameters(&m_nIp, 4); - CVector pos = GET_VECTOR_PARAM(1); - CPlayerInfo* pPlayer = &CWorld::Players[GET_INTEGER_PARAM(0)]; + CVector pos = *(CVector*)&ScriptParams[1]; + CPlayerInfo* pPlayer = &CWorld::Players[ScriptParams[0]]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); if (pPlayer->m_pPed->bInVehicle){ @@ -5181,24 +4772,6 @@ int8 CRunningScript::ProcessCommands200To299(int32 command) return -1; } -void CRunningScript::ReturnFromGosubOrFunction() -{ - uint32 val = m_nIp = m_anStack[--m_nStackPointer]; - if (!(m_nIp & BIT(STACKVALUE_IS_FUNCTION_CALL_BIT))) - return; - if (m_nIp & BIT(STACKVALUE_INVERT_RETURN_BIT)) - m_bCondResult = !m_bCondResult; - m_nIp = m_nIp & STACKVALUE_IP_MASK; - uint8 nInputParameters = CTheScripts::Read1ByteFromScript(&m_nIp); - uint8 nOutputParameters = CTheScripts::Read1ByteFromScript(&m_nIp); - uint8 nLocalsOffset = CTheScripts::Read1ByteFromScript(&m_nIp); - for (int i = 0; i < nOutputParameters; i++) - ScriptParams[i] = m_anLocalVariables[m_nLocalsPointer + nInputParameters + i]; - m_nIp += val >> STACKVALUE_IP_PARAMS_OFFSET; - m_nLocalsPointer -= nLocalsOffset; - StoreParameters(&m_nIp, nOutputParameters); -} - #ifdef MISSION_REPLAY bool CRunningScript::CanAllowMissionReplay() @@ -5269,19 +4842,23 @@ CTheScripts::SwitchToMission(int32 mission) CStats::LastMissionPassedName[0] = '\0'; #endif CTimer::Suspend(); - int offset = CTheScripts::MultiScriptArray[mission] + 8; - int size = CTheScripts::MultiScriptArray[mission + 1] - CTheScripts::MultiScriptArray[mission]; - if (size <= 0) - size = CTheScripts::LargestMissionScriptSize; - CFileMgr::Seek(gScriptsFile, offset, 0); - CFileMgr::Read(gScriptsFile, (const char*)&CTheScripts::ScriptSpace[CTheScripts::MainScriptSize], size); - CRunningScript* pMissionScript = CTheScripts::StartNewScript(CTheScripts::MainScriptSize); + int offset = CTheScripts::MultiScriptArray[mission]; +#ifdef USE_DEBUG_SCRIPT_LOADER + CFileMgr::ChangeDir("\\data\\"); + int handle = CFileMgr::OpenFile(scriptfile, "rb"); + CFileMgr::ChangeDir("\\"); +#else + CFileMgr::ChangeDir("\\"); + int handle = CFileMgr::OpenFile("data\\main.scm", "rb"); +#endif + CFileMgr::Seek(handle, offset, 0); + CFileMgr::Read(handle, (const char*)&CTheScripts::ScriptSpace[SIZE_MAIN_SCRIPT], SIZE_MISSION_SCRIPT); + CFileMgr::CloseFile(handle); + CRunningScript* pMissionScript = CTheScripts::StartNewScript(SIZE_MAIN_SCRIPT); CTimer::Resume(); pMissionScript->m_bIsMissionScript = true; pMissionScript->m_bMissionFlag = true; CTheScripts::bAlreadyRunningAMissionScript = true; - memset(&CTheScripts::ScriptSpace[CTheScripts::NumTrueGlobals * 4 + 8], 0, CTheScripts::MostGlobals * 4); CGameLogic::ClearShortCut(); - pMissionScript->Process(); } #endif diff --git a/src/control/Script.h b/src/control/Script.h index 8b54f28..80c0536 100644 --- a/src/control/Script.h +++ b/src/control/Script.h @@ -1,9 +1,7 @@ #pragma once -#include "Font.h" -#include "Ped.h" +#include "Font.h" #include "PedType.h" #include "Text.h" -#include "sList.h" #include "Sprite2d.h" class CEntity; @@ -19,7 +17,7 @@ class CRunningScript; extern int32 ScriptParams[32]; void FlushLog(); -#define script_assert(_Expression) { FlushLog(); assert(_Expression); } +#define script_assert(_Expression) FlushLog(); assert(_Expression); #define PICKUP_PLACEMENT_OFFSET (0.5f) #define PED_FIND_Z_OFFSET (5.0f) @@ -30,9 +28,9 @@ void FlushLog(); #define UPSIDEDOWN_TURN_SPEED_THRESHOLD (0.02f) #define UPSIDEDOWN_TIMER_THRESHOLD (1000) -#define SPHERE_MARKER_R (255) -#define SPHERE_MARKER_G (255) -#define SPHERE_MARKER_B (128) +#define SPHERE_MARKER_R (252) +#define SPHERE_MARKER_G (138) +#define SPHERE_MARKER_B (242) #define SPHERE_MARKER_A (228) #define SPHERE_MARKER_PULSE_PERIOD 2048 #define SPHERE_MARKER_PULSE_FRACTION 0.1f @@ -49,15 +47,7 @@ void FlushLog(); #define KEY_LENGTH_IN_SCRIPT (8) -#define GET_INTEGER_PARAM(i) (ScriptParams[i]) -#define GET_FLOAT_PARAM(i) (*(float*)&ScriptParams[i]) -#define GET_VECTOR_PARAM(i) (CVector(GET_FLOAT_PARAM(i), GET_FLOAT_PARAM(i+1), GET_FLOAT_PARAM(i+2))) - -#define SET_INTEGER_PARAM(i, x) ScriptParams[i] = x -#define SET_FLOAT_PARAM(i, x) *(float*)&ScriptParams[i] = x -#define SET_VECTOR_PARAM(i, v) { *(float*)&ScriptParams[i] = (v).x; *(float*)&ScriptParams[i+1] = (v).y; *(float*)&ScriptParams[i+2] = (v).z; } - -#define GTA_SCRIPT_COLLECTIVE +//#define GTA_SCRIPT_COLLECTIVE struct intro_script_rectangle { @@ -224,34 +214,16 @@ public: bool HasCarBeenStuckForAWhile(int32); }; -enum { - MAX_STACK_DEPTH = 16, - NUM_LOCAL_VARS = 96, - NUM_TIMERS = 2, - NUM_GLOBAL_SLOTS = 26 -}; - enum { ARGUMENT_END = 0, - ARGUMENT_INT_ZERO, - ARGUMENT_FLOAT_ZERO, - ARGUMENT_FLOAT_1BYTE, - ARGUMENT_FLOAT_2BYTES, - ARGUMENT_FLOAT_3BYTES, ARGUMENT_INT32, + ARGUMENT_GLOBALVAR, + ARGUMENT_LOCALVAR, ARGUMENT_INT8, ARGUMENT_INT16, - ARGUMENT_FLOAT, - ARGUMENT_TIMER, - ARGUMENT_LOCAL = ARGUMENT_TIMER + NUM_TIMERS, - ARGUMENT_LOCAL_ARRAY = ARGUMENT_LOCAL + NUM_LOCAL_VARS, - ARGUMENT_GLOBAL = ARGUMENT_LOCAL_ARRAY + NUM_LOCAL_VARS, - ARGUMENT_GLOBAL_ARRAY = ARGUMENT_GLOBAL + NUM_GLOBAL_SLOTS, - MAX_ARGUMENT = ARGUMENT_GLOBAL_ARRAY + NUM_GLOBAL_SLOTS + ARGUMENT_FLOAT }; -static_assert(MAX_ARGUMENT <= 256, "MAX_ARGUMENT must be less or equal to 256"); - struct tCollectiveData { int32 colIndex; @@ -275,18 +247,11 @@ struct tBuildingSwap int32 m_nOldModel; }; -struct script_corona -{ - int id; - float x; - float y; - float z; - float size; - uint8 r; - uint8 g; - uint8 b; - int type; - int flareType; + +enum { + MAX_STACK_DEPTH = 6, + NUM_LOCAL_VARS = 16, + NUM_TIMERS = 2 }; class CRunningScript @@ -311,25 +276,14 @@ class CRunningScript ORS_8 }; - enum { - STACKVALUE_IP_BITS = 22, - STACKVALUE_INVERT_RETURN_BIT = STACKVALUE_IP_BITS, - STACKVALUE_IS_FUNCTION_CALL_BIT, - STACKVALUE_IP_PARAMS_OFFSET, - - STACKVALUE_IP_MASK = ((1 << STACKVALUE_IP_BITS) - 1) - }; - public: CRunningScript* next; CRunningScript* prev; - int32 m_nId; char m_abScriptName[8]; uint32 m_nIp; uint32 m_anStack[MAX_STACK_DEPTH]; uint16 m_nStackPointer; - int32 m_anLocalVariables[NUM_LOCAL_VARS + 8 + NUM_TIMERS]; // TODO(LCS): figure out why 106 - int32 m_nLocalsPointer; + int32 m_anLocalVariables[NUM_LOCAL_VARS + NUM_TIMERS]; bool m_bIsActive; bool m_bCondResult; bool m_bIsMissionScript; @@ -349,8 +303,8 @@ public: void Load(uint8*& buf); void UpdateTimers(float timeStep) { - for (int i = 0; i < NUM_TIMERS; i++) - m_anLocalVariables[NUM_LOCAL_VARS + 8 + i] += timeStep; + m_anLocalVariables[NUM_LOCAL_VARS] += timeStep; + m_anLocalVariables[NUM_LOCAL_VARS + 1] += timeStep; } void Init(); @@ -361,37 +315,14 @@ public: static const uint32 nSaveStructSize; - void CollectParameters(uint32*, int16, int* pParams = (int*)&ScriptParams); + void CollectParameters(uint32*, int16); int32 CollectNextParameterWithoutIncreasingPC(uint32); int32* GetPointerToScriptVariable(uint32*, int16); void StoreParameters(uint32*, int16); int8 ProcessOneCommand(); void DoDeatharrestCheck(); - void UpdateCompareFlag(bool flag) - { - if (m_bNotFlag) - flag = !flag; - if (m_nAndOrState == ANDOR_NONE) { - m_bCondResult = flag; - return; - } - if (m_nAndOrState >= ANDS_1 && m_nAndOrState <= ANDS_8) { - m_bCondResult &= flag; - if (m_nAndOrState == ANDS_1) { - m_nAndOrState = ANDOR_NONE; - return; - } - } - else { - m_bCondResult |= flag; - if (m_nAndOrState <= ORS_1) { - m_nAndOrState = ANDOR_NONE; - return; - } - } - m_nAndOrState--; - } + void UpdateCompareFlag(bool); int16 GetPadState(uint16, uint16); int8 ProcessCommands0To99(int32); @@ -409,10 +340,7 @@ public: int8 ProcessCommands1200To1299(int32); int8 ProcessCommands1300To1399(int32); int8 ProcessCommands1400To1499(int32); - int8 ProcessCommands1500To1599(int32); - int8 ProcessCommands1600To1699(int32); - uint32 CollectLocateParameters(uint32*, bool); void LocatePlayerCommand(int32, uint32*); void LocatePlayerCharCommand(int32, uint32*); void LocatePlayerCarCommand(int32, uint32*); @@ -450,10 +378,9 @@ public: bool ThisIsAValidRandomCop(uint32 mi, int cop, int swat, int fbi, int army, int miami); bool ThisIsAValidRandomPed(uint32 pedtype, int civ, int gang, int criminal); - bool CheckDamagedWeaponType(int32 actual, int32 type); - - void ReturnFromGosubOrFunction(); + bool CheckDamagedWeaponType(int32 actual, int32 type); + }; @@ -462,31 +389,38 @@ enum { VAR_GLOBAL = 2, }; +enum { +#ifdef PS2 + SIZE_MAIN_SCRIPT = 205512, +#else + SIZE_MAIN_SCRIPT = 225512, +#endif + SIZE_MISSION_SCRIPT = 35000, + SIZE_SCRIPT_SPACE = SIZE_MAIN_SCRIPT + SIZE_MISSION_SCRIPT +}; + enum { MAX_NUM_SCRIPTS = 128, MAX_NUM_INTRO_TEXT_LINES = 48, MAX_NUM_INTRO_RECTANGLES = 16, MAX_NUM_SCRIPT_SRPITES = 16, MAX_NUM_SCRIPT_SPHERES = 16, - MAX_NUM_COLLECTIVES = 32, - MAX_NUM_USED_OBJECTS = 305, - MAX_NUM_MISSION_SCRIPTS = 150, - MAX_NUM_BUILDING_SWAPS = 80, - MAX_NUM_INVISIBILITY_SETTINGS = 52, - MAX_NUM_STORED_LINES = 1024, - MAX_ALLOWED_COLLISIONS = 2 + MAX_NUM_USED_OBJECTS = 220, + MAX_NUM_MISSION_SCRIPTS = 120, + MAX_NUM_BUILDING_SWAPS = 25, + MAX_NUM_INVISIBILITY_SETTINGS = 20, + MAX_NUM_STORED_LINES = 1024 }; class CTheScripts { public: - static uint8* ScriptSpace; + static uint8 ScriptSpace[SIZE_SCRIPT_SPACE]; static CRunningScript ScriptsArray[MAX_NUM_SCRIPTS]; static intro_text_line IntroTextLines[MAX_NUM_INTRO_TEXT_LINES]; static intro_script_rectangle IntroRectangles[MAX_NUM_INTRO_RECTANGLES]; static CSprite2d ScriptSprites[MAX_NUM_SCRIPT_SRPITES]; static script_sphere_struct ScriptSphereArray[MAX_NUM_SCRIPT_SPHERES]; - static tCollectiveData CollectiveArray[MAX_NUM_COLLECTIVES]; static tUsedObject UsedObjectArray[MAX_NUM_USED_OBJECTS]; static int32 MultiScriptArray[MAX_NUM_MISSION_SCRIPTS]; static tBuildingSwap BuildingSwapArray[MAX_NUM_BUILDING_SWAPS]; @@ -518,24 +452,20 @@ public: static uint16 ScriptsUpdated; static uint32 LastMissionPassedTime; static uint16 NumberOfExclusiveMissionScripts; - +#if (defined GTA_PC && !defined GTAVC_JP_PATCH || defined GTA_XBOX || defined SUPPORT_XBOX_SCRIPT || defined GTA_MOBILE || defined SUPPORT_MOBILE_SCRIPT) +#define CARDS_IN_SUIT (13) +#define NUM_SUITS (4) +#define MAX_DECKS (6) +#define CARDS_IN_DECK (CARDS_IN_SUIT * NUM_SUITS) +#define CARDS_IN_STACK (CARDS_IN_DECK * MAX_DECKS) + static int16 CardStack[CARDS_IN_STACK]; + static int16 CardStackPosition; +#endif static bool bPlayerIsInTheStatium; static uint8 RiotIntensity; static bool bPlayerHasMetDebbieHarry; - static int AllowedCollision[MAX_ALLOWED_COLLISIONS]; - static short* SavedVarIndices; - static int NumSaveVars; - static int FSDestroyedFlag; - static int NextProcessId; - static bool InTheScripts; - static CRunningScript* pCurrent; - static uint16 NumTrueGlobals; - static uint16 MostGlobals; - static base::cSList mCoronas; - static int NextScriptCoronaID; - - static bool Init(bool loaddata = false); + static void Init(); static void Process(); static CRunningScript* StartTestScript(); @@ -545,13 +475,11 @@ public: static void UndoBuildingSwaps(); static void UndoEntityInvisibilitySettings(); - /* static void ScriptDebugLine3D(float x1, float y1, float z1, float x2, float y2, float z2, uint32 col, uint32 col2); static void RenderTheScriptDebugLines(); - */ static void SaveAllScripts(uint8*, uint32*); - static bool LoadAllScripts(uint8*, uint32); + static void LoadAllScripts(uint8*, uint32); static bool IsDebugOn() { return DbgFlag; }; static void InvertDebugFlag() { DbgFlag = !DbgFlag; } @@ -607,12 +535,10 @@ public: static void DrawScriptSpheres(); static void HighlightImportantArea(uint32, float, float, float, float, float); static void HighlightImportantAngledArea(uint32, float, float, float, float, float, float, float, float, float); - /* static void DrawDebugSquare(float, float, float, float); static void DrawDebugAngledSquare(float, float, float, float, float, float, float, float); static void DrawDebugCube(float, float, float, float, float, float); static void DrawDebugAngledCube(float, float, float, float, float, float, float, float, float, float); - */ static void AddToInvisibilitySwapArray(CEntity*, bool); static void AddToBuildingSwapArray(CBuilding*, int32, int32); @@ -621,7 +547,7 @@ public: static int32 AddScriptSphere(int32 id, CVector pos, float radius); static int32 GetNewUniqueScriptSphereIndex(int32 index); static void RemoveScriptSphere(int32 index); - //static void RemoveScriptTextureDictionary(); + static void RemoveScriptTextureDictionary(); public: static void RemoveThisPed(CPed* pPed); @@ -630,10 +556,6 @@ public: static void SwitchToMission(int32 mission); #endif - static int GetSaveVarIndex(int); - static void Shutdown(void); - static void SwapNearestBuildingModel(float, float, float, float, int, int); - #ifdef GTA_SCRIPT_COLLECTIVE static void AdvanceCollectiveIndex() { @@ -653,14 +575,8 @@ public: static void SetObjectiveForAllPedsInCollective(int, eObjective); #endif - static bool IsFortStauntonDestroyed() { return FSDestroyedFlag && *(int32*)&ScriptSpace[FSDestroyedFlag] == 1; } - }; -extern int ScriptParams[32]; - -VALIDATE_SIZE(uStackReturnValue, 4); - #ifdef USE_DEBUG_SCRIPT_LOADER extern int scriptToLoad; #endif @@ -683,7 +599,3 @@ void RetryMission(int, int); #ifdef USE_DEBUG_SCRIPT_LOADER extern int scriptToLoad; #endif - -extern int gScriptsFile; -extern CVector gVectorSetInLua; - diff --git a/src/control/Script10.cpp b/src/control/Script10.cpp deleted file mode 100644 index ac3961a..0000000 --- a/src/control/Script10.cpp +++ /dev/null @@ -1,421 +0,0 @@ -#include "common.h" - -#include "Script.h" -#include "ScriptCommands.h" - -#include "CarCtrl.h" -#include "DMAudio.h" -#include "Frontend.h" -#include "GameLogic.h" -#include "Garages.h" -#include "General.h" -#include "Hud.h" -#include "Messages.h" -#include "Object.h" -#include "Pad.h" -#include "Pickups.h" -#include "PlayerPed.h" -#include "Pools.h" -#include "Vehicle.h" -#include "SpecialFX.h" -#include "Stats.h" -#include "User.h" -#include "Weather.h" -#include "World.h" - -bool gDeveloperFlag; - -int8 CRunningScript::ProcessCommands1600To1699(int32 command) -{ - switch (command) { - case COMMAND_ADD_NOODLES_DELIVERED: - CollectParameters(&m_nIp, 1); - // CStats::NoodlesDelievered += GET_INTEGER_PARAM(0); - return 0; - case COMMAND_REGISTER_SCRAPYARD_CHALLENGE_SCORE: - CollectParameters(&m_nIp, 1); - //CStats::TopScrapyardChallengeScore = Max(CStats::TopScrapyardChallengeScore, GET_INTEGER_PARAM(0)); - return 0; - case COMMAND_REGISTER_9MM_MAYHEM_SCORE: - CollectParameters(&m_nIp, 1); - //CStats::Top9mmMayhemScore = Max(CStats::Top9mmMayhemScore, GET_INTEGER_PARAM(0)); - return 0; - case COMMAND_REGISTER_SCOOTER_SHOOTER_SCORE: - CollectParameters(&m_nIp, 1); - //CStats::TopScooterShooterScore = Max(CStats::TopScooterShooterScore, GET_INTEGER_PARAM(0)); - return 0; - case COMMAND_ADD_MONEY_MADE_FROM_TOURIST: - CollectParameters(&m_nIp, 1); - // CStats::MoneyMadeFromTourist += GET_INTEGER_PARAM(0); - return 0; - case COMMAND_ADD_TOURISTS_TAKEN_TO_SPOTS: - CollectParameters(&m_nIp, 1); - // CStats::TouristsTakenToSpots += GET_INTEGER_PARAM(0); - return 0; - case COMMAND_ADD_EXPORTED_CARS: - CollectParameters(&m_nIp, 1); - // CStats::NumberOfExportedCars += GET_INTEGER_PARAM(0); - return 0; - case COMMAND_SET_TOTAL_EXPORT_CARS: - CollectParameters(&m_nIp, 1); - // CStats::TotalNumberOfCarExport = GET_INTEGER_PARAM(0); - return 0; - case COMMAND_REGISTER_DIRT_BIKE_FASTEST_LAP: - CollectParameters(&m_nIp, 2); - // CStats::RegisterDirtBikeFastestLap(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); - return 0; - case COMMAND_REGISTER_DIRT_BIKE_FASTEST_TIME: - CollectParameters(&m_nIp, 2); - // CStats::RegisterDirtBikeFastestTime(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); - return 0; - case COMMAND_REGISTER_DIRT_BIKE_AIR_TIME: - CollectParameters(&m_nIp, 1); - //CStats::DirtBikeMostAir = Max(CStats::DirtBikeMostAir, GET_INTEGER_PARAM(0)); - return 0; - case COMMAND_ADD_ARROW_3D_MARKER: - { - uint32 ip = m_nIp; - uint32 id = (uint32)(uintptr)GetPointerToScriptVariable(&ip, 0); - CollectParameters(&m_nIp, 10); - CVector pos = GET_VECTOR_PARAM(0); - CVector dir = GET_VECTOR_PARAM(3); - pos.z += GET_FLOAT_PARAM(9) + 7.0f; - //C3dMarkers::PlaceMarker(id, MARKERTYPE_ARROW, pos, GET_INTEGER_PARAM(6), GET_INTEGER_PARAM(7), GET_INTEGER_PARAM(8), 200, 1, 3.2f, 1, dir, 1.0f, 0, 0); - TODO - return 0; - } - case COMMAND_PRINT_NOW_OVERRIDE_FADE: - { - wchar* key = CTheScripts::GetTextByKeyFromScript(&m_nIp); - CollectParameters(&m_nIp, 2); - CMessages::AddMessageJumpQ(key, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); // true, true - return 0; - } - case COMMAND_GET_PICKUP_VALUE: - { - CollectParameters(&m_nIp, 1); - SET_INTEGER_PARAM(0, CPickups::GetValue(GET_INTEGER_PARAM(0))); - return 0; - } - case COMMAND_SET_PICKUP_VALUE: - { - CollectParameters(&m_nIp, 2); - CPickups::SetValue(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); - return 0; - } - case COMMAND_IS_DEVELOPER: - UpdateCompareFlag(gDeveloperFlag); - return 0; - case COMMAND_SET_DEVELOPER_FLAG: - CollectParameters(&m_nIp, 1); - gDeveloperFlag = GET_INTEGER_PARAM(0); - return 0; - case COMMAND_REGISTER_WICHITA_WIPEOUT_SCORE: - CollectParameters(&m_nIp, 1); - //CStats::TopWichitaWipeoutScore = Max(CStats::TopWichitaWipeoutScore, GET_INTEGER_PARAM(0)); - return 0; - case COMMAND_ATTACH_OBJECT_TO_CAR: - { - CollectParameters(&m_nIp, 5); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pObject); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); - script_assert(pVehicle); - CVector offset = GET_VECTOR_PARAM(2); - // pObject->AttachObjectToEntity(pVehicle, offset); - return 0; - } - case COMMAND_DETACH_OBJECT_FROM_CAR: - { - CollectParameters(&m_nIp, 1); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pObject); - // if (pObject && pObject->m_pAttachedTo) - // pObject->DettachObjectFromEntity(); - return 0; - } - case COMMAND_SET_PAD_STICKS_MULTIPLIER: - { - CollectParameters(&m_nIp, 2); - CPad::GetPad(0)->unk_B4 = GET_FLOAT_PARAM(0); - CPad::GetPad(0)->unk_B8 = GET_FLOAT_PARAM(1); - return 0; - } - case COMMAND_PRINT_SUBTITLE_NOW: - { - wchar* key = CTheScripts::GetTextByKeyFromScript(&m_nIp); - CollectParameters(&m_nIp, 2); - if (FrontEndMenuManager.m_PrefsShowSubtitles) - CMessages::AddMessageJumpQ(key, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); // false, true - else - CMessages::AddToPreviousBriefArray(key, -1, -1, -1, -1, -1, -1, nil); - return 0; - } - case COMMAND_PRINT_SUBTITLE_NOW_OVERRIDE_FADE: - { - wchar* key = CTheScripts::GetTextByKeyFromScript(&m_nIp); - CollectParameters(&m_nIp, 2); - if (FrontEndMenuManager.m_PrefsShowSubtitles) - CMessages::AddMessageJumpQ(key, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); // true, true - else - CMessages::AddToPreviousBriefArray(key, -1, -1, -1, -1, -1, -1, nil); - return 0; - } - case COMMAND_PRINT_SUBTITLE_NOW_NO_BRIEF: - { - wchar* key = CTheScripts::GetTextByKeyFromScript(&m_nIp); - CollectParameters(&m_nIp, 2); - if (FrontEndMenuManager.m_PrefsShowSubtitles) - CMessages::AddMessageJumpQ(key, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); // false, false - else - CMessages::AddToPreviousBriefArray(key, -1, -1, -1, -1, -1, -1, nil); - return 0; - } - case COMMAND_PRINT_WITH_NUMBER_NOW_NO_BRIEF: - { - wchar* key = CTheScripts::GetTextByKeyFromScript(&m_nIp); - CollectParameters(&m_nIp, 3); - CMessages::AddMessageJumpQWithNumber(key, GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(0), -1, -1, -1, -1, -1); // 0 - return 0; - } - case COMMAND_GET_ANGLE_BETWEEN_POINTS: - { - CollectParameters(&m_nIp, 4); - SET_FLOAT_PARAM(0, CGeneral::GetAngleBetweenPoints(GET_FLOAT_PARAM(0), GET_FLOAT_PARAM(1), GET_FLOAT_PARAM(2), GET_FLOAT_PARAM(3))); - StoreParameters(&m_nIp, 1); - return 0; - } - case COMMAND_OVERRIDE_CHAR_MOVE_ANIM: - { - CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pPed); - pPed->bOverrideMoveAnim = true; - return 0; - } - case COMMAND_1627: - { - CollectParameters(&m_nIp, 1); - // something related to debug menu, not implemented - return 0; - } - case COMMAND_ENABLE_EMERGENCY_VEHICLES: - { - CollectParameters(&m_nIp, 1); - gbEmergencyVehiclesEnabled = GET_INTEGER_PARAM(0) != 0; - return 0; - } - case COMMAND_ADD_UNLOCKED_COSTUME: - CollectParameters(&m_nIp, 1); - // CStats::AddUnlockedCostume(GET_INTEGER_PARAM(0)); - return 0; - case COMMAND_CLEAR_MULTIPLAYER_SPLASH_SCREEN: - // ClearMultiplayerSplashScreen(); - return 0; - case COMMAND_PRINT_WITH_2_NUMBERS_NOW_NO_BRIEF: - { - wchar* key = CTheScripts::GetTextByKeyFromScript(&m_nIp); - CollectParameters(&m_nIp, 4); - CMessages::AddMessageJumpQWithNumber(key, GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3), GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), -1, -1, -1, -1); // 0 - return 0; - } - case COMMAND_GET_OBJECT_ORIENTATION: - { - CollectParameters(&m_nIp, 1); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pObject); - SET_FLOAT_PARAM(1, LimitAngleOnCircle(RADTODEG(Asin(pObject->GetForward().z)))); - SET_FLOAT_PARAM(2, LimitAngleOnCircle(RADTODEG(Atan2(-pObject->GetForward().x, pObject->GetForward().y)))); - SET_FLOAT_PARAM(0, LimitAngleOnCircle(RADTODEG(Atan2(-pObject->GetRight().z, pObject->GetUp().z)))); - StoreParameters(&m_nIp, 3); - return 0; - } - case COMMAND_SET_OBJECT_ORIENTATION: - { - CollectParameters(&m_nIp, 4); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pObject); - pObject->SetOrientation(DEGTORAD(GET_FLOAT_PARAM(2)), DEGTORAD(GET_FLOAT_PARAM(1)), DEGTORAD(GET_FLOAT_PARAM(3))); - return 0; - } - case COMMAND_CHANGE_ONSCREEN_COUNTER_PREFIX: - { - uint16 offset = (uint8*)GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) - CTheScripts::ScriptSpace; - CollectParameters(&m_nIp, 1); - //CUserDisplay::OnscnTimer.ChangeCounterPrefix(offset, GET_INTEGER_PARAMS(0)); - return 0; - } - case COMMAND_STORE_PLAYER_OUTFIT: - { - char tmp[12]; // TODO - CTheScripts::ReadTextLabelFromScript(&m_nIp, tmp); - for (int i = 0; i < KEY_LENGTH_IN_SCRIPT; i++) - CGameLogic::mStoredPlayerOutfit[i] = tmp[i]; - printf("STORED PLAYOUR OUTFIT : %s\n", CGameLogic::mStoredPlayerOutfit); - m_nIp += KEY_LENGTH_IN_SCRIPT; - return 0; - } - case COMMAND_DISPLAY_ONSCREEN_TIMER_WITH_NUMBER_AND_STRING: - { - char onscreen_str1[12]; - uint16 var = (uint8*)GetPointerToScriptVariable(&m_nIp, 0) - CTheScripts::ScriptSpace; - CollectParameters(&m_nIp, 2); - wchar* text = TheText.Get((char*)&CTheScripts::ScriptSpace[m_nIp]); - strncpy(onscreen_str1, (char*)&CTheScripts::ScriptSpace[m_nIp], KEY_LENGTH_IN_SCRIPT); - m_nIp += KEY_LENGTH_IN_SCRIPT; - CUserDisplay::OnscnTimer.AddCounter(var, GET_INTEGER_PARAM(1), onscreen_str1, 0); // TODO - second set of data - return 0; - } - case COMMAND_SET_PLAYER_CURRENT_WEAPON_AMMO_IN_CLIP: - { - CollectParameters(&m_nIp, 1); - CWeapon* pWeapon = FindPlayerPed()->GetWeapon(); - if (pWeapon && GET_INTEGER_PARAM(0)) - pWeapon->m_nAmmoInClip = GET_INTEGER_PARAM(0); - return 0; - } - case COMMAND_SET_CHAR_WAIT_STATE_REPEAT: - { - CollectParameters(&m_nIp, 3); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - if (pPed) - pPed->SetWaitState((eWaitState)GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1) >= 0 ? (void*)GET_INTEGER_PARAM(0) : nil); // + true - return 0; - } - case COMMAND_REGISTER_BEST_TIME_GOGO_FAGGIO: - CollectParameters(&m_nIp, 1); - // CStats::RegisterBestTimeGoGoFaggio(GET_INTEGER_PARAM(0)); - return 0; - case COMMAND_LOCK_GARAGE: - CollectParameters(&m_nIp, 2); - CGarages::LockGarage(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); - return 0; - case COMMAND_IS_FINAL_GAME: -#ifdef FINAL - UpdateCompareFlag(true); -#else - UpdateCompareFlag(false); -#endif - return 0; - case COMMAND_SET_ALLOWED_COLLISION: - { - CollectParameters(&m_nIp, 2); - CTheScripts::AllowedCollision[0] = GET_INTEGER_PARAM(0); - CTheScripts::AllowedCollision[1] = GET_INTEGER_PARAM(1); - return 0; - } - case COMMAND_REGISTER_GUARDIAN_ANGEL_LEVEL: - CollectParameters(&m_nIp, 3); - //CStats::GuardianAngelHighestLevel_Ind = Max(CStats::GuardianAngelHighestLevel_Ind, GET_INTEGER_PARAM(0)); - //CStats::GuardianAngelHighestLevel_Com = Max(CStats::GuardianAngelHighestLevel_Com, GET_INTEGER_PARAM(1)); - //CStats::GuardianAngelHighestLevel_Sub = Max(CStats::GuardianAngelHighestLevel_Sub, GET_INTEGER_PARAM(2)); - return 0; - case COMMAND_DISPLAY_ONSCREEN_TIMER_WITH_NUMBER_AND_2_STRINGS: - { - char onscreen_str1[12]; - char onscreen_str2[12]; - uint16 var = (uint8*)GetPointerToScriptVariable(&m_nIp, 0) - CTheScripts::ScriptSpace; - CollectParameters(&m_nIp, 3); - wchar* text = TheText.Get((char*)&CTheScripts::ScriptSpace[m_nIp]); - strncpy(onscreen_str1, (char*)&CTheScripts::ScriptSpace[m_nIp], KEY_LENGTH_IN_SCRIPT); - m_nIp += KEY_LENGTH_IN_SCRIPT; - wchar* text2 = TheText.Get((char*)&CTheScripts::ScriptSpace[m_nIp]); - strncpy(onscreen_str2, (char*)&CTheScripts::ScriptSpace[m_nIp], KEY_LENGTH_IN_SCRIPT); - m_nIp += KEY_LENGTH_IN_SCRIPT; - CUserDisplay::OnscnTimer.AddCounter(var, GET_INTEGER_PARAM(1), onscreen_str1, 0); // TODO - second set of data - return 0; - } - case COMMAND_GET_PLAYER_STORED_WEAPON: - { - CollectParameters(&m_nIp, 1); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; - script_assert(pPed); - SET_INTEGER_PARAM(0, pPed->m_storedWeapon); - StoreParameters(&m_nIp, 1); - return 0; - } - case COMMAND_DISABLE_PAUSE_MENU: - CollectParameters(&m_nIp, 1); - // FrontEndMenuManager.mDisablePauseMenu = GET_INTEGER_PARAM(0) != 0; // TODO: static + member - return 0; - case COMMAND_IS_CHANNEL_PLAYING: - CollectParameters(&m_nIp, 1); - //UpdateCompareFlag(DMAudio.IsChannelPlaying(GET_INTEGER_PARAM(0)); - UpdateCompareFlag(false); - return 0; - case COMMAND_SET_CLOCK_EVENT_WARNING: - CollectParameters(&m_nIp, 3); - /* - if (CHud::m_ClockEventWarningMinutes || GET_INTEGER_PARAMS(2)){ - CHud::m_ClockEventWarningMinutes = GET_INTEGER_PARAMS(2); - CHud::m_ClockEventMinutes = GET_INTEGER_PARAMS(1); - CHud::m_ClockEventHours = GET_INTEGER_PARAMS(0); - CHud::m_ClockEventFlashTimer = 0; - } - */ - return 0; - case COMMAND_SET_EXTRA_COLOUR_LIGHT_DIRECTION: - CollectParameters(&m_nIp, 3); - // CWeather::ExtraColourLightDir = GET_VECTOR_PARAM(0); - // CWeather::ExtraColourLightDir.Normalise(); - return 0; - case COMMAND_SET_CHAR_CAN_BE_TARGETTED_BY_LEADER: - { - CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pPed); - pPed->bCanBeTargettedByLeader = GET_INTEGER_PARAM(1) != 0; - return 0; - } - case COMMAND_PRINT_HELP_NO_BRIEF: - { - wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); - CHud::SetHelpMessage(text, false); // + false, false - return 0; - } - case COMMAND_PRINT_HELP_FOREVER_NO_BRIEF: - { - wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); - CHud::SetHelpMessage(text, false, true); // + false - return 0; - } - case COMMAND_PRINT_HELP_ALWAYS_NO_BRIEF: - { - // CHud::mAlwaysAllowHelpText = true; - wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); - CHud::SetHelpMessage(text, false); // + false, false - return 0; - } - case COMMAND_PRINT_HELP_FOREVER_ALWAYS_NO_BRIEF: - { - // CHud::mAlwaysAllowHelpText = true; - wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); - CHud::SetHelpMessage(text, false, true); // + false - return 0; - } - case COMMAND_SET_CAR_IS_REWARD: - { - CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pVehicle); - pVehicle->bRewardVehicle = (GET_INTEGER_PARAM(1) != 0); - return 0; - } - case COMMAND_FREEZE_ALL_PLAYER_FOLLOWERS: - { - CollectParameters(&m_nIp, 2); - CPlayerPed* pPlayerPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; - script_assert(pPlayerPed); - for (int i = 0; i < CPools::GetVehiclePool()->GetSize(); i++) { - CPed* pPed = CPools::GetPedPool()->GetSlot(i); - if (pPed && IsPedPointerValid(pPed)) { - if (pPed->m_leader == pPlayerPed || (pPed->m_objective == OBJECTIVE_FOLLOW_CHAR_IN_FORMATION && pPed->m_pedInObjective == pPlayerPed)) - pPed->bIsFrozen = (GET_INTEGER_PARAM(1) != 0); - } - } - return 0; - } - default: - script_assert(0); - } - return -1; -} \ No newline at end of file diff --git a/src/control/Script2.cpp b/src/control/Script2.cpp index e4c7140..656973c 100644 --- a/src/control/Script2.cpp +++ b/src/control/Script2.cpp @@ -28,8 +28,6 @@ #include "World.h" #include "Zones.h" -// LCS: file done except TODOs - int8 CRunningScript::ProcessCommands300To399(int32 command) { switch (command) { @@ -37,10 +35,12 @@ int8 CRunningScript::ProcessCommands300To399(int32 command) //case COMMAND_SET_PLAYER_INVINCIBLE: //case COMMAND_SET_CHAR_GRAPHIC_TYPE: //case COMMAND_SET_PLAYER_GRAPHIC_TYPE: + /* case COMMAND_HAS_PLAYER_BEEN_ARRESTED: CollectParameters(&m_nIp, 1); - UpdateCompareFlag(CWorld::Players[GET_INTEGER_PARAM(0)].m_WBState == WBSTATE_BUSTED); + UpdateCompareFlag(CWorld::Players[ScriptParams[0]].m_WBState == WBSTATE_BUSTED); return 0; + */ //case COMMAND_STOP_CHAR_DRIVING: //case COMMAND_KILL_CHAR: //case COMMAND_SET_FAVOURITE_CAR_MODEL_FOR_CHAR: @@ -49,25 +49,25 @@ int8 CRunningScript::ProcessCommands300To399(int32 command) case COMMAND_CHANGE_CAR_LOCK: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - pVehicle->m_nDoorLock = (eCarLock)GET_INTEGER_PARAM(1); + pVehicle->m_nDoorLock = (eCarLock)ScriptParams[1]; return 0; } case COMMAND_SHAKE_CAM_WITH_POINT: CollectParameters(&m_nIp, 4); - TheCamera.CamShake(GET_INTEGER_PARAM(0) / 1000.0f, - GET_FLOAT_PARAM(1), - GET_FLOAT_PARAM(2), - GET_FLOAT_PARAM(3)); + TheCamera.CamShake(ScriptParams[0] / 1000.0f, + *(float*)&ScriptParams[1], + *(float*)&ScriptParams[2], + *(float*)&ScriptParams[3]); return 0; */ case COMMAND_IS_CAR_MODEL: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - UpdateCompareFlag(pVehicle->GetModelIndex() == GET_INTEGER_PARAM(1)); + UpdateCompareFlag(pVehicle->GetModelIndex() == ScriptParams[1]); return 0; } //case COMMAND_IS_CAR_REMAP: @@ -77,15 +77,15 @@ int8 CRunningScript::ProcessCommands300To399(int32 command) case COMMAND_IS_CAR_DEAD_IN_AREA_2D: { CollectParameters(&m_nIp, 6); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - float x1 = GET_FLOAT_PARAM(1); - float y1 = GET_FLOAT_PARAM(2); - float x2 = GET_FLOAT_PARAM(3); - float y2 = GET_FLOAT_PARAM(4); + float x1 = *(float*)&ScriptParams[1]; + float y1 = *(float*)&ScriptParams[2]; + float x2 = *(float*)&ScriptParams[3]; + float y2 = *(float*)&ScriptParams[4]; UpdateCompareFlag(pVehicle->GetStatus() == STATUS_WRECKED && pVehicle->IsWithinArea(x1, y1, x2, y2)); - if (GET_INTEGER_PARAM(5)) + if (ScriptParams[5]) CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, x1, y1, x2, y2, MAP_Z_LOW_LIMIT); if (CTheScripts::DbgFlag) CTheScripts::DrawDebugSquare(x1, y1, x2, y2); @@ -94,17 +94,17 @@ int8 CRunningScript::ProcessCommands300To399(int32 command) case COMMAND_IS_CAR_DEAD_IN_AREA_3D: { CollectParameters(&m_nIp, 8); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - float x1 = GET_FLOAT_PARAM(1); - float y1 = GET_FLOAT_PARAM(2); - float z1 = GET_FLOAT_PARAM(3); - float x2 = GET_FLOAT_PARAM(4); - float y2 = GET_FLOAT_PARAM(5); - float z2 = GET_FLOAT_PARAM(6); + float x1 = *(float*)&ScriptParams[1]; + float y1 = *(float*)&ScriptParams[2]; + float z1 = *(float*)&ScriptParams[3]; + float x2 = *(float*)&ScriptParams[4]; + float y2 = *(float*)&ScriptParams[5]; + float z2 = *(float*)&ScriptParams[6]; UpdateCompareFlag(pVehicle->GetStatus() == STATUS_WRECKED && pVehicle->IsWithinArea(x1, y1, z1, x2, y2, z2)); - if (GET_INTEGER_PARAM(7)) + if (ScriptParams[7]) CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, x1, y1, x2, y2, (z1 + z2) / 2); if (CTheScripts::DbgFlag) CTheScripts::DrawDebugCube(x1, y1, z1, x2, y2, z2); @@ -121,45 +121,38 @@ int8 CRunningScript::ProcessCommands300To399(int32 command) //case COMMAND_SET_CAR_FLAMEPROOF: //case COMMAND_SET_CAR_ROCKETPROOF: //case COMMAND_IS_CARBOMB_ACTIVE: - case COMMAND_GIVE_CAR_ALARM: - { - CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pVehicle); - pVehicle->m_nAlarmState = -1; - return 0; - } + //case COMMAND_GIVE_CAR_ALARM: //case COMMAND_PUT_CAR_ON_TRAILER: + /* case COMMAND_IS_CAR_CRUSHED: CollectParameters(&m_nIp, 1); - UpdateCompareFlag(CGarages::HasCarBeenCrushed(GET_INTEGER_PARAM(0))); + UpdateCompareFlag(CGarages::HasCarBeenCrushed(ScriptParams[0])); return 0; - //case COMMAND_CREATE_GANG_CAR: + */ + //case COMMAND_CREATE_GANG_CAR: case COMMAND_CREATE_CAR_GENERATOR: { CollectParameters(&m_nIp, 12); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z > MAP_Z_LOW_LIMIT) pos.z += 0.015f; - SET_INTEGER_PARAM(0, CTheCarGenerators::CreateCarGenerator( - pos.x, pos.y, pos.z, GET_FLOAT_PARAM(3), - GET_INTEGER_PARAM(4), GET_INTEGER_PARAM(5), GET_INTEGER_PARAM(6), GET_INTEGER_PARAM(7), - GET_INTEGER_PARAM(8), GET_INTEGER_PARAM(9), GET_INTEGER_PARAM(10), GET_INTEGER_PARAM(11))); + ScriptParams[0] = CTheCarGenerators::CreateCarGenerator( + pos.x, pos.y, pos.z, *(float*)&ScriptParams[3], + ScriptParams[4], ScriptParams[5], ScriptParams[6], ScriptParams[7], + ScriptParams[8], ScriptParams[9], ScriptParams[10], ScriptParams[11]); StoreParameters(&m_nIp, 1); return 0; } case COMMAND_SWITCH_CAR_GENERATOR: { CollectParameters(&m_nIp, 2); - CCarGenerator* pCarGen = &CTheCarGenerators::CarGeneratorArray[GET_INTEGER_PARAM(0)]; - if (GET_INTEGER_PARAM(1) == 0) { + CCarGenerator* pCarGen = &CTheCarGenerators::CarGeneratorArray[ScriptParams[0]]; + if (ScriptParams[1] == 0){ pCarGen->SwitchOff(); - } - else if (GET_INTEGER_PARAM(1) <= 100) { + }else if (ScriptParams[1] <= 100){ pCarGen->SwitchOn(); - pCarGen->SetUsesRemaining(GET_INTEGER_PARAM(1)); - } - else { + pCarGen->SetUsesRemaining(ScriptParams[1]); + }else{ pCarGen->SwitchOn(); } return 0; @@ -169,34 +162,40 @@ int8 CRunningScript::ProcessCommands300To399(int32 command) { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 3); - CUserDisplay::Pager.AddMessage(text, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2)); + CUserDisplay::Pager.AddMessage(text, ScriptParams[0], ScriptParams[1], ScriptParams[2]); return 0; } */ case COMMAND_DISPLAY_ONSCREEN_TIMER: { - uint16 offset = (uint8*)GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) - CTheScripts::ScriptSpace; + script_assert(CTheScripts::ScriptSpace[m_nIp] == ARGUMENT_GLOBALVAR); + m_nIp++; + uint16 offset = CTheScripts::Read2BytesFromScript(&m_nIp); CollectParameters(&m_nIp, 1); - CUserDisplay::OnscnTimer.AddClock(offset, nil, GET_INTEGER_PARAM(0) != 0); + CUserDisplay::OnscnTimer.AddClock(offset, nil, ScriptParams[0] != 0); return 0; } case COMMAND_CLEAR_ONSCREEN_TIMER: { - uint16 offset = (uint8*)GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) - CTheScripts::ScriptSpace; - CUserDisplay::OnscnTimer.ClearClock(offset); + script_assert(CTheScripts::ScriptSpace[m_nIp] == ARGUMENT_GLOBALVAR); + m_nIp++; + CUserDisplay::OnscnTimer.ClearClock((uint16)CTheScripts::Read2BytesFromScript(&m_nIp)); return 0; } case COMMAND_DISPLAY_ONSCREEN_COUNTER: { - uint16 counter = (uint8*)GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) - CTheScripts::ScriptSpace; + script_assert(CTheScripts::ScriptSpace[m_nIp] == ARGUMENT_GLOBALVAR); + m_nIp++; + int16 counter = CTheScripts::Read2BytesFromScript(&m_nIp); CollectParameters(&m_nIp, 1); - CUserDisplay::OnscnTimer.AddCounter(counter, GET_INTEGER_PARAM(0), nil, 0); + CUserDisplay::OnscnTimer.AddCounter(counter, ScriptParams[0], nil, 0); return 0; } case COMMAND_CLEAR_ONSCREEN_COUNTER: { - uint16 counter = (uint8*)GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) - CTheScripts::ScriptSpace; - CUserDisplay::OnscnTimer.ClearCounter(counter); + script_assert(CTheScripts::ScriptSpace[m_nIp] == ARGUMENT_GLOBALVAR); + m_nIp++; + CUserDisplay::OnscnTimer.ClearCounter((uint16)CTheScripts::Read2BytesFromScript(&m_nIp)); return 0; } case COMMAND_SET_ZONE_CAR_INFO: @@ -220,7 +219,7 @@ int8 CRunningScript::ProcessCommands300To399(int32 command) return 0; } while (zone >= 0) { - CTheZones::SetZoneCarInfo(zone, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(11), gangDensities); + CTheZones::SetZoneCarInfo(zone, ScriptParams[0], ScriptParams[1], ScriptParams[11], gangDensities); zone = CTheZones::FindNextZoneByLabelAndReturnIndex(label, ZONE_INFO); } return 0; @@ -229,7 +228,7 @@ int8 CRunningScript::ProcessCommands300To399(int32 command) case COMMAND_IS_CHAR_IN_ZONE: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); char label[12]; CTheScripts::ReadTextLabelFromScript(&m_nIp, label); @@ -240,70 +239,39 @@ int8 CRunningScript::ProcessCommands300To399(int32 command) UpdateCompareFlag(CTheZones::PointLiesWithinZone(&pos, CTheZones::GetNavigationZone(zone))); return 0; } - case COMMAND_SET_CAR_DENSITY: - { - char label[12]; - CTheScripts::ReadTextLabelFromScript(&m_nIp, label); - int16 zone = CTheZones::FindZoneByLabelAndReturnIndex(label, ZONE_INFO); - m_nIp += 8; - CollectParameters(&m_nIp, 2); - if (zone < 0) { - debug("Couldn't find zone - %s\n", label); - return 0; - } - while (zone >= 0) { - CTheZones::SetCarDensity(zone, ScriptParams[0], ScriptParams[1]); - zone = CTheZones::FindNextZoneByLabelAndReturnIndex(label, ZONE_INFO); - } - return 0; - } - case COMMAND_SET_PED_DENSITY: - { - char label[12]; - CTheScripts::ReadTextLabelFromScript(&m_nIp, label); - int16 zone = CTheZones::FindZoneByLabelAndReturnIndex(label, ZONE_INFO); - m_nIp += KEY_LENGTH_IN_SCRIPT; - CollectParameters(&m_nIp, 2); - if (zone < 0) { - debug("Couldn't find zone - %s\n", label); - return 0; - } - while (zone >= 0) { - CTheZones::SetPedDensity(zone, ScriptParams[0], ScriptParams[1]); - zone = CTheZones::FindNextZoneByLabelAndReturnIndex(label, ZONE_INFO); - } - return 0; - } + //case COMMAND_SET_CAR_DENSITY: + //case COMMAND_SET_PED_DENSITY: case COMMAND_POINT_CAMERA_AT_PLAYER: { CollectParameters(&m_nIp, 3); - TheCamera.TakeControl(nil, GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), CAMCONTROL_SCRIPT); + // ScriptParams[0] is unused. + TheCamera.TakeControl(nil, ScriptParams[1], ScriptParams[2], CAMCONTROL_SCRIPT); return 0; } case COMMAND_POINT_CAMERA_AT_CAR: { CollectParameters(&m_nIp, 3); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); if (pVehicle) - TheCamera.TakeControl(pVehicle, GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), CAMCONTROL_SCRIPT); + TheCamera.TakeControl(pVehicle, ScriptParams[1], ScriptParams[2], CAMCONTROL_SCRIPT); return 0; } case COMMAND_POINT_CAMERA_AT_CHAR: { CollectParameters(&m_nIp, 3); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); if (pPed) - TheCamera.TakeControl(pPed, GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), CAMCONTROL_SCRIPT); + TheCamera.TakeControl(pPed, ScriptParams[1], ScriptParams[2], CAMCONTROL_SCRIPT); return 0; } case COMMAND_RESTORE_CAMERA: TheCamera.Restore(); return 0; - /* - case COMMAND_SHAKE_PAD: - CPad::GetPad(GET_INTEGER_PARAM(0))->StartShake(GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2)); - return 0; - */ + /* + case COMMAND_SHAKE_PAD: + CPad::GetPad(ScriptParams[0])->StartShake(ScriptParams[1], ScriptParams[2]); + return 0; + */ case COMMAND_SET_ZONE_PED_INFO: { char label[12]; @@ -316,61 +284,61 @@ int8 CRunningScript::ProcessCommands300To399(int32 command) return 0; } while (zone >= 0) { - CTheZones::SetZonePedInfo(zone, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3), - GET_INTEGER_PARAM(4), GET_INTEGER_PARAM(5), GET_INTEGER_PARAM(6), GET_INTEGER_PARAM(7), GET_INTEGER_PARAM(8), GET_INTEGER_PARAM(9), GET_INTEGER_PARAM(10), GET_INTEGER_PARAM(11)); + CTheZones::SetZonePedInfo(zone, ScriptParams[0], ScriptParams[1], ScriptParams[2], ScriptParams[3], + ScriptParams[4], ScriptParams[5], ScriptParams[6], ScriptParams[7], ScriptParams[8], ScriptParams[9], ScriptParams[10], ScriptParams[11]); zone = CTheZones::FindNextZoneByLabelAndReturnIndex(label, ZONE_INFO); } return 0; } case COMMAND_SET_TIME_SCALE: CollectParameters(&m_nIp, 1); - CTimer::SetTimeScale(GET_FLOAT_PARAM(0)); + CTimer::SetTimeScale(*(float*)&ScriptParams[0]); return 0; - /* - case COMMAND_IS_CAR_IN_AIR: - { - CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pVehicle && pVehicle->IsCar()); - CAutomobile* pCar = (CAutomobile*)pVehicle; - UpdateCompareFlag(pCar->GetAllWheelsOffGround()); - return 0; - } - */ + /* + case COMMAND_IS_CAR_IN_AIR: + { + CollectParameters(&m_nIp, 1); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); + script_assert(pVehicle && pVehicle->IsCar()); + CAutomobile* pCar = (CAutomobile*)pVehicle; + UpdateCompareFlag(pCar->GetAllWheelsOffGround()); + return 0; + } + */ case COMMAND_SET_FIXED_CAMERA_POSITION: { CollectParameters(&m_nIp, 6); TheCamera.SetCamPositionForFixedMode( - CVector(GET_FLOAT_PARAM(0), GET_FLOAT_PARAM(1), GET_FLOAT_PARAM(2)), - CVector(GET_FLOAT_PARAM(3), GET_FLOAT_PARAM(4), GET_FLOAT_PARAM(5))); + CVector(*(float*)&ScriptParams[0], *(float*)&ScriptParams[1], *(float*)&ScriptParams[2]), + CVector(*(float*)&ScriptParams[3], *(float*)&ScriptParams[4], *(float*)&ScriptParams[5])); return 0; } case COMMAND_POINT_CAMERA_AT_POINT: { CollectParameters(&m_nIp, 4); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); - TheCamera.TakeControlNoEntity(pos, GET_INTEGER_PARAM(3), CAMCONTROL_SCRIPT); + TheCamera.TakeControlNoEntity(pos, ScriptParams[3], CAMCONTROL_SCRIPT); return 0; } case COMMAND_ADD_BLIP_FOR_CAR_OLD: { CollectParameters(&m_nIp, 3); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); CRadar::GetActualBlipArrayIndex(CollectNextParameterWithoutIncreasingPC(m_nIp)); - SET_INTEGER_PARAM(0, CRadar::SetEntityBlip(BLIP_CAR, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), (eBlipDisplay)GET_INTEGER_PARAM(2))); + ScriptParams[0] = CRadar::SetEntityBlip(BLIP_CAR, ScriptParams[0], ScriptParams[1], (eBlipDisplay)ScriptParams[2]); StoreParameters(&m_nIp, 1); return 0; } case COMMAND_ADD_BLIP_FOR_CHAR_OLD: { CollectParameters(&m_nIp, 3); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); CRadar::GetActualBlipArrayIndex(CollectNextParameterWithoutIncreasingPC(m_nIp)); - SET_INTEGER_PARAM(0, CRadar::SetEntityBlip(BLIP_CHAR, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), (eBlipDisplay)GET_INTEGER_PARAM(2))); + ScriptParams[0] = CRadar::SetEntityBlip(BLIP_CHAR, ScriptParams[0], ScriptParams[1], (eBlipDisplay)ScriptParams[2]); StoreParameters(&m_nIp, 1); return 0; } @@ -378,61 +346,57 @@ int8 CRunningScript::ProcessCommands300To399(int32 command) case COMMAND_ADD_BLIP_FOR_OBJECT_OLD: { CollectParameters(&m_nIp, 3); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); CRadar::GetActualBlipArrayIndex(CollectNextParameterWithoutIncreasingPC(m_nIp)); - SET_INTEGER_PARAM(0, CRadar::SetEntityBlip(BLIP_OBJECT, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), (eBlipDisplay)GET_INTEGER_PARAM(2))); + ScriptParams[0] = CRadar::SetEntityBlip(BLIP_OBJECT, ScriptParams[0], ScriptParams[1], (eBlipDisplay)ScriptParams[2]); StoreParameters(&m_nIp, 1); return 0; } */ case COMMAND_REMOVE_BLIP: CollectParameters(&m_nIp, 1); - CRadar::ClearBlip(GET_INTEGER_PARAM(0)); + CRadar::ClearBlip(ScriptParams[0]); return 0; case COMMAND_CHANGE_BLIP_COLOUR: CollectParameters(&m_nIp, 2); - CRadar::ChangeBlipColour(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); + CRadar::ChangeBlipColour(ScriptParams[0], ScriptParams[1]); return 0; case COMMAND_DIM_BLIP: CollectParameters(&m_nIp, 2); - CRadar::ChangeBlipBrightness(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); + CRadar::ChangeBlipBrightness(ScriptParams[0], ScriptParams[1]); return 0; case COMMAND_ADD_BLIP_FOR_COORD_OLD: { CollectParameters(&m_nIp, 5); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); CRadar::GetActualBlipArrayIndex(CollectNextParameterWithoutIncreasingPC(m_nIp)); - SET_INTEGER_PARAM(0, CRadar::SetCoordBlip(BLIP_COORD, pos, GET_INTEGER_PARAM(3), (eBlipDisplay)GET_INTEGER_PARAM(4))); + ScriptParams[0] = CRadar::SetCoordBlip(BLIP_COORD, pos, ScriptParams[3], (eBlipDisplay)ScriptParams[4]); StoreParameters(&m_nIp, 1); return 0; } case COMMAND_CHANGE_BLIP_SCALE: CollectParameters(&m_nIp, 2); - CRadar::ChangeBlipScale(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); + CRadar::ChangeBlipScale(ScriptParams[0], ScriptParams[1]); return 0; case COMMAND_SET_FADING_COLOUR: CollectParameters(&m_nIp, 3); - TheCamera.SetFadeColour(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2)); + TheCamera.SetFadeColour(ScriptParams[0], ScriptParams[1], ScriptParams[2]); return 0; case COMMAND_DO_FADE: - { - // unknown empty call on PS2, not mobile CollectParameters(&m_nIp, 2); - float fFadeTime = GET_INTEGER_PARAM(0); - TheCamera.Fade(fFadeTime > 2 ? fFadeTime / 1000.0f : 0.0f, GET_INTEGER_PARAM(1)); + TheCamera.Fade(ScriptParams[0] / 1000.0f, ScriptParams[1]); return 0; - } case COMMAND_GET_FADING_STATUS: UpdateCompareFlag(TheCamera.GetFading()); return 0; case COMMAND_ADD_HOSPITAL_RESTART: { CollectParameters(&m_nIp, 4); - CVector pos = GET_VECTOR_PARAM(0); - float angle = GET_FLOAT_PARAM(3); + CVector pos = *(CVector*)&ScriptParams[0]; + float angle = *(float*)&ScriptParams[3]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); CRestart::AddHospitalRestartPoint(pos, angle); @@ -441,8 +405,8 @@ int8 CRunningScript::ProcessCommands300To399(int32 command) case COMMAND_ADD_POLICE_RESTART: { CollectParameters(&m_nIp, 4); - CVector pos = GET_VECTOR_PARAM(0); - float angle = GET_FLOAT_PARAM(3); + CVector pos = *(CVector*)&ScriptParams[0]; + float angle = *(float*)&ScriptParams[3]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); CRestart::AddPoliceRestartPoint(pos, angle); @@ -451,8 +415,8 @@ int8 CRunningScript::ProcessCommands300To399(int32 command) case COMMAND_OVERRIDE_NEXT_RESTART: { CollectParameters(&m_nIp, 4); - CVector pos = GET_VECTOR_PARAM(0); - float angle = GET_FLOAT_PARAM(3); + CVector pos = *(CVector*)&ScriptParams[0]; + float angle = *(float*)&ScriptParams[3]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); CRestart::OverrideNextRestart(pos, angle); @@ -462,9 +426,9 @@ int8 CRunningScript::ProcessCommands300To399(int32 command) case COMMAND_DRAW_SHADOW: { CollectParameters(&m_nIp, 10); - CVector pos = GET_VECTOR_PARAM(1); - float angle = GET_FLOAT_PARAM(4); - float length = GET_FLOAT_PARAM(5); + CVector pos = *(CVector*)&ScriptParams[1]; + float angle = *(float*)&ScriptParams[4]; + float length = *(float*)&ScriptParams[5]; float x, y; if (angle != 0.0f){ y = cos(angle) * length; @@ -477,40 +441,40 @@ int8 CRunningScript::ProcessCommands300To399(int32 command) float frontY = y; float sideX = y; float sideY = x; - CShadows::StoreShadowToBeRendered(GET_INTEGER_PARAM(0), &pos, frontX, frontY, sideX, sideY, - GET_INTEGER_PARAM(6), GET_INTEGER_PARAM(7), GET_INTEGER_PARAM(8), GET_INTEGER_PARAM(9)); + CShadows::StoreShadowToBeRendered(ScriptParams[0], &pos, frontX, frontY, sideX, sideY, + ScriptParams[6], ScriptParams[7], ScriptParams[8], ScriptParams[9]); return 0; } */ case COMMAND_GET_PLAYER_HEADING: { CollectParameters(&m_nIp, 1); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; float angle = pPed->bInVehicle ? pPed->m_pMyVehicle->GetForward().Heading() : pPed->GetForward().Heading(); angle = RADTODEG(angle); if (angle < 0.0f) angle += 360.0f; if (angle > 360.0f) angle -= 360.0f; - SET_FLOAT_PARAM(0, angle); + *(float*)&ScriptParams[0] = angle; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_SET_PLAYER_HEADING: { CollectParameters(&m_nIp, 2); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); if (pPed->bInVehicle) return 0; - pPed->m_fRotationDest = pPed->m_fRotationCur = DEGTORAD(GET_FLOAT_PARAM(1)); - pPed->SetHeading(DEGTORAD(GET_FLOAT_PARAM(1))); + pPed->m_fRotationDest = pPed->m_fRotationCur = DEGTORAD(*(float*)&ScriptParams[1]); + pPed->SetHeading(DEGTORAD(*(float*)&ScriptParams[1])); return 0; } case COMMAND_GET_CHAR_HEADING: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); float angle = pPed->bInVehicle ? pPed->m_pMyVehicle->GetForward().Heading() : pPed->GetForward().Heading(); angle = RADTODEG(angle); @@ -518,25 +482,25 @@ int8 CRunningScript::ProcessCommands300To399(int32 command) angle += 360.0f; if (angle > 360.0f) angle -= 360.0f; - SET_FLOAT_PARAM(0, angle); + *(float*)&ScriptParams[0] = angle; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_SET_CHAR_HEADING: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); if (pPed->bInVehicle) return 0; - pPed->m_fRotationDest = pPed->m_fRotationCur = DEGTORAD(GET_FLOAT_PARAM(1)); - pPed->SetHeading(DEGTORAD(GET_FLOAT_PARAM(1))); + pPed->m_fRotationDest = pPed->m_fRotationCur = DEGTORAD(*(float*)&ScriptParams[1]); + pPed->SetHeading(DEGTORAD(*(float*)&ScriptParams[1])); return 0; } case COMMAND_GET_CAR_HEADING: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); float angle = pVehicle->GetForward().Heading(); angle = RADTODEG(angle); @@ -544,22 +508,22 @@ int8 CRunningScript::ProcessCommands300To399(int32 command) angle += 360.0f; if (angle > 360.0f) angle -= 360.0f; - SET_FLOAT_PARAM(0, angle); + *(float*)&ScriptParams[0] = angle; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_SET_CAR_HEADING: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - pVehicle->SetHeading(DEGTORAD(GET_FLOAT_PARAM(1))); + pVehicle->SetHeading(DEGTORAD(*(float*)&ScriptParams[1])); return 0; } case COMMAND_GET_OBJECT_HEADING: { CollectParameters(&m_nIp, 1); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); float angle = pObject->GetForward().Heading(); angle = RADTODEG(angle); @@ -567,39 +531,39 @@ int8 CRunningScript::ProcessCommands300To399(int32 command) angle += 360.0f; if (angle > 360.0f) angle -= 360.0f; - SET_FLOAT_PARAM(0, angle); + *(float*)&ScriptParams[0] = angle; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_SET_OBJECT_HEADING: { CollectParameters(&m_nIp, 2); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); CWorld::Remove(pObject); - pObject->SetHeading(DEGTORAD(GET_FLOAT_PARAM(1))); + pObject->SetHeading(DEGTORAD(*(float*)&ScriptParams[1])); pObject->GetMatrix().UpdateRW(); pObject->UpdateRwFrame(); CWorld::Add(pObject); return 0; } + /* case COMMAND_IS_PLAYER_TOUCHING_OBJECT: { CollectParameters(&m_nIp, 2); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(1)); + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[1]); script_assert(pObject); CPhysical* pEntityToTest = pPed->bInVehicle ? (CPhysical*)pPed->m_pMyVehicle : pPed; UpdateCompareFlag(pEntityToTest->GetHasCollidedWith(pObject)); return 0; } - /* case COMMAND_IS_CHAR_TOUCHING_OBJECT: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(1)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[1]); script_assert(pObject); CPhysical* pEntityToTest = pPed->bInVehicle ? (CPhysical*)pPed->m_pMyVehicle : pPed; UpdateCompareFlag(pEntityToTest->GetHasCollidedWith(pObject)); @@ -609,119 +573,121 @@ int8 CRunningScript::ProcessCommands300To399(int32 command) case COMMAND_SET_PLAYER_AMMO: { CollectParameters(&m_nIp, 3); - CWorld::Players[0].m_pPed->SetAmmo((eWeaponType)GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2)); + CWorld::Players[0].m_pPed->SetAmmo((eWeaponType)ScriptParams[1], ScriptParams[2]); return 0; } + /* case COMMAND_SET_CHAR_AMMO: { CollectParameters(&m_nIp, 3); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - pPed->SetAmmo((eWeaponType)GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); + pPed->SetAmmo((eWeaponType)ScriptParams[1], ScriptParams[2]); return 0; } + */ //case COMMAND_SET_CAR_AMMO: //case COMMAND_LOAD_CAMERA_SPLINE: //case COMMAND_MOVE_CAMERA_ALONG_SPLINE: //case COMMAND_GET_CAMERA_POSITION_ALONG_SPLINE: case COMMAND_DECLARE_MISSION_FLAG: - CTheScripts::OnAMissionFlag = (uint8*)GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) - CTheScripts::ScriptSpace; + CTheScripts::OnAMissionFlag = (uint16)CTheScripts::Read2BytesFromScript(&++m_nIp); return 0; case COMMAND_DECLARE_MISSION_FLAG_FOR_CONTACT: return 0; - //case COMMAND_DECLARE_BASE_BRIEF_ID_FOR_CONTACT: + //case COMMAND_DECLARE_BASE_BRIEF_ID_FOR_CONTACT: case COMMAND_IS_PLAYER_HEALTH_GREATER: { CollectParameters(&m_nIp, 2); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; - UpdateCompareFlag(pPed->m_fHealth > GET_INTEGER_PARAM(1)); + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; + UpdateCompareFlag(pPed->m_fHealth > ScriptParams[1]); return 0; } case COMMAND_IS_CHAR_HEALTH_GREATER: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - UpdateCompareFlag(pPed->m_fHealth > GET_INTEGER_PARAM(1)); + UpdateCompareFlag(pPed->m_fHealth > ScriptParams[1]); return 0; } case COMMAND_IS_CAR_HEALTH_GREATER: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - UpdateCompareFlag(pVehicle->m_fHealth > GET_INTEGER_PARAM(1)); + UpdateCompareFlag(pVehicle->m_fHealth > ScriptParams[1]); return 0; } case COMMAND_ADD_BLIP_FOR_CAR: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); CRadar::GetActualBlipArrayIndex(CollectNextParameterWithoutIncreasingPC(m_nIp)); - int handle = CRadar::SetEntityBlip(BLIP_CAR, GET_INTEGER_PARAM(0), 0, BLIP_DISPLAY_BOTH); + int handle = CRadar::SetEntityBlip(BLIP_CAR, ScriptParams[0], 0, BLIP_DISPLAY_BOTH); CRadar::ChangeBlipScale(handle, 3); - SET_INTEGER_PARAM(0, handle); + ScriptParams[0] = handle; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_ADD_BLIP_FOR_CHAR: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); CRadar::GetActualBlipArrayIndex(CollectNextParameterWithoutIncreasingPC(m_nIp)); - int handle = CRadar::SetEntityBlip(BLIP_CHAR, GET_INTEGER_PARAM(0), 1, BLIP_DISPLAY_BOTH); + int handle = CRadar::SetEntityBlip(BLIP_CHAR, ScriptParams[0], 1, BLIP_DISPLAY_BOTH); CRadar::ChangeBlipScale(handle, 3); - SET_INTEGER_PARAM(0, handle); + ScriptParams[0] = handle; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_ADD_BLIP_FOR_OBJECT: { CollectParameters(&m_nIp, 1); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); CRadar::GetActualBlipArrayIndex(CollectNextParameterWithoutIncreasingPC(m_nIp)); - int handle = CRadar::SetEntityBlip(BLIP_OBJECT, GET_INTEGER_PARAM(0), 6, BLIP_DISPLAY_BOTH); + int handle = CRadar::SetEntityBlip(BLIP_OBJECT, ScriptParams[0], 6, BLIP_DISPLAY_BOTH); CRadar::ChangeBlipScale(handle, 3); - SET_INTEGER_PARAM(0, handle); + ScriptParams[0] = handle; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_ADD_BLIP_FOR_CONTACT_POINT: { CollectParameters(&m_nIp, 3); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); CRadar::GetActualBlipArrayIndex(CollectNextParameterWithoutIncreasingPC(m_nIp)); int handle = CRadar::SetCoordBlip(BLIP_CONTACT_POINT, pos, 2, BLIP_DISPLAY_BOTH); CRadar::ChangeBlipScale(handle, 3); - SET_INTEGER_PARAM(0, handle); + ScriptParams[0] = handle; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_ADD_BLIP_FOR_COORD: { CollectParameters(&m_nIp, 3); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); CRadar::GetActualBlipArrayIndex(CollectNextParameterWithoutIncreasingPC(m_nIp)); int handle = CRadar::SetCoordBlip(BLIP_COORD, pos, 5, BLIP_DISPLAY_BOTH); CRadar::ChangeBlipScale(handle, 3); - SET_INTEGER_PARAM(0, handle); + ScriptParams[0] = handle; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_CHANGE_BLIP_DISPLAY: CollectParameters(&m_nIp, 2); - CRadar::ChangeBlipDisplay(GET_INTEGER_PARAM(0), (eBlipDisplay)GET_INTEGER_PARAM(1)); + CRadar::ChangeBlipDisplay(ScriptParams[0], (eBlipDisplay)ScriptParams[1]); return 0; case COMMAND_ADD_ONE_OFF_SOUND: { CollectParameters(&m_nIp, 4); - switch (GET_INTEGER_PARAM(3)) { + switch (ScriptParams[3]) { case SCRIPT_SOUND_PART_MISSION_COMPLETE: DMAudio.PlayFrontEndSound(SOUND_PART_MISSION_COMPLETE, 0); return 0; @@ -746,20 +712,14 @@ int8 CRunningScript::ProcessCommands300To399(int32 command) case SCRIPT_SOUND_IMRAN_ARM_BOMB: DMAudio.PlayFrontEndSound(SOUND_AMMUNATION_IMRAN_ARM_BOMB, 0); return 0; - case 0x46: // TODO - DMAudio.PlayFrontEndSound(0xC4, 0); - return 0; - case 0x47: // TODO - DMAudio.PlayFrontEndSound(0xCD, 0); - return 0; default: break; } - if (!DMAudio.IsAudioInitialised()) // LCS doesn't have it. Why? + if (!DMAudio.IsAudioInitialised()) return 0; cAudioScriptObject* obj = new cAudioScriptObject(); - obj->Posn = GET_VECTOR_PARAM(0); - obj->AudioId = GET_INTEGER_PARAM(3); + obj->Posn = *(CVector*)&ScriptParams[0]; + obj->AudioId = ScriptParams[3]; obj->AudioEntity = AEHANDLE_NONE; DMAudio.CreateOneShotScriptObject(obj); return 0; @@ -767,23 +727,23 @@ int8 CRunningScript::ProcessCommands300To399(int32 command) case COMMAND_ADD_CONTINUOUS_SOUND: { CollectParameters(&m_nIp, 4); - if (DMAudio.IsAudioInitialised()) { // LCS doesn't have it. Why? + if (DMAudio.IsAudioInitialised()) { cAudioScriptObject* obj = new cAudioScriptObject(); - obj->Posn = GET_VECTOR_PARAM(0); - obj->AudioId = GET_INTEGER_PARAM(3); + obj->Posn = *(CVector*)&ScriptParams[0]; + obj->AudioId = ScriptParams[3]; obj->AudioEntity = DMAudio.CreateLoopingScriptObject(obj); - SET_INTEGER_PARAM(0, CPools::GetAudioScriptObjectPool()->GetIndex(obj)); + ScriptParams[0] = CPools::GetAudioScriptObjectPool()->GetIndex(obj); } else - SET_INTEGER_PARAM(0, -1); + ScriptParams[0] = -1; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_REMOVE_SOUND: { CollectParameters(&m_nIp, 1); - cAudioScriptObject* obj = CPools::GetAudioScriptObjectPool()->GetAt(GET_INTEGER_PARAM(0)); - if (!obj) { + cAudioScriptObject* obj = CPools::GetAudioScriptObjectPool()->GetAt(ScriptParams[0]); + if (!obj){ debug("REMOVE_SOUND - Sound doesn't exist\n"); return 0; } @@ -794,9 +754,9 @@ int8 CRunningScript::ProcessCommands300To399(int32 command) case COMMAND_IS_CAR_STUCK_ON_ROOF: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - UpdateCompareFlag(CTheScripts::UpsideDownCars.HasCarBeenUpsideDownForAWhile(GET_INTEGER_PARAM(0))); + UpdateCompareFlag(CTheScripts::UpsideDownCars.HasCarBeenUpsideDownForAWhile(ScriptParams[0])); return 0; } default: @@ -811,22 +771,22 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_ADD_UPSIDEDOWN_CAR_CHECK: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - CTheScripts::UpsideDownCars.AddCarToCheck(GET_INTEGER_PARAM(0)); + CTheScripts::UpsideDownCars.AddCarToCheck(ScriptParams[0]); return 0; } case COMMAND_REMOVE_UPSIDEDOWN_CAR_CHECK: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - CTheScripts::UpsideDownCars.RemoveCarFromCheck(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); + CTheScripts::UpsideDownCars.RemoveCarFromCheck(ScriptParams[0]); return 0; } case COMMAND_SET_CHAR_OBJ_WAIT_ON_FOOT: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_WAIT_ON_FOOT); @@ -835,7 +795,7 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_SET_CHAR_OBJ_FLEE_ON_FOOT_TILL_SAFE: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_FLEE_CHAR_ON_FOOT_TILL_SAFE); @@ -844,31 +804,32 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_SET_CHAR_OBJ_GUARD_SPOT: { CollectParameters(&m_nIp, 4); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CVector pos = GET_VECTOR_PARAM(1); + CVector pos = *(CVector*)&ScriptParams[1]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_GUARD_SPOT, pos); return 0; } + /* case COMMAND_SET_CHAR_OBJ_GUARD_AREA: { CollectParameters(&m_nIp, 5); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - float infX = GET_FLOAT_PARAM(1); - float infY = GET_FLOAT_PARAM(2); - float supX = GET_FLOAT_PARAM(3); - float supY = GET_FLOAT_PARAM(4); - if (infX > supX) { - infX = GET_FLOAT_PARAM(3); - supX = GET_FLOAT_PARAM(1); + float infX = *(float*)&ScriptParams[1]; + float infY = *(float*)&ScriptParams[2]; + float supX = *(float*)&ScriptParams[3]; + float supY = *(float*)&ScriptParams[4]; + if (infX > supX){ + infX = *(float*)&ScriptParams[3]; + supX = *(float*)&ScriptParams[1]; } if (infY > supY) { - infY = GET_FLOAT_PARAM(4); - supY = GET_FLOAT_PARAM(2); + infY = *(float*)&ScriptParams[4]; + supY = *(float*)&ScriptParams[2]; } CVector pos; pos.x = (infX + supX) / 2; @@ -882,12 +843,13 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_SET_CHAR_OBJ_WAIT_IN_CAR: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_WAIT_IN_CAR); return 0; } + */ case COMMAND_IS_PLAYER_IN_AREA_ON_FOOT_2D: case COMMAND_IS_PLAYER_IN_AREA_IN_CAR_2D: case COMMAND_IS_PLAYER_STOPPED_IN_AREA_2D: @@ -925,17 +887,17 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_GIVE_WEAPON_TO_PLAYER: { CollectParameters(&m_nIp, 3); - CPlayerPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPlayerPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); - pPed->m_nSelectedWepSlot = pPed->GiveWeapon((eWeaponType)GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2)); + pPed->m_nSelectedWepSlot = pPed->GiveWeapon((eWeaponType)ScriptParams[1], ScriptParams[2]); return 0; } case COMMAND_GIVE_WEAPON_TO_CHAR: { CollectParameters(&m_nIp, 3); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->SetCurrentWeapon(pPed->GiveWeapon((eWeaponType)GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2))); + pPed->SetCurrentWeapon(pPed->GiveWeapon((eWeaponType)ScriptParams[1], ScriptParams[2])); if (pPed->bInVehicle && pPed->m_pMyVehicle) pPed->RemoveWeaponModel(CWeaponInfo::GetWeaponInfo(pPed->m_weapons[pPed->m_currentWeapon].m_eWeaponType)->m_nModelId); return 0; @@ -944,35 +906,23 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_SET_PLAYER_CONTROL: { CollectParameters(&m_nIp, 2); - CPlayerInfo* pPlayer = &CWorld::Players[GET_INTEGER_PARAM(0)]; - if (FindPlayerPed()) { - if (FindPlayerPed()->GetPedState() != PED_JUMP) { - FindPlayerPed()->bIsLanding = false; - FindPlayerPed()->bIsInTheAir = false; - } - FindPlayerPed()->RestoreHeadingRate(); - } - if (GET_INTEGER_PARAM(1)) { + CPlayerInfo* pPlayer = &CWorld::Players[ScriptParams[0]]; + if (ScriptParams[1]){ pPlayer->MakePlayerSafe(false); - if (FindPlayerPed()->GetStatus() != PED_DRIVING && !FindPlayerPed()->m_attachedTo) { - // FindPlayerPed()->SetIdleAndResetAnim(); // TODO! - } - } - else { + if (strcmp(m_abScriptName, "serg1") == 0) // Four Iron + pPlayer->m_pPed->ClearFollowPath(); + }else{ pPlayer->MakePlayerSafe(true); - if (FindPlayerPed()->GetPedState() > PED_STATES_NO_AI && FindPlayerPed()->GetPedState() != PED_DRIVING && TheCamera.GetScreenFadeStatus() == FADE_2) { - // FindPlayerPed()->SetIdleAndResetAnim(); // TODO! - } } return 0; } case COMMAND_FORCE_WEATHER: CollectParameters(&m_nIp, 1); - CWeather::ForceWeather(GET_INTEGER_PARAM(0)); + CWeather::ForceWeather(ScriptParams[0]); return 0; case COMMAND_FORCE_WEATHER_NOW: CollectParameters(&m_nIp, 1); - CWeather::ForceWeatherNow(GET_INTEGER_PARAM(0)); + CWeather::ForceWeatherNow(ScriptParams[0]); return 0; case COMMAND_RELEASE_WEATHER: CWeather::ReleaseWeather(); @@ -980,9 +930,9 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_SET_CURRENT_PLAYER_WEAPON: { CollectParameters(&m_nIp, 2); - CPlayerPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; - for (int i = 0; i < TOTAL_WEAPON_SLOTS; i++) { - if (pPed->m_weapons[i].m_eWeaponType == GET_INTEGER_PARAM(1)) + CPlayerPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; + for (int i = 0; i < TOTAL_WEAPON_SLOTS; i++){ + if (pPed->m_weapons[i].m_eWeaponType == ScriptParams[1]) pPed->m_nSelectedWepSlot = i; } return 0; @@ -990,9 +940,9 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_SET_CURRENT_CHAR_WEAPON: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); for (int i = 0; i < TOTAL_WEAPON_SLOTS; i++) { - if (pPed->m_weapons[i].m_eWeaponType == GET_INTEGER_PARAM(1)) + if (pPed->m_weapons[i].m_eWeaponType == ScriptParams[1]) pPed->SetCurrentWeapon(i); } return 0; @@ -1001,18 +951,18 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_GET_OBJECT_COORDINATES: { CollectParameters(&m_nIp, 1); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); - SET_VECTOR_PARAM(0, pObject->GetPosition()); + *(CVector*)&ScriptParams[0] = pObject->GetPosition(); StoreParameters(&m_nIp, 3); return 0; } case COMMAND_SET_OBJECT_COORDINATES: { CollectParameters(&m_nIp, 4); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); - CVector pos = GET_VECTOR_PARAM(1); + CVector pos = *(CVector*)&ScriptParams[1]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); pObject->Teleport(pos); @@ -1020,13 +970,13 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) return 0; } case COMMAND_GET_GAME_TIMER: - SET_INTEGER_PARAM(0, CTimer::GetTimeInMilliseconds()); + ScriptParams[0] = CTimer::GetTimeInMilliseconds(); StoreParameters(&m_nIp, 1); return 0; case COMMAND_TURN_CHAR_TO_FACE_COORD: { CollectParameters(&m_nIp, 4); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); CVehicle* pVehicle; CVector pos; @@ -1038,11 +988,11 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) pos = pVehicle->GetPosition(); else pos = pPed->GetPosition(); - float heading = CGeneral::GetATanOfXY(pos.x - GET_FLOAT_PARAM(1), pos.y - GET_FLOAT_PARAM(2)); + float heading = CGeneral::GetATanOfXY(pos.x - *(float*)&ScriptParams[1], pos.y - *(float*)&ScriptParams[2]); heading += HALFPI; if (heading > TWOPI) heading -= TWOPI; - if (!pVehicle) { + if (!pVehicle){ pPed->m_fRotationCur = heading; pPed->m_fRotationDest = heading; pPed->SetHeading(heading); @@ -1052,7 +1002,7 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_TURN_PLAYER_TO_FACE_COORD: { CollectParameters(&m_nIp, 4); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); CVehicle* pVehicle; CVector pos; @@ -1064,7 +1014,7 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) pos = pVehicle->GetPosition(); else pos = pPed->GetPosition(); - float heading = CGeneral::GetATanOfXY(pos.x - GET_FLOAT_PARAM(1), pos.y - GET_FLOAT_PARAM(2)); + float heading = CGeneral::GetATanOfXY(pos.x - *(float*)&ScriptParams[1], pos.y - *(float*)&ScriptParams[2]); heading += HALFPI; if (heading > TWOPI) heading -= TWOPI; @@ -1078,16 +1028,16 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_STORE_WANTED_LEVEL: { CollectParameters(&m_nIp, 1); - CPlayerPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPlayerPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); - SET_INTEGER_PARAM(0, pPed->m_pWanted->GetWantedLevel()); + ScriptParams[0] = pPed->m_pWanted->GetWantedLevel(); StoreParameters(&m_nIp, 1); return 0; } case COMMAND_IS_CAR_STOPPED: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); UpdateCompareFlag(CTheScripts::IsVehicleStopped(pVehicle)); return 0; @@ -1095,94 +1045,94 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_MARK_CHAR_AS_NO_LONGER_NEEDED: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); CTheScripts::CleanUpThisPed(pPed); if (m_bIsMissionScript) - CTheScripts::MissionCleanUp.RemoveEntityFromList(GET_INTEGER_PARAM(0), CLEANUP_CHAR); + CTheScripts::MissionCleanUp.RemoveEntityFromList(ScriptParams[0], CLEANUP_CHAR); return 0; } case COMMAND_MARK_CAR_AS_NO_LONGER_NEEDED: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); CTheScripts::CleanUpThisVehicle(pVehicle); if (m_bIsMissionScript) - CTheScripts::MissionCleanUp.RemoveEntityFromList(GET_INTEGER_PARAM(0), CLEANUP_CAR); + CTheScripts::MissionCleanUp.RemoveEntityFromList(ScriptParams[0], CLEANUP_CAR); return 0; } case COMMAND_MARK_OBJECT_AS_NO_LONGER_NEEDED: { CollectParameters(&m_nIp, 1); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); CTheScripts::CleanUpThisObject(pObject); if (m_bIsMissionScript) - CTheScripts::MissionCleanUp.RemoveEntityFromList(GET_INTEGER_PARAM(0), CLEANUP_OBJECT); + CTheScripts::MissionCleanUp.RemoveEntityFromList(ScriptParams[0], CLEANUP_OBJECT); return 0; } case COMMAND_DONT_REMOVE_CHAR: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CTheScripts::MissionCleanUp.RemoveEntityFromList(GET_INTEGER_PARAM(0), CLEANUP_CHAR); + CTheScripts::MissionCleanUp.RemoveEntityFromList(ScriptParams[0], CLEANUP_CHAR); return 0; } case COMMAND_DONT_REMOVE_CAR: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - CTheScripts::MissionCleanUp.RemoveEntityFromList(GET_INTEGER_PARAM(0), CLEANUP_CAR); + CTheScripts::MissionCleanUp.RemoveEntityFromList(ScriptParams[0], CLEANUP_CAR); return 0; } case COMMAND_DONT_REMOVE_OBJECT: { CollectParameters(&m_nIp, 1); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); - CTheScripts::MissionCleanUp.RemoveEntityFromList(GET_INTEGER_PARAM(0), CLEANUP_OBJECT); + CTheScripts::MissionCleanUp.RemoveEntityFromList(ScriptParams[0], CLEANUP_OBJECT); return 0; } case COMMAND_CREATE_CHAR_AS_PASSENGER: { CollectParameters(&m_nIp, 4); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - switch (GET_INTEGER_PARAM(2)) { + switch (ScriptParams[2]) { case MI_COP: - if (GET_INTEGER_PARAM(1) == PEDTYPE_COP) - SET_INTEGER_PARAM(2, COP_STREET); + if (ScriptParams[1] == PEDTYPE_COP) + ScriptParams[2] = COP_STREET; break; case MI_SWAT: - if (GET_INTEGER_PARAM(1) == PEDTYPE_COP) - SET_INTEGER_PARAM(2, COP_SWAT); + if (ScriptParams[1] == PEDTYPE_COP) + ScriptParams[2] = COP_SWAT; break; case MI_FBI: - if (GET_INTEGER_PARAM(1) == PEDTYPE_COP) - SET_INTEGER_PARAM(2, COP_FBI); + if (ScriptParams[1] == PEDTYPE_COP) + ScriptParams[2] = COP_FBI; break; case MI_ARMY: - if (GET_INTEGER_PARAM(1) == PEDTYPE_COP) - SET_INTEGER_PARAM(2, COP_ARMY); + if (ScriptParams[1] == PEDTYPE_COP) + ScriptParams[2] = COP_ARMY; break; case MI_MEDIC: - if (GET_INTEGER_PARAM(1) == PEDTYPE_EMERGENCY) - SET_INTEGER_PARAM(2, PEDTYPE_EMERGENCY); + if (ScriptParams[1] == PEDTYPE_EMERGENCY) + ScriptParams[2] = PEDTYPE_EMERGENCY; break; case MI_FIREMAN: - if (GET_INTEGER_PARAM(1) == PEDTYPE_FIREMAN) - SET_INTEGER_PARAM(2, PEDTYPE_FIREMAN); + if (ScriptParams[1] == PEDTYPE_FIREMAN) + ScriptParams[2] = PEDTYPE_FIREMAN; break; default: break; } CPed* pPed; - if (GET_INTEGER_PARAM(1) == PEDTYPE_COP) - pPed = new CCopPed((eCopType)GET_INTEGER_PARAM(2)); - else if (GET_INTEGER_PARAM(1) == PEDTYPE_EMERGENCY || GET_INTEGER_PARAM(1) == PEDTYPE_FIREMAN) - pPed = new CEmergencyPed(GET_INTEGER_PARAM(2)); + if (ScriptParams[1] == PEDTYPE_COP) + pPed = new CCopPed((eCopType)ScriptParams[2]); + else if (ScriptParams[1] == PEDTYPE_EMERGENCY || ScriptParams[1] == PEDTYPE_FIREMAN) + pPed = new CEmergencyPed(ScriptParams[2]); else - pPed = new CCivilianPed((ePedType)GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2)); + pPed = new CCivilianPed((ePedType)ScriptParams[1], ScriptParams[2]); pPed->CharCreatedBy = MISSION_CHAR; pPed->bRespondsToThreats = false; pPed->bAllowMedicsToReviveMe = false; @@ -1193,8 +1143,8 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) pPed->SetOrientation(0.0f, 0.0f, 0.0f); CPopulation::ms_nTotalMissionPeds++; CWorld::Add(pPed); - if (GET_INTEGER_PARAM(3) >= 0) - pVehicle->AddPassenger(pPed, GET_INTEGER_PARAM(3)); + if (ScriptParams[3] >= 0) + pVehicle->AddPassenger(pPed, ScriptParams[3]); else pVehicle->AddPassenger(pPed); pPed->m_pMyVehicle = pVehicle; @@ -1204,18 +1154,18 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) pPed->bUsesCollision = false; pPed->AddInCarAnims(pVehicle, false); pPed->m_nZoneLevel = CTheZones::GetLevelFromPosition(&pPed->GetPosition()); - SET_INTEGER_PARAM(0, CPools::GetPedPool()->GetIndex(pPed)); + ScriptParams[0] = CPools::GetPedPool()->GetIndex(pPed); StoreParameters(&m_nIp, 1); if (m_bIsMissionScript) - CTheScripts::MissionCleanUp.AddEntityToList(GET_INTEGER_PARAM(0), CLEANUP_CHAR); + CTheScripts::MissionCleanUp.AddEntityToList(ScriptParams[0], CLEANUP_CHAR); return 0; } case COMMAND_SET_CHAR_OBJ_KILL_CHAR_ON_FOOT: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CPed* pTarget = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); + CPed* pTarget = CPools::GetPedPool()->GetAt(ScriptParams[1]); pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_KILL_CHAR_ON_FOOT, pTarget); return 0; @@ -1223,9 +1173,9 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_SET_CHAR_OBJ_KILL_PLAYER_ON_FOOT: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CPed* pTarget = CWorld::Players[GET_INTEGER_PARAM(1)].m_pPed; + CPed* pTarget = CWorld::Players[ScriptParams[1]].m_pPed; pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_KILL_CHAR_ON_FOOT, pTarget); return 0; @@ -1233,9 +1183,9 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_SET_CHAR_OBJ_KILL_CHAR_ANY_MEANS: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CPed* pTarget = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); + CPed* pTarget = CPools::GetPedPool()->GetAt(ScriptParams[1]); pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_KILL_CHAR_ANY_MEANS, pTarget); return 0; @@ -1243,9 +1193,9 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_SET_CHAR_OBJ_KILL_PLAYER_ANY_MEANS: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CPed* pTarget = CWorld::Players[GET_INTEGER_PARAM(1)].m_pPed; + CPed* pTarget = CWorld::Players[ScriptParams[1]].m_pPed; pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_KILL_CHAR_ANY_MEANS, pTarget); return 0; @@ -1254,9 +1204,9 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_SET_CHAR_OBJ_FLEE_CHAR_ON_FOOT_TILL_SAFE: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CPed* pTarget = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); + CPed* pTarget = CPools::GetPedPool()->GetAt(ScriptParams[1]); pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_FLEE_CHAR_ON_FOOT_TILL_SAFE, pTarget); return 0; @@ -1265,9 +1215,9 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_SET_CHAR_OBJ_FLEE_PLAYER_ON_FOOT_TILL_SAFE: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CPed* pTarget = CWorld::Players[GET_INTEGER_PARAM(1)].m_pPed; + CPed* pTarget = CWorld::Players[ScriptParams[1]].m_pPed; pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_FLEE_CHAR_ON_FOOT_TILL_SAFE, pTarget); return 0; @@ -1275,9 +1225,9 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_SET_CHAR_OBJ_FLEE_CHAR_ON_FOOT_ALWAYS: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CPed* pTarget = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); + CPed* pTarget = CPools::GetPedPool()->GetAt(ScriptParams[1]); pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_FLEE_CHAR_ON_FOOT_ALWAYS, pTarget); return 0; @@ -1285,9 +1235,9 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_SET_CHAR_OBJ_FLEE_PLAYER_ON_FOOT_ALWAYS: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CPed* pTarget = CWorld::Players[GET_INTEGER_PARAM(1)].m_pPed; + CPed* pTarget = CWorld::Players[ScriptParams[1]].m_pPed; pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_FLEE_CHAR_ON_FOOT_ALWAYS, pTarget); return 0; @@ -1295,9 +1245,9 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_SET_CHAR_OBJ_GOTO_CHAR_ON_FOOT: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CPed* pTarget = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); + CPed* pTarget = CPools::GetPedPool()->GetAt(ScriptParams[1]); pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_GOTO_CHAR_ON_FOOT, pTarget); return 0; @@ -1305,9 +1255,9 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_SET_CHAR_OBJ_GOTO_PLAYER_ON_FOOT: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CPed* pTarget = CWorld::Players[GET_INTEGER_PARAM(1)].m_pPed; + CPed* pTarget = CWorld::Players[ScriptParams[1]].m_pPed; pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_GOTO_CHAR_ON_FOOT, pTarget); return 0; @@ -1315,9 +1265,9 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_SET_CHAR_OBJ_LEAVE_CAR: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[1]); pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_LEAVE_CAR, pVehicle); return 0; @@ -1325,9 +1275,9 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_SET_CHAR_OBJ_ENTER_CAR_AS_PASSENGER: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[1]); pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_ENTER_CAR_AS_PASSENGER, pVehicle); return 0; @@ -1335,9 +1285,9 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_SET_CHAR_OBJ_ENTER_CAR_AS_DRIVER: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[1]); pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_ENTER_CAR_AS_DRIVER, pVehicle); return 0; @@ -1347,9 +1297,9 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_SET_CHAR_OBJ_DESTROY_OBJECT: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(1)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[1]); pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_DESTROY_OBJECT, pObject); return 0; @@ -1357,29 +1307,30 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_SET_CHAR_OBJ_DESTROY_CAR: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[1]); pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_DESTROY_CAR, pVehicle); return 0; } + /* case COMMAND_SET_CHAR_OBJ_GOTO_AREA_ON_FOOT: { CollectParameters(&m_nIp, 5); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - float infX = GET_FLOAT_PARAM(1); - float infY = GET_FLOAT_PARAM(2); - float supX = GET_FLOAT_PARAM(3); - float supY = GET_FLOAT_PARAM(4); + float infX = *(float*)&ScriptParams[1]; + float infY = *(float*)&ScriptParams[2]; + float supX = *(float*)&ScriptParams[3]; + float supY = *(float*)&ScriptParams[4]; if (infX > supX) { - infX = GET_FLOAT_PARAM(3); - supX = GET_FLOAT_PARAM(1); + infX = *(float*)&ScriptParams[3]; + supX = *(float*)&ScriptParams[1]; } if (infY > supY) { - infY = GET_FLOAT_PARAM(4); - supY = GET_FLOAT_PARAM(2); + infY = *(float*)&ScriptParams[4]; + supY = *(float*)&ScriptParams[2]; } CVector pos; pos.x = (infX + supX) / 2; @@ -1390,31 +1341,32 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) pPed->SetObjective(OBJECTIVE_GOTO_AREA_ON_FOOT, pos, radius); return 0; } + */ //case COMMAND_SET_CHAR_OBJ_GOTO_AREA_IN_CAR: //case COMMAND_SET_CHAR_OBJ_FOLLOW_CAR_ON_FOOT_WITH_OFFSET: //case COMMAND_SET_CHAR_OBJ_GUARD_ATTACK: case COMMAND_SET_CHAR_AS_LEADER: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CPed* pTarget = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); + CPed* pTarget = CPools::GetPedPool()->GetAt(ScriptParams[1]); pPed->SetObjective(OBJECTIVE_SET_LEADER, pTarget); return 0; } case COMMAND_SET_PLAYER_AS_LEADER: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CPed* pTarget = CWorld::Players[GET_INTEGER_PARAM(1)].m_pPed; + CPed* pTarget = CWorld::Players[ScriptParams[1]].m_pPed; pPed->SetObjective(OBJECTIVE_SET_LEADER, pTarget); return 0; } case COMMAND_LEAVE_GROUP: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); pPed->ClearLeader(); return 0; @@ -1422,66 +1374,60 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_SET_CHAR_OBJ_FOLLOW_ROUTE: { CollectParameters(&m_nIp, 3); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); pPed->bScriptObjectiveCompleted = false; - pPed->SetObjective(OBJECTIVE_FOLLOW_ROUTE, GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2)); + pPed->SetObjective(OBJECTIVE_FOLLOW_ROUTE, ScriptParams[1], ScriptParams[2]); return 0; } case COMMAND_ADD_ROUTE_POINT: { CollectParameters(&m_nIp, 4); - CRouteNode::AddRoutePoint(GET_INTEGER_PARAM(0), GET_VECTOR_PARAM(1)); + CRouteNode::AddRoutePoint(ScriptParams[0], *(CVector*)&ScriptParams[1]); return 0; } case COMMAND_PRINT_WITH_NUMBER_BIG: { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 3); - CMessages::AddBigMessageWithNumber(text, GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2) - 1, GET_INTEGER_PARAM(0), -1, -1, -1, -1, -1); + CMessages::AddBigMessageWithNumber(text, ScriptParams[1], ScriptParams[2] - 1, ScriptParams[0], -1, -1, -1, -1, -1); return 0; } case COMMAND_PRINT_WITH_NUMBER: { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 3); - CMessages::AddMessageWithNumber(text, GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(0), -1, -1, -1, -1, -1); + CMessages::AddMessageWithNumber(text, ScriptParams[1], ScriptParams[2], ScriptParams[0], -1, -1, -1, -1, -1); return 0; } case COMMAND_PRINT_WITH_NUMBER_NOW: { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 3); - CMessages::AddMessageJumpQWithNumber(text, GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(0), -1, -1, -1, -1, -1); // 1 - return 0; - } - case COMMAND_PRINT_WITH_NUMBER_SOON: - { - wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); - CollectParameters(&m_nIp, 3); - CMessages::AddMessageSoonWithNumber(text, GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(0), -1, -1, -1, -1, -1); + CMessages::AddMessageJumpQWithNumber(text, ScriptParams[1], ScriptParams[2], ScriptParams[0], -1, -1, -1, -1, -1); return 0; } + //case COMMAND_PRINT_WITH_NUMBER_SOON: case COMMAND_SWITCH_ROADS_ON: { CollectParameters(&m_nIp, 6); - float infX = GET_FLOAT_PARAM(0); - float infY = GET_FLOAT_PARAM(1); - float infZ = GET_FLOAT_PARAM(2); - float supX = GET_FLOAT_PARAM(3); - float supY = GET_FLOAT_PARAM(4); - float supZ = GET_FLOAT_PARAM(5); - if (infX > supX) { - infX = GET_FLOAT_PARAM(3); - supX = GET_FLOAT_PARAM(0); + float infX = *(float*)&ScriptParams[0]; + float infY = *(float*)&ScriptParams[1]; + float infZ = *(float*)&ScriptParams[2]; + float supX = *(float*)&ScriptParams[3]; + float supY = *(float*)&ScriptParams[4]; + float supZ = *(float*)&ScriptParams[5]; + if (infX > supX){ + infX = *(float*)&ScriptParams[3]; + supX = *(float*)&ScriptParams[0]; } - if (infY > supY) { - infY = GET_FLOAT_PARAM(4); - supY = GET_FLOAT_PARAM(1); + if (infY > supY){ + infY = *(float*)&ScriptParams[4]; + supY = *(float*)&ScriptParams[1]; } - if (infZ > supZ) { - infZ = GET_FLOAT_PARAM(5); - supZ = GET_FLOAT_PARAM(2); + if (infZ > supZ){ + infZ = *(float*)&ScriptParams[5]; + supZ = *(float*)&ScriptParams[2]; } ThePaths.SwitchRoadsOffInArea(infX, supX, infY, supY, infZ, supZ, false); return 0; @@ -1489,23 +1435,23 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_SWITCH_ROADS_OFF: { CollectParameters(&m_nIp, 6); - float infX = GET_FLOAT_PARAM(0); - float infY = GET_FLOAT_PARAM(1); - float infZ = GET_FLOAT_PARAM(2); - float supX = GET_FLOAT_PARAM(3); - float supY = GET_FLOAT_PARAM(4); - float supZ = GET_FLOAT_PARAM(5); + float infX = *(float*)&ScriptParams[0]; + float infY = *(float*)&ScriptParams[1]; + float infZ = *(float*)&ScriptParams[2]; + float supX = *(float*)&ScriptParams[3]; + float supY = *(float*)&ScriptParams[4]; + float supZ = *(float*)&ScriptParams[5]; if (infX > supX) { - infX = GET_FLOAT_PARAM(3); - supX = GET_FLOAT_PARAM(0); + infX = *(float*)&ScriptParams[3]; + supX = *(float*)&ScriptParams[0]; } if (infY > supY) { - infY = GET_FLOAT_PARAM(4); - supY = GET_FLOAT_PARAM(1); + infY = *(float*)&ScriptParams[4]; + supY = *(float*)&ScriptParams[1]; } if (infZ > supZ) { - infZ = GET_FLOAT_PARAM(5); - supZ = GET_FLOAT_PARAM(2); + infZ = *(float*)&ScriptParams[5]; + supZ = *(float*)&ScriptParams[2]; } ThePaths.SwitchRoadsOffInArea(infX, supX, infY, supY, infZ, supZ, true); return 0; @@ -1513,83 +1459,85 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_GET_NUMBER_OF_PASSENGERS: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - SET_INTEGER_PARAM(0, pVehicle->m_nNumPassengers); + ScriptParams[0] = pVehicle->m_nNumPassengers; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_GET_MAXIMUM_NUMBER_OF_PASSENGERS: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - SET_INTEGER_PARAM(0, pVehicle->m_nNumMaxPassengers); + ScriptParams[0] = pVehicle->m_nNumMaxPassengers; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_SET_CAR_DENSITY_MULTIPLIER: { CollectParameters(&m_nIp, 1); - CCarCtrl::CarDensityMultiplier = GET_FLOAT_PARAM(0); + CCarCtrl::CarDensityMultiplier = *(float*)&ScriptParams[0]; return 0; } case COMMAND_SET_CAR_HEAVY: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - if (GET_INTEGER_PARAM(1) != 0) { + if (ScriptParams[1] != 0) { pVehicle->bIsHeavy = true; - pVehicle->m_fMass = 3.0f * pVehicle->pHandling->fMass; // TODO: tHandlingData::GetMass() - pVehicle->m_fTurnMass = 5.0f * pVehicle->pHandling->fTurnMass; // TODO: tHandlingData::GetTurnMass() + pVehicle->m_fMass = 3.0f * pVehicle->pHandling->fMass; + pVehicle->m_fTurnMass = 5.0f * pVehicle->pHandling->fTurnMass; } else { pVehicle->bIsHeavy = false; - pVehicle->m_fMass = pVehicle->pHandling->fMass; // TODO: tHandlingData::GetMass() - pVehicle->m_fTurnMass = pVehicle->pHandling->fTurnMass; // TODO: tHandlingData::GetTurnMass() + pVehicle->m_fMass = pVehicle->pHandling->fMass; + pVehicle->m_fTurnMass = pVehicle->pHandling->fTurnMass; } return 0; } case COMMAND_CLEAR_CHAR_THREAT_SEARCH: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); pPed->m_fearFlags = 0; return 0; } + /* case COMMAND_ACTIVATE_CRANE: { CollectParameters(&m_nIp, 10); - float infX = GET_FLOAT_PARAM(2); - float infY = GET_FLOAT_PARAM(3); - float supX = GET_FLOAT_PARAM(4); - float supY = GET_FLOAT_PARAM(5); + float infX = *(float*)&ScriptParams[2]; + float infY = *(float*)&ScriptParams[3]; + float supX = *(float*)&ScriptParams[4]; + float supY = *(float*)&ScriptParams[5]; if (infX > supX) { - infX = GET_FLOAT_PARAM(4); - supX = GET_FLOAT_PARAM(2); + infX = *(float*)&ScriptParams[4]; + supX = *(float*)&ScriptParams[2]; } if (infY > supY) { - infY = GET_FLOAT_PARAM(5); - supY = GET_FLOAT_PARAM(3); + infY = *(float*)&ScriptParams[5]; + supY = *(float*)&ScriptParams[3]; } CCranes::ActivateCrane(infX, supX, infY, supY, - GET_FLOAT_PARAM(6), GET_FLOAT_PARAM(7), GET_FLOAT_PARAM(8), - DEGTORAD(GET_FLOAT_PARAM(9)), false, false, - GET_FLOAT_PARAM(0), GET_FLOAT_PARAM(1)); + *(float*)&ScriptParams[6], *(float*)&ScriptParams[7], *(float*)&ScriptParams[8], + DEGTORAD(*(float*)&ScriptParams[9]), false, false, + *(float*)&ScriptParams[0], *(float*)&ScriptParams[1]); return 0; } case COMMAND_DEACTIVATE_CRANE: { CollectParameters(&m_nIp, 2); - CCranes::DeActivateCrane(GET_FLOAT_PARAM(0), GET_FLOAT_PARAM(1)); + CCranes::DeActivateCrane(*(float*)&ScriptParams[0], *(float*)&ScriptParams[1]); return 0; } + */ case COMMAND_SET_MAX_WANTED_LEVEL: { CollectParameters(&m_nIp, 1); - CWanted::SetMaximumWantedLevel(GET_INTEGER_PARAM(0)); + CWanted::SetMaximumWantedLevel(ScriptParams[0]); return 0; } //case COMMAND_SAVE_VAR_INT: @@ -1597,7 +1545,7 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) case COMMAND_IS_CAR_IN_AIR_PROPER: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); UpdateCompareFlag(pVehicle->m_nCollisionRecords == 0); return 0; diff --git a/src/control/Script3.cpp b/src/control/Script3.cpp index 64014ac..acd3988 100644 --- a/src/control/Script3.cpp +++ b/src/control/Script3.cpp @@ -6,7 +6,6 @@ #include "Boat.h" #include "CarCtrl.h" #include "Clock.h" -#include "ColStore.h" #include "Coronas.h" #include "Cranes.h" #include "CutsceneMgr.h" @@ -37,25 +36,23 @@ #include "Bike.h" #include "Wanted.h" -// LCS: file done except TODOs - int8 CRunningScript::ProcessCommands500To599(int32 command) { switch (command) { case COMMAND_IS_CAR_UPSIDEDOWN: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - UpdateCompareFlag(pVehicle->GetUp().z <= UPSIDEDOWN_UP_THRESHOLD); + UpdateCompareFlag(pVehicle->GetUp().z <= -0.97f); return 0; } case COMMAND_GET_PLAYER_CHAR: { CollectParameters(&m_nIp, 1); - CPlayerPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPlayerPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); - SET_INTEGER_PARAM(0, CPools::GetPedPool()->GetIndex(pPed)); + ScriptParams[0] = CPools::GetPedPool()->GetIndex(pPed); StoreParameters(&m_nIp, 1); return 0; } @@ -65,9 +62,9 @@ int8 CRunningScript::ProcessCommands500To599(int32 command) case COMMAND_SET_POLICE_IGNORE_PLAYER: { CollectParameters(&m_nIp, 2); - CPlayerPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPlayerPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); - if (GET_INTEGER_PARAM(1)) { + if (ScriptParams[1]) { pPed->m_pWanted->m_bIgnoredByCops = true; CWorld::StopAllLawEnforcersInTheirTracks(); } @@ -81,8 +78,8 @@ int8 CRunningScript::ProcessCommands500To599(int32 command) { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 4); - CUserDisplay::Pager.AddMessageWithNumber(text, GET_INTEGER_PARAM(0), -1, -1, -1, -1, -1, - GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3)); + CUserDisplay::Pager.AddMessageWithNumber(text, ScriptParams[0], -1, -1, -1, -1, -1, + ScriptParams[1], ScriptParams[2], ScriptParams[3]); return 0; } */ @@ -90,21 +87,21 @@ int8 CRunningScript::ProcessCommands500To599(int32 command) { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 8); - CDarkel::StartFrenzy((eWeaponType)GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), - GET_INTEGER_PARAM(3), text, GET_INTEGER_PARAM(4), GET_INTEGER_PARAM(5), - GET_INTEGER_PARAM(6), GET_INTEGER_PARAM(7) != 0, false); + CDarkel::StartFrenzy((eWeaponType)ScriptParams[0], ScriptParams[1], ScriptParams[2], + ScriptParams[3], text, ScriptParams[4], ScriptParams[5], + ScriptParams[6], ScriptParams[7] != 0, false); return 0; } case COMMAND_READ_KILL_FRENZY_STATUS: { - SET_INTEGER_PARAM(0, CDarkel::ReadStatus()); + ScriptParams[0] = CDarkel::ReadStatus(); StoreParameters(&m_nIp, 1); return 0; } case COMMAND_SQRT: { CollectParameters(&m_nIp, 1); - SET_FLOAT_PARAM(0, Sqrt(GET_FLOAT_PARAM(0))); + *(float*)&ScriptParams[0] = Sqrt(*(float*)&ScriptParams[0]); StoreParameters(&m_nIp, 1); return 0; } @@ -126,40 +123,39 @@ int8 CRunningScript::ProcessCommands500To599(int32 command) return 0; case COMMAND_GENERATE_RANDOM_FLOAT_IN_RANGE: CollectParameters(&m_nIp, 2); - SET_FLOAT_PARAM(0, CGeneral::GetRandomNumberInRange(GET_FLOAT_PARAM(0), GET_FLOAT_PARAM(1))); + *(float*)&ScriptParams[0] = CGeneral::GetRandomNumberInRange(*(float*)&ScriptParams[0], *(float*)&ScriptParams[1]); StoreParameters(&m_nIp, 1); return 0; case COMMAND_GENERATE_RANDOM_INT_IN_RANGE: CollectParameters(&m_nIp, 2); - SET_INTEGER_PARAM(0, CGeneral::GetRandomNumberInRange(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1))); + ScriptParams[0] = CGeneral::GetRandomNumberInRange(ScriptParams[0], ScriptParams[1]); StoreParameters(&m_nIp, 1); return 0; case COMMAND_LOCK_CAR_DOORS: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - pVehicle->m_nDoorLock = (eCarLock)GET_INTEGER_PARAM(1); + pVehicle->m_nDoorLock = (eCarLock)ScriptParams[1]; return 0; } case COMMAND_EXPLODE_CAR: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - pVehicle->bCanBeDamaged = true; pVehicle->BlowUpCar(nil); return 0; } case COMMAND_ADD_EXPLOSION: CollectParameters(&m_nIp, 4); - CExplosion::AddExplosion(nil, nil, (eExplosionType)GET_INTEGER_PARAM(3), GET_VECTOR_PARAM(0), 0, true); // last argument is 0 (default? - TODO) + CExplosion::AddExplosion(nil, nil, (eExplosionType)ScriptParams[3], *(CVector*)&ScriptParams[0], 0, true); return 0; case COMMAND_IS_CAR_UPRIGHT: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); UpdateCompareFlag(pVehicle->GetUp().z >= 0.0f); return 0; @@ -167,8 +163,8 @@ int8 CRunningScript::ProcessCommands500To599(int32 command) case COMMAND_TURN_CHAR_TO_FACE_CHAR: { CollectParameters(&m_nIp, 2); - CPed* pSourcePed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - CPed* pTargetPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); + CPed* pSourcePed = CPools::GetPedPool()->GetAt(ScriptParams[0]); + CPed* pTargetPed = CPools::GetPedPool()->GetAt(ScriptParams[1]); CVehicle* pVehicle = pSourcePed->bInVehicle ? pSourcePed->m_pMyVehicle : nil; CVector2D sourcePos = pSourcePed->bInVehicle ? pVehicle->GetPosition() : pSourcePed->GetPosition(); CVector2D targetPos = pTargetPed->bInVehicle ? pTargetPed->m_pMyVehicle->GetPosition() : pTargetPed->GetPosition(); @@ -185,8 +181,8 @@ int8 CRunningScript::ProcessCommands500To599(int32 command) case COMMAND_TURN_CHAR_TO_FACE_PLAYER: { CollectParameters(&m_nIp, 2); - CPed* pSourcePed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - CPed* pTargetPed = CWorld::Players[GET_INTEGER_PARAM(1)].m_pPed; + CPed* pSourcePed = CPools::GetPedPool()->GetAt(ScriptParams[0]); + CPed* pTargetPed = CWorld::Players[ScriptParams[1]].m_pPed; CVehicle* pVehicle = pSourcePed->bInVehicle ? pSourcePed->m_pMyVehicle : nil; CVector2D sourcePos = pSourcePed->bInVehicle ? pVehicle->GetPosition() : pSourcePed->GetPosition(); CVector2D targetPos = pTargetPed->bInVehicle ? pTargetPed->m_pMyVehicle->GetPosition() : pTargetPed->GetPosition(); @@ -203,8 +199,8 @@ int8 CRunningScript::ProcessCommands500To599(int32 command) case COMMAND_TURN_PLAYER_TO_FACE_CHAR: { CollectParameters(&m_nIp, 2); - CPed* pSourcePed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; - CPed* pTargetPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); + CPed* pSourcePed = CWorld::Players[ScriptParams[0]].m_pPed; + CPed* pTargetPed = CPools::GetPedPool()->GetAt(ScriptParams[1]); CVehicle* pVehicle = pSourcePed->bInVehicle ? pSourcePed->m_pMyVehicle : nil; CVector2D sourcePos = pSourcePed->bInVehicle ? pVehicle->GetPosition() : pSourcePed->GetPosition(); CVector2D targetPos = pTargetPed->bInVehicle ? pTargetPed->m_pMyVehicle->GetPosition() : pTargetPed->GetPosition(); @@ -221,11 +217,11 @@ int8 CRunningScript::ProcessCommands500To599(int32 command) case COMMAND_SET_CHAR_OBJ_GOTO_COORD_ON_FOOT: { CollectParameters(&m_nIp, 3); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); CVector target; - target.x = GET_FLOAT_PARAM(1); - target.y = GET_FLOAT_PARAM(2); + target.x = *(float*)&ScriptParams[1]; + target.y = *(float*)&ScriptParams[2]; target.z = CWorld::FindGroundZForCoord(target.x, target.y); pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_GOTO_AREA_ON_FOOT, target); @@ -235,61 +231,63 @@ int8 CRunningScript::ProcessCommands500To599(int32 command) case COMMAND_CREATE_PICKUP: { CollectParameters(&m_nIp, 5); - int16 model = GET_INTEGER_PARAM(0); + int16 model = ScriptParams[0]; if (model < 0) model = CTheScripts::UsedObjectArray[-model].index; - CVector pos = GET_VECTOR_PARAM(2); + CVector pos = *(CVector*)&ScriptParams[2]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y) + PICKUP_PLACEMENT_OFFSET; CPickups::GetActualPickupIndex(CollectNextParameterWithoutIncreasingPC(m_nIp)); - SET_INTEGER_PARAM(0, CPickups::GenerateNewOne(pos, model, GET_INTEGER_PARAM(1), 0)); + ScriptParams[0] = CPickups::GenerateNewOne(pos, model, ScriptParams[1], 0); StoreParameters(&m_nIp, 1); return 0; } case COMMAND_HAS_PICKUP_BEEN_COLLECTED: CollectParameters(&m_nIp, 1); - UpdateCompareFlag(CPickups::IsPickUpPickedUp(GET_INTEGER_PARAM(0)) != 0); + UpdateCompareFlag(CPickups::IsPickUpPickedUp(ScriptParams[0]) != 0); return 0; case COMMAND_REMOVE_PICKUP: CollectParameters(&m_nIp, 1); - CPickups::RemovePickUp(GET_INTEGER_PARAM(0)); + CPickups::RemovePickUp(ScriptParams[0]); return 0; case COMMAND_SET_TAXI_LIGHTS: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); script_assert(pVehicle->m_vehType == VEHICLE_TYPE_CAR); - ((CAutomobile*)pVehicle)->SetTaxiLight(GET_INTEGER_PARAM(1) != 0); + ((CAutomobile*)pVehicle)->SetTaxiLight(ScriptParams[1] != 0); return 0; } case COMMAND_PRINT_BIG_Q: { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 2); - CMessages::AddBigMessageQ(text, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1) - 1); + CMessages::AddBigMessageQ(text, ScriptParams[0], ScriptParams[1] - 1); return 0; } + /* case COMMAND_PRINT_WITH_NUMBER_BIG_Q: { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 3); - CMessages::AddBigMessageWithNumberQ(text, GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2) - 1, - GET_INTEGER_PARAM(0), -1, -1, -1, -1, -1); + CMessages::AddBigMessageWithNumberQ(text, ScriptParams[1], ScriptParams[2] - 1, + ScriptParams[0], -1, -1, -1, -1, -1); return 0; } + */ case COMMAND_SET_GARAGE: { CollectParameters(&m_nIp, 9); - float infX = GET_FLOAT_PARAM(0); - float infY = GET_FLOAT_PARAM(1); - float infZ = GET_FLOAT_PARAM(2); - float X2 = GET_FLOAT_PARAM(3); - float Y2 = GET_FLOAT_PARAM(4); - float supX = GET_FLOAT_PARAM(5); - float supY = GET_FLOAT_PARAM(6); - float supZ = GET_FLOAT_PARAM(7); - SET_INTEGER_PARAM(0, CGarages::AddOne(infX, infY, infZ, X2, Y2, supX, supY, supZ, GET_INTEGER_PARAM(8), 0)); + float infX = *(float*)&ScriptParams[0]; + float infY = *(float*)&ScriptParams[1]; + float infZ = *(float*)&ScriptParams[2]; + float X2 = *(float*)&ScriptParams[3]; + float Y2 = *(float*)&ScriptParams[4]; + float supX = *(float*)&ScriptParams[5]; + float supY = *(float*)&ScriptParams[6]; + float supZ = *(float*)&ScriptParams[7]; + ScriptParams[0] = CGarages::AddOne(infX, infY, infZ, X2, Y2, supX, supY, supZ, ScriptParams[8], 0); StoreParameters(&m_nIp, 1); return 0; } @@ -297,15 +295,15 @@ int8 CRunningScript::ProcessCommands500To599(int32 command) case COMMAND_SET_GARAGE_WITH_CAR_MODEL: { CollectParameters(&m_nIp, 10); - float infX = GET_FLOAT_PARAM(0); - float infY = GET_FLOAT_PARAM(1); - float infZ = GET_FLOAT_PARAM(2); - float X2 = GET_FLOAT_PARAM(3); - float Y2 = GET_FLOAT_PARAM(4); - float supX = GET_FLOAT_PARAM(5); - float supY = GET_FLOAT_PARAM(6); - float supZ = GET_FLOAT_PARAM(7); - SET_INTEGER_PARAM(0, CGarages::AddOne(infX, infY, infZ, X2, Y2, supX, supY, supZ, GET_INTEGER_PARAM(8), GET_INTEGER_PARAM(9))); + float infX = *(float*)&ScriptParams[0]; + float infY = *(float*)&ScriptParams[1]; + float infZ = *(float*)&ScriptParams[2]; + float X2 = *(float*)&ScriptParams[3]; + float Y2 = *(float*)&ScriptParams[4]; + float supX = *(float*)&ScriptParams[5]; + float supY = *(float*)&ScriptParams[6]; + float supZ = *(float*)&ScriptParams[7]; + ScriptParams[0] = CGarages::AddOne(infX, infY, infZ, X2, Y2, supX, supY, supZ, ScriptParams[8], ScriptParams[9]); StoreParameters(&m_nIp, 1); return 0; } @@ -314,34 +312,34 @@ int8 CRunningScript::ProcessCommands500To599(int32 command) { CollectParameters(&m_nIp, 2); CVehicle* pTarget; - if (GET_INTEGER_PARAM(1) >= 0) { - pTarget = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); + if (ScriptParams[1] >= 0) { + pTarget = CPools::GetVehiclePool()->GetAt(ScriptParams[1]); script_assert(pTarget); } else { pTarget = nil; } - CGarages::SetTargetCarForMissonGarage(GET_INTEGER_PARAM(0), pTarget); + CGarages::SetTargetCarForMissonGarage(ScriptParams[0], pTarget); return 0; } case COMMAND_IS_CAR_IN_MISSION_GARAGE: CollectParameters(&m_nIp, 1); - UpdateCompareFlag(CGarages::HasCarBeenDroppedOffYet(GET_INTEGER_PARAM(0))); + UpdateCompareFlag(CGarages::HasCarBeenDroppedOffYet(ScriptParams[0])); return 0; +/* case COMMAND_SET_FREE_BOMBS: CollectParameters(&m_nIp, 1); - CGarages::SetFreeBombs(GET_INTEGER_PARAM(0) != 0); + CGarages::SetFreeBombs(ScriptParams[0] != 0); return 0; - /* case COMMAND_SET_POWERPOINT: { CollectParameters(&m_nIp, 7); - float f1 = GET_FLOAT_PARAM(0); - float f2 = GET_FLOAT_PARAM(1); - float f3 = GET_FLOAT_PARAM(2); - float f4 = GET_FLOAT_PARAM(3); - float f5 = GET_FLOAT_PARAM(4); - float f6 = GET_FLOAT_PARAM(5); + float f1 = *(float*)&ScriptParams[0]; + float f2 = *(float*)&ScriptParams[1]; + float f3 = *(float*)&ScriptParams[2]; + float f4 = *(float*)&ScriptParams[3]; + float f5 = *(float*)&ScriptParams[4]; + float f6 = *(float*)&ScriptParams[5]; float temp; if (f1 > f4) { @@ -362,43 +360,43 @@ int8 CRunningScript::ProcessCommands500To599(int32 command) f6 = temp; } - CPowerPoints::GenerateNewOne(f1, f2, f3, f4, f5, f6, *(uint8*)&GET_INTEGER_PARAM(6)); + CPowerPoints::GenerateNewOne(f1, f2, f3, f4, f5, f6, *(uint8*)&ScriptParams[6]); return 0; } case COMMAND_SET_ALL_TAXI_LIGHTS: CollectParameters(&m_nIp, 1); - CAutomobile::SetAllTaxiLights(GET_INTEGER_PARAM(0) != 0); + CAutomobile::SetAllTaxiLights(ScriptParams[0] != 0); return 0; - */ case COMMAND_IS_CAR_ARMED_WITH_ANY_BOMB: { CollectParameters(&m_nIp, 1); - CAutomobile* pCar = (CAutomobile*)CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CAutomobile* pCar = (CAutomobile*)CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pCar); script_assert(pCar->m_vehType == VEHICLE_TYPE_CAR); UpdateCompareFlag(pCar->m_bombType != 0); //TODO: enum return 0; } + */ case COMMAND_APPLY_BRAKES_TO_PLAYERS_CAR: CollectParameters(&m_nIp, 2); - CPad::GetPad(GET_INTEGER_PARAM(0))->bApplyBrakes = (GET_INTEGER_PARAM(1) != 0); + CPad::GetPad(ScriptParams[0])->bApplyBrakes = (ScriptParams[1] != 0); return 0; case COMMAND_SET_PLAYER_HEALTH: { CollectParameters(&m_nIp, 2); - CPlayerPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPlayerPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); - pPed->m_fHealth = Min(GET_INTEGER_PARAM(1), CWorld::Players[GET_INTEGER_PARAM(0)].m_nMaxHealth); + pPed->m_fHealth = Min(ScriptParams[1], CWorld::Players[ScriptParams[0]].m_nMaxHealth); return 0; } case COMMAND_SET_CHAR_HEALTH: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - if (GET_INTEGER_PARAM(1)) { - pPed->m_fHealth = GET_INTEGER_PARAM(1); + if (ScriptParams[1]) { + pPed->m_fHealth = ScriptParams[1]; } else if (pPed->bInVehicle) { pPed->SetDead(); @@ -406,84 +404,86 @@ int8 CRunningScript::ProcessCommands500To599(int32 command) pPed->FlagToDestroyWhenNextProcessed(); } else { - pPed->SetDie(); // last argument = 13 (default? TODO) + pPed->SetDie(); } return 0; } case COMMAND_SET_CAR_HEALTH: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - pVehicle->m_fHealth = GET_INTEGER_PARAM(1); + pVehicle->m_fHealth = ScriptParams[1]; return 0; } case COMMAND_GET_PLAYER_HEALTH: { CollectParameters(&m_nIp, 1); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); - SET_INTEGER_PARAM(0, pPed->m_fHealth); + ScriptParams[0] = pPed->m_fHealth; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_GET_CHAR_HEALTH: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - SET_INTEGER_PARAM(0, pPed->m_fHealth); + ScriptParams[0] = pPed->m_fHealth; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_GET_CAR_HEALTH: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - SET_INTEGER_PARAM(0, pVehicle->m_fHealth); + ScriptParams[0] = pVehicle->m_fHealth; StoreParameters(&m_nIp, 1); return 0; } + /* case COMMAND_IS_CAR_ARMED_WITH_BOMB: { CollectParameters(&m_nIp, 2); - CAutomobile* pCar = (CAutomobile*)CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CAutomobile* pCar = (CAutomobile*)CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pCar); script_assert(pCar->m_vehType == VEHICLE_TYPE_CAR); - UpdateCompareFlag(pCar->m_bombType == GET_INTEGER_PARAM(1)); + UpdateCompareFlag(pCar->m_bombType == ScriptParams[1]); return 0; } + */ case COMMAND_CHANGE_CAR_COLOUR: { CollectParameters(&m_nIp, 3); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - if (GET_INTEGER_PARAM(1) >= 256 || GET_INTEGER_PARAM(2) >= 256) + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); + if (ScriptParams[1] >= 256 || ScriptParams[2] >= 256) debug("CHANGE_CAR_COLOUR - Colours must be less than %d", 256); - pVehicle->m_currentColour1 = GET_INTEGER_PARAM(1); - pVehicle->m_currentColour2 = GET_INTEGER_PARAM(2); + pVehicle->m_currentColour1 = ScriptParams[1]; + pVehicle->m_currentColour2 = ScriptParams[2]; return 0; } case COMMAND_SWITCH_PED_ROADS_ON: { CollectParameters(&m_nIp, 6); - float infX = GET_FLOAT_PARAM(0); - float infY = GET_FLOAT_PARAM(1); - float infZ = GET_FLOAT_PARAM(2); - float supX = GET_FLOAT_PARAM(3); - float supY = GET_FLOAT_PARAM(4); - float supZ = GET_FLOAT_PARAM(5); + float infX = *(float*)&ScriptParams[0]; + float infY = *(float*)&ScriptParams[1]; + float infZ = *(float*)&ScriptParams[2]; + float supX = *(float*)&ScriptParams[3]; + float supY = *(float*)&ScriptParams[4]; + float supZ = *(float*)&ScriptParams[5]; if (infX > supX) { - infX = GET_FLOAT_PARAM(3); - supX = GET_FLOAT_PARAM(0); + infX = *(float*)&ScriptParams[3]; + supX = *(float*)&ScriptParams[0]; } if (infY > supY) { - infY = GET_FLOAT_PARAM(4); - supY = GET_FLOAT_PARAM(1); + infY = *(float*)&ScriptParams[4]; + supY = *(float*)&ScriptParams[1]; } if (infZ > supZ) { - infZ = GET_FLOAT_PARAM(5); - supZ = GET_FLOAT_PARAM(2); + infZ = *(float*)&ScriptParams[5]; + supZ = *(float*)&ScriptParams[2]; } ThePaths.SwitchPedRoadsOffInArea(infX, supX, infY, supY, infZ, supZ, false); return 0; @@ -491,23 +491,23 @@ int8 CRunningScript::ProcessCommands500To599(int32 command) case COMMAND_SWITCH_PED_ROADS_OFF: { CollectParameters(&m_nIp, 6); - float infX = GET_FLOAT_PARAM(0); - float infY = GET_FLOAT_PARAM(1); - float infZ = GET_FLOAT_PARAM(2); - float supX = GET_FLOAT_PARAM(3); - float supY = GET_FLOAT_PARAM(4); - float supZ = GET_FLOAT_PARAM(5); + float infX = *(float*)&ScriptParams[0]; + float infY = *(float*)&ScriptParams[1]; + float infZ = *(float*)&ScriptParams[2]; + float supX = *(float*)&ScriptParams[3]; + float supY = *(float*)&ScriptParams[4]; + float supZ = *(float*)&ScriptParams[5]; if (infX > supX) { - infX = GET_FLOAT_PARAM(3); - supX = GET_FLOAT_PARAM(0); + infX = *(float*)&ScriptParams[3]; + supX = *(float*)&ScriptParams[0]; } if (infY > supY) { - infY = GET_FLOAT_PARAM(4); - supY = GET_FLOAT_PARAM(1); + infY = *(float*)&ScriptParams[4]; + supY = *(float*)&ScriptParams[1]; } if (infZ > supZ) { - infZ = GET_FLOAT_PARAM(5); - supZ = GET_FLOAT_PARAM(2); + infZ = *(float*)&ScriptParams[5]; + supZ = *(float*)&ScriptParams[2]; } ThePaths.SwitchPedRoadsOffInArea(infX, supX, infY, supY, infZ, supZ, true); return 0; @@ -515,20 +515,20 @@ int8 CRunningScript::ProcessCommands500To599(int32 command) case COMMAND_CHAR_LOOK_AT_CHAR_ALWAYS: { CollectParameters(&m_nIp, 2); - CPed* pSourcePed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pSourcePed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pSourcePed); - CPed* pTargetPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); + CPed* pTargetPed = CPools::GetPedPool()->GetAt(ScriptParams[1]); script_assert(pTargetPed); - pSourcePed->SetLookFlag(pTargetPed, true, true); + pSourcePed->SetLookFlag(pTargetPed, true); pSourcePed->SetLookTimer(60000); return 0; } case COMMAND_CHAR_LOOK_AT_PLAYER_ALWAYS: { CollectParameters(&m_nIp, 2); - CPed* pSourcePed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pSourcePed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pSourcePed); - CPed* pTargetPed = CWorld::Players[GET_INTEGER_PARAM(1)].m_pPed; + CPed* pTargetPed = CWorld::Players[ScriptParams[1]].m_pPed; script_assert(pTargetPed); pSourcePed->SetLookFlag(pTargetPed, true); pSourcePed->SetLookTimer(60000); @@ -537,9 +537,9 @@ int8 CRunningScript::ProcessCommands500To599(int32 command) case COMMAND_PLAYER_LOOK_AT_CHAR_ALWAYS: { CollectParameters(&m_nIp, 2); - CPed* pSourcePed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pSourcePed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pSourcePed); - CPed* pTargetPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); + CPed* pTargetPed = CPools::GetPedPool()->GetAt(ScriptParams[1]); script_assert(pTargetPed); pSourcePed->SetLookFlag(pTargetPed, true); pSourcePed->SetLookTimer(60000); @@ -548,7 +548,7 @@ int8 CRunningScript::ProcessCommands500To599(int32 command) case COMMAND_STOP_CHAR_LOOKING: { CollectParameters(&m_nIp, 1); - CPed* pSourcePed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pSourcePed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pSourcePed); pSourcePed->ClearLookFlag(); pSourcePed->bKeepTryingToLook = false; @@ -559,7 +559,7 @@ int8 CRunningScript::ProcessCommands500To599(int32 command) case COMMAND_STOP_PLAYER_LOOKING: { CollectParameters(&m_nIp, 1); - CPed* pSourcePed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pSourcePed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pSourcePed); pSourcePed->ClearLookFlag(); pSourcePed->bKeepTryingToLook = false; @@ -570,7 +570,7 @@ int8 CRunningScript::ProcessCommands500To599(int32 command) /* case COMMAND_SWITCH_HELICOPTER: CollectParameters(&m_nIp, 1); - CHeli::ActivateHeli(GET_INTEGER_PARAM(0) != 0); + CHeli::ActivateHeli(ScriptParams[0] != 0); return 0; */ //case COMMAND_SET_GANG_ATTITUDE: @@ -578,33 +578,33 @@ int8 CRunningScript::ProcessCommands500To599(int32 command) //case COMMAND_SET_GANG_PLAYER_ATTITUDE: case COMMAND_SET_GANG_PED_MODELS: CollectParameters(&m_nIp, 3); - CGangs::SetGangPedModels(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2)); + CGangs::SetGangPedModels(ScriptParams[0], ScriptParams[1], ScriptParams[2]); return 0; case COMMAND_SET_GANG_CAR_MODEL: CollectParameters(&m_nIp, 2); - CGangs::SetGangVehicleModel(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); + CGangs::SetGangVehicleModel(ScriptParams[0], ScriptParams[1]); return 0; case COMMAND_SET_GANG_WEAPONS: CollectParameters(&m_nIp, 3); - CGangs::SetGangWeapons(GET_INTEGER_PARAM(0), (eWeaponType)GET_INTEGER_PARAM(1), (eWeaponType)GET_INTEGER_PARAM(2)); + CGangs::SetGangWeapons(ScriptParams[0], (eWeaponType)ScriptParams[1], (eWeaponType)ScriptParams[2]); return 0; /* case COMMAND_SET_CHAR_OBJ_RUN_TO_AREA: { CollectParameters(&m_nIp, 5); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - float infX = GET_FLOAT_PARAM(1); - float infY = GET_FLOAT_PARAM(2); - float supX = GET_FLOAT_PARAM(3); - float supY = GET_FLOAT_PARAM(4); + float infX = *(float*)&ScriptParams[1]; + float infY = *(float*)&ScriptParams[2]; + float supX = *(float*)&ScriptParams[3]; + float supY = *(float*)&ScriptParams[4]; if (infX > supX) { - infX = GET_FLOAT_PARAM(3); - supX = GET_FLOAT_PARAM(1); + infX = *(float*)&ScriptParams[3]; + supX = *(float*)&ScriptParams[1]; } if (infY > supY) { - infY = GET_FLOAT_PARAM(4); - supY = GET_FLOAT_PARAM(2); + infY = *(float*)&ScriptParams[4]; + supY = *(float*)&ScriptParams[2]; } CVector pos; pos.x = (infX + supX) / 2; @@ -619,11 +619,11 @@ int8 CRunningScript::ProcessCommands500To599(int32 command) case COMMAND_SET_CHAR_OBJ_RUN_TO_COORD: { CollectParameters(&m_nIp, 3); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); CVector pos; - pos.x = GET_FLOAT_PARAM(1); - pos.y = GET_FLOAT_PARAM(2); + pos.x = *(float*)&ScriptParams[1]; + pos.y = *(float*)&ScriptParams[2]; pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_RUN_TO_AREA, pos); @@ -633,9 +633,9 @@ int8 CRunningScript::ProcessCommands500To599(int32 command) case COMMAND_IS_PLAYER_TOUCHING_OBJECT_ON_FOOT: { CollectParameters(&m_nIp, 2); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(1)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[1]); bool isTouching = false; if (pPed->bInVehicle) isTouching = false; @@ -647,9 +647,9 @@ int8 CRunningScript::ProcessCommands500To599(int32 command) case COMMAND_IS_CHAR_TOUCHING_OBJECT_ON_FOOT: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(1)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[1]); bool isTouching = false; if (pPed->InVehicle()) isTouching = false; @@ -666,115 +666,110 @@ int8 CRunningScript::ProcessCommands500To599(int32 command) strncpy(name, (char*)&CTheScripts::ScriptSpace[m_nIp], KEY_LENGTH_IN_SCRIPT); for (int i = 0; i < KEY_LENGTH_IN_SCRIPT; i++) name[i] = tolower(name[i]); - CStreaming::RequestSpecialChar(GET_INTEGER_PARAM(0) - 1, name, STREAMFLAGS_DEPENDENCY | (m_bIsMissionScript ? STREAMFLAGS_SCRIPTOWNED : STREAMFLAGS_AMBIENT_SCRIPT_OWNED)); + CStreaming::RequestSpecialChar(ScriptParams[0] - 1, name, STREAMFLAGS_DEPENDENCY | STREAMFLAGS_SCRIPTOWNED); m_nIp += KEY_LENGTH_IN_SCRIPT; return 0; } case COMMAND_HAS_SPECIAL_CHARACTER_LOADED: { CollectParameters(&m_nIp, 1); - UpdateCompareFlag(CStreaming::HasSpecialCharLoaded(GET_INTEGER_PARAM(0) - 1)); + UpdateCompareFlag(CStreaming::HasSpecialCharLoaded(ScriptParams[0] - 1)); return 0; } /* case COMMAND_FLASH_CAR: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - pVehicle->bHasBlip = (GET_INTEGER_PARAM(1) != 0); + pVehicle->bHasBlip = (ScriptParams[1] != 0); return 0; } case COMMAND_FLASH_CHAR: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->bHasBlip = (GET_INTEGER_PARAM(1) != 0); + pPed->bHasBlip = (ScriptParams[1] != 0); return 0; } case COMMAND_FLASH_OBJECT: { CollectParameters(&m_nIp, 2); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); - pObject->bHasBlip = (GET_INTEGER_PARAM(1) != 0); + pObject->bHasBlip = (ScriptParams[1] != 0); return 0; } */ case COMMAND_IS_PLAYER_IN_REMOTE_MODE: CollectParameters(&m_nIp, 1); - UpdateCompareFlag(CWorld::Players[GET_INTEGER_PARAM(0)].IsPlayerInRemoteMode()); + UpdateCompareFlag(CWorld::Players[ScriptParams[0]].IsPlayerInRemoteMode()); return 0; + /* case COMMAND_ARM_CAR_WITH_BOMB: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); script_assert(pVehicle->m_vehType == VEHICLE_TYPE_CAR); - ((CAutomobile*)pVehicle)->m_bombType = GET_INTEGER_PARAM(1); + ((CAutomobile*)pVehicle)->m_bombType = ScriptParams[1]; ((CAutomobile*)pVehicle)->m_pBombRigger = FindPlayerPed(); return 0; } + */ case COMMAND_SET_CHAR_PERSONALITY: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->SetPedStats((ePedStats)GET_INTEGER_PARAM(1)); + pPed->SetPedStats((ePedStats)ScriptParams[1]); return 0; } case COMMAND_SET_CUTSCENE_OFFSET: CollectParameters(&m_nIp, 3); - CCutsceneMgr::SetCutsceneOffset(GET_VECTOR_PARAM(0)); + CCutsceneMgr::SetCutsceneOffset(*(CVector*)&ScriptParams[0]); return 0; case COMMAND_SET_ANIM_GROUP_FOR_CHAR: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->m_animGroup = (AssocGroupId)GET_INTEGER_PARAM(1); - pPed->bOverrideMoveAnim = false; + pPed->m_animGroup = (AssocGroupId)ScriptParams[1]; return 0; } /* case COMMAND_SET_ANIM_GROUP_FOR_PLAYER: { CollectParameters(&m_nIp, 2); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); - pPed->m_animGroup = (AssocGroupId)GET_INTEGER_PARAM(1); + pPed->m_animGroup = (AssocGroupId)ScriptParams[1]; return 0; } */ case COMMAND_REQUEST_MODEL: { CollectParameters(&m_nIp, 1); - int model = GET_INTEGER_PARAM(0); + int model = ScriptParams[0]; if (model < 0) model = CTheScripts::UsedObjectArray[-model].index; - CStreaming::RequestModel(model, STREAMFLAGS_DEPENDENCY | STREAMFLAGS_NOFADE | (m_bIsMissionScript ? STREAMFLAGS_SCRIPTOWNED : STREAMFLAGS_AMBIENT_SCRIPT_OWNED)); - if (model == MI_MINIGUN) -#ifdef FIX_BUGS - CStreaming::RequestModel(MI_MINIGUN2, STREAMFLAGS_DEPENDENCY | STREAMFLAGS_NOFADE | (m_bIsMissionScript ? STREAMFLAGS_SCRIPTOWNED : STREAMFLAGS_AMBIENT_SCRIPT_OWNED)); -#else - CStreaming::RequestModel(MI_MINIGUN2, STREAMFLAGS_DEPENDENCY | STREAMFLAGS_NOFADE | STREAMFLAGS_SCRIPTOWNED); -#endif + CStreaming::RequestModel(model, STREAMFLAGS_DEPENDENCY | STREAMFLAGS_NOFADE | STREAMFLAGS_SCRIPTOWNED); return 0; } case COMMAND_HAS_MODEL_LOADED: { CollectParameters(&m_nIp, 1); - int model = GET_INTEGER_PARAM(0); + int model = ScriptParams[0]; if (model < 0) model = CTheScripts::UsedObjectArray[-model].index; - UpdateCompareFlag(CStreaming::HasModelLoaded(model)/* || cWorldStream::Instance()->pDynamic(model, 0) */); // TODO + UpdateCompareFlag(CStreaming::HasModelLoaded(model)); return 0; } case COMMAND_MARK_MODEL_AS_NO_LONGER_NEEDED: { CollectParameters(&m_nIp, 1); - int model = GET_INTEGER_PARAM(0); + int model = ScriptParams[0]; if (model < 0) model = CTheScripts::UsedObjectArray[-model].index; CStreaming::SetMissionDoesntRequireModel(model); @@ -783,7 +778,7 @@ int8 CRunningScript::ProcessCommands500To599(int32 command) case COMMAND_GRAB_PHONE: { CollectParameters(&m_nIp, 2); - SET_INTEGER_PARAM(0, gPhoneInfo.GrabPhone(GET_FLOAT_PARAM(0), GET_FLOAT_PARAM(1))); + ScriptParams[0] = gPhoneInfo.GrabPhone(*(float*)&ScriptParams[0], *(float*)&ScriptParams[1]); StoreParameters(&m_nIp, 1); return 0; } @@ -792,85 +787,80 @@ int8 CRunningScript::ProcessCommands500To599(int32 command) { CollectParameters(&m_nIp, 1); wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); - gPhoneInfo.SetPhoneMessage_Repeatedly(GET_INTEGER_PARAM(0), text, nil, nil, nil, nil, nil); + gPhoneInfo.SetPhoneMessage_Repeatedly(ScriptParams[0], text, nil, nil, nil, nil, nil); return 0; } case COMMAND_SET_PHONE_MESSAGE: { CollectParameters(&m_nIp, 1); wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); - gPhoneInfo.SetPhoneMessage_JustOnce(GET_INTEGER_PARAM(0), text, nil, nil, nil, nil, nil); + gPhoneInfo.SetPhoneMessage_JustOnce(ScriptParams[0], text, nil, nil, nil, nil, nil); return 0; } case COMMAND_HAS_PHONE_DISPLAYED_MESSAGE: { CollectParameters(&m_nIp, 1); - UpdateCompareFlag(gPhoneInfo.HasMessageBeenDisplayed(GET_INTEGER_PARAM(0))); + UpdateCompareFlag(gPhoneInfo.HasMessageBeenDisplayed(ScriptParams[0])); return 0; } */ case COMMAND_TURN_PHONE_OFF: { CollectParameters(&m_nIp, 1); - gPhoneInfo.SetPhoneMessage_JustOnce(GET_INTEGER_PARAM(0), nil, nil, nil, nil, nil, nil); + gPhoneInfo.SetPhoneMessage_JustOnce(ScriptParams[0], nil, nil, nil, nil, nil, nil); return 0; } case COMMAND_DRAW_CORONA: { - uint32 ip = m_nIp; - int32* ptr = GetPointerToScriptVariable(&ip, 0); CollectParameters(&m_nIp, 9); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); - CCoronas::RegisterCorona((uintptr)ptr, GET_INTEGER_PARAM(6), GET_INTEGER_PARAM(7), GET_INTEGER_PARAM(8), - 255, pos, -GET_FLOAT_PARAM(3), 450.0f, GET_INTEGER_PARAM(4), GET_INTEGER_PARAM(5), 1, 0, 0, 0.0f); + CCoronas::RegisterCorona((uintptr)this + m_nIp, ScriptParams[6], ScriptParams[7], ScriptParams[8], + 255, pos, *(float*)&ScriptParams[3], 450.0f, ScriptParams[4], ScriptParams[5], 1, 0, 0, 0.0f); return 0; } - /* case COMMAND_DRAW_LIGHT: { CollectParameters(&m_nIp, 6); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; CVector unused(0.0f, 0.0f, 0.0f); - CPointLights::AddLight(0, GET_VECTOR_PARAM(0), CVector(0.0f, 0.0f, 0.0f), 12.0f, - GET_INTEGER_PARAM(3) / 255.0f, GET_INTEGER_PARAM(4) / 255.0f, GET_INTEGER_PARAM(5) / 255.0f, 0, true); + CPointLights::AddLight(0, *(CVector*)&ScriptParams[0], CVector(0.0f, 0.0f, 0.0f), 12.0f, + ScriptParams[3] / 255.0f, ScriptParams[4] / 255.0f, ScriptParams[5] / 255.0f, 0, true); return 0; } - */ - case COMMAND_STORE_WEATHER: - CWeather::StoreWeatherState(); - return 0; - case COMMAND_RESTORE_WEATHER: - CWeather::RestoreWeatherState(); + //case COMMAND_STORE_WEATHER: + //case COMMAND_RESTORE_WEATHER: case COMMAND_STORE_CLOCK: CClock::StoreClock(); return 0; case COMMAND_RESTORE_CLOCK: CClock::RestoreClock(); return 0; + /* case COMMAND_RESTART_CRITICAL_MISSION: { CollectParameters(&m_nIp, 4); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); - CRestart::OverrideNextRestart(pos, GET_FLOAT_PARAM(3)); + CRestart::OverrideNextRestart(pos, *(float*)&ScriptParams[3]); if (CWorld::Players[CWorld::PlayerInFocus].m_WBState != WBSTATE_PLAYING) printf("RESTART_CRITICAL_MISSION - Player state is not PLAYING\n"); CWorld::Players[CWorld::PlayerInFocus].PlayerFailedCriticalMission(); return 0; } + */ case COMMAND_IS_PLAYER_PLAYING: { CollectParameters(&m_nIp, 1); - UpdateCompareFlag(CWorld::Players[GET_INTEGER_PARAM(0)].m_WBState == WBSTATE_PLAYING); + UpdateCompareFlag(CWorld::Players[ScriptParams[0]].m_WBState == WBSTATE_PLAYING); return 0; } #ifdef GTA_SCRIPT_COLLECTIVE case COMMAND_SET_COLL_OBJ_NO_OBJ: CollectParameters(&m_nIp, 1); - CTheScripts::SetObjectiveForAllPedsInCollective(GET_INTEGER_PARAM(0), OBJECTIVE_NONE); + CTheScripts::SetObjectiveForAllPedsInCollective(ScriptParams[0], OBJECTIVE_NONE); return 0; #endif default: @@ -885,134 +875,134 @@ int8 CRunningScript::ProcessCommands600To699(int32 command) #ifdef GTA_SCRIPT_COLLECTIVE case COMMAND_SET_COLL_OBJ_WAIT_ON_FOOT: CollectParameters(&m_nIp, 1); - CTheScripts::SetObjectiveForAllPedsInCollective(GET_INTEGER_PARAM(0), OBJECTIVE_WAIT_ON_FOOT); + CTheScripts::SetObjectiveForAllPedsInCollective(ScriptParams[0], OBJECTIVE_WAIT_ON_FOOT); return 0; case COMMAND_SET_COLL_OBJ_FLEE_ON_FOOT_TILL_SAFE: CollectParameters(&m_nIp, 1); - CTheScripts::SetObjectiveForAllPedsInCollective(GET_INTEGER_PARAM(0), OBJECTIVE_FLEE_ON_FOOT_TILL_SAFE); + CTheScripts::SetObjectiveForAllPedsInCollective(ScriptParams[0], OBJECTIVE_FLEE_ON_FOOT_TILL_SAFE); return 0; case COMMAND_SET_COLL_OBJ_GUARD_SPOT: { CollectParameters(&m_nIp, 4); - CVector pos = GET_VECTOR_PARAM(1); + CVector pos = *(CVector*)&ScriptParams[1]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); - CTheScripts::SetObjectiveForAllPedsInCollective(GET_INTEGER_PARAM(0), OBJECTIVE_GUARD_AREA, pos); + CTheScripts::SetObjectiveForAllPedsInCollective(ScriptParams[0], OBJECTIVE_GUARD_AREA, pos); return 0; } case COMMAND_SET_COLL_OBJ_GUARD_AREA: { CollectParameters(&m_nIp, 5); - float infX = GET_FLOAT_PARAM(1); - float supX = GET_FLOAT_PARAM(3); + float infX = *(float*)&ScriptParams[1]; + float supX = *(float*)&ScriptParams[3]; if (infX > supX) { - infX = GET_FLOAT_PARAM(3); - supX = GET_FLOAT_PARAM(1); + infX = *(float*)&ScriptParams[3]; + supX = *(float*)&ScriptParams[1]; } - float infY = GET_FLOAT_PARAM(2); - float supY = GET_FLOAT_PARAM(4); + float infY = *(float*)&ScriptParams[2]; + float supY = *(float*)&ScriptParams[4]; if (infY > supY) { - infY = GET_FLOAT_PARAM(4); - supY = GET_FLOAT_PARAM(2); + infY = *(float*)&ScriptParams[4]; + supY = *(float*)&ScriptParams[2]; } CVector pos; pos.x = (infX + supX) / 2; pos.y = (infY + supY) / 2; pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); float radius = Max(pos.x - infX, pos.y - infY); - CTheScripts::SetObjectiveForAllPedsInCollective(GET_INTEGER_PARAM(0), OBJECTIVE_GUARD_AREA, pos, radius); + CTheScripts::SetObjectiveForAllPedsInCollective(ScriptParams[0], OBJECTIVE_GUARD_AREA, pos, radius); return 0; } case COMMAND_SET_COLL_OBJ_WAIT_IN_CAR: CollectParameters(&m_nIp, 1); - CTheScripts::SetObjectiveForAllPedsInCollective(GET_INTEGER_PARAM(0), OBJECTIVE_WAIT_IN_CAR); + CTheScripts::SetObjectiveForAllPedsInCollective(ScriptParams[0], OBJECTIVE_WAIT_IN_CAR); return 0; case COMMAND_SET_COLL_OBJ_KILL_CHAR_ON_FOOT: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); - CTheScripts::SetObjectiveForAllPedsInCollective(GET_INTEGER_PARAM(0), OBJECTIVE_KILL_CHAR_ON_FOOT, pPed); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[1]); + CTheScripts::SetObjectiveForAllPedsInCollective(ScriptParams[0], OBJECTIVE_KILL_CHAR_ON_FOOT, pPed); return 0; } case COMMAND_SET_COLL_OBJ_KILL_PLAYER_ON_FOOT: { CollectParameters(&m_nIp, 2); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(1)].m_pPed; - CTheScripts::SetObjectiveForAllPedsInCollective(GET_INTEGER_PARAM(0), OBJECTIVE_KILL_CHAR_ON_FOOT, pPed); + CPed* pPed = CWorld::Players[ScriptParams[1]].m_pPed; + CTheScripts::SetObjectiveForAllPedsInCollective(ScriptParams[0], OBJECTIVE_KILL_CHAR_ON_FOOT, pPed); return 0; } case COMMAND_SET_COLL_OBJ_KILL_CHAR_ANY_MEANS: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); - CTheScripts::SetObjectiveForAllPedsInCollective(GET_INTEGER_PARAM(0), OBJECTIVE_KILL_CHAR_ANY_MEANS, pPed); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[1]); + CTheScripts::SetObjectiveForAllPedsInCollective(ScriptParams[0], OBJECTIVE_KILL_CHAR_ANY_MEANS, pPed); return 0; } case COMMAND_SET_COLL_OBJ_KILL_PLAYER_ANY_MEANS: { CollectParameters(&m_nIp, 2); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(1)].m_pPed; - CTheScripts::SetObjectiveForAllPedsInCollective(GET_INTEGER_PARAM(0), OBJECTIVE_KILL_CHAR_ANY_MEANS, pPed); + CPed* pPed = CWorld::Players[ScriptParams[1]].m_pPed; + CTheScripts::SetObjectiveForAllPedsInCollective(ScriptParams[0], OBJECTIVE_KILL_CHAR_ANY_MEANS, pPed); return 0; } case COMMAND_SET_COLL_OBJ_FLEE_CHAR_ON_FOOT_TILL_SAFE: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); - CTheScripts::SetObjectiveForAllPedsInCollective(GET_INTEGER_PARAM(0), OBJECTIVE_FLEE_CHAR_ON_FOOT_TILL_SAFE, pPed); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[1]); + CTheScripts::SetObjectiveForAllPedsInCollective(ScriptParams[0], OBJECTIVE_FLEE_CHAR_ON_FOOT_TILL_SAFE, pPed); return 0; } case COMMAND_SET_COLL_OBJ_FLEE_PLAYER_ON_FOOT_TILL_SAFE: { CollectParameters(&m_nIp, 2); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(1)].m_pPed; - CTheScripts::SetObjectiveForAllPedsInCollective(GET_INTEGER_PARAM(0), OBJECTIVE_FLEE_CHAR_ON_FOOT_TILL_SAFE, pPed); + CPed* pPed = CWorld::Players[ScriptParams[1]].m_pPed; + CTheScripts::SetObjectiveForAllPedsInCollective(ScriptParams[0], OBJECTIVE_FLEE_CHAR_ON_FOOT_TILL_SAFE, pPed); return 0; } case COMMAND_SET_COLL_OBJ_FLEE_CHAR_ON_FOOT_ALWAYS: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); - CTheScripts::SetObjectiveForAllPedsInCollective(GET_INTEGER_PARAM(0), OBJECTIVE_FLEE_CHAR_ON_FOOT_ALWAYS, pPed); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[1]); + CTheScripts::SetObjectiveForAllPedsInCollective(ScriptParams[0], OBJECTIVE_FLEE_CHAR_ON_FOOT_ALWAYS, pPed); return 0; } case COMMAND_SET_COLL_OBJ_FLEE_PLAYER_ON_FOOT_ALWAYS: { CollectParameters(&m_nIp, 2); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(1)].m_pPed; - CTheScripts::SetObjectiveForAllPedsInCollective(GET_INTEGER_PARAM(0), OBJECTIVE_FLEE_CHAR_ON_FOOT_ALWAYS, pPed); + CPed* pPed = CWorld::Players[ScriptParams[1]].m_pPed; + CTheScripts::SetObjectiveForAllPedsInCollective(ScriptParams[0], OBJECTIVE_FLEE_CHAR_ON_FOOT_ALWAYS, pPed); return 0; } case COMMAND_SET_COLL_OBJ_GOTO_CHAR_ON_FOOT: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); - CTheScripts::SetObjectiveForAllPedsInCollective(GET_INTEGER_PARAM(0), OBJECTIVE_GOTO_CHAR_ON_FOOT, pPed); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[1]); + CTheScripts::SetObjectiveForAllPedsInCollective(ScriptParams[0], OBJECTIVE_GOTO_CHAR_ON_FOOT, pPed); return 0; } case COMMAND_SET_COLL_OBJ_GOTO_PLAYER_ON_FOOT: { CollectParameters(&m_nIp, 2); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(1)].m_pPed; - CTheScripts::SetObjectiveForAllPedsInCollective(GET_INTEGER_PARAM(0), OBJECTIVE_GOTO_CHAR_ON_FOOT, pPed); + CPed* pPed = CWorld::Players[ScriptParams[1]].m_pPed; + CTheScripts::SetObjectiveForAllPedsInCollective(ScriptParams[0], OBJECTIVE_GOTO_CHAR_ON_FOOT, pPed); return 0; } case COMMAND_SET_COLL_OBJ_LEAVE_CAR: CollectParameters(&m_nIp, 1); - CTheScripts::SetObjectiveForAllPedsInCollective(GET_INTEGER_PARAM(0), OBJECTIVE_LEAVE_CAR); + CTheScripts::SetObjectiveForAllPedsInCollective(ScriptParams[0], OBJECTIVE_LEAVE_CAR); return 0; case COMMAND_SET_COLL_OBJ_ENTER_CAR_AS_PASSENGER: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); - CTheScripts::SetObjectiveForAllPedsInCollective(GET_INTEGER_PARAM(0), OBJECTIVE_ENTER_CAR_AS_PASSENGER, pVehicle); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[1]); + CTheScripts::SetObjectiveForAllPedsInCollective(ScriptParams[0], OBJECTIVE_ENTER_CAR_AS_PASSENGER, pVehicle); return 0; } case COMMAND_SET_COLL_OBJ_ENTER_CAR_AS_DRIVER: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); - CTheScripts::SetObjectiveForAllPedsInCollective(GET_INTEGER_PARAM(0), OBJECTIVE_ENTER_CAR_AS_DRIVER, pVehicle); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[1]); + CTheScripts::SetObjectiveForAllPedsInCollective(ScriptParams[0], OBJECTIVE_ENTER_CAR_AS_DRIVER, pVehicle); return 0; } /* @@ -1023,31 +1013,31 @@ int8 CRunningScript::ProcessCommands600To699(int32 command) case COMMAND_SET_COLL_OBJ_DESTROY_CAR: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); - CTheScripts::SetObjectiveForAllPedsInCollective(GET_INTEGER_PARAM(0), OBJECTIVE_DESTROY_CAR, pVehicle); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[1]); + CTheScripts::SetObjectiveForAllPedsInCollective(ScriptParams[0], OBJECTIVE_DESTROY_CAR, pVehicle); return 0; } case COMMAND_SET_COLL_OBJ_GOTO_AREA_ON_FOOT: { CollectParameters(&m_nIp, 5); - float infX = GET_FLOAT_PARAM(1); - float supX = GET_FLOAT_PARAM(3); + float infX = *(float*)&ScriptParams[1]; + float supX = *(float*)&ScriptParams[3]; if (infX > supX) { - infX = GET_FLOAT_PARAM(3); - supX = GET_FLOAT_PARAM(1); + infX = *(float*)&ScriptParams[3]; + supX = *(float*)&ScriptParams[1]; } - float infY = GET_FLOAT_PARAM(2); - float supY = GET_FLOAT_PARAM(4); + float infY = *(float*)&ScriptParams[2]; + float supY = *(float*)&ScriptParams[4]; if (infY > supY) { - infY = GET_FLOAT_PARAM(4); - supY = GET_FLOAT_PARAM(2); + infY = *(float*)&ScriptParams[4]; + supY = *(float*)&ScriptParams[2]; } CVector pos; pos.x = (infX + supX) / 2; pos.y = (infY + supY) / 2; pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); float radius = Max(pos.x - infX, pos.y - infY); - CTheScripts::SetObjectiveForAllPedsInCollective(GET_INTEGER_PARAM(0), OBJECTIVE_GOTO_AREA_ON_FOOT, pos, radius); + CTheScripts::SetObjectiveForAllPedsInCollective(ScriptParams[0], OBJECTIVE_GOTO_AREA_ON_FOOT, pos, radius); return 0; } /* @@ -1057,66 +1047,66 @@ int8 CRunningScript::ProcessCommands600To699(int32 command) */ case COMMAND_SET_COLL_OBJ_FOLLOW_ROUTE: CollectParameters(&m_nIp, 3); - CTheScripts::SetObjectiveForAllPedsInCollective(GET_INTEGER_PARAM(0), OBJECTIVE_FOLLOW_ROUTE, GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2)); + CTheScripts::SetObjectiveForAllPedsInCollective(ScriptParams[0], OBJECTIVE_FOLLOW_ROUTE, ScriptParams[1], ScriptParams[2]); return 0; case COMMAND_SET_COLL_OBJ_GOTO_COORD_ON_FOOT: { CollectParameters(&m_nIp, 3); - CVector pos(GET_FLOAT_PARAM(1), GET_FLOAT_PARAM(2), CWorld::FindGroundZForCoord(GET_FLOAT_PARAM(1), GET_FLOAT_PARAM(2))); - CTheScripts::SetObjectiveForAllPedsInCollective(GET_INTEGER_PARAM(0), OBJECTIVE_GOTO_AREA_ON_FOOT, pos); + CVector pos(*(float*)&ScriptParams[1], *(float*)&ScriptParams[2], CWorld::FindGroundZForCoord(*(float*)&ScriptParams[1], *(float*)&ScriptParams[2])); + CTheScripts::SetObjectiveForAllPedsInCollective(ScriptParams[0], OBJECTIVE_GOTO_AREA_ON_FOOT, pos); return 0; } //case COMMAND_SET_COLL_OBJ_GOTO_COORD_IN_CAR: case COMMAND_SET_COLL_OBJ_RUN_TO_AREA: { CollectParameters(&m_nIp, 5); - float infX = GET_FLOAT_PARAM(1); - float supX = GET_FLOAT_PARAM(3); + float infX = *(float*)&ScriptParams[1]; + float supX = *(float*)&ScriptParams[3]; if (infX > supX) { - infX = GET_FLOAT_PARAM(3); - supX = GET_FLOAT_PARAM(1); + infX = *(float*)&ScriptParams[3]; + supX = *(float*)&ScriptParams[1]; } - float infY = GET_FLOAT_PARAM(2); - float supY = GET_FLOAT_PARAM(4); + float infY = *(float*)&ScriptParams[2]; + float supY = *(float*)&ScriptParams[4]; if (infY > supY) { - infY = GET_FLOAT_PARAM(4); - supY = GET_FLOAT_PARAM(2); + infY = *(float*)&ScriptParams[4]; + supY = *(float*)&ScriptParams[2]; } CVector pos; pos.x = (infX + supX) / 2; pos.y = (infY + supY) / 2; pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); float radius = Max(pos.x - infX, pos.y - infY); - CTheScripts::SetObjectiveForAllPedsInCollective(GET_INTEGER_PARAM(0), OBJECTIVE_RUN_TO_AREA, pos, radius); + CTheScripts::SetObjectiveForAllPedsInCollective(ScriptParams[0], OBJECTIVE_RUN_TO_AREA, pos, radius); return 0; } case COMMAND_SET_COLL_OBJ_RUN_TO_COORD: { CollectParameters(&m_nIp, 3); - CVector pos(GET_FLOAT_PARAM(1), GET_FLOAT_PARAM(2), CWorld::FindGroundZForCoord(GET_FLOAT_PARAM(1), GET_FLOAT_PARAM(2))); - CTheScripts::SetObjectiveForAllPedsInCollective(GET_INTEGER_PARAM(0), OBJECTIVE_RUN_TO_AREA, pos); + CVector pos(*(float*)&ScriptParams[1], *(float*)&ScriptParams[2], CWorld::FindGroundZForCoord(*(float*)&ScriptParams[1], *(float*)&ScriptParams[2])); + CTheScripts::SetObjectiveForAllPedsInCollective(ScriptParams[0], OBJECTIVE_RUN_TO_AREA, pos); return 0; } case COMMAND_ADD_PEDS_IN_AREA_TO_COLL: { CollectParameters(&m_nIp, 3); - float X = GET_FLOAT_PARAM(0); - float Y = GET_FLOAT_PARAM(1); + float X = *(float*)&ScriptParams[0]; + float Y = *(float*)&ScriptParams[1]; float Z = CWorld::FindGroundZForCoord(X, Y); - float radius = GET_FLOAT_PARAM(2); - SET_INTEGER_PARAM(0, CTheScripts::AddPedsInAreaToCollective(X, Y, Z, radius)); + float radius = *(float*)&ScriptParams[2]; + ScriptParams[0] = CTheScripts::AddPedsInAreaToCollective(X, Y, Z, radius); StoreParameters(&m_nIp, 1); return 0; } case COMMAND_ADD_PEDS_IN_VEHICLE_TO_COLL: CollectParameters(&m_nIp, 1); - SET_INTEGER_PARAM(0, CTheScripts::AddPedsInVehicleToCollective(GET_INTEGER_PARAM(0))); + ScriptParams[0] = CTheScripts::AddPedsInVehicleToCollective(ScriptParams[0]); StoreParameters(&m_nIp, 1); return 0; case COMMAND_CLEAR_COLL: CollectParameters(&m_nIp, 1); for (int i = 0; i < MAX_NUM_COLLECTIVES; i++) { - if (CTheScripts::CollectiveArray[i].colIndex == GET_INTEGER_PARAM(0)) { + if (CTheScripts::CollectiveArray[i].colIndex == ScriptParams[0]) { CTheScripts::CollectiveArray[i].colIndex = -1; CTheScripts::CollectiveArray[i].pedIndex = 0; } @@ -1185,7 +1175,7 @@ int8 CRunningScript::ProcessCommands600To699(int32 command) total++; } } - SET_INTEGER_PARAM(0, total); + ScriptParams[0] = total; StoreParameters(&m_nIp, 1); return 0; } @@ -1193,77 +1183,72 @@ int8 CRunningScript::ProcessCommands600To699(int32 command) case COMMAND_SET_CHAR_HEED_THREATS: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->bRespondsToThreats = (GET_INTEGER_PARAM(1) != 0); + pPed->bRespondsToThreats = (ScriptParams[1] != 0); return 0; } case COMMAND_SET_PLAYER_HEED_THREATS: { CollectParameters(&m_nIp, 2); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); - pPed->bRespondsToThreats = (GET_INTEGER_PARAM(1) != 0); + pPed->bRespondsToThreats = (ScriptParams[1] != 0); return 0; } case COMMAND_GET_CONTROLLER_MODE: #if defined(GTA_PC) && !defined(DETECT_PAD_INPUT_SWITCH) - SET_INTEGER_PARAM(0, 0); + ScriptParams[0] = 0; #else - SET_INTEGER_PARAM(0, CPad::IsAffectedByController ? CPad::GetPad(0)->Mode : 0); + ScriptParams[0] = CPad::IsAffectedByController ? CPad::GetPad(0)->Mode : 0; #endif StoreParameters(&m_nIp, 1); return 0; case COMMAND_SET_CAN_RESPRAY_CAR: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); //assert(pVehicle->m_vehType == VEHICLE_TYPE_CAR); // they DO call this for bikes, we don't really want to destroy the structure... #ifdef FIX_BUGS if (pVehicle->m_vehType == VEHICLE_TYPE_CAR) #endif - ((CAutomobile*)pVehicle)->bFixedColour = (GET_INTEGER_PARAM(1) == 0); -#ifdef FIX_BUGS - else if (pVehicle->m_vehType == VEHICLE_TYPE_BIKE) - ((CBike*)pVehicle)->bFixedColour = (GET_INTEGER_PARAM(1) == 0); -#endif + ((CAutomobile*)pVehicle)->bFixedColour = (ScriptParams[1] == 0); return 0; } + /* case COMMAND_IS_TAXI: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); UpdateCompareFlag(pVehicle->IsTaxi()); return 0; } + */ case COMMAND_UNLOAD_SPECIAL_CHARACTER: CollectParameters(&m_nIp, 1); - if (m_bIsMissionScript) - CStreaming::SetMissionDoesntRequireSpecialChar(GET_INTEGER_PARAM(0) - 1); - //else - // CStreaming::SetAmbientMissionDoesntRequireSpecialChar(GET_INTEGER_PARAM(0) - 1); // TODO + CStreaming::SetMissionDoesntRequireSpecialChar(ScriptParams[0] - 1); return 0; case COMMAND_RESET_NUM_OF_MODELS_KILLED_BY_PLAYER: CDarkel::ResetModelsKilledByPlayer(); return 0; case COMMAND_GET_NUM_OF_MODELS_KILLED_BY_PLAYER: CollectParameters(&m_nIp, 1); - SET_INTEGER_PARAM(0, CDarkel::QueryModelsKilledByPlayer(GET_INTEGER_PARAM(0))); + ScriptParams[0] = CDarkel::QueryModelsKilledByPlayer(ScriptParams[0]); StoreParameters(&m_nIp, 1); return 0; /* case COMMAND_ACTIVATE_GARAGE: CollectParameters(&m_nIp, 1); - CGarages::ActivateGarage(GET_INTEGER_PARAM(0)); + CGarages::ActivateGarage(ScriptParams[0]); return 0; case COMMAND_SWITCH_TAXI_TIMER: { CollectParameters(&m_nIp, 1); - if (GET_INTEGER_PARAM(0) != 0){ + if (ScriptParams[0] != 0){ CWorld::Players[CWorld::PlayerInFocus].m_nUnusedTaxiTimer = CTimer::GetTimeInMilliseconds(); CWorld::Players[CWorld::PlayerInFocus].m_bUnusedTaxiThing = true; }else{ @@ -1275,10 +1260,10 @@ int8 CRunningScript::ProcessCommands600To699(int32 command) case COMMAND_CREATE_OBJECT_NO_OFFSET: { CollectParameters(&m_nIp, 4); - int mi = GET_INTEGER_PARAM(0) >= 0 ? GET_INTEGER_PARAM(0) : CTheScripts::UsedObjectArray[-GET_INTEGER_PARAM(0)].index; + int mi = ScriptParams[0] >= 0 ? ScriptParams[0] : CTheScripts::UsedObjectArray[-ScriptParams[0]].index; CObject* pObj = new CObject(mi, false); ; pObj->ObjectCreatedBy = MISSION_OBJECT; - CVector pos = GET_VECTOR_PARAM(1); + CVector pos = *(CVector*)&ScriptParams[1]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); pObj->SetPosition(pos); @@ -1290,37 +1275,37 @@ int8 CRunningScript::ProcessCommands600To699(int32 command) pObj->SetupBigBuilding(); CTheScripts::ClearSpaceForMissionEntity(pos, pObj); CWorld::Add(pObj); - SET_INTEGER_PARAM(0, CPools::GetObjectPool()->GetIndex(pObj)); + ScriptParams[0] = CPools::GetObjectPool()->GetIndex(pObj); StoreParameters(&m_nIp, 1); if (m_bIsMissionScript) - CTheScripts::MissionCleanUp.AddEntityToList(GET_INTEGER_PARAM(0), CLEANUP_OBJECT); - return 0; - } - case COMMAND_IS_BOAT: - { - CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pVehicle); - UpdateCompareFlag(pVehicle->GetVehicleAppearance() == VEHICLE_APPEARANCE_BOAT); + CTheScripts::MissionCleanUp.AddEntityToList(ScriptParams[0], CLEANUP_OBJECT); return 0; } /* + case COMMAND_IS_BOAT: + { + CollectParameters(&m_nIp, 1); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); + script_assert(pVehicle); + UpdateCompareFlag(pVehicle->m_vehType == VEHICLE_TYPE_BOAT); + return 0; + } case COMMAND_SET_CHAR_OBJ_GOTO_AREA_ANY_MEANS: { CollectParameters(&m_nIp, 5); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - float infX = GET_FLOAT_PARAM(1); - float infY = GET_FLOAT_PARAM(2); - float supX = GET_FLOAT_PARAM(3); - float supY = GET_FLOAT_PARAM(4); + float infX = *(float*)&ScriptParams[1]; + float infY = *(float*)&ScriptParams[2]; + float supX = *(float*)&ScriptParams[3]; + float supY = *(float*)&ScriptParams[4]; if (infX > supX) { - infX = GET_FLOAT_PARAM(3); - supX = GET_FLOAT_PARAM(1); + infX = *(float*)&ScriptParams[3]; + supX = *(float*)&ScriptParams[1]; } if (infY > supY) { - infY = GET_FLOAT_PARAM(4); - supY = GET_FLOAT_PARAM(2); + infY = *(float*)&ScriptParams[4]; + supY = *(float*)&ScriptParams[2]; } CVector pos; pos.x = (infX + supX) / 2; @@ -1331,107 +1316,105 @@ int8 CRunningScript::ProcessCommands600To699(int32 command) pPed->SetObjective(OBJECTIVE_GOTO_AREA_ANY_MEANS, pos, radius); return 0; } + */ #ifdef GTA_SCRIPT_COLLECTIVE case COMMAND_SET_COLL_OBJ_GOTO_AREA_ANY_MEANS: { CollectParameters(&m_nIp, 5); - float infX = GET_FLOAT_PARAM(1); - float supX = GET_FLOAT_PARAM(3); + float infX = *(float*)&ScriptParams[1]; + float supX = *(float*)&ScriptParams[3]; if (infX > supX) { - infX = GET_FLOAT_PARAM(3); - supX = GET_FLOAT_PARAM(1); + infX = *(float*)&ScriptParams[3]; + supX = *(float*)&ScriptParams[1]; } - float infY = GET_FLOAT_PARAM(2); - float supY = GET_FLOAT_PARAM(4); + float infY = *(float*)&ScriptParams[2]; + float supY = *(float*)&ScriptParams[4]; if (infY > supY) { - infY = GET_FLOAT_PARAM(4); - supY = GET_FLOAT_PARAM(2); + infY = *(float*)&ScriptParams[4]; + supY = *(float*)&ScriptParams[2]; } CVector pos; pos.x = (infX + supX) / 2; pos.y = (infY + supY) / 2; pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); float radius = Max(pos.x - infX, pos.y - infY); - CTheScripts::SetObjectiveForAllPedsInCollective(GET_INTEGER_PARAM(0), OBJECTIVE_GOTO_AREA_ANY_MEANS, pos, radius); + CTheScripts::SetObjectiveForAllPedsInCollective(ScriptParams[0], OBJECTIVE_GOTO_AREA_ANY_MEANS, pos, radius); return 0; } #endif -*/ case COMMAND_IS_PLAYER_STOPPED: { CollectParameters(&m_nIp, 1); - CPlayerInfo* pPlayer = &CWorld::Players[GET_INTEGER_PARAM(0)]; + CPlayerInfo* pPlayer = &CWorld::Players[ScriptParams[0]]; UpdateCompareFlag(CTheScripts::IsPlayerStopped(pPlayer)); return 0; } + /* case COMMAND_IS_CHAR_STOPPED: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); UpdateCompareFlag(CTheScripts::IsPedStopped(pPed)); return 0; } case COMMAND_MESSAGE_WAIT: CollectParameters(&m_nIp, 2); - m_nWakeTime = CTimer::GetTimeInMilliseconds() + GET_INTEGER_PARAM(0); - if (GET_INTEGER_PARAM(1) != 0) + m_nWakeTime = CTimer::GetTimeInMilliseconds() + ScriptParams[0]; + if (ScriptParams[1] != 0) m_bSkipWakeTime = true; return 1; - /* case COMMAND_ADD_PARTICLE_EFFECT: { CollectParameters(&m_nIp, 5); - CVector pos = GET_VECTOR_PARAM(1); + CVector pos = *(CVector*)&ScriptParams[1]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); - CParticleObject::AddObject(GET_INTEGER_PARAM(0), pos, GET_INTEGER_PARAM(4) != 0); + CParticleObject::AddObject(ScriptParams[0], pos, ScriptParams[4] != 0); return 0; } */ case COMMAND_SWITCH_WIDESCREEN: CollectParameters(&m_nIp, 1); - if (GET_INTEGER_PARAM(0) != 0) + if (ScriptParams[0] != 0) TheCamera.SetWideScreenOn(); - else { - // TODO: unknown field + else TheCamera.SetWideScreenOff(); - } return 0; /* case COMMAND_ADD_SPRITE_BLIP_FOR_CAR: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); CRadar::GetActualBlipArrayIndex(CollectNextParameterWithoutIncreasingPC(m_nIp)); - int id = CRadar::SetEntityBlip(BLIP_CAR, GET_INTEGER_PARAM(0), 0, BLIP_DISPLAY_BOTH); - CRadar::SetBlipSprite(id, GET_INTEGER_PARAM(1)); - SET_INTEGER_PARAM(0, id); + int id = CRadar::SetEntityBlip(BLIP_CAR, ScriptParams[0], 0, BLIP_DISPLAY_BOTH); + CRadar::SetBlipSprite(id, ScriptParams[1]); + ScriptParams[0] = id; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_ADD_SPRITE_BLIP_FOR_CHAR: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); CRadar::GetActualBlipArrayIndex(CollectNextParameterWithoutIncreasingPC(m_nIp)); - int id = CRadar::SetEntityBlip(BLIP_CHAR, GET_INTEGER_PARAM(0), 1, BLIP_DISPLAY_BOTH); - CRadar::SetBlipSprite(id, GET_INTEGER_PARAM(1)); - SET_INTEGER_PARAM(0, id); + int id = CRadar::SetEntityBlip(BLIP_CHAR, ScriptParams[0], 1, BLIP_DISPLAY_BOTH); + CRadar::SetBlipSprite(id, ScriptParams[1]); + ScriptParams[0] = id; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_ADD_SPRITE_BLIP_FOR_OBJECT: { CollectParameters(&m_nIp, 2); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); CRadar::GetActualBlipArrayIndex(CollectNextParameterWithoutIncreasingPC(m_nIp)); - int id = CRadar::SetEntityBlip(BLIP_OBJECT, GET_INTEGER_PARAM(0), 6, BLIP_DISPLAY_BOTH); - CRadar::SetBlipSprite(id, GET_INTEGER_PARAM(1)); - SET_INTEGER_PARAM(0, id); + int id = CRadar::SetEntityBlip(BLIP_OBJECT, ScriptParams[0], 6, BLIP_DISPLAY_BOTH); + CRadar::SetBlipSprite(id, ScriptParams[1]); + ScriptParams[0] = id; StoreParameters(&m_nIp, 1); return 0; } @@ -1439,67 +1422,67 @@ int8 CRunningScript::ProcessCommands600To699(int32 command) case COMMAND_ADD_SPRITE_BLIP_FOR_CONTACT_POINT: { CollectParameters(&m_nIp, 4); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); CRadar::GetActualBlipArrayIndex(CollectNextParameterWithoutIncreasingPC(m_nIp)); int id = CRadar::SetCoordBlip(BLIP_CONTACT_POINT, pos, 2, BLIP_DISPLAY_BOTH); - CRadar::SetBlipSprite(id, GET_INTEGER_PARAM(3)); - SET_INTEGER_PARAM(0, id); + CRadar::SetBlipSprite(id, ScriptParams[3]); + ScriptParams[0] = id; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_ADD_SPRITE_BLIP_FOR_COORD: { CollectParameters(&m_nIp, 4); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); CRadar::GetActualBlipArrayIndex(CollectNextParameterWithoutIncreasingPC(m_nIp)); - int id = CRadar::SetCoordBlip(BLIP_COORD, pos, 4, BLIP_DISPLAY_BOTH); - CRadar::SetBlipSprite(id, GET_INTEGER_PARAM(3)); - SET_INTEGER_PARAM(0, id); + int id = CRadar::SetCoordBlip(BLIP_COORD, pos, 5, BLIP_DISPLAY_BOTH); + CRadar::SetBlipSprite(id, ScriptParams[3]); + ScriptParams[0] = id; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_SET_CHAR_ONLY_DAMAGED_BY_PLAYER: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->bOnlyDamagedByPlayer = (GET_INTEGER_PARAM(1) != 0); + pPed->bOnlyDamagedByPlayer = (ScriptParams[1] != 0); return 0; } case COMMAND_SET_CAR_ONLY_DAMAGED_BY_PLAYER: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - pVehicle->bOnlyDamagedByPlayer = (GET_INTEGER_PARAM(1) != 0); + pVehicle->bOnlyDamagedByPlayer = (ScriptParams[1] != 0); return 0; } case COMMAND_SET_CHAR_PROOFS: { CollectParameters(&m_nIp, 6); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->bBulletProof = (GET_INTEGER_PARAM(1) != 0); - pPed->bFireProof = (GET_INTEGER_PARAM(2) != 0); - pPed->bExplosionProof = (GET_INTEGER_PARAM(3) != 0); - pPed->bCollisionProof = (GET_INTEGER_PARAM(4) != 0); - pPed->bMeleeProof = (GET_INTEGER_PARAM(5) != 0); + pPed->bBulletProof = (ScriptParams[1] != 0); + pPed->bFireProof = (ScriptParams[2] != 0); + pPed->bExplosionProof = (ScriptParams[3] != 0); + pPed->bCollisionProof = (ScriptParams[4] != 0); + pPed->bMeleeProof = (ScriptParams[5] != 0); return 0; } case COMMAND_SET_CAR_PROOFS: { CollectParameters(&m_nIp, 6); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - pVehicle->bBulletProof = (GET_INTEGER_PARAM(1) != 0); - pVehicle->bFireProof = (GET_INTEGER_PARAM(2) != 0); - pVehicle->bExplosionProof = (GET_INTEGER_PARAM(3) != 0); - pVehicle->bCollisionProof = (GET_INTEGER_PARAM(4) != 0); - pVehicle->bMeleeProof = (GET_INTEGER_PARAM(5) != 0); + pVehicle->bBulletProof = (ScriptParams[1] != 0); + pVehicle->bFireProof = (ScriptParams[2] != 0); + pVehicle->bExplosionProof = (ScriptParams[3] != 0); + pVehicle->bCollisionProof = (ScriptParams[4] != 0); + pVehicle->bMeleeProof = (ScriptParams[5] != 0); return 0; } case COMMAND_IS_PLAYER_IN_ANGLED_AREA_2D: @@ -1519,16 +1502,16 @@ int8 CRunningScript::ProcessCommands600To699(int32 command) /* case COMMAND_DEACTIVATE_GARAGE: CollectParameters(&m_nIp, 1); - CGarages::DeActivateGarage(GET_INTEGER_PARAM(0)); + CGarages::DeActivateGarage(ScriptParams[0]); return 0; case COMMAND_GET_NUMBER_OF_CARS_COLLECTED_BY_GARAGE: CollectParameters(&m_nIp, 1); - SET_INTEGER_PARAM(0, CGarages::QueryCarsCollected(GET_INTEGER_PARAM(0))); + ScriptParams[0] = CGarages::QueryCarsCollected(ScriptParams[0]); StoreParameters(&m_nIp, 1); return 0; case COMMAND_HAS_CAR_BEEN_TAKEN_TO_GARAGE: CollectParameters(&m_nIp, 2); - UpdateCompareFlag(CGarages::HasThisCarBeenCollected(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1) - 1)); + UpdateCompareFlag(CGarages::HasThisCarBeenCollected(ScriptParams[0], ScriptParams[1] - 1)); return 0; */ default: @@ -1543,55 +1526,54 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) /* case COMMAND_SET_SWAT_REQUIRED: CollectParameters(&m_nIp, 1); - FindPlayerPed()->m_pWanted->m_bSwatRequired = (GET_INTEGER_PARAM(0) != 0); + FindPlayerPed()->m_pWanted->m_bSwatRequired = (ScriptParams[0] != 0); return 0; case COMMAND_SET_FBI_REQUIRED: CollectParameters(&m_nIp, 1); - FindPlayerPed()->m_pWanted->m_bFbiRequired = (GET_INTEGER_PARAM(0) != 0); + FindPlayerPed()->m_pWanted->m_bFbiRequired = (ScriptParams[0] != 0); return 0; case COMMAND_SET_ARMY_REQUIRED: CollectParameters(&m_nIp, 1); - FindPlayerPed()->m_pWanted->m_bArmyRequired = (GET_INTEGER_PARAM(0) != 0); + FindPlayerPed()->m_pWanted->m_bArmyRequired = (ScriptParams[0] != 0); return 0; */ case COMMAND_IS_CAR_IN_WATER: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); UpdateCompareFlag(pVehicle && pVehicle->bIsInWater); return 0; } case COMMAND_GET_CLOSEST_CHAR_NODE: { CollectParameters(&m_nIp, 3); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); - CPathNode* pNode = &ThePaths.m_pathNodes[ThePaths.FindNodeClosestToCoors(pos, 1, 800.0f, true)]; - SET_VECTOR_PARAM(0, pNode->GetPosition()); + CPathNode* pNode = &ThePaths.m_pathNodes[ThePaths.FindNodeClosestToCoors(pos, 1, 999999.9f, true)]; + *(CVector*)&ScriptParams[0] = pNode->GetPosition(); StoreParameters(&m_nIp, 3); return 0; } case COMMAND_GET_CLOSEST_CAR_NODE: { CollectParameters(&m_nIp, 3); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); - SET_VECTOR_PARAM(0, ThePaths.FindNodeCoorsForScript(ThePaths.FindNodeClosestToCoors(pos, 0, 800.0f, true, true))); + *(CVector*)&ScriptParams[0] = ThePaths.FindNodeCoorsForScript(ThePaths.FindNodeClosestToCoors(pos, 0, 999999.9f, true, true)); StoreParameters(&m_nIp, 3); return 0; } case COMMAND_CAR_GOTO_COORDINATES_ACCURATE: { CollectParameters(&m_nIp, 4); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - CVector pos = GET_VECTOR_PARAM(1); + CVector pos = *(CVector*)&ScriptParams[1]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); pos.z += pVehicle->GetDistanceFromCentreOfMassToBaseOfModel(); - uint8 nOldMission = pVehicle->AutoPilot.m_nCarMission; if (CCarCtrl::JoinCarWithRoadSystemGotoCoors(pVehicle, pos, false)) pVehicle->AutoPilot.m_nCarMission = MISSION_GOTO_COORDS_STRAIGHT_ACCURATE; else @@ -1599,20 +1581,19 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) pVehicle->SetStatus(STATUS_PHYSICS); pVehicle->bEngineOn = true; pVehicle->AutoPilot.m_nCruiseSpeed = Max(1, pVehicle->AutoPilot.m_nCruiseSpeed); - if (nOldMission != pVehicle->AutoPilot.m_nCarMission) - pVehicle->AutoPilot.m_nAntiReverseTimer = CTimer::GetTimeInMilliseconds(); + pVehicle->AutoPilot.m_nAntiReverseTimer = CTimer::GetTimeInMilliseconds(); return 0; } /* case COMMAND_START_PACMAN_RACE: CollectParameters(&m_nIp, 1); - CPacManPickups::StartPacManRace(GET_INTEGER_PARAM(0)); + CPacManPickups::StartPacManRace(ScriptParams[0]); return 0; case COMMAND_START_PACMAN_RECORD: CPacManPickups::StartPacManRecord(); return 0; case COMMAND_GET_NUMBER_OF_POWER_PILLS_EATEN: - SET_INTEGER_PARAM(0, CPacManPickups::QueryPowerPillsEatenInRace()); + ScriptParams[0] = CPacManPickups::QueryPowerPillsEatenInRace(); StoreParameters(&m_nIp, 1); return 0; case COMMAND_CLEAR_PACMAN: @@ -1621,14 +1602,14 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) case COMMAND_START_PACMAN_SCRAMBLE: { CollectParameters(&m_nIp, 5); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); - CPacManPickups::StartPacManScramble(pos, GET_FLOAT_PARAM(3), GET_INTEGER_PARAM(4)); + CPacManPickups::StartPacManScramble(pos, *(float*)&ScriptParams[3], ScriptParams[4]); return 0; } case COMMAND_GET_NUMBER_OF_POWER_PILLS_CARRIED: - SET_INTEGER_PARAM(0, CPacManPickups::QueryPowerPillsCarriedByPlayer()); + ScriptParams[0] = CPacManPickups::QueryPowerPillsCarriedByPlayer(); StoreParameters(&m_nIp, 1); return 0; case COMMAND_CLEAR_NUMBER_OF_POWER_PILLS_CARRIED: @@ -1638,7 +1619,7 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) case COMMAND_IS_CAR_ON_SCREEN: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); UpdateCompareFlag(TheCamera.IsSphereVisible(pVehicle->GetBoundCentre(), pVehicle->GetBoundRadius())); return 0; @@ -1646,7 +1627,7 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) case COMMAND_IS_CHAR_ON_SCREEN: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); UpdateCompareFlag(TheCamera.IsSphereVisible(pPed->GetBoundCentre(), pPed->GetBoundRadius())); return 0; @@ -1654,65 +1635,67 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) case COMMAND_IS_OBJECT_ON_SCREEN: { CollectParameters(&m_nIp, 1); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); UpdateCompareFlag(TheCamera.IsSphereVisible(pObject->GetBoundCentre(), pObject->GetBoundRadius())); return 0; } + /* case COMMAND_GOSUB_FILE: { CollectParameters(&m_nIp, 2); script_assert(m_nStackPointer < MAX_STACK_DEPTH); m_anStack[m_nStackPointer++] = m_nIp; - SetIP(GET_INTEGER_PARAM(0)); - // GET_INTEGER_PARAM(1) == filename + SetIP(ScriptParams[0]); + // ScriptParams[1] == filename return 0; } + */ case COMMAND_GET_GROUND_Z_FOR_3D_COORD: { CollectParameters(&m_nIp, 3); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; bool success; - SET_FLOAT_PARAM(0, CWorld::FindGroundZFor3DCoord(pos.x, pos.y, pos.z, &success)); + *(float*)&ScriptParams[0] = CWorld::FindGroundZFor3DCoord(pos.x, pos.y, pos.z, &success); StoreParameters(&m_nIp, 1); return 0; } case COMMAND_START_SCRIPT_FIRE: { CollectParameters(&m_nIp, 3); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); - SET_INTEGER_PARAM(0, gFireManager.StartScriptFire(pos, nil, 0.8f, 1)); + ScriptParams[0] = gFireManager.StartScriptFire(pos, nil, 0.8f, 1); StoreParameters(&m_nIp, 1); return 0; } case COMMAND_IS_SCRIPT_FIRE_EXTINGUISHED: CollectParameters(&m_nIp, 1); - UpdateCompareFlag(gFireManager.IsScriptFireExtinguish(GET_INTEGER_PARAM(0))); + UpdateCompareFlag(gFireManager.IsScriptFireExtinguish(ScriptParams[0])); return 0; case COMMAND_REMOVE_SCRIPT_FIRE: CollectParameters(&m_nIp, 1); - gFireManager.RemoveScriptFire(GET_INTEGER_PARAM(0)); + gFireManager.RemoveScriptFire(ScriptParams[0]); return 0; /* case COMMAND_SET_COMEDY_CONTROLS: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - pVehicle->bComedyControls = (GET_INTEGER_PARAM(1) != 0); + pVehicle->bComedyControls = (ScriptParams[1] != 0); return 0; } */ case COMMAND_BOAT_GOTO_COORDS: { CollectParameters(&m_nIp, 4); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); script_assert(pVehicle->m_vehType == VEHICLE_TYPE_BOAT); CBoat* pBoat = (CBoat*)pVehicle; - CVector pos = GET_VECTOR_PARAM(1); + CVector pos = *(CVector*)&ScriptParams[1]; if (pos.z <= MAP_Z_LOW_LIMIT) CWaterLevel::GetWaterLevel(pos.x, pos.y, pos.z, &pos.z, false); pBoat->AutoPilot.m_nCarMission = MISSION_GOTOCOORDS_ASTHECROWSWIMS; @@ -1726,7 +1709,7 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) case COMMAND_BOAT_STOP: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); script_assert(pVehicle->m_vehType == VEHICLE_TYPE_BOAT); CBoat* pBoat = (CBoat*)pVehicle; @@ -1739,53 +1722,49 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) case COMMAND_IS_PLAYER_SHOOTING_IN_AREA: { CollectParameters(&m_nIp, 6); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); - float x1 = GET_FLOAT_PARAM(1); - float y1 = GET_FLOAT_PARAM(2); - float x2 = GET_FLOAT_PARAM(3); - float y2 = GET_FLOAT_PARAM(4); + float x1 = *(float*)&ScriptParams[1]; + float y1 = *(float*)&ScriptParams[2]; + float x2 = *(float*)&ScriptParams[3]; + float y2 = *(float*)&ScriptParams[4]; UpdateCompareFlag(pPed->bIsShooting && pPed->IsWithinArea(x1, y1, x2, y2)); - if (GET_INTEGER_PARAM(5)) + if (ScriptParams[5]) CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, x1, y1, x2, y2, MAP_Z_LOW_LIMIT); - /* if (CTheScripts::DbgFlag) CTheScripts::DrawDebugSquare(x1, y1, x2, y2); - */ return 0; } case COMMAND_IS_CHAR_SHOOTING_IN_AREA: { CollectParameters(&m_nIp, 6); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - float x1 = GET_FLOAT_PARAM(1); - float y1 = GET_FLOAT_PARAM(2); - float x2 = GET_FLOAT_PARAM(3); - float y2 = GET_FLOAT_PARAM(4); + float x1 = *(float*)&ScriptParams[1]; + float y1 = *(float*)&ScriptParams[2]; + float x2 = *(float*)&ScriptParams[3]; + float y2 = *(float*)&ScriptParams[4]; UpdateCompareFlag(pPed->bIsShooting && pPed->IsWithinArea(x1, y1, x2, y2)); - if (GET_INTEGER_PARAM(5)) + if (ScriptParams[5]) CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, x1, y1, x2, y2, MAP_Z_LOW_LIMIT); - /* if (CTheScripts::DbgFlag) CTheScripts::DrawDebugSquare(x1, y1, x2, y2); - */ return 0; } case COMMAND_IS_CURRENT_PLAYER_WEAPON: { CollectParameters(&m_nIp, 2); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); - UpdateCompareFlag(GET_INTEGER_PARAM(1) == pPed->GetWeapon()->m_eWeaponType); + UpdateCompareFlag(ScriptParams[1] == pPed->GetWeapon()->m_eWeaponType); return 0; } case COMMAND_IS_CURRENT_CHAR_WEAPON: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - UpdateCompareFlag(GET_INTEGER_PARAM(1) == pPed->GetWeapon()->m_eWeaponType); + UpdateCompareFlag(ScriptParams[1] == pPed->GetWeapon()->m_eWeaponType); return 0; } /* @@ -1795,7 +1774,7 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) case COMMAND_ADD_POWER_PILL: { CollectParameters(&m_nIp, 3); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); CPacManPickups::GenerateOnePMPickUp(pos); @@ -1805,22 +1784,23 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) case COMMAND_SET_BOAT_CRUISE_SPEED: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); script_assert(pVehicle->m_vehType == VEHICLE_TYPE_BOAT); CBoat* pBoat = (CBoat*)pVehicle; - pBoat->AutoPilot.m_nCruiseSpeed = GET_FLOAT_PARAM(1); + pBoat->AutoPilot.m_nCruiseSpeed = *(float*)&ScriptParams[1]; return 0; } + /* case COMMAND_GET_RANDOM_CHAR_IN_AREA: { - CollectParameters(&m_nIp, 7); + CollectParameters(&m_nIp, 4); int ped_handle = -1; CVector pos = FindPlayerCoors(); - float x1 = GET_FLOAT_PARAM(0); - float y1 = GET_FLOAT_PARAM(1); - float x2 = GET_FLOAT_PARAM(2); - float y2 = GET_FLOAT_PARAM(3); + float x1 = *(float*)&ScriptParams[0]; + float y1 = *(float*)&ScriptParams[1]; + float x2 = *(float*)&ScriptParams[2]; + float y2 = *(float*)&ScriptParams[3]; int i = CPools::GetPedPool()->GetSize(); while (--i && ped_handle == -1){ CPed* pPed = CPools::GetPedPool()->GetSlot(i); @@ -1836,9 +1816,9 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) continue; if (pPed->bFadeOut) continue; - if (pPed->m_nWaitState != WAITSTATE_FALSE) - continue; - if (!ThisIsAValidRandomPed(pPed->m_nPedType, GET_INTEGER_PARAM(5), GET_INTEGER_PARAM(6), GET_INTEGER_PARAM(7))) +// if (pPed->GetModelIndex() == MI_SCUM_WOM || pPed->GetModelIndex() == MI_SCUM_MAN) +// continue; + if (!ThisIsAValidRandomPed(pPed->m_nPedType)) continue; if (pPed->bIsLeader || pPed->m_leader) continue; @@ -1856,10 +1836,11 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) if (m_bIsMissionScript) CTheScripts::MissionCleanUp.AddEntityToList(ped_handle, CLEANUP_CHAR); } - SET_INTEGER_PARAM(0, ped_handle); + ScriptParams[0] = ped_handle; StoreParameters(&m_nIp, 1); return 0; } + */ case COMMAND_GET_RANDOM_CHAR_IN_ZONE: { char zone[KEY_LENGTH_IN_SCRIPT]; @@ -1888,7 +1869,7 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) continue; if (pPed->m_nWaitState != WAITSTATE_FALSE) continue; - if (!ThisIsAValidRandomPed(pPed->m_nPedType, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2))) + if (!ThisIsAValidRandomPed(pPed->m_nPedType, ScriptParams[0], ScriptParams[1], ScriptParams[2])) continue; if (pPed->bIsLeader || pPed->m_leader) continue; @@ -1910,14 +1891,14 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) if (m_bIsMissionScript) CTheScripts::MissionCleanUp.AddEntityToList(ped_handle, CLEANUP_CHAR); } - SET_INTEGER_PARAM(0, ped_handle); + ScriptParams[0] = ped_handle; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_IS_PLAYER_IN_TAXI: { CollectParameters(&m_nIp, 1); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); UpdateCompareFlag(pPed->bInVehicle && pPed->m_pMyVehicle->IsTaxi()); return 0; @@ -1925,7 +1906,7 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) case COMMAND_IS_PLAYER_SHOOTING: { CollectParameters(&m_nIp, 1); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); UpdateCompareFlag(pPed->bIsShooting); return 0; @@ -1933,7 +1914,7 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) case COMMAND_IS_CHAR_SHOOTING: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); UpdateCompareFlag(pPed->bIsShooting); return 0; @@ -1941,28 +1922,28 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) case COMMAND_CREATE_MONEY_PICKUP: { CollectParameters(&m_nIp, 4); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y) + PICKUP_PLACEMENT_OFFSET; CPickups::GetActualPickupIndex(CollectNextParameterWithoutIncreasingPC(m_nIp)); - SET_INTEGER_PARAM(0, CPickups::GenerateNewOne(pos, MI_MONEY, PICKUP_MONEY, GET_INTEGER_PARAM(3))); // MI_MONEY -> gpModelIndices[...] + ScriptParams[0] = CPickups::GenerateNewOne(pos, MI_MONEY, PICKUP_MONEY, ScriptParams[3]); StoreParameters(&m_nIp, 1); return 0; } case COMMAND_SET_CHAR_ACCURACY: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->m_wepAccuracy = GET_INTEGER_PARAM(1) * 1.25f; + pPed->m_wepAccuracy = ScriptParams[1]; return 0; } case COMMAND_GET_CAR_SPEED: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - SET_FLOAT_PARAM(0, pVehicle->GetSpeed().Magnitude() * GAME_SPEED_TO_METERS_PER_SECOND); + *(float*)&ScriptParams[0] = pVehicle->GetSpeed().Magnitude() * GAME_SPEED_TO_METERS_PER_SECOND; StoreParameters(&m_nIp, 1); return 0; } @@ -1970,17 +1951,15 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) { char name[KEY_LENGTH_IN_SCRIPT]; strncpy(name, (const char*)&CTheScripts::ScriptSpace[m_nIp], KEY_LENGTH_IN_SCRIPT); - // unknown call FUN_29df68(name) on PS2 m_nIp += KEY_LENGTH_IN_SCRIPT; - CColStore::RemoveAllCollision(); CCutsceneMgr::LoadCutsceneData(name); return 0; } case COMMAND_CREATE_CUTSCENE_OBJECT: { CollectParameters(&m_nIp, 1); - CCutsceneObject* pCutObj = CCutsceneMgr::CreateCutsceneObject(GET_INTEGER_PARAM(0)); - SET_INTEGER_PARAM(0, CPools::GetObjectPool()->GetIndex(pCutObj)); + CCutsceneObject* pCutObj = CCutsceneMgr::CreateCutsceneObject(ScriptParams[0]); + ScriptParams[0] = CPools::GetObjectPool()->GetIndex(pCutObj); StoreParameters(&m_nIp, 1); return 0; } @@ -1988,7 +1967,7 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) { CollectParameters(&m_nIp, 1); char name[KEY_LENGTH_IN_SCRIPT]; - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); strncpy(name, (const char*)&CTheScripts::ScriptSpace[m_nIp], KEY_LENGTH_IN_SCRIPT); m_nIp += KEY_LENGTH_IN_SCRIPT; @@ -1996,23 +1975,16 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) return 0; } case COMMAND_START_CUTSCENE: - CCutsceneMgr::StartCutscene(); + CCutsceneMgr::ms_cutsceneLoadStatus = 1; return 0; case COMMAND_GET_CUTSCENE_TIME: - SET_INTEGER_PARAM(0, CCutsceneMgr::GetCutsceneTimeInMilleseconds()); + ScriptParams[0] = CCutsceneMgr::GetCutsceneTimeInMilleseconds(); StoreParameters(&m_nIp, 1); return 0; case COMMAND_HAS_CUTSCENE_FINISHED: - { - bool bFinished = CCutsceneMgr::HasCutsceneFinished(); - if (bFinished) - printf("cutscene has now finished\n"); - UpdateCompareFlag(bFinished); + UpdateCompareFlag(CCutsceneMgr::HasCutsceneFinished()); return 0; - } case COMMAND_CLEAR_CUTSCENE: - // unknown call on PS2 FUN_29DFA0(); - printf("clear cutscene\n"); CCutsceneMgr::DeleteCutsceneData(); return 0; case COMMAND_RESTORE_CAMERA_JUMPCUT: @@ -2021,37 +1993,37 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) case COMMAND_CREATE_COLLECTABLE1: { CollectParameters(&m_nIp, 3); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y) + PICKUP_PLACEMENT_OFFSET; - CPickups::GenerateNewOne(pos, MI_COLLECTABLE1, PICKUP_COLLECTABLE1, 0); // TODO: gpModelIndices + CPickups::GenerateNewOne(pos, MI_COLLECTABLE1, PICKUP_COLLECTABLE1, 0); return 0; } case COMMAND_SET_COLLECTABLE1_TOTAL: CollectParameters(&m_nIp, 1); - CWorld::Players[CWorld::PlayerInFocus].m_nTotalPackages = GET_INTEGER_PARAM(0); + CWorld::Players[CWorld::PlayerInFocus].m_nTotalPackages = ScriptParams[0]; return 0; /* case COMMAND_IS_PROJECTILE_IN_AREA: { CollectParameters(&m_nIp, 6); - float infX = GET_FLOAT_PARAM(0); - float infY = GET_FLOAT_PARAM(1); - float infZ = GET_FLOAT_PARAM(2); - float supX = GET_FLOAT_PARAM(3); - float supY = GET_FLOAT_PARAM(4); - float supZ = GET_FLOAT_PARAM(5); + float infX = *(float*)&ScriptParams[0]; + float infY = *(float*)&ScriptParams[1]; + float infZ = *(float*)&ScriptParams[2]; + float supX = *(float*)&ScriptParams[3]; + float supY = *(float*)&ScriptParams[4]; + float supZ = *(float*)&ScriptParams[5]; if (infX > supX) { - infX = GET_FLOAT_PARAM(3); - supX = GET_FLOAT_PARAM(0); + infX = *(float*)&ScriptParams[3]; + supX = *(float*)&ScriptParams[0]; } if (infY > supY) { - infY = GET_FLOAT_PARAM(4); - supY = GET_FLOAT_PARAM(1); + infY = *(float*)&ScriptParams[4]; + supY = *(float*)&ScriptParams[1]; } if (infZ > supZ) { - infZ = GET_FLOAT_PARAM(5); - supZ = GET_FLOAT_PARAM(2); + infZ = *(float*)&ScriptParams[5]; + supZ = *(float*)&ScriptParams[2]; } UpdateCompareFlag(CProjectileInfo::IsProjectileInRange(infX, supX, infY, supY, infZ, supZ, false)); if (CTheScripts::DbgFlag) @@ -2061,23 +2033,23 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) case COMMAND_DESTROY_PROJECTILES_IN_AREA: { CollectParameters(&m_nIp, 6); - float infX = GET_FLOAT_PARAM(0); - float infY = GET_FLOAT_PARAM(1); - float infZ = GET_FLOAT_PARAM(2); - float supX = GET_FLOAT_PARAM(3); - float supY = GET_FLOAT_PARAM(4); - float supZ = GET_FLOAT_PARAM(5); + float infX = *(float*)&ScriptParams[0]; + float infY = *(float*)&ScriptParams[1]; + float infZ = *(float*)&ScriptParams[2]; + float supX = *(float*)&ScriptParams[3]; + float supY = *(float*)&ScriptParams[4]; + float supZ = *(float*)&ScriptParams[5]; if (infX > supX) { - infX = GET_FLOAT_PARAM(3); - supX = GET_FLOAT_PARAM(0); + infX = *(float*)&ScriptParams[3]; + supX = *(float*)&ScriptParams[0]; } if (infY > supY) { - infY = GET_FLOAT_PARAM(4); - supY = GET_FLOAT_PARAM(1); + infY = *(float*)&ScriptParams[4]; + supY = *(float*)&ScriptParams[1]; } if (infZ > supZ) { - infZ = GET_FLOAT_PARAM(5); - supZ = GET_FLOAT_PARAM(2); + infZ = *(float*)&ScriptParams[5]; + supZ = *(float*)&ScriptParams[2]; } UpdateCompareFlag(CProjectileInfo::IsProjectileInRange(infX, supX, infY, supY, infZ, supZ, true)); if (CTheScripts::DbgFlag) @@ -2087,7 +2059,7 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) case COMMAND_DROP_MINE: { CollectParameters(&m_nIp, 3); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y) + PICKUP_PLACEMENT_OFFSET; CPickups::GenerateNewOne(pos, MI_CARMINE, PICKUP_MINE_INACTIVE, 0); @@ -2096,7 +2068,7 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) case COMMAND_DROP_NAUTICAL_MINE: { CollectParameters(&m_nIp, 3); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y) + PICKUP_PLACEMENT_OFFSET; CPickups::GenerateNewOne(pos, MI_NAUTICALMINE, PICKUP_MINE_INACTIVE, 0); @@ -2106,9 +2078,9 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) case COMMAND_IS_CHAR_MODEL: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - UpdateCompareFlag(GET_INTEGER_PARAM(1) == pPed->GetModelIndex()); + UpdateCompareFlag(ScriptParams[1] == pPed->GetModelIndex()); return 0; } case COMMAND_LOAD_SPECIAL_MODEL: @@ -2118,7 +2090,7 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) strncpy(name, (const char*)&CTheScripts::ScriptSpace[m_nIp], KEY_LENGTH_IN_SCRIPT); for (int i = 0; i < KEY_LENGTH_IN_SCRIPT; i++) name[i] = tolower(name[i]); - CStreaming::RequestSpecialModel(GET_INTEGER_PARAM(0), name, STREAMFLAGS_DEPENDENCY | (m_bIsMissionScript ? STREAMFLAGS_SCRIPTOWNED : STREAMFLAGS_AMBIENT_SCRIPT_OWNED)); + CStreaming::RequestSpecialModel(ScriptParams[0], name, STREAMFLAGS_DEPENDENCY | STREAMFLAGS_SCRIPTOWNED); m_nIp += KEY_LENGTH_IN_SCRIPT; return 0; } @@ -2126,98 +2098,102 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) //case COMMAND_SET_CUTSCENE_HEAD_ANIM: case COMMAND_SIN: CollectParameters(&m_nIp, 1); - SET_FLOAT_PARAM(0, Sin(DEGTORAD(GET_FLOAT_PARAM(0)))); + *(float*)&ScriptParams[0] = Sin(DEGTORAD(*(float*)&ScriptParams[0])); StoreParameters(&m_nIp, 1); return 0; case COMMAND_COS: CollectParameters(&m_nIp, 1); - SET_FLOAT_PARAM(0, Cos(DEGTORAD(GET_FLOAT_PARAM(0)))); + *(float*)&ScriptParams[0] = Cos(DEGTORAD(*(float*)&ScriptParams[0])); StoreParameters(&m_nIp, 1); return 0; case COMMAND_GET_CAR_FORWARD_X: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); float forwardX = pVehicle->GetForward().x / pVehicle->GetForward().Magnitude2D(); - SET_FLOAT_PARAM(0, forwardX); + *(float*)&ScriptParams[0] = forwardX; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_GET_CAR_FORWARD_Y: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); float forwardY = pVehicle->GetForward().y / pVehicle->GetForward().Magnitude2D(); - SET_FLOAT_PARAM(0, forwardY); + *(float*)&ScriptParams[0] = forwardY; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_CHANGE_GARAGE_TYPE: CollectParameters(&m_nIp, 2); - CGarages::ChangeGarageType(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), 0); + CGarages::ChangeGarageType(ScriptParams[0], ScriptParams[1], 0); return 0; + /* case COMMAND_ACTIVATE_CRUSHER_CRANE: { CollectParameters(&m_nIp, 10); - float infX = GET_FLOAT_PARAM(2); - float infY = GET_FLOAT_PARAM(3); - float supX = GET_FLOAT_PARAM(4); - float supY = GET_FLOAT_PARAM(5); + float infX = *(float*)&ScriptParams[2]; + float infY = *(float*)&ScriptParams[3]; + float supX = *(float*)&ScriptParams[4]; + float supY = *(float*)&ScriptParams[5]; if (infX > supX) { - infX = GET_FLOAT_PARAM(4); - supX = GET_FLOAT_PARAM(2); + infX = *(float*)&ScriptParams[4]; + supX = *(float*)&ScriptParams[2]; } if (infY > supY) { - infY = GET_FLOAT_PARAM(5); - supY = GET_FLOAT_PARAM(3); + infY = *(float*)&ScriptParams[5]; + supY = *(float*)&ScriptParams[3]; } CCranes::ActivateCrane(infX, supX, infY, supY, - GET_FLOAT_PARAM(6), GET_FLOAT_PARAM(7), GET_FLOAT_PARAM(8), - DEGTORAD(GET_FLOAT_PARAM(9)), true, false, - GET_FLOAT_PARAM(0), GET_FLOAT_PARAM(1)); + *(float*)&ScriptParams[6], *(float*)&ScriptParams[7], *(float*)&ScriptParams[8], + DEGTORAD(*(float*)&ScriptParams[9]), true, false, + *(float*)&ScriptParams[0], *(float*)&ScriptParams[1]); return 0; } case COMMAND_PRINT_WITH_2_NUMBERS: { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 4); - CMessages::AddMessageWithNumber(text, GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3), GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), -1, -1, -1, -1); + CMessages::AddMessageWithNumber(text, ScriptParams[2], ScriptParams[3], ScriptParams[0], ScriptParams[1], -1, -1, -1, -1); return 0; } + */ case COMMAND_PRINT_WITH_2_NUMBERS_NOW: { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 4); - CMessages::AddMessageJumpQWithNumber(text, GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3), GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), -1, -1, -1, -1); + CMessages::AddMessageJumpQWithNumber(text, ScriptParams[2], ScriptParams[3], ScriptParams[0], ScriptParams[1], -1, -1, -1, -1); return 0; } + /* case COMMAND_PRINT_WITH_2_NUMBERS_SOON: { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 4); - CMessages::AddMessageSoonWithNumber(text, GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3), GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), -1, -1, -1, -1); + CMessages::AddMessageSoonWithNumber(text, ScriptParams[2], ScriptParams[3], ScriptParams[0], ScriptParams[1], -1, -1, -1, -1); return 0; } + */ case COMMAND_PRINT_WITH_3_NUMBERS: { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 5); - CMessages::AddMessageWithNumber(text, GET_INTEGER_PARAM(3), GET_INTEGER_PARAM(4), GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), -1, -1, -1); + CMessages::AddMessageWithNumber(text, ScriptParams[3], ScriptParams[4], ScriptParams[0], ScriptParams[1], ScriptParams[2], -1, -1, -1); return 0; } + /* case COMMAND_PRINT_WITH_3_NUMBERS_NOW: { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 5); - CMessages::AddMessageJumpQWithNumber(text, GET_INTEGER_PARAM(3), GET_INTEGER_PARAM(4), GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), -1, -1, -1); + CMessages::AddMessageJumpQWithNumber(text, ScriptParams[3], ScriptParams[4], ScriptParams[0], ScriptParams[1], ScriptParams[2], -1, -1, -1); return 0; } - /* case COMMAND_PRINT_WITH_3_NUMBERS_SOON: { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 5); - CMessages::AddMessageSoonWithNumber(text, GET_INTEGER_PARAM(3), GET_INTEGER_PARAM(4), GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), -1, -1, -1); + CMessages::AddMessageSoonWithNumber(text, ScriptParams[3], ScriptParams[4], ScriptParams[0], ScriptParams[1], ScriptParams[2], -1, -1, -1); return 0; } */ @@ -2225,7 +2201,7 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 6); - CMessages::AddMessageWithNumber(text, GET_INTEGER_PARAM(4), GET_INTEGER_PARAM(5), GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3), -1, -1); + CMessages::AddMessageWithNumber(text, ScriptParams[4], ScriptParams[5], ScriptParams[0], ScriptParams[1], ScriptParams[2], ScriptParams[3], -1, -1); return 0; } /* @@ -2233,35 +2209,35 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 6); - CMessages::AddMessageJumpQWithNumber(text, GET_INTEGER_PARAM(4), GET_INTEGER_PARAM(5), GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3), -1, -1); + CMessages::AddMessageJumpQWithNumber(text, ScriptParams[4], ScriptParams[5], ScriptParams[0], ScriptParams[1], ScriptParams[2], ScriptParams[3], -1, -1); return 0; } case COMMAND_PRINT_WITH_4_NUMBERS_SOON: { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 6); - CMessages::AddMessageSoonWithNumber(text, GET_INTEGER_PARAM(4), GET_INTEGER_PARAM(5), GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3), -1, -1); + CMessages::AddMessageSoonWithNumber(text, ScriptParams[4], ScriptParams[5], ScriptParams[0], ScriptParams[1], ScriptParams[2], ScriptParams[3], -1, -1); return 0; } case COMMAND_PRINT_WITH_5_NUMBERS: { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 7); - CMessages::AddMessageWithNumber(text, GET_INTEGER_PARAM(5), GET_INTEGER_PARAM(6), GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3), GET_INTEGER_PARAM(4), -1); + CMessages::AddMessageWithNumber(text, ScriptParams[5], ScriptParams[6], ScriptParams[0], ScriptParams[1], ScriptParams[2], ScriptParams[3], ScriptParams[4], -1); return 0; } case COMMAND_PRINT_WITH_5_NUMBERS_NOW: { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 7); - CMessages::AddMessageJumpQWithNumber(text, GET_INTEGER_PARAM(5), GET_INTEGER_PARAM(6), GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3), GET_INTEGER_PARAM(4), -1); + CMessages::AddMessageJumpQWithNumber(text, ScriptParams[5], ScriptParams[6], ScriptParams[0], ScriptParams[1], ScriptParams[2], ScriptParams[3], ScriptParams[4], -1); return 0; } case COMMAND_PRINT_WITH_5_NUMBERS_SOON: { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 7); - CMessages::AddMessageSoonWithNumber(text, GET_INTEGER_PARAM(5), GET_INTEGER_PARAM(6), GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3), GET_INTEGER_PARAM(4), -1); + CMessages::AddMessageSoonWithNumber(text, ScriptParams[5], ScriptParams[6], ScriptParams[0], ScriptParams[1], ScriptParams[2], ScriptParams[3], ScriptParams[4], -1); return 0; } */ @@ -2269,7 +2245,7 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 8); - CMessages::AddMessageWithNumber(text, GET_INTEGER_PARAM(6), GET_INTEGER_PARAM(7), GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3), GET_INTEGER_PARAM(4), GET_INTEGER_PARAM(5)); + CMessages::AddMessageWithNumber(text, ScriptParams[6], ScriptParams[7], ScriptParams[0], ScriptParams[1], ScriptParams[2], ScriptParams[3], ScriptParams[4], ScriptParams[5]); return 0; } /* @@ -2277,69 +2253,71 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 8); - CMessages::AddMessageJumpQWithNumber(text, GET_INTEGER_PARAM(6), GET_INTEGER_PARAM(7), GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3), GET_INTEGER_PARAM(4), GET_INTEGER_PARAM(5)); + CMessages::AddMessageJumpQWithNumber(text, ScriptParams[6], ScriptParams[7], ScriptParams[0], ScriptParams[1], ScriptParams[2], ScriptParams[3], ScriptParams[4], ScriptParams[5]); return 0; } case COMMAND_PRINT_WITH_6_NUMBERS_SOON: { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 8); - CMessages::AddMessageSoonWithNumber(text, GET_INTEGER_PARAM(6), GET_INTEGER_PARAM(7), GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3), GET_INTEGER_PARAM(4), GET_INTEGER_PARAM(5)); + CMessages::AddMessageSoonWithNumber(text, ScriptParams[6], ScriptParams[7], ScriptParams[0], ScriptParams[1], ScriptParams[2], ScriptParams[3], ScriptParams[4], ScriptParams[5]); return 0; } - */ case COMMAND_SET_CHAR_OBJ_FOLLOW_CHAR_IN_FORMATION: { CollectParameters(&m_nIp, 3); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CPed* pTargetPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); + CPed* pTargetPed = CPools::GetPedPool()->GetAt(ScriptParams[1]); pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_FOLLOW_CHAR_IN_FORMATION, pTargetPed); - pPed->SetFormation((eFormation)GET_INTEGER_PARAM(2)); + pPed->SetFormation((eFormation)ScriptParams[2]); return 0; } + */ case COMMAND_PLAYER_MADE_PROGRESS: CollectParameters(&m_nIp, 1); - CStats::ProgressMade += GET_INTEGER_PARAM(0); + CStats::ProgressMade += ScriptParams[0]; return 0; case COMMAND_SET_PROGRESS_TOTAL: CollectParameters(&m_nIp, 1); - CStats::TotalProgressInGame = GET_INTEGER_PARAM(0); + CStats::TotalProgressInGame = ScriptParams[0]; + if (CGame::germanGame) + CStats::TotalProgressInGame -= 2; return 0; case COMMAND_REGISTER_JUMP_DISTANCE: CollectParameters(&m_nIp, 1); - CStats::MaximumJumpDistance = Max(CStats::MaximumJumpDistance, GET_FLOAT_PARAM(0)); + CStats::MaximumJumpDistance = Max(CStats::MaximumJumpDistance, *(float*)&ScriptParams[0]); return 0; case COMMAND_REGISTER_JUMP_HEIGHT: CollectParameters(&m_nIp, 1); - CStats::MaximumJumpHeight = Max(CStats::MaximumJumpHeight, GET_FLOAT_PARAM(0)); + CStats::MaximumJumpHeight = Max(CStats::MaximumJumpHeight, *(float*)&ScriptParams[0]); return 0; case COMMAND_REGISTER_JUMP_FLIPS: CollectParameters(&m_nIp, 1); - CStats::MaximumJumpFlips = Max(CStats::MaximumJumpFlips, GET_INTEGER_PARAM(0)); + CStats::MaximumJumpFlips = Max(CStats::MaximumJumpFlips, ScriptParams[0]); return 0; case COMMAND_REGISTER_JUMP_SPINS: CollectParameters(&m_nIp, 1); - CStats::MaximumJumpSpins = Max(CStats::MaximumJumpSpins, GET_INTEGER_PARAM(0)); + CStats::MaximumJumpSpins = Max(CStats::MaximumJumpSpins, ScriptParams[0]); return 0; case COMMAND_REGISTER_JUMP_STUNT: CollectParameters(&m_nIp, 1); - CStats::BestStuntJump = Max(CStats::BestStuntJump, GET_INTEGER_PARAM(0)); + CStats::BestStuntJump = Max(CStats::BestStuntJump, ScriptParams[0]); return 0; case COMMAND_REGISTER_UNIQUE_JUMP_FOUND: ++CStats::NumberOfUniqueJumpsFound; return 0; case COMMAND_SET_UNIQUE_JUMPS_TOTAL: CollectParameters(&m_nIp, 1); - CStats::TotalNumberOfUniqueJumps = GET_INTEGER_PARAM(0); + CStats::TotalNumberOfUniqueJumps = ScriptParams[0]; return 0; case COMMAND_REGISTER_PASSENGER_DROPPED_OFF_TAXI: ++CStats::PassengersDroppedOffWithTaxi; return 0; case COMMAND_REGISTER_MONEY_MADE_TAXI: CollectParameters(&m_nIp, 1); - CStats::MoneyMadeWithTaxi += GET_INTEGER_PARAM(0); + CStats::MoneyMadeWithTaxi += ScriptParams[0]; return 0; case COMMAND_REGISTER_MISSION_GIVEN: ++CStats::MissionsGiven; @@ -2359,9 +2337,9 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) case COMMAND_SET_CHAR_RUNNING: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->bIsRunning = (GET_INTEGER_PARAM(1) != 0); + pPed->bIsRunning = (ScriptParams[1] != 0); return 0; } case COMMAND_REMOVE_ALL_SCRIPT_FIRES: @@ -2371,32 +2349,32 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) case COMMAND_IS_FIRST_CAR_COLOUR: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - UpdateCompareFlag(pVehicle->m_currentColour1 == GET_INTEGER_PARAM(1)); + UpdateCompareFlag(pVehicle->m_currentColour1 == ScriptParams[1]); return 0; } case COMMAND_IS_SECOND_CAR_COLOUR: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - UpdateCompareFlag(pVehicle->m_currentColour2 == GET_INTEGER_PARAM(1)); + UpdateCompareFlag(pVehicle->m_currentColour2 == ScriptParams[1]); return 0; } */ case COMMAND_HAS_CHAR_BEEN_DAMAGED_BY_WEAPON: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); bool result = false; if (!pPed) printf("HAS_CHAR_BEEN_DAMAGED_BY_WEAPON - Character doesn't exist\n"); else { - if (GET_INTEGER_PARAM(1) == WEAPONTYPE_ANYMELEE || GET_INTEGER_PARAM(1) == WEAPONTYPE_ANYWEAPON) - result = CheckDamagedWeaponType(pPed->m_lastWepDam, GET_INTEGER_PARAM(1)); + if (ScriptParams[1] == WEAPONTYPE_ANYMELEE || ScriptParams[1] == WEAPONTYPE_ANYWEAPON) + result = CheckDamagedWeaponType(pPed->m_lastWepDam, ScriptParams[1]); else - result = GET_INTEGER_PARAM(1) == pPed->m_lastWepDam; + result = ScriptParams[1] == pPed->m_lastWepDam; } UpdateCompareFlag(result); return 0; @@ -2404,15 +2382,15 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) case COMMAND_HAS_CAR_BEEN_DAMAGED_BY_WEAPON: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); bool result = false; if (!pVehicle) printf("HAS_CAR_BEEN_DAMAGED_BY_WEAPON - Vehicle doesn't exist\n"); else { - if (GET_INTEGER_PARAM(1) == WEAPONTYPE_ANYMELEE || GET_INTEGER_PARAM(1) == WEAPONTYPE_ANYWEAPON) - result = CheckDamagedWeaponType(pVehicle->m_nLastWeaponDamage, GET_INTEGER_PARAM(1)); + if (ScriptParams[1] == WEAPONTYPE_ANYMELEE || ScriptParams[1] == WEAPONTYPE_ANYWEAPON) + result = CheckDamagedWeaponType(pVehicle->m_nLastWeaponDamage, ScriptParams[1]); else - result = GET_INTEGER_PARAM(1) == pVehicle->m_nLastWeaponDamage; + result = ScriptParams[1] == pVehicle->m_nLastWeaponDamage; } UpdateCompareFlag(result); return 0; @@ -2420,8 +2398,8 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) case COMMAND_IS_CHAR_IN_CHARS_GROUP: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - CPed* pLeader = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); + CPed* pLeader = CPools::GetPedPool()->GetAt(ScriptParams[1]); script_assert(pPed); script_assert(pLeader); UpdateCompareFlag(pPed->m_leader == pLeader && !pPed->bWaitForLeaderToComeCloser); diff --git a/src/control/Script4.cpp b/src/control/Script4.cpp index 4f443ad..878278c 100644 --- a/src/control/Script4.cpp +++ b/src/control/Script4.cpp @@ -41,12 +41,19 @@ #include "Bike.h" #include "Wanted.h" -// LCS: file done except TODOs - #ifdef FIX_BUGS static bool IsSlideObjectUsedWrongByScript(const CVector& posTarget, const CVector& slideBy) { - // TODO? + if (posTarget == CVector(-559.476f, 784.807f, 23.279f) && slideBy == CVector(0.0f, 10.0f, 0.0f)) + return true; // G-Spotlight bottom elevator, east side + if (posTarget == CVector(-559.476f, 779.64f, 23.279f) && slideBy == CVector(0.0f, 10.0f, 0.0f)) + return true; // G-Spotlight bottom elevator, west side + if (posTarget == CVector(-553.563f, 790.595f, 97.917f) && slideBy == CVector(0.0f, 10.0f, 0.0f)) + return true; // G-Spotlight top elevator, east side + if (posTarget == CVector(-553.563f, 785.427f, 97.917f) && slideBy == CVector(0.0f, 10.0f, 0.0f)) + return true; // G-Spotlight top elevator, west side + if (posTarget == CVector(-866.689f, -572.095f, 15.573f) && slideBy == CVector(0.0f, 0.0f, 4.5f)) + return true; // Cherry Popper garage door return false; } #endif @@ -58,8 +65,8 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) case COMMAND_IS_CHAR_IN_PLAYERS_GROUP: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - CPed* pLeader = CWorld::Players[GET_INTEGER_PARAM(1)].m_pPed; + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); + CPed* pLeader = CWorld::Players[ScriptParams[1]].m_pPed; script_assert(pPed); script_assert(pLeader); UpdateCompareFlag(pPed->m_leader == pLeader && !pPed->bWaitForLeaderToComeCloser); @@ -68,7 +75,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) case COMMAND_EXPLODE_CHAR_HEAD: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); pPed->InflictDamage(nil, WEAPONTYPE_SNIPERRIFLE, 1000.0f, PEDPIECE_HEAD, 0); return 0; @@ -76,7 +83,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) case COMMAND_EXPLODE_PLAYER_HEAD: { CollectParameters(&m_nIp, 1); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); pPed->InflictDamage(nil, WEAPONTYPE_SNIPERRIFLE, 1000.0f, PEDPIECE_HEAD, 0); return 0; @@ -84,9 +91,9 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) case COMMAND_ANCHOR_BOAT: { CollectParameters(&m_nIp, 2); - CBoat* pBoat = (CBoat*)CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CBoat* pBoat = (CBoat*)CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pBoat && pBoat->m_vehType == VEHICLE_TYPE_BOAT); - pBoat->m_bIsAnchored = (GET_INTEGER_PARAM(1) != 0); + pBoat->m_bIsAnchored = (ScriptParams[1] != 0); return 0; } case COMMAND_SET_ZONE_GROUP: @@ -101,7 +108,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) return 0; } while (zone_id >= 0) { - CTheZones::SetPedGroup(zone_id, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); + CTheZones::SetPedGroup(zone_id, ScriptParams[0], ScriptParams[1]); zone_id = CTheZones::FindNextZoneByLabelAndReturnIndex(zone, ZONE_INFO); } return 0; @@ -109,18 +116,18 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) case COMMAND_START_CAR_FIRE: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - SET_INTEGER_PARAM(0, gFireManager.StartScriptFire(pVehicle->GetPosition(), pVehicle, 0.8f, 1)); + ScriptParams[0] = gFireManager.StartScriptFire(pVehicle->GetPosition(), pVehicle, 0.8f, 1); StoreParameters(&m_nIp, 1); return 0; } case COMMAND_START_CHAR_FIRE: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - SET_INTEGER_PARAM(0, gFireManager.StartScriptFire(pPed->GetPosition(), pPed, 0.8f, 1)); + ScriptParams[0] = gFireManager.StartScriptFire(pPed->GetPosition(), pPed, 0.8f, 1); StoreParameters(&m_nIp, 1); return 0; } @@ -129,10 +136,10 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) CollectParameters(&m_nIp, 5); int handle = -1; uint32 i = CPools::GetVehiclePool()->GetSize(); - float infX = GET_FLOAT_PARAM(0); - float infY = GET_FLOAT_PARAM(1); - float supX = GET_FLOAT_PARAM(2); - float supY = GET_FLOAT_PARAM(3); + float infX = *(float*)&ScriptParams[0]; + float infY = *(float*)&ScriptParams[1]; + float supX = *(float*)&ScriptParams[2]; + float supY = *(float*)&ScriptParams[3]; while (i--) { CVehicle* pVehicle = CPools::GetVehiclePool()->GetSlot(i); if (!pVehicle) @@ -141,7 +148,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) continue; if (!pVehicle->bUsesCollision) continue; - if (GET_INTEGER_PARAM(4) != pVehicle->GetModelIndex() && GET_INTEGER_PARAM(4) >= 0) + if (ScriptParams[4] != pVehicle->GetModelIndex() && ScriptParams[4] >= 0) continue; if (pVehicle->VehicleCreatedBy != RANDOM_VEHICLE) continue; @@ -154,7 +161,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) if (m_bIsMissionScript) CTheScripts::MissionCleanUp.AddEntityToList(handle, CLEANUP_CAR); } - SET_INTEGER_PARAM(0, handle); + ScriptParams[0] = handle; StoreParameters(&m_nIp, 1); return 0; } @@ -174,7 +181,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) CVehicle* pVehicle = CPools::GetVehiclePool()->GetSlot(i); if (!pVehicle) continue; - if (GET_INTEGER_PARAM(0) != pVehicle->GetModelIndex() && GET_INTEGER_PARAM(0) >= 0) + if (ScriptParams[0] != pVehicle->GetModelIndex() && ScriptParams[0] >= 0) continue; if (pVehicle->VehicleCreatedBy != RANDOM_VEHICLE) continue; @@ -187,7 +194,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) if (m_bIsMissionScript) CTheScripts::MissionCleanUp.AddEntityToList(handle, CLEANUP_CAR); } - SET_INTEGER_PARAM(0, handle); + ScriptParams[0] = handle; StoreParameters(&m_nIp, 1); return 0; } @@ -195,38 +202,38 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) case COMMAND_HAS_RESPRAY_HAPPENED: { CollectParameters(&m_nIp, 1); - UpdateCompareFlag(CGarages::HasResprayHappened(GET_INTEGER_PARAM(0))); + UpdateCompareFlag(CGarages::HasResprayHappened(ScriptParams[0])); return 0; } case COMMAND_SET_CAMERA_ZOOM: { CollectParameters(&m_nIp, 1); if (TheCamera.Cams[TheCamera.ActiveCam].Mode == CCam::MODE_FOLLOWPED) - TheCamera.SetZoomValueFollowPedScript(GET_INTEGER_PARAM(0)); + TheCamera.SetZoomValueFollowPedScript(ScriptParams[0]); else if (TheCamera.Cams[TheCamera.ActiveCam].Mode == CCam::MODE_CAM_ON_A_STRING) - TheCamera.SetZoomValueCamStringScript(GET_INTEGER_PARAM(0)); + TheCamera.SetZoomValueCamStringScript(ScriptParams[0]); return 0; } case COMMAND_CREATE_PICKUP_WITH_AMMO: { CollectParameters(&m_nIp, 6); - int16 model = GET_INTEGER_PARAM(0); + int16 model = ScriptParams[0]; if (model < 0) model = CTheScripts::UsedObjectArray[-model].index; - CVector pos = GET_VECTOR_PARAM(3); + CVector pos = *(CVector*)&ScriptParams[3]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y) + PICKUP_PLACEMENT_OFFSET; CPickups::GetActualPickupIndex(CollectNextParameterWithoutIncreasingPC(m_nIp)); - SET_INTEGER_PARAM(0, CPickups::GenerateNewOne(pos, model, GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2))); + ScriptParams[0] = CPickups::GenerateNewOne(pos, model, ScriptParams[1], ScriptParams[2]); StoreParameters(&m_nIp, 1); return 0; } case COMMAND_SET_CAR_RAM_CAR: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - CVehicle* pTarget = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); + CVehicle* pTarget = CPools::GetVehiclePool()->GetAt(ScriptParams[1]); script_assert(pTarget); CCarAI::TellCarToRamOtherCar(pVehicle, pTarget); return 0; @@ -235,9 +242,9 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) case COMMAND_SET_CAR_BLOCK_CAR: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - CVehicle* pTarget = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); + CVehicle* pTarget = CPools::GetVehiclePool()->GetAt(ScriptParams[1]); script_assert(pTarget); CCarAI::TellCarToBlockOtherCar(pVehicle, pTarget); return 0; @@ -245,112 +252,115 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) case COMMAND_SET_CHAR_OBJ_CATCH_TRAIN: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_CATCH_TRAIN); return 0; } + */ #ifdef GTA_SCRIPT_COLLECTIVE case COMMAND_SET_COLL_OBJ_CATCH_TRAIN: CollectParameters(&m_nIp, 1); - CTheScripts::SetObjectiveForAllPedsInCollective(GET_INTEGER_PARAM(0), OBJECTIVE_CATCH_TRAIN); + CTheScripts::SetObjectiveForAllPedsInCollective(ScriptParams[0], OBJECTIVE_CATCH_TRAIN); return 0; #endif - */ case COMMAND_SET_PLAYER_NEVER_GETS_TIRED: { CollectParameters(&m_nIp, 2); - CPlayerInfo* pPlayer = &CWorld::Players[GET_INTEGER_PARAM(0)]; - pPlayer->m_bInfiniteSprint = (GET_INTEGER_PARAM(1) != 0); + CPlayerInfo* pPlayer = &CWorld::Players[ScriptParams[0]]; + pPlayer->m_bInfiniteSprint = (ScriptParams[1] != 0); return 0; } case COMMAND_SET_PLAYER_FAST_RELOAD: { CollectParameters(&m_nIp, 2); - CPlayerInfo* pPlayer = &CWorld::Players[GET_INTEGER_PARAM(0)]; - pPlayer->m_bFastReload = (GET_INTEGER_PARAM(1) != 0); + CPlayerInfo* pPlayer = &CWorld::Players[ScriptParams[0]]; + pPlayer->m_bFastReload = (ScriptParams[1] != 0); return 0; } case COMMAND_SET_CHAR_BLEEDING: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->bPedIsBleeding = (GET_INTEGER_PARAM(1) != 0); + pPed->bPedIsBleeding = (ScriptParams[1] != 0); return 0; } /* case COMMAND_SET_CAR_FUNNY_SUSPENSION: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); // no action return 0; - */ + } case COMMAND_SET_CAR_BIG_WHEELS: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); script_assert(pVehicle->m_vehType == VEHICLE_TYPE_CAR); CAutomobile* pCar = (CAutomobile*)pVehicle; - pCar->bBigWheels = (GET_INTEGER_PARAM(1) != 0); + pCar->bBigWheels = (ScriptParams[1] != 0); return 0; } + */ case COMMAND_SET_FREE_RESPRAYS: CollectParameters(&m_nIp, 1); - CGarages::SetFreeResprays(GET_INTEGER_PARAM(0) != 0); + CGarages::SetFreeResprays(ScriptParams[0] != 0); return 0; case COMMAND_SET_PLAYER_VISIBLE: { CollectParameters(&m_nIp, 2); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); - pPed->bIsVisible = (GET_INTEGER_PARAM(1) != 0); + pPed->bIsVisible = (ScriptParams[1] != 0); return 0; } case COMMAND_SET_CHAR_VISIBLE: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->bIsVisible = (GET_INTEGER_PARAM(1) != 0); + pPed->bIsVisible = (ScriptParams[1] != 0); return 0; } + /* case COMMAND_SET_CAR_VISIBLE: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - pVehicle->bIsVisible = (GET_INTEGER_PARAM(1) != 0); + pVehicle->bIsVisible = (ScriptParams[1] != 0); return 0; } + */ case COMMAND_IS_AREA_OCCUPIED: { CollectParameters(&m_nIp, 11); - float infX = GET_FLOAT_PARAM(0); - float infY = GET_FLOAT_PARAM(1); - float infZ = GET_FLOAT_PARAM(2); - float supX = GET_FLOAT_PARAM(3); - float supY = GET_FLOAT_PARAM(4); - float supZ = GET_FLOAT_PARAM(5); + float infX = *(float*)&ScriptParams[0]; + float infY = *(float*)&ScriptParams[1]; + float infZ = *(float*)&ScriptParams[2]; + float supX = *(float*)&ScriptParams[3]; + float supY = *(float*)&ScriptParams[4]; + float supZ = *(float*)&ScriptParams[5]; if (infX > supX) { - infX = GET_FLOAT_PARAM(3); - supX = GET_FLOAT_PARAM(0); + infX = *(float*)&ScriptParams[3]; + supX = *(float*)&ScriptParams[0]; } if (infY > supY) { - infY = GET_FLOAT_PARAM(4); - supY = GET_FLOAT_PARAM(1); + infY = *(float*)&ScriptParams[4]; + supY = *(float*)&ScriptParams[1]; } if (infZ > supZ) { - infZ = GET_FLOAT_PARAM(5); - supZ = GET_FLOAT_PARAM(2); + infZ = *(float*)&ScriptParams[5]; + supZ = *(float*)&ScriptParams[2]; } int16 total; CWorld::FindObjectsIntersectingCube(CVector(infX, infY, infZ), CVector(supX, supY, supZ), &total, 2, nil, - !!GET_INTEGER_PARAM(6), !!GET_INTEGER_PARAM(7), !!GET_INTEGER_PARAM(8), !!GET_INTEGER_PARAM(9), !!GET_INTEGER_PARAM(10)); + !!ScriptParams[6], !!ScriptParams[7], !!ScriptParams[8], !!ScriptParams[9], !!ScriptParams[10]); UpdateCompareFlag(total > 0); return 0; } @@ -366,15 +376,15 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) return 0; case COMMAND_SAVE_PLAYER_FROM_FIRES: CollectParameters(&m_nIp, 1); - gFireManager.ExtinguishPoint(CWorld::Players[GET_INTEGER_PARAM(0)].GetPos(), 3.0f); + gFireManager.ExtinguishPoint(CWorld::Players[ScriptParams[0]].GetPos(), 3.0f); return 0; */ case COMMAND_DISPLAY_TEXT: { CollectParameters(&m_nIp, 2); wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); - CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_fAtX = GET_FLOAT_PARAM(0); - CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_fAtY = GET_FLOAT_PARAM(1); + CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_fAtX = *(float*)&ScriptParams[0]; + CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_fAtY = *(float*)&ScriptParams[1]; uint16 len = CMessages::GetWideStringLength(text); for (uint16 i = 0; i < len; i++) CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_Text[i] = text[i]; @@ -386,47 +396,47 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) case COMMAND_SET_TEXT_SCALE: { CollectParameters(&m_nIp, 2); - CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_fScaleX = GET_FLOAT_PARAM(0); - CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_fScaleY = GET_FLOAT_PARAM(1); + CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_fScaleX = *(float*)&ScriptParams[0]; + CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_fScaleY = *(float*)&ScriptParams[1]; return 0; } case COMMAND_SET_TEXT_COLOUR: { CollectParameters(&m_nIp, 4); CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_sColor = - CRGBA(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3)); + CRGBA(ScriptParams[0], ScriptParams[1], ScriptParams[2], ScriptParams[3]); return 0; } case COMMAND_SET_TEXT_JUSTIFY: { CollectParameters(&m_nIp, 1); - CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_bJustify = (GET_INTEGER_PARAM(0) != 0); + CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_bJustify = (ScriptParams[0] != 0); return 0; } case COMMAND_SET_TEXT_CENTRE: { CollectParameters(&m_nIp, 1); - CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_bCentered = (GET_INTEGER_PARAM(0) != 0); + CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_bCentered = (ScriptParams[0] != 0); return 0; } case COMMAND_SET_TEXT_WRAPX: { CollectParameters(&m_nIp, 1); - CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_fWrapX = GET_FLOAT_PARAM(0); + CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_fWrapX = *(float*)&ScriptParams[0]; return 0; } /* case COMMAND_SET_TEXT_CENTRE_SIZE: { CollectParameters(&m_nIp, 1); - CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_fCenterSize = GET_FLOAT_PARAM(0); + CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_fCenterSize = *(float*)&ScriptParams[0]; return 0; } */ case COMMAND_SET_TEXT_BACKGROUND: { CollectParameters(&m_nIp, 1); - CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_bBackground = (GET_INTEGER_PARAM(0) != 0); + CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_bBackground = (ScriptParams[0] != 0); return 0; } /* @@ -434,56 +444,53 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) { CollectParameters(&m_nIp, 4); CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_sBackgroundColor = - CRGBA(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3)); + CRGBA(ScriptParams[0], ScriptParams[1], ScriptParams[2], ScriptParams[3]); return 0; } case COMMAND_SET_TEXT_BACKGROUND_ONLY_TEXT: { CollectParameters(&m_nIp, 1); - CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_bBackgroundOnly = (GET_INTEGER_PARAM(0) != 0); + CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_bBackgroundOnly = (ScriptParams[0] != 0); return 0; } */ case COMMAND_SET_TEXT_PROPORTIONAL: { CollectParameters(&m_nIp, 1); - CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_bTextProportional = (GET_INTEGER_PARAM(0) != 0); + CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_bTextProportional = (ScriptParams[0] != 0); return 0; } /* case COMMAND_SET_TEXT_FONT: { CollectParameters(&m_nIp, 1); - CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_nFont = GET_INTEGER_PARAM(0); + CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_nFont = ScriptParams[0]; return 0; } - */ case COMMAND_INDUSTRIAL_PASSED: - CollectParameters(&m_nIp, 1); - CStats::IndustrialPassed = GET_INTEGER_PARAM(0); + CStats::IndustrialPassed = true; + DMAudio.PlayRadioAnnouncement(STREAMED_SOUND_ANNOUNCE_COMMERCIAL_OPEN); return 0; case COMMAND_COMMERCIAL_PASSED: - CollectParameters(&m_nIp, 1); - CStats::CommercialPassed = GET_INTEGER_PARAM(0); + CStats::CommercialPassed = true; + DMAudio.PlayRadioAnnouncement(STREAMED_SOUND_ANNOUNCE_SUBURBAN_OPEN); return 0; case COMMAND_SUBURBAN_PASSED: - CollectParameters(&m_nIp, 1); - CStats::SuburbanPassed = GET_INTEGER_PARAM(0); + CStats::SuburbanPassed = true; return 0; + */ case COMMAND_ROTATE_OBJECT: { CollectParameters(&m_nIp, 4); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); - float fx = pObject->GetForward().x; - float fy = pObject->GetForward().y; float heading = LimitAngleOnCircle( RADTODEG(Atan2(-pObject->GetForward().x, pObject->GetForward().y))); - float headingTarget = GET_FLOAT_PARAM(1); + float headingTarget = *(float*)&ScriptParams[1]; #ifdef FIX_BUGS - float rotateBy = GET_FLOAT_PARAM(2) * CTimer::GetTimeStepFix(); + float rotateBy = *(float*)&ScriptParams[2] * CTimer::GetTimeStepFix(); #else - float rotateBy = GET_FLOAT_PARAM(2); + float rotateBy = *(float*)&ScriptParams[2]; #endif if (headingTarget == heading) { // using direct comparasion here is fine UpdateCompareFlag(true); @@ -497,7 +504,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) else newHeading = rotateBy < angleCounterclockwise ? heading - rotateBy : headingTarget; bool obstacleInPath = false; - if (GET_INTEGER_PARAM(3)) { + if (ScriptParams[3]) { CVector pos = pObject->GetPosition(); tmp_matrix.SetRotateZ(DEGTORAD(newHeading)); tmp_matrix.GetPosition() += pos; @@ -529,11 +536,11 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) case COMMAND_SLIDE_OBJECT: { CollectParameters(&m_nIp, 8); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); CVector pos = pObject->GetPosition(); - CVector posTarget = GET_VECTOR_PARAM(1); - CVector slideBy = GET_VECTOR_PARAM(4); + CVector posTarget = *(CVector*)&ScriptParams[1]; + CVector slideBy = *(CVector*)&ScriptParams[4]; #ifdef FIX_BUGS // the check is a hack for original script, where some objects are moved // via SLIDE_OBJECT instead of SET_OBJECT_POSITION @@ -561,7 +568,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) else newPosition.z = posDiff.z < slideBy.z ? posTarget.z : pos.z - slideBy.z; bool obstacleInPath = false; - if (GET_INTEGER_PARAM(7)) { + if (ScriptParams[7]) { tmp_matrix = pObject->GetMatrix(); tmp_matrix.GetPosition() = newPosition; CColModel* pColModel = pObject->GetColModel(); @@ -590,7 +597,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) case COMMAND_REMOVE_CHAR_ELEGANTLY: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); if (pPed && pPed->CharCreatedBy == MISSION_CHAR){ CWorld::RemoveReferencesToDeletedObject(pPed); if (pPed->bInVehicle && pPed->m_pMyVehicle) @@ -606,15 +613,15 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) } } if (m_bIsMissionScript) - CTheScripts::MissionCleanUp.RemoveEntityFromList(GET_INTEGER_PARAM(0), CLEANUP_CHAR); + CTheScripts::MissionCleanUp.RemoveEntityFromList(ScriptParams[0], CLEANUP_CHAR); return 0; } case COMMAND_SET_CHAR_STAY_IN_SAME_PLACE: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->bKindaStayInSamePlace = (GET_INTEGER_PARAM(1) != 0); + pPed->bKindaStayInSamePlace = (ScriptParams[1] != 0); return 0; } /* @@ -625,7 +632,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) case COMMAND_UNDRESS_CHAR: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); char name[KEY_LENGTH_IN_SCRIPT]; CTheScripts::ReadTextLabelFromScript(&m_nIp, name); @@ -638,7 +645,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) case COMMAND_DRESS_CHAR: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); pPed->Dress(); return 0; @@ -648,39 +655,37 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) CollectParameters(&m_nIp, 1); CTimer::Suspend(); CStreaming::DeleteAllRwObjects(); - CRecordDataForChase::StartChaseScene(GET_FLOAT_PARAM(0)); + CRecordDataForChase::StartChaseScene(*(float*)&ScriptParams[0]); CTimer::Resume(); return 0; case COMMAND_STOP_CHASE_SCENE: CRecordDataForChase::CleanUpChaseScene(); return 0; - */ case COMMAND_IS_EXPLOSION_IN_AREA: { CollectParameters(&m_nIp, 7); - float infX = GET_FLOAT_PARAM(1); - float infY = GET_FLOAT_PARAM(2); - float infZ = GET_FLOAT_PARAM(3); - float supX = GET_FLOAT_PARAM(4); - float supY = GET_FLOAT_PARAM(5); - float supZ = GET_FLOAT_PARAM(6); + float infX = *(float*)&ScriptParams[1]; + float infY = *(float*)&ScriptParams[2]; + float infZ = *(float*)&ScriptParams[3]; + float supX = *(float*)&ScriptParams[4]; + float supY = *(float*)&ScriptParams[5]; + float supZ = *(float*)&ScriptParams[6]; if (infX > supX) { - infX = GET_FLOAT_PARAM(4); - supX = GET_FLOAT_PARAM(1); + infX = *(float*)&ScriptParams[4]; + supX = *(float*)&ScriptParams[1]; } if (infY > supY) { - infY = GET_FLOAT_PARAM(5); - supY = GET_FLOAT_PARAM(2); + infY = *(float*)&ScriptParams[5]; + supY = *(float*)&ScriptParams[2]; } if (infZ > supZ) { - infZ = GET_FLOAT_PARAM(6); - supZ = GET_FLOAT_PARAM(3); + infZ = *(float*)&ScriptParams[6]; + supZ = *(float*)&ScriptParams[3]; } - UpdateCompareFlag(CExplosion::TestForExplosionInArea((eExplosionType)GET_INTEGER_PARAM(0), + UpdateCompareFlag(CExplosion::TestForExplosionInArea((eExplosionType)ScriptParams[0], infX, supX, infY, supY, infZ, supZ)); return 0; } - /* case COMMAND_IS_EXPLOSION_IN_ZONE: { CollectParameters(&m_nIp, 1); @@ -690,7 +695,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) if (zone_id != -1) m_nIp += KEY_LENGTH_IN_SCRIPT; CZone* pZone = CTheZones::GetNavigationZone(zone_id); - UpdateCompareFlag(CExplosion::TestForExplosionInArea((eExplosionType)GET_INTEGER_PARAM(0), + UpdateCompareFlag(CExplosion::TestForExplosionInArea((eExplosionType)ScriptParams[0], pZone->minx, pZone->maxx, pZone->miny, pZone->maxy, pZone->minz, pZone->maxz)); return 0; } @@ -703,17 +708,17 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) case COMMAND_FIND_DROP_OFF_PLANE_COORDINATES: { CVector pos = CPlane::FindDropOffCesnaCoordinates(); - SET_VECTOR_PARAM(0, pos); + *(CVector*)&ScriptParams[0] = pos; StoreParameters(&m_nIp, 3); return 0; } case COMMAND_CREATE_FLOATING_PACKAGE: { CollectParameters(&m_nIp, 3); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y) + PICKUP_PLACEMENT_OFFSET; - SET_INTEGER_PARAM(0, CPickups::GenerateNewOne(pos, MI_FLOATPACKAGE1, PICKUP_FLOATINGPACKAGE, 0)); + ScriptParams[0] = CPickups::GenerateNewOne(pos, MI_FLOATPACKAGE1, PICKUP_FLOATINGPACKAGE, 0); StoreParameters(&m_nIp, 1); return 0; } @@ -721,58 +726,58 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) case COMMAND_PLACE_OBJECT_RELATIVE_TO_CAR: { CollectParameters(&m_nIp, 5); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[1]); script_assert(pVehicle); - CVector offset = GET_VECTOR_PARAM(2); + CVector offset = *(CVector*)&ScriptParams[2]; CPhysical::PlacePhysicalRelativeToOtherPhysical(pVehicle, pObject, offset); return 0; } case COMMAND_MAKE_OBJECT_TARGETTABLE: { CollectParameters(&m_nIp, 1); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); CPlayerPed* pPlayerPed = CWorld::Players[CWorld::PlayerInFocus].m_pPed; script_assert(pPlayerPed); - pPlayerPed->MakeObjectTargettable(GET_INTEGER_PARAM(0)); + pPlayerPed->MakeObjectTargettable(ScriptParams[0]); return 0; } case COMMAND_ADD_ARMOUR_TO_PLAYER: { CollectParameters(&m_nIp, 2); - CPlayerPed* pPlayerPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPlayerPed* pPlayerPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPlayerPed); - pPlayerPed->m_fArmour = clamp(pPlayerPed->m_fArmour + GET_INTEGER_PARAM(1), 0.0f, CWorld::Players[GET_INTEGER_PARAM(0)].m_nMaxArmour); + pPlayerPed->m_fArmour = clamp(pPlayerPed->m_fArmour + ScriptParams[1], 0.0f, CWorld::Players[ScriptParams[0]].m_nMaxArmour); return 0; } case COMMAND_ADD_ARMOUR_TO_CHAR: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->m_fArmour = clamp(pPed->m_fArmour + GET_INTEGER_PARAM(1), 0.0f, 100.0f); + pPed->m_fArmour = clamp(pPed->m_fArmour + ScriptParams[1], 0.0f, 100.0f); return 0; } case COMMAND_OPEN_GARAGE: { CollectParameters(&m_nIp, 1); - CGarages::OpenGarage(GET_INTEGER_PARAM(0)); + CGarages::OpenGarage(ScriptParams[0]); return 0; } case COMMAND_CLOSE_GARAGE: { CollectParameters(&m_nIp, 1); - CGarages::CloseGarage(GET_INTEGER_PARAM(0)); + CGarages::CloseGarage(ScriptParams[0]); return 0; } case COMMAND_WARP_CHAR_FROM_CAR_TO_COORD: { CollectParameters(&m_nIp, 4); - CPed *pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed *pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CVector pos = GET_VECTOR_PARAM(1); + CVector pos = *(CVector*)&ScriptParams[1]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); if (pPed->bInVehicle){ @@ -843,11 +848,11 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) case COMMAND_SET_VISIBILITY_OF_CLOSEST_OBJECT_OF_TYPE: { CollectParameters(&m_nIp, 6); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); - float range = GET_FLOAT_PARAM(3); - int mi = GET_INTEGER_PARAM(4) < 0 ? CTheScripts::UsedObjectArray[-GET_INTEGER_PARAM(4)].index : GET_INTEGER_PARAM(4); + float range = *(float*)&ScriptParams[3]; + int mi = ScriptParams[4] < 0 ? CTheScripts::UsedObjectArray[-ScriptParams[4]].index : ScriptParams[4]; int16 total; CEntity* apEntities[16]; CWorld::FindObjectsOfTypeInRange(mi, pos, range, true, &total, 16, apEntities, true, false, false, true, true); @@ -865,25 +870,27 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) } } if (pClosestEntity) { - pClosestEntity->bIsVisible = (GET_INTEGER_PARAM(5) != 0); - CTheScripts::AddToInvisibilitySwapArray(pClosestEntity, GET_INTEGER_PARAM(5) != 0); + pClosestEntity->bIsVisible = (ScriptParams[5] != 0); + CTheScripts::AddToInvisibilitySwapArray(pClosestEntity, ScriptParams[5] != 0); } return 0; } + /* case COMMAND_HAS_CHAR_SPOTTED_CHAR: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CPed* pTarget = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); + CPed* pTarget = CPools::GetPedPool()->GetAt(ScriptParams[1]); script_assert(pTarget); UpdateCompareFlag(pPed->OurPedCanSeeThisOne(pTarget)); return 0; } + */ case COMMAND_SET_CHAR_OBJ_HAIL_TAXI: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_HAIL_TAXI); @@ -892,113 +899,110 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) case COMMAND_HAS_OBJECT_BEEN_DAMAGED: { CollectParameters(&m_nIp, 1); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); UpdateCompareFlag(pObject->bRenderDamaged || !pObject->bIsVisible); return 0; } + /* case COMMAND_START_KILL_FRENZY_HEADSHOT: { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 8); - CDarkel::StartFrenzy((eWeaponType)GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), - GET_INTEGER_PARAM(3), text, GET_INTEGER_PARAM(4), GET_INTEGER_PARAM(5), - GET_INTEGER_PARAM(6), GET_INTEGER_PARAM(7) != 0, true); + CDarkel::StartFrenzy((eWeaponType)ScriptParams[0], ScriptParams[1], ScriptParams[2], + ScriptParams[3], text, ScriptParams[4], ScriptParams[5], + ScriptParams[6], ScriptParams[7] != 0, true); return 0; } case COMMAND_ACTIVATE_MILITARY_CRANE: { CollectParameters(&m_nIp, 10); - float infX = GET_FLOAT_PARAM(2); - float infY = GET_FLOAT_PARAM(3); - float supX = GET_FLOAT_PARAM(4); - float supY = GET_FLOAT_PARAM(5); + float infX = *(float*)&ScriptParams[2]; + float infY = *(float*)&ScriptParams[3]; + float supX = *(float*)&ScriptParams[4]; + float supY = *(float*)&ScriptParams[5]; if (infX > supX) { - infX = GET_FLOAT_PARAM(4); - supX = GET_FLOAT_PARAM(2); + infX = *(float*)&ScriptParams[4]; + supX = *(float*)&ScriptParams[2]; } if (infY > supY) { - infY = GET_FLOAT_PARAM(5); - supY = GET_FLOAT_PARAM(3); + infY = *(float*)&ScriptParams[5]; + supY = *(float*)&ScriptParams[3]; } CCranes::ActivateCrane(infX, supX, infY, supY, - GET_FLOAT_PARAM(6), GET_FLOAT_PARAM(7), GET_FLOAT_PARAM(8), - DEGTORAD(GET_FLOAT_PARAM(9)), false, true, - GET_FLOAT_PARAM(0), GET_FLOAT_PARAM(1)); + *(float*)&ScriptParams[6], *(float*)&ScriptParams[7], *(float*)&ScriptParams[8], + DEGTORAD(*(float*)&ScriptParams[9]), false, true, + *(float*)&ScriptParams[0], *(float*)&ScriptParams[1]); return 0; } + */ case COMMAND_WARP_PLAYER_INTO_CAR: { CollectParameters(&m_nIp, 2); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[1]); script_assert(pVehicle); pPed->SetObjective(OBJECTIVE_ENTER_CAR_AS_DRIVER, pVehicle); pPed->WarpPedIntoCar(pVehicle); - pPed->RestorePreviousObjective(); return 0; } case COMMAND_WARP_CHAR_INTO_CAR: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[1]); script_assert(pVehicle); pPed->SetObjective(OBJECTIVE_ENTER_CAR_AS_DRIVER, pVehicle); pPed->WarpPedIntoCar(pVehicle); - pPed->RestorePreviousObjective(); return 0; } - case COMMAND_SWITCH_CAR_RADIO: - CollectParameters(&m_nIp, 1); - DMAudio.ChangeMusicMode(GET_INTEGER_PARAM(0)); - return 0; + //case COMMAND_SWITCH_CAR_RADIO: //case COMMAND_SET_AUDIO_STREAM: case COMMAND_PRINT_WITH_2_NUMBERS_BIG: { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 4); - CMessages::AddBigMessageWithNumber(text, GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3) - 1, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), -1, -1, -1, -1); + CMessages::AddBigMessageWithNumber(text, ScriptParams[2], ScriptParams[3] - 1, ScriptParams[0], ScriptParams[1], -1, -1, -1, -1); return 0; } + /* case COMMAND_PRINT_WITH_3_NUMBERS_BIG: { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 5); - CMessages::AddBigMessageWithNumber(text, GET_INTEGER_PARAM(3), GET_INTEGER_PARAM(4) - 1, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), -1, -1, -1); + CMessages::AddBigMessageWithNumber(text, ScriptParams[3], ScriptParams[4] - 1, ScriptParams[0], ScriptParams[1], ScriptParams[2], -1, -1, -1); return 0; } - /* case COMMAND_PRINT_WITH_4_NUMBERS_BIG: { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 6); - CMessages::AddBigMessageWithNumber(text, GET_INTEGER_PARAM(4), GET_INTEGER_PARAM(5) - 1, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3), -1, -1); + CMessages::AddBigMessageWithNumber(text, ScriptParams[4], ScriptParams[5] - 1, ScriptParams[0], ScriptParams[1], ScriptParams[2], ScriptParams[3], -1, -1); return 0; } case COMMAND_PRINT_WITH_5_NUMBERS_BIG: { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 7); - CMessages::AddBigMessageWithNumber(text, GET_INTEGER_PARAM(5), GET_INTEGER_PARAM(6) - 1, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3), GET_INTEGER_PARAM(4), -1); + CMessages::AddBigMessageWithNumber(text, ScriptParams[5], ScriptParams[6] - 1, ScriptParams[0], ScriptParams[1], ScriptParams[2], ScriptParams[3], ScriptParams[4], -1); return 0; } case COMMAND_PRINT_WITH_6_NUMBERS_BIG: { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 8); - CMessages::AddBigMessageWithNumber(text, GET_INTEGER_PARAM(6), GET_INTEGER_PARAM(7) - 1, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3), GET_INTEGER_PARAM(4), GET_INTEGER_PARAM(5)); + CMessages::AddBigMessageWithNumber(text, ScriptParams[6], ScriptParams[7] - 1, ScriptParams[0], ScriptParams[1], ScriptParams[2], ScriptParams[3], ScriptParams[4], ScriptParams[5]); return 0; } */ case COMMAND_SET_CHAR_WAIT_STATE: { CollectParameters(&m_nIp, 3); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->SetWaitState((eWaitState)GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2) >= 0 ? &GET_INTEGER_PARAM(2) : nil); + pPed->SetWaitState((eWaitState)ScriptParams[1], ScriptParams[2] >= 0 ? &ScriptParams[2] : nil); return 0; } case COMMAND_SET_CAMERA_BEHIND_PLAYER: @@ -1007,14 +1011,14 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) /* case COMMAND_SET_MOTION_BLUR: CollectParameters(&m_nIp, 1); - TheCamera.SetMotionBlur(0, 0, 0, 0, GET_INTEGER_PARAM(0)); + TheCamera.SetMotionBlur(0, 0, 0, 0, ScriptParams[0]); return 0; case COMMAND_PRINT_STRING_IN_STRING: { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); wchar* string = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 2); - CMessages::AddMessageWithString(text, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), string); + CMessages::AddMessageWithString(text, ScriptParams[0], ScriptParams[1], string); return 0; } */ @@ -1041,7 +1045,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) ped->bRespondsToThreats = false; ped->bAllowMedicsToReviveMe = false; ped->bIsPlayerFriend = false; - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); pos.z += 1.0f; @@ -1053,16 +1057,16 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) CWorld::Add(ped); ped->m_nZoneLevel = CTheZones::GetLevelFromPosition(&pos); CPopulation::ms_nTotalMissionPeds++; - SET_INTEGER_PARAM(0, CPools::GetPedPool()->GetIndex(ped)); + ScriptParams[0] = CPools::GetPedPool()->GetIndex(ped); StoreParameters(&m_nIp, 1); if (m_bIsMissionScript) - CTheScripts::MissionCleanUp.AddEntityToList(GET_INTEGER_PARAM(0), CLEANUP_CHAR); + CTheScripts::MissionCleanUp.AddEntityToList(ScriptParams[0], CLEANUP_CHAR); return 0; } case COMMAND_SET_CHAR_OBJ_STEAL_ANY_CAR: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_STEAL_ANY_CAR); @@ -1074,7 +1078,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) CollectParameters(&m_nIp, 1); wchar* text1 = CTheScripts::GetTextByKeyFromScript(&m_nIp); wchar* text2 = CTheScripts::GetTextByKeyFromScript(&m_nIp); - gPhoneInfo.SetPhoneMessage_Repeatedly(GET_INTEGER_PARAM(0), text1, text2, nil, nil, nil, nil); + gPhoneInfo.SetPhoneMessage_Repeatedly(ScriptParams[0], text1, text2, nil, nil, nil, nil); return 0; } case COMMAND_SET_2_PHONE_MESSAGES: @@ -1082,7 +1086,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) CollectParameters(&m_nIp, 1); wchar* text1 = CTheScripts::GetTextByKeyFromScript(&m_nIp); wchar* text2 = CTheScripts::GetTextByKeyFromScript(&m_nIp); - gPhoneInfo.SetPhoneMessage_JustOnce(GET_INTEGER_PARAM(0), text1, text2, nil, nil, nil, nil); + gPhoneInfo.SetPhoneMessage_JustOnce(ScriptParams[0], text1, text2, nil, nil, nil, nil); return 0; } case COMMAND_SET_3_REPEATED_PHONE_MESSAGES: @@ -1091,7 +1095,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) wchar* text1 = CTheScripts::GetTextByKeyFromScript(&m_nIp); wchar* text2 = CTheScripts::GetTextByKeyFromScript(&m_nIp); wchar* text3 = CTheScripts::GetTextByKeyFromScript(&m_nIp); - gPhoneInfo.SetPhoneMessage_Repeatedly(GET_INTEGER_PARAM(0), text1, text2, text3, nil, nil, nil); + gPhoneInfo.SetPhoneMessage_Repeatedly(ScriptParams[0], text1, text2, text3, nil, nil, nil); return 0; } case COMMAND_SET_3_PHONE_MESSAGES: @@ -1100,7 +1104,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) wchar* text1 = CTheScripts::GetTextByKeyFromScript(&m_nIp); wchar* text2 = CTheScripts::GetTextByKeyFromScript(&m_nIp); wchar* text3 = CTheScripts::GetTextByKeyFromScript(&m_nIp); - gPhoneInfo.SetPhoneMessage_JustOnce(GET_INTEGER_PARAM(0), text1, text2, text3, nil, nil, nil); + gPhoneInfo.SetPhoneMessage_JustOnce(ScriptParams[0], text1, text2, text3, nil, nil, nil); return 0; } case COMMAND_SET_4_REPEATED_PHONE_MESSAGES: @@ -1110,7 +1114,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) wchar* text2 = CTheScripts::GetTextByKeyFromScript(&m_nIp); wchar* text3 = CTheScripts::GetTextByKeyFromScript(&m_nIp); wchar* text4 = CTheScripts::GetTextByKeyFromScript(&m_nIp); - gPhoneInfo.SetPhoneMessage_Repeatedly(GET_INTEGER_PARAM(0), text1, text2, text3, text4, nil, nil); + gPhoneInfo.SetPhoneMessage_Repeatedly(ScriptParams[0], text1, text2, text3, text4, nil, nil); return 0; } case COMMAND_SET_4_PHONE_MESSAGES: @@ -1120,30 +1124,30 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) wchar* text2 = CTheScripts::GetTextByKeyFromScript(&m_nIp); wchar* text3 = CTheScripts::GetTextByKeyFromScript(&m_nIp); wchar* text4 = CTheScripts::GetTextByKeyFromScript(&m_nIp); - gPhoneInfo.SetPhoneMessage_JustOnce(GET_INTEGER_PARAM(0), text1, text2, text3, text4, nil, nil); + gPhoneInfo.SetPhoneMessage_JustOnce(ScriptParams[0], text1, text2, text3, text4, nil, nil); return 0; } */ case COMMAND_IS_SNIPER_BULLET_IN_AREA: { CollectParameters(&m_nIp, 6); - float infX = GET_FLOAT_PARAM(0); - float infY = GET_FLOAT_PARAM(1); - float infZ = GET_FLOAT_PARAM(2); - float supX = GET_FLOAT_PARAM(3); - float supY = GET_FLOAT_PARAM(4); - float supZ = GET_FLOAT_PARAM(5); + float infX = *(float*)&ScriptParams[0]; + float infY = *(float*)&ScriptParams[1]; + float infZ = *(float*)&ScriptParams[2]; + float supX = *(float*)&ScriptParams[3]; + float supY = *(float*)&ScriptParams[4]; + float supZ = *(float*)&ScriptParams[5]; if (infX > supX) { - infX = GET_FLOAT_PARAM(3); - supX = GET_FLOAT_PARAM(0); + infX = *(float*)&ScriptParams[3]; + supX = *(float*)&ScriptParams[0]; } if (infY > supY) { - infY = GET_FLOAT_PARAM(4); - supY = GET_FLOAT_PARAM(1); + infY = *(float*)&ScriptParams[4]; + supY = *(float*)&ScriptParams[1]; } if (infZ > supZ) { - infZ = GET_FLOAT_PARAM(5); - supZ = GET_FLOAT_PARAM(2); + infZ = *(float*)&ScriptParams[5]; + supZ = *(float*)&ScriptParams[2]; } UpdateCompareFlag(CBulletInfo::TestForSniperBullet(infX, supX, infY, supY, infZ, supZ)); return 0; @@ -1152,33 +1156,33 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) case COMMAND_GIVE_PLAYER_DETONATOR: CGarages::GivePlayerDetonator(); return 0; + */ #ifdef GTA_SCRIPT_COLLECTIVE case COMMAND_SET_COLL_OBJ_STEAL_ANY_CAR: CollectParameters(&m_nIp, 1); - CTheScripts::SetObjectiveForAllPedsInCollective(GET_INTEGER_PARAM(0), OBJECTIVE_STEAL_ANY_CAR); + CTheScripts::SetObjectiveForAllPedsInCollective(ScriptParams[0], OBJECTIVE_STEAL_ANY_CAR); return 0; #endif - */ case COMMAND_SET_OBJECT_VELOCITY: { CollectParameters(&m_nIp, 4); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); - pObject->SetMoveSpeed(GET_VECTOR_PARAM(1) * METERS_PER_SECOND_TO_GAME_SPEED); + pObject->SetMoveSpeed(*(CVector*)&ScriptParams[1] * METERS_PER_SECOND_TO_GAME_SPEED); return 0; } case COMMAND_SET_OBJECT_COLLISION: { CollectParameters(&m_nIp, 2); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); - pObject->bUsesCollision = (GET_INTEGER_PARAM(1) != 0); + pObject->bUsesCollision = (ScriptParams[1] != 0); return 0; } case COMMAND_IS_ICECREAM_JINGLE_ON: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); // Adding this check to correspond to command name. // All original game scripts always assume that the vehicle is actually Mr. Whoopee, @@ -1203,7 +1207,7 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) wchar* source = CTheScripts::GetTextByKeyFromScript(&m_nIp); wchar* pstr = CTheScripts::GetTextByKeyFromScript(&m_nIp); CollectParameters(&m_nIp, 2); - CMessages::AddMessageJumpQWithString(source, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), pstr); + CMessages::AddMessageJumpQWithString(source, ScriptParams[0], ScriptParams[1], pstr); return 0; } //case COMMAND_PRINT_STRING_IN_STRING_SOON: @@ -1216,7 +1220,7 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) wchar* text3 = CTheScripts::GetTextByKeyFromScript(&m_nIp); wchar* text4 = CTheScripts::GetTextByKeyFromScript(&m_nIp); wchar* text5 = CTheScripts::GetTextByKeyFromScript(&m_nIp); - gPhoneInfo.SetPhoneMessage_Repeatedly(GET_INTEGER_PARAM(0), text1, text2, text3, text4, text5, nil); + gPhoneInfo.SetPhoneMessage_Repeatedly(ScriptParams[0], text1, text2, text3, text4, text5, nil); return 0; } case COMMAND_SET_5_PHONE_MESSAGES: @@ -1227,7 +1231,7 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) wchar* text3 = CTheScripts::GetTextByKeyFromScript(&m_nIp); wchar* text4 = CTheScripts::GetTextByKeyFromScript(&m_nIp); wchar* text5 = CTheScripts::GetTextByKeyFromScript(&m_nIp); - gPhoneInfo.SetPhoneMessage_JustOnce(GET_INTEGER_PARAM(0), text1, text2, text3, text4, text5, nil); + gPhoneInfo.SetPhoneMessage_JustOnce(ScriptParams[0], text1, text2, text3, text4, text5, nil); return 0; } case COMMAND_SET_6_REPEATED_PHONE_MESSAGES: @@ -1239,7 +1243,7 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) wchar* text4 = CTheScripts::GetTextByKeyFromScript(&m_nIp); wchar* text5 = CTheScripts::GetTextByKeyFromScript(&m_nIp); wchar* text6 = CTheScripts::GetTextByKeyFromScript(&m_nIp); - gPhoneInfo.SetPhoneMessage_Repeatedly(GET_INTEGER_PARAM(0), text1, text2, text3, text4, text5, text6); + gPhoneInfo.SetPhoneMessage_Repeatedly(ScriptParams[0], text1, text2, text3, text4, text5, text6); return 0; } case COMMAND_SET_6_PHONE_MESSAGES: @@ -1251,19 +1255,19 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) wchar* text4 = CTheScripts::GetTextByKeyFromScript(&m_nIp); wchar* text5 = CTheScripts::GetTextByKeyFromScript(&m_nIp); wchar* text6 = CTheScripts::GetTextByKeyFromScript(&m_nIp); - gPhoneInfo.SetPhoneMessage_JustOnce(GET_INTEGER_PARAM(0), text1, text2, text3, text4, text5, text6); + gPhoneInfo.SetPhoneMessage_JustOnce(ScriptParams[0], text1, text2, text3, text4, text5, text6); return 0; } */ case COMMAND_IS_POINT_OBSCURED_BY_A_MISSION_ENTITY: { CollectParameters(&m_nIp, 6); - float infX = GET_FLOAT_PARAM(0) - GET_FLOAT_PARAM(3); - float supX = GET_FLOAT_PARAM(0) + GET_FLOAT_PARAM(3); - float infY = GET_FLOAT_PARAM(1) - GET_FLOAT_PARAM(4); - float supY = GET_FLOAT_PARAM(1) + GET_FLOAT_PARAM(4); - float infZ = GET_FLOAT_PARAM(2) - GET_FLOAT_PARAM(5); - float supZ = GET_FLOAT_PARAM(2) + GET_FLOAT_PARAM(5); + float infX = *(float*)&ScriptParams[0] - *(float*)&ScriptParams[3]; + float supX = *(float*)&ScriptParams[0] + *(float*)&ScriptParams[3]; + float infY = *(float*)&ScriptParams[1] - *(float*)&ScriptParams[4]; + float supY = *(float*)&ScriptParams[1] + *(float*)&ScriptParams[4]; + float infZ = *(float*)&ScriptParams[2] - *(float*)&ScriptParams[5]; + float supZ = *(float*)&ScriptParams[2] + *(float*)&ScriptParams[5]; if (infX > supX) { float tmp = infX; infX = supX; @@ -1300,20 +1304,19 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) case COMMAND_ADD_TO_OBJECT_VELOCITY: { CollectParameters(&m_nIp, 4); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); - pObject->AddToMoveSpeed(GET_VECTOR_PARAM(1) * METERS_PER_SECOND_TO_GAME_SPEED); + pObject->AddToMoveSpeed(*(CVector*)&ScriptParams[1] * METERS_PER_SECOND_TO_GAME_SPEED); return 0; } - /* case COMMAND_DRAW_SPRITE: { CollectParameters(&m_nIp, 9); CTheScripts::IntroRectangles[CTheScripts::NumberOfIntroRectanglesThisFrame].m_bIsUsed = true; - CTheScripts::IntroRectangles[CTheScripts::NumberOfIntroRectanglesThisFrame].m_nTextureId = GET_INTEGER_PARAM(0) - 1; + CTheScripts::IntroRectangles[CTheScripts::NumberOfIntroRectanglesThisFrame].m_nTextureId = ScriptParams[0] - 1; CTheScripts::IntroRectangles[CTheScripts::NumberOfIntroRectanglesThisFrame].m_sRect = CRect( - GET_FLOAT_PARAM(1), GET_FLOAT_PARAM(2), GET_FLOAT_PARAM(1) + GET_FLOAT_PARAM(3), GET_FLOAT_PARAM(2) + GET_FLOAT_PARAM(4)); - CTheScripts::IntroRectangles[CTheScripts::NumberOfIntroRectanglesThisFrame].m_sColor = CRGBA(GET_INTEGER_PARAM(5), GET_INTEGER_PARAM(6), GET_INTEGER_PARAM(7), GET_INTEGER_PARAM(8)); + *(float*)&ScriptParams[1], *(float*)&ScriptParams[2], *(float*)&ScriptParams[1] + *(float*)&ScriptParams[3], *(float*)&ScriptParams[2] + *(float*)&ScriptParams[4]); + CTheScripts::IntroRectangles[CTheScripts::NumberOfIntroRectanglesThisFrame].m_sColor = CRGBA(ScriptParams[5], ScriptParams[6], ScriptParams[7], ScriptParams[8]); CTheScripts::NumberOfIntroRectanglesThisFrame++; return 0; } @@ -1323,8 +1326,8 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) CTheScripts::IntroRectangles[CTheScripts::NumberOfIntroRectanglesThisFrame].m_bIsUsed = true; CTheScripts::IntroRectangles[CTheScripts::NumberOfIntroRectanglesThisFrame].m_nTextureId = -1; CTheScripts::IntroRectangles[CTheScripts::NumberOfIntroRectanglesThisFrame].m_sRect = CRect( - GET_FLOAT_PARAM(0), GET_FLOAT_PARAM(1), GET_FLOAT_PARAM(0) + GET_FLOAT_PARAM(2), GET_FLOAT_PARAM(1) + GET_FLOAT_PARAM(3)); - CTheScripts::IntroRectangles[CTheScripts::NumberOfIntroRectanglesThisFrame].m_sColor = CRGBA(GET_INTEGER_PARAM(4), GET_INTEGER_PARAM(5), GET_INTEGER_PARAM(6), GET_INTEGER_PARAM(7)); + *(float*)&ScriptParams[0], *(float*)&ScriptParams[1], *(float*)&ScriptParams[0] + *(float*)&ScriptParams[2], *(float*)&ScriptParams[1] + *(float*)&ScriptParams[3]); + CTheScripts::IntroRectangles[CTheScripts::NumberOfIntroRectanglesThisFrame].m_sColor = CRGBA(ScriptParams[4], ScriptParams[5], ScriptParams[6], ScriptParams[7]); CTheScripts::NumberOfIntroRectanglesThisFrame++; return 0; } @@ -1338,7 +1341,7 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) int slot = CTxdStore::FindTxdSlot("script"); CTxdStore::PushCurrentTxd(); CTxdStore::SetCurrentTxd(slot); - CTheScripts::ScriptSprites[GET_INTEGER_PARAM(0) - 1].SetTexture(str); + CTheScripts::ScriptSprites[ScriptParams[0] - 1].SetTexture(str); CTxdStore::PopCurrentTxd(); return 0; } @@ -1360,13 +1363,12 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) CTheScripts::RemoveScriptTextureDictionary(); return 0; } - */ case COMMAND_SET_OBJECT_DYNAMIC: { CollectParameters(&m_nIp, 2); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); - if (GET_INTEGER_PARAM(1)) { + if (ScriptParams[1]) { if (pObject->bIsStatic) { pObject->SetIsStatic(false); pObject->AddToMovingList(); @@ -1384,11 +1386,11 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) case COMMAND_SET_CHAR_ANIM_SPEED: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); CAnimBlendAssociation* pAssoc = RpAnimBlendClumpGetFirstAssociation(pPed->GetClump()); if (pAssoc) - pAssoc->speed = GET_FLOAT_PARAM(1); + pAssoc->speed = *(float*)&ScriptParams[1]; return 0; } */ @@ -1396,127 +1398,126 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) { CollectParameters(&m_nIp, 1); DMAudio.ChangeMusicMode(MUSICMODE_FRONTEND); - DMAudio.PlayFrontEndTrack(GET_INTEGER_PARAM(0) + STREAMED_SOUND_MISSION_COMPLETED - 1, 0); - //DMAudio.SaveAnnouncementsWhenMissionPassedPlayed(); // TODO! + DMAudio.PlayFrontEndTrack(ScriptParams[0] + STREAMED_SOUND_MISSION_COMPLETED - 1, 0); return 0; } case COMMAND_CLEAR_AREA: { CollectParameters(&m_nIp, 5); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); - CWorld::ClearExcitingStuffFromArea(pos, GET_FLOAT_PARAM(3), GET_INTEGER_PARAM(4)); + CWorld::ClearExcitingStuffFromArea(pos, *(float*)&ScriptParams[3], ScriptParams[4]); return 0; } case COMMAND_FREEZE_ONSCREEN_TIMER: CollectParameters(&m_nIp, 1); - CUserDisplay::OnscnTimer.m_bDisabled = GET_INTEGER_PARAM(0) != 0; + CUserDisplay::OnscnTimer.m_bDisabled = ScriptParams[0] != 0; return 0; case COMMAND_SWITCH_CAR_SIREN: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - pVehicle->m_bSirenOrAlarm = GET_INTEGER_PARAM(1) != 0; + pVehicle->m_bSirenOrAlarm = ScriptParams[1] != 0; return 0; } /* case COMMAND_SWITCH_PED_ROADS_ON_ANGLED: { CollectParameters(&m_nIp, 7); - ThePaths.SwitchRoadsInAngledArea(GET_FLOAT_PARAM(0), GET_FLOAT_PARAM(1), GET_FLOAT_PARAM(2), - GET_FLOAT_PARAM(3), GET_FLOAT_PARAM(4), GET_FLOAT_PARAM(5), GET_FLOAT_PARAM(6), 0, 1); + ThePaths.SwitchRoadsInAngledArea(*(float*)&ScriptParams[0], *(float*)&ScriptParams[1], *(float*)&ScriptParams[2], + *(float*)&ScriptParams[3], *(float*)&ScriptParams[4], *(float*)&ScriptParams[5], *(float*)&ScriptParams[6], 0, 1); return 0; } - */ case COMMAND_SWITCH_PED_ROADS_OFF_ANGLED: CollectParameters(&m_nIp, 7); - ThePaths.SwitchRoadsInAngledArea(GET_FLOAT_PARAM(0), GET_FLOAT_PARAM(1), GET_FLOAT_PARAM(2), - GET_FLOAT_PARAM(3), GET_FLOAT_PARAM(4), GET_FLOAT_PARAM(5), GET_FLOAT_PARAM(6), 0, 0); + ThePaths.SwitchRoadsInAngledArea(*(float*)&ScriptParams[0], *(float*)&ScriptParams[1], *(float*)&ScriptParams[2], + *(float*)&ScriptParams[3], *(float*)&ScriptParams[4], *(float*)&ScriptParams[5], *(float*)&ScriptParams[6], 0, 0); return 0; - /* case COMMAND_SWITCH_ROADS_ON_ANGLED: CollectParameters(&m_nIp, 7); - ThePaths.SwitchRoadsInAngledArea(GET_FLOAT_PARAM(0), GET_FLOAT_PARAM(1), GET_FLOAT_PARAM(2), - GET_FLOAT_PARAM(3), GET_FLOAT_PARAM(4), GET_FLOAT_PARAM(5), GET_FLOAT_PARAM(6), 1, 1); + ThePaths.SwitchRoadsInAngledArea(*(float*)&ScriptParams[0], *(float*)&ScriptParams[1], *(float*)&ScriptParams[2], + *(float*)&ScriptParams[3], *(float*)&ScriptParams[4], *(float*)&ScriptParams[5], *(float*)&ScriptParams[6], 1, 1); return 0; case COMMAND_SWITCH_ROADS_OFF_ANGLED: CollectParameters(&m_nIp, 7); - ThePaths.SwitchRoadsInAngledArea(GET_FLOAT_PARAM(0), GET_FLOAT_PARAM(1), GET_FLOAT_PARAM(2), - GET_FLOAT_PARAM(3), GET_FLOAT_PARAM(4), GET_FLOAT_PARAM(5), GET_FLOAT_PARAM(6), 1, 0); + ThePaths.SwitchRoadsInAngledArea(*(float*)&ScriptParams[0], *(float*)&ScriptParams[1], *(float*)&ScriptParams[2], + *(float*)&ScriptParams[3], *(float*)&ScriptParams[4], *(float*)&ScriptParams[5], *(float*)&ScriptParams[6], 1, 0); return 0; - */ + */ case COMMAND_SET_CAR_WATERTIGHT: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); if (pVehicle->IsBike()) { CBike* pBike = (CBike*)pVehicle; - pBike->bWaterTight = GET_INTEGER_PARAM(1) != 0; + pBike->bWaterTight = ScriptParams[1] != 0; } else if (pVehicle->IsCar()) { CAutomobile* pCar = (CAutomobile*)pVehicle; - pCar->bWaterTight = GET_INTEGER_PARAM(1) != 0; + pCar->bWaterTight = ScriptParams[1] != 0; } return 0; } case COMMAND_ADD_MOVING_PARTICLE_EFFECT: { CollectParameters(&m_nIp, 12); - CVector pos = GET_VECTOR_PARAM(1); + CVector pos = *(CVector*)&ScriptParams[1]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); - float size = Max(0.0f, GET_FLOAT_PARAM(7)); - eParticleObjectType type = (eParticleObjectType)GET_INTEGER_PARAM(0); + float size = Max(0.0f, *(float*)&ScriptParams[7]); + eParticleObjectType type = (eParticleObjectType)ScriptParams[0]; RwRGBA color; - if (type == POBJECT_SMOKE_TRAIL){ // 17 in LCS -- assuming enum is the same + if (type == POBJECT_SMOKE_TRAIL){ color.alpha = -1; - color.red = GET_INTEGER_PARAM(8); - color.green = GET_INTEGER_PARAM(9); - color.blue = GET_INTEGER_PARAM(10); + color.red = ScriptParams[8]; + color.green = ScriptParams[9]; + color.blue = ScriptParams[10]; }else{ color.alpha = color.red = color.blue = color.green = 0; } - CVector target = GET_VECTOR_PARAM(4); - CParticleObject::AddObject(type, pos, target, size, GET_INTEGER_PARAM(11), color, 1); + CVector target = *(CVector*)&ScriptParams[4]; + CParticleObject::AddObject(type, pos, target, size, ScriptParams[11], color, 1); return 0; } case COMMAND_SET_CHAR_CANT_BE_DRAGGED_OUT: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->bDontDragMeOutCar = GET_INTEGER_PARAM(1) != 0; + pPed->bDontDragMeOutCar = ScriptParams[1] != 0; return 0; } case COMMAND_TURN_CAR_TO_FACE_COORD: { CollectParameters(&m_nIp, 3); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); const CVector& pos = pVehicle->GetPosition(); - float heading = CGeneral::GetATanOfXY(pos.x - GET_FLOAT_PARAM(1), pos.y - GET_FLOAT_PARAM(2)) + HALFPI; + float heading = CGeneral::GetATanOfXY(pos.x - *(float*)&ScriptParams[1], pos.y - *(float*)&ScriptParams[2]) + HALFPI; if (heading > TWOPI) heading -= TWOPI; pVehicle->SetHeading(heading); return 0; } + /* case COMMAND_IS_CRANE_LIFTING_CAR: { CollectParameters(&m_nIp, 3); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(2)); - UpdateCompareFlag(CCranes::IsThisCarPickedUp(GET_FLOAT_PARAM(0), GET_FLOAT_PARAM(1), pVehicle)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[2]); + UpdateCompareFlag(CCranes::IsThisCarPickedUp(*(float*)&ScriptParams[0], *(float*)&ScriptParams[1], pVehicle)); return 0; } + */ case COMMAND_DRAW_SPHERE: { CollectParameters(&m_nIp, 4); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); - C3dMarkers::PlaceMarkerSet((uintptr)this + m_nIp, MARKERTYPE_CYLINDER, pos, GET_FLOAT_PARAM(3), + C3dMarkers::PlaceMarkerSet((uintptr)this + m_nIp, MARKERTYPE_CYLINDER, pos, *(float*)&ScriptParams[3], SPHERE_MARKER_R, SPHERE_MARKER_G, SPHERE_MARKER_B, SPHERE_MARKER_A, SPHERE_MARKER_PULSE_PERIOD, SPHERE_MARKER_PULSE_FRACTION, 0); return 0; @@ -1524,15 +1525,15 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) case COMMAND_SET_CAR_STATUS: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - pVehicle->SetStatus(GET_INTEGER_PARAM(1)); + pVehicle->SetStatus(ScriptParams[1]); return 0; } case COMMAND_IS_CHAR_MALE: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); UpdateCompareFlag(pPed->m_nPedType != PEDTYPE_CIVFEMALE && pPed->m_nPedType != PEDTYPE_PROSTITUTE); return 0; @@ -1550,11 +1551,11 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) case COMMAND_CHANGE_GARAGE_TYPE_WITH_CAR_MODEL: { CollectParameters(&m_nIp, 3); - CGarages::ChangeGarageType(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2)); + CGarages::ChangeGarageType(ScriptParams[0], ScriptParams[1], ScriptParams[2]); return 0; } case COMMAND_FIND_DRUG_PLANE_COORDINATES: - SET_VECTOR_PARAM(0, CPlane::FindDrugPlaneCoordinates()); + *(CVector*)&ScriptParams[0] = CPlane::FindDrugPlaneCoordinates(); StoreParameters(&m_nIp, 3); return 0; */ @@ -1569,33 +1570,33 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) return 0; case COMMAND_POLICE_RADIO_MESSAGE: CollectParameters(&m_nIp, 3); - DMAudio.PlaySuspectLastSeen(GET_FLOAT_PARAM(0), GET_FLOAT_PARAM(1), GET_FLOAT_PARAM(2)); + DMAudio.PlaySuspectLastSeen(*(float*)&ScriptParams[0], *(float*)&ScriptParams[1], *(float*)&ScriptParams[2]); return 0; case COMMAND_SET_CAR_STRONG: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - pVehicle->bTakeLessDamage = GET_INTEGER_PARAM(1) != 0; + pVehicle->bTakeLessDamage = ScriptParams[1] != 0; return 0; } case COMMAND_REMOVE_ROUTE: CollectParameters(&m_nIp, 1); - CRouteNode::RemoveRoute(GET_INTEGER_PARAM(0)); + CRouteNode::RemoveRoute(ScriptParams[0]); return 0; case COMMAND_SWITCH_RUBBISH: CollectParameters(&m_nIp, 1); - CRubbish::SetVisibility(GET_INTEGER_PARAM(0) != 0); + CRubbish::SetVisibility(ScriptParams[0] != 0); return 0; case COMMAND_REMOVE_PARTICLE_EFFECTS_IN_AREA: { CollectParameters(&m_nIp, 6); - float x1 = GET_FLOAT_PARAM(0); - float y1 = GET_FLOAT_PARAM(1); - float z1 = GET_FLOAT_PARAM(2); - float x2 = GET_FLOAT_PARAM(3); - float y2 = GET_FLOAT_PARAM(4); - float z2 = GET_FLOAT_PARAM(5); + float x1 = *(float*)&ScriptParams[0]; + float y1 = *(float*)&ScriptParams[1]; + float z1 = *(float*)&ScriptParams[2]; + float x2 = *(float*)&ScriptParams[3]; + float y2 = *(float*)&ScriptParams[4]; + float z2 = *(float*)&ScriptParams[5]; CParticleObject* tmp = CParticleObject::pCloseListHead; while (tmp) { CParticleObject* next = tmp->m_pNext; @@ -1614,15 +1615,15 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) } case COMMAND_SWITCH_STREAMING: CollectParameters(&m_nIp, 1); - CStreaming::ms_disableStreaming = GET_INTEGER_PARAM(0) == 0; + CStreaming::ms_disableStreaming = ScriptParams[0] == 0; return 0; case COMMAND_IS_GARAGE_OPEN: CollectParameters(&m_nIp, 1); - UpdateCompareFlag(CGarages::IsGarageOpen(GET_INTEGER_PARAM(0))); + UpdateCompareFlag(CGarages::IsGarageOpen(ScriptParams[0])); return 0; case COMMAND_IS_GARAGE_CLOSED: CollectParameters(&m_nIp, 1); - UpdateCompareFlag(CGarages::IsGarageClosed(GET_INTEGER_PARAM(0))); + UpdateCompareFlag(CGarages::IsGarageClosed(ScriptParams[0])); return 0; /* case COMMAND_START_CATALINA_HELI: @@ -1641,17 +1642,45 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) case COMMAND_SWAP_NEAREST_BUILDING_MODEL: { CollectParameters(&m_nIp, 6); - CTheScripts::SwapNearestBuildingModel(GET_FLOAT_PARAM(0), GET_FLOAT_PARAM(1), GET_FLOAT_PARAM(2), GET_FLOAT_PARAM(3), GET_INTEGER_PARAM(4), GET_INTEGER_PARAM(5)); + CVector pos = *(CVector*)&ScriptParams[0]; + if (pos.z <= MAP_Z_LOW_LIMIT) + pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); + float radius = *(float*)&ScriptParams[3]; + int mi1 = ScriptParams[4] >= 0 ? ScriptParams[4] : CTheScripts::UsedObjectArray[-ScriptParams[4]].index; + int mi2 = ScriptParams[5] >= 0 ? ScriptParams[5] : CTheScripts::UsedObjectArray[-ScriptParams[5]].index; + int16 total; + CEntity* apEntities[16]; + CWorld::FindObjectsOfTypeInRange(mi1, pos, radius, true, &total, 16, apEntities, true, false, false, false, false); + if (total == 0) + CWorld::FindObjectsOfTypeInRangeSectorList(mi1, CWorld::GetBigBuildingList(LEVEL_GENERIC), pos, radius, true, &total, 16, apEntities); + if (total == 0) + CWorld::FindObjectsOfTypeInRangeSectorList(mi1, CWorld::GetBigBuildingList(CTheZones::GetLevelFromPosition(&pos)), pos, radius, true, &total, 16, apEntities); + CEntity* pClosestEntity = nil; + float min_dist = 2.0f * radius; + for (int i = 0; i < total; i++) { + float dist = (apEntities[i]->GetPosition() - pos).Magnitude(); + if (dist < min_dist) { + min_dist = dist; + pClosestEntity = apEntities[i]; + } + } + if (!pClosestEntity) { + printf("Failed to find building\n"); + return 0; + } + CBuilding* pReplacedBuilding = ((CBuilding*)pClosestEntity); + pReplacedBuilding->ReplaceWithNewModel(mi2); + CTheScripts::AddToBuildingSwapArray(pReplacedBuilding, mi1, mi2); return 0; } case COMMAND_SWITCH_WORLD_PROCESSING: CollectParameters(&m_nIp, 1); - CWorld::bProcessCutsceneOnly = GET_INTEGER_PARAM(0) == 0; + CWorld::bProcessCutsceneOnly = ScriptParams[0] == 0; return 0; case COMMAND_REMOVE_ALL_PLAYER_WEAPONS: { CollectParameters(&m_nIp, 1); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); pPed->ClearWeapons(); return 0; @@ -1660,7 +1689,7 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) case COMMAND_GRAB_CATALINA_HELI: { CHeli* pHeli = CHeli::FindPointerToCatalinasHeli(); - SET_INTEGER_PARAM(0, pHeli ? CPools::GetVehiclePool()->GetIndex(pHeli) : -1); + ScriptParams[0] = pHeli ? CPools::GetVehiclePool()->GetIndex(pHeli) : -1; StoreParameters(&m_nIp, 1); return 0; } @@ -1668,46 +1697,46 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) case COMMAND_CLEAR_AREA_OF_CARS: { CollectParameters(&m_nIp, 6); - float infX = GET_FLOAT_PARAM(0); - float infY = GET_FLOAT_PARAM(1); - float infZ = GET_FLOAT_PARAM(2); - float supX = GET_FLOAT_PARAM(3); - float supY = GET_FLOAT_PARAM(4); - float supZ = GET_FLOAT_PARAM(5); + float infX = *(float*)&ScriptParams[0]; + float infY = *(float*)&ScriptParams[1]; + float infZ = *(float*)&ScriptParams[2]; + float supX = *(float*)&ScriptParams[3]; + float supY = *(float*)&ScriptParams[4]; + float supZ = *(float*)&ScriptParams[5]; if (infX > supX) { - infX = GET_FLOAT_PARAM(3); - supX = GET_FLOAT_PARAM(0); + infX = *(float*)&ScriptParams[3]; + supX = *(float*)&ScriptParams[0]; } if (infY > supY) { - infY = GET_FLOAT_PARAM(4); - supY = GET_FLOAT_PARAM(1); + infY = *(float*)&ScriptParams[4]; + supY = *(float*)&ScriptParams[1]; } if (infZ > supZ) { - infZ = GET_FLOAT_PARAM(5); - supZ = GET_FLOAT_PARAM(2); + infZ = *(float*)&ScriptParams[5]; + supZ = *(float*)&ScriptParams[2]; } CWorld::ClearCarsFromArea(infX, infY, infZ, supX, supY, supZ); return 0; } case COMMAND_SET_ROTATING_GARAGE_DOOR: CollectParameters(&m_nIp, 1); - CGarages::SetGarageDoorToRotate(GET_INTEGER_PARAM(0)); + CGarages::SetGarageDoorToRotate(ScriptParams[0]); return 0; case COMMAND_ADD_SPHERE: { CollectParameters(&m_nIp, 4); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); - float radius = GET_FLOAT_PARAM(3); + float radius = *(float*)&ScriptParams[3]; CTheScripts::GetActualScriptSphereIndex(CollectNextParameterWithoutIncreasingPC(m_nIp)); - SET_INTEGER_PARAM(0, CTheScripts::AddScriptSphere((uintptr)this + m_nIp, pos, radius)); + ScriptParams[0] = CTheScripts::AddScriptSphere((uintptr)this + m_nIp, pos, radius); StoreParameters(&m_nIp, 1); return 0; } case COMMAND_REMOVE_SPHERE: CollectParameters(&m_nIp, 1); - CTheScripts::RemoveScriptSphere(GET_INTEGER_PARAM(0)); + CTheScripts::RemoveScriptSphere(ScriptParams[0]); return 0; /* case COMMAND_CATALINA_HELI_FLY_AWAY: @@ -1717,9 +1746,9 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) case COMMAND_SET_EVERYONE_IGNORE_PLAYER: { CollectParameters(&m_nIp, 2); - CPlayerPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPlayerPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); - if (GET_INTEGER_PARAM(1)) { + if (ScriptParams[1]) { pPed->m_pWanted->m_bIgnoredByEveryone = true; CWorld::StopAllLawEnforcersInTheirTracks(); } @@ -1731,47 +1760,49 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) case COMMAND_STORE_CAR_CHAR_IS_IN_NO_SAVE: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); CVehicle* pVehicle = pPed->bInVehicle ? pPed->m_pMyVehicle : nil; - SET_INTEGER_PARAM(0, CPools::GetVehiclePool()->GetIndex(pVehicle)); + ScriptParams[0] = CPools::GetVehiclePool()->GetIndex(pVehicle); StoreParameters(&m_nIp, 1); return 0; } case COMMAND_STORE_CAR_PLAYER_IS_IN_NO_SAVE: { CollectParameters(&m_nIp, 1); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); CVehicle* pVehicle = pPed->bInVehicle ? pPed->m_pMyVehicle : nil; - SET_INTEGER_PARAM(0, CPools::GetVehiclePool()->GetIndex(pVehicle)); + ScriptParams[0] = CPools::GetVehiclePool()->GetIndex(pVehicle); StoreParameters(&m_nIp, 1); return 0; } /* case COMMAND_IS_PHONE_DISPLAYING_MESSAGE: CollectParameters(&m_nIp, 1); - UpdateCompareFlag(gPhoneInfo.IsMessageBeingDisplayed(GET_INTEGER_PARAM(0))); + UpdateCompareFlag(gPhoneInfo.IsMessageBeingDisplayed(ScriptParams[0])); return 0; */ case COMMAND_DISPLAY_ONSCREEN_TIMER_WITH_STRING: { - uint16 var = (uint8*)GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) - CTheScripts::ScriptSpace; + script_assert(CTheScripts::ScriptSpace[m_nIp++] == ARGUMENT_GLOBALVAR); + uint16 var = CTheScripts::Read2BytesFromScript(&m_nIp); CollectParameters(&m_nIp, 1); wchar* text = TheText.Get((char*)&CTheScripts::ScriptSpace[m_nIp]); // ??? strncpy(onscreen_str, (char*)&CTheScripts::ScriptSpace[m_nIp], KEY_LENGTH_IN_SCRIPT); m_nIp += KEY_LENGTH_IN_SCRIPT; - CUserDisplay::OnscnTimer.AddClock(var, onscreen_str, GET_INTEGER_PARAM(0) != 0); + CUserDisplay::OnscnTimer.AddClock(var, onscreen_str, ScriptParams[0] != 0); return 0; } case COMMAND_DISPLAY_ONSCREEN_COUNTER_WITH_STRING: { - uint16 var = (uint8*)GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) - CTheScripts::ScriptSpace; + script_assert(CTheScripts::ScriptSpace[m_nIp++] == ARGUMENT_GLOBALVAR); + uint16 var = CTheScripts::Read2BytesFromScript(&m_nIp); CollectParameters(&m_nIp, 1); wchar* text = TheText.Get((char*)&CTheScripts::ScriptSpace[m_nIp]); // ??? strncpy(onscreen_str, (char*)&CTheScripts::ScriptSpace[m_nIp], KEY_LENGTH_IN_SCRIPT); m_nIp += KEY_LENGTH_IN_SCRIPT; - CUserDisplay::OnscnTimer.AddCounter(var, GET_INTEGER_PARAM(0), onscreen_str, 0); + CUserDisplay::OnscnTimer.AddCounter(var, ScriptParams[0], onscreen_str, 0); return 0; } case COMMAND_CREATE_RANDOM_CAR_FOR_CAR_PARK: @@ -1790,8 +1821,6 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) continue; if (CModelInfo::IsCarModel(model) || CModelInfo::IsBikeModel(model)) { switch (model) { - // TODO(LCS): do it right - // apparently leeds didn't :lmao: case MI_LANDSTAL: case MI_LINERUN: case MI_RIO: @@ -1817,13 +1846,13 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) case MI_ANGEL: case MI_COACH: case MI_RCBANDIT: - //case MI_ROMERO: - //case MI_PACKER: - //case MI_SENTXS: + case MI_ROMERO: + case MI_PACKER: + case MI_SENTXS: case MI_SQUALO: case MI_SEASPAR: case MI_PIZZABOY: - //case MI_GANGBUR: + case MI_GANGBUR: case MI_AIRTRAIN: case MI_DEADDODO: case MI_SPEEDER: @@ -1832,44 +1861,44 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) case MI_FLATBED: case MI_YANKEE: case MI_CADDY: - //case MI_ZEBRA: + case MI_ZEBRA: case MI_TOPFUN: case MI_SKIMMER: case MI_RCBARON: case MI_RCRAIDER: case MI_SPARROW: case MI_PATRIOT: - //case MI_LOVEFIST: + case MI_LOVEFIST: case MI_COASTG: case MI_DINGHY: - //case MI_HERMES: - //case MI_SABRETUR: + case MI_HERMES: + case MI_SABRETUR: case MI_PHEONIX: - //case MI_WALTON: + case MI_WALTON: case MI_COMET: - //case MI_DELUXO: - //case MI_BURRITO: - //case MI_SPAND: + case MI_DELUXO: + case MI_BURRITO: + case MI_SPAND: case MI_MARQUIS: case MI_BAGGAGE: - //case MI_KAUFMAN: + case MI_KAUFMAN: case MI_MAVERICK: case MI_VCNMAV: - //case MI_RANCHER: + case MI_RANCHER: case MI_FBIRANCH: case MI_JETMAX: - //case MI_HOTRING: + case MI_HOTRING: case MI_SANDKING: - //case MI_BLISTAC: + case MI_BLISTAC: case MI_POLMAV: - //case MI_BOXVILLE: - //case MI_BENSON: - //case MI_MESA: + case MI_BOXVILLE: + case MI_BENSON: + case MI_MESA: case MI_RCGOBLIN: - //case MI_HOTRINA: - //case MI_HOTRINB: - //case MI_BLOODRA: - //case MI_BLOODRB: + case MI_HOTRINA: + case MI_HOTRINB: + case MI_BLOODRA: + case MI_BLOODRB: case MI_VICECHEE: model = -1; break; @@ -1884,23 +1913,23 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) case MI_MOONBEAM: case MI_ESPERANT: case MI_TAXI: - //case MI_WASHING: + case MI_WASHING: case MI_BOBCAT: case MI_BANSHEE: - //case MI_CABBIE: + case MI_CABBIE: case MI_STALLION: case MI_RUMPO: - //case MI_ADMIRAL: + case MI_ADMIRAL: case MI_PCJ600: case MI_FAGGIO: case MI_FREEWAY: - //case MI_GLENDALE: - //case MI_OCEANIC: + case MI_GLENDALE: + case MI_OCEANIC: case MI_SANCHEZ: - //case MI_SABRE: - //case MI_REGINA: - //case MI_VIRGO: - //case MI_GREENWOO: + case MI_SABRE: + case MI_REGINA: + case MI_VIRGO: + case MI_GREENWOO: break; default: printf("CREATE_RANDOM_CAR_FOR_CAR_PARK - Unknown car model %d\n", CStreaming::ms_vehiclesLoaded[index]); @@ -1922,10 +1951,10 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) } else car = new CAutomobile(model, RANDOM_VEHICLE); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; pos.z += car->GetDistanceFromCentreOfMassToBaseOfModel(); car->SetPosition(pos); - car->SetHeading(DEGTORAD(GET_FLOAT_PARAM(3))); + car->SetHeading(DEGTORAD(*(float*)&ScriptParams[3])); CTheScripts::ClearSpaceForMissionEntity(pos, car); car->SetStatus(STATUS_ABANDONED); car->bIsLocked = false; @@ -1941,33 +1970,37 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) CWorld::Add(car); return 0; } + /* case COMMAND_IS_COLLISION_IN_MEMORY: CollectParameters(&m_nIp, 1); - UpdateCompareFlag(CGame::currLevel == GET_INTEGER_PARAM(0)); + UpdateCompareFlag(CCollision::ms_collisionInMemory == ScriptParams[0]); return 0; + */ case COMMAND_SET_WANTED_MULTIPLIER: CollectParameters(&m_nIp, 1); - FindPlayerPed()->m_pWanted->m_fCrimeSensitivity = GET_FLOAT_PARAM(0); + FindPlayerPed()->m_pWanted->m_fCrimeSensitivity = *(float*)&ScriptParams[0]; return 0; case COMMAND_SET_CAMERA_IN_FRONT_OF_PLAYER: TheCamera.SetCameraDirectlyInFrontForFollowPed_CamOnAString(); return 0; + /* case COMMAND_IS_CAR_VISIBLY_DAMAGED: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); UpdateCompareFlag(pVehicle->bIsDamaged); return 0; } + */ case COMMAND_DOES_OBJECT_EXIST: CollectParameters(&m_nIp, 1); - UpdateCompareFlag(CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0))); + UpdateCompareFlag(CPools::GetObjectPool()->GetAt(ScriptParams[0])); return 0; case COMMAND_LOAD_SCENE: { CollectParameters(&m_nIp, 3); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; #ifdef FIX_BUGS CTimer::Suspend(); #else @@ -1984,20 +2017,20 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) case COMMAND_ADD_STUCK_CAR_CHECK: { CollectParameters(&m_nIp, 3); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - CTheScripts::StuckCars.AddCarToCheck(GET_INTEGER_PARAM(0), GET_FLOAT_PARAM(1), GET_INTEGER_PARAM(2)); + CTheScripts::StuckCars.AddCarToCheck(ScriptParams[0], *(float*)&ScriptParams[1], ScriptParams[2]); return 0; } case COMMAND_REMOVE_STUCK_CAR_CHECK: { CollectParameters(&m_nIp, 1); - CTheScripts::StuckCars.RemoveCarFromCheck(GET_INTEGER_PARAM(0)); + CTheScripts::StuckCars.RemoveCarFromCheck(ScriptParams[0]); return 0; } case COMMAND_IS_CAR_STUCK: CollectParameters(&m_nIp, 1); - UpdateCompareFlag(CTheScripts::StuckCars.HasCarBeenStuckForAWhile(GET_INTEGER_PARAM(0))); + UpdateCompareFlag(CTheScripts::StuckCars.HasCarBeenStuckForAWhile(ScriptParams[0])); return 0; case COMMAND_LOAD_MISSION_AUDIO: { @@ -2006,43 +2039,41 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) for (int i = 0; i < KEY_LENGTH_IN_SCRIPT; i++) str[i] = tolower(str[i]); m_nIp += KEY_LENGTH_IN_SCRIPT; - DMAudio.PreloadMissionAudio(GET_INTEGER_PARAM(0) - 1, str); + DMAudio.PreloadMissionAudio(ScriptParams[0] - 1, str); return 0; } case COMMAND_HAS_MISSION_AUDIO_LOADED: { CollectParameters(&m_nIp, 1); - //UpdateCompareFlag(DMAudio.GetMissionAudioLoadingStatus(GET_INTEGER_PARAM(0) - 1) == 1); - UpdateCompareFlag(true); // TODO + UpdateCompareFlag(DMAudio.GetMissionAudioLoadingStatus(ScriptParams[0] - 1) == 1); return 0; } case COMMAND_PLAY_MISSION_AUDIO: CollectParameters(&m_nIp, 1); - DMAudio.PlayLoadedMissionAudio(GET_INTEGER_PARAM(0) - 1); + DMAudio.PlayLoadedMissionAudio(ScriptParams[0] - 1); return 0; case COMMAND_HAS_MISSION_AUDIO_FINISHED: { CollectParameters(&m_nIp, 1); - //UpdateCompareFlag(DMAudio.IsMissionAudioSampleFinished(GET_INTEGER_PARAM(0) - 1)); // TODO - UpdateCompareFlag(true); + UpdateCompareFlag(DMAudio.IsMissionAudioSampleFinished(ScriptParams[0] - 1)); return 0; } case COMMAND_GET_CLOSEST_CAR_NODE_WITH_HEADING: { CollectParameters(&m_nIp, 3); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); int node = ThePaths.FindNodeClosestToCoors(pos, 0, 999999.9f, true, true); - SET_VECTOR_PARAM(0, ThePaths.FindNodeCoorsForScript(node)); - SET_FLOAT_PARAM(3, ThePaths.FindNodeOrientationForCarPlacement(node)); + *(CVector*)&ScriptParams[0] = ThePaths.FindNodeCoorsForScript(node); + *(float*)&ScriptParams[3] = ThePaths.FindNodeOrientationForCarPlacement(node); StoreParameters(&m_nIp, 4); return 0; } case COMMAND_HAS_IMPORT_GARAGE_SLOT_BEEN_FILLED: { CollectParameters(&m_nIp, 2); - UpdateCompareFlag(CGarages::HasImportExportGarageCollectedThisCar(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1) - 1)); + UpdateCompareFlag(CGarages::HasImportExportGarageCollectedThisCar(ScriptParams[0], ScriptParams[1] - 1)); return 0; } case COMMAND_CLEAR_THIS_PRINT: @@ -2060,8 +2091,8 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) case COMMAND_SET_MISSION_AUDIO_POSITION: { CollectParameters(&m_nIp, 4); - CVector pos = GET_VECTOR_PARAM(1); - DMAudio.SetMissionAudioLocation(GET_INTEGER_PARAM(0) - 1, pos.x, pos.y, pos.z); + CVector pos = *(CVector*)&ScriptParams[1]; + DMAudio.SetMissionAudioLocation(ScriptParams[0] - 1, pos.x, pos.y, pos.z); return 0; } case COMMAND_ACTIVATE_SAVE_MENU: @@ -2077,15 +2108,15 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) return 0; case COMMAND_NO_SPECIAL_CAMERA_FOR_THIS_GARAGE: CollectParameters(&m_nIp, 1); - CGarages::SetLeaveCameraForThisGarage(GET_INTEGER_PARAM(0)); + CGarages::SetLeaveCameraForThisGarage(ScriptParams[0]); return 0; /* case COMMAND_ADD_BLIP_FOR_PICKUP_OLD: { CollectParameters(&m_nIp, 3); - CObject* pObject = CPickups::aPickUps[CPickups::GetActualPickupIndex(GET_INTEGER_PARAM(0))].m_pObject; + CObject* pObject = CPickups::aPickUps[CPickups::GetActualPickupIndex(ScriptParams[0])].m_pObject; CRadar::GetActualBlipArrayIndex(CollectNextParameterWithoutIncreasingPC(m_nIp)); - SET_INTEGER_PARAM(0, CRadar::SetEntityBlip(BLIP_OBJECT, CPools::GetObjectPool()->GetIndex(pObject), GET_INTEGER_PARAM(1), (eBlipDisplay)GET_INTEGER_PARAM(2))); + ScriptParams[0] = CRadar::SetEntityBlip(BLIP_OBJECT, CPools::GetObjectPool()->GetIndex(pObject), ScriptParams[1], (eBlipDisplay)ScriptParams[2]); StoreParameters(&m_nIp, 1); return 0; } @@ -2093,11 +2124,11 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) case COMMAND_ADD_BLIP_FOR_PICKUP: { CollectParameters(&m_nIp, 1); - CObject* pObject = CPickups::aPickUps[CPickups::GetActualPickupIndex(GET_INTEGER_PARAM(0))].m_pObject; + CObject* pObject = CPickups::aPickUps[CPickups::GetActualPickupIndex(ScriptParams[0])].m_pObject; CRadar::GetActualBlipArrayIndex(CollectNextParameterWithoutIncreasingPC(m_nIp)); int handle = CRadar::SetEntityBlip(BLIP_OBJECT, CPools::GetObjectPool()->GetIndex(pObject), 6, BLIP_DISPLAY_BOTH); CRadar::ChangeBlipScale(handle, 3); - SET_INTEGER_PARAM(0, handle); + ScriptParams[0] = handle; StoreParameters(&m_nIp, 1); return 0; } @@ -2105,55 +2136,52 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) case COMMAND_ADD_SPRITE_BLIP_FOR_PICKUP: { CollectParameters(&m_nIp, 2); - CObject* pObject = CPickups::aPickUps[CPickups::GetActualPickupIndex(GET_INTEGER_PARAM(0))].m_pObject; + CObject* pObject = CPickups::aPickUps[CPickups::GetActualPickupIndex(ScriptParams[0])].m_pObject; CRadar::GetActualBlipArrayIndex(CollectNextParameterWithoutIncreasingPC(m_nIp)); int handle = CRadar::SetEntityBlip(BLIP_OBJECT, CPools::GetObjectPool()->GetIndex(pObject), 6, BLIP_DISPLAY_BOTH); - CRadar::SetBlipSprite(handle, GET_INTEGER_PARAM(1)); - SET_INTEGER_PARAM(0, handle); + CRadar::SetBlipSprite(handle, ScriptParams[1]); + ScriptParams[0] = handle; StoreParameters(&m_nIp, 1); return 0; } */ case COMMAND_SET_PED_DENSITY_MULTIPLIER: CollectParameters(&m_nIp, 1); - CPopulation::PedDensityMultiplier = GET_FLOAT_PARAM(0); + CPopulation::PedDensityMultiplier = *(float*)&ScriptParams[0]; return 0; case COMMAND_FORCE_RANDOM_PED_TYPE: CollectParameters(&m_nIp, 1); - CPopulation::m_AllRandomPedsThisType = GET_INTEGER_PARAM(0); + CPopulation::m_AllRandomPedsThisType = ScriptParams[0]; return 0; /* case COMMAND_SET_TEXT_DRAW_BEFORE_FADE: CollectParameters(&m_nIp, 1); - CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_bTextBeforeFade = GET_INTEGER_PARAM(0) != 0; + CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_bTextBeforeFade = ScriptParams[0] != 0; return 0; */ case COMMAND_GET_COLLECTABLE1S_COLLECTED: - SET_INTEGER_PARAM(0, CWorld::Players[CWorld::PlayerInFocus].m_nCollectedPackages); + ScriptParams[0] = CWorld::Players[CWorld::PlayerInFocus].m_nCollectedPackages; StoreParameters(&m_nIp, 1); return 0; case COMMAND_SET_CHAR_OBJ_LEAVE_ANY_CAR: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_LEAVE_CAR, pPed->m_pMyVehicle); return 0; } - /* case COMMAND_SET_SPRITES_DRAW_BEFORE_FADE: CollectParameters(&m_nIp, 1); - CTheScripts::IntroRectangles[CTheScripts::NumberOfIntroRectanglesThisFrame].m_bBeforeFade = GET_INTEGER_PARAM(0) != 0; + CTheScripts::IntroRectangles[CTheScripts::NumberOfIntroRectanglesThisFrame].m_bBeforeFade = ScriptParams[0] != 0; return 0; - */ case COMMAND_SET_TEXT_RIGHT_JUSTIFY: CollectParameters(&m_nIp, 1); - CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_bRightJustify = GET_INTEGER_PARAM(0) != 0; + CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_bRightJustify = ScriptParams[0] != 0; return 0; case COMMAND_PRINT_HELP: { - /* maybe will be useful? TODO if (CCamera::m_bUseMouse3rdPerson && ( strcmp((char*)&CTheScripts::ScriptSpace[m_nIp], "HELP15") == 0 || strcmp((char*)&CTheScripts::ScriptSpace[m_nIp], "GUN_2A") == 0 || @@ -2162,18 +2190,16 @@ int8 CRunningScript::ProcessCommands900To999(int32 command) m_nIp += KEY_LENGTH_IN_SCRIPT; return 0; } - */ wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); CHud::SetHelpMessage(text, false); return 0; } case COMMAND_CLEAR_HELP: - //CHud::gLastPrintForeverString = false; TODO CHud::SetHelpMessage(nil, false); return 0; case COMMAND_FLASH_HUD_OBJECT: CollectParameters(&m_nIp, 1); - CHud::m_ItemToFlash = GET_INTEGER_PARAM(0); + CHud::m_ItemToFlash = ScriptParams[0]; return 0; default: script_assert(0); @@ -2238,36 +2264,6 @@ void CTheScripts::RemoveScriptSphere(int32 index) ScriptSphereArray[index].m_Id = 0; } -void CTheScripts::SwapNearestBuildingModel(float x, float y, float z, float radius, int mi1, int mi2) -{ - CVector pos(x, y, z); - if (pos.z <= MAP_Z_LOW_LIMIT) - pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); - if (mi1 < 0) - mi1 = CTheScripts::UsedObjectArray[-mi1].index; - if (mi2 < 0) - mi2 = CTheScripts::UsedObjectArray[-mi2].index; - int16 total; - CEntity* apEntities[16]; - CWorld::FindObjectsOfTypeInRange(mi1, pos, radius, true, &total, 16, apEntities, true, false, false, false, false); - if (total == 0) - CWorld::FindObjectsOfTypeInRangeSectorList(mi1, CWorld::GetBigBuildingList(LEVEL_GENERIC), pos, radius, true, &total, 16, apEntities); - if (total == 0) - CWorld::FindObjectsOfTypeInRangeSectorList(mi1, CWorld::GetBigBuildingList(CTheZones::GetLevelFromPosition(&pos)), pos, radius, true, &total, 16, apEntities); - CEntity* pClosestEntity = nil; - float min_dist = 2.0f * radius; - for (int i = 0; i < total; i++) { - float dist = (apEntities[i]->GetPosition() - pos).Magnitude(); - if (dist < min_dist) { - min_dist = dist; - pClosestEntity = apEntities[i]; - } - } - CBuilding* pReplacedBuilding = ((CBuilding*)pClosestEntity); - pReplacedBuilding->ReplaceWithNewModel(mi2); - AddToBuildingSwapArray(pReplacedBuilding, mi1, mi2); -} - void CTheScripts::AddToBuildingSwapArray(CBuilding* pBuilding, int32 old_model, int32 new_model) { int i = 0; diff --git a/src/control/Script5.cpp b/src/control/Script5.cpp index 8354492..1371f2e 100644 --- a/src/control/Script5.cpp +++ b/src/control/Script5.cpp @@ -17,20 +17,32 @@ #include "World.h" #include "main.h" -// LCS: file done except TODOs - -uint32 CRunningScript::CollectLocateParameters(uint32* pIp, bool b3D) +void CRunningScript::UpdateCompareFlag(bool flag) { - CollectParameters(pIp, 1); - uint32 id = (uintptr)this + (*pIp - 16); - uint32 ip = *pIp; - uint8 type = CTheScripts::Read1ByteFromScript(&ip); - if (type >= ARGUMENT_LOCAL) { - ip--; - id = (uint32)(uintptr)GetPointerToScriptVariable(&ip, 0); + if (m_bNotFlag) + flag = !flag; + if (m_nAndOrState == ANDOR_NONE) { + m_bCondResult = flag; + return; } - CollectParameters(pIp, b3D ? 7 : 5, &(ScriptParams[1])); - return id; + if (m_nAndOrState >= ANDS_1 && m_nAndOrState <= ANDS_8) { + m_bCondResult &= flag; + if (m_nAndOrState == ANDS_1) { + m_nAndOrState = ANDOR_NONE; + return; + } + } + else if (m_nAndOrState >= ORS_1 && m_nAndOrState <= ORS_8) { + m_bCondResult |= flag; + if (m_nAndOrState == ORS_1) { + m_nAndOrState = ANDOR_NONE; + return; + } + } + else { + return; + } + m_nAndOrState--; } void CRunningScript::LocatePlayerCommand(int32 command, uint32* pIp) @@ -50,8 +62,8 @@ void CRunningScript::LocatePlayerCommand(int32 command, uint32* pIp) b3D = false; break; } - uint32 id = CollectLocateParameters(pIp, b3D); - CPlayerInfo* pPlayerInfo = &CWorld::Players[GET_INTEGER_PARAM(0)]; + CollectParameters(pIp, b3D ? 8 : 6); + CPlayerInfo* pPlayerInfo = &CWorld::Players[ScriptParams[0]]; switch (command) { case COMMAND_LOCATE_STOPPED_PLAYER_ANY_MEANS_2D: case COMMAND_LOCATE_STOPPED_PLAYER_ANY_MEANS_3D: @@ -67,23 +79,37 @@ void CRunningScript::LocatePlayerCommand(int32 command, uint32* pIp) default: break; } - X = GET_FLOAT_PARAM(1); - Y = GET_FLOAT_PARAM(2); + X = *(float*)&ScriptParams[1]; + Y = *(float*)&ScriptParams[2]; if (b3D) { - Z = GET_FLOAT_PARAM(3); - dX = GET_FLOAT_PARAM(4); - dY = GET_FLOAT_PARAM(5); - dZ = GET_FLOAT_PARAM(6); - debug = GET_INTEGER_PARAM(7); + Z = *(float*)&ScriptParams[3]; + dX = *(float*)&ScriptParams[4]; + dY = *(float*)&ScriptParams[5]; + dZ = *(float*)&ScriptParams[6]; + debug = ScriptParams[7]; } else { - dX = GET_FLOAT_PARAM(3); - dY = GET_FLOAT_PARAM(4); - debug = GET_INTEGER_PARAM(5); + dX = *(float*)&ScriptParams[3]; + dY = *(float*)&ScriptParams[4]; + debug = ScriptParams[5]; } - CVector pos = pPlayerInfo->GetPos(); if (!decided) { + CVector pos = pPlayerInfo->GetPos(); result = false; - if (Abs(pos.x - X) < dX && Abs(pos.y - Y) < dY && (!b3D || Abs(pos.z - Z) < dZ)) { + bool in_area; + if (b3D) { + in_area = X - dX <= pos.x && + X + dX >= pos.x && + Y - dY <= pos.y && + Y + dY >= pos.y && + Z - dZ <= pos.z && + Z + dZ >= pos.z; + } else { + in_area = X - dX <= pos.x && + X + dX >= pos.x && + Y - dY <= pos.y && + Y + dY >= pos.y; + } + if (in_area) { switch (command) { case COMMAND_LOCATE_PLAYER_ANY_MEANS_2D: case COMMAND_LOCATE_PLAYER_ANY_MEANS_3D: @@ -110,16 +136,14 @@ void CRunningScript::LocatePlayerCommand(int32 command, uint32* pIp) } } UpdateCompareFlag(result); - if (debug && Abs(pos.x - X) < 80.0f && Abs(pos.y - Y) < 80.0f) - CTheScripts::HighlightImportantArea(id, X - dX, Y - dY, X + dX, Y + dY, b3D ? Z : MAP_Z_LOW_LIMIT); - /* + if (debug) + CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, X - dX, Y - dY, X + dX, Y + dY, b3D ? Z : MAP_Z_LOW_LIMIT); if (CTheScripts::DbgFlag) { if (b3D) CTheScripts::DrawDebugCube(X - dX, Y - dY, Z - dZ, X + dX, Y + dY, Z + dZ); else CTheScripts::DrawDebugSquare(X - dX, Y - dY, X + dX, Y + dY); } - */ } void CRunningScript::LocatePlayerCharCommand(int32 command, uint32* pIp) @@ -137,8 +161,8 @@ void CRunningScript::LocatePlayerCharCommand(int32 command, uint32* pIp) break; } CollectParameters(pIp, b3D ? 6 : 5); - CPlayerInfo* pPlayerInfo = &CWorld::Players[GET_INTEGER_PARAM(0)]; - CPed* pTarget = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); + CPlayerInfo* pPlayerInfo = &CWorld::Players[ScriptParams[0]]; + CPed* pTarget = CPools::GetPedPool()->GetAt(ScriptParams[1]); script_assert(pTarget); CVector pos = pPlayerInfo->GetPos(); if (pTarget->bInVehicle) { @@ -150,14 +174,14 @@ void CRunningScript::LocatePlayerCharCommand(int32 command, uint32* pIp) Y = pTarget->GetPosition().y; Z = pTarget->GetPosition().z; } - dX = GET_FLOAT_PARAM(2); - dY = GET_FLOAT_PARAM(3); + dX = *(float*)&ScriptParams[2]; + dY = *(float*)&ScriptParams[3]; if (b3D) { - dZ = GET_FLOAT_PARAM(4); - debug = GET_INTEGER_PARAM(5); + dZ = *(float*)&ScriptParams[4]; + debug = ScriptParams[5]; } else { - debug = GET_INTEGER_PARAM(4); + debug = ScriptParams[4]; } result = false; bool in_area; @@ -201,14 +225,12 @@ void CRunningScript::LocatePlayerCharCommand(int32 command, uint32* pIp) #else CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, X - dX, Y - dY, X + dX, Y + dX, b3D ? Z : MAP_Z_LOW_LIMIT); #endif - /* if (CTheScripts::DbgFlag) { if (b3D) CTheScripts::DrawDebugCube(X - dX, Y - dY, Z - dZ, X + dX, Y + dY, Z + dZ); else CTheScripts::DrawDebugSquare(X - dX, Y - dY, X + dX, Y + dY); } - */ } void CRunningScript::LocatePlayerCarCommand(int32 command, uint32* pIp) @@ -226,21 +248,21 @@ void CRunningScript::LocatePlayerCarCommand(int32 command, uint32* pIp) break; } CollectParameters(pIp, b3D ? 6 : 5); - CPlayerInfo* pPlayerInfo = &CWorld::Players[GET_INTEGER_PARAM(0)]; - CVehicle* pTarget = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); + CPlayerInfo* pPlayerInfo = &CWorld::Players[ScriptParams[0]]; + CVehicle* pTarget = CPools::GetVehiclePool()->GetAt(ScriptParams[1]); script_assert(pTarget); CVector pos = pPlayerInfo->GetPos(); X = pTarget->GetPosition().x; Y = pTarget->GetPosition().y; Z = pTarget->GetPosition().z; - dX = GET_FLOAT_PARAM(2); - dY = GET_FLOAT_PARAM(3); + dX = *(float*)&ScriptParams[2]; + dY = *(float*)&ScriptParams[3]; if (b3D) { - dZ = GET_FLOAT_PARAM(4); - debug = GET_INTEGER_PARAM(5); + dZ = *(float*)&ScriptParams[4]; + debug = ScriptParams[5]; } else { - debug = GET_INTEGER_PARAM(4); + debug = ScriptParams[4]; } result = false; bool in_area; @@ -280,14 +302,12 @@ void CRunningScript::LocatePlayerCarCommand(int32 command, uint32* pIp) UpdateCompareFlag(result); if (debug) CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, X - dX, Y - dY, X + dX, Y + dY, b3D ? Z : MAP_Z_LOW_LIMIT); - /* if (CTheScripts::DbgFlag) { if (b3D) CTheScripts::DrawDebugCube(X - dX, Y - dY, Z - dZ, X + dX, Y + dY, Z + dZ); else CTheScripts::DrawDebugSquare(X - dX, Y - dY, X + dX, Y + dY); } - */ } void CRunningScript::LocateCharCommand(int32 command, uint32* pIp) @@ -307,8 +327,8 @@ void CRunningScript::LocateCharCommand(int32 command, uint32* pIp) b3D = false; break; } - uint32 id = CollectLocateParameters(pIp, b3D); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CollectParameters(pIp, b3D ? 8 : 6); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); CVector pos = pPed->InVehicle() ? pPed->m_pMyVehicle->GetPosition() : pPed->GetPosition(); switch (command) { @@ -326,19 +346,19 @@ void CRunningScript::LocateCharCommand(int32 command, uint32* pIp) default: break; } - X = GET_FLOAT_PARAM(1); - Y = GET_FLOAT_PARAM(2); + X = *(float*)&ScriptParams[1]; + Y = *(float*)&ScriptParams[2]; if (b3D) { - Z = GET_FLOAT_PARAM(3); - dX = GET_FLOAT_PARAM(4); - dY = GET_FLOAT_PARAM(5); - dZ = GET_FLOAT_PARAM(6); - debug = GET_INTEGER_PARAM(7); + Z = *(float*)&ScriptParams[3]; + dX = *(float*)&ScriptParams[4]; + dY = *(float*)&ScriptParams[5]; + dZ = *(float*)&ScriptParams[6]; + debug = ScriptParams[7]; } else { - dX = GET_FLOAT_PARAM(3); - dY = GET_FLOAT_PARAM(4); - debug = GET_INTEGER_PARAM(5); + dX = *(float*)&ScriptParams[3]; + dY = *(float*)&ScriptParams[4]; + debug = ScriptParams[5]; } if (!decided) { result = false; @@ -385,15 +405,13 @@ void CRunningScript::LocateCharCommand(int32 command, uint32* pIp) } UpdateCompareFlag(result); if (debug) - CTheScripts::HighlightImportantArea(id, X - dX, Y - dY, X + dX, Y + dY, b3D ? Z : MAP_Z_LOW_LIMIT); - /* + CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, X - dX, Y - dY, X + dX, Y + dY, b3D ? Z : MAP_Z_LOW_LIMIT); if (CTheScripts::DbgFlag) { if (b3D) CTheScripts::DrawDebugCube(X - dX, Y - dY, Z - dZ, X + dX, Y + dY, Z + dZ); else CTheScripts::DrawDebugSquare(X - dX, Y - dY, X + dX, Y + dY); } - */ } void CRunningScript::LocateCharCharCommand(int32 command, uint32* pIp) @@ -411,9 +429,9 @@ void CRunningScript::LocateCharCharCommand(int32 command, uint32* pIp) break; } CollectParameters(pIp, b3D ? 6 : 5); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CPed* pTarget = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); + CPed* pTarget = CPools::GetPedPool()->GetAt(ScriptParams[1]); script_assert(pTarget); CVector pos = pPed->bInVehicle ? pPed->m_pMyVehicle->GetPosition() : pPed->GetPosition(); if (pTarget->bInVehicle) { @@ -426,14 +444,14 @@ void CRunningScript::LocateCharCharCommand(int32 command, uint32* pIp) Y = pTarget->GetPosition().y; Z = pTarget->GetPosition().z; } - dX = GET_FLOAT_PARAM(2); - dY = GET_FLOAT_PARAM(3); + dX = *(float*)&ScriptParams[2]; + dY = *(float*)&ScriptParams[3]; if (b3D) { - dZ = GET_FLOAT_PARAM(4); - debug = GET_INTEGER_PARAM(5); + dZ = *(float*)&ScriptParams[4]; + debug = ScriptParams[5]; } else { - debug = GET_INTEGER_PARAM(4); + debug = ScriptParams[4]; } result = false; bool in_area; @@ -477,14 +495,12 @@ void CRunningScript::LocateCharCharCommand(int32 command, uint32* pIp) #else CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, X - dX, Y - dY, X + dX, Y + dX, b3D ? Z : MAP_Z_LOW_LIMIT); #endif - /* if (CTheScripts::DbgFlag) { if (b3D) CTheScripts::DrawDebugCube(X - dX, Y - dY, Z - dZ, X + dX, Y + dY, Z + dZ); else CTheScripts::DrawDebugSquare(X - dX, Y - dY, X + dX, Y + dY); } - */ } void CRunningScript::LocateCharCarCommand(int32 command, uint32* pIp) @@ -502,22 +518,22 @@ void CRunningScript::LocateCharCarCommand(int32 command, uint32* pIp) break; } CollectParameters(pIp, b3D ? 6 : 5); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CVehicle* pTarget = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); + CVehicle* pTarget = CPools::GetVehiclePool()->GetAt(ScriptParams[1]); script_assert(pTarget); CVector pos = pPed->bInVehicle ? pPed->m_pMyVehicle->GetPosition() : pPed->GetPosition(); X = pTarget->GetPosition().x; Y = pTarget->GetPosition().y; Z = pTarget->GetPosition().z; - dX = GET_FLOAT_PARAM(2); - dY = GET_FLOAT_PARAM(3); + dX = *(float*)&ScriptParams[2]; + dY = *(float*)&ScriptParams[3]; if (b3D) { - dZ = GET_FLOAT_PARAM(4); - debug = GET_INTEGER_PARAM(5); + dZ = *(float*)&ScriptParams[4]; + debug = ScriptParams[5]; } else { - debug = GET_INTEGER_PARAM(4); + debug = ScriptParams[4]; } result = false; bool in_area; @@ -557,14 +573,12 @@ void CRunningScript::LocateCharCarCommand(int32 command, uint32* pIp) UpdateCompareFlag(result); if (debug) CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, X - dX, Y - dY, X + dX, Y + dY, b3D ? Z : MAP_Z_LOW_LIMIT); - /* if (CTheScripts::DbgFlag) { if (b3D) CTheScripts::DrawDebugCube(X - dX, Y - dY, Z - dZ, X + dX, Y + dY, Z + dZ); else CTheScripts::DrawDebugSquare(X - dX, Y - dY, X + dX, Y + dY); } - */ } void CRunningScript::LocateCharObjectCommand(int32 command, uint32* pIp) @@ -582,22 +596,22 @@ void CRunningScript::LocateCharObjectCommand(int32 command, uint32* pIp) break; } CollectParameters(pIp, b3D ? 6 : 5); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CObject* pTarget = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(1)); + CObject* pTarget = CPools::GetObjectPool()->GetAt(ScriptParams[1]); script_assert(pTarget); CVector pos = pPed->bInVehicle ? pPed->m_pMyVehicle->GetPosition() : pPed->GetPosition(); X = pTarget->GetPosition().x; Y = pTarget->GetPosition().y; Z = pTarget->GetPosition().z; - dX = GET_FLOAT_PARAM(2); - dY = GET_FLOAT_PARAM(3); + dX = *(float*)&ScriptParams[2]; + dY = *(float*)&ScriptParams[3]; if (b3D) { - dZ = GET_FLOAT_PARAM(4); - debug = GET_INTEGER_PARAM(5); + dZ = *(float*)&ScriptParams[4]; + debug = ScriptParams[5]; } else { - debug = GET_INTEGER_PARAM(4); + debug = ScriptParams[4]; } result = false; bool in_area; @@ -637,14 +651,12 @@ void CRunningScript::LocateCharObjectCommand(int32 command, uint32* pIp) UpdateCompareFlag(result); if (debug) CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, X - dX, Y - dY, X + dX, Y + dY, b3D ? Z : MAP_Z_LOW_LIMIT); - /* if (CTheScripts::DbgFlag) { if (b3D) CTheScripts::DrawDebugCube(X - dX, Y - dY, Z - dZ, X + dX, Y + dY, Z + dZ); else CTheScripts::DrawDebugSquare(X - dX, Y - dY, X + dX, Y + dY); } - */ } void CRunningScript::LocateCarCommand(int32 command, uint32* pIp) @@ -660,8 +672,8 @@ void CRunningScript::LocateCarCommand(int32 command, uint32* pIp) b3D = false; break; } - uint32 id = CollectLocateParameters(pIp, b3D); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CollectParameters(pIp, b3D ? 8 : 6); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); CVector pos = pVehicle->GetPosition(); switch (command) { @@ -675,19 +687,19 @@ void CRunningScript::LocateCarCommand(int32 command, uint32* pIp) default: break; } - X = GET_FLOAT_PARAM(1); - Y = GET_FLOAT_PARAM(2); + X = *(float*)&ScriptParams[1]; + Y = *(float*)&ScriptParams[2]; if (b3D) { - Z = GET_FLOAT_PARAM(3); - dX = GET_FLOAT_PARAM(4); - dY = GET_FLOAT_PARAM(5); - dZ = GET_FLOAT_PARAM(6); - debug = GET_INTEGER_PARAM(7); + Z = *(float*)&ScriptParams[3]; + dX = *(float*)&ScriptParams[4]; + dY = *(float*)&ScriptParams[5]; + dZ = *(float*)&ScriptParams[6]; + debug = ScriptParams[7]; } else { - dX = GET_FLOAT_PARAM(3); - dY = GET_FLOAT_PARAM(4); - debug = GET_INTEGER_PARAM(5); + dX = *(float*)&ScriptParams[3]; + dY = *(float*)&ScriptParams[4]; + debug = ScriptParams[5]; } if (!decided) { result = false; @@ -710,15 +722,13 @@ void CRunningScript::LocateCarCommand(int32 command, uint32* pIp) } UpdateCompareFlag(result); if (debug) - CTheScripts::HighlightImportantArea(id, X - dX, Y - dY, X + dX, Y + dY, b3D ? Z : MAP_Z_LOW_LIMIT); - /* + CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, X - dX, Y - dY, X + dX, Y + dY, b3D ? Z : MAP_Z_LOW_LIMIT); if (CTheScripts::DbgFlag) { if (b3D) CTheScripts::DrawDebugCube(X - dX, Y - dY, Z - dZ, X + dX, Y + dY, Z + dZ); else CTheScripts::DrawDebugSquare(X - dX, Y - dY, X + dX, Y + dY); } - */ } void CRunningScript::LocateObjectCommand(int32 command, uint32* pIp) @@ -733,23 +743,23 @@ void CRunningScript::LocateObjectCommand(int32 command, uint32* pIp) b3D = false; break; } - uint32 id = CollectLocateParameters(pIp, b3D); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CollectParameters(pIp, b3D ? 8 : 6); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); CVector pos = pObject->GetPosition(); - X = GET_FLOAT_PARAM(1); - Y = GET_FLOAT_PARAM(2); + X = *(float*)&ScriptParams[1]; + Y = *(float*)&ScriptParams[2]; if (b3D) { - Z = GET_FLOAT_PARAM(3); - dX = GET_FLOAT_PARAM(4); - dY = GET_FLOAT_PARAM(5); - dZ = GET_FLOAT_PARAM(6); - debug = GET_INTEGER_PARAM(7); + Z = *(float*)&ScriptParams[3]; + dX = *(float*)&ScriptParams[4]; + dY = *(float*)&ScriptParams[5]; + dZ = *(float*)&ScriptParams[6]; + debug = ScriptParams[7]; } else { - dX = GET_FLOAT_PARAM(3); - dY = GET_FLOAT_PARAM(4); - debug = GET_INTEGER_PARAM(5); + dX = *(float*)&ScriptParams[3]; + dY = *(float*)&ScriptParams[4]; + debug = ScriptParams[5]; } result = false; bool in_area; @@ -770,15 +780,13 @@ void CRunningScript::LocateObjectCommand(int32 command, uint32* pIp) result = in_area; UpdateCompareFlag(result); if (debug) - CTheScripts::HighlightImportantArea(id, X - dX, Y - dY, X + dX, Y + dY, b3D ? Z : MAP_Z_LOW_LIMIT); - /* + CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, X - dX, Y - dY, X + dX, Y + dY, b3D ? Z : MAP_Z_LOW_LIMIT); if (CTheScripts::DbgFlag) { if (b3D) CTheScripts::DrawDebugCube(X - dX, Y - dY, Z - dZ, X + dX, Y + dY, Z + dZ); else CTheScripts::DrawDebugSquare(X - dX, Y - dY, X + dX, Y + dY); } - */ } void CRunningScript::LocateSniperBulletCommand(int32 command, uint32* pIp) @@ -794,32 +802,30 @@ void CRunningScript::LocateSniperBulletCommand(int32 command, uint32* pIp) break; } CollectParameters(pIp, b3D ? 7 : 5); - X = GET_FLOAT_PARAM(0); - Y = GET_FLOAT_PARAM(1); + X = *(float*)&ScriptParams[0]; + Y = *(float*)&ScriptParams[1]; if (b3D) { - Z = GET_FLOAT_PARAM(2); - dX = GET_FLOAT_PARAM(3); - dY = GET_FLOAT_PARAM(4); - dZ = GET_FLOAT_PARAM(5); - debug = GET_INTEGER_PARAM(6); + Z = *(float*)&ScriptParams[2]; + dX = *(float*)&ScriptParams[3]; + dY = *(float*)&ScriptParams[4]; + dZ = *(float*)&ScriptParams[5]; + debug = ScriptParams[6]; } else { - dX = GET_FLOAT_PARAM(2); - dY = GET_FLOAT_PARAM(3); - debug = GET_INTEGER_PARAM(4); + dX = *(float*)&ScriptParams[2]; + dY = *(float*)&ScriptParams[3]; + debug = ScriptParams[4]; } result = CBulletInfo::TestForSniperBullet(X - dX, X + dX, Y - dY, Y + dY, b3D ? Z - dZ : -1000.0f, b3D ? Z + dZ : 1000.0f); UpdateCompareFlag(result); if (debug) CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, X - dX, Y - dY, X + dX, Y + dY, b3D ? Z : MAP_Z_LOW_LIMIT); - /* if (CTheScripts::DbgFlag) { if (b3D) CTheScripts::DrawDebugCube(X - dX, Y - dY, Z - dZ, X + dX, Y + dY, Z + dZ); else CTheScripts::DrawDebugSquare(X - dX, Y - dY, X + dX, Y + dY); } - */ } void CRunningScript::PlayerInAreaCheckCommand(int32 command, uint32* pIp) @@ -839,8 +845,8 @@ void CRunningScript::PlayerInAreaCheckCommand(int32 command, uint32* pIp) b3D = false; break; } - uint32 id = CollectLocateParameters(pIp, b3D); - CPlayerInfo* pPlayerInfo = &CWorld::Players[GET_INTEGER_PARAM(0)]; + CollectParameters(pIp, b3D ? 8 : 6); + CPlayerInfo* pPlayerInfo = &CWorld::Players[ScriptParams[0]]; switch (command) { case COMMAND_IS_PLAYER_STOPPED_IN_AREA_3D: case COMMAND_IS_PLAYER_STOPPED_IN_AREA_ON_FOOT_3D: @@ -856,23 +862,23 @@ void CRunningScript::PlayerInAreaCheckCommand(int32 command, uint32* pIp) default: break; } - infX = GET_FLOAT_PARAM(1); - infY = GET_FLOAT_PARAM(2); + infX = *(float*)&ScriptParams[1]; + infY = *(float*)&ScriptParams[2]; if (b3D) { - infZ = GET_FLOAT_PARAM(3); - supX = GET_FLOAT_PARAM(4); - supY = GET_FLOAT_PARAM(5); - supZ = GET_FLOAT_PARAM(6); + infZ = *(float*)&ScriptParams[3]; + supX = *(float*)&ScriptParams[4]; + supY = *(float*)&ScriptParams[5]; + supZ = *(float*)&ScriptParams[6]; if (infZ > supZ) { - infZ = GET_FLOAT_PARAM(6); - supZ = GET_FLOAT_PARAM(3); + infZ = *(float*)&ScriptParams[6]; + supZ = *(float*)&ScriptParams[3]; } - debug = GET_INTEGER_PARAM(7); + debug = ScriptParams[7]; } else { - supX = GET_FLOAT_PARAM(3); - supY = GET_FLOAT_PARAM(4); - debug = GET_INTEGER_PARAM(5); + supX = *(float*)&ScriptParams[3]; + supY = *(float*)&ScriptParams[4]; + debug = ScriptParams[5]; } if (infX > supX) { float tmp = infX; @@ -931,14 +937,12 @@ void CRunningScript::PlayerInAreaCheckCommand(int32 command, uint32* pIp) UpdateCompareFlag(result); if (debug) CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, infX, infY, supX, supY, b3D ? (infZ + supZ) / 2 : MAP_Z_LOW_LIMIT); - /* if (CTheScripts::DbgFlag) { if (b3D) CTheScripts::DrawDebugCube(infX, infY, infZ, supX, supY, supZ); else CTheScripts::DrawDebugSquare(infX, infY, supX, supY); } - */ } void CRunningScript::PlayerInAngledAreaCheckCommand(int32 command, uint32* pIp) @@ -959,7 +963,7 @@ void CRunningScript::PlayerInAngledAreaCheckCommand(int32 command, uint32* pIp) break; } CollectParameters(pIp, b3D ? 9 : 7); - CPlayerInfo* pPlayerInfo = &CWorld::Players[GET_INTEGER_PARAM(0)]; + CPlayerInfo* pPlayerInfo = &CWorld::Players[ScriptParams[0]]; switch (command) { case COMMAND_IS_PLAYER_STOPPED_IN_ANGLED_AREA_3D: case COMMAND_IS_PLAYER_STOPPED_IN_ANGLED_AREA_ON_FOOT_3D: @@ -975,25 +979,25 @@ void CRunningScript::PlayerInAngledAreaCheckCommand(int32 command, uint32* pIp) default: break; } - infX = GET_FLOAT_PARAM(1); - infY = GET_FLOAT_PARAM(2); + infX = *(float*)&ScriptParams[1]; + infY = *(float*)&ScriptParams[2]; if (b3D) { - infZ = GET_FLOAT_PARAM(3); - supX = GET_FLOAT_PARAM(4); - supY = GET_FLOAT_PARAM(5); - supZ = GET_FLOAT_PARAM(6); + infZ = *(float*)&ScriptParams[3]; + supX = *(float*)&ScriptParams[4]; + supY = *(float*)&ScriptParams[5]; + supZ = *(float*)&ScriptParams[6]; if (infZ > supZ) { - infZ = GET_FLOAT_PARAM(6); - supZ = GET_FLOAT_PARAM(3); + infZ = *(float*)&ScriptParams[6]; + supZ = *(float*)&ScriptParams[3]; } - side2length = GET_FLOAT_PARAM(7); - debug = GET_INTEGER_PARAM(8); + side2length = *(float*)&ScriptParams[7]; + debug = ScriptParams[8]; } else { - supX = GET_FLOAT_PARAM(3); - supY = GET_FLOAT_PARAM(4); - side2length = GET_FLOAT_PARAM(5); - debug = GET_INTEGER_PARAM(6); + supX = *(float*)&ScriptParams[3]; + supY = *(float*)&ScriptParams[4]; + side2length = *(float*)&ScriptParams[5]; + debug = ScriptParams[6]; } float initAngle = CGeneral::GetRadianAngleBetweenPoints(infX, infY, supX, supY) + HALFPI; while (initAngle < 0.0f) @@ -1056,7 +1060,6 @@ void CRunningScript::PlayerInAngledAreaCheckCommand(int32 command, uint32* pIp) if (debug) CTheScripts::HighlightImportantAngledArea((uintptr)this + m_nIp, infX, infY, supX, supY, rotatedSupX, rotatedSupY, rotatedInfX, rotatedInfY, b3D ? (infZ + supZ) / 2 : MAP_Z_LOW_LIMIT); - /* if (CTheScripts::DbgFlag) { if (b3D) CTheScripts::DrawDebugAngledCube(infX, infY, infZ, supX, supY, supZ, @@ -1065,7 +1068,6 @@ void CRunningScript::PlayerInAngledAreaCheckCommand(int32 command, uint32* pIp) CTheScripts::DrawDebugAngledSquare(infX, infY, supX, supY, rotatedSupX, rotatedSupY, rotatedInfX, rotatedInfY); } - */ } void CRunningScript::CharInAreaCheckCommand(int32 command, uint32* pIp) @@ -1085,8 +1087,8 @@ void CRunningScript::CharInAreaCheckCommand(int32 command, uint32* pIp) b3D = false; break; } - uint32 id = CollectLocateParameters(pIp, b3D); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CollectParameters(pIp, b3D ? 8 : 6); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); CVector pos = pPed->InVehicle() ? pPed->m_pMyVehicle->GetPosition() : pPed->GetPosition(); switch (command) { @@ -1104,23 +1106,23 @@ void CRunningScript::CharInAreaCheckCommand(int32 command, uint32* pIp) default: break; } - infX = GET_FLOAT_PARAM(1); - infY = GET_FLOAT_PARAM(2); + infX = *(float*)&ScriptParams[1]; + infY = *(float*)&ScriptParams[2]; if (b3D) { - infZ = GET_FLOAT_PARAM(3); - supX = GET_FLOAT_PARAM(4); - supY = GET_FLOAT_PARAM(5); - supZ = GET_FLOAT_PARAM(6); + infZ = *(float*)&ScriptParams[3]; + supX = *(float*)&ScriptParams[4]; + supY = *(float*)&ScriptParams[5]; + supZ = *(float*)&ScriptParams[6]; if (infZ > supZ) { - infZ = GET_FLOAT_PARAM(6); - supZ = GET_FLOAT_PARAM(3); + infZ = *(float*)&ScriptParams[6]; + supZ = *(float*)&ScriptParams[3]; } - debug = GET_INTEGER_PARAM(7); + debug = ScriptParams[7]; } else { - supX = GET_FLOAT_PARAM(3); - supY = GET_FLOAT_PARAM(4); - debug = GET_INTEGER_PARAM(5); + supX = *(float*)&ScriptParams[3]; + supY = *(float*)&ScriptParams[4]; + debug = ScriptParams[5]; } if (infX > supX) { float tmp = infX; @@ -1177,15 +1179,13 @@ void CRunningScript::CharInAreaCheckCommand(int32 command, uint32* pIp) } UpdateCompareFlag(result); if (debug) - CTheScripts::HighlightImportantArea(id, infX, infY, supX, supY, b3D ? (infZ + supZ) / 2 : MAP_Z_LOW_LIMIT); - /* + CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, infX, infY, supX, supY, b3D ? (infZ + supZ) / 2 : MAP_Z_LOW_LIMIT); if (CTheScripts::DbgFlag) { if (b3D) CTheScripts::DrawDebugCube(infX, infY, infZ, supX, supY, supZ); else CTheScripts::DrawDebugSquare(infX, infY, supX, supY); } - */ } void CRunningScript::CarInAreaCheckCommand(int32 command, uint32* pIp) @@ -1201,8 +1201,8 @@ void CRunningScript::CarInAreaCheckCommand(int32 command, uint32* pIp) b3D = false; break; } - uint32 id = CollectLocateParameters(pIp, b3D); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CollectParameters(pIp, b3D ? 8 : 6); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); CVector pos = pVehicle->GetPosition(); switch (command) { @@ -1216,23 +1216,23 @@ void CRunningScript::CarInAreaCheckCommand(int32 command, uint32* pIp) default: break; } - infX = GET_FLOAT_PARAM(1); - infY = GET_FLOAT_PARAM(2); + infX = *(float*)&ScriptParams[1]; + infY = *(float*)&ScriptParams[2]; if (b3D) { - infZ = GET_FLOAT_PARAM(3); - supX = GET_FLOAT_PARAM(4); - supY = GET_FLOAT_PARAM(5); - supZ = GET_FLOAT_PARAM(6); + infZ = *(float*)&ScriptParams[3]; + supX = *(float*)&ScriptParams[4]; + supY = *(float*)&ScriptParams[5]; + supZ = *(float*)&ScriptParams[6]; if (infZ > supZ) { - infZ = GET_FLOAT_PARAM(6); - supZ = GET_FLOAT_PARAM(3); + infZ = *(float*)&ScriptParams[6]; + supZ = *(float*)&ScriptParams[3]; } - debug = GET_INTEGER_PARAM(7); + debug = ScriptParams[7]; } else { - supX = GET_FLOAT_PARAM(3); - supY = GET_FLOAT_PARAM(4); - debug = GET_INTEGER_PARAM(5); + supX = *(float*)&ScriptParams[3]; + supY = *(float*)&ScriptParams[4]; + debug = ScriptParams[5]; } if (infX > supX) { float tmp = infX; @@ -1277,15 +1277,13 @@ void CRunningScript::CarInAreaCheckCommand(int32 command, uint32* pIp) } UpdateCompareFlag(result); if (debug) - CTheScripts::HighlightImportantArea(id, infX, infY, supX, supY, b3D ? (infZ + supZ) / 2 : MAP_Z_LOW_LIMIT); - /* + CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, infX, infY, supX, supY, b3D ? (infZ + supZ) / 2 : MAP_Z_LOW_LIMIT); if (CTheScripts::DbgFlag) { if (b3D) CTheScripts::DrawDebugCube(infX, infY, infZ, supX, supY, supZ); else CTheScripts::DrawDebugSquare(infX, infY, supX, supY); } - */ } void CRunningScript::ObjectInAreaCheckCommand(int32 command, uint32* pIp) @@ -1300,27 +1298,27 @@ void CRunningScript::ObjectInAreaCheckCommand(int32 command, uint32* pIp) b3D = false; break; } - uint32 id = CollectLocateParameters(pIp, b3D); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CollectParameters(pIp, b3D ? 8 : 6); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); CVector pos = pObject->GetPosition(); - infX = GET_FLOAT_PARAM(1); - infY = GET_FLOAT_PARAM(2); + infX = *(float*)&ScriptParams[1]; + infY = *(float*)&ScriptParams[2]; if (b3D) { - infZ = GET_FLOAT_PARAM(3); - supX = GET_FLOAT_PARAM(4); - supY = GET_FLOAT_PARAM(5); - supZ = GET_FLOAT_PARAM(6); + infZ = *(float*)&ScriptParams[3]; + supX = *(float*)&ScriptParams[4]; + supY = *(float*)&ScriptParams[5]; + supZ = *(float*)&ScriptParams[6]; if (infZ > supZ) { - infZ = GET_FLOAT_PARAM(6); - supZ = GET_FLOAT_PARAM(3); + infZ = *(float*)&ScriptParams[6]; + supZ = *(float*)&ScriptParams[3]; } - debug = GET_INTEGER_PARAM(7); + debug = ScriptParams[7]; } else { - supX = GET_FLOAT_PARAM(3); - supY = GET_FLOAT_PARAM(4); - debug = GET_INTEGER_PARAM(5); + supX = *(float*)&ScriptParams[3]; + supY = *(float*)&ScriptParams[4]; + debug = ScriptParams[5]; } if (infX > supX) { float tmp = infX; @@ -1361,15 +1359,13 @@ void CRunningScript::ObjectInAreaCheckCommand(int32 command, uint32* pIp) } UpdateCompareFlag(result); if (debug) - CTheScripts::HighlightImportantArea(id, infX, infY, supX, supY, b3D ? (infZ + supZ) / 2 : MAP_Z_LOW_LIMIT); - /* + CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, infX, infY, supX, supY, b3D ? (infZ + supZ) / 2 : MAP_Z_LOW_LIMIT); if (CTheScripts::DbgFlag) { if (b3D) CTheScripts::DrawDebugCube(infX, infY, infZ, supX, supY, supZ); else CTheScripts::DrawDebugSquare(infX, infY, supX, supY); } - */ } void CRunningScript::DoDeatharrestCheck() @@ -1390,8 +1386,7 @@ void CRunningScript::DoDeatharrestCheck() script_assert(m_nStackPointer > 0); while (m_nStackPointer > 1) --m_nStackPointer; - ReturnFromGosubOrFunction(); - m_nLocalsPointer = 0; + m_nIp = m_anStack[--m_nStackPointer]; CMessages::ClearSmallMessagesOnly(); *(int32*)&CTheScripts::ScriptSpace[CTheScripts::OnAMissionFlag] = 0; m_bDeatharrestExecuted = true; @@ -1445,24 +1440,24 @@ void CRunningScript::LocateCollectiveCommand(int32 command, uint32* pIp) b3D = true; break; } - uint32 id = CollectLocateParameters(pIp, b3D); - X = GET_FLOAT_PARAM(1); - Y = GET_FLOAT_PARAM(2); + CollectParameters(pIp, b3D ? 8 : 6); + X = *(float*)&ScriptParams[1]; + Y = *(float*)&ScriptParams[2]; if (b3D) { - Z = GET_FLOAT_PARAM(3); - dX = GET_FLOAT_PARAM(4); - dY = GET_FLOAT_PARAM(5); - dZ = GET_FLOAT_PARAM(6); - debug = GET_INTEGER_PARAM(7); + Z = *(float*)&ScriptParams[3]; + dX = *(float*)&ScriptParams[4]; + dY = *(float*)&ScriptParams[5]; + dZ = *(float*)&ScriptParams[6]; + debug = ScriptParams[7]; } else { - dX = GET_FLOAT_PARAM(3); - dY = GET_FLOAT_PARAM(4); - debug = GET_INTEGER_PARAM(5); + dX = *(float*)&ScriptParams[3]; + dY = *(float*)&ScriptParams[4]; + debug = ScriptParams[5]; } result = true; for (int i = 0; i < MAX_NUM_COLLECTIVES && result; i++) { - if (GET_INTEGER_PARAM(0) != CTheScripts::CollectiveArray[i].colIndex) + if (ScriptParams[0] != CTheScripts::CollectiveArray[i].colIndex) continue; CPed* pPed = CPools::GetPedPool()->GetAt(CTheScripts::CollectiveArray[i].pedIndex); if (!pPed) { @@ -1523,15 +1518,13 @@ void CRunningScript::LocateCollectiveCommand(int32 command, uint32* pIp) } UpdateCompareFlag(result); if (debug) - CTheScripts::HighlightImportantArea(id, X - dX, Y - dY, X + dX, Y + dY, b3D ? Z : MAP_Z_LOW_LIMIT); - /* + CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, X - dX, Y - dY, X + dX, Y + dY, b3D ? Z : MAP_Z_LOW_LIMIT); if (CTheScripts::DbgFlag) { if (b3D) CTheScripts::DrawDebugCube(X - dX, Y - dY, Z - dZ, X + dX, Y + dY, Z + dZ); else CTheScripts::DrawDebugSquare(X - dX, Y - dY, X + dX, Y + dY); } - */ } void CRunningScript::LocateCollectiveCharCommand(int32 command, uint32* pIp) @@ -1549,7 +1542,7 @@ void CRunningScript::LocateCollectiveCharCommand(int32 command, uint32* pIp) break; } CollectParameters(pIp, b3D ? 6 : 5); - CPed* pTarget = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); + CPed* pTarget = CPools::GetPedPool()->GetAt(ScriptParams[1]); script_assert(pTarget); if (pTarget->bInVehicle) { X = pTarget->m_pMyVehicle->GetPosition().x; @@ -1561,18 +1554,18 @@ void CRunningScript::LocateCollectiveCharCommand(int32 command, uint32* pIp) Y = pTarget->GetPosition().y; Z = pTarget->GetPosition().z; } - dX = GET_FLOAT_PARAM(2); - dY = GET_FLOAT_PARAM(3); + dX = *(float*)&ScriptParams[2]; + dY = *(float*)&ScriptParams[3]; if (b3D) { - dZ = GET_FLOAT_PARAM(4); - debug = GET_INTEGER_PARAM(5); + dZ = *(float*)&ScriptParams[4]; + debug = ScriptParams[5]; } else { - debug = GET_INTEGER_PARAM(4); + debug = ScriptParams[4]; } result = true; for (int i = 0; i < MAX_NUM_COLLECTIVES && result; i++) { - if (GET_INTEGER_PARAM(0) != CTheScripts::CollectiveArray[i].colIndex) + if (ScriptParams[0] != CTheScripts::CollectiveArray[i].colIndex) continue; CPed* pPed = CPools::GetPedPool()->GetAt(CTheScripts::CollectiveArray[i].pedIndex); if (!pPed) { @@ -1617,14 +1610,12 @@ void CRunningScript::LocateCollectiveCharCommand(int32 command, uint32* pIp) UpdateCompareFlag(result); if (debug) CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, X - dX, Y - dY, X + dX, Y + dY, b3D ? Z : MAP_Z_LOW_LIMIT); - /* if (CTheScripts::DbgFlag) { if (b3D) CTheScripts::DrawDebugCube(X - dX, Y - dY, Z - dZ, X + dX, Y + dY, Z + dZ); else CTheScripts::DrawDebugSquare(X - dX, Y - dY, X + dX, Y + dY); } - */ } void CRunningScript::LocateCollectiveCarCommand(int32 command, uint32* pIp) @@ -1642,23 +1633,23 @@ void CRunningScript::LocateCollectiveCarCommand(int32 command, uint32* pIp) break; } CollectParameters(pIp, b3D ? 6 : 5); - CVehicle* pTarget = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); + CVehicle* pTarget = CPools::GetVehiclePool()->GetAt(ScriptParams[1]); script_assert(pTarget); X = pTarget->GetPosition().x; Y = pTarget->GetPosition().y; Z = pTarget->GetPosition().z; - dX = GET_FLOAT_PARAM(2); - dY = GET_FLOAT_PARAM(3); + dX = *(float*)&ScriptParams[2]; + dY = *(float*)&ScriptParams[3]; if (b3D) { - dZ = GET_FLOAT_PARAM(4); - debug = GET_INTEGER_PARAM(5); + dZ = *(float*)&ScriptParams[4]; + debug = ScriptParams[5]; } else { - debug = GET_INTEGER_PARAM(4); + debug = ScriptParams[4]; } result = true; for (int i = 0; i < MAX_NUM_COLLECTIVES && result; i++) { - if (GET_INTEGER_PARAM(0) != CTheScripts::CollectiveArray[i].colIndex) + if (ScriptParams[0] != CTheScripts::CollectiveArray[i].colIndex) continue; CPed* pPed = CPools::GetPedPool()->GetAt(CTheScripts::CollectiveArray[i].pedIndex); if (!pPed) { @@ -1703,14 +1694,12 @@ void CRunningScript::LocateCollectiveCarCommand(int32 command, uint32* pIp) UpdateCompareFlag(result); if (debug) CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, X - dX, Y - dY, X + dX, Y + dY, b3D ? Z : MAP_Z_LOW_LIMIT); - /* if (CTheScripts::DbgFlag) { if (b3D) CTheScripts::DrawDebugCube(X - dX, Y - dY, Z - dZ, X + dX, Y + dY, Z + dZ); else CTheScripts::DrawDebugSquare(X - dX, Y - dY, X + dX, Y + dY); } - */ } void CRunningScript::LocateCollectivePlayerCommand(int32 command, uint32* pIp) @@ -1728,22 +1717,22 @@ void CRunningScript::LocateCollectivePlayerCommand(int32 command, uint32* pIp) break; } CollectParameters(pIp, b3D ? 6 : 5); - CVector pos = CWorld::Players[GET_INTEGER_PARAM(1)].GetPos(); + CVector pos = CWorld::Players[ScriptParams[1]].GetPos(); X = pos.x; Y = pos.y; Z = pos.z; - dX = GET_FLOAT_PARAM(2); - dY = GET_FLOAT_PARAM(3); + dX = *(float*)&ScriptParams[2]; + dY = *(float*)&ScriptParams[3]; if (b3D) { - dZ = GET_FLOAT_PARAM(4); - debug = GET_INTEGER_PARAM(5); + dZ = *(float*)&ScriptParams[4]; + debug = ScriptParams[5]; } else { - debug = GET_INTEGER_PARAM(4); + debug = ScriptParams[4]; } result = true; for (int i = 0; i < MAX_NUM_COLLECTIVES && result; i++) { - if (GET_INTEGER_PARAM(0) != CTheScripts::CollectiveArray[i].colIndex) + if (ScriptParams[0] != CTheScripts::CollectiveArray[i].colIndex) continue; CPed* pPed = CPools::GetPedPool()->GetAt(CTheScripts::CollectiveArray[i].pedIndex); if (!pPed) { @@ -1788,14 +1777,12 @@ void CRunningScript::LocateCollectivePlayerCommand(int32 command, uint32* pIp) UpdateCompareFlag(result); if (debug) CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, X - dX, Y - dY, X + dX, Y + dY, b3D ? Z : MAP_Z_LOW_LIMIT); - /* if (CTheScripts::DbgFlag) { if (b3D) CTheScripts::DrawDebugCube(X - dX, Y - dY, Z - dZ, X + dX, Y + dY, Z + dZ); else CTheScripts::DrawDebugSquare(X - dX, Y - dY, X + dX, Y + dY); } - */ } void CRunningScript::CollectiveInAreaCheckCommand(int32 command, uint32* pIp) @@ -1816,23 +1803,23 @@ void CRunningScript::CollectiveInAreaCheckCommand(int32 command, uint32* pIp) break; } CollectParameters(pIp, b3D ? 8 : 6); - infX = GET_FLOAT_PARAM(1); - infY = GET_FLOAT_PARAM(2); + infX = *(float*)&ScriptParams[1]; + infY = *(float*)&ScriptParams[2]; if (b3D) { - infZ = GET_FLOAT_PARAM(3); - supX = GET_FLOAT_PARAM(4); - supY = GET_FLOAT_PARAM(5); - supZ = GET_FLOAT_PARAM(6); + infZ = *(float*)&ScriptParams[3]; + supX = *(float*)&ScriptParams[4]; + supY = *(float*)&ScriptParams[5]; + supZ = *(float*)&ScriptParams[6]; if (infZ > supZ) { - infZ = GET_FLOAT_PARAM(6); - supZ = GET_FLOAT_PARAM(3); + infZ = *(float*)&ScriptParams[6]; + supZ = *(float*)&ScriptParams[3]; } - debug = GET_INTEGER_PARAM(7); + debug = ScriptParams[7]; } else { - supX = GET_FLOAT_PARAM(3); - supY = GET_FLOAT_PARAM(4); - debug = GET_INTEGER_PARAM(5); + supX = *(float*)&ScriptParams[3]; + supY = *(float*)&ScriptParams[4]; + debug = ScriptParams[5]; } if (infX > supX) { float tmp = infX; @@ -1846,7 +1833,7 @@ void CRunningScript::CollectiveInAreaCheckCommand(int32 command, uint32* pIp) } result = true; for (int i = 0; i < MAX_NUM_COLLECTIVES && result; i++) { - if (GET_INTEGER_PARAM(0) != CTheScripts::CollectiveArray[i].colIndex) + if (ScriptParams[0] != CTheScripts::CollectiveArray[i].colIndex) continue; CPed* pPed = CPools::GetPedPool()->GetAt(CTheScripts::CollectiveArray[i].pedIndex); if (!pPed) { @@ -1908,14 +1895,12 @@ void CRunningScript::CollectiveInAreaCheckCommand(int32 command, uint32* pIp) UpdateCompareFlag(result); if (debug) CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, infX, infY, supX, supY, b3D ? (infZ + supZ) / 2 : MAP_Z_LOW_LIMIT); - /* if (CTheScripts::DbgFlag) { if (b3D) CTheScripts::DrawDebugCube(infX, infY, infZ, supX, supY, supZ); else CTheScripts::DrawDebugSquare(infX, infY, supX, supY); } - */ } #endif @@ -2002,9 +1987,8 @@ void CTheScripts::PrintListSizes() debug("active: %d, idle: %d", active, idle); } -//uint32 DbgLineColour = 0x0000FFFF; // r = 0, g = 0, b = 255, a = 255 +uint32 DbgLineColour = 0x0000FFFF; // r = 0, g = 0, b = 255, a = 255 -/* void CTheScripts::DrawDebugSquare(float infX, float infY, float supX, float supY) { CColPoint tmpCP; @@ -2111,7 +2095,6 @@ void CTheScripts::RenderTheScriptDebugLines() NumScriptDebugLines = 0; RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)0); } -*/ #define SCRIPT_DATA_SIZE sizeof(CTheScripts::OnAMissionFlag) +\ 4 * sizeof(uint32) * MAX_NUM_BUILDING_SWAPS + 2 * sizeof(uint32) * MAX_NUM_INVISIBILITY_SETTINGS + 5 * sizeof(uint32) @@ -2135,9 +2118,6 @@ INITSAVEBUF WriteSaveBuf(buf, script_data_size); WriteSaveBuf(buf, OnAMissionFlag); WriteSaveBuf(buf, LastMissionPassedTime); - for (uint32 i = 0; i < MAX_NUM_COLLECTIVES; i++) - WriteSaveBuf(buf, CollectiveArray[i]); - WriteSaveBuf(buf, NextFreeCollectiveIndex); for (uint32 i = 0; i < MAX_NUM_BUILDING_SWAPS; i++) { CBuilding* pBuilding = BuildingSwapArray[i].m_pBuilding; uint32 type, handle; @@ -2199,36 +2179,20 @@ INITSAVEBUF VALIDATESAVEBUF(*size) } -// TODO: I don't really understand how script loading works, so I leave it the VC way for now. -bool CTheScripts::LoadAllScripts(uint8* buf, uint32 size) +void CTheScripts::LoadAllScripts(uint8* buf, uint32 size) { - Init(); // TODO: in LCS CTheScripts::Init call GenericLoad, which then calls LoadAllScripts + Init(); INITSAVEBUF CheckSaveHeader(buf, 'S', 'C', 'R', '\0', size - SAVE_HEADER_SIZE); uint32 varSpace = ReadSaveBuf(buf); - if (*(int32*)&ScriptSpace[0] != *(int32*)&buf[0] || *(int32*)&ScriptSpace[4] != *(int32*)&buf[4]) { - printf("\n===================================================\nSave Game Mismatch!!!\n"); - return false; - } - for (uint32 i = 0; i < varSpace; i++) { // this is not exactly what function does - if (i < 8) - ScriptSpace[i] = ReadSaveBuf(buf); - else if (GetSaveVarIndex(i / 4 * 4) != -1) - ScriptSpace[i] = ReadSaveBuf(buf); - else - ReadSaveBuf(buf); - } - // everything else is... gone? TODO + for (uint32 i = 0; i < varSpace; i++) + ScriptSpace[i] = ReadSaveBuf(buf); script_assert(ReadSaveBuf(buf) == SCRIPT_DATA_SIZE); OnAMissionFlag = ReadSaveBuf(buf); LastMissionPassedTime = ReadSaveBuf(buf); - for (uint32 i = 0; i < MAX_NUM_COLLECTIVES; i++) - CollectiveArray[i] = ReadSaveBuf(buf); - NextFreeCollectiveIndex = ReadSaveBuf(buf); for (uint32 i = 0; i < MAX_NUM_BUILDING_SWAPS; i++) { uint32 type = ReadSaveBuf(buf); uint32 handle = ReadSaveBuf(buf); - /* switch (type) { case 0: BuildingSwapArray[i].m_pBuilding = nil; @@ -2242,18 +2206,14 @@ INITSAVEBUF default: script_assert(false); } - */ - /*BuildingSwapArray[i].m_nNewModel = */ReadSaveBuf(buf); - /*BuildingSwapArray[i].m_nOldModel = */ReadSaveBuf(buf); - /* + BuildingSwapArray[i].m_nNewModel = ReadSaveBuf(buf); + BuildingSwapArray[i].m_nOldModel = ReadSaveBuf(buf); if (BuildingSwapArray[i].m_pBuilding) BuildingSwapArray[i].m_pBuilding->ReplaceWithNewModel(BuildingSwapArray[i].m_nNewModel); - */ } for (uint32 i = 0; i < MAX_NUM_INVISIBILITY_SETTINGS; i++) { uint32 type = ReadSaveBuf(buf); uint32 handle = ReadSaveBuf(buf); - /* switch (type) { case 0: InvisibilitySettingArray[i] = nil; @@ -2275,10 +2235,9 @@ INITSAVEBUF } if (InvisibilitySettingArray[i]) InvisibilitySettingArray[i]->bIsVisible = false; - */ } script_assert(ReadSaveBuf(buf) == bUsingAMultiScriptFile); - /*bPlayerHasMetDebbieHarry = */ReadSaveBuf(buf); + bPlayerHasMetDebbieHarry = ReadSaveBuf(buf); ReadSaveBuf(buf); script_assert(ReadSaveBuf(buf) == MainScriptSize); script_assert(ReadSaveBuf(buf) == LargestMissionScriptSize); @@ -2286,9 +2245,7 @@ INITSAVEBUF script_assert(ReadSaveBuf(buf) == NumberOfExclusiveMissionScripts); uint32 runningScripts = ReadSaveBuf(buf); for (uint32 i = 0; i < runningScripts; i++) - CRunningScript().Load(buf); - StartTestScript(); // <- tmp hack - return true; + StartNewScript(0)->Load(buf); VALIDATESAVEBUF(size) } @@ -2298,7 +2255,6 @@ void CRunningScript::Save(uint8*& buf) { #ifdef COMPATIBLE_SAVES SkipSaveBuf(buf, 8); - WriteSaveBuf(buf, m_nId); for (int i = 0; i < 8; i++) WriteSaveBuf(buf, m_abScriptName[i]); WriteSaveBuf(buf, m_nIp); @@ -2310,11 +2266,10 @@ void CRunningScript::Save(uint8*& buf) WriteSaveBuf(buf, m_nStackPointer); SkipSaveBuf(buf, 2); #ifdef CHECK_STRUCT_SIZES - static_assert(NUM_LOCAL_VARS + 8 + NUM_TIMERS == 106, "Compatibility loss: NUM_LOCAL_VARS + NUM_TIMERS != 106"); + static_assert(NUM_LOCAL_VARS + NUM_TIMERS == 18, "Compatibility loss: NUM_LOCAL_VARS + NUM_TIMERS != 18"); #endif - for (int i = 0; i < NUM_LOCAL_VARS + 8 + NUM_TIMERS; i++) + for (int i = 0; i < NUM_LOCAL_VARS + NUM_TIMERS; i++) WriteSaveBuf(buf, m_anLocalVariables[i]); - WriteSaveBuf(buf, m_nLocalsPointer); WriteSaveBuf(buf, m_bIsActive); WriteSaveBuf(buf, m_bCondResult); WriteSaveBuf(buf, m_bIsMissionScript); @@ -2335,7 +2290,6 @@ void CRunningScript::Load(uint8*& buf) { #ifdef COMPATIBLE_SAVES SkipSaveBuf(buf, 8); - m_nId = ReadSaveBuf(buf); for (int i = 0; i < 8; i++) m_abScriptName[i] = ReadSaveBuf(buf); m_nIp = ReadSaveBuf(buf); @@ -2347,11 +2301,10 @@ void CRunningScript::Load(uint8*& buf) m_nStackPointer = ReadSaveBuf(buf); SkipSaveBuf(buf, 2); #ifdef CHECK_STRUCT_SIZES - static_assert(NUM_LOCAL_VARS + 8 + NUM_TIMERS == 106, "Compatibility loss: NUM_LOCAL_VARS + 8 + NUM_TIMERS != 106"); + static_assert(NUM_LOCAL_VARS + NUM_TIMERS == 18, "Compatibility loss: NUM_LOCAL_VARS + NUM_TIMERS != 18"); #endif - for (int i = 0; i < NUM_LOCAL_VARS + 8 + NUM_TIMERS; i++) + for (int i = 0; i < NUM_LOCAL_VARS + NUM_TIMERS; i++) m_anLocalVariables[i] = ReadSaveBuf(buf); - m_nLocalsPointer = ReadSaveBuf(buf); m_bIsActive = ReadSaveBuf(buf); m_bCondResult = ReadSaveBuf(buf); m_bIsMissionScript = ReadSaveBuf(buf); @@ -2730,14 +2683,8 @@ void CTheScripts::CleanUpThisPed(CPed* pPed) } else { if (pPed->m_pMyVehicle->m_vehType == VEHICLE_TYPE_CAR) { - if ((pPed->m_fHealth < 1.0f && !pPed->IsPedHeadAbovePos(-0.3f)) || pPed->bBodyPartJustCameOff) { - pPed->SetObjective(OBJECTIVE_LEAVE_CAR_AND_DIE, pPed->m_pMyVehicle); - pPed->bWanderPathAfterExitingCar = false; - } - else { - pPed->SetObjective(OBJECTIVE_LEAVE_CAR, pPed->m_pMyVehicle); - pPed->bWanderPathAfterExitingCar = true; - } + pPed->SetObjective(OBJECTIVE_LEAVE_CAR, pPed->m_pMyVehicle); + pPed->bWanderPathAfterExitingCar = true; } } } @@ -2750,7 +2697,6 @@ void CTheScripts::CleanUpThisPed(CPed* pPed) flees = true; } pPed->ClearObjective(); - pPed->SetWaitState(WAITSTATE_FALSE, nil); // third parameter is 0 TODO? pPed->bRespondsToThreats = true; pPed->bScriptObjectiveCompleted = false; pPed->bKindaStayInSamePlace = false; @@ -2794,9 +2740,6 @@ void CTheScripts::ReadObjectNamesFromScript() { int32 varSpace = GetSizeOfVariableSpace(); uint32 ip = varSpace + 8; - NumSaveVars = Read4BytesFromScript(&ip); - SavedVarIndices = (short*)&ScriptSpace[ip]; - ip += 2 * NumSaveVars; NumberOfUsedObjects = Read2BytesFromScript(&ip); ip += 2; for (uint16 i = 0; i < NumberOfUsedObjects; i++) { @@ -2808,16 +2751,30 @@ void CTheScripts::ReadObjectNamesFromScript() void CTheScripts::UpdateObjectIndices() { + char name[USED_OBJECT_NAME_LENGTH]; char error[112]; for (int i = 1; i < NumberOfUsedObjects; i++) { - UsedObjectArray[i].index = -1; - CModelInfo::GetModelInfo(UsedObjectArray[i].name, &UsedObjectArray[i].index); -#ifndef FINAL - if (UsedObjectArray[i].index == -1) { + bool found = false; + for (int j = 0; j < MODELINFOSIZE && !found; j++) { + CBaseModelInfo* pModel = CModelInfo::GetModelInfo(j); + if (!pModel) + continue; + strcpy(name, pModel->GetModelName()); +#ifdef FIX_BUGS + for (int k = 0; k < USED_OBJECT_NAME_LENGTH && name[k]; k++) +#else + for (int k = 0; k < USED_OBJECT_NAME_LENGTH; k++) +#endif + name[k] = toupper(name[k]); + if (strcmp(name, UsedObjectArray[i].name) == 0) { + found = true; + UsedObjectArray[i].index = j; + } + } + if (!found) { sprintf(error, "CTheScripts::UpdateObjectIndices - Couldn't find %s", UsedObjectArray[i].name); debug("%s\n", error); } -#endif } } @@ -2827,8 +2784,7 @@ void CTheScripts::ReadMultiScriptFileOffsetsFromScript() uint32 ip = varSpace + 3; int32 objectSize = Read4BytesFromScript(&ip); ip = objectSize + 8; - NumTrueGlobals = Read2BytesFromScript(&ip); - MostGlobals = Read2BytesFromScript(&ip); + MainScriptSize = Read4BytesFromScript(&ip); LargestMissionScriptSize = Read4BytesFromScript(&ip); NumberOfMissionScripts = Read2BytesFromScript(&ip); NumberOfExclusiveMissionScripts = Read2BytesFromScript(&ip); diff --git a/src/control/Script6.cpp b/src/control/Script6.cpp index 0e1256f..4d7121f 100644 --- a/src/control/Script6.cpp +++ b/src/control/Script6.cpp @@ -17,7 +17,6 @@ #ifdef MISSION_REPLAY #include "GenericGameStorage.h" #endif -#include "Hud.h" #include "Messages.h" #include "Pad.h" #include "Particle.h" @@ -39,8 +38,6 @@ #include "Pickups.h" #include "Fluff.h" -// LCS: file done except TODOs - #ifdef USE_DEBUG_SCRIPT_LOADER extern const char* scriptfile; #endif @@ -86,40 +83,43 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) { switch (command) { //case COMMAND_FLASH_RADAR_BLIP: + /* case COMMAND_IS_CHAR_IN_CONTROL: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); UpdateCompareFlag(pPed->IsPedInControl()); return 0; } + */ case COMMAND_SET_GENERATE_CARS_AROUND_CAMERA: CollectParameters(&m_nIp, 1); - CCarCtrl::bCarsGeneratedAroundCamera = (GET_INTEGER_PARAM(0) != 0); + CCarCtrl::bCarsGeneratedAroundCamera = (ScriptParams[0] != 0); return 0; case COMMAND_CLEAR_SMALL_PRINTS: CMessages::ClearSmallMessagesOnly(); - //CHud::ClearSmallMessages(); // TODO return 0; + /* case COMMAND_HAS_MILITARY_CRANE_COLLECTED_ALL_CARS: UpdateCompareFlag(CCranes::HaveAllCarsBeenCollectedByMilitaryCrane()); return 0; + */ case COMMAND_SET_UPSIDEDOWN_CAR_NOT_DAMAGED: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); script_assert(pVehicle->m_vehType == VEHICLE_TYPE_CAR); CAutomobile* pCar = (CAutomobile*)pVehicle; - pCar->bNotDamagedUpsideDown = (GET_INTEGER_PARAM(1) != 0); + pCar->bNotDamagedUpsideDown = (ScriptParams[1] != 0); return 0; } case COMMAND_CAN_PLAYER_START_MISSION: { CollectParameters(&m_nIp, 1); - CPlayerPed* pPlayerPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPlayerPed* pPlayerPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPlayerPed); - UpdateCompareFlag(pPlayerPed->CanStartMission() || pPlayerPed->m_nPedState == PED_DRIVING); + UpdateCompareFlag(pPlayerPed->IsPedInControl() || pPlayerPed->m_nPedState == PED_DRIVING); return 0; } case COMMAND_MAKE_PLAYER_SAFE_FOR_CUTSCENE: @@ -129,46 +129,46 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) AllowMissionReplay = 0; SaveGameForPause(3); #endif - CPlayerInfo* pPlayerInfo = &CWorld::Players[GET_INTEGER_PARAM(0)]; - CPad::GetPad(GET_INTEGER_PARAM(0))->SetDisablePlayerControls(PLAYERCONTROL_CUTSCENE); + CPlayerInfo* pPlayerInfo = &CWorld::Players[ScriptParams[0]]; + CPad::GetPad(ScriptParams[0])->SetDisablePlayerControls(PLAYERCONTROL_CUTSCENE); pPlayerInfo->MakePlayerSafe(true); CCutsceneMgr::StartCutsceneProcessing(); return 0; } case COMMAND_USE_TEXT_COMMANDS: CollectParameters(&m_nIp, 1); - CTheScripts::UseTextCommands = (GET_INTEGER_PARAM(0) != 0) ? 2 : 1; + CTheScripts::UseTextCommands = (ScriptParams[0] != 0) ? 2 : 1; return 0; case COMMAND_SET_THREAT_FOR_PED_TYPE: CollectParameters(&m_nIp, 2); - CPedType::AddThreat(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); + CPedType::AddThreat(ScriptParams[0], ScriptParams[1]); return 0; case COMMAND_CLEAR_THREAT_FOR_PED_TYPE: CollectParameters(&m_nIp, 2); - CPedType::RemoveThreat(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); + CPedType::RemoveThreat(ScriptParams[0], ScriptParams[1]); return 0; case COMMAND_GET_CAR_COLOURS: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - SET_INTEGER_PARAM(0, pVehicle->m_currentColour1); - SET_INTEGER_PARAM(1, pVehicle->m_currentColour2); + ScriptParams[0] = pVehicle->m_currentColour1; + ScriptParams[1] = pVehicle->m_currentColour2; StoreParameters(&m_nIp, 2); return 0; } case COMMAND_SET_ALL_CARS_CAN_BE_DAMAGED: CollectParameters(&m_nIp, 1); - CWorld::SetAllCarsCanBeDamaged(GET_INTEGER_PARAM(0) != 0); - if (!GET_INTEGER_PARAM(0)) + CWorld::SetAllCarsCanBeDamaged(ScriptParams[0] != 0); + if (!ScriptParams[0]) CWorld::ExtinguishAllCarFiresInArea(FindPlayerCoors(), 4000.0f); return 0; case COMMAND_SET_CAR_CAN_BE_DAMAGED: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - pVehicle->bCanBeDamaged = GET_INTEGER_PARAM(1) != 0; - if (!GET_INTEGER_PARAM(1)) + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); + pVehicle->bCanBeDamaged = ScriptParams[1] != 0; + if (!ScriptParams[1]) pVehicle->ExtinguishCarFire(); return 0; } @@ -178,7 +178,7 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) { CollectParameters(&m_nIp, 1); CTimer::Stop(); - CGame::currLevel = (eLevelName)GET_INTEGER_PARAM(0); + CGame::currLevel = (eLevelName)ScriptParams[0]; ISLAND_LOADING_IS(LOW) { CStreaming::RemoveUnusedBigBuildings(CGame::currLevel); @@ -194,18 +194,18 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) return 0; } case COMMAND_GET_BODY_CAST_HEALTH: - // SET_INTEGER_PARAM(0, CObject::nBodyCastHealth); + // ScriptParams[0] = CObject::nBodyCastHealth; // StoreParameters(&m_nIp, 1); return 0; */ case COMMAND_SET_CHARS_CHATTING: { CollectParameters(&m_nIp, 3); - CPed* pPed1 = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - CPed* pPed2 = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); + CPed* pPed1 = CPools::GetPedPool()->GetAt(ScriptParams[0]); + CPed* pPed2 = CPools::GetPedPool()->GetAt(ScriptParams[1]); script_assert(pPed1 && pPed2); - pPed1->SetChat(pPed2, GET_INTEGER_PARAM(2)); - pPed2->SetChat(pPed1, GET_INTEGER_PARAM(2)); + pPed1->SetChat(pPed2, ScriptParams[2]); + pPed2->SetChat(pPed1, ScriptParams[2]); return 0; } //case COMMAND_MAKE_PLAYER_SAFE: @@ -213,9 +213,9 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) case COMMAND_SET_CAR_STAYS_IN_CURRENT_LEVEL: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - if (GET_INTEGER_PARAM(1)) + if (ScriptParams[1]) pVehicle->m_nZoneLevel = CTheZones::GetLevelFromPosition(&pVehicle->GetPosition()); else pVehicle->m_nZoneLevel = LEVEL_GENERIC; @@ -224,9 +224,9 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) case COMMAND_SET_CHAR_STAYS_IN_CURRENT_LEVEL: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - if (GET_INTEGER_PARAM(1)) + if (ScriptParams[1]) pPed->m_nZoneLevel = CTheZones::GetLevelFromPosition(&pPed->GetPosition()); else pPed->m_nZoneLevel = LEVEL_GENERIC; @@ -236,16 +236,16 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) case COMMAND_SET_DRUNK_INPUT_DELAY: { CollectParameters(&m_nIp, 2); - assert(GET_INTEGER_PARAM(1) < CPad::DRUNK_STEERING_BUFFER_SIZE); - CPad::GetPad(GET_INTEGER_PARAM(0))->SetDrunkInputDelay(GET_INTEGER_PARAM(1)); + assert(ScriptParams[1] < CPad::DRUNK_STEERING_BUFFER_SIZE); + CPad::GetPad(ScriptParams[0])->SetDrunkInputDelay(ScriptParams[1]); return 0; } case COMMAND_SET_CHAR_MONEY: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->m_nPedMoney = GET_INTEGER_PARAM(1); + pPed->m_nPedMoney = ScriptParams[1]; pPed->bMoneyHasBeenGivenByScript = true; return 0; } @@ -253,10 +253,10 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) case COMMAND_GET_OFFSET_FROM_OBJECT_IN_WORLD_COORDS: { CollectParameters(&m_nIp, 4); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); - CVector result = Multiply3x3(pObject->GetMatrix(), GET_VECTOR_PARAM(1)) + pObject->GetPosition(); - SET_VECTOR_PARAM(0, result); + CVector result = Multiply3x3(pObject->GetMatrix(), *(CVector*)&ScriptParams[1]) + pObject->GetPosition(); + *(CVector*)&ScriptParams[0] = result; StoreParameters(&m_nIp, 3); return 0; } @@ -268,34 +268,34 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) return 0; case COMMAND_REGISTER_AMBULANCE_LEVEL: CollectParameters(&m_nIp, 1); - CStats::RegisterLevelAmbulanceMission(GET_INTEGER_PARAM(0)); + CStats::RegisterLevelAmbulanceMission(ScriptParams[0]); return 0; case COMMAND_REGISTER_FIRE_EXTINGUISHED: CStats::AnotherFireExtinguished(); return 0; case COMMAND_TURN_PHONE_ON: CollectParameters(&m_nIp, 1); - gPhoneInfo.m_aPhones[GET_INTEGER_PARAM(0)].m_nState = PHONE_STATE_9; + gPhoneInfo.m_aPhones[ScriptParams[0]].m_nState = PHONE_STATE_9; return 0; /* case COMMAND_REGISTER_LONGEST_DODO_FLIGHT: CollectParameters(&m_nIp, 1); - CStats::RegisterLongestFlightInDodo(GET_INTEGER_PARAM(0)); + CStats::RegisterLongestFlightInDodo(ScriptParams[0]); return 0; */ case COMMAND_GET_OFFSET_FROM_CAR_IN_WORLD_COORDS: { CollectParameters(&m_nIp, 4); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - CVector result = Multiply3x3(pVehicle->GetMatrix(), GET_VECTOR_PARAM(1)) + pVehicle->GetPosition(); - SET_VECTOR_PARAM(0, result); + CVector result = Multiply3x3(pVehicle->GetMatrix(), *(CVector*)&ScriptParams[1]) + pVehicle->GetPosition(); + *(CVector*)&ScriptParams[0] = result; StoreParameters(&m_nIp, 3); return 0; } case COMMAND_SET_TOTAL_NUMBER_OF_KILL_FRENZIES: CollectParameters(&m_nIp, 1); - CStats::SetTotalNumberKillFrenzies(GET_INTEGER_PARAM(0)); + CStats::SetTotalNumberKillFrenzies(ScriptParams[0]); return 0; case COMMAND_BLOW_UP_RC_BUGGY: CWorld::Players[CWorld::PlayerInFocus].BlowUpRCBuggy(true); @@ -303,7 +303,7 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) /* case COMMAND_REMOVE_CAR_FROM_CHASE: CollectParameters(&m_nIp, 1); - CRecordDataForChase::RemoveCarFromChase(GET_INTEGER_PARAM(0)); + CRecordDataForChase::RemoveCarFromChase(ScriptParams[0]); return 0; */ case COMMAND_IS_FRENCH_GAME: @@ -314,57 +314,57 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) return 0; case COMMAND_CLEAR_MISSION_AUDIO: CollectParameters(&m_nIp, 1); - DMAudio.ClearMissionAudio(GET_INTEGER_PARAM(0) - 1); + DMAudio.ClearMissionAudio(ScriptParams[0] - 1); return 0; /* case COMMAND_SET_FADE_IN_AFTER_NEXT_ARREST: CollectParameters(&m_nIp, 1); - CRestart::bFadeInAfterNextArrest = !!GET_INTEGER_PARAM(0); + CRestart::bFadeInAfterNextArrest = !!ScriptParams[0]; return 0; case COMMAND_SET_FADE_IN_AFTER_NEXT_DEATH: CollectParameters(&m_nIp, 1); - CRestart::bFadeInAfterNextDeath = !!GET_INTEGER_PARAM(0); + CRestart::bFadeInAfterNextDeath = !!ScriptParams[0]; return 0; case COMMAND_SET_GANG_PED_MODEL_PREFERENCE: CollectParameters(&m_nIp, 2); - CGangs::SetGangPedModelOverride(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); + CGangs::SetGangPedModelOverride(ScriptParams[0], ScriptParams[1]); return 0; */ case COMMAND_SET_CHAR_USE_PEDNODE_SEEK: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - if (GET_INTEGER_PARAM(1)) + if (ScriptParams[1]) pPed->m_pNextPathNode = nil; - pPed->bUsePedNodeSeek = !!GET_INTEGER_PARAM(1); + pPed->bUsePedNodeSeek = !!ScriptParams[1]; return 0; } /* case COMMAND_SWITCH_VEHICLE_WEAPONS: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - pVehicle->bGunSwitchedOff = !GET_INTEGER_PARAM(1); + pVehicle->bGunSwitchedOff = !ScriptParams[1]; return 0; } - */ case COMMAND_SET_GET_OUT_OF_JAIL_FREE: CollectParameters(&m_nIp, 2); - CWorld::Players[GET_INTEGER_PARAM(0)].m_bGetOutOfJailFree = !!GET_INTEGER_PARAM(1); + CWorld::Players[ScriptParams[0]].m_bGetOutOfJailFree = !!ScriptParams[1]; return 0; + */ case COMMAND_SET_FREE_HEALTH_CARE: CollectParameters(&m_nIp, 2); - CWorld::Players[GET_INTEGER_PARAM(0)].m_bGetOutOfHospitalFree = !!GET_INTEGER_PARAM(1); + CWorld::Players[ScriptParams[0]].m_bGetOutOfHospitalFree = !!ScriptParams[1]; return 0; /* case COMMAND_IS_CAR_DOOR_CLOSED: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - UpdateCompareFlag(!pVehicle->IsDoorMissing((eDoors)GET_INTEGER_PARAM(1)) && pVehicle->IsDoorClosed((eDoors)GET_INTEGER_PARAM(1))); + UpdateCompareFlag(!pVehicle->IsDoorMissing((eDoors)ScriptParams[1]) && pVehicle->IsDoorClosed((eDoors)ScriptParams[1])); return 0; } */ @@ -374,49 +374,51 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) { CollectParameters(&m_nIp, 1); - if (CTheScripts::NumberOfExclusiveMissionScripts > 0) { - if (GET_INTEGER_PARAM(0) < UINT16_MAX - 1) - return 0; - SET_INTEGER_PARAM(0, UINT16_MAX - GET_INTEGER_PARAM(0)); - } + if (CTheScripts::NumberOfExclusiveMissionScripts > 0 && ScriptParams[0] <= UINT16_MAX - 2) + return 0; #ifdef MISSION_REPLAY - missionRetryScriptIndex = GET_INTEGER_PARAM(0); + missionRetryScriptIndex = ScriptParams[0]; if (missionRetryScriptIndex == 19) CStats::LastMissionPassedName[0] = '\0'; #endif CTimer::Suspend(); - int offset = CTheScripts::MultiScriptArray[GET_INTEGER_PARAM(0)] + 8; - int size = CTheScripts::MultiScriptArray[GET_INTEGER_PARAM(0) + 1] - CTheScripts::MultiScriptArray[GET_INTEGER_PARAM(0)]; - if (size <= 0) - size = CTheScripts::LargestMissionScriptSize; - CFileMgr::Seek(gScriptsFile, offset, 0); - CFileMgr::Read(gScriptsFile, (const char*)&CTheScripts::ScriptSpace[CTheScripts::MainScriptSize], size); // TODO - CRunningScript* pMissionScript = CTheScripts::StartNewScript(CTheScripts::MainScriptSize); + int offset = CTheScripts::MultiScriptArray[ScriptParams[0]]; +#ifdef USE_DEBUG_SCRIPT_LOADER + CFileMgr::ChangeDir("\\data\\"); + int handle = CFileMgr::OpenFile(scriptfile, "rb"); + CFileMgr::ChangeDir("\\"); +#else + CFileMgr::ChangeDir("\\"); + int handle = CFileMgr::OpenFile("data\\main.scm", "rb"); +#endif + CFileMgr::Seek(handle, offset, 0); + CFileMgr::Read(handle, (const char*)&CTheScripts::ScriptSpace[SIZE_MAIN_SCRIPT], SIZE_MISSION_SCRIPT); + CFileMgr::CloseFile(handle); + CRunningScript* pMissionScript = CTheScripts::StartNewScript(SIZE_MAIN_SCRIPT); CTimer::Resume(); pMissionScript->m_bIsMissionScript = true; pMissionScript->m_bMissionFlag = true; CTheScripts::bAlreadyRunningAMissionScript = true; - memset(&CTheScripts::ScriptSpace[CTheScripts::NumTrueGlobals * 4 + 8], 0, CTheScripts::MostGlobals * 4); - pMissionScript->Process(); + CGameLogic::ClearShortCut(); return 0; } case COMMAND_SET_OBJECT_DRAW_LAST: { CollectParameters(&m_nIp, 2); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); - pObject->bDrawLast = !!GET_INTEGER_PARAM(1); + pObject->bDrawLast = !!ScriptParams[1]; return 0; } case COMMAND_GET_AMMO_IN_PLAYER_WEAPON: { CollectParameters(&m_nIp, 2); - CPlayerPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPlayerPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); - SET_INTEGER_PARAM(0, 0); + ScriptParams[0] = 0; for (int i = 0; i < TOTAL_WEAPON_SLOTS; i++) { - if (pPed->GetWeapon(i).m_eWeaponType == (eWeaponType)GET_INTEGER_PARAM(1)) - SET_INTEGER_PARAM(0, pPed->GetWeapon(i).m_nAmmoTotal); + if (pPed->GetWeapon(i).m_eWeaponType == (eWeaponType)ScriptParams[1]) + ScriptParams[0] = pPed->GetWeapon(i).m_nAmmoTotal; } StoreParameters(&m_nIp, 1); return 0; @@ -425,69 +427,83 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) case COMMAND_GET_AMMO_IN_CHAR_WEAPON: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CWeapon* pWeaponSlot = &pPed->m_weapons[GET_INTEGER_PARAM(1)]; - if (pWeaponSlot->m_eWeaponType == (eWeaponType)GET_INTEGER_PARAM(1)) - SET_INTEGER_PARAM(0, pWeaponSlot->m_nAmmoTotal); + CWeapon* pWeaponSlot = &pPed->m_weapons[ScriptParams[1]]; + if (pWeaponSlot->m_eWeaponType == (eWeaponType)ScriptParams[1]) + ScriptParams[0] = pWeaponSlot->m_nAmmoTotal; else - SET_INTEGER_PARAM(0, 0); + ScriptParams[0] = 0; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_REGISTER_KILL_FRENZY_PASSED: CStats::AnotherKillFrenzyPassed(); return 0; - */ case COMMAND_SET_CHAR_SAY: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - switch (GET_INTEGER_PARAM(1)) { - case 15: - pPed->Say(0x93); // TODO + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); + switch (ScriptParams[1]) { + case SCRIPT_SOUND_CHUNKY_RUN_SHOUT: + pPed->Say(SOUND_PED_FLEE_RUN); + break; + case SCRIPT_SOUND_SECURITY_GUARD_AWAY_SHOUT: + pPed->Say(SOUND_PED_FLEE_RUN); + break; + case SCRIPT_SOUND_SWAT_PED_SHOUT: + pPed->Say(SOUND_PED_PURSUIT_SWAT); + break; + case SCRIPT_SOUND_AMMUNATION_CHAT_1: + pPed->Say(SOUND_AMMUNATION_WELCOME_1); + break; + case SCRIPT_SOUND_AMMUNATION_CHAT_2: + pPed->Say(SOUND_AMMUNATION_WELCOME_2); + break; + case SCRIPT_SOUND_AMMUNATION_CHAT_3: + pPed->Say(SOUND_AMMUNATION_WELCOME_3); break; default: break; } return 0; } + */ case COMMAND_SET_NEAR_CLIP: CollectParameters(&m_nIp, 1); - TheCamera.SetNearClipScript(GET_FLOAT_PARAM(0)); + TheCamera.SetNearClipScript(*(float*)&ScriptParams[0]); return 0; case COMMAND_SET_RADIO_CHANNEL: CollectParameters(&m_nIp, 2); - // if (base::cSingleton::Instance()->unk()) - TODO on PS2, but it's not on mobile - DMAudio.SetRadioChannel(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); + DMAudio.SetRadioChannel(ScriptParams[0], ScriptParams[1]); return 0; /* case COMMAND_OVERRIDE_HOSPITAL_LEVEL: CollectParameters(&m_nIp, 1); - CRestart::OverrideHospitalLevel = GET_INTEGER_PARAM(0); + CRestart::OverrideHospitalLevel = ScriptParams[0]; return 0; case COMMAND_OVERRIDE_POLICE_STATION_LEVEL: CollectParameters(&m_nIp, 1); - CRestart::OverridePoliceStationLevel = GET_INTEGER_PARAM(0); + CRestart::OverridePoliceStationLevel = ScriptParams[0]; return 0; case COMMAND_FORCE_RAIN: CollectParameters(&m_nIp, 1); - CWeather::bScriptsForceRain = !!GET_INTEGER_PARAM(0); + CWeather::bScriptsForceRain = !!ScriptParams[0]; return 0; - */ case COMMAND_DOES_GARAGE_CONTAIN_CAR: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[1]); script_assert(pVehicle); - UpdateCompareFlag(CGarages::IsThisCarWithinGarageArea(GET_INTEGER_PARAM(0), pVehicle)); + UpdateCompareFlag(CGarages::IsThisCarWithinGarageArea(ScriptParams[0], pVehicle)); return 0; } + */ case COMMAND_SET_CAR_TRACTION: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - float fTraction = GET_FLOAT_PARAM(1); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); + float fTraction = *(float*)&ScriptParams[1]; script_assert(pVehicle->m_vehType == VEHICLE_TYPE_CAR || pVehicle->m_vehType == VEHICLE_TYPE_BIKE); if (pVehicle->m_vehType == VEHICLE_TYPE_CAR) ((CAutomobile*)pVehicle)->m_fTraction = fTraction; @@ -505,32 +521,33 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) case COMMAND_CONVERT_METRES_TO_FEET: { CollectParameters(&m_nIp, 1); - float fMeterValue = GET_FLOAT_PARAM(0); + float fMeterValue = *(float*)&ScriptParams[0]; float fFeetValue = fMeterValue / METERS_IN_FOOT; - SET_FLOAT_PARAM(0, fFeetValue); + *(float*)&ScriptParams[0] = fFeetValue; StoreParameters(&m_nIp, 1); return 0; } + /* case COMMAND_MARK_ROADS_BETWEEN_LEVELS: { CollectParameters(&m_nIp, 6); - float infX = GET_FLOAT_PARAM(0); - float infY = GET_FLOAT_PARAM(1); - float infZ = GET_FLOAT_PARAM(2); - float supX = GET_FLOAT_PARAM(3); - float supY = GET_FLOAT_PARAM(4); - float supZ = GET_FLOAT_PARAM(5); + float infX = *(float*)&ScriptParams[0]; + float infY = *(float*)&ScriptParams[1]; + float infZ = *(float*)&ScriptParams[2]; + float supX = *(float*)&ScriptParams[3]; + float supY = *(float*)&ScriptParams[4]; + float supZ = *(float*)&ScriptParams[5]; if (infX > supX) { - infX = GET_FLOAT_PARAM(3); - supX = GET_FLOAT_PARAM(0); + infX = *(float*)&ScriptParams[3]; + supX = *(float*)&ScriptParams[0]; } if (infY > supY) { - infY = GET_FLOAT_PARAM(4); - supY = GET_FLOAT_PARAM(1); + infY = *(float*)&ScriptParams[4]; + supY = *(float*)&ScriptParams[1]; } if (infZ > supZ) { - infZ = GET_FLOAT_PARAM(5); - supZ = GET_FLOAT_PARAM(2); + infZ = *(float*)&ScriptParams[5]; + supZ = *(float*)&ScriptParams[2]; } ThePaths.MarkRoadsBetweenLevelsInArea(infX, supX, infY, supY, infZ, supZ); return 0; @@ -538,136 +555,123 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) case COMMAND_MARK_PED_ROADS_BETWEEN_LEVELS: { CollectParameters(&m_nIp, 6); - float infX = GET_FLOAT_PARAM(0); - float infY = GET_FLOAT_PARAM(1); - float infZ = GET_FLOAT_PARAM(2); - float supX = GET_FLOAT_PARAM(3); - float supY = GET_FLOAT_PARAM(4); - float supZ = GET_FLOAT_PARAM(5); + float infX = *(float*)&ScriptParams[0]; + float infY = *(float*)&ScriptParams[1]; + float infZ = *(float*)&ScriptParams[2]; + float supX = *(float*)&ScriptParams[3]; + float supY = *(float*)&ScriptParams[4]; + float supZ = *(float*)&ScriptParams[5]; if (infX > supX) { - infX = GET_FLOAT_PARAM(3); - supX = GET_FLOAT_PARAM(0); + infX = *(float*)&ScriptParams[3]; + supX = *(float*)&ScriptParams[0]; } if (infY > supY) { - infY = GET_FLOAT_PARAM(4); - supY = GET_FLOAT_PARAM(1); + infY = *(float*)&ScriptParams[4]; + supY = *(float*)&ScriptParams[1]; } if (infZ > supZ) { - infZ = GET_FLOAT_PARAM(5); - supZ = GET_FLOAT_PARAM(2); + infZ = *(float*)&ScriptParams[5]; + supZ = *(float*)&ScriptParams[2]; } ThePaths.PedMarkRoadsBetweenLevelsInArea(infX, supX, infY, supY, infZ, supZ); return 0; } + */ case COMMAND_SET_CAR_AVOID_LEVEL_TRANSITIONS: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - pVehicle->AutoPilot.m_bStayInCurrentLevel = !!GET_INTEGER_PARAM(1); + pVehicle->AutoPilot.m_bStayInCurrentLevel = !!ScriptParams[1]; return 0; } /* case COMMAND_SET_CHAR_AVOID_LEVEL_TRANSITIONS: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[1]); script_assert(pPed); // not implemented return 0; } case COMMAND_IS_THREAT_FOR_PED_TYPE: CollectParameters(&m_nIp, 2); - UpdateCompareFlag(CPedType::IsThreat(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1))); + UpdateCompareFlag(CPedType::IsThreat(ScriptParams[0], ScriptParams[1])); return 0; */ case COMMAND_CLEAR_AREA_OF_CHARS: { CollectParameters(&m_nIp, 6); - float infX = GET_FLOAT_PARAM(0); - float infY = GET_FLOAT_PARAM(1); - float infZ = GET_FLOAT_PARAM(2); - float supX = GET_FLOAT_PARAM(3); - float supY = GET_FLOAT_PARAM(4); - float supZ = GET_FLOAT_PARAM(5); + float infX = *(float*)&ScriptParams[0]; + float infY = *(float*)&ScriptParams[1]; + float infZ = *(float*)&ScriptParams[2]; + float supX = *(float*)&ScriptParams[3]; + float supY = *(float*)&ScriptParams[4]; + float supZ = *(float*)&ScriptParams[5]; if (infX > supX) { - infX = GET_FLOAT_PARAM(3); - supX = GET_FLOAT_PARAM(0); + infX = *(float*)&ScriptParams[3]; + supX = *(float*)&ScriptParams[0]; } if (infY > supY) { - infY = GET_FLOAT_PARAM(4); - supY = GET_FLOAT_PARAM(1); + infY = *(float*)&ScriptParams[4]; + supY = *(float*)&ScriptParams[1]; } if (infZ > supZ) { - infZ = GET_FLOAT_PARAM(5); - supZ = GET_FLOAT_PARAM(2); + infZ = *(float*)&ScriptParams[5]; + supZ = *(float*)&ScriptParams[2]; } CWorld::ClearPedsFromArea(infX, infY, infZ, supX, supY, supZ); return 0; } case COMMAND_SET_TOTAL_NUMBER_OF_MISSIONS: CollectParameters(&m_nIp, 1); - CStats::SetTotalNumberMissions(CGame::germanGame ? GET_INTEGER_PARAM(0) - 2 : GET_INTEGER_PARAM(0)); + CStats::SetTotalNumberMissions(CGame::germanGame ? ScriptParams[0] - 2 : ScriptParams[0]); return 0; case COMMAND_CONVERT_METRES_TO_FEET_INT: CollectParameters(&m_nIp, 1); - GET_INTEGER_PARAM(0) *= FEET_IN_METER; + ScriptParams[0] *= FEET_IN_METER; StoreParameters(&m_nIp, 1); return 0; case COMMAND_REGISTER_FASTEST_TIME: CollectParameters(&m_nIp, 2); - CStats::RegisterFastestTime(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); + CStats::RegisterFastestTime(ScriptParams[0], ScriptParams[1]); return 0; case COMMAND_REGISTER_HIGHEST_SCORE: CollectParameters(&m_nIp, 2); - CStats::RegisterHighestScore(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); + CStats::RegisterHighestScore(ScriptParams[0], ScriptParams[1]); return 0; - case COMMAND_WARP_CHAR_INTO_CAR_AS_PASSENGER: - { - CollectParameters(&m_nIp, 3); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); - script_assert(pPed); - script_assert(pVehicle); - if (GET_INTEGER_PARAM(2) < 0) - pPed->WarpPedIntoCarAsPassenger(pVehicle, GET_INTEGER_PARAM(2)); - else { - script_assert(GET_INTEGER_PARAM(2) >= 0 && GET_INTEGER_PARAM(2) < ARRAY_SIZE(pVehicle->pPassengers)); - pPed->WarpPedIntoCarAsPassenger(pVehicle, GET_INTEGER_PARAM(2)); - } - return 0; - - } + //case COMMAND_WARP_CHAR_INTO_CAR_AS_PASSENGER: case COMMAND_IS_CAR_PASSENGER_SEAT_FREE: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - UpdateCompareFlag(GET_INTEGER_PARAM(1) < pVehicle->m_nNumMaxPassengers && pVehicle->pPassengers[GET_INTEGER_PARAM(1)] == nil); + UpdateCompareFlag(ScriptParams[1] < pVehicle->m_nNumMaxPassengers && pVehicle->pPassengers[ScriptParams[1]] == nil); return 0; } + /* case COMMAND_GET_CHAR_IN_CAR_PASSENGER_SEAT: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - script_assert(GET_INTEGER_PARAM(1) >= 0 && GET_INTEGER_PARAM(1) < ARRAY_SIZE(pVehicle->pPassengers)); - CPed* pPassenger = pVehicle->pPassengers[GET_INTEGER_PARAM(1)]; - SET_INTEGER_PARAM(0, CPools::GetPedPool()->GetIndex(pPassenger)); + script_assert(ScriptParams[1] >= 0 && ScriptParams[1] < ARRAY_SIZE(pVehicle->pPassengers)); + CPed* pPassenger = pVehicle->pPassengers[ScriptParams[1]]; + ScriptParams[0] = CPools::GetPedPool()->GetIndex(pPassenger); StoreParameters(&m_nIp, 1); return 0; } + */ case COMMAND_SET_CHAR_IS_CHRIS_CRIMINAL: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->bChrisCriminal = !!GET_INTEGER_PARAM(1); + pPed->bChrisCriminal = !!ScriptParams[1]; return 0; } case COMMAND_START_CREDITS: - CollectParameters(&m_nIp, 1); - CCredits::Start(); // TODO: CCredits::Start(GET_INTEGER_PARAM(0)) + CCredits::Start(); return 0; case COMMAND_STOP_CREDITS: CCredits::Stop(); @@ -677,16 +681,16 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) return 0; case COMMAND_CREATE_SINGLE_PARTICLE: CollectParameters(&m_nIp, 8); - CParticle::AddParticle((tParticleType)GET_INTEGER_PARAM(0), GET_VECTOR_PARAM(1), - GET_VECTOR_PARAM(4), nil, GET_FLOAT_PARAM(7), 0, 0, 0, 0); + CParticle::AddParticle((tParticleType)ScriptParams[0], *(CVector*)&ScriptParams[1], + *(CVector*)&ScriptParams[4], nil, *(float*)&ScriptParams[7], 0, 0, 0, 0); return 0; /* case COMMAND_SET_CHAR_IGNORE_LEVEL_TRANSITIONS: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - if (GET_INTEGER_PARAM(1)) + if (ScriptParams[1]) pPed->m_nZoneLevel = LEVEL_IGNORE; else pPed->m_nZoneLevel = CTheZones::GetLevelFromPosition(&pPed->GetPosition()); @@ -695,11 +699,11 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) case COMMAND_GET_CHASE_CAR: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CRecordDataForChase::TurnChaseCarIntoScriptCar(GET_INTEGER_PARAM(0)); - SET_INTEGER_PARAM(0, CPools::GetVehiclePool()->GetIndex(pVehicle)); + CVehicle* pVehicle = CRecordDataForChase::TurnChaseCarIntoScriptCar(ScriptParams[0]); + ScriptParams[0] = CPools::GetVehiclePool()->GetIndex(pVehicle); StoreParameters(&m_nIp, 1); if (m_bIsMissionScript) - CTheScripts::MissionCleanUp.AddEntityToList(GET_INTEGER_PARAM(0), CLEANUP_CAR); + CTheScripts::MissionCleanUp.AddEntityToList(ScriptParams[0], CLEANUP_CAR); return 0; } case COMMAND_START_BOAT_FOAM_ANIMATION: @@ -708,7 +712,7 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) case COMMAND_UPDATE_BOAT_FOAM_ANIMATION: { CollectParameters(&m_nIp, 1); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); CSpecialParticleStuff::UpdateBoatFoamAnimation(&pObject->GetMatrix()); return 0; @@ -716,12 +720,12 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) */ case COMMAND_SET_MUSIC_DOES_FADE: CollectParameters(&m_nIp, 1); - TheCamera.m_bIgnoreFadingStuffForMusic = (GET_INTEGER_PARAM(0) == 0); + TheCamera.m_bIgnoreFadingStuffForMusic = (ScriptParams[0] == 0); return 0; /* case COMMAND_SET_INTRO_IS_PLAYING: CollectParameters(&m_nIp, 1); - if (GET_INTEGER_PARAM(0)) { + if (ScriptParams[0]) { CGame::playingIntro = true; CStreaming::RemoveCurrentZonesModels(); } else { @@ -733,16 +737,17 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) CStreaming::LoadAllRequestedModels(false); } return 0; + */ case COMMAND_SET_PLAYER_HOOKER: { CollectParameters(&m_nIp, 2); - CPlayerInfo* pPlayerInfo = &CWorld::Players[GET_INTEGER_PARAM(0)]; - if (GET_INTEGER_PARAM(1) < 0) { + CPlayerInfo* pPlayerInfo = &CWorld::Players[ScriptParams[0]]; + if (ScriptParams[1] < 0) { pPlayerInfo->m_pHooker = nil; pPlayerInfo->m_nNextSexFrequencyUpdateTime = 0; pPlayerInfo->m_nNextSexMoneyUpdateTime = 0; } else { - CPed* pHooker = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); + CPed* pHooker = CPools::GetPedPool()->GetAt(ScriptParams[1]); script_assert(pHooker); pPlayerInfo->m_pHooker = (CCivilianPed*)pHooker; pPlayerInfo->m_nSexFrequency = 1000; @@ -751,10 +756,8 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) } return 0; } - */ case COMMAND_PLAY_END_OF_GAME_TUNE: - DMAudio.ChangeMusicMode(MUSICMODE_FRONTEND); - DMAudio.PlayFrontEndTrack(STREAMED_SOUND_CUTSCENE_FINALE, 1); // third parameter is 1 + DMAudio.PlayPreloadedCutSceneMusic(); return 0; case COMMAND_STOP_END_OF_GAME_TUNE: DMAudio.StopCutSceneMusic(); @@ -763,25 +766,25 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) case COMMAND_GET_CAR_MODEL: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - SET_INTEGER_PARAM(0, pVehicle->GetModelIndex()); + ScriptParams[0] = pVehicle->GetModelIndex(); StoreParameters(&m_nIp, 1); return 0; } case COMMAND_IS_PLAYER_SITTING_IN_CAR: { CollectParameters(&m_nIp, 2); - CPlayerPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPlayerPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[1]); UpdateCompareFlag(pPed->GetPedState() == PED_DRIVING && pPed->m_objective != OBJECTIVE_LEAVE_CAR && pPed->m_pMyVehicle == pVehicle); return 0; } case COMMAND_IS_PLAYER_SITTING_IN_ANY_CAR: { CollectParameters(&m_nIp, 1); - CPlayerPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPlayerPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); UpdateCompareFlag(pPed->GetPedState() == PED_DRIVING && pPed->m_objective != OBJECTIVE_LEAVE_CAR); return 0; @@ -789,7 +792,7 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) /* case COMMAND_SET_SCRIPT_FIRE_AUDIO: CollectParameters(&m_nIp, 2); - gFireManager.SetScriptFireAudio(GET_INTEGER_PARAM(0), !!GET_INTEGER_PARAM(1)); + gFireManager.SetScriptFireAudio(ScriptParams[0], !!ScriptParams[1]); return 0; */ case COMMAND_ARE_ANY_CAR_CHEATS_ACTIVATED: @@ -798,16 +801,16 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) case COMMAND_SET_CHAR_SUFFERS_CRITICAL_HITS: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->bNoCriticalHits = (GET_INTEGER_PARAM(1) == 0); + pPed->bNoCriticalHits = (ScriptParams[1] == 0); return 0; } /* case COMMAND_IS_PLAYER_LIFTING_A_PHONE: { CollectParameters(&m_nIp, 1); - CPlayerPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPlayerPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); UpdateCompareFlag(pPed->GetPedState() == PED_MAKE_CALL); return 0; @@ -816,9 +819,9 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) case COMMAND_IS_CHAR_SITTING_IN_CAR: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[1]); script_assert(pVehicle); UpdateCompareFlag(pPed->GetPedState() == PED_DRIVING && pPed->m_objective != OBJECTIVE_LEAVE_CAR && pPed->m_pMyVehicle == pVehicle); return 0; @@ -826,7 +829,7 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) case COMMAND_IS_CHAR_SITTING_IN_ANY_CAR: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); UpdateCompareFlag(pPed->GetPedState() == PED_DRIVING && pPed->m_objective != OBJECTIVE_LEAVE_CAR); return 0; @@ -834,7 +837,7 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) case COMMAND_IS_PLAYER_ON_FOOT: { CollectParameters(&m_nIp, 1); - CPlayerPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPlayerPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); UpdateCompareFlag(!pPed->bInVehicle && pPed->m_objective != OBJECTIVE_ENTER_CAR_AS_PASSENGER && pPed->m_objective != OBJECTIVE_ENTER_CAR_AS_DRIVER); @@ -843,7 +846,7 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) case COMMAND_IS_CHAR_ON_FOOT: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); UpdateCompareFlag(!pPed->bInVehicle && pPed->m_objective != OBJECTIVE_ENTER_CAR_AS_PASSENGER && pPed->m_objective != OBJECTIVE_ENTER_CAR_AS_DRIVER); @@ -863,7 +866,7 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) case COMMAND_LOAD_COLLISION_WITH_SCREEN: CollectParameters(&m_nIp, 1); CTimer::Stop(); - CGame::currLevel = (eLevelName)GET_INTEGER_PARAM(0); + CGame::currLevel = (eLevelName)ScriptParams[0]; if (CGame::currLevel != CCollision::ms_collisionInMemory) { ISLAND_LOADING_IS(LOW) { @@ -907,9 +910,9 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) case COMMAND_SET_CAR_IGNORE_LEVEL_TRANSITIONS: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - if (GET_INTEGER_PARAM(1)) + if (ScriptParams[1]) pVehicle->m_nZoneLevel = LEVEL_IGNORE; else pVehicle->m_nZoneLevel = CTheZones::GetLevelFromPosition(&pVehicle->GetPosition()); @@ -918,55 +921,61 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) case COMMAND_MAKE_CRAIGS_CAR_A_BIT_STRONGER: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); script_assert(pVehicle->m_vehType == VEHICLE_TYPE_CAR); CAutomobile* pCar = (CAutomobile*)pVehicle; - pCar->bMoreResistantToDamage = GET_INTEGER_PARAM(1); + pCar->bMoreResistantToDamage = ScriptParams[1]; return 0; } */ case COMMAND_SET_JAMES_CAR_ON_PATH_TO_PLAYER: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); CCarCtrl::JoinCarWithRoadSystemGotoCoors(pVehicle, FindPlayerCoors(), false); return 0; } case COMMAND_LOAD_END_OF_GAME_TUNE: + DMAudio.ChangeMusicMode(MUSICMODE_CUTSCENE); + printf("Start preload end of game audio\n"); + DMAudio.PreloadCutSceneMusic(STREAMED_SOUND_CUTSCENE_FINALE); + printf("End preload end of game audio\n"); return 0; + /* case COMMAND_ENABLE_PLAYER_CONTROL_CAMERA: CPad::GetPad(0)->SetEnablePlayerControls(PLAYERCONTROL_CAMERA); return 0; + */ case COMMAND_SET_OBJECT_ROTATION: { CollectParameters(&m_nIp, 4); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); CWorld::Remove(pObject); pObject->SetOrientation( - DEGTORAD(GET_FLOAT_PARAM(1)), - DEGTORAD(GET_FLOAT_PARAM(2)), - DEGTORAD(GET_FLOAT_PARAM(3))); + DEGTORAD(*(float*)&ScriptParams[1]), + DEGTORAD(*(float*)&ScriptParams[2]), + DEGTORAD(*(float*)&ScriptParams[3])); pObject->GetMatrix().UpdateRW(); pObject->UpdateRwFrame(); CWorld::Add(pObject); return 0; } case COMMAND_GET_DEBUG_CAMERA_COORDINATES: - SET_VECTOR_PARAM(0, TheCamera.Cams[2].Source); + *(CVector*)&ScriptParams[0] = TheCamera.Cams[2].Source; StoreParameters(&m_nIp, 3); return 0; /* case COMMAND_GET_DEBUG_CAMERA_FRONT_VECTOR: - SET_VECTOR_PARAM(0, TheCamera.Cams[2].Front); + *(CVector*)&ScriptParams[0] = TheCamera.Cams[2].Front; StoreParameters(&m_nIp, 3); return 0; case COMMAND_IS_PLAYER_TARGETTING_ANY_CHAR: { CollectParameters(&m_nIp, 1); - CPlayerPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPlayerPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); CEntity* pTarget = pPed->m_pPointGunAt; UpdateCompareFlag(pTarget && pTarget->IsPed()); @@ -976,13 +985,13 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) case COMMAND_IS_PLAYER_TARGETTING_CHAR: { CollectParameters(&m_nIp, 2); - CPlayerPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPlayerPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); - CPed* pTestedPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); + CPed* pTestedPed = CPools::GetPedPool()->GetAt(ScriptParams[1]); script_assert(pTestedPed); CEntity* pTarget = pPed->m_pPointGunAt; bool bTargetting = pTarget && pTarget->IsPed() && pTarget == pTestedPed; -#ifdef GTA_PC + // PC shit static int nCounter = 0; nCounter = Max(0, nCounter - 1); if (!pPed->GetWeapon()->IsTypeMelee() && !bTargetting) { @@ -1009,50 +1018,22 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) } } } -#endif UpdateCompareFlag(bTargetting); return 0; } + /* case COMMAND_IS_PLAYER_TARGETTING_OBJECT: { CollectParameters(&m_nIp, 2); - CPlayerPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPlayerPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); - CObject* pTestedObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(1)); + CObject* pTestedObject = CPools::GetObjectPool()->GetAt(ScriptParams[1]); script_assert(pTestedObject); CEntity* pTarget = pPed->m_pPointGunAt; - bool bTargetting = pTarget && pTarget->IsObject() && pTarget == pTestedObject; -#ifdef GTA_PC // we will never know if section is real - static int nCounter = 0; - nCounter = Max(0, nCounter - 1); - if (!pPed->GetWeapon()->IsTypeMelee() && !bTargetting) { - if ((pTestedObject->GetPosition() - TheCamera.GetPosition()).Magnitude() < 10.0f) { - CVector vTestedPos(pTestedObject->GetPosition().x, pTestedObject->GetPosition().y, pTestedObject->GetPosition().z); - CVector vScreenPos; - float w, h; - if (CSprite::CalcScreenCoors(vTestedPos, &vScreenPos, &w, &h, false)) { - CVector2D vCrosshairPosition(CCamera::m_f3rdPersonCHairMultX * RsGlobal.maximumWidth, CCamera::m_f3rdPersonCHairMultY * RsGlobal.maximumHeight); - float fScreenDistance = ((CVector2D)vScreenPos - vCrosshairPosition).Magnitude(); - if (SCREEN_STRETCH_X(0.45f) > fScreenDistance / w) { - CColPoint point; - CEntity* entity; - if (!CWorld::ProcessLineOfSight(TheCamera.GetPosition() + 2.0f * TheCamera.GetForward(), - vTestedPos, point, entity, true, true, true, true, true, false) || - entity == pTestedObject) { - nCounter += 2; - if (nCounter > 20) { - bTargetting = true; - nCounter = 20; - } - } - } - } - } - } - UpdateCompareFlag(bTargetting); -#endif + UpdateCompareFlag(pTarget && pTarget->IsObject() && pTarget == pTestedObject); return 0; } + */ case COMMAND_TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME: { CTheScripts::ReadTextLabelFromScript(&m_nIp, tmp); @@ -1074,10 +1055,10 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) { CollectParameters(&m_nIp, 2); wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); - CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_fAtX = GET_FLOAT_PARAM(0); - CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_fAtY = GET_FLOAT_PARAM(1); + CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_fAtX = *(float*)&ScriptParams[0]; + CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_fAtY = *(float*)&ScriptParams[1]; CollectParameters(&m_nIp, 1); - CMessages::InsertNumberInString(text, GET_INTEGER_PARAM(0), -1, -1, -1, -1, -1, + CMessages::InsertNumberInString(text, ScriptParams[0], -1, -1, -1, -1, -1, CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame++].m_Text); return 0; } @@ -1085,10 +1066,10 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) { CollectParameters(&m_nIp, 2); wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); - CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_fAtX = GET_FLOAT_PARAM(0); - CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_fAtY = GET_FLOAT_PARAM(1); + CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_fAtX = *(float*)&ScriptParams[0]; + CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame].m_fAtY = *(float*)&ScriptParams[1]; CollectParameters(&m_nIp, 2); - CMessages::InsertNumberInString(text, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), -1, -1, -1, -1, + CMessages::InsertNumberInString(text, ScriptParams[0], ScriptParams[1], -1, -1, -1, -1, CTheScripts::IntroTextLines[CTheScripts::NumberOfIntroTextLinesThisFrame++].m_Text); return 0; } @@ -1100,11 +1081,11 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) return 0; /* CollectParameters(&m_nIp, 5); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); - float range = GET_FLOAT_PARAM(3); - int mi = GET_INTEGER_PARAM(4) < 0 ? CTheScripts::UsedObjectArray[-GET_INTEGER_PARAM(4)].index : GET_INTEGER_PARAM(4); + float range = *(float*)&ScriptParams[3]; + int mi = ScriptParams[4] < 0 ? CTheScripts::UsedObjectArray[-ScriptParams[4]].index : ScriptParams[4]; int16 total; CEntity* apEntities[16]; CWorld::FindObjectsOfTypeInRange(mi, pos, range, true, &total, 16, apEntities, false, false, false, true, true); @@ -1136,9 +1117,9 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) script_assert(pClosestEntity->IsObject()); CObject* pObject = (CObject*)pClosestEntity; pObject->ObjectCreatedBy = MISSION_OBJECT; - SET_INTEGER_PARAM(0, CPools::GetObjectPool()->GetIndex(pObject)); + ScriptParams[0] = CPools::GetObjectPool()->GetIndex(pObject); } else { - SET_INTEGER_PARAM(0, -1); + ScriptParams[0] = -1; } StoreParameters(&m_nIp, 1); return 0; @@ -1148,11 +1129,11 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) case COMMAND_PLACE_OBJECT_RELATIVE_TO_OBJECT: { CollectParameters(&m_nIp, 5); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); - CObject* pTarget = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(1)); + CObject* pTarget = CPools::GetObjectPool()->GetAt(ScriptParams[1]); script_assert(pTarget); - CVector offset = GET_VECTOR_PARAM(2); + CVector offset = *(CVector*)&ScriptParams[2]; CPhysical::PlacePhysicalRelativeToOtherPhysical(pTarget, pObject, offset); return 0; } @@ -1160,81 +1141,79 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) case COMMAND_SET_ALL_OCCUPANTS_OF_CAR_LEAVE_CAR: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); CCarAI::TellOccupantsToLeaveCar(pVehicle); return 0; } case COMMAND_SET_INTERPOLATION_PARAMETERS: CollectParameters(&m_nIp, 2); - TheCamera.SetParametersForScriptInterpolation(GET_FLOAT_PARAM(0), 100.0f - GET_FLOAT_PARAM(0), GET_INTEGER_PARAM(1)); + TheCamera.SetParametersForScriptInterpolation(*(float*)&ScriptParams[0], 100.0f - *(float*)&ScriptParams[0], ScriptParams[1]); return 0; /* case COMMAND_GET_CLOSEST_CAR_NODE_WITH_HEADING_TOWARDS_POINT: { CollectParameters(&m_nIp, 5); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); - float destX = GET_FLOAT_PARAM(3); - float destY = GET_FLOAT_PARAM(4); + float destX = *(float*)&ScriptParams[3]; + float destY = *(float*)&ScriptParams[4]; int32 nid = ThePaths.FindNodeClosestToCoors(pos, 0, 999999.9f, true, true); CPathNode* pNode = &ThePaths.m_pathNodes[nid]; - SET_VECTOR_PARAM(0, pNode->GetPosition()); - SET_FLOAT_PARAM(3, ThePaths.FindNodeOrientationForCarPlacementFacingDestination(nid, destX, destY, true)); + *(CVector*)&ScriptParams[0] = pNode->GetPosition(); + *(float*)&ScriptParams[3] = ThePaths.FindNodeOrientationForCarPlacementFacingDestination(nid, destX, destY, true); StoreParameters(&m_nIp, 4); return 0; } case COMMAND_GET_CLOSEST_CAR_NODE_WITH_HEADING_AWAY_POINT: { CollectParameters(&m_nIp, 5); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); - float destX = GET_FLOAT_PARAM(3); - float destY = GET_FLOAT_PARAM(4); + float destX = *(float*)&ScriptParams[3]; + float destY = *(float*)&ScriptParams[4]; int32 nid = ThePaths.FindNodeClosestToCoors(pos, 0, 999999.9f, true, true); CPathNode* pNode = &ThePaths.m_pathNodes[nid]; - SET_VECTOR_PARAM(0, pNode->GetPosition()); - SET_FLOAT_PARAM(3, ThePaths.FindNodeOrientationForCarPlacementFacingDestination(nid, destX, destY, false)); + *(CVector*)&ScriptParams[0] = pNode->GetPosition(); + *(float*)&ScriptParams[3] = ThePaths.FindNodeOrientationForCarPlacementFacingDestination(nid, destX, destY, false); StoreParameters(&m_nIp, 4); return 0; } */ case COMMAND_GET_DEBUG_CAMERA_POINT_AT: - SET_VECTOR_PARAM(0, TheCamera.Cams[2].Source + TheCamera.Cams[2].Front); + *(CVector*)&ScriptParams[0] = TheCamera.Cams[2].Source + TheCamera.Cams[2].Front; StoreParameters(&m_nIp, 3); return 0; case COMMAND_ATTACH_CHAR_TO_CAR: { CollectParameters(&m_nIp, 8); - CPed *pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - CVehicle *pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); - pPed->AttachPedToEntity(pVehicle, GET_VECTOR_PARAM(2), GET_INTEGER_PARAM(5), DEGTORAD(GET_FLOAT_PARAM(6)), (eWeaponType)GET_INTEGER_PARAM(7)); + CPed *pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); + CVehicle *pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[1]); + pPed->AttachPedToEntity(pVehicle, *(CVector*)&ScriptParams[2], ScriptParams[5], DEGTORAD(*(float*)&ScriptParams[6]), (eWeaponType)ScriptParams[7]); return 0; } case COMMAND_DETACH_CHAR_FROM_CAR: { CollectParameters(&m_nIp, 1); - CPed *pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - if (pPed && pPed->m_attachedTo) { + CPed *pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); + if (pPed && pPed->m_attachedTo) pPed->DettachPedFromEntity(); - pPed->bIsAimingGun = false; - } return 0; } case COMMAND_SET_CAR_CHANGE_LANE: // for some reason changed in SA { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - pVehicle->AutoPilot.m_bStayInFastLane = !GET_INTEGER_PARAM(1); + pVehicle->AutoPilot.m_bStayInFastLane = !ScriptParams[1]; return 0; } case COMMAND_CLEAR_CHAR_LAST_WEAPON_DAMAGE: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); if (pPed) pPed->m_lastWepDam = -1; else @@ -1244,7 +1223,7 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) case COMMAND_CLEAR_CAR_LAST_WEAPON_DAMAGE: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); if (pVehicle) pVehicle->m_nLastWeaponDamage = -1; else @@ -1256,10 +1235,10 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) CollectParameters(&m_nIp, 9); int ped_handle = -1; CVector pos = FindPlayerCoors(); - float x1 = GET_FLOAT_PARAM(0); - float y1 = GET_FLOAT_PARAM(1); - float x2 = GET_FLOAT_PARAM(2); - float y2 = GET_FLOAT_PARAM(3); + float x1 = *(float*)&ScriptParams[0]; + float y1 = *(float*)&ScriptParams[1]; + float x2 = *(float*)&ScriptParams[2]; + float y2 = *(float*)&ScriptParams[3]; int i = CPools::GetPedPool()->GetSize(); while (--i && ped_handle == -1) { CPed* pPed = CPools::GetPedPool()->GetSlot(i); @@ -1269,7 +1248,7 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) continue; if (pPed->m_nPedType != PEDTYPE_COP) continue; - if (!ThisIsAValidRandomCop(pPed->GetModelIndex(), GET_INTEGER_PARAM(4), GET_INTEGER_PARAM(5), GET_INTEGER_PARAM(6), GET_INTEGER_PARAM(7), GET_INTEGER_PARAM(8))) + if (!ThisIsAValidRandomCop(pPed->GetModelIndex(), ScriptParams[4], ScriptParams[5], ScriptParams[6], ScriptParams[7], ScriptParams[8])) continue; if (pPed->CharCreatedBy != RANDOM_CHAR) continue; @@ -1295,7 +1274,7 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) if (m_bIsMissionScript) CTheScripts::MissionCleanUp.AddEntityToList(ped_handle, CLEANUP_CHAR); } - SET_INTEGER_PARAM(0, ped_handle); + ScriptParams[0] = ped_handle; StoreParameters(&m_nIp, 1); return 0; } @@ -1343,7 +1322,7 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) if (m_bIsMissionScript) CTheScripts::MissionCleanUp.AddEntityToList(ped_handle, CLEANUP_CHAR); } - SET_INTEGER_PARAM(0, ped_handle); + ScriptParams[0] = ped_handle; StoreParameters(&m_nIp, 1); return 0; } @@ -1351,9 +1330,9 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) case COMMAND_SET_CHAR_OBJ_FLEE_CAR: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[1]); script_assert(pVehicle); pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_FLEE_CAR, pVehicle); @@ -1362,20 +1341,20 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) case COMMAND_GET_DRIVER_OF_CAR: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); CPed* pDriver = pVehicle->pDriver; if (pDriver) - SET_INTEGER_PARAM(0, CPools::GetPedPool()->GetIndex(pDriver)); + ScriptParams[0] = CPools::GetPedPool()->GetIndex(pDriver); else - SET_INTEGER_PARAM(0, -1); + ScriptParams[0] = -1; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_GET_NUMBER_OF_FOLLOWERS: { CollectParameters(&m_nIp, 1); - CPed* pLeader = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pLeader = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pLeader); int total = 0; int i = CPools::GetPedPool()->GetSize(); @@ -1386,34 +1365,34 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) if (pPed->m_leader == pLeader) total++; } - SET_INTEGER_PARAM(0, total); + ScriptParams[0] = total; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_GIVE_REMOTE_CONTROLLED_MODEL_TO_PLAYER: { CollectParameters(&m_nIp, 6); - CVector pos = GET_VECTOR_PARAM(1); + CVector pos = *(CVector*)&ScriptParams[1]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); - CRemote::GivePlayerRemoteControlledCar(pos.x, pos.y, pos.z, DEGTORAD(GET_FLOAT_PARAM(4)), GET_INTEGER_PARAM(5)); + CRemote::GivePlayerRemoteControlledCar(pos.x, pos.y, pos.z, DEGTORAD(*(float*)&ScriptParams[4]), ScriptParams[5]); return 0; } case COMMAND_GET_CURRENT_PLAYER_WEAPON: { CollectParameters(&m_nIp, 1); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); - SET_INTEGER_PARAM(0, pPed->GetWeapon()->m_eWeaponType); + ScriptParams[0] = pPed->GetWeapon()->m_eWeaponType; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_GET_CURRENT_CHAR_WEAPON: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - SET_INTEGER_PARAM(0, pPed->GetWeapon()->m_eWeaponType); + ScriptParams[0] = pPed->GetWeapon()->m_eWeaponType; StoreParameters(&m_nIp, 1); return 0; } @@ -1428,36 +1407,36 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) case COMMAND_SET_CAR_TEMP_ACTION: { CollectParameters(&m_nIp, 3); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - pVehicle->AutoPilot.m_nTempAction = (uint8)GET_INTEGER_PARAM(1); - pVehicle->AutoPilot.m_nTimeTempAction = CTimer::GetTimeInMilliseconds() + GET_INTEGER_PARAM(2); + pVehicle->AutoPilot.m_nTempAction = (uint8)ScriptParams[1]; + pVehicle->AutoPilot.m_nTimeTempAction = CTimer::GetTimeInMilliseconds() + ScriptParams[2]; return 0; } /* case COMMAND_SET_CAR_HANDBRAKE_TURN_RIGHT: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); pVehicle->AutoPilot.m_nTempAction = TEMPACT_HANDBRAKETURNRIGHT; - pVehicle->AutoPilot.m_nTimeTempAction = CTimer::GetTimeInMilliseconds() + GET_INTEGER_PARAM(1); + pVehicle->AutoPilot.m_nTimeTempAction = CTimer::GetTimeInMilliseconds() + ScriptParams[1]; return 0; } case COMMAND_SET_CAR_HANDBRAKE_STOP: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); pVehicle->AutoPilot.m_nTempAction = TEMPACT_HANDBRAKESTRAIGHT; - pVehicle->AutoPilot.m_nTimeTempAction = CTimer::GetTimeInMilliseconds() + GET_INTEGER_PARAM(1); + pVehicle->AutoPilot.m_nTimeTempAction = CTimer::GetTimeInMilliseconds() + ScriptParams[1]; return 0; } */ case COMMAND_IS_CHAR_ON_ANY_BIKE: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); UpdateCompareFlag(pPed->bInVehicle&& pPed->m_pMyVehicle->GetVehicleAppearance() == VEHICLE_APPEARANCE_BIKE); return 0; @@ -1467,16 +1446,16 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) case COMMAND_LOCATE_SNIPER_BULLET_3D: LocateSniperBulletCommand(command, &m_nIp); return 0; + */ case COMMAND_GET_NUMBER_OF_SEATS_IN_MODEL: CollectParameters(&m_nIp, 1); - SET_INTEGER_PARAM(0, CVehicleModelInfo::GetMaximumNumberOfPassengersFromNumberOfDoors(GET_INTEGER_PARAM(0)) + 1); + ScriptParams[0] = CVehicleModelInfo::GetMaximumNumberOfPassengersFromNumberOfDoors(ScriptParams[0]) + 1; StoreParameters(&m_nIp, 1); return 0; - */ case COMMAND_IS_PLAYER_ON_ANY_BIKE: { CollectParameters(&m_nIp, 1); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); UpdateCompareFlag(pPed->bInVehicle && pPed->m_pMyVehicle->GetVehicleAppearance() == VEHICLE_APPEARANCE_BIKE); return 0; @@ -1485,7 +1464,7 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) case COMMAND_IS_CHAR_LYING_DOWN: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); UpdateCompareFlag(pPed->bFallenDown); return 0; @@ -1494,9 +1473,9 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) case COMMAND_CAN_CHAR_SEE_DEAD_CHAR: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - int pedtype = GET_INTEGER_PARAM(1); + int pedtype = ScriptParams[1]; bool can = false; for (int i = 0; i < pPed->m_numNearPeds; i++) { CPed* pTestPed = pPed->m_nearPeds[i]; @@ -1508,75 +1487,69 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) } case COMMAND_SET_ENTER_CAR_RANGE_MULTIPLIER: CollectParameters(&m_nIp, 1); - CPed::nEnterCarRangeMultiplier = GET_FLOAT_PARAM(0); + CPed::nEnterCarRangeMultiplier = *(float*)&ScriptParams[0]; return 0; case COMMAND_SET_THREAT_REACTION_RANGE_MULTIPLIER: CollectParameters(&m_nIp, 1); - CPed::nThreatReactionRangeMultiplier = GET_FLOAT_PARAM(0); - if (CPed::nThreatReactionRangeMultiplier < 1) - CPed::nThreatReactionRangeMultiplier = 1; + CPed::nThreatReactionRangeMultiplier = *(float*)&ScriptParams[0]; return 0; case COMMAND_SET_CHAR_CEASE_ATTACK_TIMER: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->m_ceaseAttackTimer = GET_INTEGER_PARAM(1); + pPed->m_ceaseAttackTimer = ScriptParams[1]; return 0; } case COMMAND_GET_REMOTE_CONTROLLED_CAR: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CWorld::Players[GET_INTEGER_PARAM(0)].m_pRemoteVehicle; + CVehicle* pVehicle = CWorld::Players[ScriptParams[0]].m_pRemoteVehicle; if (pVehicle) - SET_INTEGER_PARAM(0, CPools::GetVehiclePool()->GetIndex(pVehicle)); + ScriptParams[0] = CPools::GetVehiclePool()->GetIndex(pVehicle); else - SET_INTEGER_PARAM(0, -1); + ScriptParams[0] = -1; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_IS_PC_VERSION: -#ifdef GTA_PC UpdateCompareFlag(true); -#else - UpdateCompareFlag(false); -#endif return 0; //case COMMAND_REPLAY: //case COMMAND_IS_REPLAY_PLAYING: case COMMAND_IS_MODEL_AVAILABLE: CollectParameters(&m_nIp, 1); - UpdateCompareFlag(CModelInfo::GetModelInfo(GET_INTEGER_PARAM(0)) != nil); + UpdateCompareFlag(CModelInfo::GetModelInfo(ScriptParams[0]) != nil); return 0; case COMMAND_SHUT_CHAR_UP: CollectParameters(&m_nIp, 2); - DMAudio.SetPedTalkingStatus(CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)), GET_INTEGER_PARAM(1) == 0); + DMAudio.SetPedTalkingStatus(CPools::GetPedPool()->GetAt(ScriptParams[0]), ScriptParams[1] == 0); return 0; case COMMAND_SET_ENABLE_RC_DETONATE: CollectParameters(&m_nIp, 1); - CVehicle::bDisableRemoteDetonation = !GET_INTEGER_PARAM(0); + CVehicle::bDisableRemoteDetonation = !ScriptParams[0]; return 0; case COMMAND_SET_CAR_RANDOM_ROUTE_SEED: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - pVehicle->m_nRouteSeed = GET_INTEGER_PARAM(1); + pVehicle->m_nRouteSeed = ScriptParams[1]; return 0; } case COMMAND_IS_ANY_PICKUP_AT_COORDS: { - CollectParameters(&m_nIp, 4); - CVector pos = GET_VECTOR_PARAM(0); - CRunningScript::UpdateCompareFlag(CPickups::TestForPickupsInBubble(pos, GET_FLOAT_PARAM(3))); + CollectParameters(&m_nIp, 3); + CVector pos = *(CVector*)&ScriptParams[0]; + CRunningScript::UpdateCompareFlag(CPickups::TestForPickupsInBubble(pos, 0.5f)); return 0; } - //case COMMAND_GET_FIRST_PICKUP_COORDS: - //case COMMAND_GET_NEXT_PICKUP_COORDS: + case COMMAND_GET_FIRST_PICKUP_COORDS: + case COMMAND_GET_NEXT_PICKUP_COORDS: case COMMAND_REMOVE_ALL_CHAR_WEAPONS: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); pPed->ClearWeapons(); return 0; @@ -1584,26 +1557,11 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) case COMMAND_HAS_PLAYER_GOT_WEAPON: { CollectParameters(&m_nIp, 2); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); bool bFound = false; for (int i = 0; i < TOTAL_WEAPON_SLOTS; i++) { - if (pPed->GetWeapon(i).m_eWeaponType == GET_INTEGER_PARAM(1)) { - bFound = true; - break; - } - } - UpdateCompareFlag(bFound); - return 0; - } - case COMMAND_HAS_CHAR_GOT_WEAPON: - { - CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pPed); - bool bFound = false; - for (int i = 0; i < TOTAL_WEAPON_SLOTS; i++) { - if (pPed->GetWeapon(i).m_eWeaponType == GET_INTEGER_PARAM(1)) { + if (pPed->GetWeapon(i).m_eWeaponType == ScriptParams[1]) { bFound = true; break; } @@ -1611,30 +1569,31 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) UpdateCompareFlag(bFound); return 0; } + //case COMMAND_HAS_CHAR_GOT_WEAPON: //case COMMAND_IS_PLAYER_FACING_CHAR: case COMMAND_SET_TANK_DETONATE_CARS: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle && pVehicle->m_vehType == VEHICLE_TYPE_CAR); - ((CAutomobile*)pVehicle)->bTankDetonateCars = GET_INTEGER_PARAM(1); + ((CAutomobile*)pVehicle)->bTankDetonateCars = ScriptParams[1]; return 0; } case COMMAND_GET_POSITION_OF_ANALOGUE_STICKS: { CollectParameters(&m_nIp, 1); - CPad* pPad = CPad::GetPad(GET_INTEGER_PARAM(0)); - SET_INTEGER_PARAM(0, pPad->NewState.LeftStickX); - SET_INTEGER_PARAM(1, pPad->NewState.LeftStickY); - SET_INTEGER_PARAM(2, pPad->NewState.RightStickX); - SET_INTEGER_PARAM(3, pPad->NewState.RightStickY); + CPad* pPad = CPad::GetPad(ScriptParams[0]); + ScriptParams[0] = pPad->NewState.LeftStickX; + ScriptParams[1] = pPad->NewState.LeftStickY; + ScriptParams[2] = pPad->NewState.RightStickX; + ScriptParams[3] = pPad->NewState.RightStickY; StoreParameters(&m_nIp, 4); return 0; } case COMMAND_IS_CAR_ON_FIRE: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); bool bOnFire = false; if (pVehicle->m_pCarFire) @@ -1649,35 +1608,35 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) case COMMAND_IS_CAR_TYRE_BURST: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); bool bIsBurst = false; CBike* pBike = (CBike*)pVehicle; if (pVehicle->IsBike()) { - if (GET_INTEGER_PARAM(1) == 4) { + if (ScriptParams[1] == 4) { for (int i = 0; i < 2; i++) { if (pBike->m_wheelStatus[i] == WHEEL_STATUS_BURST) bIsBurst = true; } } else { - if (GET_INTEGER_PARAM(1) == 2) - SET_INTEGER_PARAM(1, 0); - if (GET_INTEGER_PARAM(1) == 3) - SET_INTEGER_PARAM(1, 1); - bIsBurst = pBike->m_wheelStatus[GET_INTEGER_PARAM(1)] == WHEEL_STATUS_BURST; + if (ScriptParams[1] == 2) + ScriptParams[1] = 0; + if (ScriptParams[1] == 3) + ScriptParams[1] = 1; + bIsBurst = pBike->m_wheelStatus[ScriptParams[1]] == WHEEL_STATUS_BURST; } } else { CAutomobile* pCar = (CAutomobile*)pVehicle; - if (GET_INTEGER_PARAM(1) == 4) { + if (ScriptParams[1] == 4) { for (int i = 0; i < 4; i++) { if (pCar->Damage.GetWheelStatus(i) == WHEEL_STATUS_BURST) bIsBurst = true; } } else - bIsBurst = pCar->Damage.GetWheelStatus(GET_INTEGER_PARAM(1) == WHEEL_STATUS_BURST); + bIsBurst = pCar->Damage.GetWheelStatus(ScriptParams[1] == WHEEL_STATUS_BURST); } UpdateCompareFlag(bIsBurst); return 0; @@ -1693,85 +1652,85 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) while (counter < 3 && CScriptPaths::aArray[counter].m_state != SCRIPT_PATH_DISABLED) { counter++; } - CScriptPaths::aArray[counter].InitialiseOne(GET_INTEGER_PARAM(0), GET_FLOAT_PARAM(1)); - SET_INTEGER_PARAM(0, counter); + CScriptPaths::aArray[counter].InitialiseOne(ScriptParams[0], *(float*)&ScriptParams[1]); + ScriptParams[0] = counter; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_START_OBJECT_ON_PATH: { CollectParameters(&m_nIp, 2); - CObject *pObj = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject *pObj = CPools::GetObjectPool()->GetAt(ScriptParams[0]); assert(pObj); - CScriptPaths::aArray[GET_INTEGER_PARAM(1)].SetObjectToControl(pObj); + CScriptPaths::aArray[ScriptParams[1]].SetObjectToControl(pObj); return 0; } case COMMAND_SET_OBJECT_PATH_SPEED: { CollectParameters(&m_nIp, 2); - CScriptPaths::aArray[GET_INTEGER_PARAM(0)].m_fSpeed = GET_FLOAT_PARAM(1); + CScriptPaths::aArray[ScriptParams[0]].m_fSpeed = *(float*)&ScriptParams[1]; return 0; } case COMMAND_SET_OBJECT_PATH_POSITION: { CollectParameters(&m_nIp, 2); - CScriptPaths::aArray[GET_INTEGER_PARAM(0)].m_fPosition = GET_FLOAT_PARAM(1); + CScriptPaths::aArray[ScriptParams[0]].m_fPosition = *(float*)&ScriptParams[1]; return 0; } //case COMMAND_GET_OBJECT_DISTANCE_ALONG_PATH: case COMMAND_CLEAR_OBJECT_PATH: { CollectParameters(&m_nIp, 1); - CScriptPaths::aArray[GET_INTEGER_PARAM(0)].Clear(); + CScriptPaths::aArray[ScriptParams[0]].Clear(); return 0; } case COMMAND_HELI_GOTO_COORDS: { CollectParameters(&m_nIp, 5); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle && pVehicle->GetVehicleAppearance() == VEHICLE_APPEARANCE_HELI); - ((CAutomobile*)pVehicle)->TellHeliToGoToCoors(GET_FLOAT_PARAM(1), GET_FLOAT_PARAM(2), GET_FLOAT_PARAM(3), GET_INTEGER_PARAM(4)); + ((CAutomobile*)pVehicle)->TellHeliToGoToCoors(*(float*)&ScriptParams[1], *(float*)&ScriptParams[2], *(float*)&ScriptParams[3], ScriptParams[4]); return 0; } case COMMAND_IS_INT_VAR_EQUAL_TO_CONSTANT: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); CollectParameters(&m_nIp, 1); - UpdateCompareFlag(*ptr == GET_INTEGER_PARAM(0)); + UpdateCompareFlag(*ptr == ScriptParams[0]); return 0; } case COMMAND_IS_INT_LVAR_EQUAL_TO_CONSTANT: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); CollectParameters(&m_nIp, 1); - UpdateCompareFlag(*ptr == GET_INTEGER_PARAM(0)); + UpdateCompareFlag(*ptr == ScriptParams[0]); return 0; } case COMMAND_GET_DEAD_CHAR_PICKUP_COORDS: { CollectParameters(&m_nIp, 1); - CPed *pTarget = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed *pTarget = CPools::GetPedPool()->GetAt(ScriptParams[0]); CVector pos; pTarget->CreateDeadPedPickupCoors(&pos.x, &pos.y, &pos.z); - SET_VECTOR_PARAM(0, pos); + *(CVector*)&ScriptParams[0] = pos; StoreParameters(&m_nIp, 3); return 0; } case COMMAND_CREATE_PROTECTION_PICKUP: { CollectParameters(&m_nIp, 5); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y) + PICKUP_PLACEMENT_OFFSET; CPickups::GetActualPickupIndex(CollectNextParameterWithoutIncreasingPC(m_nIp)); - SET_INTEGER_PARAM(0, CPickups::GenerateNewOne(pos, MI_PICKUP_REVENUE, PICKUP_ASSET_REVENUE, GET_INTEGER_PARAM(3), GET_INTEGER_PARAM(4))); // TODO: gpModelIndices + ScriptParams[0] = CPickups::GenerateNewOne(pos, MI_PICKUP_REVENUE, PICKUP_ASSET_REVENUE, ScriptParams[3], ScriptParams[4]); StoreParameters(&m_nIp, 1); return 0; } case COMMAND_IS_CHAR_IN_ANY_BOAT: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); UpdateCompareFlag(pPed->bInVehicle && pPed->m_pMyVehicle->GetVehicleAppearance() == VEHICLE_APPEARANCE_BOAT); return 0; @@ -1779,7 +1738,7 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) case COMMAND_IS_PLAYER_IN_ANY_BOAT: { CollectParameters(&m_nIp, 1); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); UpdateCompareFlag(pPed->bInVehicle && pPed->m_pMyVehicle->GetVehicleAppearance() == VEHICLE_APPEARANCE_BOAT); return 0; @@ -1787,7 +1746,7 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) case COMMAND_IS_CHAR_IN_ANY_HELI: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); UpdateCompareFlag(pPed->bInVehicle && pPed->m_pMyVehicle->GetVehicleAppearance() == VEHICLE_APPEARANCE_HELI); return 0; @@ -1795,7 +1754,7 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) case COMMAND_IS_PLAYER_IN_ANY_HELI: { CollectParameters(&m_nIp, 1); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); UpdateCompareFlag(pPed->bInVehicle && pPed->m_pMyVehicle->GetVehicleAppearance() == VEHICLE_APPEARANCE_HELI); return 0; @@ -1803,7 +1762,7 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) case COMMAND_IS_CHAR_IN_ANY_PLANE: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); UpdateCompareFlag(pPed->bInVehicle && pPed->m_pMyVehicle->GetVehicleAppearance() == VEHICLE_APPEARANCE_PLANE); return 0; @@ -1811,7 +1770,7 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) case COMMAND_IS_PLAYER_IN_ANY_PLANE: { CollectParameters(&m_nIp, 1); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); UpdateCompareFlag(pPed->bInVehicle && pPed->m_pMyVehicle->GetVehicleAppearance() == VEHICLE_APPEARANCE_HELI); return 0; @@ -1819,7 +1778,7 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) case COMMAND_IS_CHAR_IN_WATER: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); UpdateCompareFlag(pPed && pPed->bIsInWater); return 0; } @@ -1827,14 +1786,14 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); CollectParameters(&m_nIp, 1); - *ptr = GET_INTEGER_PARAM(0); + *ptr = ScriptParams[0]; return 0; } case COMMAND_SET_LVAR_INT_TO_CONSTANT: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); CollectParameters(&m_nIp, 1); - *ptr = GET_INTEGER_PARAM(0); + *ptr = ScriptParams[0]; return 0; } default: diff --git a/src/control/Script7.cpp b/src/control/Script7.cpp index de389a1..71099cc 100644 --- a/src/control/Script7.cpp +++ b/src/control/Script7.cpp @@ -13,7 +13,6 @@ #include "General.h" #include "Glass.h" #include "Fluff.h" -#include "KeyGen.h" #include "Hud.h" #include "MBlur.h" #include "Pad.h" @@ -32,8 +31,6 @@ #include "World.h" #include "Zones.h" -// LCS: file done except TODOs - int8 CRunningScript::ProcessCommands1200To1299(int32 command) { switch (command) { @@ -41,66 +38,66 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); CollectParameters(&m_nIp, 1); - UpdateCompareFlag(*ptr > GET_INTEGER_PARAM(0)); + UpdateCompareFlag(*ptr > ScriptParams[0]); return 0; } case COMMAND_IS_INT_LVAR_GREATER_THAN_CONSTANT: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); CollectParameters(&m_nIp, 1); - UpdateCompareFlag(*ptr > GET_INTEGER_PARAM(0)); + UpdateCompareFlag(*ptr > ScriptParams[0]); return 0; } case COMMAND_IS_CONSTANT_GREATER_THAN_INT_VAR: { CollectParameters(&m_nIp, 1); int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); - UpdateCompareFlag(GET_INTEGER_PARAM(0) > *ptr); + UpdateCompareFlag(ScriptParams[0] > *ptr); return 0; } case COMMAND_IS_CONSTANT_GREATER_THAN_INT_LVAR: { CollectParameters(&m_nIp, 1); int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); - UpdateCompareFlag(GET_INTEGER_PARAM(0) > *ptr); + UpdateCompareFlag(ScriptParams[0] > *ptr); return 0; } case COMMAND_IS_INT_VAR_GREATER_OR_EQUAL_TO_CONSTANT: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); CollectParameters(&m_nIp, 1); - UpdateCompareFlag(*ptr >= GET_INTEGER_PARAM(0)); + UpdateCompareFlag(*ptr >= ScriptParams[0]); return 0; } case COMMAND_IS_INT_LVAR_GREATER_OR_EQUAL_TO_CONSTANT: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); CollectParameters(&m_nIp, 1); - UpdateCompareFlag(*ptr >= GET_INTEGER_PARAM(0)); + UpdateCompareFlag(*ptr >= ScriptParams[0]); return 0; } case COMMAND_IS_CONSTANT_GREATER_OR_EQUAL_TO_INT_VAR: { CollectParameters(&m_nIp, 1); int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); - UpdateCompareFlag(GET_INTEGER_PARAM(0) >= *ptr); + UpdateCompareFlag(ScriptParams[0] >= *ptr); return 0; } case COMMAND_IS_CONSTANT_GREATER_OR_EQUAL_TO_INT_LVAR: { CollectParameters(&m_nIp, 1); int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); - UpdateCompareFlag(GET_INTEGER_PARAM(0) >= *ptr); + UpdateCompareFlag(ScriptParams[0] >= *ptr); return 0; } case COMMAND_GET_CHAR_WEAPON_IN_SLOT: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - SET_INTEGER_PARAM(0, pPed->GetWeapon(GET_INTEGER_PARAM(1) - 1).m_eWeaponType); - SET_INTEGER_PARAM(1, pPed->GetWeapon(GET_INTEGER_PARAM(1) - 1).m_nAmmoTotal); - SET_INTEGER_PARAM(2, CPickups::ModelForWeapon((eWeaponType)GET_INTEGER_PARAM(0))); + ScriptParams[0] = pPed->GetWeapon(ScriptParams[1] - 1).m_eWeaponType; + ScriptParams[1] = pPed->GetWeapon(ScriptParams[1] - 1).m_nAmmoTotal; + ScriptParams[2] = CPickups::ModelForWeapon((eWeaponType)ScriptParams[0]); StoreParameters(&m_nIp, 3); return 0; } @@ -109,16 +106,16 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) CollectParameters(&m_nIp, 5); int node1, node2; float angle; - ThePaths.FindNodePairClosestToCoors(GET_VECTOR_PARAM(0), PATH_CAR, &node1, &node2, &angle, - GET_FLOAT_PARAM(3), GET_FLOAT_PARAM(4), true, true); + ThePaths.FindNodePairClosestToCoors(*(CVector*)&ScriptParams[0], PATH_CAR, &node1, &node2, &angle, + *(float*)&ScriptParams[3], *(float*)&ScriptParams[4], true, true); if (node1 == -1) { for (int i = 0; i < 7; i++) ScriptParams[i] = 0; } else { - SET_VECTOR_PARAM(0, ThePaths.FindNodeCoorsForScript(node1)); - SET_VECTOR_PARAM(3, ThePaths.FindNodeCoorsForScript(node2)); - SET_FLOAT_PARAM(6, angle); + *(CVector*)&ScriptParams[0] = ThePaths.FindNodeCoorsForScript(node1); + *(CVector*)&ScriptParams[3] = ThePaths.FindNodeCoorsForScript(node2); + *(float*)&ScriptParams[6] = angle; } StoreParameters(&m_nIp, 7); return 0; @@ -126,9 +123,9 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) case COMMAND_SET_CAR_FORWARD_SPEED: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - float speed = GET_FLOAT_PARAM(1) / GAME_SPEED_TO_CARAI_SPEED; + float speed = *(float*)&ScriptParams[1] / GAME_SPEED_TO_CARAI_SPEED; pVehicle->SetMoveSpeed(pVehicle->GetForward() * speed); if (pVehicle->IsRealHeli() && pVehicle->IsCar()) ((CAutomobile*)pVehicle)->m_aWheelSpeed[1] = 0.22f; @@ -136,8 +133,8 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) } case COMMAND_SET_AREA_VISIBLE: CollectParameters(&m_nIp, 1); - CGame::currArea = GET_INTEGER_PARAM(0); - CStreaming::RemoveBuildingsNotInArea(GET_INTEGER_PARAM(0)); + CGame::currArea = ScriptParams[0]; + CStreaming::RemoveBuildingsNotInArea(ScriptParams[0]); return 0; case COMMAND_SET_CUTSCENE_ANIM_TO_LOOP: { @@ -150,28 +147,28 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) case COMMAND_MARK_CAR_AS_CONVOY_CAR: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - pVehicle->bPartOfConvoy = GET_INTEGER_PARAM(1); + pVehicle->bPartOfConvoy = ScriptParams[1]; return 0; } case COMMAND_RESET_HAVOC_CAUSED_BY_PLAYER: { CollectParameters(&m_nIp, 1); - CWorld::Players[GET_INTEGER_PARAM(0)].m_nHavocLevel = 0; + CWorld::Players[ScriptParams[0]].m_nHavocLevel = 0; return 0; } case COMMAND_GET_HAVOC_CAUSED_BY_PLAYER: { CollectParameters(&m_nIp, 1); - SET_INTEGER_PARAM(0, CWorld::Players[GET_INTEGER_PARAM(0)].m_nHavocLevel); + ScriptParams[0] = CWorld::Players[ScriptParams[0]].m_nHavocLevel; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_CREATE_SCRIPT_ROADBLOCK: { CollectParameters(&m_nIp, 6); - CRoadBlocks::RegisterScriptRoadBlock(GET_VECTOR_PARAM(0), GET_VECTOR_PARAM(3)); + CRoadBlocks::RegisterScriptRoadBlock(*(CVector*)&ScriptParams[0], *(CVector*)&ScriptParams[3]); return 0; } case COMMAND_CLEAR_ALL_SCRIPT_ROADBLOCKS: @@ -182,9 +179,9 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) case COMMAND_SET_CHAR_OBJ_WALK_TO_CHAR: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CPed* pTargetPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); + CPed* pTargetPed = CPools::GetPedPool()->GetAt(ScriptParams[1]); script_assert(pTargetPed); pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_GOTO_CHAR_ON_FOOT_WALKING, pTargetPed); @@ -194,17 +191,17 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) case COMMAND_GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS: { CollectParameters(&m_nIp, 4); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CVector result = Multiply3x3(pPed->GetMatrix(), GET_VECTOR_PARAM(1)) + pPed->GetPosition(); - SET_VECTOR_PARAM(0, result); + CVector result = Multiply3x3(pPed->GetMatrix(), *(CVector*)&ScriptParams[1]) + pPed->GetPosition(); + *(CVector*)&ScriptParams[0] = result; StoreParameters(&m_nIp, 3); return 0; } case COMMAND_HAS_CHAR_BEEN_PHOTOGRAPHED: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); bool result = false; if (pPed->bHasBeenPhotographed) { @@ -217,9 +214,9 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) case COMMAND_SET_CHAR_OBJ_AIM_GUN_AT_CHAR: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CPed* pTargetPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); + CPed* pTargetPed = CPools::GetPedPool()->GetAt(ScriptParams[1]); script_assert(pTargetPed); pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_AIM_GUN_AT, pTargetPed); @@ -228,21 +225,14 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) case COMMAND_SWITCH_SECURITY_CAMERA: { CollectParameters(&m_nIp, 1); - if (GET_INTEGER_PARAM(0) != 0) { - // TheCamera.MBlur.? = 3; TODO(LCS) - CSpecialFX::bVideoCam = true; - } - else { - // TheCamera.MBlur.Reset(); - CSpecialFX::bVideoCam = false; - } + CSpecialFX::bVideoCam = ScriptParams[0] != 0; return 0; } //case COMMAND_IS_CHAR_IN_FLYING_VEHICLE: case COMMAND_IS_PLAYER_IN_FLYING_VEHICLE: { CollectParameters(&m_nIp, 1); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); UpdateCompareFlag(pPed->bInVehicle && (pPed->m_pMyVehicle->GetVehicleAppearance() == VEHICLE_APPEARANCE_HELI || pPed->m_pMyVehicle->GetVehicleAppearance() == VEHICLE_APPEARANCE_PLANE)); return 0; @@ -254,27 +244,27 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) case COMMAND_ADD_SHORT_RANGE_SPRITE_BLIP_FOR_COORD: { CollectParameters(&m_nIp, 4); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); CRadar::GetActualBlipArrayIndex(CollectNextParameterWithoutIncreasingPC(m_nIp)); int id = CRadar::SetShortRangeCoordBlip(BLIP_COORD, pos, 5, BLIP_DISPLAY_BOTH); - CRadar::SetBlipSprite(id, GET_INTEGER_PARAM(3)); - SET_INTEGER_PARAM(0, id); + CRadar::SetBlipSprite(id, ScriptParams[3]); + ScriptParams[0] = id; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_ADD_MONEY_SPENT_ON_CLOTHES: CollectParameters(&m_nIp, 1); - //CStats::MoneySpentOnFashion(GET_INTEGER_PARAM(0)); + CStats::MoneySpentOnFashion(ScriptParams[0]); return 0; case COMMAND_SET_HELI_ORIENTATION: { CollectParameters(&m_nIp, 2); - CAutomobile* pHeli = (CAutomobile*)CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CAutomobile* pHeli = (CAutomobile*)CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pHeli && pHeli->IsCar() && pHeli->IsRealHeli()); - float fAngle = DEGTORAD(GET_FLOAT_PARAM(1) - 90.0f); + float fAngle = DEGTORAD(*(float*)&ScriptParams[1] - 90.0f); while (fAngle < 0.0f) fAngle += TWOPI; while (fAngle > TWOPI) @@ -285,7 +275,7 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) case COMMAND_CLEAR_HELI_ORIENTATION: { CollectParameters(&m_nIp, 1); - CAutomobile* pHeli = (CAutomobile*)CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CAutomobile* pHeli = (CAutomobile*)CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pHeli && pHeli->IsCar() && pHeli->IsRealHeli()); pHeli->ClearHeliOrientation(); return 0; @@ -293,75 +283,66 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) case COMMAND_PLANE_GOTO_COORDS: { CollectParameters(&m_nIp, 5); - CAutomobile* pPlane = (CAutomobile*)CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CAutomobile* pPlane = (CAutomobile*)CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pPlane && pPlane->IsCar() && pPlane->IsRealPlane()); - pPlane->TellPlaneToGoToCoors(GET_FLOAT_PARAM(1), GET_FLOAT_PARAM(2), GET_FLOAT_PARAM(3), GET_INTEGER_PARAM(4)); + pPlane->TellPlaneToGoToCoors(*(float*)&ScriptParams[1], *(float*)&ScriptParams[2], *(float*)&ScriptParams[3], ScriptParams[4]); return 0; } case COMMAND_GET_NTH_CLOSEST_CAR_NODE: { CollectParameters(&m_nIp, 4); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); - SET_VECTOR_PARAM(0, ThePaths.FindNodeCoorsForScript(ThePaths.FindNthNodeClosestToCoors(pos, 0, 999999.9f, true, true, GET_INTEGER_PARAM(3) - 1))); - StoreParameters(&m_nIp, 3); - return 0; - } - case COMMAND_GET_NTH_CLOSEST_CHAR_NODE: - { - CollectParameters(&m_nIp, 4); - CVector pos = GET_VECTOR_PARAM(0); - if (pos.z <= MAP_Z_LOW_LIMIT) - pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); - SET_VECTOR_PARAM(0, ThePaths.FindNodeCoorsForScript(ThePaths.FindNthNodeClosestToCoors(pos, 1, 999999.9f, true, true, GET_INTEGER_PARAM(3) - 1))); + *(CVector*)&ScriptParams[0] = ThePaths.FindNodeCoorsForScript(ThePaths.FindNthNodeClosestToCoors(pos, 0, 999999.9f, true, true, ScriptParams[3] - 1)); StoreParameters(&m_nIp, 3); return 0; } + //case COMMAND_GET_NTH_CLOSEST_CHAR_NODE: case COMMAND_DRAW_WEAPONSHOP_CORONA: { CollectParameters(&m_nIp, 9); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); - CCoronas::RegisterCorona((uintptr)this + m_nIp, GET_INTEGER_PARAM(6), GET_INTEGER_PARAM(7), GET_INTEGER_PARAM(8), 255, pos, -GET_FLOAT_PARAM(3), - 150.0f, GET_INTEGER_PARAM(4), GET_INTEGER_PARAM(5), 1, 0, 0, 0.0f, false, 0.2f); + CCoronas::RegisterCorona((uintptr)this + m_nIp, ScriptParams[6], ScriptParams[7], ScriptParams[8], 255, pos, *(float*)&ScriptParams[3], + 150.0f, ScriptParams[4], ScriptParams[5], 1, 0, 0, 0.0f, false, 0.2f); return 0; } case COMMAND_SET_ENABLE_RC_DETONATE_ON_CONTACT: { CollectParameters(&m_nIp, 1); - CVehicle::bDisableRemoteDetonationOnContact = (GET_INTEGER_PARAM(0) == 0); + CVehicle::bDisableRemoteDetonationOnContact = (ScriptParams[0] == 0); return 0; } case COMMAND_FREEZE_CHAR_POSITION: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->bIsFrozen = GET_INTEGER_PARAM(1); + pPed->bIsFrozen = ScriptParams[1]; return 0; } case COMMAND_SET_CHAR_DROWNS_IN_WATER: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->bDrownsInWater = GET_INTEGER_PARAM(1); + pPed->bDrownsInWater = ScriptParams[1]; return 0; } case COMMAND_SET_OBJECT_RECORDS_COLLISIONS: { CollectParameters(&m_nIp, 2); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); - pObject->bUseCollisionRecords = GET_INTEGER_PARAM(1); + pObject->bUseCollisionRecords = ScriptParams[1]; return 0; } case COMMAND_HAS_OBJECT_COLLIDED_WITH_ANYTHING: { CollectParameters(&m_nIp, 1); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); UpdateCompareFlag(pObject->m_nCollisionRecords != 0); return 0; @@ -371,15 +352,13 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) CWorld::Players[CWorld::PlayerInFocus].BlowUpRCBuggy(false); return 0; } - case COMMAND_HAS_PHOTOGRAPH_BEEN_TAKEN: - UpdateCompareFlag(CWeapon::bPhotographHasBeenTaken); - return 0; + //case COMMAND_HAS_PHOTOGRAPH_BEEN_TAKEN: case COMMAND_GET_CHAR_ARMOUR: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - SET_INTEGER_PARAM(0, pPed->m_fArmour); + ScriptParams[0] = pPed->m_fArmour; StoreParameters(&m_nIp, 1); return 0; } @@ -387,23 +366,23 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) case COMMAND_SET_HELI_STABILISER: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - pVehicle->bHeliMinimumTilt = GET_INTEGER_PARAM(1); + pVehicle->bHeliMinimumTilt = ScriptParams[1]; return 0; } case COMMAND_SET_CAR_STRAIGHT_LINE_DISTANCE: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - pVehicle->AutoPilot.m_nSwitchDistance = GET_INTEGER_PARAM(1); + pVehicle->AutoPilot.m_nSwitchDistance = ScriptParams[1]; return 0; } case COMMAND_POP_CAR_BOOT: { CollectParameters(&m_nIp, 1); - CAutomobile* pCar = (CAutomobile*)CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CAutomobile* pCar = (CAutomobile*)CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pCar&& pCar->IsCar()); pCar->PopBoot(); return 0; @@ -411,22 +390,21 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) case COMMAND_SHUT_PLAYER_UP: { CollectParameters(&m_nIp, 2); - DMAudio.ShutUpPlayerTalking(!!GET_INTEGER_PARAM(1)); + DMAudio.ShutUpPlayerTalking(!!ScriptParams[1]); return 0; } case COMMAND_SET_PLAYER_MOOD: { CollectParameters(&m_nIp, 3); - DMAudio.SetPlayersMood(GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2)); + DMAudio.SetPlayersMood(ScriptParams[1], ScriptParams[2]); return 0; } case COMMAND_REQUEST_COLLISION: { CollectParameters(&m_nIp, 2); - CVector pos; - pos.x = GET_FLOAT_PARAM(0); - pos.y = GET_FLOAT_PARAM(1); - pos.z = 0.0f; + CVector2D pos; + pos.x = *(float*)&ScriptParams[0]; + pos.y = *(float*)&ScriptParams[1]; CColStore::RequestCollision(pos); return 0; } @@ -437,8 +415,9 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) case COMMAND_IS_OBJECT_IN_WATER: { CollectParameters(&m_nIp, 1); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); - UpdateCompareFlag(pObject && pObject->bIsInWater); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); + script_assert(pObject); + UpdateCompareFlag(pObject->bIsInWater); return 0; } //case COMMAND_SET_CHAR_OBJ_STEAL_ANY_CAR_EVEN_MISSION_CAR: @@ -449,11 +428,11 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) case COMMAND_SET_CHAR_CROUCH: { CollectParameters(&m_nIp, 3); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - if (GET_INTEGER_PARAM(1)) { + if (ScriptParams[1]) { pPed->bCrouchWhenShooting = true; - pPed->SetDuck(GET_INTEGER_PARAM(2), true); + pPed->SetDuck(ScriptParams[2], true); } else { pPed->ClearDuck(true); @@ -481,7 +460,7 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) return 0; } while (zone >= 0) { - CTheZones::SetZoneCivilianCarInfo(zone, GET_INTEGER_PARAM(0), carDensities, boatDensities); + CTheZones::SetZoneCivilianCarInfo(zone, ScriptParams[0], carDensities, boatDensities); zone = CTheZones::FindNextZoneByLabelAndReturnIndex(label, ZONE_INFO); } return 0; @@ -491,7 +470,7 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) char key[KEY_LENGTH_IN_SCRIPT]; CTheScripts::ReadTextLabelFromScript(&m_nIp, key); m_nIp += KEY_LENGTH_IN_SCRIPT; - CStreaming::RequestAnim(CAnimManager::GetAnimationBlockIndex(key), (m_bIsMissionScript ? STREAMFLAGS_SCRIPTOWNED : STREAMFLAGS_AMBIENT_SCRIPT_OWNED)); + CStreaming::RequestAnim(CAnimManager::GetAnimationBlockIndex(key), STREAMFLAGS_SCRIPTOWNED); return 0; } case COMMAND_HAS_ANIMATION_LOADED: @@ -508,13 +487,12 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) CTheScripts::ReadTextLabelFromScript(&m_nIp, key); m_nIp += KEY_LENGTH_IN_SCRIPT; CStreaming::RemoveAnim(CAnimManager::GetAnimationBlockIndex(key)); - // + empty function on PS2 return 0; } case COMMAND_IS_CHAR_WAITING_FOR_WORLD_COLLISION: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); UpdateCompareFlag(pPed->bIsStaticWaitingForCollision); return 0; @@ -522,101 +500,87 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) case COMMAND_IS_CAR_WAITING_FOR_WORLD_COLLISION: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); UpdateCompareFlag(pVehicle->bIsStaticWaitingForCollision); return 0; } - /* case COMMAND_IS_OBJECT_WAITING_FOR_WORLD_COLLISION: { CollectParameters(&m_nIp, 1); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); UpdateCompareFlag(pObject->bIsStaticWaitingForCollision); return 0; } - */ case COMMAND_SET_CHAR_SHUFFLE_INTO_DRIVERS_SEAT: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); pPed->PedShuffle(); return 0; } case COMMAND_ATTACH_CHAR_TO_OBJECT: { CollectParameters(&m_nIp, 8); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(1)); - pPed->AttachPedToEntity(pObject, GET_VECTOR_PARAM(2), GET_INTEGER_PARAM(5), DEGTORAD(GET_INTEGER_PARAM(6)), (eWeaponType)GET_INTEGER_PARAM(7)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[1]); + pPed->AttachPedToEntity(pObject, *(CVector*)&ScriptParams[2], ScriptParams[5], DEGTORAD(ScriptParams[6]), (eWeaponType)ScriptParams[7]); return 0; } case COMMAND_SET_CHAR_AS_PLAYER_FRIEND: { CollectParameters(&m_nIp, 3); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->bIsPlayerFriend = GET_INTEGER_PARAM(2); + pPed->bIsPlayerFriend = ScriptParams[2]; return 0; } //case COMMAND_DISPLAY_NTH_ONSCREEN_COUNTER: case COMMAND_DISPLAY_NTH_ONSCREEN_COUNTER_WITH_STRING: { char onscreen_str[12]; - //script_assert(CTheScripts::ScriptSpace[m_nIp++] == ARGUMENT_GLOBALVAR); - uint16 var = (uint8*)GetPointerToScriptVariable(&m_nIp, 0) - CTheScripts::ScriptSpace; + script_assert(CTheScripts::ScriptSpace[m_nIp++] == ARGUMENT_GLOBALVAR); + uint16 var = CTheScripts::Read2BytesFromScript(&m_nIp); CollectParameters(&m_nIp, 2); wchar* text = TheText.Get((char*)&CTheScripts::ScriptSpace[m_nIp]); // ??? strncpy(onscreen_str, (char*)&CTheScripts::ScriptSpace[m_nIp], KEY_LENGTH_IN_SCRIPT); m_nIp += KEY_LENGTH_IN_SCRIPT; - CUserDisplay::OnscnTimer.AddCounter(var, GET_INTEGER_PARAM(0), onscreen_str, GET_INTEGER_PARAM(1) - 1); // TODO: last params are -1, nil, 0 + CUserDisplay::OnscnTimer.AddCounter(var, ScriptParams[0], onscreen_str, ScriptParams[1] - 1); return 0; } case COMMAND_ADD_SET_PIECE: { CollectParameters(&m_nIp, 13); - float fTriggerInfX = GET_FLOAT_PARAM(1); - float fTriggerInfY = GET_FLOAT_PARAM(2); - float fTriggerSupX = GET_FLOAT_PARAM(3); - float fTriggerSupY = GET_FLOAT_PARAM(4); - float fSpawn1X = GET_FLOAT_PARAM(5); - float fSpawn1Y = GET_FLOAT_PARAM(6); - float fTarget1X = GET_FLOAT_PARAM(7); - float fTarget1Y = GET_FLOAT_PARAM(8); - float fSpawn2X = GET_FLOAT_PARAM(9); - float fSpawn2Y = GET_FLOAT_PARAM(10); - float fTarget2X = GET_FLOAT_PARAM(11); - float fTarget2Y = GET_FLOAT_PARAM(12); - CSetPieces::AddOne(GET_INTEGER_PARAM(0), - CVector2D(fTriggerInfX, fTriggerInfY), CVector2D(fTriggerSupX, fTriggerSupY), - CVector2D(fSpawn1X, fSpawn1Y), CVector2D(fTarget1X, fTarget1Y), - CVector2D(fSpawn2X, fSpawn2Y), CVector2D(fTarget2X, fTarget2Y)); + CSetPieces::AddOne(ScriptParams[0], + *(CVector2D*)&ScriptParams[1], *(CVector2D*)&ScriptParams[3], + *(CVector2D*)&ScriptParams[5], *(CVector2D*)&ScriptParams[7], + *(CVector2D*)&ScriptParams[9], *(CVector2D*)&ScriptParams[11]); return 0; } case COMMAND_SET_EXTRA_COLOURS: { CollectParameters(&m_nIp, 2); - CTimeCycle::StartExtraColour(GET_INTEGER_PARAM(0)-1, GET_INTEGER_PARAM(1) != 0); + CTimeCycle::StartExtraColour(ScriptParams[0]-1, ScriptParams[1] != 0); return 0; } case COMMAND_CLEAR_EXTRA_COLOURS: { CollectParameters(&m_nIp, 1); - CTimeCycle::StopExtraColour(GET_INTEGER_PARAM(0)); + CTimeCycle::StopExtraColour(ScriptParams[0]); return 0; } //case COMMAND_CLOSE_CAR_BOOT: case COMMAND_GET_WHEELIE_STATS: { CollectParameters(&m_nIp, 1); - CPlayerInfo* pPlayerInfo = &CWorld::Players[GET_INTEGER_PARAM(0)]; - SET_INTEGER_PARAM(0, pPlayerInfo->m_nLastTimeCarSpentOnTwoWheels); - SET_FLOAT_PARAM(1, pPlayerInfo->m_nLastDistanceCarTravelledOnTwoWheels); - SET_INTEGER_PARAM(2, pPlayerInfo->m_nLastTimeSpentOnWheelie); - SET_FLOAT_PARAM(3, pPlayerInfo->m_nLastDistanceTravelledOnWheelie); - SET_INTEGER_PARAM(4, pPlayerInfo->m_nLastTimeSpentOnStoppie); - SET_FLOAT_PARAM(5, pPlayerInfo->m_nLastDistanceTravelledOnStoppie); + CPlayerInfo* pPlayerInfo = &CWorld::Players[ScriptParams[0]]; + ScriptParams[0] = pPlayerInfo->m_nLastTimeCarSpentOnTwoWheels; + *(float*)&ScriptParams[1] = pPlayerInfo->m_nLastDistanceCarTravelledOnTwoWheels; + ScriptParams[2] = pPlayerInfo->m_nLastTimeSpentOnWheelie; + *(float*)&ScriptParams[3] = pPlayerInfo->m_nLastDistanceTravelledOnWheelie; + ScriptParams[4] = pPlayerInfo->m_nLastTimeSpentOnStoppie; + *(float*)&ScriptParams[5] = pPlayerInfo->m_nLastDistanceTravelledOnStoppie; StoreParameters(&m_nIp, 6); pPlayerInfo->m_nLastTimeCarSpentOnTwoWheels = 0; pPlayerInfo->m_nLastDistanceCarTravelledOnTwoWheels = 0.0f; @@ -630,23 +594,23 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) case COMMAND_BURST_CAR_TYRE: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); if (pVehicle->IsBike()) { - if (GET_INTEGER_PARAM(1) == 2) - SET_INTEGER_PARAM(1, 0); - else if (GET_INTEGER_PARAM(1) == 3) - SET_INTEGER_PARAM(1, 1); - pVehicle->BurstTyre(GET_INTEGER_PARAM(1), true); + if (ScriptParams[1] == 2) + ScriptParams[1] = 0; + else if (ScriptParams[1] == 3) + ScriptParams[1] = 1; + pVehicle->BurstTyre(ScriptParams[1], true); } else { - pVehicle->BurstTyre(GET_INTEGER_PARAM(1), true); + pVehicle->BurstTyre(ScriptParams[1], true); } return 0; } case COMMAND_IS_CHAR_OBJ_NO_OBJ: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); UpdateCompareFlag(pPed->m_prevObjective == OBJECTIVE_NONE && pPed->m_objective == OBJECTIVE_NONE); return 0; @@ -659,26 +623,26 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) m_nIp += KEY_LENGTH_IN_SCRIPT; for (int i = 0; i < KEY_LENGTH_IN_SCRIPT; i++) key[i] = tolower(key[i]); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); - UpdateCompareFlag(CModelInfo::GetModelInfo(pPed->GetModelIndex())->GetNameHashKey() == CKeyGen::GetUppercaseKey(key)); + UpdateCompareFlag(strcmp(key, CModelInfo::GetModelInfo(pPed->GetModelIndex())->GetModelName()) == 0); return 0; } case COMMAND_SET_PLAYER_CAN_DO_DRIVE_BY: { CollectParameters(&m_nIp, 2); - CPlayerInfo* pPlayerInfo = &CWorld::Players[GET_INTEGER_PARAM(0)]; - pPlayerInfo->m_bDriveByAllowed = GET_INTEGER_PARAM(1); + CPlayerInfo* pPlayerInfo = &CWorld::Players[ScriptParams[0]]; + pPlayerInfo->m_bDriveByAllowed = ScriptParams[1]; return 0; } case COMMAND_SET_CHAR_OBJ_SPRINT_TO_COORD: { CollectParameters(&m_nIp, 3); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); CVector pos; - pos.x = GET_FLOAT_PARAM(1); - pos.y = GET_FLOAT_PARAM(2); + pos.x = *(float*)&ScriptParams[1]; + pos.y = *(float*)&ScriptParams[2]; pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); pPed->bScriptObjectiveCompleted = false; pPed->SetObjective(OBJECTIVE_SPRINT_TO_AREA, pos); @@ -687,7 +651,7 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) case COMMAND_CREATE_SWAT_ROPE: { CollectParameters(&m_nIp, 3); - CRopes::CreateRopeWithSwatComingDown(GET_VECTOR_PARAM(0)); + CRopes::CreateRopeWithSwatComingDown(*(CVector*)&ScriptParams[0]); return 0; } //case COMMAND_SET_FIRST_PERSON_CONTROL_CAMERA: @@ -695,19 +659,19 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) case COMMAND_SET_CAR_MODEL_COMPONENTS: { CollectParameters(&m_nIp, 3); - CVehicleModelInfo::SetComponentsToUse(GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2)); + CVehicleModelInfo::SetComponentsToUse(ScriptParams[1], ScriptParams[2]); return 0; } case COMMAND_SWITCH_LIFT_CAMERA: { CollectParameters(&m_nIp, 1); - CSpecialFX::bLiftCam = GET_INTEGER_PARAM(0) != 0; + CSpecialFX::bLiftCam = ScriptParams[0] != 0; return 0; } case COMMAND_CLOSE_ALL_CAR_DOORS: { CollectParameters(&m_nIp, 1); - CAutomobile* pCar = (CAutomobile*)CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CAutomobile* pCar = (CAutomobile*)CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pCar&& pCar->IsCar()); pCar->CloseAllDoors(); return 0; @@ -715,25 +679,21 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) case COMMAND_GET_DISTANCE_BETWEEN_COORDS_2D: { CollectParameters(&m_nIp, 4); - float X1 = GET_FLOAT_PARAM(0); - float Y1 = GET_FLOAT_PARAM(1); - float X2 = GET_FLOAT_PARAM(2); - float Y2 = GET_FLOAT_PARAM(3); - SET_FLOAT_PARAM(0, (CVector2D(X1, Y1) - CVector2D(X2, Y2)).Magnitude()); + *(float*)&ScriptParams[0] = (*(CVector2D*)&ScriptParams[0] - *(CVector2D*)&ScriptParams[2]).Magnitude(); StoreParameters(&m_nIp, 1); return 0; } case COMMAND_GET_DISTANCE_BETWEEN_COORDS_3D: { CollectParameters(&m_nIp, 6); - SET_FLOAT_PARAM(0, (GET_VECTOR_PARAM(0) - GET_VECTOR_PARAM(3)).Magnitude()); + *(float*)&ScriptParams[0] = (*(CVector*)&ScriptParams[0] - *(CVector*)&ScriptParams[3]).Magnitude(); StoreParameters(&m_nIp, 1); return 0; } case COMMAND_POP_CAR_BOOT_USING_PHYSICS: { CollectParameters(&m_nIp, 1); - CAutomobile* pCar = (CAutomobile*)CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CAutomobile* pCar = (CAutomobile*)CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pCar && pCar->IsCar()); pCar->PopBootUsingPhysics(); return 0; @@ -742,7 +702,7 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) case COMMAND_IS_CHAR_LEAVING_VEHICLE_TO_DIE: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); UpdateCompareFlag(pPed->m_objective == OBJECTIVE_LEAVE_CAR_AND_DIE); return 0; @@ -750,29 +710,25 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) case COMMAND_SORT_OUT_OBJECT_COLLISION_WITH_CAR: { CollectParameters(&m_nIp, 2); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); - pObject->m_pCollidingEntity = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); + pObject->m_pCollidingEntity = CPools::GetVehiclePool()->GetAt(ScriptParams[1]); return 0; } //case COMMAND_GET_MAX_WANTED_LEVEL: case COMMAND_IS_CHAR_WANDER_PATH_CLEAR: { CollectParameters(&m_nIp, 5); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - UpdateCompareFlag(CWorld::IsWanderPathClear(pPed->GetPosition(), GET_VECTOR_PARAM(0), GET_FLOAT_PARAM(3), 4)); + UpdateCompareFlag(CWorld::IsWanderPathClear(pPed->GetPosition(), *(CVector*)&ScriptParams[0], *(float*)&ScriptParams[3], 4)); return 0; } //case COMMAND_PRINT_HELP_WITH_NUMBER: case COMMAND_PRINT_HELP_FOREVER: { wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); - CHud::SetHelpMessage(text, false, true); // + true - if (text != CHud::gLastPrintForeverString) { - CHud::gLastPrintForeverString = text; - DMAudio.PlayFrontEndSound(SOUND_HUD, 0); - } + CHud::SetHelpMessage(text, false, true); return 0; } //case COMMAND_PRINT_HELP_FOREVER_WITH_NUMBER: @@ -788,10 +744,10 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) case COMMAND_SET_CHAR_CAN_BE_DAMAGED_BY_MEMBERS_OF_GANG: { CollectParameters(&m_nIp, 3); - CPed* pTarget = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pTarget = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pTarget); - uint8 flag = 1 << (uint8)GET_INTEGER_PARAM(1); - if (GET_INTEGER_PARAM(2)) + uint8 flag = 1 << (uint8)ScriptParams[1]; + if (ScriptParams[2]) pTarget->m_gangFlags |= flag; else pTarget->m_gangFlags &= ~flag; @@ -804,7 +760,7 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) case COMMAND_CREATE_LOCKED_PROPERTY_PICKUP: { CollectParameters(&m_nIp, 3); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y) + PICKUP_PLACEMENT_OFFSET; char key[KEY_LENGTH_IN_SCRIPT]; @@ -812,14 +768,14 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) m_nIp += KEY_LENGTH_IN_SCRIPT; // TheText.Get(key); CPickups::GetActualPickupIndex(CollectNextParameterWithoutIncreasingPC(m_nIp)); - SET_INTEGER_PARAM(0, CPickups::GenerateNewOne(pos, MI_PICKUP_PROPERTY, PICKUP_PROPERTY_LOCKED, 0, 0, false, key)); // TODO: gpModelIndices + ScriptParams[0] = CPickups::GenerateNewOne(pos, MI_PICKUP_PROPERTY, PICKUP_PROPERTY_LOCKED, 0, 0, false, key); StoreParameters(&m_nIp, 1); return 0; } case COMMAND_CREATE_FORSALE_PROPERTY_PICKUP: { CollectParameters(&m_nIp, 4); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y) + PICKUP_PLACEMENT_OFFSET; char key[KEY_LENGTH_IN_SCRIPT]; @@ -827,24 +783,24 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) m_nIp += KEY_LENGTH_IN_SCRIPT; // TheText.Get(key); CPickups::GetActualPickupIndex(CollectNextParameterWithoutIncreasingPC(m_nIp)); - SET_INTEGER_PARAM(0, CPickups::GenerateNewOne(pos, MI_PICKUP_PROPERTY_FORSALE, PICKUP_PROPERTY_FORSALE, GET_INTEGER_PARAM(3), 0, false, key)); // TODO: gpModelIndices + ScriptParams[0] = CPickups::GenerateNewOne(pos, MI_PICKUP_PROPERTY_FORSALE, PICKUP_PROPERTY_FORSALE, ScriptParams[3], 0, false, key); StoreParameters(&m_nIp, 1); return 0; } case COMMAND_FREEZE_CAR_POSITION: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - pVehicle->bIsFrozen = GET_INTEGER_PARAM(1); - pVehicle->bInfiniteMass = GET_INTEGER_PARAM(1); + pVehicle->bIsFrozen = ScriptParams[1]; + pVehicle->bInfiniteMass = ScriptParams[1]; return 0; } case COMMAND_HAS_CHAR_BEEN_DAMAGED_BY_CHAR: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - CPed* pTestedPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); + CPed* pTestedPed = CPools::GetPedPool()->GetAt(ScriptParams[1]); bool result = false; if (pPed) { if (pPed->m_lastDamEntity) { @@ -858,75 +814,16 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) UpdateCompareFlag(result); return 0; } - case COMMAND_HAS_CHAR_BEEN_DAMAGED_BY_CAR: - { - CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - CVehicle* pTestedVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); - bool result = false; - if (pPed) { - if (pPed->m_lastDamEntity) { - if (pPed->m_lastDamEntity == pTestedVehicle) - result = true; - } - } - else - debug("HAS_CHAR_BEEN_DAMAGED_BY_CAR - Character doesn't exist\n"); - UpdateCompareFlag(result); - return 0; - } - case COMMAND_HAS_CAR_BEEN_DAMAGED_BY_CHAR: - { - CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - CPed* pTestedPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); - bool result = false; - if (pVehicle) { - if (pVehicle->m_pLastDamageEntity) { - if (pVehicle->m_pLastDamageEntity == pTestedPed) - result = true; - if (pTestedPed->bInVehicle && pVehicle->m_pLastDamageEntity == pTestedPed->m_pMyVehicle) - result = true; - } - } - else - debug("HAS_CAR_BEEN_DAMAGED_BY_CHAR - Car doesn't exist\n"); - UpdateCompareFlag(result); - return 0; - } - case COMMAND_HAS_CAR_BEEN_DAMAGED_BY_CAR: - { - CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - CVehicle* pTestedVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); - bool result = false; - if (pVehicle) { - if (pVehicle->m_pLastDamageEntity) { - if (pVehicle->m_pLastDamageEntity == pTestedVehicle) - result = true; - } - } - else - debug("HAS_CAR_BEEN_DAMAGED_BY_CAR - First car doesn't exist\n"); - UpdateCompareFlag(result); - return 0; - } - case COMMAND_GET_RADIO_CHANNEL: - { - uint8 radio = DMAudio.GetRadioInCar(); - if (radio < NUM_RADIOS || radio == STREAMED_SOUND_MISSION_COMPLETED) - SET_INTEGER_PARAM(0, radio); - else - SET_INTEGER_PARAM(0, -1); - StoreParameters(&m_nIp, 1); - return 0; - } + //case COMMAND_HAS_CHAR_BEEN_DAMAGED_BY_CAR: + //case COMMAND_HAS_CAR_BEEN_DAMAGED_BY_CHAR: + //case COMMAND_HAS_CAR_BEEN_DAMAGED_BY_CAR: + //case COMMAND_GET_RADIO_CHANNEL: //case COMMAND_DISPLAY_TEXT_WITH_3_NUMBERS: //case COMMAND_IS_CAR_DROWNING_IN_WATER: case COMMAND_IS_CHAR_DROWNING_IN_WATER: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); UpdateCompareFlag(pPed && pPed->bIsDrowning); return 0; } @@ -940,7 +837,7 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) CollectParameters(&m_nIp, 3); bool shattered = false; - if ( CGlass::HasGlassBeenShatteredAtCoors(GET_FLOAT_PARAM(0), GET_FLOAT_PARAM(1), GET_FLOAT_PARAM(2)) ) + if ( CGlass::HasGlassBeenShatteredAtCoors(*(float*)&ScriptParams[0], *(float*)&ScriptParams[1], *(float*)&ScriptParams[2]) ) shattered = true; UpdateCompareFlag(shattered); @@ -949,14 +846,14 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) case COMMAND_ATTACH_CUTSCENE_OBJECT_TO_BONE: { CollectParameters(&m_nIp, 3); - CCutsceneMgr::AttachObjectToBone(CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)), CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(1)), GET_INTEGER_PARAM(2)); + CCutsceneMgr::AttachObjectToBone(CPools::GetObjectPool()->GetAt(ScriptParams[0]), CPools::GetObjectPool()->GetAt(ScriptParams[1]), ScriptParams[2]); return 0; } case COMMAND_ATTACH_CUTSCENE_OBJECT_TO_COMPONENT: { CollectParameters(&m_nIp, 2); - CObject *obj1 = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); - CObject *obj2 = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(1)); + CObject *obj1 = CPools::GetObjectPool()->GetAt(ScriptParams[0]); + CObject *obj2 = CPools::GetObjectPool()->GetAt(ScriptParams[1]); char key[KEY_LENGTH_IN_SCRIPT]; CTheScripts::ReadTextLabelFromScript(&m_nIp, key); @@ -968,26 +865,26 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) case COMMAND_SET_CHAR_STAY_IN_CAR_WHEN_JACKED: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->bStayInCarOnJack = GET_INTEGER_PARAM(1); + pPed->bStayInCarOnJack = ScriptParams[1]; return 0; } //case COMMAND_IS_MISSION_AUDIO_LOADING: case COMMAND_ADD_MONEY_SPENT_ON_WEAPONS: CollectParameters(&m_nIp, 1); - CStats::MoneySpentOnWeapons(GET_INTEGER_PARAM(0)); + CStats::MoneySpentOnWeapons(ScriptParams[0]); return 0; case COMMAND_ADD_MONEY_SPENT_ON_PROPERTY: CollectParameters(&m_nIp, 1); - //CStats::MoneySpentOnProperty(GET_INTEGER_PARAM(0)); + CStats::MoneySpentOnProperty(ScriptParams[0]); return 0; //case COMMAND_ADD_MONEY_SPENT_ON_AUTO_PAINTING: case COMMAND_SET_CHAR_ANSWERING_MOBILE: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - if (GET_INTEGER_PARAM(1)) + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); + if (ScriptParams[1]) pPed->SetAnswerMobile(); else pPed->ClearAnswerMobile(); @@ -996,8 +893,8 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) case COMMAND_SET_PLAYER_DRUNKENNESS: { CollectParameters(&m_nIp, 2); - CPlayerInfo* pPlayerInfo = &CWorld::Players[GET_INTEGER_PARAM(0)]; - pPlayerInfo->m_pPed->m_nDrunkenness = GET_INTEGER_PARAM(1); + CPlayerInfo* pPlayerInfo = &CWorld::Players[ScriptParams[0]]; + pPlayerInfo->m_pPed->m_nDrunkenness = ScriptParams[1]; pPlayerInfo->m_pPed->m_nFadeDrunkenness = 0; if (pPlayerInfo->m_pPed->m_nDrunkenness == 0) CMBlur::ClearDrunkBlur(); @@ -1009,21 +906,21 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) //case COMMAND_ADD_LOAN_SHARK_VISITS: case COMMAND_ADD_STORES_KNOCKED_OFF: CollectParameters(&m_nIp, 1); - //CStats::NumOfStoresKnockedOff(GET_INTEGER_PARAM(0)); + CStats::NumOfStoresKnockedOff(ScriptParams[0]); return 0; //case COMMAND_ADD_MOVIE_STUNTS: case COMMAND_ADD_NUMBER_OF_ASSASSINATIONS: CollectParameters(&m_nIp, 1); - //CStats::NumOfAssassinations(GET_INTEGER_PARAM(0)); + CStats::NumOfAssassinations(ScriptParams[0]); return 0; case COMMAND_ADD_PIZZAS_DELIVERED: CollectParameters(&m_nIp, 1); - CStats::NumOfPizzasDelivered(GET_INTEGER_PARAM(0)); + CStats::NumOfPizzasDelivered(ScriptParams[0]); return 0; //case COMMAND_ADD_GARBAGE_PICKUPS: case COMMAND_ADD_ICE_CREAMS_SOLD: CollectParameters(&m_nIp, 1); - CStats::NumOfIceCreamSold(GET_INTEGER_PARAM(0)); + CStats::NumOfIceCreamSold(ScriptParams[0]); return 0; //case COMMAND_SET_TOP_SHOOTING_RANGE_SCORE: //case COMMAND_ADD_SHOOTING_RANGE_RANK: @@ -1033,15 +930,15 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) case COMMAND_SET_CHAR_IN_PLAYERS_GROUP_CAN_FIGHT: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->bDontFight = !GET_INTEGER_PARAM(1); + pPed->bDontFight = !ScriptParams[1]; return 0; } case COMMAND_CLEAR_CHAR_WAIT_STATE: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); pPed->ClearWaitState(); return 0; @@ -1051,17 +948,17 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) CollectParameters(&m_nIp, 5); int handle = -1; uint32 i = CPools::GetVehiclePool()->GetSize(); - float infX = GET_FLOAT_PARAM(0); - float infY = GET_FLOAT_PARAM(1); - float supX = GET_FLOAT_PARAM(2); - float supY = GET_FLOAT_PARAM(3); + float infX = *(float*)&ScriptParams[0]; + float infY = *(float*)&ScriptParams[1]; + float supX = *(float*)&ScriptParams[2]; + float supY = *(float*)&ScriptParams[3]; while (i--) { CVehicle* pVehicle = CPools::GetVehiclePool()->GetSlot(i); if (!pVehicle) continue; if (pVehicle->GetVehicleAppearance() != VEHICLE_APPEARANCE_CAR && pVehicle->GetVehicleAppearance() != VEHICLE_APPEARANCE_BIKE) continue; - if (GET_INTEGER_PARAM(4) != pVehicle->GetModelIndex() && GET_INTEGER_PARAM(4) >= 0) + if (ScriptParams[4] != pVehicle->GetModelIndex() && ScriptParams[4] >= 0) continue; if (pVehicle->VehicleCreatedBy != RANDOM_VEHICLE) continue; @@ -1069,30 +966,30 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) continue; handle = CPools::GetVehiclePool()->GetIndex(pVehicle); } - SET_INTEGER_PARAM(0, handle); + ScriptParams[0] = handle; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_SET_CAN_BURST_CAR_TYRES: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - pVehicle->bTyresDontBurst = !GET_INTEGER_PARAM(1); + pVehicle->bTyresDontBurst = !ScriptParams[1]; return 0; } case COMMAND_SET_PLAYER_AUTO_AIM: { CollectParameters(&m_nIp, 2); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); - pPed->bDoomAim = GET_INTEGER_PARAM(1); + pPed->bDoomAim = ScriptParams[1]; return 0; } case COMMAND_FIRE_HUNTER_GUN: { CollectParameters(&m_nIp, 1); - CVehicle *pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle *pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); if (CTimer::GetTimeInMilliseconds() > pVehicle->m_nGunFiringTime + 150) { CWeapon gun(WEAPONTYPE_HELICANNON, 5000); CVector worldGunPos = (pVehicle->GetMatrix() * vecHunterGunPos) + (CTimer::GetTimeStep() * pVehicle->m_vecMoveSpeed); @@ -1105,27 +1002,27 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) } case COMMAND_SET_PROPERTY_AS_OWNED: CollectParameters(&m_nIp, 1); - CStats::AddPropertyAsOwned(GET_INTEGER_PARAM(0)); + CStats::AddPropertyAsOwned(ScriptParams[0]); return 0; case COMMAND_ADD_BLOOD_RING_KILLS: CollectParameters(&m_nIp, 1); - CStats::AddNumBloodRingKills(GET_INTEGER_PARAM(0)); + CStats::AddNumBloodRingKills(ScriptParams[0]); return 0; case COMMAND_SET_LONGEST_TIME_IN_BLOOD_RING: CollectParameters(&m_nIp, 1); - CStats::LongestTimeInBloodRing(GET_INTEGER_PARAM(0)); + CStats::LongestTimeInBloodRing(ScriptParams[0]); return 0; case COMMAND_REMOVE_EVERYTHING_FOR_HUGE_CUTSCENE: { - //CCutsceneMgr::RemoveEverythingFromTheWorldForTheBiggestFuckoffCutsceneEver(); + CCutsceneMgr::RemoveEverythingFromTheWorldForTheBiggestFuckoffCutsceneEver(); return 0; } case COMMAND_IS_PLAYER_TOUCHING_VEHICLE: { CollectParameters(&m_nIp, 2); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[1]); CPhysical* pTestedEntity = pPed; if (pPed->bInVehicle && pPed->m_pMyVehicle) pTestedEntity = pPed->m_pMyVehicle; @@ -1136,15 +1033,15 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) case COMMAND_CHECK_FOR_PED_MODEL_AROUND_PLAYER: { CollectParameters(&m_nIp, 6); - CVector d1 = CWorld::Players[GET_INTEGER_PARAM(0)].GetPos() - GET_VECTOR_PARAM(1); - CVector d2 = CWorld::Players[GET_INTEGER_PARAM(0)].GetPos() + GET_VECTOR_PARAM(1); + CVector d1 = CWorld::Players[ScriptParams[0]].GetPos() - *(CVector*)&ScriptParams[1]; + CVector d2 = CWorld::Players[ScriptParams[0]].GetPos() + *(CVector*)&ScriptParams[1]; int i = CPools::GetPedPool()->GetSize(); bool result = false; while (i--) { CPed* pPed = CPools::GetPedPool()->GetSlot(i); if (!pPed) continue; - if (GET_INTEGER_PARAM(4) != pPed->GetModelIndex() && GET_INTEGER_PARAM(5) != pPed->GetModelIndex()) + if (ScriptParams[4] != pPed->GetModelIndex() && ScriptParams[5] != pPed->GetModelIndex()) continue; if (pPed->IsWithinArea(d1.x, d1.y, d1.z, d2.x, d2.y, d2.z)) result = true; @@ -1155,7 +1052,7 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) case COMMAND_CLEAR_CHAR_FOLLOW_PATH: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); if (pPed->GetPedState() == PED_FOLLOW_PATH) { pPed->RestorePreviousState(); @@ -1166,15 +1063,15 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) case COMMAND_SET_CHAR_CAN_BE_SHOT_IN_VEHICLE: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->bCanBeShotInVehicle = GET_INTEGER_PARAM(1); + pPed->bCanBeShotInVehicle = ScriptParams[1]; return 0; } case COMMAND_ATTACH_CUTSCENE_OBJECT_TO_VEHICLE: { CollectParameters(&m_nIp, 2); - CCutsceneMgr::AttachObjectToParent(CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)), CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1))); + CCutsceneMgr::AttachObjectToParent(CPools::GetObjectPool()->GetAt(ScriptParams[0]), CPools::GetVehiclePool()->GetAt(ScriptParams[1])); return 0; } case COMMAND_LOAD_MISSION_TEXT: @@ -1188,48 +1085,39 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) case COMMAND_SET_TONIGHTS_EVENT: { CollectParameters(&m_nIp, 1); - CScrollBar::TonightsEvent = GET_INTEGER_PARAM(0); + CScrollBar::TonightsEvent = ScriptParams[0]; return 0; } case COMMAND_CLEAR_CHAR_LAST_DAMAGE_ENTITY: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); if (pPed) pPed->m_lastDamEntity = nil; else debug("CLEAR_CHAR_LAST_DAMAGE_ENTITY - Character doesn't exist\n"); return 0; } - case COMMAND_CLEAR_CAR_LAST_DAMAGE_ENTITY: - { - CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - if (pVehicle) - pVehicle->m_pLastDamageEntity = nil; - else - debug("CLEAR_CAR_LAST_DAMAGE_ENTITY - Car doesn't exist\n"); - return 0; - } + //case COMMAND_CLEAR_CAR_LAST_DAMAGE_ENTITY: case COMMAND_FREEZE_OBJECT_POSITION: { CollectParameters(&m_nIp, 2); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); - pObject->bIsFrozen = GET_INTEGER_PARAM(1); - pObject->bInfiniteMass = GET_INTEGER_PARAM(1); + pObject->bIsFrozen = ScriptParams[1]; + pObject->bInfiniteMass = ScriptParams[1]; return 0; } case COMMAND_SET_PLAYER_HAS_MET_DEBBIE_HARRY: { CollectParameters(&m_nIp, 1); - CTheScripts::bPlayerHasMetDebbieHarry = GET_INTEGER_PARAM(0); + CTheScripts::bPlayerHasMetDebbieHarry = ScriptParams[0]; return 0; } case COMMAND_SET_RIOT_INTENSITY: { CollectParameters(&m_nIp, 1); - CTheScripts::RiotIntensity = GET_INTEGER_PARAM(0); + CTheScripts::RiotIntensity = ScriptParams[0]; return 0; } //case COMMAND_IS_CAR_IN_ANGLED_AREA_2D: @@ -1239,28 +1127,27 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) { CollectParameters(&m_nIp, 8); CGameLogic::SetUpShortCut( - GET_VECTOR_PARAM(0), GET_FLOAT_PARAM(3), - GET_VECTOR_PARAM(4), GET_FLOAT_PARAM(7)); + *(CVector*)&ScriptParams[0], *(float*)&ScriptParams[3], + *(CVector*)&ScriptParams[4], *(float*)&ScriptParams[7]); return 0; } case COMMAND_CLEAR_TAXI_SHORTCUT: CGameLogic::ClearShortCut(); - CGameLogic::RemoveShortCutDropOffPointForMission(); return 0; //case COMMAND_SET_CHAR_OBJ_GOTO_CAR_ON_FOOT: //case COMMAND_GET_CLOSEST_WATER_NODE: case COMMAND_ADD_PORN_LEAFLET_TO_RUBBISH: CollectParameters(&m_nIp, 1); - CStats::PamphletMissionPassed = GET_INTEGER_PARAM(0); + CStats::PamphletMissionPassed = ScriptParams[0]; return 0; case COMMAND_CREATE_CLOTHES_PICKUP: { CollectParameters(&m_nIp, 4); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y) + PICKUP_PLACEMENT_OFFSET; CPickups::GetActualPickupIndex(CollectNextParameterWithoutIncreasingPC(m_nIp)); - SET_INTEGER_PARAM(0, CPickups::GenerateNewOne(pos, MI_PICKUP_CLOTHES, PICKUP_ON_STREET, GET_INTEGER_PARAM(3))); // TODO: gpModelIndices + ScriptParams[0] = CPickups::GenerateNewOne(pos, MI_PICKUP_CLOTHES, PICKUP_ON_STREET, ScriptParams[3]); StoreParameters(&m_nIp, 1); return 0; } @@ -1268,32 +1155,30 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) case COMMAND_MAKE_PLAYER_FIRE_PROOF: { CollectParameters(&m_nIp, 2); - CPlayerInfo* pPlayerInfo = &CWorld::Players[GET_INTEGER_PARAM(0)]; - pPlayerInfo->m_bFireproof = GET_INTEGER_PARAM(1); + CPlayerInfo* pPlayerInfo = &CWorld::Players[ScriptParams[0]]; + pPlayerInfo->m_bFireproof = ScriptParams[1]; return 0; } case COMMAND_INCREASE_PLAYER_MAX_HEALTH: { CollectParameters(&m_nIp, 2); - CPlayerInfo* pPlayerInfo = &CWorld::Players[GET_INTEGER_PARAM(0)]; - pPlayerInfo->m_nMaxHealth += GET_INTEGER_PARAM(1); + CPlayerInfo* pPlayerInfo = &CWorld::Players[ScriptParams[0]]; + pPlayerInfo->m_nMaxHealth += ScriptParams[1]; pPlayerInfo->m_pPed->m_fHealth = pPlayerInfo->m_nMaxHealth; - CHud::m_ItemToFlash = ITEM_HEALTH; return 0; } case COMMAND_INCREASE_PLAYER_MAX_ARMOUR: { CollectParameters(&m_nIp, 2); - CPlayerInfo* pPlayerInfo = &CWorld::Players[GET_INTEGER_PARAM(0)]; - pPlayerInfo->m_nMaxArmour += GET_INTEGER_PARAM(1); + CPlayerInfo* pPlayerInfo = &CWorld::Players[ScriptParams[0]]; + pPlayerInfo->m_nMaxArmour += ScriptParams[1]; pPlayerInfo->m_pPed->m_fArmour = pPlayerInfo->m_nMaxArmour; - CHud::m_ItemToFlash = ITEM_ARMOUR; return 0; } case COMMAND_CREATE_RANDOM_CHAR_AS_DRIVER: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); CPed* pPed = CPopulation::AddPedInCar(pVehicle, true); pPed->CharCreatedBy = MISSION_CHAR; pPed->bRespondsToThreats = false; @@ -1315,16 +1200,16 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) pVehicle->bEngineOn = true; pVehicle->m_nZoneLevel = CTheZones::GetLevelFromPosition(&pVehicle->GetPosition()); CPopulation::ms_nTotalMissionPeds++; - SET_INTEGER_PARAM(0, CPools::GetPedPool()->GetIndex(pPed)); + ScriptParams[0] = CPools::GetPedPool()->GetIndex(pPed); StoreParameters(&m_nIp, 1); if (m_bIsMissionScript) - CTheScripts::MissionCleanUp.AddEntityToList(GET_INTEGER_PARAM(0), CLEANUP_CHAR); + CTheScripts::MissionCleanUp.AddEntityToList(ScriptParams[0], CLEANUP_CHAR); return 0; } case COMMAND_CREATE_RANDOM_CHAR_AS_PASSENGER: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); CPed* pPed = CPopulation::AddPedInCar(pVehicle, false); pPed->CharCreatedBy = MISSION_CHAR; pPed->bRespondsToThreats = false; @@ -1336,8 +1221,8 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) pPed->SetOrientation(0.0f, 0.0f, 0.0f); CPopulation::ms_nTotalMissionPeds++; pVehicle->m_nZoneLevel = CTheZones::GetLevelFromPosition(&pVehicle->GetPosition()); - if (GET_INTEGER_PARAM(1) >= 0) - pVehicle->AddPassenger(pPed, GET_INTEGER_PARAM(1)); + if (ScriptParams[1] >= 0) + pVehicle->AddPassenger(pPed, ScriptParams[1]); else pVehicle->AddPassenger(pPed); @@ -1345,32 +1230,32 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) pPed->m_pMyVehicle->RegisterReference((CEntity**)&pPed->m_pMyVehicle); pPed->bInVehicle = true; pPed->SetPedState(PED_DRIVING); - SET_INTEGER_PARAM(0, CPools::GetPedPool()->GetIndex(pPed)); + ScriptParams[0] = CPools::GetPedPool()->GetIndex(pPed); StoreParameters(&m_nIp, 1); if (m_bIsMissionScript) - CTheScripts::MissionCleanUp.AddEntityToList(GET_INTEGER_PARAM(0), CLEANUP_CHAR); + CTheScripts::MissionCleanUp.AddEntityToList(ScriptParams[0], CLEANUP_CHAR); return 0; } case COMMAND_SET_CHAR_IGNORE_THREATS_BEHIND_OBJECTS: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->bIgnoreThreatsBehindObjects = GET_INTEGER_PARAM(1); + pPed->bIgnoreThreatsBehindObjects = ScriptParams[1]; return 0; } case COMMAND_ENSURE_PLAYER_HAS_DRIVE_BY_WEAPON: { CollectParameters(&m_nIp, 2); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); if (pPed->bInVehicle) { if (pPed->GetWeapon(WEAPONSLOT_SUBMACHINEGUN).m_eWeaponType) { - if (pPed->GetWeapon(WEAPONSLOT_SUBMACHINEGUN).m_nAmmoTotal < GET_INTEGER_PARAM(1)) - pPed->SetAmmo(pPed->GetWeapon(WEAPONSLOT_SUBMACHINEGUN).m_eWeaponType, GET_INTEGER_PARAM(1)); + if (pPed->GetWeapon(WEAPONSLOT_SUBMACHINEGUN).m_nAmmoTotal < ScriptParams[1]) + pPed->SetAmmo(pPed->GetWeapon(WEAPONSLOT_SUBMACHINEGUN).m_eWeaponType, ScriptParams[1]); } else { - pPed->GiveWeapon(WEAPONTYPE_UZI, GET_INTEGER_PARAM(1), true); + pPed->GiveWeapon(WEAPONTYPE_UZI, ScriptParams[1], true); if (pPed->m_storedWeapon == WEAPONTYPE_UNIDENTIFIED) pPed->m_storedWeapon = pPed->GetWeapon()->m_eWeaponType; pPed->SetCurrentWeapon(WEAPONTYPE_UZI); @@ -1381,7 +1266,7 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) case COMMAND_MAKE_HELI_COME_CRASHING_DOWN: { CollectParameters(&m_nIp, 1); - CAutomobile* pHeli = (CAutomobile*)CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CAutomobile* pHeli = (CAutomobile*)CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pHeli && pHeli->IsCar() && pHeli->IsRealHeli()); pHeli->bHeliDestroyed = true; return 0; @@ -1389,24 +1274,24 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) case COMMAND_ADD_EXPLOSION_NO_SOUND: { CollectParameters(&m_nIp, 4); - CExplosion::AddExplosion(nil, nil, (eExplosionType)GET_INTEGER_PARAM(3), GET_VECTOR_PARAM(0), 0, false); + CExplosion::AddExplosion(nil, nil, (eExplosionType)ScriptParams[3], *(CVector*)&ScriptParams[0], 0, false); return 0; } case COMMAND_SET_OBJECT_AREA_VISIBLE: { CollectParameters(&m_nIp, 2); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); script_assert(pObject); - pObject->m_area = GET_INTEGER_PARAM(1); + pObject->m_area = ScriptParams[1]; return 0; } //case COMMAND_WAS_VEHICLE_EVER_POLICE: case COMMAND_SET_CHAR_NEVER_TARGETTED: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->bNeverEverTargetThisPed = GET_INTEGER_PARAM(1); + pPed->bNeverEverTargetThisPed = ScriptParams[1]; return 0; } case COMMAND_LOAD_UNCOMPRESSED_ANIM: @@ -1425,7 +1310,7 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) case COMMAND_SET_CHAR_CROUCH_WHEN_THREATENED: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); pPed->bCrouchWhenScared = true; return 0; @@ -1433,7 +1318,7 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) case COMMAND_IS_CHAR_IN_ANY_POLICE_VEHICLE: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); UpdateCompareFlag(pPed->bInVehicle && pPed->m_pMyVehicle && pPed->m_pMyVehicle->IsLawEnforcementVehicle() && @@ -1442,42 +1327,27 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) } case COMMAND_DOES_CHAR_EXIST: CollectParameters(&m_nIp, 1); - UpdateCompareFlag(CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)) != 0); + UpdateCompareFlag(CPools::GetPedPool()->GetAt(ScriptParams[0]) != 0); return 0; - case COMMAND_DOES_VEHICLE_EXIST: - { - CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - bool bExist = false; - if (pVehicle) { - int index = GET_INTEGER_PARAM(0) >> 8; -#ifdef FIX_BUGS - bExist = (index >= 0 && index < NUMVEHICLES); // epic fail -#else - bExist = (index > 0 && index < NUMVEHICLES); -#endif - } - UpdateCompareFlag(bExist); - return 0; - } + //case COMMAND_DOES_VEHICLE_EXIST: //case COMMAND_ADD_SHORT_RANGE_BLIP_FOR_CONTACT_POINT: case COMMAND_ADD_SHORT_RANGE_SPRITE_BLIP_FOR_CONTACT_POINT: { CollectParameters(&m_nIp, 4); - CVector pos = GET_VECTOR_PARAM(0); + CVector pos = *(CVector*)&ScriptParams[0]; if (pos.z <= MAP_Z_LOW_LIMIT) pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); CRadar::GetActualBlipArrayIndex(CollectNextParameterWithoutIncreasingPC(m_nIp)); int id = CRadar::SetShortRangeCoordBlip(BLIP_COORD, pos, 2, BLIP_DISPLAY_BOTH); - CRadar::SetBlipSprite(id, GET_INTEGER_PARAM(3)); - SET_INTEGER_PARAM(0, id); + CRadar::SetBlipSprite(id, ScriptParams[3]); + ScriptParams[0] = id; StoreParameters(&m_nIp, 1); return 0; } case COMMAND_IS_CHAR_STUCK: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); UpdateCompareFlag(pPed->m_nWaitState == WAITSTATE_STUCK); return 0; @@ -1485,15 +1355,15 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) case COMMAND_SET_ALL_TAXIS_HAVE_NITRO: { CollectParameters(&m_nIp, 1); - CVehicle::bAllTaxisHaveNitro = GET_INTEGER_PARAM(0) != 0; + CVehicle::bAllTaxisHaveNitro = ScriptParams[0] != 0; return 0; } case COMMAND_SET_CHAR_STOP_SHOOT_DONT_SEEK_ENTITY: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - if (GET_INTEGER_PARAM(1)) { + if (ScriptParams[1]) { pPed->bKindaStayInSamePlace = true; pPed->bStopAndShoot = true; } @@ -1507,9 +1377,9 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command) case COMMAND_FREEZE_CAR_POSITION_AND_DONT_LOAD_COLLISION: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - if (GET_INTEGER_PARAM(1)) { + if (ScriptParams[1]) { pVehicle->bIsFrozen = true; pVehicle->bInfiniteMass = true; if (m_bIsMissionScript) { diff --git a/src/control/Script8.cpp b/src/control/Script8.cpp index 6c7cbe9..56d7ed9 100644 --- a/src/control/Script8.cpp +++ b/src/control/Script8.cpp @@ -4,7 +4,7 @@ #include "ScriptCommands.h" #include "DMAudio.h" -#ifdef MORE_LANGUAGES +#if ((defined GTAVC_JP_PATCH || defined SUPPORT_JAPANESE_SCRIPT) && defined MORE_LANGUAGES) #include "Frontend.h" #endif #include "GameLogic.h" @@ -12,10 +12,13 @@ #ifdef MISSION_REPLAY #include "GenericGameStorage.h" #endif +#if (defined GTA_PC && !defined GTAVC_JP_PATCH || defined GTA_XBOX || defined SUPPORT_XBOX_SCRIPT || defined GTA_MOBILE || defined SUPPORT_MOBILE_SCRIPT) +#include "General.h" +#include "maths.h" +#endif #include "Hud.h" #include "Pad.h" #include "PedAttractor.h" -#include "Pickups.h" #include "Population.h" #include "Pools.h" #include "RpAnimBlend.h" @@ -26,20 +29,19 @@ #include "World.h" #include "Zones.h" -// LCS: file done except TODOs (also check commented out strings) - int8 CRunningScript::ProcessCommands1400To1499(int32 command) { switch (command) { case COMMAND_REGISTER_VIGILANTE_LEVEL: CollectParameters(&m_nIp, 1); - CStats::RegisterLevelVigilanteMission(GET_INTEGER_PARAM(0)); + CStats::RegisterLevelVigilanteMission(ScriptParams[0]); return 0; case COMMAND_CLEAR_ALL_CHAR_ANIMS: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - if (pPed && pPed->GetPedState() != PED_DRIVING && pPed->GetPedState() != PED_AIM_GUN) { + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); + script_assert(pPed); + if (!pPed->bInVehicle) { pPed->m_pVehicleAnim = nil; pPed->RestartNonPartialAnims(); RpAnimBlendClumpRemoveAllAssociations(pPed->GetClump()); @@ -60,7 +62,7 @@ int8 CRunningScript::ProcessCommands1400To1499(int32 command) } case COMMAND_SET_MAXIMUM_NUMBER_OF_CARS_IN_GARAGE: CollectParameters(&m_nIp, 2); - CGarages::SetMaxNumStoredCarsForGarage(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); + CGarages::SetMaxNumStoredCarsForGarage(ScriptParams[0], ScriptParams[1]); return 0; case COMMAND_WANTED_STARS_ARE_FLASHING: { @@ -70,25 +72,25 @@ int8 CRunningScript::ProcessCommands1400To1499(int32 command) } case COMMAND_SET_ALLOW_HURRICANES: CollectParameters(&m_nIp, 1); - CStats::NoMoreHurricanes = GET_INTEGER_PARAM(0); + CStats::NoMoreHurricanes = ScriptParams[0]; return 0; case COMMAND_PLAY_ANNOUNCEMENT: { CollectParameters(&m_nIp, 1); - DMAudio.PlayRadioAnnouncement(GET_INTEGER_PARAM(0) + STREAMED_SOUND_NEWS_A); + DMAudio.PlayRadioAnnouncement(ScriptParams[0] + STREAMED_SOUND_ANNOUNCE_BRIDGE_CLOSED); return 0; } case COMMAND_SET_PLAYER_IS_IN_STADIUM: { CollectParameters(&m_nIp, 1); - CTheScripts::bPlayerIsInTheStatium = GET_INTEGER_PARAM(0); + CTheScripts::bPlayerIsInTheStatium = ScriptParams[0]; return 0; } case COMMAND_GET_BUS_FARES_COLLECTED_BY_PLAYER: { CollectParameters(&m_nIp, 1); - CPlayerInfo* pPlayerInfo = &CWorld::Players[GET_INTEGER_PARAM(0)]; - SET_INTEGER_PARAM(0, pPlayerInfo->m_pPed->m_nLastBusFareCollected); + CPlayerInfo* pPlayerInfo = &CWorld::Players[ScriptParams[0]]; + ScriptParams[0] = pPlayerInfo->m_pPed->m_nLastBusFareCollected; pPlayerInfo->m_pPed->m_nLastBusFareCollected = 0; StoreParameters(&m_nIp, 1); return 0; @@ -96,11 +98,11 @@ int8 CRunningScript::ProcessCommands1400To1499(int32 command) case COMMAND_SET_CHAR_OBJ_BUY_ICE_CREAM: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[1]); script_assert(pVehicle); - SET_INTEGER_PARAM(0, 0); + ScriptParams[0] = 0; if (pPed->m_objective == OBJECTIVE_NONE && !pPed->bHasAlreadyUsedAttractor) { C2dEffect* pEffect = (C2dEffect*)GetPedAttractorManager()->GetEffectForIceCreamVan(pVehicle, pPed->GetPosition()); // has to be casted, because inner methods are const if (pEffect) { @@ -109,7 +111,7 @@ int8 CRunningScript::ProcessCommands1400To1499(int32 command) if ((pPed->GetPosition() - pos).MagnitudeSqr() < SQR(20.0f)) { if (GetPedAttractorManager()->HasEmptySlot(pEffect) && GetPedAttractorManager()->IsApproachable(pEffect, pVehicle->GetMatrix(), 0, pPed)) { if (GetPedAttractorManager()->RegisterPedWithAttractor(pPed, pEffect, pVehicle->GetMatrix())) - SET_INTEGER_PARAM(0, 1); + ScriptParams[0] = 1; } } } @@ -119,17 +121,16 @@ int8 CRunningScript::ProcessCommands1400To1499(int32 command) } case COMMAND_DISPLAY_RADAR: CollectParameters(&m_nIp, 1); - CHud::m_HideRadar = GET_INTEGER_PARAM(0) == 0; - // on PS2 two flags are set, on mobile none + CHud::m_HideRadar = ScriptParams[0] == 0; return 0; case COMMAND_REGISTER_BEST_POSITION: CollectParameters(&m_nIp, 2); - CStats::RegisterBestPosition(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); + CStats::RegisterBestPosition(ScriptParams[0], ScriptParams[1]); return 0; case COMMAND_IS_PLAYER_IN_INFO_ZONE: { CollectParameters(&m_nIp, 1); - CPlayerInfo* pPlayerInfo = &CWorld::Players[GET_INTEGER_PARAM(0)]; + CPlayerInfo* pPlayerInfo = &CWorld::Players[ScriptParams[0]]; char key[KEY_LENGTH_IN_SCRIPT]; memset(key, 0, KEY_LENGTH_IN_SCRIPT); CTheScripts::ReadTextLabelFromScript(&m_nIp, key); @@ -142,7 +143,7 @@ int8 CRunningScript::ProcessCommands1400To1499(int32 command) case COMMAND_CLEAR_CHAR_ICE_CREAM_PURCHASE: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); if (pPed->m_attractor) GetPedAttractorManager()->DeRegisterPed(pPed, pPed->m_attractor); @@ -154,7 +155,7 @@ int8 CRunningScript::ProcessCommands1400To1499(int32 command) case COMMAND_HAS_CHAR_ATTEMPTED_ATTRACTOR: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); UpdateCompareFlag(pPed->bHasAlreadyUsedAttractor); return 0; @@ -162,9 +163,9 @@ int8 CRunningScript::ProcessCommands1400To1499(int32 command) case COMMAND_SET_LOAD_COLLISION_FOR_CAR_FLAG: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - if (GET_INTEGER_PARAM(1)) { + if (ScriptParams[1]) { pVehicle->bDontLoadCollision = false; if (m_bMissionFlag) { CWorld::Remove(pVehicle); @@ -185,9 +186,9 @@ int8 CRunningScript::ProcessCommands1400To1499(int32 command) case COMMAND_SET_LOAD_COLLISION_FOR_CHAR_FLAG: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - if (GET_INTEGER_PARAM(1)) { + if (ScriptParams[1]) { pPed->bDontLoadCollision = false; if (m_bMissionFlag) { CWorld::Remove(pPed); @@ -209,31 +210,31 @@ int8 CRunningScript::ProcessCommands1400To1499(int32 command) case COMMAND_ADD_BIG_GUN_FLASH: { CollectParameters(&m_nIp, 6); - CWeapon::AddGunFlashBigGuns(GET_VECTOR_PARAM(0), GET_VECTOR_PARAM(3)); + CWeapon::AddGunFlashBigGuns(*(CVector*)&ScriptParams[0], *(CVector*)&ScriptParams[3]); return 0; } case COMMAND_HAS_CHAR_BOUGHT_ICE_CREAM: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); UpdateCompareFlag(pPed->bBoughtIceCream); return 0; } case COMMAND_GET_PROGRESS_PERCENTAGE: - SET_FLOAT_PARAM(0, CStats::GetPercentageProgress()); + *(float*)&ScriptParams[0] = CStats::GetPercentageProgress(); StoreParameters(&m_nIp, 1); return 0; case COMMAND_SET_SHORTCUT_PICKUP_POINT: { CollectParameters(&m_nIp, 4); - CGameLogic::AddShortCutPointAfterDeath(GET_VECTOR_PARAM(0), GET_FLOAT_PARAM(3)); + CGameLogic::AddShortCutPointAfterDeath(*(CVector*)&ScriptParams[0], *(float*)&ScriptParams[3]); return 0; } case COMMAND_SET_SHORTCUT_DROPOFF_POINT_FOR_MISSION: { CollectParameters(&m_nIp, 4); - CGameLogic::AddShortCutDropOffPointForMission(GET_VECTOR_PARAM(0), GET_FLOAT_PARAM(3)); + CGameLogic::AddShortCutDropOffPointForMission(*(CVector*)&ScriptParams[0], *(float*)&ScriptParams[3]); return 0; } case COMMAND_GET_RANDOM_ICE_CREAM_CUSTOMER_IN_AREA: @@ -241,10 +242,10 @@ int8 CRunningScript::ProcessCommands1400To1499(int32 command) CollectParameters(&m_nIp, 7); int ped_handle = -1; CVector pos = FindPlayerCoors(); - float x1 = GET_FLOAT_PARAM(0); - float y1 = GET_FLOAT_PARAM(1); - float x2 = GET_FLOAT_PARAM(2); - float y2 = GET_FLOAT_PARAM(3); + float x1 = *(float*)&ScriptParams[0]; + float y1 = *(float*)&ScriptParams[1]; + float x2 = *(float*)&ScriptParams[2]; + float y2 = *(float*)&ScriptParams[3]; int i = CPools::GetPedPool()->GetSize(); while (--i && ped_handle == -1) { CPed* pPed = CPools::GetPedPool()->GetSlot(i); @@ -266,7 +267,7 @@ int8 CRunningScript::ProcessCommands1400To1499(int32 command) continue; if (pPed->m_attractor) continue; - if (!ThisIsAValidRandomPed(pPed->m_nPedType, GET_INTEGER_PARAM(4), GET_INTEGER_PARAM(5), GET_INTEGER_PARAM(6))) + if (!ThisIsAValidRandomPed(pPed->m_nPedType, ScriptParams[4], ScriptParams[5], ScriptParams[6])) continue; if (pPed->bIsLeader || pPed->m_leader) continue; @@ -284,7 +285,7 @@ int8 CRunningScript::ProcessCommands1400To1499(int32 command) if (m_bIsMissionScript) CTheScripts::MissionCleanUp.AddEntityToList(ped_handle, CLEANUP_CHAR); } - SET_INTEGER_PARAM(0, ped_handle); + ScriptParams[0] = ped_handle; StoreParameters(&m_nIp, 1); return 0; } @@ -293,10 +294,10 @@ int8 CRunningScript::ProcessCommands1400To1499(int32 command) { CollectParameters(&m_nIp, 4); uint32 i = CPools::GetVehiclePool()->GetSize(); - float infX = GET_FLOAT_PARAM(0); - float infY = GET_FLOAT_PARAM(1); - float supX = GET_FLOAT_PARAM(2); - float supY = GET_FLOAT_PARAM(3); + float infX = *(float*)&ScriptParams[0]; + float infY = *(float*)&ScriptParams[1]; + float supX = *(float*)&ScriptParams[2]; + float supY = *(float*)&ScriptParams[3]; while (i--) { CVehicle* pVehicle = CPools::GetVehiclePool()->GetSlot(i); if (!pVehicle) @@ -308,23 +309,22 @@ int8 CRunningScript::ProcessCommands1400To1499(int32 command) } case COMMAND_SET_GANG_ATTACK_PLAYER_WITH_COPS: CollectParameters(&m_nIp, 2); - CGangs::SetWillAttackPlayerWithCops((ePedType)((int)PEDTYPE_GANG1 + GET_INTEGER_PARAM(0)), !!GET_INTEGER_PARAM(1)); + CGangs::SetWillAttackPlayerWithCops((ePedType)((int)PEDTYPE_GANG1 + ScriptParams[0]), !!ScriptParams[1]); return 0; case COMMAND_SET_CHAR_FRIGHTENED_IN_JACKED_CAR: { CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - pPed->bHeldHostageInCar = GET_INTEGER_PARAM(1); - pPed->b1A4_2 = GET_INTEGER_PARAM(1); + pPed->bHeldHostageInCar = ScriptParams[1]; return 0; } case COMMAND_SET_VEHICLE_TO_FADE_IN: { CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); script_assert(pVehicle); - CVisibilityPlugins::SetClumpAlpha(pVehicle->GetClump(), GET_INTEGER_PARAM(1)); + CVisibilityPlugins::SetClumpAlpha(pVehicle->GetClump(), ScriptParams[1]); return 0; } case COMMAND_REGISTER_ODDJOB_MISSION_PASSED: @@ -336,7 +336,7 @@ int8 CRunningScript::ProcessCommands1400To1499(int32 command) case COMMAND_IS_PLAYER_IN_SHORTCUT_TAXI: { CollectParameters(&m_nIp, 1); - CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed; + CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; script_assert(pPed); UpdateCompareFlag(pPed->bInVehicle && pPed->m_pMyVehicle && pPed->m_pMyVehicle == CGameLogic::pShortCutTaxi); return 0; @@ -344,7 +344,7 @@ int8 CRunningScript::ProcessCommands1400To1499(int32 command) case COMMAND_IS_CHAR_DUCKING: { CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); + CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); UpdateCompareFlag(RpAnimBlendClumpGetAssociation(pPed->GetClump(), ANIM_STD_DUCK_DOWN) != nil); return 0; @@ -352,24 +352,24 @@ int8 CRunningScript::ProcessCommands1400To1499(int32 command) case COMMAND_CREATE_DUST_EFFECT_FOR_CUTSCENE_HELI: { CollectParameters(&m_nIp, 3); - CObject* pHeli = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); + CObject* pHeli = CPools::GetObjectPool()->GetAt(ScriptParams[0]); bool found = false; float waterLevel = -1000.0f; CVector pos = pHeli->GetPosition(); - float radius = GET_FLOAT_PARAM(1); + float radius = *(float*)&ScriptParams[1]; float ground = CWorld::FindGroundZFor3DCoord(pos.x, pos.y, pos.z, &found); if (!CWaterLevel::GetWaterLevel(pos.x, pos.y, pos.z, &waterLevel, false)) waterLevel = 0.0f; if (waterLevel > ground) ground = waterLevel; - if (GET_INTEGER_PARAM(2) > 8) - SET_INTEGER_PARAM(2, 8); - CVehicle::HeliDustGenerate(pHeli, (pos.z - ground - 1.0f - radius) * 0.3 + radius, ground, GET_INTEGER_PARAM(2)); + if (ScriptParams[2] > 8) + ScriptParams[2] = 8; + CVehicle::HeliDustGenerate(pHeli, (pos.z - ground - 1.0f - radius) * 0.3 + radius, ground, ScriptParams[2]); return 0; } case COMMAND_REGISTER_FIRE_LEVEL: CollectParameters(&m_nIp, 1); - CStats::RegisterLevelFireMission(GET_INTEGER_PARAM(0)); + CStats::RegisterLevelFireMission(ScriptParams[0]); return 0; case COMMAND_IS_AUSTRALIAN_GAME: UpdateCompareFlag(false); // should we make some check? @@ -377,420 +377,237 @@ int8 CRunningScript::ProcessCommands1400To1499(int32 command) case COMMAND_DISARM_CAR_BOMB: { CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); + CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]); if (pVehicle->m_bombType != CARBOMB_NONE) { pVehicle->m_bombType = CARBOMB_NONE; pVehicle->m_pBombRigger = nil; } return 0; } +#if (defined GTAVC_JP_PATCH || defined SUPPORT_JAPANESE_SCRIPT) case COMMAND_IS_JAPANESE_GAME: #ifdef MORE_LANGUAGES - UpdateCompareFlag(FrontEndMenuManager.m_PrefsLanguage == LANGUAGE_JAPANESE); + UpdateCompareFlag(FrontEndMenuManager.m_PrefsLanguage == CMenuManager::LANGUAGE_JAPANESE); #elif (defined GTAVC_JP_PATCH) UpdateCompareFlag(true); #else UpdateCompareFlag(false); #endif return 0; - case COMMAND_1442: - CollectParameters(&m_nIp, 4); - return 0; - //case COMMAND_1443: - case COMMAND_GET_DISTANCE_BETWEEN_2D_POINTS: +#elif (!defined GTA_PS2) + case COMMAND_SET_ONSCREEN_COUNTER_FLASH_WHEN_FIRST_DISPLAYED: { - CollectParameters(&m_nIp, 4); - float X1 = GET_FLOAT_PARAM(0); - float Y1 = GET_FLOAT_PARAM(1); - float X2 = GET_FLOAT_PARAM(2); - float Y2 = GET_FLOAT_PARAM(3); - float fDistance = Sqrt((X1 - X2) * (X1 - X2) + (Y1 - Y2) * (Y1 - Y2)); - SET_FLOAT_PARAM(0, fDistance); - StoreParameters(&m_nIp, 1); + script_assert(CTheScripts::ScriptSpace[m_nIp++] == ARGUMENT_GLOBALVAR); + uint16 var = CTheScripts::Read2BytesFromScript(&m_nIp); + CollectParameters(&m_nIp, 1); + //CUserDisplay::OnscnTimer.SetCounterFlashWhenFirstDisplayed(var, ScriptParams[0]); return 0; } - case COMMAND_GET_DISTANCE_BETWEEN_3D_POINTS: - { - CollectParameters(&m_nIp, 6); - float X1 = GET_FLOAT_PARAM(0); - float Y1 = GET_FLOAT_PARAM(1); - float Z1 = GET_FLOAT_PARAM(2); - float X2 = GET_FLOAT_PARAM(3); - float Y2 = GET_FLOAT_PARAM(4); - float Z2 = GET_FLOAT_PARAM(5); - float fDistance = Sqrt((X1 - X2) * (X1 - X2) + (Y1 - Y2) * (Y1 - Y2) + (Z1 - Z2) * (Z1 - Z2)); - SET_FLOAT_PARAM(0, fDistance); - StoreParameters(&m_nIp, 1); - return 0; - } - case COMMAND_DOT_PRODUCT_2D: - { - CollectParameters(&m_nIp, 4); - float X1 = GET_FLOAT_PARAM(0); - float Y1 = GET_FLOAT_PARAM(1); - float X2 = GET_FLOAT_PARAM(2); - float Y2 = GET_FLOAT_PARAM(3); - float fDistance = X1 * X2 + Y1 * Y2; - SET_FLOAT_PARAM(0, fDistance); - StoreParameters(&m_nIp, 1); - return 0; - } - case COMMAND_DOT_PRODUCT_3D: - { - CollectParameters(&m_nIp, 6); - float X1 = GET_FLOAT_PARAM(0); - float Y1 = GET_FLOAT_PARAM(1); - float Z1 = GET_FLOAT_PARAM(2); - float X2 = GET_FLOAT_PARAM(3); - float Y2 = GET_FLOAT_PARAM(4); - float Z2 = GET_FLOAT_PARAM(5); - float fDistance = X1 * X2 + Y1 * Y2 + Z1 * Z2; - SET_FLOAT_PARAM(0, fDistance); - StoreParameters(&m_nIp, 1); - return 0; - } - case COMMAND_DEBUG_PRINT_WITH_1_FLOAT: - return 0; - case COMMAND_DEBUG_PRINT_WITH_2_FLOATS: - return 0; - case COMMAND_DEBUG_PRINT_WITH_3_FLOATS: - return 0; - case COMMAND_GET_PAD_BUTTON_STATE: +#endif +#if (defined GTA_PC && !defined GTAVC_JP_PATCH || defined GTA_XBOX || defined SUPPORT_XBOX_SCRIPT || defined GTA_MOBILE || defined SUPPORT_MOBILE_SCRIPT) + case COMMAND_SHUFFLE_CARD_DECKS: { CollectParameters(&m_nIp, 1); - switch (GET_INTEGER_PARAM(0)) { - case 0: SET_INTEGER_PARAM(0, CPad::GetPad(0)->GetOddJobTrigger()); break; - case 1: SET_INTEGER_PARAM(0, CPad::GetPad(0)->GetBrake()); break; - case 2: SET_INTEGER_PARAM(0, CPad::GetPad(0)->GetSteeringLeftRight()); break; - case 3: SET_INTEGER_PARAM(0, CPad::GetPad(0)->GetSteeringUpDown()); break; - case 4: SET_INTEGER_PARAM(0, CPad::GetPad(0)->GetCarGunLeftRight()); break; - case 5: SET_INTEGER_PARAM(0, CPad::GetPad(0)->GetCarGunUpDown()); break; - case 6: SET_INTEGER_PARAM(0, CPad::GetPad(0)->GetPedWalkLeftRight()); break; - case 7: SET_INTEGER_PARAM(0, CPad::GetPad(0)->GetPedWalkUpDown()); break; - case 8: SET_INTEGER_PARAM(0, CPad::GetPad(0)->GetLookLeft()); break; - case 9: SET_INTEGER_PARAM(0, CPad::GetPad(0)->GetLookRight()); break; - case 10: SET_INTEGER_PARAM(0, CPad::GetPad(0)->GetLookBehindForCar()); break; - case 11: SET_INTEGER_PARAM(0, CPad::GetPad(0)->GetLookBehindForPed()); break; - case 12: SET_INTEGER_PARAM(0, CPad::GetPad(0)->GetHorn()); break; - case 13: SET_INTEGER_PARAM(0, CPad::GetPad(0)->HornJustDown()); break; - case 14: SET_INTEGER_PARAM(0, CPad::GetPad(0)->GetCarGunFired()); break; - case 15: SET_INTEGER_PARAM(0, CPad::GetPad(0)->CarGunJustDown()); break; - case 16: SET_INTEGER_PARAM(0, CPad::GetPad(0)->GetHandBrake()); break; - case 17: SET_INTEGER_PARAM(0, CPad::GetPad(0)->GetBrake()); break; - case 18: SET_INTEGER_PARAM(0, CPad::GetPad(0)->GetExitVehicle()); break; - case 19: SET_INTEGER_PARAM(0, CPad::GetPad(0)->ExitVehicleJustDown()); break; - case 20: SET_INTEGER_PARAM(0, CPad::GetPad(0)->GetWeapon()); break; - case 21: SET_INTEGER_PARAM(0, CPad::GetPad(0)->WeaponJustDown()); break; - case 22: SET_INTEGER_PARAM(0, CPad::GetPad(0)->GetAccelerate()); break; - case 23: SET_INTEGER_PARAM(0, CPad::GetPad(0)->CycleCameraModeUpJustDown()); break; - case 24: SET_INTEGER_PARAM(0, CPad::GetPad(0)->CycleWeaponLeftJustDown()); break; - case 25: SET_INTEGER_PARAM(0, CPad::GetPad(0)->CycleWeaponRightJustDown()); break; - case 26: SET_INTEGER_PARAM(0, CPad::GetPad(0)->GetTarget()); break; - case 27: SET_INTEGER_PARAM(0, CPad::GetPad(0)->TargetJustDown()); break; - case 28: SET_INTEGER_PARAM(0, CPad::GetPad(0)->JumpJustDown()); break; - case 29: SET_INTEGER_PARAM(0, CPad::GetPad(0)->GetSprint()); break; - case 30: SET_INTEGER_PARAM(0, CPad::GetPad(0)->ShiftTargetLeftJustDown()); break; - case 31: SET_INTEGER_PARAM(0, CPad::GetPad(0)->ForceCameraBehindPlayer()); break; - case 32: SET_INTEGER_PARAM(0, CPad::GetPad(0)->SniperZoomIn()); break; - case 33: SET_INTEGER_PARAM(0, CPad::GetPad(0)->SniperZoomOut()); break; - case 34: SET_INTEGER_PARAM(0, CPad::GetPad(0)->SniperModeLookLeftRight()); break; - case 35: SET_INTEGER_PARAM(0, CPad::GetPad(0)->SniperModeLookUpDown()); break; - case 36: SET_INTEGER_PARAM(0, CPad::GetPad(0)->LookAroundLeftRight()); break; - case 37: SET_INTEGER_PARAM(0, CPad::GetPad(0)->LookAroundUpDown()); break; - case 38: SET_INTEGER_PARAM(0, CPad::GetPad(0)->GuiLeft()); break; - case 39: SET_INTEGER_PARAM(0, CPad::GetPad(0)->GuiRight()); break; - case 40: SET_INTEGER_PARAM(0, CPad::GetPad(0)->GuiUp()); break; - case 41: SET_INTEGER_PARAM(0, CPad::GetPad(0)->GuiDown()); break; - case 42: SET_INTEGER_PARAM(0, CPad::GetPad(0)->GuiSelect()); break; - case 43: SET_INTEGER_PARAM(0, CPad::GetPad(0)->GuiBack()); break; - case 44: SET_INTEGER_PARAM(0, CPad::GetPad(0)->GetSkipCutscene()); if (GET_INTEGER_PARAM(0)) TheCamera.m_bIgnoreFadingStuffForMusic = false; break; // spectacular hack + script_assert(ScriptParams[0] >= 0 && ScriptParams[0] <= 6); + for (int i = 0; i < CARDS_IN_STACK; i++) + CTheScripts::CardStack[i] = 0; + int16 seq[CARDS_IN_STACK]; + for (int i = 0; i < MAX_DECKS * CARDS_IN_DECK; i++) + seq[i] = i; + int cards_left = CARDS_IN_DECK * ScriptParams[0]; + for (int k = 1; k < CARDS_IN_DECK + 1; k++) { + for (int deck = 0; deck < ScriptParams[0]; deck++) { + int index = CGeneral::GetRandomNumberInRange(0, cards_left); + CTheScripts::CardStack[seq[index]] = k; + for (int l = index; l < cards_left; l++) { + if (l + 1 < CARDS_IN_STACK) + seq[l] = seq[l + 1]; + else + seq[l] = 0; + } + --cards_left; + } } + CTheScripts::CardStackPosition = 0; + return 0; + } + case COMMAND_FETCH_NEXT_CARD: + { + if (CTheScripts::CardStack[CTheScripts::CardStackPosition] == 0) + CTheScripts::CardStackPosition = 0; + ScriptParams[0] = CTheScripts::CardStack[CTheScripts::CardStackPosition++]; + if (CTheScripts::CardStackPosition == CARDS_IN_DECK * MAX_DECKS) + CTheScripts::CardStackPosition = 0; StoreParameters(&m_nIp, 1); return 0; } - case COMMAND_SET_NAVIGATION_ARROW: + case COMMAND_GET_OBJECT_VELOCITY: { - CollectParameters(&m_nIp, 3); - // cNavArrow::SetTarget(GET_FLOAT_PARAM(0), GET_FLOAT_PARAM(0), GET_FLOAT_PARAM(0)); // TODO, although it's unused - return 0; - } - case COMMAND_CLEAR_NAVIGATION_ARROW: - { - // cNavArrow::ClearTarget(); // TODO, although it's unused - return 0; - } - case COMMAND_CALL: - case COMMAND_CALLNOT: - { - m_anStack[m_nStackPointer++] = m_nIp | BIT(STACKVALUE_IS_FUNCTION_CALL_BIT) | ((command == COMMAND_CALLNOT) ? BIT(STACKVALUE_INVERT_RETURN_BIT) : 0); - uint8 nInputParams = CTheScripts::Read1ByteFromScript(&m_nIp); - uint8 nOutputParameters = CTheScripts::Read1ByteFromScript(&m_nIp); - uint8 nLocalsOffset = CTheScripts::Read1ByteFromScript(&m_nIp); - uint32 nIPBeforeParameters = m_nIp; CollectParameters(&m_nIp, 1); - if (nInputParams) - CollectParameters(&m_nIp, nInputParams, &m_anLocalVariables[m_nLocalsPointer + nLocalsOffset]); - m_nLocalsPointer += nLocalsOffset; - m_anStack[m_nStackPointer - 1] |= (m_nIp - nIPBeforeParameters) << STACKVALUE_IP_PARAMS_OFFSET; - if (GET_INTEGER_PARAM(0) < 0) - m_nIp = CTheScripts::MainScriptSize - GET_INTEGER_PARAM(0); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); + *(CVector*)&ScriptParams[0] = GAME_SPEED_TO_METERS_PER_SECOND * pObject->GetMoveSpeed(); + StoreParameters(&m_nIp, 3); + return 0; + } + case COMMAND_IS_DEBUG_CAMERA_ON: + UpdateCompareFlag(TheCamera.WorldViewerBeingUsed); + return 0; + case COMMAND_ADD_TO_OBJECT_ROTATION_VELOCITY: + { + CollectParameters(&m_nIp, 4); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); + CVector newSpeed = pObject->GetTurnSpeed() + *(CVector*)&ScriptParams[1] / GAME_SPEED_TO_METERS_PER_SECOND; + if (pObject->bIsStatic) { + pObject->SetIsStatic(false); + pObject->AddToMovingList(); + } + pObject->SetTurnSpeed(newSpeed.x, newSpeed.y, newSpeed.z); + return 0; + } + case COMMAND_SET_OBJECT_ROTATION_VELOCITY: + { + CollectParameters(&m_nIp, 4); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); + CVector newSpeed = *(CVector*)&ScriptParams[1] / GAME_SPEED_TO_METERS_PER_SECOND; + if (pObject->bIsStatic) { + pObject->SetIsStatic(false); + pObject->AddToMovingList(); + } + pObject->SetTurnSpeed(newSpeed.x, newSpeed.y, newSpeed.z); + return 0; + } + case COMMAND_IS_OBJECT_STATIC: + { + CollectParameters(&m_nIp, 1); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); + UpdateCompareFlag(pObject->GetIsStatic()); + return 0; + } + case COMMAND_GET_ANGLE_BETWEEN_2D_VECTORS: + { + CollectParameters(&m_nIp, 4); + CVector2D v1 = *(CVector2D*)&ScriptParams[0]; + CVector2D v2 = *(CVector2D*)&ScriptParams[2]; + float c = DotProduct2D(v1, v2) / (v1.Magnitude() * v2.Magnitude()); +#ifdef FIX_BUGS // command is a SA leftover where it was fixed to this + *(float*)&ScriptParams[0] = RADTODEG(Acos(c)); +#else + *(float*)&ScriptParams[0] = Acos(c); +#endif + return 0; + } + case COMMAND_DO_2D_RECTANGLES_COLLIDE: + { + CollectParameters(&m_nIp, 8); + float infX1 = *(float*)&ScriptParams[0] - *(float*)&ScriptParams[2] * 0.5; // NB: not float + float supX1 = *(float*)&ScriptParams[0] + *(float*)&ScriptParams[2] * 0.5; + float infX2 = *(float*)&ScriptParams[4] - *(float*)&ScriptParams[6] * 0.5; + float supX2 = *(float*)&ScriptParams[4] + *(float*)&ScriptParams[6] * 0.5; + float infY1 = *(float*)&ScriptParams[1] - *(float*)&ScriptParams[3] * 0.5; + float supY1 = *(float*)&ScriptParams[1] + *(float*)&ScriptParams[3] * 0.5; + float infY2 = *(float*)&ScriptParams[5] - *(float*)&ScriptParams[7] * 0.5; + float supY2 = *(float*)&ScriptParams[5] + *(float*)&ScriptParams[7] * 0.5; + bool collide = true; + if (infY2 > supY1) + collide = false; + if (infY1 > supY2) + collide = false; + if (infX2 > supX1) + collide = false; + if (infX1 > supX2) + collide = false; + UpdateCompareFlag(collide); + return 0; + } + case COMMAND_GET_OBJECT_ROTATION_VELOCITY: + { + CollectParameters(&m_nIp, 1); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); + *(CVector*)&ScriptParams[0] = pObject->GetTurnSpeed() * GAME_SPEED_TO_METERS_PER_SECOND; + StoreParameters(&m_nIp, 3); + return 0; + } + case COMMAND_ADD_VELOCITY_RELATIVE_TO_OBJECT_VELOCITY: + { + CollectParameters(&m_nIp, 4); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); + CVector vecAddition = *(CVector*)&ScriptParams[1] * CTimer::GetTimeStep() / GAME_SPEED_TO_METERS_PER_SECOND; + if (!pObject->bIsStatic) { + CVector vecCurrSpeed = pObject->GetSpeed(); + vecCurrSpeed.Normalise(); + if (vecCurrSpeed.z != 1.0) { // NB: not float! + CVector vx = CrossProduct(vecCurrSpeed, CVector(0.0f, 0.0f, 1.0f)); + vx.Normalise(); + CVector vz = CrossProduct(vx, vecCurrSpeed); + vz.Normalise(); + CVector vecNewSpeed = pObject->GetSpeed() + vecAddition.x * vx + vecAddition.y * vecCurrSpeed + vecAddition.z * vecCurrSpeed; + if (pObject->bIsStatic) { + pObject->SetIsStatic(false); + pObject->AddToMovingList(); + } + pObject->SetMoveSpeed(vecNewSpeed); + } + } + return 0; + } + case COMMAND_GET_OBJECT_SPEED: + { + CollectParameters(&m_nIp, 1); + CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]); + *(float*)&ScriptParams[0] = pObject->GetMoveSpeed().Magnitude() * GAME_SPEED_TO_METERS_PER_SECOND; + StoreParameters(&m_nIp, 1); + return 0; + } +#endif +#if (defined GTA_MOBILE || defined SUPPORT_MOBILE_SCRIPT) + case COMMAND_IS_MISSION_SKIP: +#ifdef MISSION_REPLAY + ScriptParams[0] = MissionSkipLevel; +#else + ScriptParams[0] = 0; +#endif + StoreParameters(&m_nIp, 1); + return 0; + case COMMAND_SET_IN_AMMUNATION: + CollectParameters(&m_nIp, 1); +#ifdef MISSION_REPLAY + IsInAmmunation = ScriptParams[0]; +#endif + return 0; + case COMMAND_DO_SAVE_GAME: + CollectParameters(&m_nIp, 1); +#ifdef MISSION_REPLAY + SaveGameForPause(ScriptParams[0]); +#endif + return 0; + case COMMAND_IS_RETRY: +#ifdef MISSION_REPLAY + if (strcmp(m_abScriptName, "porno4") != 0) + ScriptParams[0] = AllowMissionReplay; +#ifdef FIX_BUGS else - m_nIp = GET_INTEGER_PARAM(0); + ScriptParams[0] = gbTryingPorn4Again; +#else + else if (gbTryingPorn4Again) + ScriptParams[0] = 1; +#endif +#else + ScriptParams[0] = 0; +#endif + StoreParameters(&m_nIp, 1); return 0; - } - case COMMAND_IS_CAR_AUTOMOBILE: - { - CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pVehicle); - UpdateCompareFlag(pVehicle->GetModelIndex() >= MI_FIRST_VEHICLE && pVehicle->GetModelIndex() < MI_FERRY); - return 0; - } - case COMMAND_IS_CAR_BIKE: - { - CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pVehicle); - UpdateCompareFlag(pVehicle->GetModelIndex() >= MI_ANGEL && pVehicle->GetModelIndex() <= MI_SANCHEZ); - return 0; - } - return 0; - case COMMAND_IS_CAR_PLANE: - { - CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pVehicle); - UpdateCompareFlag(pVehicle->GetModelIndex() >= MI_AIRTRAIN && pVehicle->GetModelIndex() <= MI_DEADDODO); - return 0; - } - case COMMAND_IS_CAR_HELI: - { - CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pVehicle); - UpdateCompareFlag(pVehicle->GetModelIndex() >= MI_ESCAPE && pVehicle->GetModelIndex() <= MI_CHOPPER); - return 0; - } -#ifdef FIX_BUGS - case COMMAND_1476: // they DO have it in script + case COMMAND_DUMMY: return 0; #endif - case COMMAND_RETURN_IF_TRUE: - if (m_bCondResult) { - ReturnFromGosubOrFunction(); - } +#if (defined GTA_XBOX || defined SUPPORT_XBOX_SCRIPT || defined GTA_MOBILE || defined SUPPORT_MOBILE_SCRIPT) + // it is unknown what these commands do but they don't take parameters + case COMMAND_MARK_CUTSCENE_START: return 0; - case COMMAND_RETURN_TRUE_IF_TRUE: - if (m_bCondResult) { - UpdateCompareFlag(false); - ReturnFromGosubOrFunction(); - } + case COMMAND_MARK_CUTSCENE_END: return 0; - case COMMAND_SET_CHAR_ONLY_ALLOWED_TO_SIT_BEHIND: - { - CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pPed); - pPed->bOnlyAllowedToSitBehind = GET_INTEGER_PARAM(1); + case COMMAND_CUTSCENE_SCROLL: return 0; - } - case COMMAND_SET_RC_HELI_HEIGHT_LIMIT: - CollectParameters(&m_nIp, 1); - // CVehicle::rcHeliHeightLimit = GET_FLOAT_PARAM(0); // TODO - return 0; - case COMMAND_CREATE_SCRIPT_CORONA: - { - CollectParameters(&m_nIp, 9); - base::cSList::tSItem* pCorona = new base::cSList::tSItem(); - pCorona->item.x = GET_FLOAT_PARAM(0); - pCorona->item.y = GET_FLOAT_PARAM(1); - pCorona->item.z = GET_FLOAT_PARAM(2); - pCorona->item.id = CTheScripts::NextScriptCoronaID++; - if (pCorona->item.z <= MAP_Z_LOW_LIMIT) - pCorona->item.z = CWorld::FindGroundZForCoord(pCorona->item.x, pCorona->item.y); - pCorona->item.size = GET_FLOAT_PARAM(3); - pCorona->item.r = GET_INTEGER_PARAM(6); - pCorona->item.g = GET_INTEGER_PARAM(7); - pCorona->item.b = GET_INTEGER_PARAM(8); - pCorona->item.type = GET_INTEGER_PARAM(4); - pCorona->item.flareType = GET_INTEGER_PARAM(5); - SET_INTEGER_PARAM(0, pCorona->item.id); - CTheScripts::mCoronas.Insert(pCorona); - StoreParameters(&m_nIp, 1); - return 0; - } - case COMMAND_REMOVE_SCRIPT_CORONA: - { - CollectParameters(&m_nIp, 1); - for (base::cSList::tSItem* i = CTheScripts::mCoronas.first; i; i = i->next) { - if (i->item.id == GET_INTEGER_PARAM(0)) { - CTheScripts::mCoronas.Remove(i); - delete i; - break; - } - } - return 0; - } - case COMMAND_IS_BOAT_IN_WATER: - { - CollectParameters(&m_nIp, 1); - CBoat* pVehicle = (CBoat*)CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pVehicle && pVehicle->IsBoat()); - UpdateCompareFlag(pVehicle->bBoatInWater); - return 0; - } - case COMMAND_IS_CAR_DRIVER_BEING_JACKED: - { - CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pVehicle); - UpdateCompareFlag(pVehicle->bIsBeingCarJacked); - return 0; - } - case COMMAND_SET_CHAR_ONLY_ALLOWED_TO_SIT_IN_FRONT: - { - CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pPed); - pPed->bOnlyAllowedToSitInFront = GET_INTEGER_PARAM(1); - return 0; - } - case COMMAND_SET_CAR_TILTED_BY_CHAR: - { - CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(1)); - script_assert(pVehicle); - pVehicle->ApplyTurnForce(0.0f, 0.0f, CGeneral::GetRandomNumberInRange(-0.8f, -1.2f)* pPed->m_fMass, - pPed->GetPosition().x - pVehicle->GetPosition().x, pPed->GetPosition().y - pVehicle->GetPosition().y, 0.0f); - DMAudio.PlayOneShot(pVehicle->m_audioEntityId, SOUND_CAR_JERK, 0.0f); - return 0; - } - case COMMAND_GET_WEAPON_TYPE_FOR_PICKUP_IN_AREA: - { - CollectParameters(&m_nIp, 4); - float X = GET_FLOAT_PARAM(0); - float Y = GET_FLOAT_PARAM(1); - float Z = GET_FLOAT_PARAM(2); - float radius = GET_FLOAT_PARAM(3); - int model = -1; - bool found = false; - for (uint32 i = 0; i < NUMPICKUPS; i++) { - CPickup* pPickup = &CPickups::aPickUps[i]; - if (pPickup->m_eType != PICKUP_NONE) { - CVector fDist = pPickup->m_vecPos - CVector(X, Y, Z); -#ifndef FIX_BUGS // this breaks ALL pickups! - pPickup->m_eModelIndex = 4; #endif - if (fDist.Magnitude() < radius && pPickup->m_pObject) { - found = true; - model = CPickups::WeaponForModel(pPickup->m_pObject->GetModelIndex()); - } - } - } - SET_INTEGER_PARAM(0, model); - StoreParameters(&m_nIp, 1); - } - case COMMAND_IS_PLAYER_USING_FIRST_PERSON_WEAPON_CAMERA: - CollectParameters(&m_nIp, 1); - UpdateCompareFlag(TheCamera.Using1stPersonWeaponMode()); - return 0; - //case COMMAND_1489: - //case COMMAND_1490: - //case COMMAND_1491: - case COMMAND_SET_DEBUG_MENU_ACTIVE: - CollectParameters(&m_nIp, 1); - // this sets two values on PS2, but not on mobile - TODO? - return 0; - case COMMAND_SET_DRAW_HUD: - CollectParameters(&m_nIp, 1); - CHud::m_Wants_To_Draw_Hud = (GET_INTEGER_PARAM(0) != 0); - return 0; - case COMMAND_GET_RANDOM_CHAR_IN_AREA_NO_CHECKS: - { - CollectParameters(&m_nIp, 4); - int ped_handle = -1; - CVector pos = FindPlayerCoors(); - float x1 = GET_FLOAT_PARAM(0); - float y1 = GET_FLOAT_PARAM(1); - float x2 = GET_FLOAT_PARAM(2); - float y2 = GET_FLOAT_PARAM(3); - int i = CPools::GetPedPool()->GetSize(); - while (--i && ped_handle == -1) { - CPed* pPed = CPools::GetPedPool()->GetSlot(i); - if (!pPed) - continue; - if (pPed->bRemoveFromWorld) - continue; - if (pPed->bFadeOut) - continue; - if (pPed->m_nWaitState != WAITSTATE_FALSE) - continue; - if (!pPed->IsWithinArea(x1, y1, x2, y2)) - continue; - if (pos.z - PED_FIND_Z_OFFSET > pPed->GetPosition().z) - continue; - if (pos.z + PED_FIND_Z_OFFSET < pPed->GetPosition().z) - continue; - ped_handle = CPools::GetPedPool()->GetIndex(pPed); - CTheScripts::LastRandomPedId = ped_handle; - pPed->CharCreatedBy = MISSION_CHAR; - pPed->bRespondsToThreats = false; - ++CPopulation::ms_nTotalMissionPeds; - if (m_bIsMissionScript) - CTheScripts::MissionCleanUp.AddEntityToList(ped_handle, CLEANUP_CHAR); - } - SET_INTEGER_PARAM(0, ped_handle); - StoreParameters(&m_nIp, 1); - return 0; - } - case COMMAND_GET_RANDOM_CAR_IN_AREA_NO_CHECKS_NO_SAVE: - { - CollectParameters(&m_nIp, 4); - int handle = -1; - uint32 i = CPools::GetVehiclePool()->GetSize(); - float infX = GET_FLOAT_PARAM(0); - float infY = GET_FLOAT_PARAM(1); - float supX = GET_FLOAT_PARAM(2); - float supY = GET_FLOAT_PARAM(3); - while (i-- && handle == -1) { - CVehicle* pVehicle = CPools::GetVehiclePool()->GetSlot(i); - if (!pVehicle) - continue; - if (!pVehicle->IsWithinArea(infX, infY, supX, supY)) - continue; - handle = CPools::GetVehiclePool()->GetIndex(pVehicle); - } - SET_INTEGER_PARAM(0, handle); - StoreParameters(&m_nIp, 1); - return 0; - } - case COMMAND_STORE_CAR_COLLIDED_WITH_NO_SAVE: - { - CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - if (!pVehicle) - printf("STORE_CAR_COLLIDED_WITH_NO_SAVE - Car doesn\'t exist\n"); - else { - if (pVehicle->m_pLastDamageEntity == nil) - SET_INTEGER_PARAM(0, -1); - else { - // what they are doing is not very safe as m_pLastDamageEntity doesn't have to be CVehicle -#ifdef FIX_BUGS - if (!pVehicle->m_pLastDamageEntity->IsVehicle()) { - SET_INTEGER_PARAM(0, -1); - } - else -#endif - { - SET_INTEGER_PARAM(0, CPools::GetVehiclePool()->GetIndex((CVehicle*)pVehicle->m_pLastDamageEntity)); - pVehicle->m_pLastDamageEntity = nil; - } - } - } - StoreParameters(&m_nIp, 1); - return 0; - } default: script_assert(0); } diff --git a/src/control/Script9.cpp b/src/control/Script9.cpp deleted file mode 100644 index 42851bb..0000000 --- a/src/control/Script9.cpp +++ /dev/null @@ -1,774 +0,0 @@ -#include "common.h" - -#include "Script.h" -#include "ScriptCommands.h" - -#include "Bridge.h" -#include "CarCtrl.h" -#include "Camera.h" -#include "CutsceneMgr.h" -#include "Garages.h" -#include "GameLogic.h" -#include "Hud.h" -#include "Messages.h" -#include "Object.h" -#include "Pad.h" -#include "Ped.h" -#include "Pools.h" -#include "Remote.h" -#include "SpecialFX.h" -#include "Stats.h" -#include "Vehicle.h" -#include "World.h" - -// LCS: file done except TODOs (also check commented out strings) - -int8 CRunningScript::ProcessCommands1500To1599(int32 command) -{ - switch (command) { - case COMMAND_DISABLE_FERRY_PATH: - { - CollectParameters(&m_nIp, 1); - // CFerry:DissableFerryPath(GET_INTEGER_PARAM(0)); TODO - return 0; - } - case COMMAND_ENABLE_FERRY_PATH: - { - CollectParameters(&m_nIp, 1); - // CFerry::EnableFerryPath(GET_INTEGER_PARAM(0)); - return 0; - } - case COMMAND_GET_CLOSEST_DOCKED_FERRY: - { - CollectParameters(&m_nIp, 2); - // CFerry* pFerry = CFerry::GetClosestFerry(GET_FLOAT_PARAM(0), GET_FLOAT_PARAM(1)); - int id = -1; - // if (pFerry && pFerry->IsDocked() - // id = pFerry->GetId(); - SET_INTEGER_PARAM(0, id); - StoreParameters(&m_nIp, 1); - return 0; - } - case COMMAND_OPEN_FERRY_DOOR: - { - CollectParameters(&m_nIp, 1); - // CFerry* pFerry = CFerry::GetFerry(GET_INTEGER_PARAM(0)); - // script_assert(pFerry); - // pFerry->OpenDoor(); - return 0; - } - case COMMAND_CLOSE_FERRY_DOOR: - { - CollectParameters(&m_nIp, 1); - // CFerry* pFerry = CFerry::GetFerry(GET_INTEGER_PARAM(0)); - // script_assert(pFerry); - // pFerry->CloseDoor(); - return 0; - } - case COMMAND_IS_FERRY_DOOR_OPEN: - { - CollectParameters(&m_nIp, 1); - // CFerry* pFerry = CFerry::GetFerry(GET_INTEGER_PARAM(0)); - // script_assert(pFerry); - // UpdateCompareFlag(pFerry->IsDoorOpen()); - UpdateCompareFlag(false); - return 0; - } - case COMMAND_IS_FERRY_DOOR_CLOSED: - { - CollectParameters(&m_nIp, 1); - // CFerry* pFerry = CFerry::GetFerry(GET_INTEGER_PARAM(0)); - // script_assert(pFerry); - // UpdateCompareFlag(pFerry->IsDoorClosed()); - UpdateCompareFlag(true); - return 0; - } - case COMMAND_SKIP_FERRY_TO_NEXT_DOCK: - { - CollectParameters(&m_nIp, 1); - // CFerry* pFerry = CFerry::GetFerry(GET_INTEGER_PARAM(0)); - // script_assert(pFerry); - // pFerry->SkipFerryToNextDock(); - return 0; - } - case COMMAND_SET_CHAR_DROPS_WEAPONS_ON_DEATH: - { - CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pPed); - pPed->bDropsWeaponsOnDeath = (GET_INTEGER_PARAM(1) != 0); - return 0; - } - case COMMAND_IS_CHAR_CROUCHING: - { - CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pPed); - UpdateCompareFlag(pPed->bIsDucking); - return 0; - } - case COMMAND_GET_FERRY_BOARDING_SPACE: - { - CollectParameters(&m_nIp, 4); - // CFerry* pFerry = CFerry::GetFerry(GET_INTEGER_PARAM(0)); - // script_assert(pFerry); - // ? = pFerry->GetBoardingSpace((CFerry::eSpaceUse)GET_INTEGER_PARAMS(1), (CFerry::eSpaceStyle)GET_INTEGER_PARAMS(2), GET_INTEGER_PARAMS(3)); - SET_FLOAT_PARAM(0, 0.0f); - SET_FLOAT_PARAM(1, 0.0f); // TODO - StoreParameters(&m_nIp, 2); - return 0; - } - case COMMAND_GET_FERRY_HEADING: - { - CollectParameters(&m_nIp, 1); - // CFerry* pFerry = CFerry::GetFerry(GET_INTEGER_PARAM(0)); - // script_assert(pFerry); - // float fHeading = CGeneral::GetATanOfXY(pFerry->GetForward().x, pFerry->GetForward().y); - // SET_FLOAT_PARAM(0, fHeading); - SET_FLOAT_PARAM(0, 0.0f); - StoreParameters(&m_nIp, 1); - return 0; - } - case COMMAND_SET_FERRIES_ENABLED: - { - CollectParameters(&m_nIp, 1); - // CFerry::SetFerriesEnabled(GET_INTEGER_PARAM(0)); - return 0; - } - case COMMAND_COMPLETE_FERRY_DOOR_MOVEMENT: - { - CollectParameters(&m_nIp, 1); - // CFerry::CompleteDorrMovement(GET_INTEGER_PARAM(0)); - return 0; - } - case COMMAND_OVERRIDE_CAR_REMOTE_CONTROL: - { - CollectParameters(&m_nIp, 2); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pVehicle); - pVehicle->SetStatus(STATUS_PLAYER_REMOTE); - CVehicle::bDisableRemoteDetonation = true; - CWorld::Players[CWorld::PlayerInFocus].m_pRemoteVehicle = pVehicle; - pVehicle->RegisterReference((CEntity**)&CWorld::Players[CWorld::PlayerInFocus].m_pRemoteVehicle); - if (pVehicle->GetVehicleAppearance() == VEHICLE_APPEARANCE_HELI || pVehicle->GetVehicleAppearance() == VEHICLE_APPEARANCE_PLANE) { - TheCamera.TakeControl(pVehicle, CCam::MODE_CAM_ON_A_STRING, GET_INTEGER_PARAM(1) ? INTERPOLATION : JUMP_CUT, CAMCONTROL_SCRIPT); - TheCamera.SetZoomValueCamStringScript(0); - } - else { - TheCamera.TakeControl(pVehicle, CCam::MODE_1STPERSON, GET_INTEGER_PARAM(1) ? INTERPOLATION : JUMP_CUT, CAMCONTROL_SCRIPT); - script_assert(pVehicle->IsCar()); - //((CAutomobile*)pVehicle)->Damage.m_bSmashedDoorDoesntClose = true; - } - if (m_bIsMissionScript) - CTheScripts::MissionCleanUp.RemoveEntityFromList(GET_INTEGER_PARAM(0), CLEANUP_CAR); - if (FindPlayerVehicle()) - FindPlayerVehicle()->bCanBeDamaged = false; - return 0; - } - case COMMAND_CANCEL_REMOTE_MODE: - { - if (FindPlayerVehicle()) - FindPlayerVehicle()->bCanBeDamaged = true; - CRemote::TakeRemoteControlledCarFromPlayer(false); - CWorld::Players[CWorld::PlayerInFocus].field_D6 = false; - CWorld::Players[CWorld::PlayerInFocus].m_pRemoteVehicle = nil; - TheCamera.Restore(); - return 0; - } - case COMMAND_REGISTER_CAR_SOLD: - // CStats::CarsSold++; - return 0; - case COMMAND_ADD_MONEY_MADE_WITH_CAR_SALES: - CollectParameters(&m_nIp, 1); - // CStats::MoneyMadeWithCarSales += GET_INTEGER_PARAM(0); - return 0; - case COMMAND_SET_BRIDGE_STATE: - { - CollectParameters(&m_nIp, 1); -#ifdef GTA_BRIDGE - /* - * 0 = locked - * 1 = unlocked - * 2 = operational - */ - switch (GET_INTEGER_PARAM(0)) { - case 0: CBridge::ForceBridgeState(STATE_BRIDGE_LOCKED); break; - case 1: CBridge::ForceBridgeState(STATE_BRIDGE_ALWAYS_UNLOCKED); break; - case 2: - if (CBridge::State == STATE_LIFT_PART_IS_DOWN || CBridge::State == STATE_BRIDGE_ALWAYS_UNLOCKED) - CBridge::ForceBridgeState(STATE_LIFT_PART_ABOUT_TO_MOVE_UP); - else - CBridge::ForceBridgeState(STATE_LIFT_PART_MOVING_DOWN); - break; - default: script_assert(false); - } -#endif - return 0; - } - case COMMAND_SET_OBJECT_TURN_SPEED: - { - CollectParameters(&m_nIp, 4); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pObject); - CVector vSpeed = GET_VECTOR_PARAM(1) / GAME_SPEED_TO_METERS_PER_SECOND; - pObject->SetTurnSpeed(vSpeed.x, vSpeed.y, vSpeed.z); - return 0; - } - case COMMAND_SET_OBJECT_MASS: - { - CollectParameters(&m_nIp, 4); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pObject); - pObject->m_fMass = GET_FLOAT_PARAM(1); - pObject->m_fTurnMass = GET_FLOAT_PARAM(2); - pObject->m_fAirResistance = GET_FLOAT_PARAM(3); - if (pObject->m_fMass < 99998.0f) { - pObject->bInfiniteMass = false; - pObject->m_phy_flagA08 = false; - pObject->bAffectedByGravity = true; - } - else { - pObject->bInfiniteMass = true; - pObject->m_phy_flagA08 = true; - pObject->bAffectedByGravity = false; - } - return 0; - } - case COMMAND_HAS_CUTSCENE_LOADED: - UpdateCompareFlag(CCutsceneMgr::ms_cutsceneLoadStatus == CUTSCENE_LOADED); - return 0; - case COMMAND_SET_UNIQUE_JUMPS_FOUND: - CollectParameters(&m_nIp, 1); - CStats::NumberOfUniqueJumpsFound = GET_INTEGER_PARAM(0); - return 0; - case COMMAND_SET_HIDDEN_PACKAGES_COLLECTED: - CollectParameters(&m_nIp, 1); - CWorld::Players[CWorld::PlayerInFocus].m_nCollectedPackages = GET_INTEGER_PARAM(0); - return 0; - case COMMAND_REGISTER_BIKE_SOLD: - // CStats::BikesSold++; - return 0; - case COMMAND_ADD_MONEY_MADE_WITH_BIKE_SALES: - CollectParameters(&m_nIp, 1); - // CStats::MoneyMadeWithBikeSales += GET_INTEGER_PARAM(0); - return 0; - case COMMAND_REGISTER_PACKAGE_SMUGGLED: - // CStats::PackagesSmuggled++; - return 0; - case COMMAND_REGISTER_SMUGGLER_WASTED: - // CStats::SmugglersWasted++; - return 0; - case COMMAND_REGISTER_FASTEST_SMUGGLING_TIME: - CollectParameters(&m_nIp, 1); - // CStats::RegisterFastestSmugglingTime(GET_INTEGER_PARAM(0)); - return 0; - case COMMAND_SET_CHAR_DIVE_FROM_CAR: - { - CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1)); - script_assert(pPed); - pPed->bRespondsToThreats = true; - pPed->SetEvasiveDive(pVehicle, 1); - return 0; - } - case COMMAND_WRECK_CAR: - { - CollectParameters(&m_nIp, 1); - CAutomobile* pVehicle = (CAutomobile*)CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pVehicle); - script_assert(pVehicle->IsCar()); - pVehicle->m_fHealth = 0.0f; - pVehicle->SetStatus(STATUS_WRECKED); - pVehicle->bRenderScorched = true; - pVehicle->Damage.FuckCarCompletely(); - if (pVehicle->GetModelIndex() != MI_RCBANDIT) { - pVehicle->SetBumperDamage(CAR_BUMP_FRONT, VEHBUMPER_FRONT); - pVehicle->SetBumperDamage(CAR_BUMP_REAR, VEHBUMPER_REAR); - pVehicle->SetDoorDamage(CAR_BONNET, DOOR_BONNET); - pVehicle->SetDoorDamage(CAR_BOOT, DOOR_BOOT); - pVehicle->SetDoorDamage(CAR_DOOR_LF, DOOR_FRONT_LEFT); - pVehicle->SetDoorDamage(CAR_DOOR_RF, DOOR_FRONT_RIGHT); - pVehicle->SetDoorDamage(CAR_DOOR_LR, DOOR_REAR_LEFT); - pVehicle->SetDoorDamage(CAR_DOOR_RR, DOOR_REAR_RIGHT); - } - pVehicle->m_bombType = CARBOMB_NONE; - pVehicle->bEngineOn = false; - pVehicle->bLightsOn = false; - pVehicle->m_fHealth = 0.0f; - pVehicle->m_nBombTimer = 0; - pVehicle->m_bSirenOrAlarm = false; - return 0; - } - case COMMAND_ADD_MONEY_MADE_IN_COACH: - CollectParameters(&m_nIp, 1); - // CStats::MoneyMadeInCoach += GET_INTEGER_PARAM(0); - return 0; - case COMMAND_ADD_MONEY_MADE_COLLECTING_TRASH: - CollectParameters(&m_nIp, 1); - // CStats::MoneyMadeCollectingTrash += GET_INTEGER_PARAM(0); - return 0; - case COMMAND_REGISTER_HITMAN_KILLED: - // CStats::HitmenKilled++; - return 0; - case COMMAND_REGISTER_GUARDIAN_ANGEL_MISSION_PASSED: - // CStats::GaurdianAngelMissionsPassed++; - return 0; - case COMMAND_REGISTER_HIGHEST_GUARDIAN_ANGEL_JUSTICE_DISHED: - CollectParameters(&m_nIp, 1); - // CStats::RegisterHighestGaurdianAngelJusticeDished(GET_INTEGER_PARAM(0)); - return 0; - case COMMAND_REGISTER_BEST_BANDIT_LAP_TIME: - CollectParameters(&m_nIp, 2); - // CStats::RegisterBestBanditLapTime(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); - return 0; - case COMMAND_REGISTER_BEST_BANDIT_POSITION: - CollectParameters(&m_nIp, 2); - // CStats::RegisterBestBanditPosition(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); - return 0; - case COMMAND_REGISTER_MOST_TIME_LEFT_TRAIN_RACE: - CollectParameters(&m_nIp, 1); - // CStats::RegisterMostTimeLeftTrainRace(GET_INTEGER_PARAM(0)); - return 0; - case COMMAND_REGISTER_HIGHEST_TRAIN_CASH_EARNED: - CollectParameters(&m_nIp, 1); - // CStats::RegisterHighestTrainCashEarned(GET_INTEGER_PARAM(0)); - return 0; - case COMMAND_REGISTER_FASTEST_HELI_RACE_TIME: - // CStats::RegisterFastestHeliRaceTime(GET_INTEGER_PARAM(0)); - CollectParameters(&m_nIp, 1); - return 0; - case COMMAND_REGISTER_BEST_HELI_RACE_POSITION: - // CStats::RegisterBestHeliRacePosition(GET_INTEGER_PARAM(0)); - CollectParameters(&m_nIp, 1); - return 0; - case COMMAND_REGISTER_OUTFIT_CHANGE: - // CStats::NumberOutfitChanges++; - return 0; - case COMMAND_REGISTER_STREET_RACE_FASTEST_TIME: - // CStats::RegisterStreetRaceFastestTime(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); - CollectParameters(&m_nIp, 2); - return 0; - case COMMAND_REGISTER_STREET_RACE_FASTEST_LAP: - CollectParameters(&m_nIp, 2); - // CStats::RegisterStreetRaceFastestLap(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); - return 0; - case COMMAND_REGISTER_STREET_RACE_BEST_POSITION: - CollectParameters(&m_nIp, 2); - // CStats::RegisterStreetRaceBestPosition(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); - return 0; - case COMMAND_HAS_OBJECT_BEEN_DAMAGED_BY_WEAPON: - { - CollectParameters(&m_nIp, 2); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); - bool result = false; - if (!pObject) { - printf("HAS_OBJECT_BEEN_DAMAGED_BY_WEAPON - Object doesn\'t exist\n"); - } - else { - if (GET_INTEGER_PARAM(1) == WEAPONTYPE_ANYMELEE || GET_INTEGER_PARAM(1) == WEAPONTYPE_ANYWEAPON) - result = CheckDamagedWeaponType(pObject->m_nLastWeaponToDamage, GET_INTEGER_PARAM(1)); - else - result = GET_INTEGER_PARAM(1) == pObject->m_nLastWeaponToDamage; - } - UpdateCompareFlag(result); - return 0; - } - case COMMAND_CLEAR_OBJECT_LAST_WEAPON_DAMAGE: - { - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); - if (!pObject) - printf("CLEAR_OBJECT_LAST_WEAPON_DAMAGE - pObject doesn\'t exist"); - else - pObject->m_nLastWeaponToDamage = -1; - return 0; - } - case COMMAND_SET_CAR_TURN_SPEED: - { - CollectParameters(&m_nIp, 4); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pVehicle); - CVector vSpeed = GET_VECTOR_PARAM(1) / GAME_SPEED_TO_METERS_PER_SECOND; - pVehicle->SetTurnSpeed(vSpeed.x, vSpeed.y, vSpeed.z); - return 0; - } - case COMMAND_SET_CAR_MOVE_SPEED: - { - CollectParameters(&m_nIp, 4); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pVehicle); - CVector vSpeed = GET_VECTOR_PARAM(1) / GAME_SPEED_TO_METERS_PER_SECOND; - pVehicle->SetMoveSpeed(vSpeed); - return 0; - } - case COMMAND_SET_OBJECT_PROOFS: - { - CollectParameters(&m_nIp, 6); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pObject); - pObject->bBulletProof = (GET_INTEGER_PARAM(1) != 0); - pObject->bFireProof = (GET_INTEGER_PARAM(2) != 0); - pObject->bExplosionProof = (GET_INTEGER_PARAM(3) != 0); - pObject->bCollisionProof = (GET_INTEGER_PARAM(4) != 0); - pObject->bMeleeProof = (GET_INTEGER_PARAM(5) != 0); - return 0; - } - case COMMAND_GET_CAMERA_PED_ZOOM_INDICATOR: - if (TheCamera.Cams[TheCamera.ActiveCam].Mode == CCam::MODE_FOLLOWPED) - SET_INTEGER_PARAM(0, TheCamera.PedZoomIndicator); - else - SET_INTEGER_PARAM(0, -1); - StoreParameters(&m_nIp, 1); - return 0; - case COMMAND_SET_CAMERA_PED_ZOOM_INDICATOR: - CollectParameters(&m_nIp, 1); - if (TheCamera.Cams[TheCamera.ActiveCam].Mode == CCam::MODE_FOLLOWPED) - TheCamera.PedZoomIndicator = GET_INTEGER_PARAM(0); - return 0; - case COMMAND_GET_CAR_ORIENTATION: - { - CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pVehicle); - SET_FLOAT_PARAM(1, LimitAngleOnCircle(RADTODEG(Asin(pVehicle->GetForward().z)))); - SET_FLOAT_PARAM(2, LimitAngleOnCircle(RADTODEG(Atan2(-pVehicle->GetForward().x, pVehicle->GetForward().y)))); - SET_FLOAT_PARAM(0, LimitAngleOnCircle(RADTODEG(Atan2(-pVehicle->GetRight().z, pVehicle->GetUp().z)))); - StoreParameters(&m_nIp, 3); - return 0; - } - case COMMAND_SET_CAR_ORIENTATION: - { - CollectParameters(&m_nIp, 4); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pVehicle); - pVehicle->SetOrientation(DEGTORAD(GET_FLOAT_PARAM(2)), DEGTORAD(GET_FLOAT_PARAM(1)), DEGTORAD(GET_FLOAT_PARAM(3))); - return 0; - } - case COMMAND_IS_DEBUG_MENU_ON: - // on PS2 it's something actual - TODO - UpdateCompareFlag(false); - return 0; - case COMMAND_OPEN_VAN_BACK_DOORS: - { - CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - assert(pVehicle); - pVehicle->ProcessOpenDoor(CAR_DOOR_RR, ANIM_STD_VAN_OPEN_DOOR_REAR_RHS, 1.0f); - pVehicle->ProcessOpenDoor(CAR_DOOR_LR, ANIM_STD_VAN_OPEN_DOOR_REAR_LHS, 1.0f); - return 0; - } - case COMMAND_GET_CHAR_THREAT_CHAR: - { - CollectParameters(&m_nIp, 1); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pPed); - SET_INTEGER_PARAM(0, 0); - CEntity* pThreat = pPed->m_threatEntity; - if (pThreat && pThreat->IsPed()) - SET_INTEGER_PARAM(0, CPools::GetPedPool()->GetIndex((CPed*)pThreat)); - StoreParameters(&m_nIp, 1); - return 0; - } - case COMMAND_FREEZE_PED_ZOOM_SWITCH: - CollectParameters(&m_nIp, 1); - TheCamera.m_bFreezePedZoomSwitch = GET_INTEGER_PARAM(0); - return 0; - case COMMAND_SET_OBJECT_RENDERED_DAMAGED: - { - CollectParameters(&m_nIp, 1); - CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pObject); - pObject->bRenderDamaged = true; - return 0; - } - case COMMAND_GET_RANDOM_CAR_IN_AREA_NO_SAVE: - { - CollectParameters(&m_nIp, 5); - int handle = -1; - uint32 i = CPools::GetVehiclePool()->GetSize(); - float infX = GET_FLOAT_PARAM(0); - float infY = GET_FLOAT_PARAM(1); - float supX = GET_FLOAT_PARAM(2); - float supY = GET_FLOAT_PARAM(3); - while (i-- && handle == -1) { - CVehicle* pVehicle = CPools::GetVehiclePool()->GetSlot(i); - if (!pVehicle) - continue; - if (pVehicle->GetVehicleAppearance() != VEHICLE_APPEARANCE_CAR && pVehicle->GetVehicleAppearance() != VEHICLE_APPEARANCE_BIKE) - continue; -#ifdef FIX_BUGS - if (pVehicle->m_fHealth <= 0.0f) -#else - if (pVehicle->m_fHealth == 0.0f) -#endif - continue; - if (pVehicle->GetModelIndex() != GET_INTEGER_PARAM(4) && GET_INTEGER_PARAM(4) >= 0) - continue; - if (pVehicle->VehicleCreatedBy != RANDOM_VEHICLE) - continue; - if (!pVehicle->IsWithinArea(infX, infY, supX, supY)) - continue; - handle = CPools::GetVehiclePool()->GetIndex(pVehicle); - } - SET_INTEGER_PARAM(0, handle); - StoreParameters(&m_nIp, 1); - return 0; - } - case COMMAND_IS_PLAYER_MADE_SAFE: - { - UpdateCompareFlag(CPad::GetPad(0)->IsPlayerControlsDisabledBy(PLAYERCONTROL_PLAYERINFO)); - return 0; - } - case COMMAND_PRINT_IF_FREE: - { - wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); - CollectParameters(&m_nIp, 2); - //CMessages::AddMessageIfFree(text, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); TODO - return 0; - } - case COMMAND_IS_E3_BUILD: - UpdateCompareFlag(false); - return 0; - case COMMAND_DECLARE_FORT_STAUNTON_DESTROYED_FLAG: - CTheScripts::FSDestroyedFlag = (uint8*)GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) - CTheScripts::ScriptSpace; - return 0; - case COMMAND_CLEAR_BIG_MESSAGES: - //CMessages::ClearBigMessagesOnly(); TODO - //CHud::ClearBigMessagesExcept(2, 2); TODO - CGarages::MessageEndTime = CGarages::MessageStartTime; - return 0; - case COMMAND_CLEAR_AREA_OF_OBJECTS: - { - CollectParameters(&m_nIp, 6); - uint32 i = CPools::GetObjectPool()->GetSize(); - float infX = GET_FLOAT_PARAM(0); - float infY = GET_FLOAT_PARAM(1); - float infZ = GET_FLOAT_PARAM(2); - float supX = GET_FLOAT_PARAM(3); - float supY = GET_FLOAT_PARAM(4); - float supZ = GET_FLOAT_PARAM(5); - while (i--) { - CObject* pObject = CPools::GetObjectPool()->GetSlot(i); - if (pObject && pObject->CanBeDeleted() && pObject->IsWithinArea(infX, infY, infZ, supX, supY, supZ)) { - pObject->DeleteRwObject(); - CWorld::Remove(pObject); - delete pObject; - } - } - i = CPools::GetDummyPool()->GetSize(); - while (i--) { - CDummy* pDummy = CPools::GetDummyPool()->GetSlot(i); - if (pDummy && pDummy->IsObject() && pDummy->IsWithinArea(infX, infY, infZ, supX, supY, supZ)) { - pDummy->DeleteRwObject(); - CWorld::Remove(pDummy); - delete pDummy; - } - } - return 0; - } - case COMMAND_LOAD_NON_STANDARD_PED_ANIM: - CollectParameters(&m_nIp, 1); - // CPed::LoadNonStandardPedAnim(GET_INTEGER_PARAM(0)); - return 0; - case COMMAND_UNLOAD_NON_STANDARD_PED_ANIM: - CollectParameters(&m_nIp, 1); - // CPed::UnloadNonStandardPedAnim(SET_INTEGER_PARAM(0)); - return 0; - case COMMAND_1566: - CollectParameters(&m_nIp, 1); - return 0; - case COMMAND_BUILD_WORLD_GEOMETRY: - CollectParameters(&m_nIp, 1); - if (/*gBuildWorldGeom*/ false) { - //base::cWorldGeom::GetInstance()->Build(GET_INTEGER_PARAM(0)); - UpdateCompareFlag(true); - } - else { - UpdateCompareFlag(false); - } - return 0; - case COMMAND_STORE_BUILDING_SWAP: - CollectParameters(&m_nIp, 4); - // base::cWorldGeom::GetInstance()->StoreBuildingSwap(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3) != 0); - return 0; - case COMMAND_IS_MULTIPLAYER_ACTIVE: - UpdateCompareFlag(false); // TODO? - return 0; - case COMMAND_GET_MULTIPLAYER_MODE: - SET_INTEGER_PARAM(0, 0); // TODO - StoreParameters(&m_nIp, 1); - return 0; - case COMMAND_MULTIPLAYER_SCRIPT_DONE: - //gbStartingScriptsFromLua = false; TODO? - return 0; - case COMMAND_IS_MULTIPLAYER_SERVER: - UpdateCompareFlag(false); // TODO? - return 0; - case COMMAND_IS_MULTIPLAYER_TEAM_GAME: - UpdateCompareFlag(false); // TODO? - return 0; - case COMMAND_GET_MULTIPLAYER_TEAM_ID: - SET_INTEGER_PARAM(0, 0); // TODO - StoreParameters(&m_nIp, 1); - return 0; - case COMMAND_DOES_SHORTCUT_TAXI_EXIST: - UpdateCompareFlag(CGameLogic::pShortCutTaxi != nil); - return 0; - case COMMAND_SET_ONSCREEN_TIMER_COLOUR: - CollectParameters(&m_nIp, 4); - // gbColour = CRGBA(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3)); - return 0; - case COMMAND_SET_ONSCREEN_TIMER_BACKGROUND_COLOUR: - CollectParameters(&m_nIp, 4); - // gbColour2 = CRGBA(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3)); - return 0; - case COMMAND_REMOVE_CAR_BOOT: - { - CollectParameters(&m_nIp, 1); - CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pVehicle); - script_assert(pVehicle->IsCar()); - CAutomobile* pAutomobile = (CAutomobile*)pVehicle; - pAutomobile->Damage.SetDoorStatus(DOOR_BOOT, DOOR_STATUS_MISSING); - pAutomobile->SetDoorDamage(CAR_BOOT, DOOR_BOOT, true); - return 0; - } - case COMMAND_ADD_POINT_3D_MARKER: - { - uint32 ip = m_nIp; - uint32 id = (uint32)(uintptr)GetPointerToScriptVariable(&ip, 0); - static CVector vPreviousLocation; - CollectParameters(&m_nIp, 7); - CVector pos = GET_VECTOR_PARAM(0); - if (pos.z <= MAP_Z_LOW_LIMIT) - pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y); - if (vPreviousLocation != pos) { - //C3dMarkers::CopyMarker(id, id - 1, 1, 1); - } - // TODO: 5 is not a valid type - //C3dMarkers::PlaceMarker(id, 5, pos, GET_FLOAT_PARAM(3) * 0.7f, GET_INTEGER_PARAM(4), GET_INTEGER_PARAM(5), GET_INTEGER_PARAM(6), 255, 128, 0.0f, 1); // TODO: 0, 100.0f, 1, 0 - vPreviousLocation = pos; - return 0; - } - case COMMAND_GET_VECTOR_FROM_MULTIPLAYER: - SET_VECTOR_PARAM(0, gVectorSetInLua); - StoreParameters(&m_nIp, 3); - return 0; - case COMMAND_PRINT_HELP_ALWAYS: - { - // CHud::mAlwaysAllowHelpText = true; // TODO - wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); - CHud::SetHelpMessage(text, false); // + false, true - return 0; - } - case COMMAND_PRINT_HELP_FOREVER_ALWAYS: - { - // CHud::mAlwaysAllowHelpText = true; // TODO - wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp); - CHud::SetHelpMessage(text, false, true); // + true - return 0; - } - case COMMAND_SWITCH_FERRY_COLLISION: - CollectParameters(&m_nIp, 1); - // CFerry::SwitchFerryCollision(GET_INTEGER_PARAM(0)); - return 0; - case COMMAND_SET_CHAR_MAX_HEALTH: - { - CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pPed); - pPed->m_fHealth = GET_INTEGER_PARAM(1); - pPed->m_fMaxHealth = GET_INTEGER_PARAM(1); - return 0; - } - case COMMAND_SET_CHAR_SHOOT_TIMER: - { - CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pPed); - pPed->m_nScriptShootTimer = GET_INTEGER_PARAM(1); - return 0; - } - case COMMAND_SET_CHAR_ATTACK_TIMER: - { - CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pPed); - pPed->m_nScriptAttackTimer = GET_INTEGER_PARAM(1); - return 0; - } - case COMMAND_SET_HELI_ROTOR_BLADES_FULLSPEED: - { - CollectParameters(&m_nIp, 1); - CAutomobile* pHeli = (CAutomobile*)CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pHeli); - if (pHeli->GetVehicleAppearance() == VEHICLE_APPEARANCE_HELI) - pHeli->m_aWheelSpeed[1] = 0.22f; - return 0; - } - case COMMAND_SET_CRUSHER_REWARD_MULTIPLIER: - { - CollectParameters(&m_nIp, 1); - // CGarages::CrusherRewardMultiplier = GET_INTEGER_PARAM(0); - return 0; - } - case COMMAND_SWAP_BUILDINGS: - { - CollectParameters(&m_nIp, 2); - // base::cWorldStream::Instance()->SwapBuilding(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); - return 0; - } - case COMMAND_STREAM_BUILDING_SWAPS: - { - // UpdateCompareFlag(base::cWorldStream::Instance()->StreamBuildingSwaps()); - UpdateCompareFlag(true); - return 0; - } - case COMMAND_IS_WORLD_STREAMING_COMPLETE: - { - // UpdateCompareFlag(base::cWorldStream::Instance()->IsStreamingComplet()); - UpdateCompareFlag(true); - return 0; - } - case COMMAND_SWAP_TO_STREAMED_SECTOR: - { - // base::cWorldStream::Instance()->SwapToStreamedSector(); - return 0; - } - case COMMAND_SET_CHAR_ATTACKS_PLAYER_WITH_COPS: - { - CollectParameters(&m_nIp, 2); - CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0)); - script_assert(pPed); - pPed->bAttacksPlayerWithCops = (GET_INTEGER_PARAM(1) != 0); - return 0; - } - case COMMAND_REGISTER_FACE_PLANT_DISTANCE: - CollectParameters(&m_nIp, 1); - //CStats::LongestFacePlantDist = Max(CStats::LongestFacePlantDist, GET_FLOAT_PARAM(0)); - return 0; - case COMMAND_REGISTER_MAX_SECONDS_ON_CARNAGE_LEFT: - CollectParameters(&m_nIp, 1); - //CStats::MaxSecondsOnCarnageLeft = Max(CStats::MaxSecondsOnCarnageLeft, GET_INTEGER_PARAM(0)); - return 0; - case COMMAND_REGISTER_MAX_KILLS_ON_RC_TRIAD: - CollectParameters(&m_nIp, 1); - //CStats::MaxKillsOnRcTriad = Max(CStats::MaxKillsOnRcTriad, GET_INTEGER_PARAM(0)); - return 0; - case COMMAND_REGISTER_HIGHEST_LEVEL_SLASH_TV: - CollectParameters(&m_nIp, 1); - //CStats::HighestLevelSlashTv = Max(CStats::HighestLevelSlashTv, GET_INTEGER_PARAM(0)); - return 0; - case COMMAND_ADD_MONEY_MADE_WITH_SLASH_TV: - CollectParameters(&m_nIp, 1); - //CStats::MoneyMadeWithSlashTv += GET_INTEGER_PARAM(0); - return 0; - case COMMAND_ADD_TOTAL_KILLS_ON_SLASH_TV: - CollectParameters(&m_nIp, 1); - //CStats::TotalKillsOnSlashTV += GET_INTEGER_PARAM(0); - return 0; - default: - script_assert(0); - } - return -1; -} \ No newline at end of file diff --git a/src/control/ScriptCommands.h b/src/control/ScriptCommands.h index 000f561..9863e85 100644 --- a/src/control/ScriptCommands.h +++ b/src/control/ScriptCommands.h @@ -215,11 +215,6 @@ enum { COMMAND_WHILE, COMMAND_WHILENOT, COMMAND_ENDWHILE, - COMMAND_214, - COMMAND_215, - COMMAND_216, - COMMAND_217, - COMMAND_218, COMMAND_ANDOR, COMMAND_LAUNCH_MISSION, COMMAND_MISSION_HAS_FINISHED, @@ -1442,222 +1437,39 @@ enum { COMMAND_REGISTER_FIRE_LEVEL, COMMAND_IS_AUSTRALIAN_GAME, COMMAND_DISARM_CAR_BOMB, +#if (defined GTAVC_JP_PATCH || defined SUPPORT_JAPANESE_SCRIPT) COMMAND_IS_JAPANESE_GAME, - COMMAND_1442, - COMMAND_1443, - COMMAND_GET_DISTANCE_BETWEEN_2D_POINTS, - COMMAND_GET_DISTANCE_BETWEEN_3D_POINTS, - COMMAND_DOT_PRODUCT_2D, - COMMAND_DOT_PRODUCT_3D, - COMMAND_DEBUG_PRINT_WITH_1_FLOAT, - COMMAND_DEBUG_PRINT_WITH_2_FLOATS, - COMMAND_DEBUG_PRINT_WITH_3_FLOATS, - COMMAND_GET_PAD_BUTTON_STATE, - COMMAND_SET_NAVIGATION_ARROW, - COMMAND_CLEAR_NAVIGATION_ARROW, - COMMAND_CALL, - COMMAND_CALLNOT, - COMMAND_IS_CAR_AUTOMOBILE, - COMMAND_IS_CAR_BIKE, - COMMAND_IS_CAR_PLANE, - COMMAND_IS_CAR_HELI, - COMMAND_1460, - COMMAND_1461, - COMMAND_1462, - COMMAND_1463, - COMMAND_1464, - COMMAND_1465, - COMMAND_1466, - COMMAND_1467, - COMMAND_1468, - COMMAND_1469, - COMMAND_1470, - COMMAND_1471, - COMMAND_1472, - COMMAND_1473, - COMMAND_1474, - COMMAND_1475, - COMMAND_1476, - COMMAND_RETURN_IF_TRUE, - COMMAND_RETURN_TRUE_IF_TRUE, - COMMAND_SET_CHAR_ONLY_ALLOWED_TO_SIT_BEHIND, - COMMAND_SET_RC_HELI_HEIGHT_LIMIT, - COMMAND_CREATE_SCRIPT_CORONA, - COMMAND_REMOVE_SCRIPT_CORONA, - COMMAND_IS_BOAT_IN_WATER, - COMMAND_IS_CAR_DRIVER_BEING_JACKED, - COMMAND_SET_CHAR_ONLY_ALLOWED_TO_SIT_IN_FRONT, - COMMAND_SET_CAR_TILTED_BY_CHAR, - COMMAND_GET_WEAPON_TYPE_FOR_PICKUP_IN_AREA, - COMMAND_IS_PLAYER_USING_FIRST_PERSON_WEAPON_CAMERA, - COMMAND_1489, - COMMAND_1490, - COMMAND_1491, - COMMAND_SET_DEBUG_MENU_ACTIVE, - COMMAND_SET_DRAW_HUD, - COMMAND_GET_RANDOM_CHAR_IN_AREA_NO_CHECKS, - COMMAND_GET_RANDOM_CAR_IN_AREA_NO_CHECKS_NO_SAVE, - COMMAND_STORE_CAR_COLLIDED_WITH_NO_SAVE, - COMMAND_DISABLE_FERRY_PATH, - COMMAND_ENABLE_FERRY_PATH, - COMMAND_GET_CLOSEST_DOCKED_FERRY, - COMMAND_OPEN_FERRY_DOOR, - COMMAND_CLOSE_FERRY_DOOR, - COMMAND_IS_FERRY_DOOR_OPEN, - COMMAND_IS_FERRY_DOOR_CLOSED, - COMMAND_SKIP_FERRY_TO_NEXT_DOCK, - COMMAND_SET_CHAR_DROPS_WEAPONS_ON_DEATH, - COMMAND_IS_CHAR_CROUCHING, - COMMAND_GET_FERRY_BOARDING_SPACE, - COMMAND_GET_FERRY_HEADING, - COMMAND_SET_FERRIES_ENABLED, - COMMAND_COMPLETE_FERRY_DOOR_MOVEMENT, - COMMAND_OVERRIDE_CAR_REMOTE_CONTROL, - COMMAND_CANCEL_REMOTE_MODE, - COMMAND_REGISTER_CAR_SOLD, - COMMAND_ADD_MONEY_MADE_WITH_CAR_SALES, - COMMAND_SET_BRIDGE_STATE, - COMMAND_SET_OBJECT_TURN_SPEED, - COMMAND_SET_OBJECT_MASS, - COMMAND_HAS_CUTSCENE_LOADED, - COMMAND_SET_UNIQUE_JUMPS_FOUND, - COMMAND_SET_HIDDEN_PACKAGES_COLLECTED, - COMMAND_REGISTER_BIKE_SOLD, - COMMAND_ADD_MONEY_MADE_WITH_BIKE_SALES, - COMMAND_REGISTER_PACKAGE_SMUGGLED, - COMMAND_REGISTER_SMUGGLER_WASTED, - COMMAND_REGISTER_FASTEST_SMUGGLING_TIME, - COMMAND_SET_CHAR_DIVE_FROM_CAR, - COMMAND_WRECK_CAR, - COMMAND_ADD_MONEY_MADE_IN_COACH, - COMMAND_ADD_MONEY_MADE_COLLECTING_TRASH, - COMMAND_REGISTER_HITMAN_KILLED, - COMMAND_REGISTER_GUARDIAN_ANGEL_MISSION_PASSED, - COMMAND_REGISTER_HIGHEST_GUARDIAN_ANGEL_JUSTICE_DISHED, - COMMAND_REGISTER_BEST_BANDIT_LAP_TIME, - COMMAND_REGISTER_BEST_BANDIT_POSITION, - COMMAND_REGISTER_MOST_TIME_LEFT_TRAIN_RACE, - COMMAND_REGISTER_HIGHEST_TRAIN_CASH_EARNED, - COMMAND_REGISTER_FASTEST_HELI_RACE_TIME, - COMMAND_REGISTER_BEST_HELI_RACE_POSITION, - COMMAND_REGISTER_OUTFIT_CHANGE, - COMMAND_REGISTER_STREET_RACE_FASTEST_TIME, - COMMAND_REGISTER_STREET_RACE_FASTEST_LAP, - COMMAND_REGISTER_STREET_RACE_BEST_POSITION, - COMMAND_HAS_OBJECT_BEEN_DAMAGED_BY_WEAPON, - COMMAND_CLEAR_OBJECT_LAST_WEAPON_DAMAGE, - COMMAND_SET_CAR_TURN_SPEED, - COMMAND_SET_CAR_MOVE_SPEED, - COMMAND_SET_OBJECT_PROOFS, - COMMAND_GET_CAMERA_PED_ZOOM_INDICATOR, - COMMAND_SET_CAMERA_PED_ZOOM_INDICATOR, - COMMAND_GET_CAR_ORIENTATION, - COMMAND_SET_CAR_ORIENTATION, - COMMAND_IS_DEBUG_MENU_ON, - COMMAND_OPEN_VAN_BACK_DOORS, - COMMAND_GET_CHAR_THREAT_CHAR, - COMMAND_FREEZE_PED_ZOOM_SWITCH, - COMMAND_SET_OBJECT_RENDERED_DAMAGED, - COMMAND_GET_RANDOM_CAR_IN_AREA_NO_SAVE, - COMMAND_IS_PLAYER_MADE_SAFE, - COMMAND_PRINT_IF_FREE, - COMMAND_IS_E3_BUILD, - COMMAND_DECLARE_FORT_STAUNTON_DESTROYED_FLAG, - COMMAND_CLEAR_BIG_MESSAGES, - COMMAND_CLEAR_AREA_OF_OBJECTS, - COMMAND_LOAD_NON_STANDARD_PED_ANIM, - COMMAND_UNLOAD_NON_STANDARD_PED_ANIM, - COMMAND_1566, - COMMAND_BUILD_WORLD_GEOMETRY, - COMMAND_STORE_BUILDING_SWAP, - COMMAND_IS_MULTIPLAYER_ACTIVE, - COMMAND_GET_MULTIPLAYER_MODE, - COMMAND_MULTIPLAYER_SCRIPT_DONE, - COMMAND_IS_MULTIPLAYER_SERVER, - COMMAND_IS_MULTIPLAYER_TEAM_GAME, - COMMAND_GET_MULTIPLAYER_TEAM_ID, - COMMAND_DOES_SHORTCUT_TAXI_EXIST, - COMMAND_SET_ONSCREEN_TIMER_COLOUR, - COMMAND_SET_ONSCREEN_TIMER_BACKGROUND_COLOUR, - COMMAND_REMOVE_CAR_BOOT, - COMMAND_ADD_POINT_3D_MARKER, - COMMAND_GET_VECTOR_FROM_MULTIPLAYER, - COMMAND_PRINT_HELP_ALWAYS, - COMMAND_PRINT_HELP_FOREVER_ALWAYS, - COMMAND_SWITCH_FERRY_COLLISION, - COMMAND_SET_CHAR_MAX_HEALTH, - COMMAND_SET_CHAR_SHOOT_TIMER, - COMMAND_SET_CHAR_ATTACK_TIMER, - COMMAND_SET_HELI_ROTOR_BLADES_FULLSPEED, - COMMAND_SET_CRUSHER_REWARD_MULTIPLIER, - COMMAND_SWAP_BUILDINGS, - COMMAND_STREAM_BUILDING_SWAPS, - COMMAND_IS_WORLD_STREAMING_COMPLETE, - COMMAND_SWAP_TO_STREAMED_SECTOR, - COMMAND_SET_CHAR_ATTACKS_PLAYER_WITH_COPS, - COMMAND_REGISTER_FACE_PLANT_DISTANCE, - COMMAND_REGISTER_MAX_SECONDS_ON_CARNAGE_LEFT, - COMMAND_REGISTER_MAX_KILLS_ON_RC_TRIAD, - COMMAND_REGISTER_HIGHEST_LEVEL_SLASH_TV, - COMMAND_ADD_MONEY_MADE_WITH_SLASH_TV, - COMMAND_ADD_TOTAL_KILLS_ON_SLASH_TV, - COMMAND_ADD_NOODLES_DELIVERED, - COMMAND_REGISTER_SCRAPYARD_CHALLENGE_SCORE, - COMMAND_REGISTER_9MM_MAYHEM_SCORE, - COMMAND_REGISTER_SCOOTER_SHOOTER_SCORE, - COMMAND_ADD_MONEY_MADE_FROM_TOURIST, - COMMAND_ADD_TOURISTS_TAKEN_TO_SPOTS, - COMMAND_ADD_EXPORTED_CARS, - COMMAND_SET_TOTAL_EXPORT_CARS, - COMMAND_REGISTER_DIRT_BIKE_FASTEST_LAP, - COMMAND_REGISTER_DIRT_BIKE_FASTEST_TIME, - COMMAND_REGISTER_DIRT_BIKE_AIR_TIME, - COMMAND_ADD_ARROW_3D_MARKER, - COMMAND_PRINT_NOW_OVERRIDE_FADE, - COMMAND_GET_PICKUP_VALUE, - COMMAND_SET_PICKUP_VALUE, - COMMAND_IS_DEVELOPER, - COMMAND_SET_DEVELOPER_FLAG, - COMMAND_REGISTER_WICHITA_WIPEOUT_SCORE, - COMMAND_ATTACH_OBJECT_TO_CAR, - COMMAND_DETACH_OBJECT_FROM_CAR, - COMMAND_SET_PAD_STICKS_MULTIPLIER, - COMMAND_PRINT_SUBTITLE_NOW, - COMMAND_PRINT_SUBTITLE_NOW_OVERRIDE_FADE, - COMMAND_PRINT_SUBTITLE_NOW_NO_BRIEF, - COMMAND_PRINT_WITH_NUMBER_NOW_NO_BRIEF, - COMMAND_GET_ANGLE_BETWEEN_POINTS, - COMMAND_OVERRIDE_CHAR_MOVE_ANIM, - COMMAND_1627, - COMMAND_ENABLE_EMERGENCY_VEHICLES, - COMMAND_ADD_UNLOCKED_COSTUME, - COMMAND_CLEAR_MULTIPLAYER_SPLASH_SCREEN, - COMMAND_PRINT_WITH_2_NUMBERS_NOW_NO_BRIEF, - COMMAND_GET_OBJECT_ORIENTATION, - COMMAND_SET_OBJECT_ORIENTATION, - COMMAND_CHANGE_ONSCREEN_COUNTER_PREFIX, - COMMAND_STORE_PLAYER_OUTFIT, - COMMAND_DISPLAY_ONSCREEN_TIMER_WITH_NUMBER_AND_STRING, - COMMAND_SET_PLAYER_CURRENT_WEAPON_AMMO_IN_CLIP, - COMMAND_SET_CHAR_WAIT_STATE_REPEAT, - COMMAND_REGISTER_BEST_TIME_GOGO_FAGGIO, - COMMAND_LOCK_GARAGE, - COMMAND_IS_FINAL_GAME, - COMMAND_SET_ALLOWED_COLLISION, - COMMAND_REGISTER_GUARDIAN_ANGEL_LEVEL, - COMMAND_DISPLAY_ONSCREEN_TIMER_WITH_NUMBER_AND_2_STRINGS, - COMMAND_GET_PLAYER_STORED_WEAPON, - COMMAND_DISABLE_PAUSE_MENU, - COMMAND_IS_CHANNEL_PLAYING, - COMMAND_SET_CLOCK_EVENT_WARNING, - COMMAND_SET_EXTRA_COLOUR_LIGHT_DIRECTION, - COMMAND_SET_CHAR_CAN_BE_TARGETTED_BY_LEADER, - COMMAND_PRINT_HELP_NO_BRIEF, - COMMAND_PRINT_HELP_FOREVER_NO_BRIEF, - COMMAND_PRINT_HELP_ALWAYS_NO_BRIEF, - COMMAND_PRINT_HELP_FOREVER_ALWAYS_NO_BRIEF, - COMMAND_SET_CAR_IS_REWARD, - COMMAND_FREEZE_ALL_PLAYER_FOLLOWERS, +#elif (!defined GTA_PS2) + COMMAND_SET_ONSCREEN_COUNTER_FLASH_WHEN_FIRST_DISPLAYED, +#endif +#if (defined GTA_PC && !defined GTAVC_JP_PATCH || defined GTA_XBOX || defined SUPPORT_XBOX_SCRIPT || defined GTA_MOBILE || defined SUPPORT_MOBILE_SCRIPT) + COMMAND_SHUFFLE_CARD_DECKS, + COMMAND_FETCH_NEXT_CARD, + COMMAND_GET_OBJECT_VELOCITY, + COMMAND_IS_DEBUG_CAMERA_ON, + COMMAND_ADD_TO_OBJECT_ROTATION_VELOCITY, + COMMAND_SET_OBJECT_ROTATION_VELOCITY, + COMMAND_IS_OBJECT_STATIC, + COMMAND_GET_ANGLE_BETWEEN_2D_VECTORS, + COMMAND_DO_2D_RECTANGLES_COLLIDE, + COMMAND_GET_OBJECT_ROTATION_VELOCITY, + COMMAND_ADD_VELOCITY_RELATIVE_TO_OBJECT_VELOCITY, + COMMAND_GET_OBJECT_SPEED, +#endif +#if (defined GTA_XBOX || defined SUPPORT_XBOX_SCRIPT) + COMMAND_MARK_CUTSCENE_START, + COMMAND_MARK_CUTSCENE_END, + COMMAND_CUTSCENE_SCROLL, +#elif (defined GTA_MOBILE || defined SUPPORT_MOBILE_SCRIPT) + COMMAND_IS_MISSION_SKIP, + COMMAND_SET_IN_AMMUNATION, + COMMAND_DO_SAVE_GAME, + COMMAND_IS_RETRY, + COMMAND_DUMMY, + COMMAND_MARK_CUTSCENE_START, + COMMAND_MARK_CUTSCENE_END, + COMMAND_CUTSCENE_SCROLL, +#endif #ifdef USE_ADVANCED_SCRIPT_DEBUG_OUTPUT LAST_SCRIPT_COMMAND #endif @@ -1676,9 +1488,7 @@ enum eScriptArgument ARGTYPE_PED_HANDLE, ARGTYPE_VEHICLE_HANDLE, ARGTYPE_OBJECT_HANDLE, - ARGTYPE_ANDOR, - ARGTYPE_LIST, - ARGTYPE_FUNCTION + ARGTYPE_ANDOR }; struct tScriptCommandData diff --git a/src/control/TrafficLights.cpp b/src/control/TrafficLights.cpp index d8f211d..df0761a 100644 --- a/src/control/TrafficLights.cpp +++ b/src/control/TrafficLights.cpp @@ -114,32 +114,6 @@ CTrafficLights::DisplayActualLight(CEntity *ent) CBrightLights::RegisterOne(pos1, ent->GetUp(), ent->GetRight(), CVector(0.0f, 0.0f, 0.0f), id + BRIGHTLIGHT_TRAFFIC_GREEN); CBrightLights::RegisterOne(pos2, ent->GetUp(), -ent->GetRight(), CVector(0.0f, 0.0f, 0.0f), id + BRIGHTLIGHT_TRAFFIC_GREEN); - - // TODO(LCS): check coordinates - static const float top = -0.127f; - static const float bot = -0.539f; - static const float mid = bot + (top - bot) / 3.0f; - static const float left = 1.256f; - static const float right = 0.706f; - phase = CTrafficLights::LightForPeds(); - if (phase == PED_LIGHTS_DONT_WALK) { - CVector p0(2.7f, right, top); - CVector p1(2.7f, left, top); - CVector p2(2.7f, right, mid); - CVector p3(2.7f, left, mid); - CShinyTexts::RegisterOne(ent->GetMatrix() * p0, ent->GetMatrix() * p1, ent->GetMatrix() * p2, ent->GetMatrix() * p3, - 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, - SHINYTEXT_WALK, 255, 0, 0, 60.0f); - } - else if (phase == PED_LIGHTS_WALK || CTimer::GetTimeInMilliseconds() & 0x100) { - CVector p0(2.7f, right, mid); - CVector p1(2.7f, left, mid); - CVector p2(2.7f, right, bot); - CVector p3(2.7f, left, bot); - CShinyTexts::RegisterOne(ent->GetMatrix() * p0, ent->GetMatrix() * p1, ent->GetMatrix() * p2, ent->GetMatrix() * p3, - 1.0f, 0.5f, 0.0f, 0.5f, 1.0f, 1.0f, 0.0f, 1.0f, - SHINYTEXT_WALK, 255, 255, 255, 60.0f); - } } else if (MI_TRAFFICLIGHTS_VERTICAL == m) { CBaseModelInfo* mi = CModelInfo::GetModelInfo(ent->GetModelIndex()); diff --git a/src/core/AnimViewer.cpp b/src/core/AnimViewer.cpp index dc9b44c..562b9c1 100644 --- a/src/core/AnimViewer.cpp +++ b/src/core/AnimViewer.cpp @@ -81,7 +81,7 @@ CAnimViewer::Initialise(void) { CCollision::Init(); CWorld::Initialise(); mod_HandlingManager.Initialise(); - gpTempColModels->Initialise(); + CTempColModels::Initialise(); CAnimManager::Initialise(); CModelInfo::Initialise(); CParticle::Initialise(); diff --git a/src/core/Cam.cpp b/src/core/Cam.cpp index 4895ef6..fdfe227 100644 --- a/src/core/Cam.cpp +++ b/src/core/Cam.cpp @@ -121,7 +121,6 @@ CCam::Process(void) else TargetOrientation = CGeneral::GetATanOfXY(CamTargetEntity->GetForward().x, CamTargetEntity->GetForward().y); -/* LCS: removed CVector Fwd(0.0f, 0.0f, 0.0f); Fwd.x = CamTargetEntity->GetForward().x; Fwd.y = CamTargetEntity->GetForward().y; @@ -139,9 +138,6 @@ CCam::Process(void) else TargetSpeedVar = -Min(Sqrt(SQR(FwdSpeedX) + SQR(FwdSpeedY))/1.8f, 0.5f); SpeedVar = 0.895f*SpeedVar + 0.105*TargetSpeedVar; -*/ - SpeedVar = 0.0f; - TargetSpeedVar = 0.0f; }else{ if(CamTargetEntity == FindPlayerPed()){ // Some fancy smoothing of player position and speed diff --git a/src/core/Camera.cpp b/src/core/Camera.cpp index adb3e57..5b3f9aa 100644 --- a/src/core/Camera.cpp +++ b/src/core/Camera.cpp @@ -114,7 +114,6 @@ CCamera::Init(void) m_1rstPersonRunCloseToAWall = false; m_fPositionAlongSpline = 0.0f; m_bCameraJustRestored = false; - m_bFreezePedZoomSwitch = false; Cams[0].Init(); Cams[1].Init(); Cams[2].Init(); @@ -986,7 +985,7 @@ CCamera::CamControl(void) // Change user selected mode if(CPad::GetPad(0)->CycleCameraModeUpJustDown() && !CReplay::IsPlayingBack() && (m_bLookingAtPlayer || WhoIsInControlOfTheCamera == CAMCONTROL_OBBE) && - !m_WideScreenOn && !m_bFailedCullZoneTestPreviously && !m_bFirstPersonBeingUsed && !m_bFreezePedZoomSwitch){ + !m_WideScreenOn && !m_bFailedCullZoneTestPreviously && !m_bFirstPersonBeingUsed){ if(FrontEndMenuManager.m_ControlMethod == CONTROL_STANDARD){ if(PedZoomIndicator == CAM_ZOOM_3) PedZoomIndicator = CAM_ZOOM_1; @@ -3864,7 +3863,7 @@ CCamera::GetScreenFadeStatus(void) } -//--LCS: TODO + void CCamera::RenderMotionBlur(void) { @@ -3873,8 +3872,7 @@ CCamera::RenderMotionBlur(void) CMBlur::MotionBlurRender(m_pRwCamera, m_BlurRed, m_BlurGreen, m_BlurBlue, -// m_motionBlur, m_BlurType, m_imotionBlurAddAlpha); - m_motionBlur, m_BlurType, 32); // hack hack + m_motionBlur, m_BlurType, m_imotionBlurAddAlpha); } void diff --git a/src/core/Camera.h b/src/core/Camera.h index 9354e8e..538ff06 100644 --- a/src/core/Camera.h +++ b/src/core/Camera.h @@ -368,7 +368,6 @@ public: bool m_bVehicleSuspenHigh; bool m_bEnable1rstPersonCamCntrlsScript; bool m_bAllow1rstPersonWeaponsCamera; - bool m_bFreezePedZoomSwitch; bool m_bFailedCullZoneTestPreviously; bool m_FadeTargetIsSplashScreen; diff --git a/src/core/Clock.cpp b/src/core/Clock.cpp index 0aa841a..a329834 100644 --- a/src/core/Clock.cpp +++ b/src/core/Clock.cpp @@ -18,7 +18,6 @@ uint16 CClock::ms_Stored_nGameClockSeconds; uint32 CClock::ms_nMillisecondsPerGameMinute; uint32 CClock::ms_nLastClockTick; bool CClock::ms_bClockHasBeenStored; -float CClock::ms_EnvMapTimeMultiplicator; #ifndef MASTER bool gbFreezeTime; @@ -34,7 +33,6 @@ CClock::Initialise(uint32 scale) ms_nMillisecondsPerGameMinute = scale; ms_nLastClockTick = CTimer::GetTimeInMilliseconds(); ms_bClockHasBeenStored = false; - ms_EnvMapTimeMultiplicator = 1.0f; debug("CClock ready\n"); #ifndef MASTER VarConsole.Add("Time (hour of day)", &ms_nGameClockHours, 1, 0, 23, true); @@ -136,10 +134,3 @@ CClock::RestoreClock(void) ms_nGameClockMinutes = ms_Stored_nGameClockMinutes; ms_nGameClockSeconds = ms_Stored_nGameClockSeconds; } - -void -CClock::CalcEnvMapTimeMultiplicator(void) -{ - float nightness = Abs(ms_nGameClockHours/24.0f - 0.5f); - ms_EnvMapTimeMultiplicator = SQR(1.0f - nightness);; -} diff --git a/src/core/Clock.h b/src/core/Clock.h index 808e61f..a611cd5 100644 --- a/src/core/Clock.h +++ b/src/core/Clock.h @@ -12,7 +12,6 @@ public: static uint32 ms_nMillisecondsPerGameMinute; static uint32 ms_nLastClockTick; static bool ms_bClockHasBeenStored; - static float ms_EnvMapTimeMultiplicator; static void Initialise(uint32 scale); static void Update(void); @@ -22,8 +21,6 @@ public: static void StoreClock(void); static void RestoreClock(void); - static void CalcEnvMapTimeMultiplicator(void); - static uint8 GetHours(void) { return ms_nGameClockHours; } static uint8 GetMinutes(void) { return ms_nGameClockMinutes; } static int16 GetSeconds(void) { return ms_nGameClockSeconds; } diff --git a/src/core/FileLoader.cpp b/src/core/FileLoader.cpp index e5d13b2..bf01725 100644 --- a/src/core/FileLoader.cpp +++ b/src/core/FileLoader.cpp @@ -291,7 +291,7 @@ CFileLoader::LoadCollisionModel(uint8 *buf, CColModel &model, char *modelname) { int i; - model.boundingSphere.radius = Max(*(float*)(buf), 0.1f); + model.boundingSphere.radius = *(float*)(buf); model.boundingSphere.center.x = *(float*)(buf+4); model.boundingSphere.center.y = *(float*)(buf+8); model.boundingSphere.center.z = *(float*)(buf+12); @@ -304,13 +304,10 @@ CFileLoader::LoadCollisionModel(uint8 *buf, CColModel &model, char *modelname) model.numSpheres = *(int16*)(buf+40); buf += 44; if(model.numSpheres > 0){ - model.spheres = new CColSphere[model.numSpheres]; + model.spheres = (CColSphere*)RwMalloc(model.numSpheres*sizeof(CColSphere)); REGISTER_MEMPTR(&model.spheres); for(i = 0; i < model.numSpheres; i++){ - float radius = *(float*)buf; - if(radius > model.boundingSphere.radius) - model.boundingSphere.radius = radius + 0.01f; - model.spheres[i].Set(radius, *(CVector*)(buf+4), buf[16], buf[17]); + model.spheres[i].Set(*(float*)buf, *(CVector*)(buf+4), buf[16], buf[17]); buf += 20; } }else @@ -319,7 +316,7 @@ CFileLoader::LoadCollisionModel(uint8 *buf, CColModel &model, char *modelname) model.numLines = *(int16*)buf; buf += 4; if(model.numLines > 0){ - //model.lines = new CColLine[model.numLines];; + //model.lines = (CColLine*)RwMalloc(model.numLines*sizeof(CColLine)); REGISTER_MEMPTR(&model.lines); for(i = 0; i < model.numLines; i++){ //model.lines[i].Set(*(CVector*)buf, *(CVector*)(buf+12)); @@ -333,7 +330,7 @@ CFileLoader::LoadCollisionModel(uint8 *buf, CColModel &model, char *modelname) model.numBoxes = *(int16*)buf; buf += 4; if(model.numBoxes > 0){ - model.boxes = new CColBox[model.numBoxes]; + model.boxes = (CColBox*)RwMalloc(model.numBoxes*sizeof(CColBox)); REGISTER_MEMPTR(&model.boxes); for(i = 0; i < model.numBoxes; i++){ model.boxes[i].Set(*(CVector*)buf, *(CVector*)(buf+12), buf[24], buf[25]); @@ -345,7 +342,7 @@ CFileLoader::LoadCollisionModel(uint8 *buf, CColModel &model, char *modelname) int32 numVertices = *(int16*)buf; buf += 4; if(numVertices > 0){ - model.vertices = new CompressedVector[numVertices]; + model.vertices = (CompressedVector*)RwMalloc(numVertices*sizeof(CompressedVector)); REGISTER_MEMPTR(&model.vertices); for(i = 0; i < numVertices; i++){ model.vertices[i].Set(*(float*)buf, *(float*)(buf+4), *(float*)(buf+8)); @@ -363,64 +360,14 @@ CFileLoader::LoadCollisionModel(uint8 *buf, CColModel &model, char *modelname) model.numTriangles = *(int16*)buf; buf += 4; if(model.numTriangles > 0){ - model.triangles = new CColTriangle[model.numTriangles]; + model.triangles = (CColTriangle*)RwMalloc(model.numTriangles*sizeof(CColTriangle)); REGISTER_MEMPTR(&model.triangles); for(i = 0; i < model.numTriangles; i++){ model.triangles[i].Set(*(int32*)buf, *(int32*)(buf+4), *(int32*)(buf+8), buf[12]); buf += 16; - - // skip small triangles - CVector vA = model.vertices[model.triangles[i].a].Get(); - CVector vB = model.vertices[model.triangles[i].b].Get(); - CVector vC = model.vertices[model.triangles[i].c].Get(); - float area = CrossProduct(vA - vB, vA - vC).Magnitude(); - if(area < 0.001f || vA == vB || vA == vC || vB == vC){ - i--; - model.numTriangles--; - } } }else model.triangles = nil; - - SplitColTrianglesIntoSections(model); -} - -void -CFileLoader::SplitColTrianglesIntoSections(CColModel &model) -{ - if(model.triangles == nil || model.numTriangles == 0) - return; - - model.numTriBBoxes = 1; - model.triBBoxes = new CColTriBBox[1]; - model.triBBoxes[0].first = 0; - model.triBBoxes[0].last = model.numTriangles-1; - CVector v = model.vertices[model.triangles[0].a].Get(); - model.triBBoxes[0].Set(v, v); - - for(int i = 0; i < model.numTriangles; i++){ - CVector vA = model.vertices[model.triangles[i].a].Get(); - CVector vB = model.vertices[model.triangles[i].b].Get(); - CVector vC = model.vertices[model.triangles[i].c].Get(); - model.triBBoxes[0].min.x = Min(vA.x, model.triBBoxes[0].min.x); - model.triBBoxes[0].min.y = Min(vA.y, model.triBBoxes[0].min.y); - model.triBBoxes[0].min.z = Min(vA.z, model.triBBoxes[0].min.z); - model.triBBoxes[0].min.x = Min(vB.x, model.triBBoxes[0].min.x); - model.triBBoxes[0].min.y = Min(vB.y, model.triBBoxes[0].min.y); - model.triBBoxes[0].min.z = Min(vB.z, model.triBBoxes[0].min.z); - model.triBBoxes[0].min.x = Min(vC.x, model.triBBoxes[0].min.x); - model.triBBoxes[0].min.y = Min(vC.y, model.triBBoxes[0].min.y); - model.triBBoxes[0].min.z = Min(vC.z, model.triBBoxes[0].min.z); - model.triBBoxes[0].max.x = Max(vA.x, model.triBBoxes[0].max.x); - model.triBBoxes[0].max.y = Max(vA.y, model.triBBoxes[0].max.y); - model.triBBoxes[0].max.z = Max(vA.z, model.triBBoxes[0].max.z); - model.triBBoxes[0].max.x = Max(vB.x, model.triBBoxes[0].max.x); - model.triBBoxes[0].max.y = Max(vB.y, model.triBBoxes[0].max.y); - model.triBBoxes[0].max.z = Max(vB.z, model.triBBoxes[0].max.z); - model.triBBoxes[0].max.x = Max(vC.x, model.triBBoxes[0].max.x); - model.triBBoxes[0].max.y = Max(vC.y, model.triBBoxes[0].max.y); - model.triBBoxes[0].max.z = Max(vC.z, model.triBBoxes[0].max.z); - } } static void @@ -661,14 +608,11 @@ CFileLoader::LoadObjectTypes(const char *filename) int section; int pathIndex; int id, pathType; - //int minID, maxID; - - for(int i = 0; i < ARRAY_SIZE(m_sTempIdeData); i++) - m_sTempIdeData[i].id = -1; + int minID, maxID; section = NONE; - //minID = INT32_MAX; - //maxID = -1; + minID = INT32_MAX; + maxID = -1; pathIndex = -1; debug("Loading object types from %s...\n", filename); @@ -692,13 +636,13 @@ CFileLoader::LoadObjectTypes(const char *filename) }else switch(section){ case OBJS: id = LoadObject(line); - //if(id > maxID) maxID = id; - //if(id < minID) minID = id; + if(id > maxID) maxID = id; + if(id < minID) minID = id; break; case TOBJ: id = LoadTimeObject(line); - //if(id > maxID) maxID = id; - //if(id < minID) minID = id; + if(id > maxID) maxID = id; + if(id < minID) minID = id; break; case WEAP: LoadWeaponObject(line); @@ -735,10 +679,10 @@ CFileLoader::LoadObjectTypes(const char *filename) } CFileMgr::CloseFile(fd); - for(id = 0; id < MODELINFOSIZE; id++){ + for(id = minID; id <= maxID; id++){ CSimpleModelInfo *mi = (CSimpleModelInfo*)CModelInfo::GetModelInfo(id); if(mi && mi->IsBuilding()) - mi->SetupBigBuilding(); + mi->SetupBigBuilding(minID, maxID); } } @@ -771,13 +715,6 @@ CFileLoader::LoadObject(const char *line) if(sscanf(line, "%d %s %s %d", &id, model, txd, &numObjs) != 4) return 0; // game returns return value - for(int i = 0; i < ARRAY_SIZE(m_sTempIdeData); i++) - if(m_sTempIdeData[i].id == -1){ - m_sTempIdeData[i].id = id; - strcpy(m_sTempIdeData[i].name, model); - break; - } - switch(numObjs){ case 1: sscanf(line, "%d %s %s %d %f %d", @@ -826,13 +763,6 @@ CFileLoader::LoadTimeObject(const char *line) if(sscanf(line, "%d %s %s %d", &id, model, txd, &numObjs) != 4) return 0; // game returns return value - for(int i = 0; i < ARRAY_SIZE(m_sTempIdeData); i++) - if(m_sTempIdeData[i].id < 0){ - m_sTempIdeData[i].id = id; - strcpy(m_sTempIdeData[i].name, model); - break; - } - switch(numObjs){ case 1: sscanf(line, "%d %s %s %d %f %d %d %d", @@ -863,7 +793,7 @@ CFileLoader::LoadTimeObject(const char *line) mi->m_firstDamaged = damaged; mi->SetTimes(timeOn, timeOff); mi->SetTexDictionary(txd); - other = mi->FindOtherTimeModel(model); + other = mi->FindOtherTimeModel(); if(other) other->SetOtherTimeModel(id); MatchModelString(model, id); @@ -887,7 +817,7 @@ CFileLoader::LoadWeaponObject(const char *line) mi->m_lodDistances[0] = dist; mi->SetTexDictionary(txd); mi->SetAnimFile(animFile); - mi->SetColModel(&gpTempColModels->ms_colModelWeapon); + mi->SetColModel(&CTempColModels::ms_colModelWeapon); MatchModelString(model, id); return id; } @@ -903,7 +833,7 @@ CFileLoader::LoadClumpObject(const char *line) mi = CModelInfo::AddClumpModel(id); mi->SetModelName(model); mi->SetTexDictionary(txd); - mi->SetColModel(&gpTempColModels->ms_colModelBBox); + mi->SetColModel(&CTempColModels::ms_colModelBBox); } } @@ -915,15 +845,14 @@ CFileLoader::LoadVehicleObject(const char *line) char type[8], handlingId[16], gamename[32], animFile[16], vehclass[12]; uint32 frequency, comprules; int32 level, misc; - float wheelScale, normalSplay; + float wheelScale; CVehicleModelInfo *mi; char *p; - sscanf(line, "%d %s %s %s %s %s %s %s %d %d %x %d %f %f", + sscanf(line, "%d %s %s %s %s %s %s %s %d %d %x %d %f", &id, model, txd, type, handlingId, gamename, animFile, vehclass, - &frequency, &level, &comprules, &misc, &wheelScale, - &normalSplay); + &frequency, &level, &comprules, &misc, &wheelScale); mi = CModelInfo::AddVehicleModel(id); mi->SetModelName(model); @@ -943,8 +872,6 @@ CFileLoader::LoadVehicleObject(const char *line) mi->m_vehicleType = VEHICLE_TYPE_BOAT; }else if(strcmp(type, "train") == 0){ mi->m_vehicleType = VEHICLE_TYPE_TRAIN; - }else if(strcmp(type, "ferry") == 0){ - mi->m_vehicleType = VEHICLE_TYPE_FERRY; }else if(strcmp(type, "heli") == 0){ mi->m_vehicleType = VEHICLE_TYPE_HELI; }else if(strcmp(type, "plane") == 0){ @@ -1010,7 +937,7 @@ CFileLoader::LoadPedObject(const char *line) mi->SetModelName(model); mi->SetTexDictionary(txd); mi->SetAnimFile(animFile); - mi->SetColModel(&gpTempColModels->ms_colModelPed1); + mi->SetColModel(&CTempColModels::ms_colModelPed1); mi->m_pedType = CPedType::FindPedType(pedType); mi->m_pedStatType = CPedStats::GetPedStatType(pedStats); for(animGroupId = 0; animGroupId < NUM_ANIM_ASSOC_GROUPS; animGroupId++) diff --git a/src/core/FileLoader.h b/src/core/FileLoader.h index 3a7d43a..077e7bd 100644 --- a/src/core/FileLoader.h +++ b/src/core/FileLoader.h @@ -11,7 +11,6 @@ public: static bool LoadCollisionFileFirstTime(uint8 *buffer, uint32 size, uint8 colSlot); static bool LoadCollisionFile(uint8 *buffer, uint32 size, uint8 colSlot); static void LoadCollisionModel(uint8 *buf, struct CColModel &model, char *name); - static void SplitColTrianglesIntoSections(CColModel &model); static void LoadModelFile(const char *filename); static RpAtomic *FindRelatedModelInfoCB(RpAtomic *atomic, void *data); static void LoadClumpFile(const char *filename); diff --git a/src/core/Frontend.cpp b/src/core/Frontend.cpp index e641906..d6c2649 100644 --- a/src/core/Frontend.cpp +++ b/src/core/Frontend.cpp @@ -36,16 +36,15 @@ #include "User.h" #include "sampman.h" -// --LCS: changed a bit to have lcs feel, needs more work // Similar story to Hud.cpp: // Game has colors inlined in code. // For easier modification we collect them here: -const CRGBA LABEL_COLOR(115, 173, 216, 255); +const CRGBA LABEL_COLOR(255, 150, 225, 255); const CRGBA SELECTIONBORDER_COLOR(25, 130, 70, 255); const CRGBA MENUOPTION_COLOR = LABEL_COLOR; -const CRGBA SELECTEDMENUOPTION_COLOR(255, 255, 255, 255); -const CRGBA HEADER_COLOR(197, 0, 0, 255); -const CRGBA DARKMENUOPTION_COLOR(115/2, 173/2, 216 / 2, 255); +const CRGBA SELECTEDMENUOPTION_COLOR = LABEL_COLOR; +const CRGBA HEADER_COLOR = LABEL_COLOR; +const CRGBA DARKMENUOPTION_COLOR(195, 90, 165, 255); const CRGBA SLIDERON_COLOR(97, 194, 247, 255); const CRGBA SLIDEROFF_COLOR(27, 89, 130, 255); const CRGBA LIST_BACKGROUND_COLOR(49, 101, 148, 130); @@ -54,19 +53,6 @@ const CRGBA RADIO_SELECTOR_COLOR = SLIDEROFF_COLOR; const CRGBA INACTIVE_RADIO_COLOR(100, 100, 255, 100); const CRGBA SCROLLBAR_COLOR = LABEL_COLOR; -#if 0 -// Mobile -#define DEFAULT_BRIGHTNESS 0x150 -#define MIN_BRIGHTNESS 180 -#define MAX_BRIGHTNESS 700 -#else -// PS2, also PSP probably -// 8 bars (32 step) -#define DEFAULT_BRIGHTNESS 0x120 -#define MIN_BRIGHTNESS 0x80 -#define MAX_BRIGHTNESS 0x180 -#endif - #define MAP_MIN_SIZE 162.f #define MAP_SIZE_TO_ALLOW_X_MOVE 297.f @@ -201,7 +187,7 @@ wchar* CMenuManager::m_pDialogText = nil; #endif #define SET_FONT_FOR_MENU_HEADER \ - CFont::SetRightJustifyOff(); \ + CFont::SetRightJustifyOn(); \ CFont::SetFontStyle(FONT_LOCALE(FONT_HEADING)); \ CFont::SetScale(MENU_X(MENUHEADER_WIDTH), MENU_Y(MENUHEADER_HEIGHT)); \ CFont::SetDropShadowPosition(0); @@ -485,7 +471,7 @@ CMenuManager::CMenuManager() m_PrefsMusicVolume = 49; m_PrefsRadioStation = 0; m_PrefsStereoMono = 1; - m_PrefsBrightness = DEFAULT_BRIGHTNESS; + m_PrefsBrightness = 256; m_PrefsLOD = CRenderer::ms_lodDistScale; m_KeyPressedCode = -1; m_bFrontEnd_ReloadObrTxtGxt = false; @@ -710,8 +696,8 @@ CMenuManager::CheckSliderMovement(int value) { switch (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action) { case MENUACTION_BRIGHTNESS: - m_PrefsBrightness += value * 32.0f; - m_PrefsBrightness = clamp(m_PrefsBrightness, MIN_BRIGHTNESS, MAX_BRIGHTNESS); + m_PrefsBrightness += value * 24.19f; + m_PrefsBrightness = clamp(m_PrefsBrightness, 0, 384); break; case MENUACTION_DRAWDIST: if(value > 0) @@ -931,14 +917,14 @@ CMenuManager::DrawStandardMenus(bool activeScreen) #endif switch (m_nCurrScreen) { - /*case MENUPAGE_CHOOSE_LOAD_SLOT: + case MENUPAGE_CHOOSE_LOAD_SLOT: case MENUPAGE_CHOOSE_DELETE_SLOT: case MENUPAGE_CHOOSE_SAVE_SLOT: CSprite2d::Draw2DPolygon(MENU_X_LEFT_ALIGNED(38.0f), MENU_Y(85.0f), MENU_X_LEFT_ALIGNED(615.0f), MENU_Y(75.0f), MENU_X_LEFT_ALIGNED(30.0f), MENU_Y(320.0f), MENU_X_LEFT_ALIGNED(605.0f), MENU_Y(330.0f), CRGBA(LIST_BACKGROUND_COLOR.r, LIST_BACKGROUND_COLOR.g, LIST_BACKGROUND_COLOR.b, FadeIn(LIST_BACKGROUND_COLOR.a))); - break;*/ + break; case MENUPAGE_SOUND_SETTINGS: PrintRadioSelector(); break; @@ -954,11 +940,11 @@ CMenuManager::DrawStandardMenus(bool activeScreen) if (aScreens[m_nCurrScreen].m_ScreenName[0] != '\0') { SET_FONT_FOR_MENU_HEADER - //CFont::SetColor(CRGBA(30, 30, 30, FadeIn(255))); - //CFont::PrintString(SCREEN_STRETCH_X(MENUHEADER_POS_X) - MENU_X(7.f), SCREEN_SCALE_Y(MENUHEADER_POS_Y + 7.f), TheText.Get(aScreens[m_nCurrScreen].m_ScreenName)); + CFont::SetColor(CRGBA(30, 30, 30, FadeIn(255))); + CFont::PrintString(SCREEN_STRETCH_FROM_RIGHT(MENUHEADER_POS_X) - MENU_X(7.f), SCREEN_SCALE_Y(MENUHEADER_POS_Y + 7.f), TheText.Get(aScreens[m_nCurrScreen].m_ScreenName)); CFont::SetColor(CRGBA(HEADER_COLOR.r, HEADER_COLOR.g, HEADER_COLOR.b, FadeIn(255))); - CFont::PrintString(SCREEN_STRETCH_X(MENUHEADER_POS_X), SCREEN_SCALE_Y(MENUHEADER_POS_Y), TheText.Get(aScreens[m_nCurrScreen].m_ScreenName)); + CFont::PrintString(SCREEN_STRETCH_FROM_RIGHT(MENUHEADER_POS_X), SCREEN_SCALE_Y(MENUHEADER_POS_Y), TheText.Get(aScreens[m_nCurrScreen].m_ScreenName)); } // Label @@ -1034,21 +1020,18 @@ CMenuManager::DrawStandardMenus(bool activeScreen) #endif wchar* rightText = nil; wchar* leftText; - /*if (aScreens[m_nCurrScreen].m_aEntries[i].m_SaveSlot >= SAVESLOT_1 && aScreens[m_nCurrScreen].m_aEntries[i].m_SaveSlot <= SAVESLOT_8) { + if (aScreens[m_nCurrScreen].m_aEntries[i].m_SaveSlot >= SAVESLOT_1 && aScreens[m_nCurrScreen].m_aEntries[i].m_SaveSlot <= SAVESLOT_8) { CFont::SetColor(CRGBA(0, 0, 0, FadeIn(255))); CFont::SetFontStyle(FONT_LOCALE(FONT_STANDARD)); CFont::SetScale(MENU_X(MEDIUMTEXT_X_SCALE), MENU_Y(MEDIUMTEXT_Y_SCALE)); CFont::SetDropShadowPosition(0); - } else {*/ - CFont::SetFontStyle(FONT_LOCALE(FONT_STANDARD)); + } else { + CFont::SetFontStyle(FONT_LOCALE(FONT_HEADING)); CFont::SetScale(MENU_X(BIGTEXT_X_SCALE), MENU_Y(BIGTEXT_Y_SCALE)); CFont::SetDropShadowPosition(2); CFont::SetDropColor(CRGBA(0, 0, 0, FadeIn(255))); - if (i == m_nCurrOption && itemsAreSelectable) - CFont::SetColor(CRGBA(SELECTEDMENUOPTION_COLOR.r, SELECTEDMENUOPTION_COLOR.g, SELECTEDMENUOPTION_COLOR.b, FadeIn(255))); - else - CFont::SetColor(CRGBA(MENUOPTION_COLOR.r, MENUOPTION_COLOR.g, MENUOPTION_COLOR.b, FadeIn(255))); - //} + CFont::SetColor(CRGBA(MENUOPTION_COLOR.r, MENUOPTION_COLOR.g, MENUOPTION_COLOR.b, FadeIn(255))); + } if (aScreens[m_nCurrScreen].m_aEntries[i].m_Align == MENUALIGN_LEFT) { CFont::SetCentreOff(); CFont::SetRightJustifyOff(); @@ -1404,7 +1387,7 @@ CMenuManager::DrawStandardMenus(bool activeScreen) // Actually bottomRight and bottomLeft should be exchanged here(although this is original code). // So this shows us either R* didn't use same struct for menu BG and highlight, or they just kept fields as x1,y1 etc. Yikes. - /*if (m_nOptionHighlightTransitionBlend == 0) { + if (m_nOptionHighlightTransitionBlend == 0) { if (m_firstStartCounter == 255 && m_nMenuFadeAlpha == 255 && !bMenuChangeOngoing) { CSprite2d::Draw2DPolygon(MENU_X_LEFT_ALIGNED(menuOptionHighlight.topLeft_x), MENU_Y(menuOptionHighlight.topLeft_y), MENU_X_LEFT_ALIGNED(menuOptionHighlight.topRight_x), MENU_Y(menuOptionHighlight.topRight_y), @@ -1440,7 +1423,7 @@ CMenuManager::DrawStandardMenus(bool activeScreen) MENU_X_LEFT_ALIGNED(menuOptionHighlight.bottomRight_x), MENU_Y(menuOptionHighlight.bottomRight_y), MENU_X_LEFT_ALIGNED(menuOptionHighlight.bottomLeft_x), MENU_Y(menuOptionHighlight.bottomLeft_y), SELECTIONBORDER_COLOR); } - }*/ + } static PauseModeTime lastBlendChange = 0; if (m_nOptionHighlightTransitionBlend <= 255) { @@ -1470,7 +1453,7 @@ CMenuManager::DrawStandardMenus(bool activeScreen) CFont::SetFontStyle(FONT_LOCALE(FONT_STANDARD)); CFont::SetScale(MENU_X(MEDIUMTEXT_X_SCALE), MENU_Y(MEDIUMTEXT_Y_SCALE)); } else { - CFont::SetFontStyle(FONT_LOCALE(FONT_STANDARD)); + CFont::SetFontStyle(FONT_LOCALE(FONT_HEADING)); CFont::SetScale(MENU_X(BIGTEXT_X_SCALE), MENU_Y(BIGTEXT_Y_SCALE)); } CFont::PrintString(MENU_X_LEFT_ALIGNED(DEFAULT_SCREEN_WIDTH - RIGHT_ALIGNED_TEXT_RIGHT_MARGIN(xMargin)), MENU_Y(aScreens[m_nCurrScreen].m_aEntries[i].m_Y MINUS_SCROLL_OFFSET), rightText); @@ -1521,7 +1504,7 @@ CMenuManager::DrawStandardMenus(bool activeScreen) int lastActiveBarX; switch (aScreens[m_nCurrScreen].m_aEntries[i].m_Action) { case MENUACTION_BRIGHTNESS: - ProcessSlider((float)(m_PrefsBrightness - MIN_BRIGHTNESS) / (MAX_BRIGHTNESS - MIN_BRIGHTNESS), 70.0f, HOVEROPTION_INCREASE_BRIGHTNESS, HOVEROPTION_DECREASE_BRIGHTNESS, SCREEN_WIDTH, true); + ProcessSlider(m_PrefsBrightness / 384.0f, 70.0f, HOVEROPTION_INCREASE_BRIGHTNESS, HOVEROPTION_DECREASE_BRIGHTNESS, SCREEN_WIDTH, true); break; case MENUACTION_DRAWDIST: ProcessSlider((m_PrefsLOD - 0.925f) / 0.875f, 99.0f, HOVEROPTION_INCREASE_DRAWDIST, HOVEROPTION_DECREASE_DRAWDIST, SCREEN_WIDTH, true); @@ -2053,18 +2036,18 @@ CMenuManager::DrawControllerSetupScreen() // Shadow CFont::SetColor(CRGBA(30, 30, 30, FadeIn(255))); - //if (m_ControlMethod == CONTROL_STANDARD) - // CFont::PrintString(SCREEN_STRETCH_X(MENUHEADER_POS_X) - MENU_X(7.f), SCREEN_SCALE_Y(MENUHEADER_POS_Y + 7.f), TheText.Get("FET_STI")); - //else if (m_ControlMethod == CONTROL_CLASSIC) - // CFont::PrintString(SCREEN_STRETCH_X(MENUHEADER_POS_X) - MENU_X(7.f), SCREEN_SCALE_Y(MENUHEADER_POS_Y + 7.f), TheText.Get("FET_CTI")); + if (m_ControlMethod == CONTROL_STANDARD) + CFont::PrintString(SCREEN_STRETCH_FROM_RIGHT(MENUHEADER_POS_X) - MENU_X(7.f), SCREEN_SCALE_Y(MENUHEADER_POS_Y + 7.f), TheText.Get("FET_STI")); + else if (m_ControlMethod == CONTROL_CLASSIC) + CFont::PrintString(SCREEN_STRETCH_FROM_RIGHT(MENUHEADER_POS_X) - MENU_X(7.f), SCREEN_SCALE_Y(MENUHEADER_POS_Y + 7.f), TheText.Get("FET_CTI")); // Real header CFont::SetColor(CRGBA(HEADER_COLOR.r, HEADER_COLOR.g, HEADER_COLOR.b, FadeIn(255))); if (m_ControlMethod == CONTROL_STANDARD) - CFont::PrintString(SCREEN_STRETCH_X(MENUHEADER_POS_X), SCREEN_SCALE_Y(MENUHEADER_POS_Y), TheText.Get("FET_STI")); + CFont::PrintString(SCREEN_STRETCH_FROM_RIGHT(MENUHEADER_POS_X), SCREEN_SCALE_Y(MENUHEADER_POS_Y), TheText.Get("FET_STI")); else if (m_ControlMethod == CONTROL_CLASSIC) - CFont::PrintString(SCREEN_STRETCH_X(MENUHEADER_POS_X), SCREEN_SCALE_Y(MENUHEADER_POS_Y), TheText.Get("FET_CTI")); + CFont::PrintString(SCREEN_STRETCH_FROM_RIGHT(MENUHEADER_POS_X), SCREEN_SCALE_Y(MENUHEADER_POS_Y), TheText.Get("FET_CTI")); wchar *actionTexts[33]; actionTexts[0] = TheText.Get("FEC_FIR"); @@ -2217,7 +2200,7 @@ CMenuManager::DrawControllerSetupScreen() } // Back button and it's shadow - CFont::SetFontStyle(FONT_LOCALE(FONT_STANDARD)); + CFont::SetFontStyle(FONT_LOCALE(FONT_HEADING)); CFont::SetScale(MENU_X(BIGTEXT_X_SCALE), MENU_Y(BIGTEXT_Y_SCALE)); CFont::SetRightJustifyOn(); CFont::SetDropShadowPosition(2); @@ -2276,7 +2259,7 @@ CMenuManager::DrawBackground(bool transitionCall) PrintMap(); // Left border - /*CSprite2d::Draw2DPolygon(SCREEN_STRETCH_X(menuBg.bottomLeft_x), SCREEN_STRETCH_Y(menuBg.bottomLeft_y), 0.0f, SCREEN_HEIGHT, + CSprite2d::Draw2DPolygon(SCREEN_STRETCH_X(menuBg.bottomLeft_x), SCREEN_STRETCH_Y(menuBg.bottomLeft_y), 0.0f, SCREEN_HEIGHT, SCREEN_STRETCH_X(menuBg.topLeft_x), SCREEN_STRETCH_Y(menuBg.topLeft_y), 0.0f, 0.0f, CRGBA(0, 0, 0, 255)); // Top border @@ -2289,7 +2272,7 @@ CMenuManager::DrawBackground(bool transitionCall) // Right border CSprite2d::Draw2DPolygon(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_STRETCH_X(menuBg.bottomRight_x), SCREEN_STRETCH_Y(menuBg.bottomRight_y), - SCREEN_WIDTH, 0.0f, SCREEN_STRETCH_X(menuBg.topRight_x), SCREEN_STRETCH_Y(menuBg.topRight_y), CRGBA(0, 0, 0, 255));*/ + SCREEN_WIDTH, 0.0f, SCREEN_STRETCH_X(menuBg.topRight_x), SCREEN_STRETCH_Y(menuBg.topRight_y), CRGBA(0, 0, 0, 255)); } else { m_nMenuFadeAlpha = 255; m_firstStartCounter = 255; @@ -2298,7 +2281,7 @@ CMenuManager::DrawBackground(bool transitionCall) PrintMap(); // Left border - /*CSprite2d::Draw2DPolygon(SCREEN_STRETCH_X(menuBg.bottomLeft_x), SCREEN_STRETCH_Y(menuBg.bottomLeft_y), 0.0f, SCREEN_HEIGHT, + CSprite2d::Draw2DPolygon(SCREEN_STRETCH_X(menuBg.bottomLeft_x), SCREEN_STRETCH_Y(menuBg.bottomLeft_y), 0.0f, SCREEN_HEIGHT, SCREEN_STRETCH_X(menuBg.topLeft_x), SCREEN_STRETCH_Y(menuBg.topLeft_y), 0.0f, 0.0f, CRGBA(0, 0, 0, 255)); // Top border @@ -2311,7 +2294,7 @@ CMenuManager::DrawBackground(bool transitionCall) // Right border CSprite2d::Draw2DPolygon(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_STRETCH_X(menuBg.bottomRight_x), SCREEN_STRETCH_Y(menuBg.bottomRight_y), - SCREEN_WIDTH, 0.0f, SCREEN_STRETCH_X(menuBg.topRight_x), SCREEN_STRETCH_Y(menuBg.topRight_y), CRGBA(0, 0, 0, 255));*/ + SCREEN_WIDTH, 0.0f, SCREEN_STRETCH_X(menuBg.topRight_x), SCREEN_STRETCH_Y(menuBg.topRight_y), CRGBA(0, 0, 0, 255)); } } else { menuBg.SaveCurrentCoors(); @@ -2403,9 +2386,9 @@ CMenuManager::DrawBackground(bool transitionCall) || forceFadeInCounter > 30 #endif ) { - m_nMenuFadeAlpha += 50; + m_nMenuFadeAlpha += 20; if (m_firstStartCounter < 255) { - m_firstStartCounter = Min(m_firstStartCounter + 50, 255); + m_firstStartCounter = Min(m_firstStartCounter + 20, 255); } LastFade = CTimer::GetTimeInMillisecondsPauseMode(); } @@ -2457,12 +2440,12 @@ CMenuManager::DrawBackground(bool transitionCall) CFont::DrawFonts(); SetFrontEndRenderStates(); - //if (m_nCurrScreen != MENUPAGE_OUTRO) - // if (m_firstStartCounter == 255) { - // m_aFrontEndSprites[MENUSPRITE_VCLOGO].Draw(CRect(SCREEN_STRETCH_X(27.0f), MENU_Y(8.0f), SCREEN_STRETCH_X(27.0f) + MENU_X(130.f), MENU_Y(138.0f)), CRGBA(255, 255, 255, 255)); - // } else { - // m_aFrontEndSprites[MENUSPRITE_VCLOGO].Draw(CRect(SCREEN_STRETCH_X(27.0f), MENU_Y(8.0f), SCREEN_STRETCH_X(27.0f) + MENU_X(130.f), MENU_Y(138.0f)), CRGBA(255, 255, 255, FadeIn(255))); - // } + if (m_nCurrScreen != MENUPAGE_OUTRO) + if (m_firstStartCounter == 255) { + m_aFrontEndSprites[MENUSPRITE_VCLOGO].Draw(CRect(SCREEN_STRETCH_X(27.0f), MENU_Y(8.0f), SCREEN_STRETCH_X(27.0f) + MENU_X(130.f), MENU_Y(138.0f)), CRGBA(255, 255, 255, 255)); + } else { + m_aFrontEndSprites[MENUSPRITE_VCLOGO].Draw(CRect(SCREEN_STRETCH_X(27.0f), MENU_Y(8.0f), SCREEN_STRETCH_X(27.0f) + MENU_X(130.f), MENU_Y(138.0f)), CRGBA(255, 255, 255, FadeIn(255))); + } if (m_ShowEmptyBindingError) { static PauseModeTime lastBindingError = CTimer::GetTimeInMillisecondsPauseMode(); @@ -2581,11 +2564,11 @@ CMenuManager::DrawPlayerSetupScreen(bool activeScreen) MENU_X_RIGHT_ALIGNED(PLAYERSETUP_LIST_RIGHT), SCREEN_SCALE_FROM_BOTTOM(PLAYERSETUP_LIST_BOTTOM)), CRGBA(LIST_BACKGROUND_COLOR.r, LIST_BACKGROUND_COLOR.g, LIST_BACKGROUND_COLOR.b, FadeIn(LIST_BACKGROUND_COLOR.a))); SET_FONT_FOR_MENU_HEADER - //CFont::SetColor(CRGBA(30, 30, 30, FadeIn(255))); - //CFont::PrintString(SCREEN_STRETCH_X(MENUHEADER_POS_X) - MENU_X(7.f), SCREEN_SCALE_Y(MENUHEADER_POS_Y + 7.f), TheText.Get("FET_PS")); + CFont::SetColor(CRGBA(30, 30, 30, FadeIn(255))); + CFont::PrintString(SCREEN_STRETCH_FROM_RIGHT(MENUHEADER_POS_X) - MENU_X(7.f), SCREEN_SCALE_Y(MENUHEADER_POS_Y + 7.f), TheText.Get("FET_PS")); CFont::SetColor(CRGBA(HEADER_COLOR.r, HEADER_COLOR.g, HEADER_COLOR.b, FadeIn(255))); - CFont::PrintString(SCREEN_STRETCH_X(MENUHEADER_POS_X), SCREEN_SCALE_Y(MENUHEADER_POS_Y), TheText.Get("FET_PS")); + CFont::PrintString(SCREEN_STRETCH_FROM_RIGHT(MENUHEADER_POS_X), SCREEN_SCALE_Y(MENUHEADER_POS_Y), TheText.Get("FET_PS")); // Header (Skin - Date) if (m_nCurrExLayer == HOVEROPTION_LIST) { @@ -2765,7 +2748,7 @@ CMenuManager::DrawPlayerSetupScreen(bool activeScreen) // Big apply button if (strcmp(m_aSkinName, m_PrefsSkinFile) != 0) { - CFont::SetFontStyle(FONT_LOCALE(FONT_STANDARD)); + CFont::SetFontStyle(FONT_LOCALE(FONT_HEADING)); switch (m_PrefsLanguage) { case LANGUAGE_FRENCH: CFont::SetScale(MENU_X(1.1f), MENU_Y(1.9f)); @@ -2785,7 +2768,7 @@ CMenuManager::DrawPlayerSetupScreen(bool activeScreen) CFont::SetRightJustifyOff(); CFont::PrintString(MENU_X_LEFT_ALIGNED(24.0f), MENU_Y(220.0f), TheText.Get("FET_APP")); } - CFont::SetFontStyle(FONT_LOCALE(FONT_STANDARD)); + CFont::SetFontStyle(FONT_LOCALE(FONT_HEADING)); CFont::SetScale(MENU_X(BIGTEXT_X_SCALE), MENU_Y(BIGTEXT_Y_SCALE)); @@ -2857,7 +2840,7 @@ CMenuManager::DrawPlayerSetupScreen(bool activeScreen) m_nHoverOption = HOVEROPTION_NOT_HOVERING; } } - CFont::SetFontStyle(FONT_LOCALE(FONT_STANDARD)); + CFont::SetFontStyle(FONT_LOCALE(FONT_HEADING)); CFont::SetScale(MENU_X(BIGTEXT_X_SCALE), MENU_Y(BIGTEXT_Y_SCALE)); CFont::SetRightJustifyOn(); CFont::SetColor(CRGBA(MENUOPTION_COLOR.r, MENUOPTION_COLOR.g, MENUOPTION_COLOR.b, FadeIn(255))); @@ -3114,11 +3097,10 @@ CMenuManager::LoadSettings() #ifdef LOAD_INI_SETTINGS if (LoadINISettings()) { LoadINIControllerSettings(); - } else { - // no re3.ini, create it - SaveINISettings(); - SaveINIControllerSettings(); } + // if no reVC.ini, create it, or update it with new values + SaveINISettings(); + SaveINIControllerSettings(); #endif #ifdef FIX_BUGS @@ -3291,7 +3273,7 @@ CMenuManager::SmallMessageScreen(const char* text) void CMenuManager::PrintBriefs() { - CFont::SetColor(CRGBA(255, 255, 255, FadeIn(255))); + CFont::SetColor(CRGBA(0, 0, 0, FadeIn(255))); CFont::SetRightJustifyOff(); CFont::SetFontStyle(FONT_LOCALE(FONT_STANDARD)); CFont::SetScale(MENU_X(MEDIUMTEXT_X_SCALE), MENU_Y(MEDIUMTEXT_Y_SCALE)); @@ -3447,9 +3429,9 @@ CMenuManager::Process(void) #ifdef XBOX_MESSAGE_SCREEN ProcessDialogTimer(); #endif - // tmp hack to get saving to work - //if (TheCamera.GetScreenFadeStatus() != FADE_0) - // return; + + if (TheCamera.GetScreenFadeStatus() != FADE_0) + return; InitialiseChangedLanguageSettings(); @@ -4756,8 +4738,7 @@ CMenuManager::ProcessUserInput(uint8 goDown, uint8 goUp, uint8 optionSelected, u break; case MENUACTION_CANCELGAME: DMAudio.Service(); - RsEventHandler(rsQUITAPP, nil); - //SwitchToNewScreen(MENUPAGE_OUTRO); + SwitchToNewScreen(MENUPAGE_OUTRO); break; case MENUACTION_RESUME: #ifdef LEGACY_MENU_OPTIONS @@ -4829,7 +4810,7 @@ CMenuManager::ProcessUserInput(uint8 goDown, uint8 goUp, uint8 optionSelected, u DMAudio.PlayFrontEndTrack(m_PrefsRadioStation, 1); SaveSettings(); } else if (m_nCurrScreen == MENUPAGE_DISPLAY_SETTINGS) { - m_PrefsBrightness = DEFAULT_BRIGHTNESS; + m_PrefsBrightness = 256; m_PrefsLOD = 1.2f; #ifdef LEGACY_MENU_OPTIONS m_PrefsVsync = true; @@ -5687,7 +5668,7 @@ CMenuManager::DrawQuitGameScreen(void) static CSprite2d *splash = nil; if (splash == nil) - splash = LoadSplash("sceelee"); + splash = LoadSplash("OUTRO"); m_aFrontEndSprites[MENUSPRITE_VCLOGO].Draw(CRect(SCREEN_STRETCH_X(28.0f), MENU_Y(8.0f), SCREEN_STRETCH_X(27.0f) + MENU_X(130.f), MENU_Y(138.0f)), CRGBA(255, 255, 255, 255 - alpha)); diff --git a/src/core/Game.cpp b/src/core/Game.cpp index edd4d7c..43bd3d1 100644 --- a/src/core/Game.cpp +++ b/src/core/Game.cpp @@ -316,7 +316,7 @@ bool CGame::InitialiseOnceAfterRW(void) { TheText.Load(); CTimer::Initialise(); - gpTempColModels->Initialise(); + CTempColModels::Initialise(); mod_HandlingManager.Initialise(); CSurfaceTable::Initialise("DATA\\SURFACE.DAT"); CPedStats::Initialise(); @@ -366,16 +366,13 @@ bool CGame::Initialise(const char* datFile) CPools::Initialise(); - if(gMakeResources) - CVehicleModelInfo::Load(nil); - #ifndef GTA_PS2 CIniFile::LoadIniFile(); #endif #ifdef USE_TEXTURE_POOL _TexturePoolsUnknown(false); #endif - currLevel = LEVEL_INDUSTRIAL; + currLevel = LEVEL_BEACH; currArea = AREA_MAIN_MAP; PUSH_MEMID(MEMID_TEXTURES); @@ -446,7 +443,7 @@ bool CGame::Initialise(const char* datFile) CdStreamAddImage("MODELS\\GTA3.IMG"); -// CFileLoader::LoadLevel("DATA\\DEFAULT.DAT"); + CFileLoader::LoadLevel("DATA\\DEFAULT.DAT"); CFileLoader::LoadLevel(datFile); LoadingScreen("Loading the Game", "Add Particles", nil); @@ -589,7 +586,7 @@ bool CGame::ShutDown(void) CPlane::Shutdown(); CTrain::Shutdown(); CScriptPaths::Shutdown(); - //CWaterCreatures::RemoveAll(); + CWaterCreatures::RemoveAll(); CSpecialFX::Shutdown(); CGarages::Shutdown(); CMovingThings::Shutdown(); @@ -663,9 +660,8 @@ void CGame::ReInitGameObjectVariables(void) CDraw::SetFOV(120.0f); CDraw::ms_fLODDistance = 500.0f; CStreaming::RequestBigBuildings(LEVEL_GENERIC); - CStreaming::RemoveIslandsNotUsed(LEVEL_INDUSTRIAL); - CStreaming::RemoveIslandsNotUsed(LEVEL_COMMERCIAL); - CStreaming::RemoveIslandsNotUsed(LEVEL_SUBURBAN); + CStreaming::RemoveIslandsNotUsed(LEVEL_BEACH); + CStreaming::RemoveIslandsNotUsed(LEVEL_MAINLAND); CStreaming::LoadAllRequestedModels(false); currArea = AREA_MAIN_MAP; CPed::Initialise(); @@ -751,7 +747,7 @@ void CGame::ShutDownForRestart(void) CRadar::RemoveRadarSections(); FrontEndMenuManager.UnloadTextures(); CParticleObject::RemoveAllExpireableParticleObjects(); - //CWaterCreatures::RemoveAll(); + CWaterCreatures::RemoveAll(); CSetPieces::Init(); CPedType::Shutdown(); CSpecialFX::Shutdown(); @@ -856,9 +852,9 @@ void CGame::Process(void) gameProcessPirateCheck = 2; } #endif - //uint32 startTime = CTimer::GetCurrentTimeInCycles() / CTimer::GetCyclesPerMillisecond(); + uint32 startTime = CTimer::GetCurrentTimeInCycles() / CTimer::GetCyclesPerMillisecond(); CStreaming::Update(); - //uint32 processTime = CTimer::GetCurrentTimeInCycles() / CTimer::GetCyclesPerMillisecond() - startTime; + uint32 processTime = CTimer::GetCurrentTimeInCycles() / CTimer::GetCyclesPerMillisecond() - startTime; CWindModifiers::Number = 0; if (!CTimer::GetIsPaused()) { @@ -897,20 +893,20 @@ void CGame::Process(void) CEventList::Update(); CParticle::Update(); gFireManager.Update(); - //if (processTime >= 2) { - // CPopulation::Update(false); - //} else { - // uint32 startTime = CTimer::GetCurrentTimeInCycles() / CTimer::GetCyclesPerMillisecond(); + if (processTime >= 2) { + CPopulation::Update(false); + } else { + uint32 startTime = CTimer::GetCurrentTimeInCycles() / CTimer::GetCyclesPerMillisecond(); CPopulation::Update(true); - // processTime = CTimer::GetCurrentTimeInCycles() / CTimer::GetCyclesPerMillisecond() - startTime; - //} + processTime = CTimer::GetCurrentTimeInCycles() / CTimer::GetCyclesPerMillisecond() - startTime; + } CWeapon::UpdateWeapons(); if (!CCutsceneMgr::IsRunning()) CTheCarGenerators::Process(); if (!CReplay::IsPlayingBack()) CCranes::UpdateCranes(); CClouds::Update(); - //CMovingThings::Update(); // TODO + CMovingThings::Update(); CWaterCannons::Update(); CUserDisplay::Process(); CReplay::Update(); @@ -941,7 +937,7 @@ void CGame::Process(void) if (!CReplay::IsPlayingBack()) { PUSH_MEMID(MEMID_CARS); - //if (processTime < 2) + if (processTime < 2) CCarCtrl::GenerateRandomCars(); CRoadBlocks::GenerateRoadBlocks(); CCarCtrl::RemoveDistantCars(); diff --git a/src/core/Game.h b/src/core/Game.h index dd14278..4052eb0 100644 --- a/src/core/Game.h +++ b/src/core/Game.h @@ -3,10 +3,8 @@ enum eLevelName { LEVEL_IGNORE = -1, // beware, this is only used in CPhysical's m_nZoneLevel LEVEL_GENERIC = 0, - LEVEL_INDUSTRIAL, - LEVEL_COMMERCIAL, - LEVEL_SUBURBAN, - LEVEL_UNDERGROUND, + LEVEL_BEACH, + LEVEL_MAINLAND, NUM_LEVELS }; @@ -80,4 +78,4 @@ public: static void ProcessTidyUpMemory(void); }; -inline bool IsAreaVisible(int area) { return true; } +inline bool IsAreaVisible(int area) { return area == CGame::currArea || area == AREA_EVERYWHERE; } diff --git a/src/core/IniFile.cpp b/src/core/IniFile.cpp index 3dd9886..b903353 100644 --- a/src/core/IniFile.cpp +++ b/src/core/IniFile.cpp @@ -8,7 +8,7 @@ #include "Population.h" float CIniFile::PedNumberMultiplier = 0.6f; -float CIniFile::CarNumberMultiplier = 0.8f; +float CIniFile::CarNumberMultiplier = 0.6f; void CIniFile::LoadIniFile() { @@ -25,5 +25,5 @@ void CIniFile::LoadIniFile() } CPopulation::MaxNumberOfPedsInUse = 25.0f * PedNumberMultiplier; CPopulation::MaxNumberOfPedsInUseInterior = 40.0f * PedNumberMultiplier; - CCarCtrl::MaxNumberOfCarsInUse = 30.0f * CarNumberMultiplier; + CCarCtrl::MaxNumberOfCarsInUse = 12.0f * CarNumberMultiplier; } \ No newline at end of file diff --git a/src/core/KeyGen.cpp b/src/core/KeyGen.cpp deleted file mode 100644 index c95ab4b..0000000 --- a/src/core/KeyGen.cpp +++ /dev/null @@ -1,106 +0,0 @@ -#include "common.h" -#include "KeyGen.h" -#include - -uint32 CKeyGen::keyTable[256] = -{ - 0, 0x77073096, 0xEE0E612C, 0x990951BA, - 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3, - 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, - 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91, - 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, - 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, - 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, - 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, - 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, - 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, - 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, - 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, - 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, - 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F, - 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, - 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, - 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, - 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433, - 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, - 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, - 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, - 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, - 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C, - 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, - 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, - 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, - 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, - 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, - 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, - 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, - 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, - 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, - 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, - 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683, - 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, - 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, - 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, - 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7, - 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, - 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, - 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, - 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, - 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, - 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79, - 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, - 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, - 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, - 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, - 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, - 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, - 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, - 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, - 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E, - 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, - 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, - 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, - 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, - 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB, - 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, - 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, - 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, - 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF, - 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, - 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D -}; - -uint32 -CKeyGen::GetKey(const char *str, int size) -{ - uint32 key = 0xffffffff; - for (int i = 0; i < size; i++) - key = keyTable[(key ^ str[i]) & 0xFF] ^ (key >> 8); - return key; -} - -uint32 -CKeyGen::GetKey(const char *str) -{ - uint32 key = 0xffffffff; - while(*str != '\0') - key = keyTable[(key ^ *(str++)) & 0xFF] ^ (key >> 8); - return key; -} - -uint32 -CKeyGen::GetUppercaseKey(const char *str) -{ - uint32 key = 0xffffffff; - while (*str != '\0') - key = keyTable[(key ^ toupper(*(str++))) & 0xFF] ^ (key >> 8); - return key; -} - -uint32 -CKeyGen::AppendStringToKey(uint32 key, const char *str) -{ - while (*str != '\0') - key = keyTable[(key ^ *(str++)) & 0xFF] ^ (key >> 8); - return key; -} \ No newline at end of file diff --git a/src/core/KeyGen.h b/src/core/KeyGen.h deleted file mode 100644 index 129859c..0000000 --- a/src/core/KeyGen.h +++ /dev/null @@ -1,11 +0,0 @@ -#pragma once - -class CKeyGen -{ - static uint32 keyTable[256]; -public: - static uint32 GetKey(const char *str, int size); - static uint32 GetKey(const char *str); - static uint32 GetUppercaseKey(const char *str); - static uint32 AppendStringToKey(uint32 key, const char *str); -}; \ No newline at end of file diff --git a/src/core/Leeds.cpp b/src/core/Leeds.cpp deleted file mode 100644 index cda5060..0000000 --- a/src/core/Leeds.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include "common.h" -#include "Leeds.h" - -void LoadResource(RpAtomic *atomic) {} -void LoadResource(RpClump *clump) {} - - -void SaveResource(RwTexture *tex, base::cRelocatableChunkWriter &writer) {} -void SaveResource(RwTexDictionary *txd, base::cRelocatableChunkWriter &writer) {} -void SaveResource(RpMaterial *mat, base::cRelocatableChunkWriter &writer) {} -void SaveResource(RpMaterialList *matlist, base::cRelocatableChunkWriter &writer) {} -void SaveResource(RpGeometry *geo, base::cRelocatableChunkWriter &writer) {} -void SaveResource(RpAtomic *atomic, base::cRelocatableChunkWriter &writer) {} -void SaveResource(RpClump *clump, base::cRelocatableChunkWriter &writer) {} diff --git a/src/core/Leeds.h b/src/core/Leeds.h deleted file mode 100644 index bf71d7e..0000000 --- a/src/core/Leeds.h +++ /dev/null @@ -1,36 +0,0 @@ -#pragma once - -/* -PatchElementModelInfo(RslElement *,void *) -ChunkName(char const*) -DestroyAndFreeResourceImage(void) -WriteOrder(char const*) -UnpatchTextures(void) -IsChunked(int) -SaveResourceImage(void) -LoadResourceImage(void) -SaveResource(RslNode *,base::cRelocatableChunkWriter &) -SaveResource(RslTAnimTree *,base::cRelocatableChunkWriter &) -SaveResource(RslSkin *,base::cRelocatableChunkWriter &) -SaveResource(CAnimBlendTree *,base::cRelocatableChunkWriter &) -PatchElementTextures(RslElement *) -PatchElementGroupTextures(RslElementGroup *) -*/ - -void LoadResource(RpAtomic *atomic); -void LoadResource(RpClump *clump); - -/* -cRelocatableChunkWriterGTA::Save(char const*,uint,uint,bool) -cRelocatableChunkGTA::cRelocatableChunkGTA(char const*,uint,uint,bool) -SaveAnimBlock(int) -SaveModel(int,bool) -*/ - -void SaveResource(RwTexture *tex, base::cRelocatableChunkWriter &writer); -void SaveResource(RwTexDictionary *txd, base::cRelocatableChunkWriter &writer); -void SaveResource(RpMaterial *mat, base::cRelocatableChunkWriter &writer); -void SaveResource(RpMaterialList *matlist, base::cRelocatableChunkWriter &writer); -void SaveResource(RpGeometry *geo, base::cRelocatableChunkWriter &writer); -void SaveResource(RpAtomic *atomic, base::cRelocatableChunkWriter &writer); -void SaveResource(RpClump *clump, base::cRelocatableChunkWriter &writer); diff --git a/src/core/MenuScreensCustom.cpp b/src/core/MenuScreensCustom.cpp index cdfb3c8..0534e34 100644 --- a/src/core/MenuScreensCustom.cpp +++ b/src/core/MenuScreensCustom.cpp @@ -181,38 +181,6 @@ void IslandLoadingAfterChange(int8 before, int8 after) { } #endif -#ifdef MORE_LANGUAGES -void LangPolSelect(int8 action) -{ - if (action == FEOPTION_ACTION_SELECT) { - FrontEndMenuManager.m_PrefsLanguage = CMenuManager::LANGUAGE_POLISH; - FrontEndMenuManager.m_bFrontEnd_ReloadObrTxtGxt = true; - FrontEndMenuManager.InitialiseChangedLanguageSettings(); - FrontEndMenuManager.SaveSettings(); - } -} - -void LangRusSelect(int8 action) -{ - if (action == FEOPTION_ACTION_SELECT) { - FrontEndMenuManager.m_PrefsLanguage = CMenuManager::LANGUAGE_RUSSIAN; - FrontEndMenuManager.m_bFrontEnd_ReloadObrTxtGxt = true; - FrontEndMenuManager.InitialiseChangedLanguageSettings(); - FrontEndMenuManager.SaveSettings(); - } -} - -void LangJapSelect(int8 action) -{ - if (action == FEOPTION_ACTION_SELECT) { - FrontEndMenuManager.m_PrefsLanguage = CMenuManager::LANGUAGE_JAPANESE; - FrontEndMenuManager.m_bFrontEnd_ReloadObrTxtGxt = true; - FrontEndMenuManager.InitialiseChangedLanguageSettings(); - FrontEndMenuManager.SaveSettings(); - } -} -#endif - #ifndef MULTISAMPLING void GraphicsGoBack() { } @@ -471,11 +439,6 @@ CMenuScreenCustom aScreens[] = { MENUACTION_LANG_GER, "FEL_GER", {nil, SAVESLOT_NONE, MENUPAGE_LANGUAGE_SETTINGS}, 0, 0, MENUALIGN_CENTER, MENUACTION_LANG_ITA, "FEL_ITA", {nil, SAVESLOT_NONE, MENUPAGE_LANGUAGE_SETTINGS}, 0, 0, MENUALIGN_CENTER, MENUACTION_LANG_SPA, "FEL_SPA", {nil, SAVESLOT_NONE, MENUPAGE_LANGUAGE_SETTINGS}, 0, 0, MENUALIGN_CENTER, -#ifdef MORE_LANGUAGES - MENUACTION_CFO_DYNAMIC, "FEL_POL", { new CCFODynamic(nil, nil, nil, nil, LangPolSelect) }, 0, 0, MENUALIGN_CENTER, - MENUACTION_CFO_DYNAMIC, "FEL_RUS", { new CCFODynamic(nil, nil, nil, nil, LangRusSelect) }, 0, 0, MENUALIGN_CENTER - MENUACTION_CFO_DYNAMIC, "FEL_JAP", { new CCFODynamic(nil, nil, nil, nil, LangJapSelect) }, 0, 0, MENUALIGN_CENTER, -#endif MENUACTION_GOBACK, "FEDS_TB", {nil, SAVESLOT_NONE, MENUPAGE_NONE}, 0, 0, MENUALIGN_CENTER, }, diff --git a/src/core/Pad.cpp b/src/core/Pad.cpp index 86c218f..e75510e 100644 --- a/src/core/Pad.cpp +++ b/src/core/Pad.cpp @@ -88,7 +88,6 @@ extern bool gbFastTime; extern bool gGravityCheat; #endif -/* LCS: removed void SpecialCarCheats() { if ( !CVehicle::bCheat9 ) @@ -137,7 +136,6 @@ void SpecialCarCheats() CPad::bHasPlayerCheated = true; } } -*/ void PickUpChicksCheat() { @@ -363,7 +361,7 @@ void ChangePlayerCheat() do { do { - modelId = CGeneral::GetRandomNumberInRange(0, MI_GANG18); + modelId = CGeneral::GetRandomNumberInRange(0, MI_PGA); anotherModelId = modelId+1; } while (!CModelInfo::GetModelInfo(anotherModelId)); } while (anotherModelId >= MI_SPECIAL01 && anotherModelId <= MI_SPECIAL04 || modelId == MI_TAXI_D); @@ -582,18 +580,16 @@ void SuicideCheat(void) { } void DoChicksWithGunsCheat(void) { -/* // broken in LCS CHud::SetHelpMessage(TheText.Get("CHEAT1"), true); CStreaming::SetModelIsDeletable(CGangs::GetGangPedModel1(GANG_PLAYER)); CStreaming::SetModelIsDeletable(CGangs::GetGangPedModel2(GANG_PLAYER)); CStreaming::SetModelTxdIsDeletable(CGangs::GetGangPedModel1(GANG_PLAYER)); CStreaming::SetModelTxdIsDeletable(CGangs::GetGangPedModel2(GANG_PLAYER)); CStreaming::RemoveCurrentZonesModels(); - CGangs::SetGangPedModels(GANG_PLAYER, MI_CAS_WOM, MI_HOS_WOM); + CGangs::SetGangPedModels(GANG_PLAYER, MI_HFYBE, MI_WFYBE); CGangs::SetGangWeapons(GANG_PLAYER, WEAPONTYPE_M4, WEAPONTYPE_M4); CStats::CheatedCount += 1000; CPad::bHasPlayerCheated = true; -*/ } ////////////////////////////////////////////////////////////////////////// @@ -1415,8 +1411,6 @@ void CPad::AddToPCCheatString(char c) KeyBoardCheatString[0] = ' '; BlackCarsCheat(); } -/* - // LCS: removed for now // "TRAVELINSTYLE" else if (!Cheat_strncmp(KeyBoardCheatString, "HQ`U`iLSFaNZ[")) { KeyBoardCheatString[0] = ' '; @@ -1512,7 +1506,6 @@ void CPad::AddToPCCheatString(char c) KeyBoardCheatString[0] = ' '; ChangePlayerModel("igdiaz"); } -*/ // DEEPFRIEDMARSBARS else if (!Cheat_strncmp(KeyBoardCheatString, "VWHC`mDTEPVZMpRK")) { KeyBoardCheatString[0] = ' '; @@ -1528,13 +1521,11 @@ void CPad::AddToPCCheatString(char c) KeyBoardCheatString[0] = ' '; BackToTheFuture(); } -/* LCS: removed // LOADSOFLITTLETHINGS else if (!Cheat_strncmp(KeyBoardCheatString, "VLUJUoHSU_VTMo`J]bV")) { KeyBoardCheatString[0] = ' '; SpecialCarCheats(); } -*/ // HOPINGIRL else if (!Cheat_strncmp(KeyBoardCheatString, "OWPH[dSVI")) { KeyBoardCheatString[0] = ' '; diff --git a/src/core/Pad.h b/src/core/Pad.h index 748482e..f141ed6 100644 --- a/src/core/Pad.h +++ b/src/core/Pad.h @@ -164,8 +164,6 @@ public: int32 LastTimeTouched; int32 AverageWeapon; int32 AverageEntries; - float unk_B4; - float unk_B8; #ifdef DETECT_PAD_INPUT_SWITCH static bool IsAffectedByController; @@ -277,16 +275,6 @@ public: uint32 InputHowLongAgo(void); void SetDrunkInputDelay(int32 delay) { DrunkDrivingBufferUsed = delay; } - // TODO(LCS): properly, this is just to get some estimation for script - int16 GetOddJobTrigger() { return GetRightShockJustDown(); } - int16 GuiLeft() { return GetAnaloguePadLeft() || GetDPadLeftJustDown(); } - int16 GuiRight() { return GetAnaloguePadRight() || GetDPadRightJustDown(); } - int16 GuiUp() { return GetAnaloguePadUp() || GetDPadUpJustDown(); } - int16 GuiDown() { return GetAnaloguePadDown() || GetDPadDownJustDown(); } - int16 GuiSelect() { return GetCrossJustDown(); } - int16 GuiBack() { return GetTriangleJustDown(); } - int16 GetSkipCutscene() { return GetCrossJustDown(); } - #ifdef XINPUT static int XInputJoy1; static int XInputJoy2; diff --git a/src/core/PlayerInfo.cpp b/src/core/PlayerInfo.cpp index 337d631..a64d4cc 100644 --- a/src/core/PlayerInfo.cpp +++ b/src/core/PlayerInfo.cpp @@ -418,10 +418,8 @@ CPlayerInfo::Process(void) CTimer::Update(); } m_bInRemoteMode = false; - if (CWorld::Players[CWorld::PlayerInFocus].m_pRemoteVehicle) { - CWorld::Players[CWorld::PlayerInFocus].m_pRemoteVehicle->bRemoveFromWorld = true; - CWorld::Players[CWorld::PlayerInFocus].m_pRemoteVehicle = nil; - } + CWorld::Players[CWorld::PlayerInFocus].m_pRemoteVehicle->bRemoveFromWorld = true; + CWorld::Players[CWorld::PlayerInFocus].m_pRemoteVehicle = nil; if (FindPlayerVehicle()) { FindPlayerVehicle()->SetStatus(STATUS_PLAYER); } diff --git a/src/core/Radar.cpp b/src/core/Radar.cpp index e17c01a..4bb9c96 100644 --- a/src/core/Radar.cpp +++ b/src/core/Radar.cpp @@ -55,7 +55,7 @@ CSprite2d CRadar::SpraySprite; CSprite2d CRadar::TShirtSprite; CSprite2d CRadar::TommySprite; CSprite2d CRadar::PhoneSprite; -/*CSprite2d CRadar::RadioWildstyleSprite; +CSprite2d CRadar::RadioWildstyleSprite; CSprite2d CRadar::RadioFlashSprite; CSprite2d CRadar::RadioKChatSprite; CSprite2d CRadar::RadioFeverSprite; @@ -63,39 +63,7 @@ CSprite2d CRadar::RadioVRockSprite; CSprite2d CRadar::RadioVCPRSprite; CSprite2d CRadar::RadioEspantosoSprite; CSprite2d CRadar::RadioEmotionSprite; -CSprite2d CRadar::RadioWaveSprite;*/ -CSprite2d CRadar::EightBallSprite; -CSprite2d CRadar::BurnerSprite; -CSprite2d CRadar::CiprianiSprite; -CSprite2d CRadar::DonaldSprite; -CSprite2d CRadar::JosephSprite; -CSprite2d CRadar::LeoneSprite; -CSprite2d CRadar::MariaSprite; -CSprite2d CRadar::McraySprite; -CSprite2d CRadar::ToshikoSprite; -CSprite2d CRadar::VincenzoSprite; -CSprite2d CRadar::BombSprite; -CSprite2d CRadar::ClothesShopSprite; -CSprite2d CRadar::PropertyRedSprite; -CSprite2d CRadar::PhilCassidySprite; -CSprite2d CRadar::PowerupSprite; -CSprite2d CRadar::MPBase; -CSprite2d CRadar::MPCheckPoint; -CSprite2d CRadar::MPPlayer; -CSprite2d CRadar::MPObjective; -CSprite2d CRadar::MPCar; -CSprite2d CRadar::MPTank; -CSprite2d CRadar::MPCarLockup; -CSprite2d CRadar::MPTargetPlayer; -CSprite2d CRadar::MapHereSprite0; -CSprite2d CRadar::MapHereSprite1; -CSprite2d CRadar::MapHereSprite2; -CSprite2d CRadar::MapHereSprite3; -CSprite2d CRadar::MapHereSprite4; -CSprite2d CRadar::MapHereSprite5; -CSprite2d CRadar::MapHereSprite6; -CSprite2d CRadar::MapHereSprite7; -CSprite2d CRadar::MapWayPoint; +CSprite2d CRadar::RadioWaveSprite; CSprite2d *CRadar::RadarSprites[RADAR_SPRITE_COUNT] = { nil, @@ -129,38 +97,15 @@ CSprite2d *CRadar::RadarSprites[RADAR_SPRITE_COUNT] = { &TShirtSprite, &TommySprite, &PhoneSprite, - &EightBallSprite, - &BurnerSprite, - &CiprianiSprite, - &DonaldSprite, - &JosephSprite, - &LeoneSprite, - &MariaSprite, - &McraySprite, - &ToshikoSprite, - &VincenzoSprite, - &BombSprite, - &ClothesShopSprite, - &PropertyRedSprite, - &PhilCassidySprite, - &PowerupSprite, - &MPBase, - &MPCheckPoint, - &MPPlayer, - &MPObjective, - &MPCar, - &MPTank, - &MPCarLockup, - &MPTargetPlayer, - &MapHereSprite0, - &MapHereSprite1, - &MapHereSprite2, - &MapHereSprite3, - &MapHereSprite4, - &MapHereSprite5, - &MapHereSprite6, - &MapHereSprite7, - &MapWayPoint, + &RadioWildstyleSprite, + &RadioFlashSprite, + &RadioKChatSprite, + &RadioFeverSprite, + &RadioVRockSprite, + &RadioVCPRSprite, + &RadioEspantosoSprite, + &RadioEmotionSprite, + &RadioWaveSprite }; // Why this doesn't coincide with world coordinates i don't know @@ -1076,7 +1021,7 @@ CRadar::LoadTextures() TShirtSprite.SetTexture("tshirt"); TommySprite.SetTexture("tommy"); PhoneSprite.SetTexture("phone"); - /*RadioWildstyleSprite.SetTexture("RWildstyle"); + RadioWildstyleSprite.SetTexture("RWildstyle"); RadioFlashSprite.SetTexture("RFlash"); RadioKChatSprite.SetTexture("RKchat"); RadioFeverSprite.SetTexture("RFever"); @@ -1084,39 +1029,7 @@ CRadar::LoadTextures() RadioVCPRSprite.SetTexture("RVCPR"); RadioEspantosoSprite.SetTexture("REspantoso"); RadioEmotionSprite.SetTexture("REmotion"); - RadioWaveSprite.SetTexture("RWave");*/ - EightBallSprite.SetTexture("radar_8Ball"); - BurnerSprite.SetTexture("radar_Burner"); - CiprianiSprite.SetTexture("radar_Cipriani"); - DonaldSprite.SetTexture("radar_Donald"); - JosephSprite.SetTexture("radar_Joseph"); - LeoneSprite.SetTexture("radar_Leone"); - MariaSprite.SetTexture("radar_Maria"); - McraySprite.SetTexture("radar_McRay"); - ToshikoSprite.SetTexture("radar_Toshiko"); - VincenzoSprite.SetTexture("radar_Vincenzo"); - BombSprite.SetTexture("radar_Bomb"); - ClothesShopSprite.SetTexture("radar_cShop"); - PropertyRedSprite.SetTexture("radar_propertyR"); - PhilCassidySprite.SetTexture("radar_flag"); - PowerupSprite.SetTexture("radar_powerup"); - MPBase.SetTexture("mp_base"); - MPCheckPoint.SetTexture("radar_mp_checkpoint"); - MPPlayer.SetTexture("mp_player"); - MPObjective.SetTexture("mp_objective"); - MPCar.SetTexture("mp_car"); - MPTank.SetTexture("mp_tank"); - MPCarLockup.SetTexture("mp_carlockup"); - MPTargetPlayer.SetTexture("mp_targetplayer"); - MapHereSprite0.SetTexture("radar_arrow"); - MapHereSprite1.SetTexture("radar_arrow_01"); - MapHereSprite2.SetTexture("radar_arrow_02"); - MapHereSprite3.SetTexture("radar_arrow_03"); - MapHereSprite4.SetTexture("radar_arrow_04"); - MapHereSprite5.SetTexture("radar_arrow_05"); - MapHereSprite6.SetTexture("radar_arrow_06"); - MapHereSprite7.SetTexture("radar_arrow_07"); - MapWayPoint.SetTexture("radar_player_target"); + RadioWaveSprite.SetTexture("RWave"); CTxdStore::PopCurrentTxd(); } @@ -1216,7 +1129,6 @@ void CRadar::SetRadarMarkerState(int32 counter, bool flag) } void CRadar::ShowRadarMarker(CVector pos, uint32 color, float radius) { - /* float f1 = radius * 1.4f; float f2 = radius * 0.5f; CVector p1, p2; @@ -1236,7 +1148,6 @@ void CRadar::ShowRadarMarker(CVector pos, uint32 color, float radius) { p1 = pos - TheCamera.GetRight()*f1; p2 = pos - TheCamera.GetRight()*f2; CTheScripts::ScriptDebugLine3D(p1.x, p1.y, p1.z, p2.x, p2.y, p2.z, color, color); - */ } void CRadar::ShowRadarTrace(float x, float y, uint32 size, uint8 red, uint8 green, uint8 blue, uint8 alpha) @@ -1304,39 +1215,7 @@ void CRadar::Shutdown() TShirtSprite.Delete(); TommySprite.Delete(); PhoneSprite.Delete(); - EightBallSprite.Delete(); - BurnerSprite.Delete(); - CiprianiSprite.Delete(); - DonaldSprite.Delete(); - JosephSprite.Delete(); - LeoneSprite.Delete(); - MariaSprite.Delete(); - McraySprite.Delete(); - ToshikoSprite.Delete(); - VincenzoSprite.Delete(); - BombSprite.Delete(); - ClothesShopSprite.Delete(); - PropertyRedSprite.Delete(); - PhilCassidySprite.Delete(); - PowerupSprite.Delete(); - MPBase.Delete(); - MPCheckPoint.Delete(); - MPPlayer.Delete(); - MPObjective.Delete(); - MPCar.Delete(); - MPTank.Delete(); - MPCarLockup.Delete(); - MPTargetPlayer.Delete(); - MapHereSprite0.Delete(); - MapHereSprite1.Delete(); - MapHereSprite2.Delete(); - MapHereSprite3.Delete(); - MapHereSprite4.Delete(); - MapHereSprite5.Delete(); - MapHereSprite6.Delete(); - MapHereSprite7.Delete(); - MapWayPoint.Delete(); - /*RadioWildstyleSprite.Delete(); + RadioWildstyleSprite.Delete(); RadioFlashSprite.Delete(); RadioKChatSprite.Delete(); RadioFeverSprite.Delete(); @@ -1344,7 +1223,7 @@ void CRadar::Shutdown() RadioVCPRSprite.Delete(); RadioEspantosoSprite.Delete(); RadioEmotionSprite.Delete(); - RadioWaveSprite.Delete();*/ + RadioWaveSprite.Delete(); RemoveRadarSections(); } @@ -1787,7 +1666,7 @@ CRadar::DrawLegend(int32 x, int32 y, int32 sprite) case RADAR_SPRITE_PHONE: text = TheText.Get("LG_25"); break; - /*case RADAR_SPRITE_RADIO_WILDSTYLE: + case RADAR_SPRITE_RADIO_WILDSTYLE: text = TheText.Get("LG_26"); break; case RADAR_SPRITE_RADIO_FLASH: @@ -1813,9 +1692,8 @@ CRadar::DrawLegend(int32 x, int32 y, int32 sprite) break; case RADAR_SPRITE_RADIO_WAVE: text = TheText.Get("LG_34"); - break;*/ + break; default: - text = TheText.Get("LG_34"); // tmp hack break; } CFont::PrintString(SCREEN_SCALE_X(20.f) + x, SCREEN_SCALE_Y(3.0f) + y, text); diff --git a/src/core/Radar.h b/src/core/Radar.h index 3e61f8d..0829dda 100644 --- a/src/core/Radar.h +++ b/src/core/Radar.h @@ -16,9 +16,9 @@ #define OBJECTBLIP_MARKER_COLOR_B 242 #define OBJECTBLIP_MARKER_COLOR_A 255 -#define COORDBLIP_MARKER_COLOR_R 255 -#define COORDBLIP_MARKER_COLOR_G 255 -#define COORDBLIP_MARKER_COLOR_B 128 +#define COORDBLIP_MARKER_COLOR_R 252 +#define COORDBLIP_MARKER_COLOR_G 138 +#define COORDBLIP_MARKER_COLOR_B 242 #define COORDBLIP_MARKER_COLOR_A 228 #define NUM_MAP_LEGENDS 75 @@ -83,38 +83,15 @@ enum eRadarSprite RADAR_SPRITE_TSHIRT, RADAR_SPRITE_TOMMY, RADAR_SPRITE_PHONE, - RADAR_SPRITE_EIGHTBALL, - RADAR_SPRITE_BURNER, - RADAR_SPRITE_CIPRIANI, - RADAR_SPRITE_DONALD, - RADAR_SPRITE_JOSEPH, - RADAR_SPRITE_LEONE, - RADAR_SPRITE_MARIA, - RADAR_SPRITE_MCRAY, - RADAR_SPRITE_TOSHIKO, - RADAR_SPRITE_VINCENZO, // tmp - RADAR_SPRITE_BOMB, - RADAR_SPRITE_CLOTHES, - RADAR_SPRITE_PROPERTY_RED, - RADAR_SPRITE_PHIL_CASSIDY, - RADAR_SPRITE_POWERUP, - RADAR_SPRITE_MPBASE, - RADAR_SPRITE_MPCHECKPOINT, - RADAR_SPRITE_MPPLAYER, - RADAR_SPRITE_MPOBJECTIVE, - RADAR_SPRITE_MPCAR, - RADAR_SPRITE_MPTANK, - RADAR_SPRITE_MPCARLOCKUP, - RADAR_SPRITE_MPTARGETPLAYER, - RADAR_SPRITE_MAPHERE0, - RADAR_SPRITE_MAPHERE1, - RADAR_SPRITE_MAPHERE2, - RADAR_SPRITE_MAPHERE3, - RADAR_SPRITE_MAPHERE4, - RADAR_SPRITE_MAPHERE5, - RADAR_SPRITE_MAPHERE6, - RADAR_SPRITE_MAPHERE7, - RADAR_SPRITE_MAPWAYPOINT, + RADAR_SPRITE_RADIO_WILDSTYLE, + RADAR_SPRITE_RADIO_FLASH, + RADAR_SPRITE_RADIO_KCHAT, + RADAR_SPRITE_RADIO_FEVER, + RADAR_SPRITE_RADIO_VROCK, + RADAR_SPRITE_RADIO_VCPR, + RADAR_SPRITE_RADIO_ESPANTOSO, + RADAR_SPRITE_RADIO_EMOTION, + RADAR_SPRITE_RADIO_WAVE, RADAR_SPRITE_COUNT }; @@ -237,7 +214,7 @@ public: static CSprite2d TShirtSprite; static CSprite2d TommySprite; static CSprite2d PhoneSprite; -/* static CSprite2d RadioWildstyleSprite; + static CSprite2d RadioWildstyleSprite; static CSprite2d RadioFlashSprite; static CSprite2d RadioKChatSprite; static CSprite2d RadioFeverSprite; @@ -245,39 +222,7 @@ public: static CSprite2d RadioVCPRSprite; static CSprite2d RadioEspantosoSprite; static CSprite2d RadioEmotionSprite; - static CSprite2d RadioWaveSprite;*/ - static CSprite2d EightBallSprite; - static CSprite2d BurnerSprite; - static CSprite2d CiprianiSprite; - static CSprite2d DonaldSprite; - static CSprite2d JosephSprite; - static CSprite2d LeoneSprite; - static CSprite2d MariaSprite; - static CSprite2d McraySprite; - static CSprite2d ToshikoSprite; - static CSprite2d VincenzoSprite; - static CSprite2d BombSprite; - static CSprite2d ClothesShopSprite; - static CSprite2d PropertyRedSprite; - static CSprite2d PhilCassidySprite; - static CSprite2d PowerupSprite; - static CSprite2d MPBase; - static CSprite2d MPCheckPoint; - static CSprite2d MPPlayer; - static CSprite2d MPObjective; - static CSprite2d MPCar; - static CSprite2d MPTank; - static CSprite2d MPCarLockup; - static CSprite2d MPTargetPlayer; - static CSprite2d MapHereSprite0; - static CSprite2d MapHereSprite1; - static CSprite2d MapHereSprite2; - static CSprite2d MapHereSprite3; - static CSprite2d MapHereSprite4; - static CSprite2d MapHereSprite5; - static CSprite2d MapHereSprite6; - static CSprite2d MapHereSprite7; - static CSprite2d MapWayPoint; + static CSprite2d RadioWaveSprite; static CSprite2d *RadarSprites[RADAR_SPRITE_COUNT]; static float cachedCos; static float cachedSin; diff --git a/src/core/Ropes.cpp b/src/core/Ropes.cpp index 52427fc..e390a91 100644 --- a/src/core/Ropes.cpp +++ b/src/core/Ropes.cpp @@ -1,5 +1,6 @@ #include "common.h" +#include "main.h" #include "Timer.h" #include "ModelIndices.h" #include "Streaming.h" @@ -91,9 +92,11 @@ void CRopes::Render(void) { int i; + PUSH_RENDERGROUP("CRopes::Render"); for(i = 0; i < ARRAY_SIZE(aRopes); i++) if(aRopes[i].m_bActive) aRopes[i].Render(); + POP_RENDERGROUP(); } bool diff --git a/src/core/Streaming.cpp b/src/core/Streaming.cpp index bff832c..b28a99f 100644 --- a/src/core/Streaming.cpp +++ b/src/core/Streaming.cpp @@ -37,7 +37,6 @@ #include "Font.h" #include "Frontend.h" #include "VarConsole.h" -#include "KeyGen.h" bool CStreaming::ms_disableStreaming; bool CStreaming::ms_bLoadingBigModel; @@ -77,16 +76,10 @@ size_t CStreaming::ms_memoryAvailable; int32 desiredNumVehiclesLoaded = 12; -CEntity *pIslandLODindustEntity; -CEntity *pIslandLODcomIndEntity; -CEntity *pIslandLODcomSubEntity; -CEntity *pIslandLODsubIndEntity; -CEntity *pIslandLODsubComEntity; -int32 islandLODindust; -int32 islandLODcomInd; -int32 islandLODcomSub; -int32 islandLODsubInd; -int32 islandLODsubCom; +CEntity *pIslandLODmainlandEntity; +CEntity *pIslandLODbeachEntity; +int32 islandLODmainland; +int32 islandLODbeach; #ifndef MASTER bool gbPrintStats; @@ -249,21 +242,12 @@ CStreaming::Init2(void) // find island LODs - pIslandLODindustEntity = nil; - pIslandLODcomIndEntity = nil; - pIslandLODcomSubEntity = nil; - pIslandLODsubIndEntity = nil; - pIslandLODsubComEntity = nil; - islandLODindust = -1; - islandLODcomInd = -1; - islandLODcomSub = -1; - islandLODsubInd = -1; - islandLODsubCom = -1; - CModelInfo::GetModelInfo("IslandLODInd", &islandLODindust); - CModelInfo::GetModelInfo("IslandLODcomIND", &islandLODcomInd); - CModelInfo::GetModelInfo("IslandLODcomSUB", &islandLODcomSub); - CModelInfo::GetModelInfo("IslandLODsubIND", &islandLODsubInd); - CModelInfo::GetModelInfo("IslandLODsubCOM", &islandLODsubCom); + pIslandLODmainlandEntity = nil; + pIslandLODbeachEntity = nil; + islandLODmainland = -1; + islandLODbeach = -1; + CModelInfo::GetModelInfo("IslandLODmainland", &islandLODmainland); + CModelInfo::GetModelInfo("IslandLODbeach", &islandLODbeach); #ifndef MASTER VarConsole.Add("Streaming Debug", &gbPrintStats, true); @@ -935,61 +919,65 @@ CStreaming::RequestIslands(eLevelName level) { ISLAND_LOADING_ISNT(HIGH) switch(level){ - case LEVEL_INDUSTRIAL: - RequestModel(islandLODcomInd, BIGBUILDINGFLAGS); - RequestModel(islandLODsubInd, BIGBUILDINGFLAGS); + case LEVEL_MAINLAND: + if(islandLODbeach != -1) + RequestModel(islandLODbeach, BIGBUILDINGFLAGS); break; - case LEVEL_COMMERCIAL: - RequestModel(islandLODindust, BIGBUILDINGFLAGS); - RequestModel(islandLODsubCom, BIGBUILDINGFLAGS); - break; - case LEVEL_SUBURBAN: - RequestModel(islandLODindust, BIGBUILDINGFLAGS); - RequestModel(islandLODcomSub, BIGBUILDINGFLAGS); + case LEVEL_BEACH: + if(islandLODmainland != -1) + RequestModel(islandLODmainland, BIGBUILDINGFLAGS); break; default: break; } } -const char *csPlayerNames[] = -{ - "csplr", - "csplr2", - "csplr3", - "csplr4", - "csplr5", - "csplr6", - "csplr7", - "csplr8", - "csplr9", - "csplr10", - "csplr11", - "csplr12", - "csplr13", - "csplr14", - "csplr15", - "csplr16", +static char *IGnames[] = { + "player", + "player2", + "player3", + "player4", + "player5", + "player6", + "player7", + "player8", + "player9", + "play10", + "play11", + "igken", + "igcandy", + "igsonny", + "igbuddy", + "igjezz", + "ighlary", + "igphil", + "igmerc", + "igdick", + "igdiaz", "" }; -const char* playerNames[] = -{ - "plr", - "plr2", - "plr3", - "plr4", - "plr5", - "plr6", - "plr7", - "plr8", - "plr9", - "plr10", - "plr11", - "plr12", - "plr13", - "plr14", - "plr15", - "plr16", +static char *CSnames[] = { + "csplay", + "csplay2", + "csplay3", + "csplay4", + "csplay5", + "csplay6", + "csplay7", + "csplay8", + "csplay9", + "csplay10", + "csplay11", + "csken", + "cscandy", + "cssonny", + "csbuddy", + "csjezz", + "cshlary", + "csphil", + "csmerc", + "csdick", + "csdiaz", "" }; @@ -1003,17 +991,15 @@ CStreaming::RequestSpecialModel(int32 modelId, const char *modelName, int32 flag int i, n; mi = CModelInfo::GetModelInfo(modelId); - if (CKeyGen::GetUppercaseKey(modelName) == CKeyGen::GetUppercaseKey("cstoni_a")) { - i = 0; - while (csPlayerNames[i][0] != '\0') { - if (CModelInfo::GetModelInfo(0)->GetNameHashKey() == CKeyGen::GetUppercaseKey(playerNames[i])) { - modelName = csPlayerNames[i]; + if(strncasecmp("CSPlay", modelName, 6) == 0){ + char *curname = CModelInfo::GetModelInfo(MI_PLAYER)->GetModelName(); + for(int i = 0; CSnames[i][0]; i++){ + if(strcasecmp(curname, IGnames[i]) == 0){ + modelName = CSnames[i]; break; } - i++; } } - if(!CGeneral::faststrcmp(mi->GetModelName(), modelName)){ // Already have the correct name, just request it RequestModel(modelId, flags); @@ -1148,9 +1134,10 @@ CStreaming::RemoveModel(int32 id) void CStreaming::RemoveUnusedBuildings(eLevelName level) { - for(int i = LEVEL_INDUSTRIAL; i < NUM_LEVELS; i++) - if(level != i) - RemoveBuildings((eLevelName)i); + if(level != LEVEL_BEACH) + RemoveBuildings(LEVEL_BEACH); + if(level != LEVEL_MAINLAND) + RemoveBuildings(LEVEL_MAINLAND); } void @@ -1273,9 +1260,10 @@ CStreaming::RemoveUnusedBigBuildings(eLevelName level) { ISLAND_LOADING_IS(LOW) { - for(int i = LEVEL_INDUSTRIAL; i < NUM_LEVELS; i++) - if(level != i) - RemoveBuildings((eLevelName)i); + if(level != LEVEL_BEACH) + RemoveBigBuildings(LEVEL_BEACH); + if(level != LEVEL_MAINLAND) + RemoveBigBuildings(LEVEL_MAINLAND); } RemoveIslandsNotUsed(level); } @@ -1297,53 +1285,29 @@ void CStreaming::RemoveIslandsNotUsed(eLevelName level) { int i; - if(pIslandLODindustEntity == nil) + if(pIslandLODmainlandEntity == nil) for(i = CPools::GetBuildingPool()->GetSize()-1; i >= 0; i--){ CBuilding *building = CPools::GetBuildingPool()->GetSlot(i); if(building == nil) continue; - if(building->GetModelIndex() == islandLODindust) - pIslandLODindustEntity = building; - else if(building->GetModelIndex() == islandLODcomInd) - pIslandLODcomIndEntity = building; - else if(building->GetModelIndex() == islandLODcomSub) - pIslandLODcomSubEntity = building; - else if(building->GetModelIndex() == islandLODsubInd) - pIslandLODsubIndEntity = building; - else if(building->GetModelIndex() == islandLODsubCom) - pIslandLODsubComEntity = building; + if(building->GetModelIndex() == islandLODmainland) + pIslandLODmainlandEntity = building; + if(building->GetModelIndex() == islandLODbeach) + pIslandLODbeachEntity = building; } #ifdef NO_ISLAND_LOADING if(FrontEndMenuManager.m_PrefsIslandLoading == CMenuManager::ISLAND_LOADING_HIGH) { - DeleteIsland(pIslandLODindustEntity); - DeleteIsland(pIslandLODcomIndEntity); - DeleteIsland(pIslandLODcomSubEntity); - DeleteIsland(pIslandLODsubIndEntity); - DeleteIsland(pIslandLODsubComEntity); + DeleteIsland(pIslandLODmainlandEntity); + DeleteIsland(pIslandLODbeachEntity); } else #endif switch(level){ - case LEVEL_INDUSTRIAL: - DeleteIsland(pIslandLODindustEntity); - DeleteIsland(pIslandLODcomSubEntity); - DeleteIsland(pIslandLODsubComEntity); + case LEVEL_MAINLAND: + DeleteIsland(pIslandLODmainlandEntity); break; - case LEVEL_COMMERCIAL: - DeleteIsland(pIslandLODcomIndEntity); - DeleteIsland(pIslandLODcomSubEntity); - DeleteIsland(pIslandLODsubIndEntity); - break; - case LEVEL_SUBURBAN: - DeleteIsland(pIslandLODsubIndEntity); - DeleteIsland(pIslandLODsubComEntity); - DeleteIsland(pIslandLODcomIndEntity); - break; - default: - DeleteIsland(pIslandLODindustEntity); - DeleteIsland(pIslandLODcomIndEntity); - DeleteIsland(pIslandLODcomSubEntity); - DeleteIsland(pIslandLODsubIndEntity); - DeleteIsland(pIslandLODsubComEntity); + case LEVEL_BEACH: + DeleteIsland(pIslandLODbeachEntity); + break; } } @@ -1605,7 +1569,6 @@ CStreaming::IsObjectInCdImage(int32 id) void CStreaming::SetModelIsDeletable(int32 id) { - assert(id >= 0); // guard against fake IDs ms_aInfoForModel[id].m_flags &= ~STREAMFLAGS_DONT_REMOVE; if ((id >= STREAM_OFFSET_TXD && id < STREAM_OFFSET_COL || CModelInfo::GetModelInfo(id)->GetModelType() != MITYPE_VEHICLE) && (ms_aInfoForModel[id].m_flags & STREAMFLAGS_SCRIPTOWNED) == 0){ @@ -1684,11 +1647,11 @@ CStreaming::StreamVehiclesAndPeds(void) } if(FindPlayerPed()->m_pWanted->AreFbiRequired()){ - RequestModel(MI_FBICAR, STREAMFLAGS_DONT_REMOVE); + RequestModel(MI_FBIRANCH, STREAMFLAGS_DONT_REMOVE); RequestModel(MI_FBI, STREAMFLAGS_DONT_REMOVE); }else{ - SetModelIsDeletable(MI_FBICAR); - if(!HasModelLoaded(MI_FBICAR)) + SetModelIsDeletable(MI_FBIRANCH); + if(!HasModelLoaded(MI_FBIRANCH)) SetModelIsDeletable(MI_FBI); } @@ -1708,7 +1671,6 @@ CStreaming::StreamVehiclesAndPeds(void) else SetModelIsDeletable(MI_CHOPPER); -/* LCS: removed if (FindPlayerPed()->m_pWanted->AreMiamiViceRequired()) { SetModelIsDeletable(MI_VICE1); SetModelIsDeletable(MI_VICE2); @@ -1750,7 +1712,6 @@ CStreaming::StreamVehiclesAndPeds(void) SetModelIsDeletable(MI_VICE7); SetModelIsDeletable(MI_VICE8); } -*/ if(timeBeforeNextLoad >= 0) timeBeforeNextLoad--; @@ -3180,46 +3141,6 @@ CStreaming::LoadSceneCollision(const CVector &pos) CStreaming::LoadAllRequestedModels(false); } -//--LCS: TODO PSP and PS2 -// some things commented out that might be Rsl3D dependent -void CStreaming::RegisterPointer(void *ptr, int, bool) {} -RpAtomic *CStreaming::RegisterAtomic(RpAtomic *atomic, void *) -{ - return atomic; -} -void CStreaming::RegisterClump(RpClump *clump) -{ - RpClumpForAllAtomics(clump, RegisterAtomic, nil); -} -RpAtomic *CStreaming::RegisterInstance(RpAtomic *atomic, void *) -{ -// RegisterPointer(&atomic->geometry, 2, true); - return atomic; -} -void CStreaming::RegisterInstance(RpClump *clump) -{ - RpClumpForAllAtomics(clump, RegisterInstance, nil); -} - -void CStreaming::UnregisterPointer(void *ptr, int) {} -RpAtomic *CStreaming::UnregisterAtomic(RpAtomic *atomic, void *) -{ - return atomic; -} -void CStreaming::UnregisterClump(RpClump *clump) -{ - RpClumpForAllAtomics(clump, UnregisterAtomic, nil); -} -RpAtomic *CStreaming::UnregisterInstance(RpAtomic *atomic, void *) -{ -// UnregisterPointer(&atomic->geometry, 2); - return atomic; -} -void CStreaming::UnregisterInstance(RpClump *clump) -{ - RpClumpForAllAtomics(clump, UnregisterInstance, nil); -} - void CStreaming::MemoryCardSave(uint8 *buf, uint32 *size) { diff --git a/src/core/Streaming.h b/src/core/Streaming.h index 1ca4367..4ddf0b3 100644 --- a/src/core/Streaming.h +++ b/src/core/Streaming.h @@ -17,10 +17,7 @@ enum StreamFlags STREAMFLAGS_PRIORITY = 0x08, STREAMFLAGS_NOFADE = 0x10, STREAMFLAGS_20 = 0x20, // TODO(MIAMI): what's this - STREAMFLAGS_40 = 0x40, // TODO(LCS): what's this - STREAMFLAGS_AMBIENT_SCRIPT_OWNED = 0x80, - // TODO(LCS): STREAMFLAGS_AMBIENT_SCRIPT_OWNED in STREAMFLAGS_CANT_REMOVE? check CColStore STREAMFLAGS_CANT_REMOVE = STREAMFLAGS_DONT_REMOVE|STREAMFLAGS_SCRIPTOWNED, STREAMFLAGS_KEEP_IN_MEMORY = STREAMFLAGS_DONT_REMOVE|STREAMFLAGS_SCRIPTOWNED|STREAMFLAGS_DEPENDENCY, }; @@ -130,7 +127,6 @@ public: static bool HasColLoaded(int32 id) { return HasModelLoaded(id+STREAM_OFFSET_COL); } static bool HasAnimLoaded(int32 id) { return HasModelLoaded(id+STREAM_OFFSET_ANIM); } static bool CanRemoveModel(int32 id) { return (ms_aInfoForModel[id].m_flags & STREAMFLAGS_CANT_REMOVE) == 0; } - static bool IsScriptOwnedModel(int32 id) { return (ms_aInfoForModel[id].m_flags & STREAMFLAGS_SCRIPTOWNED); } static bool CanRemoveTxd(int32 id) { return CanRemoveModel(id+STREAM_OFFSET_TXD); } static bool CanRemoveCol(int32 id) { return CanRemoveModel(id+STREAM_OFFSET_COL); } static bool CanRemoveAnim(int32 id) { return CanRemoveModel(id+STREAM_OFFSET_ANIM); } @@ -214,17 +210,6 @@ public: static void LoadScene(const CVector &pos); static void LoadSceneCollision(const CVector &pos); - static void RegisterPointer(void *ptr, int, bool); - static RpAtomic *RegisterAtomic(RpAtomic *atomic, void *); - static void RegisterClump(RpClump *clump); - static RpAtomic *RegisterInstance(RpAtomic *atomic, void *); - static void RegisterInstance(RpClump *clump); - static void UnregisterPointer(void *ptr, int); - static RpAtomic *UnregisterAtomic(RpAtomic *atomic, void *); - static void UnregisterClump(RpClump *clump); - static RpAtomic *UnregisterInstance(RpAtomic *atomic, void *); - static void UnregisterInstance(RpClump *clump); - static void MemoryCardSave(uint8 *buffer, uint32 *length); static void MemoryCardLoad(uint8 *buffer, uint32 length); @@ -232,10 +217,3 @@ public: static void PrintStreamingBufferState(); }; - -// LCS(TODO): put them into CStreaming::mspInst -extern int32 islandLODindust; -extern int32 islandLODcomInd; -extern int32 islandLODcomSub; -extern int32 islandLODsubInd; -extern int32 islandLODsubCom; diff --git a/src/core/World.cpp b/src/core/World.cpp index 1bf3611..2683a28 100644 --- a/src/core/World.cpp +++ b/src/core/World.cpp @@ -1788,35 +1788,56 @@ void CWorld::RepositionOneObject(CEntity *pEntity) { int16 modelId = pEntity->GetModelIndex(); - if (IsLightThatNeedsRepositioning(modelId) || IsTreeModel(modelId) || modelId == MI_PARKINGMETER || - modelId == MI_PHONEBOOTH1 || modelId == MI_WASTEBIN || modelId == MI_BIN || modelId == MI_POSTBOX1 || - modelId == MI_NEWSSTAND || modelId == MI_TRAFFICCONE || modelId == MI_DUMP1 || - modelId == MI_ROADWORKBARRIER1 || modelId == MI_BUSSIGN1 || modelId == MI_NOPARKINGSIGN1 || - modelId == MI_PHONESIGN || modelId == MI_TAXISIGN || modelId == MI_FISHSTALL01 || - modelId == MI_FISHSTALL02 || modelId == MI_FISHSTALL03 || modelId == MI_FISHSTALL04 || - modelId == MI_BAGELSTAND2 || modelId == MI_FIRE_HYDRANT || modelId == MI_BOLLARDLIGHT || - modelId == MI_PARKTABLE) { + if (modelId == MI_PARKINGMETER || modelId == MI_PHONEBOOTH1 || modelId == MI_WASTEBIN || + modelId == MI_BIN || modelId == MI_POSTBOX1 || modelId == MI_NEWSSTAND || modelId == MI_TRAFFICCONE || + modelId == MI_DUMP1 || modelId == MI_ROADWORKBARRIER1 || modelId == MI_BUSSIGN1 || modelId == MI_NOPARKINGSIGN1 || + modelId == MI_PHONESIGN || modelId == MI_FIRE_HYDRANT || modelId == MI_BOLLARDLIGHT || + modelId == MI_PARKTABLE || modelId == MI_PARKINGMETER2 || modelId == MI_TELPOLE02 || + modelId == MI_PARKBENCH || modelId == MI_BARRIER1 || IsTreeModel(modelId) + ) { CVector& position = pEntity->GetMatrix().GetPosition(); - float fBoundingBoxMinZ = pEntity->GetColModel()->boundingBox.min.z; + CColModel* pColModel = pEntity->GetColModel(); + float fBoundingBoxMinZ = pColModel->boundingBox.min.z; + float fHeight = pColModel->boundingBox.max.z - pColModel->boundingBox.min.z; + if (fHeight < OBJECT_REPOSITION_OFFSET_Z) fHeight = OBJECT_REPOSITION_OFFSET_Z; position.z = FindGroundZFor3DCoord(position.x, position.y, - position.z + OBJECT_REPOSITION_OFFSET_Z, nil) - - fBoundingBoxMinZ; + position.z + fHeight, nil) - + fBoundingBoxMinZ; pEntity->m_matrix.UpdateRW(); pEntity->UpdateRwFrame(); - } else if(modelId == MI_BUOY) { - float fWaterLevel = 0.0f; + } else if(IsLightThatNeedsRepositioning(modelId)) { + CVector position = pEntity->GetMatrix().GetPosition(); + CColModel* pColModel = pEntity->GetColModel(); + float fBoundingBoxMinZ = pColModel->boundingBox.min.z; + float fHeight = pColModel->boundingBox.max.z - pColModel->boundingBox.min.z; + if (fHeight < OBJECT_REPOSITION_OFFSET_Z) fHeight = OBJECT_REPOSITION_OFFSET_Z; + if (pColModel->numBoxes == 1) + position = pEntity->GetMatrix() * CVector( + (pColModel->boxes[0].min.x + pColModel->boxes[0].max.x) / 2, + (pColModel->boxes[0].min.y + pColModel->boxes[0].max.y) / 2, + pColModel->boxes[0].min.z); + else if (pColModel->numSpheres > 0) { + position.z = 1000.0f; + for (int i = 0; i < pColModel->numSpheres; i++) { + if (pColModel->spheres[i].center.z < position.z) + position = pColModel->spheres[i].center; + } + if (position.z < 1000.0f) + position = pEntity->GetMatrix() * position; + } + pEntity->GetMatrix().GetPosition().z = FindGroundZFor3DCoord(position.x, position.y, pEntity->GetMatrix().GetPosition().z + fHeight, nil) - fBoundingBoxMinZ; + pEntity->GetMatrix().UpdateRW(); + pEntity->UpdateRwFrame(); + + } + if(modelId == MI_BUOY) { bool bFound = true; const CVector &position = pEntity->GetPosition(); float fGroundZ = FindGroundZFor3DCoord(position.x, position.y, position.z + OBJECT_REPOSITION_OFFSET_Z, &bFound); - if(CWaterLevel::GetWaterLevelNoWaves(position.x, position.y, position.z + OBJECT_REPOSITION_OFFSET_Z, - &fWaterLevel)) { - if(!bFound || fWaterLevel > fGroundZ) { - CColModel *pColModel = pEntity->GetColModel(); - float fHeight = pColModel->boundingBox.max.z - pColModel->boundingBox.min.z; - pEntity->GetMatrix().GetPosition().z = 0.2f * fHeight + fWaterLevel - 0.5f * fHeight; - } - } + CColModel *pColModel = pEntity->GetColModel(); + float fHeight = pColModel->boundingBox.max.z - pColModel->boundingBox.min.z; + pEntity->GetMatrix().GetPosition().z = 0.2f * fHeight + 6.0f - 0.5f * fHeight; } } @@ -2133,8 +2154,8 @@ CWorld::TriggerExplosionSectorList(CPtrList &list, const CVector &position, floa } else { CVector pos = pEntity->GetPosition(); pos.z -= 0.5f; - CParticleObject::AddObject(POBJECT_FIRE_HYDRANT, pos, true); - CParticleObject::AddObject(POBJECT_FIRE_HYDRANT_STEAM, pos, true); + CParticleObject::AddObject(POBJECT_FIRE_HYDRANT, + pos, true); pObject->bHasBeenDamaged = true; } } diff --git a/src/core/World.h b/src/core/World.h index b75b6a6..81eb5d4 100644 --- a/src/core/World.h +++ b/src/core/World.h @@ -5,19 +5,19 @@ #include "PlayerInfo.h" #include "Collision.h" -/* Sectors span from -2000 to 2000 in x and y. - * With 100x100 sectors, each is 40x40 units. */ +/* Sectors span from -2400 to 1600 in x and -2000 to 2000 y. + * With 80x80 sectors, each is 50x50 units. */ -#define SECTOR_SIZE_X (40.0f) -#define SECTOR_SIZE_Y (40.0f) +#define SECTOR_SIZE_X (50.0f) +#define SECTOR_SIZE_Y (50.0f) -#define NUMSECTORS_X (100) -#define NUMSECTORS_Y (100) +#define NUMSECTORS_X (80) +#define NUMSECTORS_Y (80) #define WORLD_SIZE_X (NUMSECTORS_X * SECTOR_SIZE_X) #define WORLD_SIZE_Y (NUMSECTORS_Y * SECTOR_SIZE_Y) -#define WORLD_MIN_X (-2000.0f) +#define WORLD_MIN_X (-2400.0f) #define WORLD_MIN_Y (-2000.0f) #define WORLD_MAX_X (WORLD_MIN_X + WORLD_SIZE_X) diff --git a/src/core/Zones.cpp b/src/core/Zones.cpp index 09f50a2..85564f0 100644 --- a/src/core/Zones.cpp +++ b/src/core/Zones.cpp @@ -86,20 +86,20 @@ CTheZones::Init(void) TotalNumberOfInfoZones = 1; strcpy(InfoZoneArray[0].name, "CITYINF"); - InfoZoneArray[0].minx = -2000.0f; + InfoZoneArray[0].minx = -2400.0f; InfoZoneArray[0].miny = -2000.0f; InfoZoneArray[0].minz = -500.0f; - InfoZoneArray[0].maxx = 2000.0f; + InfoZoneArray[0].maxx = 1600.0f; InfoZoneArray[0].maxy = 2000.0f; InfoZoneArray[0].maxz = 500.0f; InfoZoneArray[0].level = LEVEL_GENERIC; InfoZoneArray[0].type = ZONE_INFO; strcpy(NavigationZoneArray[0].name, "VICE_C"); - NavigationZoneArray[0].minx = -2000.0f; + NavigationZoneArray[0].minx = -2400.0f; NavigationZoneArray[0].miny = -2000.0f; NavigationZoneArray[0].minz = -500.0f; - NavigationZoneArray[0].maxx = 2000.0f; + NavigationZoneArray[0].maxx = 1600.0f; NavigationZoneArray[0].maxy = 2000.0f; NavigationZoneArray[0].maxz = 500.0f; NavigationZoneArray[0].level = LEVEL_GENERIC; @@ -113,10 +113,10 @@ CTheZones::Init(void) } TotalNumberOfMapZones = 1; strcpy(MapZoneArray[0].name, "THEMAP"); - MapZoneArray[0].minx = -2000.0f; + MapZoneArray[0].minx = -2400.0f; MapZoneArray[0].miny = -2000.0f; MapZoneArray[0].minz = -500.0f; - MapZoneArray[0].maxx = 2000.0f; + MapZoneArray[0].maxx = 1600.0f; MapZoneArray[0].maxy = 2000.0f; MapZoneArray[0].maxz = 500.0f; MapZoneArray[0].level = LEVEL_GENERIC; diff --git a/src/core/common.h b/src/core/common.h index 268bc83..d39531c 100644 --- a/src/core/common.h +++ b/src/core/common.h @@ -115,8 +115,6 @@ typedef ptrdiff_t ssize_t; #endif #include "config.h" -#include "memoryManager.h" -#include "relocatableChunk.h" #include #include @@ -214,18 +212,6 @@ inline uint32 ldb(uint32 p, uint32 s, uint32 w) #define SCALE_AND_CENTER_X(x) SCREEN_STRETCH_X(x) #endif -// these are temp marcos while we don't implement all PSP UI coordinates -#define PSP_DEFAULT_SCREEN_WIDTH (480) -#define PSP_DEFAULT_SCREEN_HEIGHT (272) - -#define PSP_SCALE_TO_PS2_X(a) ((float)a * ((float)DEFAULT_SCREEN_WIDTH / (float)PSP_DEFAULT_SCREEN_WIDTH)) -#define PSP_SCALE_TO_PS2_Y(a) ((float)a * ((float)DEFAULT_SCREEN_HEIGHT / (float)PSP_DEFAULT_SCREEN_HEIGHT)) - -#define PSP_SCREEN_SCALE_X(a) ((a) * (float) SCREEN_WIDTH / PSP_DEFAULT_SCREEN_WIDTH) -#define PSP_SCREEN_SCALE_Y(a) ((a) * (float) SCREEN_WIDTH / PSP_DEFAULT_SCREEN_WIDTH) -#define PSP_SCREEN_SCALE_FROM_RIGHT(a) (SCREEN_WIDTH - PSP_SCREEN_SCALE_X(a)) -#define PSP_SCREEN_SCALE_FROM_BOTTOM(a) (SCREEN_HEIGHT - PSP_SCREEN_SCALE_Y(a)) - #include "maths.h" #include "Vector.h" #include "Vector2D.h" diff --git a/src/core/config.h b/src/core/config.h index 1d4bf57..6d30a65 100644 --- a/src/core/config.h +++ b/src/core/config.h @@ -10,15 +10,15 @@ enum Config { MAX_CDIMAGES = 8, // additional cdimages MAX_CDCHANNELS = 5, - MODELINFOSIZE = 6500, // only 4900 - TXDSTORESIZE = 1385, // only 1200 - COLSTORESIZE = 31, // only 15 + MODELINFOSIZE = 6500, // 4900 on PS2 + TXDSTORESIZE = 1385, + COLSTORESIZE = 31, EXTRADIRSIZE = 256, CUTSCENEDIRSIZE = 512, SIMPLEMODELSIZE = 3885, TIMEMODELSIZE = 385, - CLUMPMODELSIZE = 10, + CLUMPMODELSIZE = 5, WEAPONMODELSIZE = 37, PEDMODELSIZE = 130, VEHICLEMODELSIZE = 110, @@ -29,19 +29,19 @@ enum Config { NUMOBJECTINFO = 210, // Pool sizes - NUMPTRNODES = 50000, // only 30100 - NUMENTRYINFOS = 4000, - NUMPEDS = 140, // only 70 - NUMVEHICLES = 110, // only 70 - NUMBUILDINGS = 7000, // only 6757 - NUMTREADABLES = 1300, - NUMOBJECTS = 475, - NUMDUMMIES = 3000, + NUMPTRNODES = 50000, + NUMENTRYINFOS = 3200, + NUMPEDS = 140, + NUMVEHICLES = 110, + NUMBUILDINGS = 7000, + NUMTREADABLES = 1, + NUMOBJECTS = 460, + NUMDUMMIES = 2340, NUMAUDIOSCRIPTOBJECTS = 192, NUMCOLMODELS = 4400, NUMCUTSCENEOBJECTS = 50, // not a pool in VC - NUMANIMBLOCKS = 60, + NUMANIMBLOCKS = 35, NUMANIMATIONS = 450, NUMTEMPOBJECTS = 40, @@ -61,20 +61,20 @@ enum Config { NUMREFERENCES = 800, // Zones - NUMAUDIOZONES = 36, + NUMAUDIOZONES = 14, NUMINFOZONES = 169, - NUMMAPZONES = 110, - NUMNAVIGZONES = 70, + NUMMAPZONES = 39, + NUMNAVIGZONES = 20, // Cull zones - NUMATTRIBZONES = 900, + NUMATTRIBZONES = 704, NUMOCCLUSIONVOLUMES = 350, NUMACTIVEOCCLUDERS = 48, PATHNODESIZE = 4500, - NUMWEATHERS = 8, + NUMWEATHERS = 7, NUMHOURS = 24, NUMEXTRADIRECTIONALS = 4, @@ -100,7 +100,7 @@ enum Config { NUMPACMANPICKUPS = 256, NUMEVENTS = 64, - NUM_CARGENS = 500, + NUM_CARGENS = 185, NUM_PATH_NODES_IN_AUTOPILOT = 8, @@ -114,7 +114,7 @@ enum Config { NUM_WATERCANNONS = 3, NUMPEDROUTES = 200, - NUMPHONES = 60, + NUMPHONES = 50, NUMPEDGROUPS = 67, NUMMODELSPERPEDGROUP = 16, MAXZONEPEDSLOADED = 8, @@ -139,7 +139,7 @@ enum Config { NUM_GARAGE_STORED_CARS = 4, - NUM_CRANES = 11, + NUM_CRANES = 8, NUM_ESCALATORS = 22, NUM_WATER_CREATURES = 8, @@ -204,9 +204,6 @@ enum Config { //#define COMPRESSED_COL_VECTORS // use compressed vectors for collision vertices //#define ANIM_COMPRESSION // only keep most recently used anims uncompressed -#define GTA_TRAIN -#define GTA_BRIDGE - #if defined GTA_PS2 # define GTA_PS2_STUFF # define RANDOMSPLASH @@ -219,7 +216,7 @@ enum Config { # define PS2_MATFX # endif # define PC_PLAYER_CONTROLS // mouse player/cam mode -//# define GTA_REPLAY +# define GTA_REPLAY # define GTA_SCENE_EDIT #elif defined GTA_XBOX #endif @@ -235,7 +232,6 @@ enum Config { // not in master builds #define VALIDATE_SAVE_SIZE - #define NO_MOVIES // disable intro videos #define DEBUGMENU #endif @@ -249,11 +245,13 @@ enum Config { #endif #define FIX_BUGS // fixes bugs that we've came across during reversing. You can undefine this only on release builds. -//#define MORE_LANGUAGES // Add more translations to the game +#define MORE_LANGUAGES // Add more translations to the game #define COMPATIBLE_SAVES // this allows changing structs while keeping saves compatible #define LOAD_INI_SETTINGS // as the name suggests. fundamental for CUSTOM_FRONTEND_OPTIONS #define FIX_HIGH_FPS_BUGS_ON_FRONTEND +#define NO_MOVIES // add option to disable intro videos + #if defined(__LP64__) || defined(_WIN64) #define FIX_BUGS_64 // Must have fixes to be able to run 64 bit build #endif @@ -277,7 +275,7 @@ enum Config { #define USE_TXD_CDIMAGE // generate and load textures from txd.img #define PS2_ALPHA_TEST // emulate ps2 alpha test #define IMPROVED_VIDEOMODE // save and load videomode parameters instead of a magic number -//#define DISABLE_LOADING_SCREEN // disable the loading screen which vastly improves the loading time +#define DISABLE_LOADING_SCREEN // disable the loading screen which vastly improves the loading time #define DISABLE_VSYNC_ON_TEXTURE_CONVERSION // make texture conversion work faster by disabling vsync #define ANISOTROPIC_FILTERING // set all textures to max anisotropic filtering //#define USE_TEXTURE_POOL @@ -297,7 +295,6 @@ enum Config { // Water & Particle // #define PC_WATER #define WATER_CHEATS -//#define PSP_WATERCANNON //#define USE_CUTSCENE_SHADOW_FOR_PED #define DISABLE_CUTSCENE_SHADOWS @@ -340,7 +337,7 @@ enum Config { # ifdef CUSTOM_FRONTEND_OPTIONS # define GRAPHICS_MENU_OPTIONS // otherwise Display settings will be scrollable -//# define NO_ISLAND_LOADING // disable loadscreen between islands via loading all island data at once, consumes more memory and CPU +# define NO_ISLAND_LOADING // disable loadscreen between islands via loading all island data at once, consumes more memory and CPU # define CUTSCENE_BORDERS_SWITCH # define MULTISAMPLING // adds MSAA option # define INVERT_LOOK_FOR_PAD // enable the hidden option @@ -362,7 +359,7 @@ static_assert(false, "SUPPORT_XBOX_SCRIPT and SUPPORT_MOBILE_SCRIPT are mutually #endif //#define SIMPLIER_MISSIONS // apply simplifications from mobile #define USE_ADVANCED_SCRIPT_DEBUG_OUTPUT -#define SCRIPT_LOG_FILE_LEVEL 1 // 0 == no log, 1 == overwrite every frame, 2 == full log +#define SCRIPT_LOG_FILE_LEVEL 0 // 0 == no log, 1 == overwrite every frame, 2 == full log #if SCRIPT_LOG_FILE_LEVEL == 0 #undef USE_ADVANCED_SCRIPT_DEBUG_OUTPUT @@ -399,7 +396,7 @@ static_assert(false, "SUPPORT_XBOX_SCRIPT and SUPPORT_MOBILE_SCRIPT are mutually // Audio #define RADIO_SCROLL_TO_PREV_STATION // Won't work without FIX_BUGS #define AUDIO_CACHE // cache sound lengths to speed up the cold boot -#define PS2_AUDIO_PATHS // changes audio paths for cutscenes and radio to PS2 paths (needs vbdec on MSS builds) +//#define PS2_AUDIO_PATHS // changes audio paths for cutscenes and radio to PS2 paths (needs vbdec on MSS builds) //#define AUDIO_OAL_USE_SNDFILE // use libsndfile to decode WAVs instead of our internal decoder #define AUDIO_OAL_USE_MPG123 // use mpg123 to support mp3 files diff --git a/src/core/main.cpp b/src/core/main.cpp index 53deeb7..a38fe72 100644 --- a/src/core/main.cpp +++ b/src/core/main.cpp @@ -81,20 +81,12 @@ GlobalScene Scene; -uint8 work_buff[102400]; +uint8 work_buff[55000]; char gString[256]; char gString2[512]; wchar gUString[256]; wchar gUString2[256]; -// leeds -bool gMakeResources = true; -bool gUseChunkFiles = false; -bool gSecondExportPass; -bool gUseModelResources; -bool gUseResources; -bool gNASTY_NASTY_MEM_SHUTDOWN_HACK; // rather unused - float FramesPerSecond = 30.0f; bool gbPrintShite = false; @@ -103,7 +95,10 @@ bool gbModelViewer; bool gbShowTimebars; #endif #ifdef DRAW_GAME_VERSION_TEXT -bool gDrawVersionText; // Our addition, we think it was always enabled on !MASTER builds +bool gbDrawVersionText; // Our addition, we think it was always enabled on !MASTER builds +#endif +#ifdef NO_MOVIES +bool gbNoMovies; #endif volatile int32 frameCount; @@ -113,7 +108,7 @@ RwRGBA gColourTop; bool gameAlreadyInitialised; float NumberOfChunksLoaded; -#define TOTALNUMCHUNKS 52.0f +#define TOTALNUMCHUNKS 95.0f bool g_SlowMode = false; char version_name[64]; @@ -140,7 +135,7 @@ bool gbPrintMemoryUsage; #endif #ifdef NEW_RENDERER -bool gbNewRenderer = true; +bool gbNewRenderer; #endif #ifdef FIX_BUGS // need to clear stencil for mblur fx. no idea why it works in the original game @@ -611,11 +606,11 @@ GetRandomSplashScreen(void) static char splashName[128]; static int splashIndex[12] = { 1, 2, - 3, 0, - 1, 2, - 3, 0, - 1, 2, - 3, 0 + 3, 4, + 5, 11, + 6, 8, + 9, 10, + 7, 12 }; index = splashIndex[2*index2 + CGeneral::GetRandomNumberInRange(0, 2)]; @@ -629,12 +624,11 @@ GetRandomSplashScreen(void) Const char* GetLevelSplashScreen(int level) { - static Const char *splashScreens[5] = { + static Const char *splashScreens[4] = { nil, "splash1", "splash2", "splash3", - "loadsc0", }; return splashScreens[level]; @@ -646,7 +640,6 @@ ResetLoadingScreenBar() NumberOfChunksLoaded = 0.0f; } -//--LCS: not the real thing void LoadingScreen(const char *str1, const char *str2, const char *splashscreen) { @@ -658,7 +651,7 @@ LoadingScreen(const char *str1, const char *str2, const char *splashscreen) #endif #ifndef RANDOMSPLASH - splashscreen = "SCEELEE"; + splashscreen = "LOADSC0"; #endif splash = LoadSplash(splashscreen); @@ -680,27 +673,24 @@ LoadingScreen(const char *str1, const char *str2, const char *splashscreen) NumberOfChunksLoaded += 1; #ifndef RANDOMSPLASH - // this looks nice float hpos = SCREEN_SCALE_X(40); float length = SCREEN_WIDTH - SCREEN_SCALE_X(80); - float top = SCREEN_HEIGHT - SCREEN_SCALE_Y(30); - float bottom = top + SCREEN_SCALE_Y(8); + float top = SCREEN_HEIGHT - SCREEN_SCALE_Y(14); + float bottom = top + SCREEN_SCALE_Y(5); #else - // should correspond to PS2 position - float hpos = SCREEN_STRETCH_X(44); - float length = SCREEN_STRETCH_X(176); - float top = SCREEN_STRETCH_Y(420); - float bottom = top + SCREEN_STRETCH_Y(8); + float hpos = SCREEN_STRETCH_X(40); + float length = SCREEN_STRETCH_X(440); + // this is rather weird + float top = SCREEN_STRETCH_Y(407.4f - 7.0f/3.0f); + float bottom = SCREEN_STRETCH_Y(407.4f + 7.0f/3.0f); #endif - CSprite2d::DrawRect(CRect(hpos+4.0f, top+6.0f, hpos+length+4.0f, bottom+6.0f), CRGBA(0, 0, 0, 200)); + CSprite2d::DrawRect(CRect(hpos-1.0f, top-1.0f, hpos+length+1.0f, bottom+1.0f), CRGBA(40, 53, 68, 255)); - CSprite2d::DrawRect(CRect(hpos, top, hpos+length, bottom), CRGBA(0, 0, 0, 255)); - - CSprite2d::DrawRect(CRect(hpos+1.0f, top+1.0f, hpos+length-1.0f, bottom-1.0f), CRGBA(99, 99, 99, 255)); + CSprite2d::DrawRect(CRect(hpos, top, hpos+length, bottom), CRGBA(155, 50, 125, 255)); length *= NumberOfChunksLoaded/TOTALNUMCHUNKS; - CSprite2d::DrawRect(CRect(hpos+1.0f, top+1.0f, hpos+length-1.0f, bottom-1.0f), CRGBA(126, 15, 0, 255)); + CSprite2d::DrawRect(CRect(hpos, top, hpos+length, bottom), CRGBA(255, 150, 225, 255)); // this is done by the game but is unused CFont::SetBackgroundOff(); @@ -715,7 +705,7 @@ LoadingScreen(const char *str1, const char *str2, const char *splashscreen) // my attempt static wchar tmpstr[80]; float yscale = SCREEN_SCALE_Y(0.9f); - top = bottom+5*yscale; + top -= 45*yscale; CFont::SetScale(SCREEN_SCALE_X(0.75f), yscale); CFont::SetPropOn(); CFont::SetRightJustifyOff(); @@ -736,13 +726,12 @@ LoadingScreen(const char *str1, const char *str2, const char *splashscreen) } } -//--LCS: slightly fixed void LoadingIslandScreen(const char *levelName) { CSprite2d *splash; - splash = LoadSplash(GetLevelSplashScreen(CGame::currLevel)); + splash = LoadSplash(nil); if(!DoRWStuffStartOfFrame(0, 0, 0, 0, 0, 0, 255)) return; @@ -1082,7 +1071,7 @@ DisplayGameDebugText() #ifdef DRAW_GAME_VERSION_TEXT wchar ver[200]; - if(gDrawVersionText) // This realtime switch is our thing + if(gbDrawVersionText) // This realtime switch is our thing { #ifdef USE_OUR_VERSIONING @@ -1238,10 +1227,10 @@ MattRenderScene(void) /// CWorld::AdvanceCurrentScanCode(); // CMattRenderer::ResetRenderStates /// CRenderer::ClearForFrame(); // before ConstructRenderList - CClock::CalcEnvMapTimeMultiplicator(); + // CClock::CalcEnvMapTimeMultiplicator RwRenderStateSet(rwRENDERSTATECULLMODE, (void*)rwCULLMODECULLNONE); CWaterLevel::RenderWater(); // actually CMattRenderer::RenderWater - CClock::ms_EnvMapTimeMultiplicator = 1.0f; + // CClock::ms_EnvMapTimeMultiplicator = 1.0f; // cWorldStream::ClearDynamics /// CRenderer::ConstructRenderList(); // before PreRender if(gbRenderWorld0) @@ -1254,8 +1243,6 @@ if(gbRenderWorld1) if(gbRenderRoads) CRenderer::RenderRoads(); - CRenderer::GenerateEnvironmentMap(); // should be after static shadows, but that's weird - CRenderer::RenderPeds(); // not sure where to put these since LCS has no underwater entities @@ -1277,6 +1264,7 @@ if(gbRenderEverythingBarRoads) void RenderScene_new(void) { + PUSH_RENDERGROUP("RenderScene_new"); CClouds::Render(); DoRWRenderHorizon(); @@ -1284,6 +1272,7 @@ RenderScene_new(void) DefinedState(); // CMattRenderer::ResetRenderStates // moved CRenderer::RenderBoats to before transparent water + POP_RENDERGROUP(); } // TODO @@ -1291,7 +1280,9 @@ bool FredIsInFirstPersonCam(void) { return false; } void RenderEffects_new(void) { + PUSH_RENDERGROUP("RenderEffects_new"); CShadows::RenderStaticShadows(); + // CRenderer::GenerateEnvironmentMap CShadows::RenderStoredShadows(); CSkidmarks::Render(); CRubbish::Render(); @@ -1334,6 +1325,7 @@ if(gbRenderFadingInEntities) CPointLights::RenderFogEffect(); CMovingThings::Render(); CRenderer::RenderFirstPersonVehicle(); + POP_RENDERGROUP(); } #endif @@ -1346,6 +1338,7 @@ RenderScene(void) return; } #endif + PUSH_RENDERGROUP("RenderScene"); CClouds::Render(); DoRWRenderHorizon(); CRenderer::RenderRoads(); @@ -1361,12 +1354,14 @@ RenderScene(void) RwRenderStateSet(rwRENDERSTATECULLMODE, (void*)rwCULLMODECULLNONE); CWeather::RenderRainStreaks(); CCoronas::RenderSunReflection(); + POP_RENDERGROUP(); } void RenderDebugShit(void) { - //CTheScripts::RenderTheScriptDebugLines(); + PUSH_RENDERGROUP("RenderDebugShit"); + CTheScripts::RenderTheScriptDebugLines(); #ifndef FINAL if(gbShowCollisionLines) CRenderer::RenderCollisionLines(); @@ -1374,6 +1369,7 @@ RenderDebugShit(void) CDebug::DrawLines(); DefinedState(); #endif + POP_RENDERGROUP(); } void @@ -1385,6 +1381,7 @@ RenderEffects(void) return; } #endif + PUSH_RENDERGROUP("RenderEffects"); CGlass::Render(); CWaterCannons::Render(); CSpecialFX::Render(); @@ -1401,11 +1398,13 @@ RenderEffects(void) CPointLights::RenderFogEffect(); CMovingThings::Render(); CRenderer::RenderFirstPersonVehicle(); + POP_RENDERGROUP(); } void Render2dStuff(void) { + PUSH_RENDERGROUP("Render2dStuff"); RwRenderStateSet(rwRENDERSTATEZTESTENABLE, (void*)FALSE); RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)FALSE); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE); @@ -1477,6 +1476,7 @@ Render2dStuff(void) #ifdef DEBUGMENU DebugMenuRender(); #endif + POP_RENDERGROUP(); } void @@ -1484,7 +1484,9 @@ RenderMenus(void) { if (FrontEndMenuManager.m_bMenuActive) { + PUSH_RENDERGROUP("RenderMenus"); FrontEndMenuManager.DrawFrontEnd(); + POP_RENDERGROUP(); } #ifndef MASTER else @@ -1495,6 +1497,7 @@ RenderMenus(void) void Render2dStuffAfterFade(void) { + PUSH_RENDERGROUP("Render2dStuffAfterFade"); #ifndef MASTER DisplayGameDebugText(); #endif @@ -1505,6 +1508,7 @@ Render2dStuffAfterFade(void) CHud::DrawAfterFade(); CFont::DrawFonts(); CCredits::Render(); + POP_RENDERGROUP(); } void diff --git a/src/core/main.h b/src/core/main.h index 8e4123f..803afb1 100644 --- a/src/core/main.h +++ b/src/core/main.h @@ -1,5 +1,16 @@ #pragma once +#ifndef FINAL +// defined in RwHelpder.cpp +void PushRendergroup(const char *name); +void PopRendergroup(void); +#define PUSH_RENDERGROUP(str) PushRendergroup(str) +#define POP_RENDERGROUP() PopRendergroup() +#else +#define PUSH_RENDERGROUP(str) +#define POP_RENDERGROUP() +#endif + struct GlobalScene { RpWorld *world; @@ -7,7 +18,7 @@ struct GlobalScene }; extern GlobalScene Scene; -extern uint8 work_buff[102400]; +extern uint8 work_buff[55000]; extern char gString[256]; extern char gString2[512]; extern wchar gUString[256]; @@ -24,14 +35,6 @@ extern bool gbShowTimebars; extern bool gbPrintMemoryUsage; #endif -// leeds -extern bool gMakeResources; -extern bool gUseChunkFiles; -extern bool gSecondExportPass; -extern bool gUseModelResources; -extern bool gUseResources; -extern bool gNASTY_NASTY_MEM_SHUTDOWN_HACK; - class CSprite2d; bool DoRWStuffStartOfFrame(int16 TopRed, int16 TopGreen, int16 TopBlue, int16 BottomRed, int16 BottomGreen, int16 BottomBlue, int16 Alpha); @@ -63,3 +66,11 @@ void SaveINIControllerSettings(); extern bool gbNewRenderer; bool FredIsInFirstPersonCam(void); #endif + +#ifdef DRAW_GAME_VERSION_TEXT +extern bool gbDrawVersionText; +#endif + +#ifdef NO_MOVIES +extern bool gbNoMovies; +#endif diff --git a/src/core/re3.cpp b/src/core/re3.cpp index 3d077ba..0ce7f83 100644 --- a/src/core/re3.cpp +++ b/src/core/re3.cpp @@ -90,32 +90,99 @@ mysrand(unsigned int seed) #ifdef CUSTOM_FRONTEND_OPTIONS #include "frontendoption.h" + + +#ifdef MORE_LANGUAGES +void LangPolSelect(int8 action) +{ + if (action == FEOPTION_ACTION_SELECT) { + FrontEndMenuManager.m_PrefsLanguage = CMenuManager::LANGUAGE_POLISH; + FrontEndMenuManager.m_bFrontEnd_ReloadObrTxtGxt = true; + FrontEndMenuManager.InitialiseChangedLanguageSettings(); + FrontEndMenuManager.SaveSettings(); + } +} + +void LangRusSelect(int8 action) +{ + if (action == FEOPTION_ACTION_SELECT) { + FrontEndMenuManager.m_PrefsLanguage = CMenuManager::LANGUAGE_RUSSIAN; + FrontEndMenuManager.m_bFrontEnd_ReloadObrTxtGxt = true; + FrontEndMenuManager.InitialiseChangedLanguageSettings(); + FrontEndMenuManager.SaveSettings(); + } +} + +void LangJapSelect(int8 action) +{ + if (action == FEOPTION_ACTION_SELECT) { + FrontEndMenuManager.m_PrefsLanguage = CMenuManager::LANGUAGE_JAPANESE; + FrontEndMenuManager.m_bFrontEnd_ReloadObrTxtGxt = true; + FrontEndMenuManager.InitialiseChangedLanguageSettings(); + FrontEndMenuManager.SaveSettings(); + } +} +#endif + void CustomFrontendOptionsPopulate(void) { // Moved to an array in MenuScreensCustom.cpp, but APIs are still available. see frontendoption.h + int fd; // These work only if we have neo folder, so they're dynamically added #ifdef EXTENDED_PIPELINES - const char *pipelineNames[] = { "FED_PSP", "FED_PS2","FED_MOB" }; + const char *vehPipelineNames[] = { "FED_MFX", "FED_NEO" }; const char *off_on[] = { "FEM_OFF", "FEM_ON" }; - int fd = CFileMgr::OpenFile("neo/neo.txd","r"); + fd = CFileMgr::OpenFile("neo/neo.txd","r"); if (fd) { #ifdef GRAPHICS_MENU_OPTIONS FrontendOptionSetCursor(MENUPAGE_GRAPHICS_SETTINGS, -3, false); - FrontendOptionAddSelect("FED_VPL", 0, 0, MENUALIGN_LEFT, pipelineNames, ARRAY_SIZE(pipelineNames), (int8*)&CustomPipes::VehiclePipeSwitch, false, nil, "Graphics", "VehiclePipeline"); - FrontendOptionAddSelect("FED_WPL", 0, 0, MENUALIGN_LEFT, pipelineNames, ARRAY_SIZE(pipelineNames), (int8*)&CustomPipes::WorldPipeSwitch, false, nil, "Graphics", "WorldPipeline"); + FrontendOptionAddSelect("FED_VPL", 0, 0, MENUALIGN_LEFT, vehPipelineNames, ARRAY_SIZE(vehPipelineNames), (int8*)&CustomPipes::VehiclePipeSwitch, false, nil, "Graphics", "VehiclePipeline"); + FrontendOptionAddSelect("FED_PRM", 0, 0, MENUALIGN_LEFT, off_on, 2, (int8*)&CustomPipes::RimlightEnable, false, nil, "Graphics", "NeoRimLight"); FrontendOptionAddSelect("FED_WLM", 0, 0, MENUALIGN_LEFT, off_on, 2, (int8*)&CustomPipes::LightmapEnable, false, nil, "Graphics", "NeoLightMaps"); FrontendOptionAddSelect("FED_RGL", 0, 0, MENUALIGN_LEFT, off_on, 2, (int8*)&CustomPipes::GlossEnable, false, nil, "Graphics", "NeoRoadGloss"); #else FrontendOptionSetCursor(MENUPAGE_DISPLAY_SETTINGS, -3, false); - FrontendOptionAddSelect("FED_VPL", 0, 0, MENUALIGN_LEFT, pipelineNames, ARRAY_SIZE(pipelineNames), (int8*)&CustomPipes::VehiclePipeSwitch, false, nil, "Graphics", "VehiclePipeline"); - FrontendOptionAddSelect("FED_WPL", 0, 0, MENUALIGN_LEFT, pipelineNames, ARRAY_SIZE(pipelineNames), (int8*)&CustomPipes::WorldPipeSwitch, false, nil, "Graphics", "WorldPipeline"); + FrontendOptionAddSelect("FED_VPL", 0, 0, MENUALIGN_LEFT, vehPipelineNames, ARRAY_SIZE(vehPipelineNames), (int8*)&CustomPipes::VehiclePipeSwitch, false, nil, "Graphics", "VehiclePipeline"); + FrontendOptionAddSelect("FED_PRM", 0, 0, MENUALIGN_LEFT, off_on, 2, (int8*)&CustomPipes::RimlightEnable, false, nil, "Graphics", "NeoRimLight"); FrontendOptionAddSelect("FED_WLM", 0, 0, MENUALIGN_LEFT, off_on, 2, (int8*)&CustomPipes::LightmapEnable, false, nil, "Graphics", "NeoLightMaps"); FrontendOptionAddSelect("FED_RGL", 0, 0, MENUALIGN_LEFT, off_on, 2, (int8*)&CustomPipes::GlossEnable, false, nil, "Graphics", "NeoRoadGloss"); #endif CFileMgr::CloseFile(fd); } +#endif + // Add outsourced language translations, if files are found +#ifdef MORE_LANGUAGES + int fd2; + FrontendOptionSetCursor(MENUPAGE_LANGUAGE_SETTINGS, 5, false); +#if 0 + if (fd = CFileMgr::OpenFile("text/polish.gxt")) { + if (fd2 = CFileMgr::OpenFile("models/fonts_p.txd")) { + FrontendOptionAddDynamic("FEL_POL", 0, 0, MENUALIGN_CENTER, nil, nil, LangPolSelect, nil, nil); + CFileMgr::CloseFile(fd2); + } + CFileMgr::CloseFile(fd); + } +#endif + + if (fd = CFileMgr::OpenFile("text/russian.gxt")) { + if (fd2 = CFileMgr::OpenFile("models/fonts_r.txd")) { + FrontendOptionAddDynamic("FEL_RUS", 0, 0, MENUALIGN_CENTER, nil, nil, LangRusSelect, nil, nil); + CFileMgr::CloseFile(fd2); + } + CFileMgr::CloseFile(fd); + } + +#if 0 + if (fd = CFileMgr::OpenFile("text/japanese.gxt")) { + if (fd2 = CFileMgr::OpenFile("models/fonts_j.txd")) { + FrontendOptionAddDynamic("FEL_JAP", 0, 0, MENUALIGN_CENTER, nil, nil, LangJapSelect, nil, nil); + CFileMgr::CloseFile(fd2); + } + CFileMgr::CloseFile(fd); + } +#endif #endif } @@ -396,12 +463,12 @@ void SaveINIControllerSettings() #endif #endif StoreIni("Controller", "PadButtonsInited", ControlsManager.ms_padButtonsInited); - cfg.write_file("reLCS.ini"); + cfg.write_file("reVC.ini"); } bool LoadINISettings() { - if (!cfg.load_file("reLCS.ini")) + if (!cfg.load_file("reVC.ini")) return false; #ifdef IMPROVED_VIDEOMODE @@ -466,8 +533,10 @@ bool LoadINISettings() ReadIniIfExists("Draw", "FixSprites", &CDraw::ms_bFixSprites); #endif #ifdef DRAW_GAME_VERSION_TEXT - extern bool gDrawVersionText; - ReadIniIfExists("General", "DrawVersionText", &gDrawVersionText); + ReadIniIfExists("General", "DrawVersionText", &gbDrawVersionText); +#endif +#ifdef NO_MOVIES + ReadIniIfExists("General", "NoMovies", &gbNoMovies); #endif #ifdef CUSTOM_FRONTEND_OPTIONS @@ -563,8 +632,10 @@ void SaveINISettings() StoreIni("Draw", "FixSprites", CDraw::ms_bFixSprites); #endif #ifdef DRAW_GAME_VERSION_TEXT - extern bool gDrawVersionText; - StoreIni("General", "DrawVersionText", gDrawVersionText); + StoreIni("General", "DrawVersionText", gbDrawVersionText); +#endif +#ifdef NO_MOVIES + StoreIni("General", "NoMovies", gbNoMovies); #endif #ifdef CUSTOM_FRONTEND_OPTIONS for (int i = 0; i < MENUPAGES; i++) { @@ -581,7 +652,7 @@ void SaveINISettings() } #endif - cfg.write_file("reLCS.ini"); + cfg.write_file("reVC.ini"); } #endif @@ -611,6 +682,7 @@ void FastWeatherCheat(); void OnlyRenderWheelsCheat(); void ChittyChittyBangBangCheat(); void StrongGripCheat(); +void SpecialCarCheats(); void PickUpChicksCheat(); DebugMenuEntry *carCol1; @@ -729,15 +801,17 @@ SwitchToMission(void) #endif static const char *carnames[] = { - "spider", "landstal", "idaho", "stinger", "linerun", "peren", "sentinel", "patriot", "firetruk", "trash", "stretch", - "manana", "infernus", "blista", "pony", "mule", "cheetah", "ambulan", "fbicar", "moonbeam", "esperant", "taxi", - "kuruma", "bobcat", "mrwhoop", "bfinject", "hearse", "police", "enforcer", "securica", "banshee", "bus", "rhino", - "barracks", "dodo", "coach", "cabbie", "stallion", "rumpo", "rcbandit", "bellyup", "mrwongs", "mafia", "yardie", - "yakuza", "diablos", "columb", "hoods", "panlant", "flatbed", "yankee", "borgnine", "toyz", "campvan", "ballot", - "shelby", "pontiac", "esprit", "ammotruk", "hotrod", "Sindacco_Car", "Forelli_Car", "ferry", "ghost", "speeder", - "reefer", "predator", "train", "escape", "chopper", "airtrain", "deaddodo", "angel", "pizzaboy", "noodleboy", - "pcj600", "faggio", "freeway", "angel2", "sanchez2", "sanchez", "rcgoblin", "rcraider", "hunter", "maverick", - "polmav", "vcnmav" + "landstal", "idaho", "stinger", "linerun", "peren", "sentinel", "rio", "firetruk", "trash", "stretch", "manana", + "infernus", "voodoo", "pony", "mule", "cheetah", "ambulan", "fbicar", "moonbeam", "esperant", "taxi", "washing", + "bobcat", "mrwhoop", "bfinject", "hunter", "police", "enforcer", "securica", "banshee", "predator", "bus", + "rhino", "barracks", "cuban", "chopper", "angel", "coach", "cabbie", "stallion", "rumpo", "rcbandit", "romero", + "packer", "sentxs", "admiral", "squalo", "seaspar", "pizzaboy", "gangbur", "airtrain", "deaddodo", "speeder", + "reefer", "tropic", "flatbed", "yankee", "caddy", "zebra", "topfun", "skimmer", "pcj600", "faggio", "freeway", + "rcbaron", "rcraider", "glendale", "oceanic", "sanchez", "sparrow", "patriot", "lovefist", "coastg", "dinghy", + "hermes", "sabre", "sabretur", "pheonix", "walton", "regina", "comet", "deluxo", "burrito", "spand", "marquis", + "baggage", "kaufman", "maverick", "vcnmav", "rancher", "fbiranch", "virgo", "greenwoo", "jetmax", "hotring", + "sandking", "blistac", "polmav", "boxville", "benson", "mesa", "rcgoblin", "hotrina", "hotrinb", + "bloodra", "bloodrb", "vicechee" }; static CTweakVar** TweakVarsList; @@ -867,10 +941,11 @@ DebugMenuPopulate(void) DebugMenuAddCmd("Cheats", "Only render wheels", OnlyRenderWheelsCheat); DebugMenuAddCmd("Cheats", "Chitty chitty bang bang", ChittyChittyBangBangCheat); DebugMenuAddCmd("Cheats", "Strong grip", StrongGripCheat); + DebugMenuAddCmd("Cheats", "Special car", SpecialCarCheats); DebugMenuAddCmd("Cheats", "Pickup chicks", PickUpChicksCheat); static int spawnCarId = MI_LANDSTAL; - e = DebugMenuAddVar("Spawn", "Spawn Car ID", &spawnCarId, nil, 1, MI_SPIDER, MI_VCNMAV, carnames); + e = DebugMenuAddVar("Spawn", "Spawn Car ID", &spawnCarId, nil, 1, MI_LANDSTAL, MI_VICECHEE, carnames); DebugMenuEntrySetWrap(e, true); DebugMenuAddCmd("Spawn", "Spawn Car", [](){ if(spawnCarId == MI_CHOPPER || @@ -885,19 +960,22 @@ DebugMenuPopulate(void) DebugMenuAddCmd("Spawn", "Spawn Stinger", [](){ SpawnCar(MI_STINGER); }); DebugMenuAddCmd("Spawn", "Spawn Infernus", [](){ SpawnCar(MI_INFERNUS); }); DebugMenuAddCmd("Spawn", "Spawn Cheetah", [](){ SpawnCar(MI_CHEETAH); }); - DebugMenuAddCmd("Spawn", "Spawn Esprit", [](){ SpawnCar(MI_ESPRIT); }); + DebugMenuAddCmd("Spawn", "Spawn Phoenix", [](){ SpawnCar(MI_PHEONIX); }); DebugMenuAddCmd("Spawn", "Spawn Banshee", [](){ SpawnCar(MI_BANSHEE); }); DebugMenuAddCmd("Spawn", "Spawn Esperanto", [](){ SpawnCar(MI_ESPERANT); }); DebugMenuAddCmd("Spawn", "Spawn Stallion", [](){ SpawnCar(MI_STALLION); }); - DebugMenuAddCmd("Spawn", "Spawn Mafia", [](){ SpawnCar(MI_MAFIA); }); - DebugMenuAddCmd("Spawn", "Spawn Kuruma", [](){ SpawnCar(MI_KURUMA); }); + DebugMenuAddCmd("Spawn", "Spawn Admiral", [](){ SpawnCar(MI_ADMIRAL); }); + DebugMenuAddCmd("Spawn", "Spawn Washington", [](){ SpawnCar(MI_WASHING); }); DebugMenuAddCmd("Spawn", "Spawn Taxi", [](){ SpawnCar(MI_TAXI); }); DebugMenuAddCmd("Spawn", "Spawn Police", [](){ SpawnCar(MI_POLICE); }); DebugMenuAddCmd("Spawn", "Spawn Enforcer", [](){ SpawnCar(MI_ENFORCER); }); - DebugMenuAddCmd("Spawn", "Spawn Diablo", [](){ SpawnCar(MI_DIABLOS); }); - DebugMenuAddCmd("Spawn", "Spawn Yardie", [](){ SpawnCar(MI_YARDIE); }); + DebugMenuAddCmd("Spawn", "Spawn Cuban", [](){ SpawnCar(MI_CUBAN); }); + DebugMenuAddCmd("Spawn", "Spawn Voodoo", [](){ SpawnCar(MI_VOODOO); }); DebugMenuAddCmd("Spawn", "Spawn BF injection", [](){ SpawnCar(MI_BFINJECT); }); DebugMenuAddCmd("Spawn", "Spawn Maverick", [](){ SpawnCar(MI_MAVERICK); }); + DebugMenuAddCmd("Spawn", "Spawn VCN Maverick", [](){ SpawnCar(MI_VCNMAV); }); + DebugMenuAddCmd("Spawn", "Spawn Sparrow", [](){ SpawnCar(MI_SPARROW); }); + DebugMenuAddCmd("Spawn", "Spawn Sea Sparrow", [](){ SpawnCar(MI_SEASPAR); }); DebugMenuAddCmd("Spawn", "Spawn Hunter", [](){ SpawnCar(MI_HUNTER); }); DebugMenuAddCmd("Spawn", "Spawn Rhino", [](){ SpawnCar(MI_RHINO); }); DebugMenuAddCmd("Spawn", "Spawn Firetruck", [](){ SpawnCar(MI_FIRETRUCK); }); @@ -905,9 +983,10 @@ DebugMenuPopulate(void) DebugMenuAddCmd("Spawn", "Spawn PCJ 600", [](){ SpawnCar(MI_PCJ600); }); DebugMenuAddCmd("Spawn", "Spawn Faggio", [](){ SpawnCar(MI_FAGGIO); }); DebugMenuAddCmd("Spawn", "Spawn Freeway", [](){ SpawnCar(MI_FREEWAY); }); + DebugMenuAddCmd("Spawn", "Spawn Squalo", [](){ SpawnCar(MI_SQUALO); }); + DebugMenuAddCmd("Spawn", "Spawn Skimmer", [](){ SpawnCar(MI_SKIMMER); }); DebugMenuAddVarBool8("Render", "Draw hud", &CHud::m_Wants_To_Draw_Hud, nil); - DebugMenuAddVar("Render", "Brightness", &FrontEndMenuManager.m_PrefsBrightness, nil, 16, 0, 700, nil); #ifdef PROPER_SCALING DebugMenuAddVarBool8("Render", "Proper Scaling", &CDraw::ms_bProperScaling, nil); #endif @@ -947,8 +1026,8 @@ extern bool gbRenderWorld2; #endif #ifdef EXTENDED_COLOURFILTER - static const char *filternames[] = { "None", "PSP", "PS2" }; - e = DebugMenuAddVar("Render", "Colourfilter", &CPostFX::EffectSwitch, nil, 1, CPostFX::POSTFX_OFF, CPostFX::POSTFX_PS2, filternames); + static const char *filternames[] = { "None", "Simple", "Normal", "Mobile" }; + e = DebugMenuAddVar("Render", "Colourfilter", &CPostFX::EffectSwitch, nil, 1, CPostFX::POSTFX_OFF, CPostFX::POSTFX_MOBILE, filternames); DebugMenuEntrySetWrap(e, true); DebugMenuAddVar("Render", "Intensity", &CPostFX::Intensity, nil, 0.05f, 0, 10.0f); DebugMenuAddVarBool8("Render", "Blur", &CPostFX::BlurOn, nil); @@ -959,25 +1038,18 @@ extern bool gbRenderWorld2; DebugMenuAddVarBool8("Render", "Occlusion debug", &bDispayOccDebugStuff, nil); #endif #ifdef EXTENDED_PIPELINES - static const char *worldpipenames[] = { "PSP", "PS2", "Mobile" }; - e = DebugMenuAddVar("Render", "World Rendering", &CustomPipes::WorldPipeSwitch, nil, - 1, CustomPipes::WORLDPIPE_PSP, CustomPipes::WORLDPIPE_MOBILE, worldpipenames); - DebugMenuEntrySetWrap(e, true); - static const char *vehpipenames[] = { "PSP", "PS2", "Mobile" }; + static const char *vehpipenames[] = { "MatFX", "Neo" }; e = DebugMenuAddVar("Render", "Vehicle Pipeline", &CustomPipes::VehiclePipeSwitch, nil, - 1, CustomPipes::VEHICLEPIPE_PSP, CustomPipes::VEHICLEPIPE_MOBILE, vehpipenames); + 1, CustomPipes::VEHICLEPIPE_MATFX, CustomPipes::VEHICLEPIPE_NEO, vehpipenames); DebugMenuEntrySetWrap(e, true); - DebugMenuAddVarBool8("Render", "Glass Cars cheat", &CustomPipes::gGlassCarsCheat, nil); -extern bool gbRenderDebugEnvMap; - DebugMenuAddVarBool8("Render", "Show Env map", &gbRenderDebugEnvMap, nil); -// DebugMenuAddVar("Render", "Neo Vehicle Shininess", &CustomPipes::VehicleShininess, nil, 0.1f, 0, 1.0f); -// DebugMenuAddVar("Render", "Neo Vehicle Specularity", &CustomPipes::VehicleSpecularity, nil, 0.1f, 0, 1.0f); + DebugMenuAddVar("Render", "Neo Vehicle Shininess", &CustomPipes::VehicleShininess, nil, 0.1f, 0, 1.0f); + DebugMenuAddVar("Render", "Neo Vehicle Specularity", &CustomPipes::VehicleSpecularity, nil, 0.1f, 0, 1.0f); DebugMenuAddVarBool8("Render", "Neo Ped Rim light enable", &CustomPipes::RimlightEnable, nil); DebugMenuAddVar("Render", "Mult", &CustomPipes::RimlightMult, nil, 0.1f, 0, 1.0f); -// DebugMenuAddVarBool8("Render", "Neo World Lightmaps enable", &CustomPipes::LightmapEnable, nil); -// DebugMenuAddVar("Render", "Mult", &CustomPipes::LightmapMult, nil, 0.1f, 0, 1.0f); -// DebugMenuAddVarBool8("Render", "Neo Road Gloss enable", &CustomPipes::GlossEnable, nil); -// DebugMenuAddVar("Render", "Mult", &CustomPipes::GlossMult, nil, 0.1f, 0, 1.0f); + DebugMenuAddVarBool8("Render", "Neo World Lightmaps enable", &CustomPipes::LightmapEnable, nil); + DebugMenuAddVar("Render", "Mult", &CustomPipes::LightmapMult, nil, 0.1f, 0, 1.0f); + DebugMenuAddVarBool8("Render", "Neo Road Gloss enable", &CustomPipes::GlossEnable, nil); + DebugMenuAddVar("Render", "Mult", &CustomPipes::GlossMult, nil, 0.1f, 0, 1.0f); #endif DebugMenuAddVarBool8("Debug Render", "Show Ped Paths", &gbShowPedPaths, nil); DebugMenuAddVarBool8("Debug Render", "Show Car Paths", &gbShowCarPaths, nil); @@ -993,14 +1065,14 @@ extern bool gbRenderDebugEnvMap; #ifdef DRAW_GAME_VERSION_TEXT - extern bool gDrawVersionText; - DebugMenuAddVarBool8("Debug", "Version Text", &gDrawVersionText, nil); + DebugMenuAddVarBool8("Debug", "Version Text", &gbDrawVersionText, nil); #endif DebugMenuAddVarBool8("Debug", "Show DebugStuffInRelease", &gbDebugStuffInRelease, nil); #ifdef TIMEBARS DebugMenuAddVarBool8("Debug", "Show Timebars", &gbShowTimebars, nil); #endif #ifndef FINAL + DebugMenuAddVarBool8("Debug", "Use debug render groups", &bDebugRenderGroups, nil); DebugMenuAddVarBool8("Debug", "Print Memory Usage", &gbPrintMemoryUsage, nil); #ifdef USE_CUSTOM_ALLOCATOR DebugMenuAddCmd("Debug", "Parse Heap", ParseHeap); @@ -1031,30 +1103,24 @@ extern bool gbRenderDebugEnvMap; #ifdef MISSION_SWITCHER DebugMenuEntry *missionEntry; static const char* missions[] = { - "initial: objects", "initial: hidden packages", "initial: car generators", "initial: pickups", "initial: unique stunt jumps", - "initial: player", "initial: general info", "initial: lods", "initial: weapons", "Home Sweet Home", "Taxi-Driver Sub-Mission", - "Paramedic Sub-Mission", "Vigilante Sub-Mission", "Karmageddon", "Firefighter Sub-Mission", "Trash Dash", "RC Triad Take-Down", - "Thrashin' RC", "Ragin' RC", "Chasin' RC", "GO GO Faggio", "Noodleboy", "Pizzaboy", "Wong Side Of The Tracks", "Bumps and Grinds: Course 1", - "Bumps and Grinds: Course 2", "Bumps and Grinds: Course 3", "Bumps and Grinds: Course 4", "Bumps and Grinds: Course 5", "Bumps and Grinds: Course 6", - "Bumps and Grinds: Course 7", "Bumps and Grinds: Course 8", "Bumps and Grinds: Course 9", "Bumps and Grinds: Course 10", "Car Salesman", "Bike Salesman", - "RACE: Low-Rider Rumble", "RACE: Deimos Dash", "RACE: Wi-Cheetah Run", "RACE: Red Light Racing", "RACE: Torrington TT", "RACE: Gangsta GP", - "Scooter Shooter", "AWOL Angel", "9mm Mayhem", "Scrapyard Challenge", "See the Sight Before your Flight", "SlashTV", "Slacker (Vincenzo)", - "Dealing Revenge (Vincenzo)", "Snuff (Vincenzo)", "Smash and Grab (Vincenzo)", "Hot Wheels (Vincenzo)", "The Portland Chainsaw Masquerade (Vincenzo)", - "The Offer (Salvatore)", "Ho Selecta! (Salvatore)", "Frighteners (Salvatore)", "Rollercoaster Ride (Salvatore)", "Contra-Banned (Salvatore)", - "Sindacco Sabotage (Salvatore)", "The Trouble with Triads (Salvatore)", "Driving Mr Leone (Salvatore)", "conversation (JD)", "Bone Voyeur! (JD)", - "Don in 60 Seconds (JD)", "A Volatile Situation (JD)", "Blow up 'Dolls' (JD)", "Salvatore's Salvation (JD)", "The Guns of Leone (JD)", - "Calm before the Storm (JD)", "The Made Man (JD)", "Snappy Dresser (Ma Cipriani)", "Big Rumble in Little China (Ma Cipriani)", "Grease Sucho (Ma Cipriani)", - "Dead Meat (Ma Cipriani)", "No Son of Mine (Ma Cipriani)", "Shop 'til you Strop (Maria)", "Taken for a Ride (Maria)", "Booby Prize (Maria)", - "Biker Heat (Maria)", "Overdose of Trouble (Maria)", "Making Toni (Salvatore)", "A Walk In The Park (Salvatore)", "Caught In The Act (Salvatore)", - "Search And Rescue (Salvatore)", "Taking The Peace (Salvatore)", "Shoot The Messenger (Salvatore)", "Sayonara Sindaccos (Leon McAffrey)", - "The Whole 9 Yardies (Leon McAffrey)", "Crazy '69' (Leon McAffrey)", "Night Of The Livid Dreads (Leon McAffrey)", "Munitions Dump (Leon McAffrey)", - "The Morgue Party Candidate (Donald Love)", "Steering The Vote (Donald Love)", "Cam-Pain (Donald Love)", "Friggin' The Riggin' (Donald Love)", - "Love & Bullets (Donald Love)", "Counterfeit Count (Donald Love)", "Love On The Rocks (Donald Love)", "L.C. Confidential (Church Confessional)", - "The Passion Of The Heist (Church Confessional)", "Karmageddon (Church Confessional)", "False Idols (Church Confessional)", "Rough Justice (Salvatore)", - "Dead Reckoning (Salvatore)", "Shogun Showdown (Salvatore)", "The Shoreside Redemption (Salvatore)", "The Sicilian Gambit (Salvatore)", - "Panlantic Land Grab (Donald Love)", "Stop the Press (Donald Love)", "Morgue Party Resurrection (Donald Love)", "No Money, Mo' Problems (Donald Love)", - "Bringing the House Down (Donald Love)", "Love on the Run (Donald Love)", "More Deadly than the Male (Toshiko Kasen)", "Cash Clash (Toshiko Kasen)", - "A Date with Death (Toshiko Kasen)", "Cash in Kazuki's Chips (Toshiko Kasen)" + "Initial", "Intro", "An Old Friend", "The Party", "Back Alley Brawl", "Jury Fury", "Riot", + "Treacherous Swine", "Mall Shootout", "Guardian Angels", "Sir, Yes Sir!", "All Hands On Deck!", + "The Chase", "Phnom Penh '86", "The Fastest Boat", "Supply & Demand", "Rub Out", "Death Row", + "Four Iron", "Demolition Man", "Two Bit Hit", "No Escape?", "The Shootist", "The Driver", + "The Job", "Gun Runner", "Boomshine Saigon", "Recruitment Drive", "Dildo Dodo", "Martha's Mug Shot", + "G-spotlight", "Shakedown", "Bar Brawl", "Cop Land", "Spilling the Beans", "Hit the Courier", + "Printworks Buy", "Sunshine Autos", "Interglobal Films Buy", "Cherry Popper Icecreams Buy", + "Kaufman Cabs Buy", "Malibu Club Buy", "The Boatyard Buy", "Pole Position Club Buy", "El Swanko Casa Buy", + "Links View Apartment Buy", "Hyman Condo Buy", "Ocean Heighs Aprt. Buy", "1102 Washington Street Buy", + "Vice Point Buy", "Skumole Shack Buy", "Cap the Collector", "Keep your Friends Close...", + "Alloy Wheels of Steel", "Messing with the Man", "Hog Tied", "Stunt Boat Challenge", "Cannon Fodder", + "Naval Engagement", "Trojan Voodoo", "Juju Scramble", "Bombs Away!", "Dirty Lickin's", "Love Juice", + "Psycho Killer", "Publicity Tour", "Weapon Range", "Road Kill", "Waste the Wife", "Autocide", + "Check Out at the Check In", "Loose Ends", "V.I.P.", "Friendly Rivalry", "Cabmaggedon", "TAXI DRIVER", + "PARAMEDIC", "FIREFIGHTER", "VIGILANTE", "HOTRING", "BLOODRING", "DIRTRING", "Sunshine Autos Races", + "Distribution", "Downtown Chopper Checkpoint", "Ocean Beach Chopper Checkpoint", "Vice Point Chopper Checkpoint", + "Little Haiti Chopper Checkpoint", "Trial by Dirt", "Test Track", "PCJ Playground", "Cone Crazy", + "PIZZA BOY", "RC Raider Pickup", "RC Bandit Race", "RC Baron Race", "Checkpoint Charlie" }; missionEntry = DebugMenuAddVar("Game", "Select mission", &nextMissionToSwitch, nil, 1, 0, ARRAY_SIZE(missions) - 1, missions); @@ -1112,7 +1178,7 @@ void re3_assert(const char *expr, const char *filename, unsigned int lineno, con strcat_s(re3_buff, re3_buffsize, "(Press Retry to debug the application)"); - nCode = ::MessageBoxA(nil, re3_buff, "RELCS Assertion Failed!", + nCode = ::MessageBoxA(nil, re3_buff, "REVC Assertion Failed!", MB_ABORTRETRYIGNORE|MB_ICONHAND|MB_SETFOREGROUND|MB_TASKMODAL); if (nCode == IDABORT) @@ -1133,7 +1199,7 @@ void re3_assert(const char *expr, const char *filename, unsigned int lineno, con abort(); #else // TODO - printf("\nRELCS ASSERT FAILED\n\tFile: %s\n\tLine: %d\n\tFunction: %s\n\tExpression: %s\n",filename,lineno,func,expr); + printf("\nREVC ASSERT FAILED\n\tFile: %s\n\tLine: %d\n\tFunction: %s\n\tExpression: %s\n",filename,lineno,func,expr); assert(false); #endif } @@ -1185,14 +1251,14 @@ void re3_usererror(const char *format, ...) vsprintf_s(re3_buff, re3_buffsize, format, va); va_end(va); - ::MessageBoxA(nil, re3_buff, "RELCS Error!", + ::MessageBoxA(nil, re3_buff, "REVC Error!", MB_OK|MB_ICONHAND|MB_SETFOREGROUND|MB_TASKMODAL); raise(SIGABRT); _exit(3); #else vsprintf(re3_buff, format, va); - printf("\nRELCS Error!\n\t%s\n",re3_buff); + printf("\nREVC Error!\n\t%s\n",re3_buff); assert(false); #endif } diff --git a/src/entities/Entity.cpp b/src/entities/Entity.cpp index 7e2104e..6204b74 100644 --- a/src/entities/Entity.cpp +++ b/src/entities/Entity.cpp @@ -4,7 +4,6 @@ #include "RwHelper.h" #include "ModelIndices.h" #include "Timer.h" -#include "Streaming.h" #include "Entity.h" #include "Object.h" #include "World.h" @@ -626,15 +625,10 @@ CEntity::SetupBigBuilding(void) m_level = CTheZones::GetLevelFromPosition(&GetPosition()); if(mi->m_lodDistances[0] <= 2000.0f) bStreamBIGBuilding = true; - if(m_modelIndex == islandLODindust || - m_modelIndex == islandLODcomInd || - m_modelIndex == islandLODcomSub || - m_modelIndex == islandLODsubInd || - m_modelIndex == islandLODsubCom || - mi->m_lodDistances[0] > 5000.0f || mi->m_ignoreDrawDist) + if(mi->m_lodDistances[0] > 2500.0f || mi->m_ignoreDrawDist) m_level = LEVEL_GENERIC; -// else if(m_level == LEVEL_GENERIC) -// printf("%s isn't in a level\n", mi->GetModelName()); + else if(m_level == LEVEL_GENERIC) + printf("%s isn't in a level\n", mi->GetModelName()); } float WindTabel[] = { diff --git a/src/entities/Entity.h b/src/entities/Entity.h index c7a6f88..2749e3f 100644 --- a/src/entities/Entity.h +++ b/src/entities/Entity.h @@ -24,11 +24,11 @@ enum eEntityStatus STATUS_PHYSICS, STATUS_ABANDONED, STATUS_WRECKED, - STATUS_TRAIN_MOVING, // these probably copied for FERRY + STATUS_TRAIN_MOVING, STATUS_TRAIN_NOT_MOVING, STATUS_HELI, STATUS_PLANE, - STATUS_PLAYER_REMOTE, // 12 in LCS + STATUS_PLAYER_REMOTE, STATUS_PLAYER_DISABLED, STATUS_GHOST }; diff --git a/src/entities/Physical.cpp b/src/entities/Physical.cpp index 7be5df2..b897a6e 100644 --- a/src/entities/Physical.cpp +++ b/src/entities/Physical.cpp @@ -21,7 +21,9 @@ #include "Pickups.h" #include "Physical.h" +#ifdef WALLCLIMB_CHEAT bool gGravityCheat; +#endif CPhysical::CPhysical(void) @@ -355,7 +357,7 @@ CPhysical::ProcessEntityCollision(CEntity *ent, CColPoint *colpoints) return numSpheres; } -//--LCS: done +// --MIAMI: Proof-read once void CPhysical::ProcessControl(void) { @@ -423,7 +425,7 @@ CPhysical::GetSpeed(const CVector &r) return m_vecMoveSpeed + m_vecMoveFriction + CrossProduct(m_vecTurnFriction + m_vecTurnSpeed, r); } -//--LCS: done +// --MIAMI: Proof-read once void CPhysical::ApplyMoveSpeed(void) { @@ -433,13 +435,13 @@ CPhysical::ApplyMoveSpeed(void) GetMatrix().Translate(m_vecMoveSpeed * CTimer::GetTimeStep()); } -//--LCS: done +// --MIAMI: Proof-read once void CPhysical::ApplyTurnSpeed(void) { if(bIsFrozen){ m_vecTurnSpeed = CVector(0.0f, 0.0f, 0.0f); - }else if(!m_vecTurnSpeed.IsZero()){ + }else{ // Move the coordinate axes by their speed // Note that this denormalizes the matrix CVector turnvec = m_vecTurnSpeed*CTimer::GetTimeStep(); @@ -449,36 +451,29 @@ CPhysical::ApplyTurnSpeed(void) } } -//--LCS: done +// --MIAMI: Proof-read once void CPhysical::ApplyMoveForce(float jx, float jy, float jz) { m_vecMoveSpeed += CVector(jx, jy, jz)*(1.0f/m_fMass); - m_vecTurnSpeed.x = clamp(m_vecTurnSpeed.x, -4.0f, 4.0f); - m_vecTurnSpeed.y = clamp(m_vecTurnSpeed.y, -4.0f, 4.0f); - m_vecTurnSpeed.z = clamp(m_vecTurnSpeed.z, -4.0f, 4.0f); } -//--LCS: done +// --MIAMI: Proof-read once void CPhysical::ApplyTurnForce(float jx, float jy, float jz, float px, float py, float pz) { CVector com = Multiply3x3(m_matrix, m_vecCentreOfMass); CVector turnimpulse = CrossProduct(CVector(px, py, pz)-com, CVector(jx, jy, jz)); m_vecTurnSpeed += turnimpulse*(1.0f/m_fTurnMass); - m_vecTurnSpeed.x = clamp(m_vecTurnSpeed.x, -4.0f, 4.0f); - m_vecTurnSpeed.y = clamp(m_vecTurnSpeed.y, -4.0f, 4.0f); - m_vecTurnSpeed.z = clamp(m_vecTurnSpeed.z, -4.0f, 4.0f); } -//--LCS: done void CPhysical::ApplyFrictionMoveForce(float jx, float jy, float jz) { m_vecMoveFriction += CVector(jx, jy, jz)*(1.0f/m_fMass); } -//--LCS: done +// --MIAMI: Proof-read once void CPhysical::ApplyFrictionTurnForce(float jx, float jy, float jz, float px, float py, float pz) { @@ -487,7 +482,7 @@ CPhysical::ApplyFrictionTurnForce(float jx, float jy, float jz, float px, float m_vecTurnFriction += turnimpulse*(1.0f/m_fTurnMass); } -//--LCS: done +// --MIAMI: Proof-read once bool CPhysical::ApplySpringCollision(float springConst, CVector &springDir, CVector &point, float springRatio, float bias) { @@ -501,16 +496,16 @@ CPhysical::ApplySpringCollision(float springConst, CVector &springDir, CVector & return true; } -//--LCS: done +// --MIAMI: Proof-read once bool -CPhysical::ApplySpringCollisionAlt(float springConst, CVector &springDir, CVector &point, float springRatio, float bias, CVector &forceDir, float &impulse) +CPhysical::ApplySpringCollisionAlt(float springConst, CVector &springDir, CVector &point, float springRatio, float bias, CVector &forceDir) { float compression = 1.0f - springRatio; if(compression > 0.0f){ if(DotProduct(springDir, forceDir) > 0.0f) forceDir *= -1.0f; float step = Min(CTimer::GetTimeStep(), 3.0f); - impulse = GRAVITY*m_fMass*step * springConst * compression * bias*2.0f; + float impulse = GRAVITY*m_fMass*step * springConst * compression * bias*2.0f; if(bIsHeavy) impulse *= 0.75f; ApplyMoveForce(forceDir*impulse); @@ -519,53 +514,36 @@ CPhysical::ApplySpringCollisionAlt(float springConst, CVector &springDir, CVecto return true; } -float DAMPING_LIMIT_OF_SPRING_FORCE = 0.999f; -float DAMPING_LIMIT_IN_FRAME= 0.25f; - -//--LCS: done +// --MIAMI: Proof-read once // What exactly is speed? bool -CPhysical::ApplySpringDampening(float damping, float dampingLimit, CVector &springDir, CVector &point, CVector &speed) +CPhysical::ApplySpringDampening(float damping, CVector &springDir, CVector &point, CVector &speed) { float speedA = DotProduct(speed, springDir); float speedB = DotProduct(GetSpeed(point), springDir); float step = Min(CTimer::GetTimeStep(), 3.0f); - damping *= step; + float impulse = -damping * (speedA + speedB)/2.0f * m_fMass * step * 0.53f; if(bIsHeavy) - damping *= 2.0f; - damping = clamp(damping, -DAMPING_LIMIT_IN_FRAME, DAMPING_LIMIT_IN_FRAME); + impulse *= 2.0f; // what is this? - float fSpeed = -speedA * damping; - if(fSpeed > 0.0f && fSpeed+speedB > 0.0f){ - if(speedB < 0.0f) - fSpeed = -speedB; - else - fSpeed = 0.0f; - }else if(fSpeed < 0.0f && fSpeed+speedB < 0.0f){ - if(speedB > 0.0f) - fSpeed = -speedB; - else - fSpeed = 0.0f; - } - - CVector com = Multiply3x3(m_matrix, m_vecCentreOfMass); - float impulse = fSpeed*GetMass(point-com, springDir); - float limit = Abs(dampingLimit)*DAMPING_LIMIT_OF_SPRING_FORCE; - if(impulse > limit) - impulse = limit; + float a = m_fTurnMass / ((point.MagnitudeSqr() + 1.0f) * 2.0f * m_fMass); + a = Min(a, 1.0f); + float b = Abs(impulse / (speedB * m_fMass)); + if(a < b) + impulse *= a/b; ApplyMoveForce(springDir*impulse); ApplyTurnForce(springDir*impulse, point); return true; } -//--LCS: done void CPhysical::ApplyGravity(void) { if (!bAffectedByGravity) return; +#ifdef WALLCLIMB_CHEAT if (gGravityCheat && this == FindPlayerVehicle()) { static CVector gravityUp(0.0f, 0.0f, 1.0f), surfaceUp(0.0f, 0.0f, 1.0f); CVector belowCar = GetPosition() - 2.0f*GetUp(); @@ -584,10 +562,10 @@ CPhysical::ApplyGravity(void) m_vecMoveSpeed -= GRAVITY * CTimer::GetTimeStep() * gravityUp; return; } +#endif m_vecMoveSpeed.z -= GRAVITY * CTimer::GetTimeStep(); } -//--LCS: done void CPhysical::ApplyFriction(void) { @@ -597,7 +575,7 @@ CPhysical::ApplyFriction(void) m_vecTurnFriction = CVector(0.0f, 0.0f, 0.0f); } -//--LCS: done +// --MIAMI: Proof-read once void CPhysical::ApplyAirResistance(void) { @@ -605,8 +583,8 @@ CPhysical::ApplyAirResistance(void) float f = Pow(m_fAirResistance, CTimer::GetTimeStep()); m_vecMoveSpeed *= f; m_vecTurnSpeed *= f; - }else{ - float f = Pow(1.0f - m_fAirResistance*m_vecMoveSpeed.Magnitude(), CTimer::GetTimeStep()); + }else if(GetStatus() != STATUS_GHOST){ + float f = Pow(1.0f/Abs(1.0f + m_fAirResistance*0.5f*m_vecMoveSpeed.MagnitudeSqr()), CTimer::GetTimeStep()); m_vecMoveSpeed *= f; m_vecTurnSpeed *= 0.99f; } @@ -715,7 +693,6 @@ CPhysical::ApplyCollision(CPhysical *B, CColPoint &colpoint, float &impulseA, fl int16 model = B->GetModelIndex(); if(model == MI_FIRE_HYDRANT && !Bobj->bHasBeenDamaged){ CParticleObject::AddObject(POBJECT_FIRE_HYDRANT, B->GetPosition() - CVector(0.0f, 0.0f, 0.5f), true); - CParticleObject::AddObject(POBJECT_FIRE_HYDRANT_STEAM, B->GetPosition() - CVector(0.0f, 0.0f, 0.5f), true); Bobj->bHasBeenDamaged = true; }else if(model == MI_PARKINGMETER || model == MI_PARKINGMETER2){ CPickups::CreateSomeMoney(GetPosition(), CGeneral::GetRandomNumber()%100); @@ -2331,44 +2308,3 @@ CPhysical::ProcessCollision(void) m_fElasticity = savedElasticity; RemoveAndAdd(); } - - - -// TEMP old VC code until bikes are done -bool -CPhysical::ApplySpringCollisionAlt(float springConst, CVector &springDir, CVector &point, float springRatio, float bias, CVector &forceDir) -{ - float compression = 1.0f - springRatio; - if(compression > 0.0f){ - if(DotProduct(springDir, forceDir) > 0.0f) - forceDir *= -1.0f; - float step = Min(CTimer::GetTimeStep(), 3.0f); - float impulse = GRAVITY*m_fMass*step * springConst * compression * bias*2.0f; - if(bIsHeavy) - impulse *= 0.75f; - ApplyMoveForce(forceDir*impulse); - ApplyTurnForce(forceDir*impulse, point); - } - return true; -} -bool -CPhysical::ApplySpringDampening(float damping, CVector &springDir, CVector &point, CVector &speed) -{ - float speedA = DotProduct(speed, springDir); - float speedB = DotProduct(GetSpeed(point), springDir); - float step = Min(CTimer::GetTimeStep(), 3.0f); - float impulse = -damping * (speedA + speedB)/2.0f * m_fMass * step * 0.53f; - if(bIsHeavy) - impulse *= 2.0f; - - // what is this? - float a = m_fTurnMass / ((point.MagnitudeSqr() + 1.0f) * 2.0f * m_fMass); - a = Min(a, 1.0f); - float b = Abs(impulse / (speedB * m_fMass)); - if(a < b) - impulse *= a/b; - - ApplyMoveForce(springDir*impulse); - ApplyTurnForce(springDir*impulse, point); - return true; -} diff --git a/src/entities/Physical.h b/src/entities/Physical.h index 290c267..926b976 100644 --- a/src/entities/Physical.h +++ b/src/entities/Physical.h @@ -158,8 +158,8 @@ public: void ApplyFrictionTurnForce(const CVector &j, const CVector &p) { ApplyFrictionTurnForce(j.x, j.y, j.z, p.x, p.y, p.z); } // springRatio: 1.0 fully extended, 0.0 fully compressed bool ApplySpringCollision(float springConst, CVector &springDir, CVector &point, float springRatio, float bias); - bool ApplySpringCollisionAlt(float springConst, CVector &springDir, CVector &point, float springRatio, float bias, CVector &forceDir, float &impulse); - bool ApplySpringDampening(float damping, float dampingLimit, CVector &springDir, CVector &point, CVector &speed); + bool ApplySpringCollisionAlt(float springConst, CVector &springDir, CVector &point, float springRatio, float bias, CVector &forceDir); + bool ApplySpringDampening(float damping, CVector &springDir, CVector &point, CVector &speed); void ApplyGravity(void); void ApplyFriction(void); void ApplyAirResistance(void); @@ -174,8 +174,4 @@ public: bool ProcessCollisionSectorList(CPtrList *lists); bool CheckCollision(void); bool CheckCollision_SimpleCar(void); - - // TEMP - bool ApplySpringCollisionAlt(float springConst, CVector &springDir, CVector &point, float springRatio, float bias, CVector &forceDir); - bool ApplySpringDampening(float damping, CVector &springDir, CVector &point, CVector &speed); }; diff --git a/src/extras/custompipes.cpp b/src/extras/custompipes.cpp index a874343..a485138 100644 --- a/src/extras/custompipes.cpp +++ b/src/extras/custompipes.cpp @@ -46,14 +46,13 @@ CustomMatCopy(void *dst, void *src, int32, int32) rw::TexDictionary *neoTxd; -bool gGlassCarsCheat; bool bRenderingEnvMap; -int32 EnvMapSize = 512; +int32 EnvMapSize = 128; rw::Camera *EnvMapCam; rw::Texture *EnvMapTex; rw::Texture *EnvMaskTex; -rw::RWDEVICE::Im2DVertex EnvScreenQuad[4]; -int16 QuadIndices[6] = { 0, 1, 2, 0, 2, 3 }; +static rw::RWDEVICE::Im2DVertex EnvScreenQuad[4]; +static int16 QuadIndices[6] = { 0, 1, 2, 0, 2, 3 }; static rw::Camera* CreateEnvMapCam(rw::World *world) @@ -342,7 +341,7 @@ ReadTweakValueTable(char *fp, InterpolatedValue &interp) * Neo Vehicle pipe */ -int32 VehiclePipeSwitch = VEHICLEPIPE_PS2; +int32 VehiclePipeSwitch = VEHICLEPIPE_MATFX; float VehicleShininess = 1.0f; float VehicleSpecularity = 1.0f; InterpolatedFloat Fresnel(0.4f); @@ -370,7 +369,6 @@ AttachVehiclePipe(rw::Clump *clump) * Neo World pipe */ -int32 WorldPipeSwitch = WORLDPIPE_PS2; bool LightmapEnable; float LightmapMult = 1.0f; InterpolatedFloat WorldLightmapBlend(1.0f); diff --git a/src/extras/custompipes.h b/src/extras/custompipes.h index faf99ef..7ad239f 100644 --- a/src/extras/custompipes.h +++ b/src/extras/custompipes.h @@ -75,23 +75,16 @@ void CustomPipeInit(void); void CustomPipeShutdown(void); void SetTxdFindCallback(void); -extern bool gGlassCarsCheat; extern bool bRenderingEnvMap; extern int32 EnvMapSize; extern rw::Camera *EnvMapCam; extern rw::Texture *EnvMapTex; extern rw::Texture *EnvMaskTex; -extern rw::RWDEVICE::Im2DVertex EnvScreenQuad[4]; -extern int16 QuadIndices[6]; void EnvMapRender(void); enum { - VEHICLEPIPE_PSP, - VEHICLEPIPE_PS2, - VEHICLEPIPE_MOBILE, - -// maybe later again... - VEHICLEPIPE_NEO = -1 + VEHICLEPIPE_MATFX, + VEHICLEPIPE_NEO }; extern int32 VehiclePipeSwitch; extern float VehicleShininess; @@ -106,12 +99,6 @@ void DestroyVehiclePipe(void); void AttachVehiclePipe(rw::Atomic *atomic); void AttachVehiclePipe(rw::Clump *clump); -enum { - WORLDPIPE_PSP, - WORLDPIPE_PS2, - WORLDPIPE_MOBILE -}; -extern int32 WorldPipeSwitch; extern bool LightmapEnable; extern float LightmapMult; extern InterpolatedFloat WorldLightmapBlend; @@ -146,6 +133,8 @@ void AttachRimPipe(rw::Clump *clump); } +#endif + namespace WorldRender{ extern int numBlendInsts[3]; void AtomicFirstPass(RpAtomic *atomic, int pass); @@ -154,4 +143,3 @@ void RenderBlendPass(int pass); } #endif -#endif diff --git a/src/extras/custompipes_d3d9.cpp b/src/extras/custompipes_d3d9.cpp index cb5fcad..3ad824e 100644 --- a/src/extras/custompipes_d3d9.cpp +++ b/src/extras/custompipes_d3d9.cpp @@ -2,10 +2,6 @@ #include "common.h" #ifdef RW_D3D9 -#ifdef EXTENDED_PIPELINES - -#include "rpmatfx.h" - #include "main.h" #include "RwHelper.h" #include "Lights.h" @@ -18,12 +14,13 @@ #include "World.h" #include "custompipes.h" +#ifdef EXTENDED_PIPELINES + #ifndef LIBRW #error "Need librw for EXTENDED_PIPELINES" #endif -//extern RwTexture *gpWhiteTexture; // from vehicle model info -static RwTexture *gpWhiteTexture; // nil works as white in librw currently +extern RwTexture *gpWhiteTexture; // from vehicle model info namespace CustomPipes { @@ -39,212 +36,13 @@ enum { VSLOC_eye = rw::d3d::VSLOC_afterLights, VSLOC_reflProps, - VSLOC_specLights, - - // Leeds building, Leeds vehicle mobile - VSLOC_emissive = rw::d3d::VSLOC_afterLights, - VSLOC_ambient, - VSLOC_viewMat, // only vehicle - - // Leeds vehicle PS2 - VSLOC_texMat = rw::d3d::VSLOC_afterLights, - - PSLOC_colorscale = 1, - PSLOC_shininess, - PSLOC_skyTop, - PSLOC_skyBot + VSLOC_specLights }; /* - * Leeds & Neo Vehicle pipe + * Neo Vehicle pipe */ -static void *leedsVehicle_VS; -static void *leedsVehicle_mobile_VS; -static void *leedsVehicle_blend_PS; -static void *leedsVehicle_add_PS; -static void *leedsVehicle_mobile_PS; - -static rw::RawMatrix normal2texcoord_flipU = { - { -0.5f, 0.0f, 0.0f }, 0.0f, - { 0.0f, -0.5f, 0.0f }, 0.0f, - { 0.0f, 0.0f, 1.0f }, 0.0f, - { 0.5f, 0.5f, 0.0f }, 1.0f -}; - -void -uploadEnvMatrix(rw::Frame *frame) -{ - using namespace rw; - Matrix invMat; - if(frame == nil) - frame = engine->currentCamera->getFrame(); - - RawMatrix envMtx, invMtx; - Matrix tmp = *frame->getLTM(); - // Now the weird part: we remove the camera pitch - tmp.at.z = 0.0f; - tmp.at = normalize(tmp.at); - tmp.right.x = -tmp.at.y; - tmp.right.y = tmp.at.x; - tmp.right.z = 0.0f;; - tmp.up.set(0.0f, 0.0f, 1.0f); - tmp.pos.set(0.0f, 0.0f, 0.0f); - tmp.flags = Matrix::TYPEORTHONORMAL; - - Matrix::invert(&invMat, &tmp); - convMatrix(&invMtx, &invMat); - RawMatrix::mult(&envMtx, &invMtx, &normal2texcoord_flipU); - d3d::d3ddevice->SetVertexShaderConstantF(VSLOC_texMat, (float*)&envMtx, 4); -} - -void -leedsVehicleRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header) -{ - using namespace rw; - using namespace rw::d3d; - using namespace rw::d3d9; - - int vsBits; - setStreamSource(0, header->vertexStream[0].vertexBuffer, 0, header->vertexStream[0].stride); - setIndices(header->indexBuffer); - setVertexDeclaration(header->vertexDeclaration); - - vsBits = lightingCB_Shader(atomic); - uploadMatrices(atomic->getFrame()->getLTM()); - - setVertexShader(leedsVehicle_VS); - if(gGlassCarsCheat) - setPixelShader(leedsVehicle_blend_PS); - else - setPixelShader(leedsVehicle_add_PS); - - d3d::setTexture(1, EnvMapTex); - uploadEnvMatrix(nil); - - SetRenderState(SRCBLEND, BLENDONE); - - float colorscale[4]; - colorscale[3] = 1.0f; - - InstanceData *inst = header->inst; - for(rw::uint32 i = 0; i < header->numMeshes; i++){ - Material *m = inst->material; - - SetRenderState(VERTEXALPHA, inst->vertexAlpha || m->color.alpha != 255); - - float coef = 0.0f; - if(RpMatFXMaterialGetEffects(m) == rpMATFXEFFECTENVMAP){ - coef = CClock::ms_EnvMapTimeMultiplicator * RpMatFXMaterialGetEnvMapCoefficient(m)*0.5f; - if(gGlassCarsCheat) - coef = 1.0f; - } - d3ddevice->SetPixelShaderConstantF(PSLOC_shininess, (float*)&coef, 1); - - setMaterial(m->color, m->surfaceProps); - - float cs = 1.0f; - // how does the PS2 handle this actually? probably scaled material color? - if(VehiclePipeSwitch == VEHICLEPIPE_PSP && m->texture) - cs = 2.0f; - colorscale[0] = colorscale[1] = colorscale[2] = cs; - d3ddevice->SetPixelShaderConstantF(PSLOC_colorscale, colorscale, 1); - - if(m->texture) - d3d::setTexture(0, m->texture); - else - d3d::setTexture(0, gpWhiteTexture); - - drawInst(header, inst); - inst++; - } - - d3d::setTexture(1, nil); - - SetRenderState(SRCBLEND, BLENDSRCALPHA); -} - -void -uploadWorldLights(void) -{ - using namespace rw; - using namespace rw::d3d; - using namespace rw::d3d9; - - RGBAf amb, emiss; - amb.red = CTimeCycle::GetAmbientRed(); - amb.green = CTimeCycle::GetAmbientGreen(); - amb.blue = CTimeCycle::GetAmbientBlue(); - amb.alpha = 1.0f; - emiss = pAmbient->color; - - d3ddevice->SetVertexShaderConstantF(VSLOC_ambient, (float*)&amb, 1); - d3ddevice->SetVertexShaderConstantF(VSLOC_emissive, (float*)&emiss, 1); -} - -void -leedsVehicleRenderCB_mobile(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header) -{ - using namespace rw; - using namespace rw::d3d; - using namespace rw::d3d9; - - int vsBits; - setStreamSource(0, header->vertexStream[0].vertexBuffer, 0, header->vertexStream[0].stride); - setIndices(header->indexBuffer); - setVertexDeclaration(header->vertexDeclaration); - - vsBits = lightingCB_Shader(atomic); - uploadMatrices(atomic->getFrame()->getLTM()); - - setVertexShader(leedsVehicle_mobile_VS); - setPixelShader(leedsVehicle_mobile_PS); - - uploadWorldLights(); - - RGBAf skyTop, skyBot; - skyTop.red = CTimeCycle::GetSkyTopRed()/255.0f; - skyTop.green = CTimeCycle::GetSkyTopGreen()/255.0f; - skyTop.blue = CTimeCycle::GetSkyTopBlue()/255.0f; - skyBot.red = CTimeCycle::GetSkyBottomRed()/255.0f; - skyBot.green = CTimeCycle::GetSkyBottomGreen()/255.0f; - skyBot.blue = CTimeCycle::GetSkyBottomBlue()/255.0f; - - d3ddevice->SetPixelShaderConstantF(PSLOC_skyTop, (float*)&skyTop, 1); - d3ddevice->SetPixelShaderConstantF(PSLOC_skyBot, (float*)&skyBot, 1); - - d3ddevice->SetVertexShaderConstantF(VSLOC_viewMat, (float*)&rw::engine->currentCamera->devView, 4); - - d3d::setTexture(1, EnvMapTex); - - InstanceData *inst = header->inst; - for(rw::uint32 i = 0; i < header->numMeshes; i++){ - Material *m = inst->material; - - SetRenderState(VERTEXALPHA, inst->vertexAlpha || m->color.alpha != 255); - - float coef = 0.0f; - if(RpMatFXMaterialGetEffects(m) == rpMATFXEFFECTENVMAP){ - coef = CClock::ms_EnvMapTimeMultiplicator * RpMatFXMaterialGetEnvMapCoefficient(m)*0.5f; - if(gGlassCarsCheat) - coef = 1.0f; - } - d3ddevice->SetPixelShaderConstantF(PSLOC_shininess, (float*)&coef, 1); - - setMaterial(m->color, m->surfaceProps); - - if(m->texture) - d3d::setTexture(0, m->texture); - else - d3d::setTexture(0, gpWhiteTexture); - - drawInst(header, inst); - inst++; - } - - d3d::setTexture(1, nil); -} - static void *neoVehicle_VS; static void *neoVehicle_PS; @@ -285,17 +83,13 @@ vehicleRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header) using namespace rw::d3d9; // TODO: make this less of a kludge - if(VehiclePipeSwitch == VEHICLEPIPE_PSP || VehiclePipeSwitch == VEHICLEPIPE_PS2){ - leedsVehicleRenderCB(atomic, header); - // matFXGlobals.pipelines[rw::platform]->render(atomic); - return; - } - if(VehiclePipeSwitch == VEHICLEPIPE_MOBILE){ - leedsVehicleRenderCB_mobile(atomic, header); + if(VehiclePipeSwitch == VEHICLEPIPE_MATFX){ + matFXGlobals.pipelines[rw::platform]->render(atomic); return; } int vsBits; + rw::uint32 flags = atomic->geometry->flags; setStreamSource(0, header->vertexStream[0].vertexBuffer, 0, header->vertexStream[0].stride); setIndices(header->indexBuffer); setVertexDeclaration(header->vertexDeclaration); @@ -327,7 +121,7 @@ vehicleRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header) reflProps[3] = m->surfaceProps.specular == 0.0f ? 0.0f : VehicleSpecularity; d3ddevice->SetVertexShaderConstantF(VSLOC_reflProps, reflProps, 1); - setMaterial(m->color, m->surfaceProps); + setMaterial(flags, m->color, m->surfaceProps); if(m->texture) d3d::setTexture(0, m->texture); @@ -347,15 +141,15 @@ vehicleRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header) void CreateVehiclePipe(void) { -// if(CFileMgr::LoadFile("neo/carTweakingTable.dat", work_buff, sizeof(work_buff), "r") <= 0) -// printf("Error: couldn't open 'neo/carTweakingTable.dat'\n"); -// else{ -// char *fp = (char*)work_buff; -// fp = ReadTweakValueTable(fp, Fresnel); -// fp = ReadTweakValueTable(fp, Power); -// fp = ReadTweakValueTable(fp, DiffColor); -// fp = ReadTweakValueTable(fp, SpecColor); -// } + if(CFileMgr::LoadFile("neo/carTweakingTable.dat", work_buff, sizeof(work_buff), "r") <= 0) + printf("Error: couldn't open 'neo/carTweakingTable.dat'\n"); + else{ + char *fp = (char*)work_buff; + fp = ReadTweakValueTable(fp, Fresnel); + fp = ReadTweakValueTable(fp, Power); + fp = ReadTweakValueTable(fp, DiffColor); + fp = ReadTweakValueTable(fp, SpecColor); + } #include "shaders/obj/neoVehicle_VS.inc" neoVehicle_VS = rw::d3d::createVertexShader(neoVehicle_VS_cso); @@ -365,26 +159,6 @@ CreateVehiclePipe(void) neoVehicle_PS = rw::d3d::createPixelShader(neoVehicle_PS_cso); assert(neoVehicle_PS); -#include "shaders/obj/leedsDefault_ENV_VS.inc" - leedsVehicle_VS = rw::d3d::createVertexShader(leedsDefault_ENV_VS_cso); - assert(leedsVehicle_VS); - -#include "shaders/obj/leedsVehicle_mobile_VS.inc" - leedsVehicle_mobile_VS = rw::d3d::createVertexShader(leedsVehicle_mobile_VS_cso); - assert(leedsVehicle_mobile_VS); - -#include "shaders/obj/leedsDefault_BLEND_PS.inc" - leedsVehicle_blend_PS = rw::d3d::createPixelShader(leedsDefault_BLEND_PS_cso); - assert(leedsVehicle_blend_PS); - -#include "shaders/obj/leedsDefault_ADD_PS.inc" - leedsVehicle_add_PS = rw::d3d::createPixelShader(leedsDefault_ADD_PS_cso); - assert(leedsVehicle_add_PS); - -#include "shaders/obj/leedsVehicle_mobile_PS.inc" - leedsVehicle_mobile_PS = rw::d3d::createPixelShader(leedsVehicle_mobile_PS_cso); - assert(leedsVehicle_mobile_PS); - rw::d3d9::ObjPipeline *pipe = rw::d3d9::ObjPipeline::create(); pipe->instanceCB = rw::d3d9::defaultInstanceCB; @@ -402,15 +176,6 @@ DestroyVehiclePipe(void) rw::d3d::destroyPixelShader(neoVehicle_PS); neoVehicle_PS = nil; - rw::d3d::destroyVertexShader(leedsVehicle_VS); - leedsVehicle_VS = nil; - - rw::d3d::destroyPixelShader(leedsVehicle_blend_PS); - leedsVehicle_blend_PS = nil; - - rw::d3d::destroyPixelShader(leedsVehicle_add_PS); - leedsVehicle_add_PS = nil; - ((rw::d3d9::ObjPipeline*)vehiclePipe)->destroy(); vehiclePipe = nil; } @@ -418,12 +183,11 @@ DestroyVehiclePipe(void) /* - * Leeds World pipe + * Neo World pipe */ -static void *leedsBuilding_VS; -static void *leedsBuilding_mobile_VS; -static void *scale_PS; +static void *neoWorld_VS; +static void *neoWorldVC_PS; static void worldRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header) @@ -432,64 +196,79 @@ worldRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header) using namespace rw::d3d; using namespace rw::d3d9; + if(!LightmapEnable){ + defaultRenderCB_Shader(atomic, header); + return; + } + + int vsBits; setStreamSource(0, header->vertexStream[0].vertexBuffer, 0, header->vertexStream[0].stride); setIndices(header->indexBuffer); setVertexDeclaration(header->vertexDeclaration); - if(CustomPipes::WorldPipeSwitch == CustomPipes::WORLDPIPE_MOBILE) - setVertexShader(CustomPipes::leedsBuilding_mobile_VS); - else - setVertexShader(CustomPipes::leedsBuilding_VS); - setPixelShader(scale_PS); - + vsBits = lightingCB_Shader(atomic); uploadMatrices(atomic->getFrame()->getLTM()); - uploadWorldLights(); - float colorscale[4]; - colorscale[3] = 1.0f; + float lightfactor[4]; InstanceData *inst = header->inst; for(rw::uint32 i = 0; i < header->numMeshes; i++){ Material *m = inst->material; - float cs = 1.0f; - if(WorldPipeSwitch != WORLDPIPE_MOBILE && m->texture) - cs = 255/128.0f; - colorscale[0] = colorscale[1] = colorscale[2] = cs; - d3ddevice->SetPixelShaderConstantF(PSLOC_colorscale, colorscale, 1); + if(MatFX::getEffects(m) == MatFX::DUAL){ + setVertexShader(neoWorld_VS); + + MatFX *matfx = MatFX::get(m); + Texture *dualtex = matfx->getDualTexture(); + if(dualtex == nil) + goto notex; + d3d::setTexture(1, dualtex); + lightfactor[0] = lightfactor[1] = lightfactor[2] = WorldLightmapBlend.Get()*LightmapMult; + }else{ + notex: + setVertexShader(default_amb_VS); + + d3d::setTexture(1, nil); + lightfactor[0] = lightfactor[1] = lightfactor[2] = 0.0f; + } + lightfactor[3] = m->color.alpha/255.0f; + d3d::setTexture(0, m->texture); + d3ddevice->SetPixelShaderConstantF(1, lightfactor, 1); + + SetRenderState(VERTEXALPHA, inst->vertexAlpha || m->color.alpha != 255); + + RGBA color = { 255, 255, 255, m->color.alpha }; + setMaterial(color, m->surfaceProps); if(m->texture) d3d::setTexture(0, m->texture); else - d3d::setTexture(0, gpWhiteTexture); // actually we don't even render this - - setMaterial(m->color, m->surfaceProps, WorldPipeSwitch == WORLDPIPE_PS2 ? 0.5f : 1.0f); - - SetRenderState(VERTEXALPHA, inst->vertexAlpha || m->color.alpha != 255); + d3d::setTexture(0, gpWhiteTexture); + setPixelShader(neoWorldVC_PS); drawInst(header, inst); inst++; } + d3d::setTexture(1, nil); } void CreateWorldPipe(void) { -// if(CFileMgr::LoadFile("neo/worldTweakingTable.dat", work_buff, sizeof(work_buff), "r") <= 0) -// printf("Error: couldn't open 'neo/worldTweakingTable.dat'\n"); -// else -// ReadTweakValueTable((char*)work_buff, WorldLightmapBlend); + if(CFileMgr::LoadFile("neo/worldTweakingTable.dat", work_buff, sizeof(work_buff), "r") <= 0) + printf("Error: couldn't open 'neo/worldTweakingTable.dat'\n"); + else + ReadTweakValueTable((char*)work_buff, WorldLightmapBlend); + +#include "shaders/obj/default_UV2_VS.inc" + neoWorld_VS = rw::d3d::createVertexShader(default_UV2_VS_cso); + assert(neoWorld_VS); + +#include "shaders/obj/neoWorldVC_PS.inc" + neoWorldVC_PS = rw::d3d::createPixelShader(neoWorldVC_PS_cso); + assert(neoWorldVC_PS); -#include "shaders/obj/leedsBuilding_VS.inc" - leedsBuilding_VS = rw::d3d::createVertexShader(leedsBuilding_VS_cso); - assert(leedsBuilding_VS); -#include "shaders/obj/leedsBuilding_mobile_VS.inc" - leedsBuilding_mobile_VS = rw::d3d::createVertexShader(leedsBuilding_mobile_VS_cso); - assert(leedsBuilding_mobile_VS); -#include "shaders/obj/scale_PS.inc" - scale_PS = rw::d3d::createPixelShader(scale_PS_cso); - assert(scale_PS); rw::d3d9::ObjPipeline *pipe = rw::d3d9::ObjPipeline::create(); pipe->instanceCB = rw::d3d9::defaultInstanceCB; @@ -501,12 +280,10 @@ CreateWorldPipe(void) void DestroyWorldPipe(void) { - rw::d3d::destroyVertexShader(leedsBuilding_VS); - leedsBuilding_VS = nil; - rw::d3d::destroyVertexShader(leedsBuilding_mobile_VS); - leedsBuilding_mobile_VS = nil; - rw::d3d::destroyPixelShader(scale_PS); - scale_PS = nil; + rw::d3d::destroyVertexShader(neoWorld_VS); + neoWorld_VS = nil; + rw::d3d::destroyPixelShader(neoWorldVC_PS); + neoWorldVC_PS = nil; ((rw::d3d9::ObjPipeline*)worldPipe)->destroy(); @@ -645,6 +422,7 @@ rimRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header) } int vsBits; + rw::uint32 flags = atomic->geometry->flags; setStreamSource(0, header->vertexStream[0].vertexBuffer, 0, header->vertexStream[0].stride); setIndices(header->indexBuffer); setVertexDeclaration(header->vertexDeclaration); @@ -662,7 +440,7 @@ rimRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header) SetRenderState(VERTEXALPHA, inst->vertexAlpha || m->color.alpha != 255); - setMaterial(m->color, m->surfaceProps); + setMaterial(flags, m->color, m->surfaceProps); if(m->texture){ d3d::setTexture(0, m->texture); @@ -688,7 +466,7 @@ rimSkinRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header) } int vsBits; - + rw::uint32 flags = atomic->geometry->flags; setStreamSource(0, (IDirect3DVertexBuffer9*)header->vertexStream[0].vertexBuffer, 0, header->vertexStream[0].stride); setIndices((IDirect3DIndexBuffer9*)header->indexBuffer); @@ -709,7 +487,7 @@ rimSkinRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header) SetRenderState(VERTEXALPHA, inst->vertexAlpha || m->color.alpha != 255); - setMaterial(m->color, m->surfaceProps); + setMaterial(flags, m->color, m->surfaceProps); if(inst->material->texture){ d3d::setTexture(0, m->texture); @@ -777,7 +555,12 @@ DestroyRimLightPipes(void) } +#endif + #ifdef NEW_RENDERER +#ifndef LIBRW +#error "Need librw for NEW_PIPELINES" +#endif namespace WorldRender { @@ -830,20 +613,16 @@ AtomicFirstPass(RpAtomic *atomic, int pass) assert(building->instHeader->platform == PLATFORM_D3D9); building->fadeAlpha = 255; building->lighting = !!(atomic->geometry->flags & rw::Geometry::LIGHT); + rw::uint32 flags = atomic->geometry->flags; bool setupDone = false; bool defer = false; SetMatrix(building, atomic->getFrame()->getLTM()); - float colorscale[4]; - InstanceData *inst = building->instHeader->inst; for(rw::uint32 i = 0; i < building->instHeader->numMeshes; i++, inst++){ Material *m = inst->material; - if(m->texture == nil) - continue; - if(inst->vertexAlpha || m->color.alpha != 255 || IsTextureTransparent(m->texture)){ defer = true; @@ -855,29 +634,22 @@ AtomicFirstPass(RpAtomic *atomic, int pass) setStreamSource(0, building->instHeader->vertexStream[0].vertexBuffer, 0, building->instHeader->vertexStream[0].stride); setIndices(building->instHeader->indexBuffer); setVertexDeclaration(building->instHeader->vertexDeclaration); - if(CustomPipes::WorldPipeSwitch == CustomPipes::WORLDPIPE_MOBILE) - setVertexShader(CustomPipes::leedsBuilding_mobile_VS); - else - setVertexShader(CustomPipes::leedsBuilding_VS); - setPixelShader(CustomPipes::scale_PS); + setVertexShader(default_amb_VS); d3ddevice->SetVertexShaderConstantF(VSLOC_combined, (float*)&building->combinedMat, 4); - - CustomPipes::uploadWorldLights(); - - colorscale[3] = 1.0f; - + if(building->lighting) + setAmbient(pAmbient->color); + else + setAmbient(black); setupDone = true; } - float cs = 1.0f; - if(CustomPipes::WorldPipeSwitch != CustomPipes::WORLDPIPE_MOBILE && m->texture) - cs = 255/128.0f; - colorscale[0] = colorscale[1] = colorscale[2] = cs; - d3ddevice->SetPixelShaderConstantF(CustomPipes::PSLOC_colorscale, colorscale, 1); + setMaterial(flags, m->color, m->surfaceProps); - d3d::setTexture(0, m->texture); - - setMaterial(m->color, m->surfaceProps, CustomPipes::WorldPipeSwitch == CustomPipes::WORLDPIPE_PS2 ? 0.5f : 1.0f); + if(m->texture){ + d3d::setTexture(0, m->texture); + setPixelShader(default_tex_PS); + }else + setPixelShader(default_PS); drawInst(building->instHeader, inst); } @@ -911,16 +683,7 @@ RenderBlendPass(int pass) using namespace rw::d3d; using namespace rw::d3d9; - if(CustomPipes::WorldPipeSwitch == CustomPipes::WORLDPIPE_MOBILE) - setVertexShader(CustomPipes::leedsBuilding_mobile_VS); - else - setVertexShader(CustomPipes::leedsBuilding_VS); - setPixelShader(CustomPipes::scale_PS); - - CustomPipes::uploadWorldLights(); - - float colorscale[4]; - colorscale[3] = 1.0f; + setVertexShader(default_amb_VS); int i; for(i = 0; i < numBlendInsts[pass]; i++){ @@ -930,26 +693,26 @@ RenderBlendPass(int pass) setIndices(building->instHeader->indexBuffer); setVertexDeclaration(building->instHeader->vertexDeclaration); d3ddevice->SetVertexShaderConstantF(VSLOC_combined, (float*)&building->combinedMat, 4); + if(building->lighting) + setAmbient(pAmbient->color); + else + setAmbient(black); InstanceData *inst = building->instHeader->inst; for(rw::uint32 j = 0; j < building->instHeader->numMeshes; j++, inst++){ Material *m = inst->material; - if(m->texture == nil) - continue; if(!inst->vertexAlpha && m->color.alpha == 255 && !IsTextureTransparent(m->texture) && building->fadeAlpha == 255) continue; // already done this one - float cs = 1.0f; - if(CustomPipes::WorldPipeSwitch != CustomPipes::WORLDPIPE_MOBILE && m->texture) - cs = 255/128.0f; - colorscale[0] = colorscale[1] = colorscale[2] = cs; - d3ddevice->SetPixelShaderConstantF(CustomPipes::PSLOC_colorscale, colorscale, 1); - - d3d::setTexture(0, m->texture); - rw::RGBA color = m->color; color.alpha = (color.alpha * building->fadeAlpha)/255; - setMaterial(color, m->surfaceProps, CustomPipes::WorldPipeSwitch == CustomPipes::WORLDPIPE_PS2 ? 0.5f : 1.0f); + setMaterial(color, m->surfaceProps); // always modulate here + + if(m->texture){ + d3d::setTexture(0, m->texture); + setPixelShader(default_tex_PS); + }else + setPixelShader(default_PS); drawInst(building->instHeader, inst); } @@ -959,4 +722,3 @@ RenderBlendPass(int pass) #endif #endif -#endif diff --git a/src/extras/custompipes_gl.cpp b/src/extras/custompipes_gl.cpp index 5d24070..fd68c74 100644 --- a/src/extras/custompipes_gl.cpp +++ b/src/extras/custompipes_gl.cpp @@ -1,10 +1,6 @@ #include "common.h" #ifdef RW_OPENGL -#ifdef EXTENDED_PIPELINES - -#include "rpmatfx.h" - #include "main.h" #include "RwHelper.h" #include "Lights.h" @@ -17,6 +13,8 @@ #include "World.h" #include "custompipes.h" +#ifdef EXTENDED_PIPELINES + #ifndef LIBRW #error "Need librw for EXTENDED_PIPELINES" #endif @@ -35,211 +33,14 @@ static int32 u_reflProps; static int32 u_specDir; static int32 u_specColor; -static int32 u_amb; -static int32 u_emiss; -static int32 u_colorscale; - -static int32 u_texMatrix; -static int32 u_fxparams; - -static int32 u_skyTop; -static int32 u_skyBot; - #define U(i) currentShader->uniformLocations[i] /* - * Leeds & Neo Vehicle pipe + * Neo Vehicle pipe */ -rw::gl3::Shader *leedsVehicleShader_add; -rw::gl3::Shader *leedsVehicleShader_blend; -rw::gl3::Shader *leedsVehicleShader_mobile; - rw::gl3::Shader *neoVehicleShader; -static rw::RawMatrix normal2texcoord_flipU = { - { -0.5f, 0.0f, 0.0f }, 0.0f, - { 0.0f, -0.5f, 0.0f }, 0.0f, - { 0.0f, 0.0f, 1.0f }, 0.0f, - { 0.5f, 0.5f, 0.0f }, 1.0f -}; - -static void -uploadEnvMatrix(rw::Frame *frame) -{ - using namespace rw; - using namespace rw::gl3; - - Matrix invMat; - if(frame == nil) - frame = engine->currentCamera->getFrame(); - - // cache the matrix across multiple meshes - static RawMatrix envMtx; -// can't do it, frame matrix may change -// if(frame != lastEnvFrame){ -// lastEnvFrame = frame; - { - - Matrix tmp = *frame->getLTM(); - // Now the weird part: we remove the camera pitch - tmp.at.z = 0.0f; - tmp.at = normalize(tmp.at); - tmp.right.x = -tmp.at.y; - tmp.right.y = tmp.at.x; - tmp.right.z = 0.0f;; - tmp.up.set(0.0f, 0.0f, 1.0f); - tmp.pos.set(0.0f, 0.0f, 0.0f); - tmp.flags = Matrix::TYPEORTHONORMAL; - - RawMatrix invMtx; - Matrix::invert(&invMat, &tmp); - convMatrix(&invMtx, &invMat); - RawMatrix::mult(&envMtx, &invMtx, &normal2texcoord_flipU); - } - glUniformMatrix4fv(U(u_texMatrix), 1, GL_FALSE, (float*)&envMtx); -} - -static void -leedsVehicleRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header) -{ - using namespace rw; - using namespace rw::gl3; - - Material *m; - - setWorldMatrix(atomic->getFrame()->getLTM()); - lightingCB(atomic); - - setupVertexInput(header); - - InstanceData *inst = header->inst; - rw::int32 n = header->numMeshes; - - if(gGlassCarsCheat) - leedsVehicleShader_blend->use(); - else - leedsVehicleShader_add->use(); - - setTexture(1, EnvMapTex); - uploadEnvMatrix(nil); - - SetRenderState(SRCBLEND, BLENDONE); - - float colorscale[4]; - colorscale[3] = 1.0f; - - while(n--){ - m = inst->material; - - rw::SetRenderState(VERTEXALPHA, inst->vertexAlpha || m->color.alpha != 0xFF); - - float coef = 0.0f; - if(RpMatFXMaterialGetEffects(m) == rpMATFXEFFECTENVMAP){ - coef = CClock::ms_EnvMapTimeMultiplicator * RpMatFXMaterialGetEnvMapCoefficient(m)*0.5f; - if(gGlassCarsCheat) - coef = 1.0f; - } - glUniform1f(U(u_fxparams), coef); - - setMaterial(m->color, m->surfaceProps); - - float cs = 1.0f; - // how does the PS2 handle this actually? probably scaled material color? - if(VehiclePipeSwitch == VEHICLEPIPE_PSP && m->texture) - cs = 2.0f; - colorscale[0] = colorscale[1] = colorscale[2] = cs; - glUniform4fv(U(u_colorscale), 1, colorscale); - - setTexture(0, m->texture); - - drawInst(header, inst); - inst++; - } - - setTexture(1, nil); - - SetRenderState(SRCBLEND, BLENDSRCALPHA); - - teardownVertexInput(header); -} - -void -uploadWorldLights(void) -{ - using namespace rw; - using namespace rw::gl3; - - RGBAf amb, emiss; - amb.red = CTimeCycle::GetAmbientRed(); - amb.green = CTimeCycle::GetAmbientGreen(); - amb.blue = CTimeCycle::GetAmbientBlue(); - amb.alpha = 1.0f; - emiss = pAmbient->color; - - glUniform4fv(U(CustomPipes::u_amb), 1, (float*)&amb); - glUniform4fv(U(CustomPipes::u_emiss), 1, (float*)&emiss); -} - -static void -leedsVehicleRenderCB_mobile(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header) -{ - using namespace rw; - using namespace rw::gl3; - - Material *m; - - setWorldMatrix(atomic->getFrame()->getLTM()); - lightingCB(atomic); - - setupVertexInput(header); - - InstanceData *inst = header->inst; - rw::int32 n = header->numMeshes; - - leedsVehicleShader_mobile->use(); - - uploadWorldLights(); - - RGBAf skyTop, skyBot; - skyTop.red = CTimeCycle::GetSkyTopRed()/255.0f; - skyTop.green = CTimeCycle::GetSkyTopGreen()/255.0f; - skyTop.blue = CTimeCycle::GetSkyTopBlue()/255.0f; - skyBot.red = CTimeCycle::GetSkyBottomRed()/255.0f; - skyBot.green = CTimeCycle::GetSkyBottomGreen()/255.0f; - skyBot.blue = CTimeCycle::GetSkyBottomBlue()/255.0f; - - glUniform3fv(U(u_skyTop), 1, (float*)&skyTop); - glUniform3fv(U(u_skyBot), 1, (float*)&skyBot); - - setTexture(1, EnvMapTex); - - while(n--){ - m = inst->material; - - rw::SetRenderState(VERTEXALPHA, inst->vertexAlpha || m->color.alpha != 0xFF); - - float coef = 0.0f; - if(RpMatFXMaterialGetEffects(m) == rpMATFXEFFECTENVMAP){ - coef = CClock::ms_EnvMapTimeMultiplicator * RpMatFXMaterialGetEnvMapCoefficient(m)*0.5f; - if(gGlassCarsCheat) - coef = 1.0f; - } - glUniform1f(U(u_fxparams), coef); - - setMaterial(m->color, m->surfaceProps); - - setTexture(0, m->texture); - - drawInst(header, inst); - inst++; - } - - setTexture(1, nil); - - teardownVertexInput(header); -} - static void uploadSpecLights(void) { @@ -279,18 +80,14 @@ vehicleRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header) using namespace rw::gl3; // TODO: make this less of a kludge - if(VehiclePipeSwitch == VEHICLEPIPE_PSP || VehiclePipeSwitch == VEHICLEPIPE_PS2){ - leedsVehicleRenderCB(atomic, header); -// matFXGlobals.pipelines[rw::platform]->render(atomic); - return; - } - if(VehiclePipeSwitch == VEHICLEPIPE_MOBILE){ - leedsVehicleRenderCB_mobile(atomic, header); + if(VehiclePipeSwitch == VEHICLEPIPE_MATFX){ + matFXGlobals.pipelines[rw::platform]->render(atomic); return; } Material *m; + rw::uint32 flags = atomic->geometry->flags; setWorldMatrix(atomic->getFrame()->getLTM()); lightingCB(atomic); @@ -317,7 +114,7 @@ vehicleRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header) while(n--){ m = inst->material; - setMaterial(m->color, m->surfaceProps); + setMaterial(flags, m->color, m->surfaceProps); setTexture(0, m->texture); @@ -344,15 +141,15 @@ CreateVehiclePipe(void) using namespace rw; using namespace rw::gl3; -// if(CFileMgr::LoadFile("neo/carTweakingTable.dat", work_buff, sizeof(work_buff), "r") <= 0) -// printf("Error: couldn't open 'neo/carTweakingTable.dat'\n"); -// else{ -// char *fp = (char*)work_buff; -// fp = ReadTweakValueTable(fp, Fresnel); -// fp = ReadTweakValueTable(fp, Power); -// fp = ReadTweakValueTable(fp, DiffColor); -// fp = ReadTweakValueTable(fp, SpecColor); -// } + if(CFileMgr::LoadFile("neo/carTweakingTable.dat", work_buff, sizeof(work_buff), "r") <= 0) + printf("Error: couldn't open 'neo/carTweakingTable.dat'\n"); + else{ + char *fp = (char*)work_buff; + fp = ReadTweakValueTable(fp, Fresnel); + fp = ReadTweakValueTable(fp, Power); + fp = ReadTweakValueTable(fp, DiffColor); + fp = ReadTweakValueTable(fp, SpecColor); + } { @@ -364,27 +161,6 @@ CreateVehiclePipe(void) assert(neoVehicleShader); } - { -#include "shaders/obj/leedsDefault_vert.inc" -#include "shaders/obj/leedsDefault_frag.inc" - const char *vs[] = { shaderDecl, header_vert_src, "#define ENVMAP\n", leedsDefault_vert_src, nil }; - const char *fs_add[] = { shaderDecl, header_frag_src, "#define PASS_ADD\n", leedsDefault_frag_src, nil }; - const char *fs_blend[] = { shaderDecl, header_frag_src, "#define PASS_BLEND\n", leedsDefault_frag_src, nil }; - leedsVehicleShader_add = Shader::create(vs, fs_add); - assert(leedsVehicleShader_add); - leedsVehicleShader_blend = Shader::create(vs, fs_blend); - assert(leedsVehicleShader_blend); - } - - { -#include "shaders/obj/leedsVehicle_mobile_frag.inc" -#include "shaders/obj/leedsVehicle_mobile_vert.inc" - const char *vs[] = { shaderDecl, header_vert_src, leedsVehicle_mobile_vert_src, nil }; - const char *fs[] = { shaderDecl, header_frag_src, leedsVehicle_mobile_frag_src, nil }; - leedsVehicleShader_mobile = Shader::create(vs, fs); - assert(leedsVehicleShader_mobile); - } - rw::gl3::ObjPipeline *pipe = rw::gl3::ObjPipeline::create(); pipe->instanceCB = rw::gl3::defaultInstanceCB; @@ -399,15 +175,6 @@ DestroyVehiclePipe(void) neoVehicleShader->destroy(); neoVehicleShader = nil; - leedsVehicleShader_add->destroy(); - leedsVehicleShader_add = nil; - - leedsVehicleShader_blend->destroy(); - leedsVehicleShader_blend = nil; - - leedsVehicleShader_mobile->destroy(); - leedsVehicleShader_mobile = nil; - ((rw::gl3::ObjPipeline*)vehiclePipe)->destroy(); vehiclePipe = nil; } @@ -415,11 +182,10 @@ DestroyVehiclePipe(void) /* - * Leeds World pipe + * Neo World pipe */ -rw::gl3::Shader *leedsWorldShader; -rw::gl3::Shader *leedsWorldShader_mobile; +rw::gl3::Shader *neoWorldShader; static void worldRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header) @@ -427,43 +193,54 @@ worldRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header) using namespace rw; using namespace rw::gl3; + if(!LightmapEnable){ + gl3::defaultRenderCB(atomic, header); + return; + } + Material *m; setWorldMatrix(atomic->getFrame()->getLTM()); + lightingCB(atomic); setupVertexInput(header); InstanceData *inst = header->inst; rw::int32 n = header->numMeshes; - if(CustomPipes::WorldPipeSwitch == CustomPipes::WORLDPIPE_MOBILE) - CustomPipes::leedsWorldShader_mobile->use(); - else - CustomPipes::leedsWorldShader->use(); + neoWorldShader->use(); - uploadWorldLights(); - - float colorscale[4]; - colorscale[3] = 1.0f; + float lightfactor[4]; while(n--){ m = inst->material; - float cs = 1.0f; - if(WorldPipeSwitch != WORLDPIPE_MOBILE && m->texture) - cs = 255/128.0f; - colorscale[0] = colorscale[1] = colorscale[2] = cs; - glUniform4fv(U(u_colorscale), 1, colorscale); + if(MatFX::getEffects(m) == MatFX::DUAL){ + MatFX *matfx = MatFX::get(m); + Texture *dualtex = matfx->getDualTexture(); + if(dualtex == nil) + goto notex; + setTexture(1, dualtex); + lightfactor[0] = lightfactor[1] = lightfactor[2] = WorldLightmapBlend.Get()*LightmapMult; + }else{ + notex: + setTexture(1, nil); + lightfactor[0] = lightfactor[1] = lightfactor[2] = 0.0f; + } + lightfactor[3] = m->color.alpha/255.0f; + glUniform4fv(U(u_lightMap), 1, lightfactor); + + RGBA color = { 255, 255, 255, m->color.alpha }; + setMaterial(color, m->surfaceProps); setTexture(0, m->texture); - setMaterial(m->color, m->surfaceProps, CustomPipes::WorldPipeSwitch == CustomPipes::WORLDPIPE_PS2 ? 0.5f : 1.0f); - rw::SetRenderState(VERTEXALPHA, inst->vertexAlpha || m->color.alpha != 0xFF); drawInst(header, inst); inst++; } + setTexture(1, nil); teardownVertexInput(header); } @@ -473,22 +250,18 @@ CreateWorldPipe(void) using namespace rw; using namespace rw::gl3; -// if(CFileMgr::LoadFile("neo/worldTweakingTable.dat", work_buff, sizeof(work_buff), "r") <= 0) -// printf("Error: couldn't open 'neo/worldTweakingTable.dat'\n"); -// else -// ReadTweakValueTable((char*)work_buff, WorldLightmapBlend); + if(CFileMgr::LoadFile("neo/worldTweakingTable.dat", work_buff, sizeof(work_buff), "r") <= 0) + printf("Error: couldn't open 'neo/worldTweakingTable.dat'\n"); + else + ReadTweakValueTable((char*)work_buff, WorldLightmapBlend); { -#include "shaders/obj/scale_frag.inc" -#include "shaders/obj/leedsBuilding_vert.inc" -#include "shaders/obj/leedsBuilding_mobile_vert.inc" - const char *vs[] = { shaderDecl, header_vert_src, leedsBuilding_vert_src, nil }; - const char *vs_mobile[] = { shaderDecl, header_vert_src, leedsBuilding_mobile_vert_src, nil }; - const char *fs[] = { shaderDecl, header_frag_src, scale_frag_src, nil }; - leedsWorldShader = Shader::create(vs, fs); - assert(leedsWorldShader); - leedsWorldShader_mobile = Shader::create(vs_mobile, fs); - assert(leedsWorldShader_mobile); +#include "shaders/obj/neoWorldVC_frag.inc" +#include "shaders/obj/default_UV2_vert.inc" + const char *vs[] = { shaderDecl, header_vert_src, default_UV2_vert_src, nil }; + const char *fs[] = { shaderDecl, header_frag_src, neoWorldVC_frag_src, nil }; + neoWorldShader = Shader::create(vs, fs); + assert(neoWorldShader); } @@ -502,10 +275,8 @@ CreateWorldPipe(void) void DestroyWorldPipe(void) { - leedsWorldShader->destroy(); - leedsWorldShader = nil; - leedsWorldShader_mobile->destroy(); - leedsWorldShader_mobile = nil; + neoWorldShader->destroy(); + neoWorldShader = nil; ((rw::gl3::ObjPipeline*)worldPipe)->destroy(); worldPipe = nil; @@ -541,7 +312,12 @@ glossRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header) V3d eyePos = rw::engine->currentCamera->getFrame()->getLTM()->pos; glUniform3fv(U(u_eye), 1, (float*)&eyePos); - glUniform4fv(U(u_reflProps), 1, (float*)&GlossMult); + float reflProps[4]; + reflProps[0] = GlossMult; + reflProps[1] = 0.0f; + reflProps[2] = 0.0f; + reflProps[3] = 0.0f; + glUniform4fv(U(u_reflProps), 1, reflProps); SetRenderState(VERTEXALPHA, TRUE); SetRenderState(SRCBLEND, BLENDONE); @@ -650,6 +426,7 @@ rimSkinRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header) Material *m; + rw::uint32 flags = atomic->geometry->flags; setWorldMatrix(atomic->getFrame()->getLTM()); lightingCB(atomic); @@ -667,7 +444,7 @@ rimSkinRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header) while(n--){ m = inst->material; - setMaterial(m->color, m->surfaceProps); + setMaterial(flags, m->color, m->surfaceProps); setTexture(0, m->texture); @@ -692,6 +469,7 @@ rimRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header) Material *m; + rw::uint32 flags = atomic->geometry->flags; setWorldMatrix(atomic->getFrame()->getLTM()); lightingCB(atomic); @@ -707,7 +485,7 @@ rimRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header) while(n--){ m = inst->material; - setMaterial(m->color, m->surfaceProps); + setMaterial(flags, m->color, m->surfaceProps); setTexture(0, m->texture); @@ -799,22 +577,17 @@ CustomPipeRegisterGL(void) u_reflProps = rw::gl3::registerUniform("u_reflProps"); u_specDir = rw::gl3::registerUniform("u_specDir"); u_specColor = rw::gl3::registerUniform("u_specColor"); - - u_amb = rw::gl3::registerUniform("u_amb"); - u_emiss = rw::gl3::registerUniform("u_emiss"); - u_colorscale = rw::gl3::registerUniform("u_colorscale"); - - u_texMatrix = rw::gl3::registerUniform("u_texMatrix"); - u_fxparams = rw::gl3::registerUniform("u_fxparams"); - - u_skyTop = rw::gl3::registerUniform("u_skyTop"); - u_skyBot = rw::gl3::registerUniform("u_skyBot"); } } +#endif + #ifdef NEW_RENDERER +#ifndef LIBRW +#error "Need librw for NEW_PIPELINES" +#endif namespace WorldRender { @@ -855,20 +628,25 @@ AtomicFirstPass(RpAtomic *atomic, int pass) assert(building->instHeader->platform == PLATFORM_GL3); building->fadeAlpha = 255; building->lighting = !!(atomic->geometry->flags & rw::Geometry::LIGHT); + rw::uint32 flags = atomic->geometry->flags; + + WorldLights lights; + lights.numAmbients = 1; + lights.numDirectionals = 0; + lights.numLocals = 0; + if(building->lighting) + lights.ambient = pAmbient->color; + else + lights.ambient = black; bool setupDone = false; bool defer = false; building->matrix = *atomic->getFrame()->getLTM(); - float colorscale[4]; - InstanceData *inst = building->instHeader->inst; for(rw::uint32 i = 0; i < building->instHeader->numMeshes; i++, inst++){ Material *m = inst->material; - if(m->texture == nil) - continue; - if(inst->vertexAlpha || m->color.alpha != 255 || IsTextureTransparent(m->texture)){ defer = true; @@ -877,27 +655,14 @@ AtomicFirstPass(RpAtomic *atomic, int pass) // alright we're rendering this atomic if(!setupDone){ - if(CustomPipes::WorldPipeSwitch == CustomPipes::WORLDPIPE_MOBILE) - CustomPipes::leedsWorldShader_mobile->use(); - else - CustomPipes::leedsWorldShader->use(); + defaultShader->use(); setWorldMatrix(&building->matrix); setupVertexInput(building->instHeader); - - CustomPipes::uploadWorldLights(); - - colorscale[3] = 1.0f; - + setLights(&lights); setupDone = true; } - setMaterial(m->color, m->surfaceProps, CustomPipes::WorldPipeSwitch == CustomPipes::WORLDPIPE_PS2 ? 0.5f : 1.0f); - - float cs = 1.0f; - if(CustomPipes::WorldPipeSwitch != CustomPipes::WORLDPIPE_MOBILE && m->texture) - cs = 255/128.0f; - colorscale[0] = colorscale[1] = colorscale[2] = cs; - glUniform4fv(U(CustomPipes::u_colorscale), 1, colorscale); + setMaterial(flags, m->color, m->surfaceProps); setTexture(0, m->texture); @@ -932,15 +697,11 @@ RenderBlendPass(int pass) using namespace rw; using namespace rw::gl3; - if(CustomPipes::WorldPipeSwitch == CustomPipes::WORLDPIPE_MOBILE) - CustomPipes::leedsWorldShader_mobile->use(); - else - CustomPipes::leedsWorldShader->use(); - - CustomPipes::uploadWorldLights(); - - float colorscale[4]; - colorscale[3] = 1.0f; + defaultShader->use(); + WorldLights lights; + lights.numAmbients = 1; + lights.numDirectionals = 0; + lights.numLocals = 0; int i; for(i = 0; i < numBlendInsts[pass]; i++){ @@ -948,24 +709,21 @@ RenderBlendPass(int pass) setupVertexInput(building->instHeader); setWorldMatrix(&building->matrix); + if(building->lighting) + lights.ambient = pAmbient->color; + else + lights.ambient = black; + setLights(&lights); InstanceData *inst = building->instHeader->inst; for(rw::uint32 j = 0; j < building->instHeader->numMeshes; j++, inst++){ Material *m = inst->material; - if(m->texture == nil) - continue; if(!inst->vertexAlpha && m->color.alpha == 255 && !IsTextureTransparent(m->texture) && building->fadeAlpha == 255) continue; // already done this one rw::RGBA color = m->color; color.alpha = (color.alpha * building->fadeAlpha)/255; - setMaterial(color, m->surfaceProps, CustomPipes::WorldPipeSwitch == CustomPipes::WORLDPIPE_PS2 ? 0.5f : 1.0f); - - float cs = 1.0f; - if(CustomPipes::WorldPipeSwitch != CustomPipes::WORLDPIPE_MOBILE && m->texture) - cs = 255/128.0f; - colorscale[0] = colorscale[1] = colorscale[2] = cs; - glUniform4fv(U(CustomPipes::u_colorscale), 1, colorscale); + setMaterial(color, m->surfaceProps); // always modulate here setTexture(0, m->texture); @@ -978,4 +736,3 @@ RenderBlendPass(int pass) #endif #endif -#endif diff --git a/src/extras/postfx.cpp b/src/extras/postfx.cpp index 1ccd8ac..f698bd5 100644 --- a/src/extras/postfx.cpp +++ b/src/extras/postfx.cpp @@ -7,6 +7,7 @@ #error "Need librw for EXTENDED_COLOURFILTER" #endif +#include "main.h" #include "RwHelper.h" #include "Camera.h" #include "MBlur.h" @@ -15,25 +16,23 @@ RwRaster *CPostFX::pFrontBuffer; RwRaster *CPostFX::pBackBuffer; bool CPostFX::bJustInitialised; -int CPostFX::EffectSwitch = POSTFX_PS2; +int CPostFX::EffectSwitch = POSTFX_NORMAL; bool CPostFX::BlurOn = false; bool CPostFX::MotionBlurOn = false; static RwIm2DVertex Vertex[4]; static RwIm2DVertex Vertex2[4]; static RwImVertexIndex Index[6] = { 0, 1, 2, 0, 2, 3 }; -static RwIm2DVertex BlurVertex[12]; -static RwImVertexIndex BlurIndex[18] = { 0, 1, 2, 0, 2, 3, 4, 5, 6, 4, 6, 7, 8, 9, 10, 8, 10, 11 }; #ifdef RW_D3D9 -void *colourfilterLCS_PS; +void *colourfilterVC_PS; void *contrast_PS; #endif #ifdef RW_OPENGL int32 u_blurcolor; int32 u_contrastAdd; int32 u_contrastMult; -rw::gl3::Shader *colourFilterLCS; +rw::gl3::Shader *colourFilterVC; rw::gl3::Shader *contrast; #endif @@ -144,8 +143,8 @@ CPostFX::Open(RwCamera *cam) #ifdef RW_D3D9 -#include "shaders/obj/colourfilterLCS_PS.inc" - colourfilterLCS_PS = rw::d3d::createPixelShader(colourfilterLCS_PS_cso); +#include "shaders/obj/colourfilterVC_PS.inc" + colourfilterVC_PS = rw::d3d::createPixelShader(colourfilterVC_PS_cso); #include "shaders/obj/contrastPS.inc" contrast_PS = rw::d3d::createPixelShader(contrastPS_cso); #endif @@ -154,11 +153,11 @@ CPostFX::Open(RwCamera *cam) { #include "shaders/obj/im2d_vert.inc" -#include "shaders/obj/colourfilterLCS_frag.inc" +#include "shaders/obj/colourfilterVC_frag.inc" const char *vs[] = { shaderDecl, header_vert_src, im2d_vert_src, nil }; - const char *fs[] = { shaderDecl, header_frag_src, colourfilterLCS_frag_src, nil }; - colourFilterLCS = Shader::create(vs, fs); - assert(colourFilterLCS); + const char *fs[] = { shaderDecl, header_frag_src, colourfilterVC_frag_src, nil }; + colourFilterVC = Shader::create(vs, fs); + assert(colourFilterVC); } { @@ -185,9 +184,9 @@ CPostFX::Close(void) pBackBuffer = nil; } #ifdef RW_D3D9 - if(colourfilterLCS_PS){ - rw::d3d::destroyPixelShader(colourfilterLCS_PS); - colourfilterLCS_PS = nil; + if(colourfilterVC_PS){ + rw::d3d::destroyPixelShader(colourfilterVC_PS); + colourfilterVC_PS = nil; } if(contrast_PS){ rw::d3d::destroyPixelShader(contrast_PS); @@ -195,9 +194,9 @@ CPostFX::Close(void) } #endif #ifdef RW_OPENGL - if(colourFilterLCS){ - colourFilterLCS->destroy(); - colourFilterLCS = nil; + if(colourFilterVC){ + colourFilterVC->destroy(); + colourFilterVC = nil; } if(contrast){ contrast->destroy(); @@ -206,44 +205,9 @@ CPostFX::Close(void) #endif } -static float blurOffset = 0.6f;//3.0f/16.0f; // not quite sure sure about this -static float blurIntensity = 0.25f; - void CPostFX::RenderOverlayBlur(RwCamera *cam, int32 r, int32 g, int32 b, int32 a) { - memcpy(BlurVertex, Vertex, sizeof(Vertex)); - memcpy(BlurVertex+4, Vertex, sizeof(Vertex)); - memcpy(BlurVertex+8, Vertex, sizeof(Vertex)); - int intensity = 255*blurIntensity; - int i; - for(i = 0; i < 4; i++){ - RwIm2DVertexSetScreenX(&BlurVertex[i], RwIm2DVertexGetScreenX(&BlurVertex[i]) + blurOffset); - RwIm2DVertexSetIntRGBA(&BlurVertex[i], 255, 255, 255, intensity); - } - for(i = 4; i < 8; i++){ - RwIm2DVertexSetScreenX(&BlurVertex[i], RwIm2DVertexGetScreenX(&BlurVertex[i]) + blurOffset); - RwIm2DVertexSetScreenY(&BlurVertex[i], RwIm2DVertexGetScreenY(&BlurVertex[i]) + blurOffset); - RwIm2DVertexSetIntRGBA(&BlurVertex[i], 255, 255, 255, intensity); - } - for(i = 8; i < 12; i++){ - RwIm2DVertexSetScreenY(&BlurVertex[i], RwIm2DVertexGetScreenY(&BlurVertex[i]) + blurOffset); - RwIm2DVertexSetIntRGBA(&BlurVertex[i], 255, 255, 255, intensity); - } - - RwRenderStateSet(rwRENDERSTATETEXTURERASTER, pBackBuffer); - RwRenderStateSet(rwRENDERSTATETEXTUREFILTER, (void*)rwFILTERLINEAR); - RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE); - RwRenderStateSet(rwRENDERSTATESRCBLEND, (void*)rwBLENDSRCALPHA); - RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void*)rwBLENDINVSRCALPHA); - - RwIm2DRenderIndexedPrimitive(rwPRIMTYPETRILIST, BlurVertex, 12, BlurIndex, 18); - - // this sucks: should render colourfilter with blending instead - // but can't change equation to subtraction for PSP here - GetBackBuffer(cam); - -/* the old way RwRenderStateSet(rwRENDERSTATETEXTURERASTER, pFrontBuffer); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE); @@ -276,7 +240,6 @@ CPostFX::RenderOverlayBlur(RwCamera *cam, int32 r, int32 g, int32 b, int32 a) RwIm2DRenderIndexedPrimitive(rwPRIMTYPETRILIST, Vertex, 4, Index, 6); RwIm2DRenderIndexedPrimitive(rwPRIMTYPETRILIST, BlurOn ? Vertex2 : Vertex, 4, Index, 6); -*/ } void @@ -328,15 +291,15 @@ CPostFX::RenderOverlayShader(RwCamera *cam, int32 r, int32 g, int32 b, int32 a) blurcolors[0] = r*f/255.0f; blurcolors[1] = g*f/255.0f; blurcolors[2] = b*f/255.0f; - blurcolors[3] = EffectSwitch == POSTFX_PSP ? -1.0f : 1.0f; + blurcolors[3] = 30/255.0f; #ifdef RW_D3D9 rw::d3d::d3ddevice->SetPixelShaderConstantF(10, blurcolors, 1); - rw::d3d::im2dOverridePS = colourfilterLCS_PS; + rw::d3d::im2dOverridePS = colourfilterVC_PS; #endif #ifdef RW_OPENGL - rw::gl3::im2dOverrideShader = colourFilterLCS; - colourFilterLCS->use(); - glUniform4fv(colourFilterLCS->uniformLocations[u_blurcolor], 1, blurcolors); + rw::gl3::im2dOverrideShader = colourFilterVC; + colourFilterVC->use(); + glUniform4fv(colourFilterVC->uniformLocations[u_blurcolor], 1, blurcolors); #endif } RwIm2DRenderIndexedPrimitive(rwPRIMTYPETRILIST, Vertex, 4, Index, 6); @@ -376,8 +339,11 @@ CPostFX::NeedBackBuffer(void) case POSTFX_SIMPLE: // no actual rendering here return false; - case POSTFX_PSP: - case POSTFX_PS2: + case POSTFX_NORMAL: + if(MotionBlurOn) + return false; + else + return true; case POSTFX_MOBILE: return true; } @@ -388,11 +354,24 @@ bool CPostFX::NeedFrontBuffer(int32 type) { // Last frame -- needed for motion blur - if(MotionBlurOn) + if(CMBlur::Drunkness > 0.0f) return true; if(type == MOTION_BLUR_SNIPER) return true; + switch(EffectSwitch){ + case POSTFX_OFF: + case POSTFX_SIMPLE: + // no actual rendering here + return false; + case POSTFX_NORMAL: + if(MotionBlurOn) + return true; + else + return false; + case POSTFX_MOBILE: + return false; + } return false; } @@ -407,17 +386,13 @@ CPostFX::GetBackBuffer(RwCamera *cam) void CPostFX::Render(RwCamera *cam, uint32 red, uint32 green, uint32 blue, uint32 blur, int32 type, uint32 bluralpha) { - // LCS PS2 blur is drawn in three passes: - // blend frame with current frame 3 times to blur a bit - // blend one more time with colour filter - // motion blur like normal + PUSH_RENDERGROUP("CPostFX::Render"); if(pFrontBuffer == nil) Open(cam); assert(pFrontBuffer); assert(pBackBuffer); -/* // LCS: don't need that anymore if(type == MOTION_BLUR_LIGHT_SCENE){ SmoothColor(red, green, blue, blur); red = AvgRed; @@ -425,7 +400,6 @@ CPostFX::Render(RwCamera *cam, uint32 red, uint32 green, uint32 blue, uint32 blu blue = AvgBlue; blur = AvgAlpha; } -*/ if(NeedBackBuffer()) GetBackBuffer(cam); @@ -433,15 +407,10 @@ CPostFX::Render(RwCamera *cam, uint32 red, uint32 green, uint32 blue, uint32 blu DefinedState(); RwRenderStateSet(rwRENDERSTATEFOGENABLE, (void*)FALSE); + RwRenderStateSet(rwRENDERSTATETEXTUREFILTER, (void*)rwFILTERNEAREST); RwRenderStateSet(rwRENDERSTATEZTESTENABLE, (void*)FALSE); RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)FALSE); - if(BlurOn) - RenderOverlayBlur(cam, 0, 0, 0, 0); - - RwRenderStateSet(rwRENDERSTATETEXTUREFILTER, (void*)rwFILTERNEAREST); - - // TODO(LCS): check this out if(type == MOTION_BLUR_SNIPER){ if(!bJustInitialised) RenderOverlaySniper(cam, red, green, blue, blur); @@ -450,16 +419,21 @@ CPostFX::Render(RwCamera *cam, uint32 red, uint32 green, uint32 blue, uint32 blu case POSTFX_SIMPLE: // no actual rendering here break; - case POSTFX_PSP: - case POSTFX_PS2: + case POSTFX_NORMAL: + if(MotionBlurOn){ + if(!bJustInitialised) + RenderOverlayBlur(cam, red, green, blue, blur); + }else{ + RenderOverlayShader(cam, red, green, blue, blur); + } + break; case POSTFX_MOBILE: RenderOverlayShader(cam, red, green, blue, blur); break; } - if(MotionBlurOn) - if(!bJustInitialised) - RenderMotionBlur(cam, bluralpha); + if(!bJustInitialised) + RenderMotionBlur(cam, 175.0f * CMBlur::Drunkness); RwRenderStateSet(rwRENDERSTATEZTESTENABLE, (void*)TRUE); RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)TRUE); @@ -475,6 +449,8 @@ CPostFX::Render(RwCamera *cam, uint32 red, uint32 green, uint32 blue, uint32 blu bJustInitialised = false; }else bJustInitialised = true; + + POP_RENDERGROUP(); } int CPostFX::PrevRed[NUMAVERAGE], CPostFX::AvgRed; diff --git a/src/extras/postfx.h b/src/extras/postfx.h index 232c151..db702bf 100644 --- a/src/extras/postfx.h +++ b/src/extras/postfx.h @@ -7,12 +7,9 @@ class CPostFX public: enum { POSTFX_OFF, - POSTFX_PSP, - POSTFX_PS2, - - // not so sensible for the moment - POSTFX_SIMPLE = -1, - POSTFX_MOBILE = -2 + POSTFX_SIMPLE, + POSTFX_NORMAL, + POSTFX_MOBILE }; static RwRaster *pFrontBuffer; static RwRaster *pBackBuffer; diff --git a/src/extras/shaders/colourfilterLCS.frag b/src/extras/shaders/colourfilterLCS.frag deleted file mode 100644 index 272ebb0..0000000 --- a/src/extras/shaders/colourfilterLCS.frag +++ /dev/null @@ -1,20 +0,0 @@ -uniform sampler2D tex0; -uniform vec4 u_blurcolor; - -FSIN vec4 v_color; -FSIN vec2 v_tex0; -FSIN float v_fog; - -void -main(void) -{ - vec4 dst = texture(tex0, vec2(v_tex0.x, 1.0-v_tex0.y)); - dst += dst*u_blurcolor; - - vec4 color; - color.rgb = dst.rgb; - color.a = 1.0; - - FRAGCOLOR(color); -} - diff --git a/src/extras/shaders/colourfilterLCS_PS.hlsl b/src/extras/shaders/colourfilterLCS_PS.hlsl deleted file mode 100644 index df1beef..0000000 --- a/src/extras/shaders/colourfilterLCS_PS.hlsl +++ /dev/null @@ -1,10 +0,0 @@ -sampler2D tex : register(s0); -float4 blurcol : register(c10); - -float4 main(in float2 texcoord : TEXCOORD0) : COLOR0 -{ - float4 dst = tex2D(tex, texcoord.xy); - dst += dst*blurcol*blurcol.a; - dst.a = 1.0; - return dst; -} diff --git a/src/extras/shaders/colourfilterVC.frag b/src/extras/shaders/colourfilterVC.frag new file mode 100644 index 0000000..283aa81 --- /dev/null +++ b/src/extras/shaders/colourfilterVC.frag @@ -0,0 +1,27 @@ +uniform sampler2D tex0; +uniform vec4 u_blurcolor; + +FSIN vec4 v_color; +FSIN vec2 v_tex0; +FSIN float v_fog; + +void +main(void) +{ + float a = u_blurcolor.a; + vec4 doublec = clamp(u_blurcolor*2.0, 0.0, 1.0); + vec4 dst = texture(tex0, vec2(v_tex0.x, 1.0-v_tex0.y)); + vec4 prev = dst; + for(int i = 0; i < 5; i++){ + vec4 tmp = dst*(1.0-a) + prev*doublec*a; + tmp += prev*u_blurcolor; + tmp += prev*u_blurcolor; + prev = clamp(tmp, 0.0, 1.0); + } + vec4 color; + color.rgb = prev.rgb; + color.a = 1.0; + + FRAGCOLOR(color); +} + diff --git a/src/extras/shaders/colourfilterVC_PS.hlsl b/src/extras/shaders/colourfilterVC_PS.hlsl new file mode 100644 index 0000000..90d3b50 --- /dev/null +++ b/src/extras/shaders/colourfilterVC_PS.hlsl @@ -0,0 +1,23 @@ +sampler2D tex : register(s0); +float4 blurcol : register(c10); + +//float4 blurcols[10] : register(c15); + + +float4 main(in float2 texcoord : TEXCOORD0) : COLOR0 +{ + float a = blurcol.a; + + float4 doublec = saturate(blurcol*2); + float4 dst = tex2D(tex, texcoord.xy); + float4 prev = dst; + for(int i = 0; i < 5; i++){ +// float4 doublec = saturate(blurcol*2); + float4 tmp = dst*(1-a) + prev*doublec*a; + tmp += prev*blurcol; + tmp += prev*blurcol; + prev = saturate(tmp); + } + prev.a = 1.0; + return prev; +} diff --git a/src/extras/shaders/leedsBuilding.vert b/src/extras/shaders/leedsBuilding.vert deleted file mode 100644 index 766cd08..0000000 --- a/src/extras/shaders/leedsBuilding.vert +++ /dev/null @@ -1,28 +0,0 @@ -uniform vec4 u_amb; -uniform vec4 u_emiss; - -#define surfEmissive (u_surfProps.w) - -VSIN(ATTRIB_POS) vec3 in_pos; - -VSOUT vec4 v_color; -VSOUT vec2 v_tex0; -VSOUT float v_fog; - -void -main(void) -{ - vec4 Vertex = u_world * vec4(in_pos, 1.0); - gl_Position = u_proj * u_view * Vertex; - vec3 Normal = mat3(u_world) * in_normal; - - v_tex0 = in_tex0; - - v_color = in_color; - v_color.rgb *= u_amb.rgb; - v_color.rgb += u_emiss.rgb*surfEmissive; - v_color = clamp(v_color, 0.0, 1.0); - v_color.a *= u_matColor.a; - - v_fog = DoFog(gl_Position.w); -} diff --git a/src/extras/shaders/leedsBuilding_VS.hlsl b/src/extras/shaders/leedsBuilding_VS.hlsl deleted file mode 100644 index 1ed939c..0000000 --- a/src/extras/shaders/leedsBuilding_VS.hlsl +++ /dev/null @@ -1,43 +0,0 @@ -#include "standardConstants.h" - -#define surfEmissive (surfProps.w) - -float4 emissive : register(c41); -float4 ambient : register(c42); - -struct VS_in -{ - float4 Position : POSITION; - float3 Normal : NORMAL; - float2 TexCoord : TEXCOORD0; - float4 Prelight : COLOR0; -}; - -struct VS_out { - float4 Position : POSITION; - float3 TexCoord0 : TEXCOORD0; // also fog - float4 Color : COLOR0; -}; - - -VS_out main(in VS_in input) -{ - VS_out output; - - output.Position = mul(combinedMat, input.Position); - float3 Vertex = mul(worldMat, input.Position).xyz; - float3 Normal = mul(normalMat, input.Normal); - - output.TexCoord0.xy = input.TexCoord; - - output.Color = input.Prelight; - output.Color.rgb *= ambient.rgb; - output.Color.rgb += emissive.rgb*surfEmissive; - - output.Color = clamp(output.Color, 0.0, 1.0); - output.Color.a *= matCol.a; - - output.TexCoord0.z = clamp((output.Position.w - fogEnd)*fogRange, fogDisable, 1.0); - - return output; -} diff --git a/src/extras/shaders/leedsBuilding_mobile.vert b/src/extras/shaders/leedsBuilding_mobile.vert deleted file mode 100644 index f06628e..0000000 --- a/src/extras/shaders/leedsBuilding_mobile.vert +++ /dev/null @@ -1,52 +0,0 @@ -uniform vec4 u_amb; -uniform vec4 u_emiss; - -#define surfEmissive (u_surfProps.w) - -#define vertContrast (1.5) -#define vertBrightness (0.25) -#define ambientContrast (1.2) -#define ambientBrightness (0.1) -#define emissiveContrast (1.25) -#define emissiveBrightness (0.05) - - -VSIN(ATTRIB_POS) vec3 in_pos; - -VSOUT vec4 v_color; -VSOUT vec2 v_tex0; -VSOUT float v_fog; - -void -main(void) -{ - vec4 Vertex = u_world * vec4(in_pos, 1.0); - gl_Position = u_proj * u_view * Vertex; - vec3 Normal = mat3(u_world) * in_normal; - - v_tex0 = in_tex0; - - vec4 vertCol = in_color; - vec4 amb = u_amb; - vec4 emiss = u_emiss; - - vertCol.xyz = ((vertCol.xyz - 0.5) * max(vertContrast, 0.0)) + 0.5; - vertCol.xyz += vertBrightness; - vertCol.xyz = max(vertCol.xyz, vec3(0.0,0.0,0.0)); - - amb.xyz = ((amb.xyz - 0.5) * max(ambientContrast, 0.0)) + 0.5; - amb.xyz += ambientBrightness; - amb.xyz = max(amb.xyz, vec3(0.0,0.0,0.0)); - - emiss.xyz = ((emiss.xyz - 0.5) * max(emissiveContrast, 0.0)) + 0.5; - emiss.xyz += emissiveBrightness; - emiss.xyz = max(emiss.xyz, vec3(0.0,0.0,0.0)); - v_color.xyz = emiss.xyz + (vertCol.xyz * amb.xyz); - v_color.w = vertCol.w; - - - v_color = clamp(v_color, 0.0, 1.0); - v_color.a *= u_matColor.a; - - v_fog = DoFog(gl_Position.w); -} diff --git a/src/extras/shaders/leedsBuilding_mobile_VS.hlsl b/src/extras/shaders/leedsBuilding_mobile_VS.hlsl deleted file mode 100644 index 23accf6..0000000 --- a/src/extras/shaders/leedsBuilding_mobile_VS.hlsl +++ /dev/null @@ -1,64 +0,0 @@ -#include "standardConstants.h" - -#define surfEmissive (surfProps.w) - -#define vertContrast (1.5) -#define vertBrightness (0.25) -#define ambientContrast (1.2) -#define ambientBrightness (0.1) -#define emissiveContrast (1.25) -#define emissiveBrightness (0.05) - -float4 emissive : register(c41); -float4 ambient : register(c42); - -struct VS_in -{ - float4 Position : POSITION; - float3 Normal : NORMAL; - float2 TexCoord : TEXCOORD0; - float4 Prelight : COLOR0; -}; - -struct VS_out { - float4 Position : POSITION; - float3 TexCoord0 : TEXCOORD0; // also fog - float4 Color : COLOR0; -}; - - -VS_out main(in VS_in input) -{ - VS_out output; - - output.Position = mul(combinedMat, input.Position); - float3 Vertex = mul(worldMat, input.Position).xyz; - float3 Normal = mul(normalMat, input.Normal); - - output.TexCoord0.xy = input.TexCoord; - - float4 vertCol = input.Prelight; - float4 amb = ambient; - float4 emiss = emissive; - - vertCol.xyz = ((vertCol.xyz - 0.5) * max(vertContrast, 0.0)) + 0.5; - vertCol.xyz += vertBrightness; - vertCol.xyz = max(vertCol.xyz, float3(0.0,0.0,0.0)); - - amb.xyz = ((amb.xyz - 0.5) * max(ambientContrast, 0.0)) + 0.5; - amb.xyz += ambientBrightness; - amb.xyz = max(amb.xyz, float3(0.0,0.0,0.0)); - - emiss.xyz = ((emiss.xyz - 0.5) * max(emissiveContrast, 0.0)) + 0.5; - emiss.xyz += emissiveBrightness; - emiss.xyz = max(emiss.xyz, float3(0.0,0.0,0.0)); - output.Color.xyz = emiss.xyz + (vertCol.xyz * amb.xyz); - output.Color.w = vertCol.w; - - output.Color = clamp(output.Color, 0.0, 1.0); - output.Color.a *= matCol.a; - - output.TexCoord0.z = clamp((output.Position.w - fogEnd)*fogRange, fogDisable, 1.0); - - return output; -} diff --git a/src/extras/shaders/leedsDefault.frag b/src/extras/shaders/leedsDefault.frag deleted file mode 100644 index 3955e6a..0000000 --- a/src/extras/shaders/leedsDefault.frag +++ /dev/null @@ -1,48 +0,0 @@ -uniform sampler2D tex0; -uniform sampler2D tex1; - -uniform float u_fxparams; -uniform vec4 u_colorscale; - -#define shininess (u_fxparams) - -FSIN vec4 v_color; -FSIN vec2 v_tex0; -#if defined(PASS_BLEND) || defined(PASS_ADD) -FSIN vec2 v_tex1; -#endif -FSIN float v_fog; - -void -main(void) -{ - vec4 pass1 = v_color*texture(tex0, vec2(v_tex0.x, 1.0-v_tex0.y))*u_colorscale; - pass1.rgb = clamp(pass1.rgb, 0.0, 1.0); - pass1.rgb = mix(u_fogColor.rgb, pass1.rgb, v_fog); - - vec4 color; -#if defined(PASS_BLEND) || defined(PASS_ADD) - vec4 pass2 = texture(tex1, vec2(v_tex1.x, 1.0-v_tex1.y)); - pass2.a *= shininess; - pass2.rgb = mix(vec3(0.0, 0.0, 0.0), pass2.rgb, v_fog); - - // We simulate drawing this in two passes. -#if defined(PASS_ADD) - // First pass with standard blending, second with addition - // We premultiply alpha so render state should be one. - color.rgb = pass1.rgb*pass1.a + pass2.rgb*pass2.a; - color.a = pass1.a; -#elif defined(PASS_BLEND) - // We premultiply alpha so render state should be one. - color.rgb = pass1.rgb*pass1.a*(1.0-pass2.a) + pass2.rgb*pass2.a; - color.a = pass1.a*(1.0-pass2.a) + pass2.a; -#endif - -#else - color = pass1; -#endif - - DoAlphaTest(color.a); - - FRAGCOLOR(color); -} diff --git a/src/extras/shaders/leedsDefault.vert b/src/extras/shaders/leedsDefault.vert deleted file mode 100644 index 9cb18a6..0000000 --- a/src/extras/shaders/leedsDefault.vert +++ /dev/null @@ -1,51 +0,0 @@ -#ifdef ENVMAP -uniform mat4 u_texMatrix; -#endif -#ifdef SKIN -uniform mat4 u_boneMatrices[64]; -#endif - -VSIN(ATTRIB_POS) vec3 in_pos; - -VSOUT vec4 v_color; -VSOUT vec2 v_tex0; -#ifdef ENVMAP -VSOUT vec2 v_tex1; -#endif -VSOUT float v_fog; - -void -main(void) -{ -#ifdef SKIN - vec3 SkinVertex = vec3(0.0, 0.0, 0.0); - vec3 SkinNormal = vec3(0.0, 0.0, 0.0); - for(int i = 0; i < 4; i++){ - SkinVertex += (u_boneMatrices[int(in_indices[i])] * vec4(in_pos, 1.0)).xyz * in_weights[i]; - SkinNormal += (mat3(u_boneMatrices[int(in_indices[i])]) * in_normal) * in_weights[i]; - } - - vec4 Vertex = u_world * vec4(SkinVertex, 1.0); - gl_Position = u_proj * u_view * Vertex; - vec3 Normal = mat3(u_world) * SkinNormal; -#else - vec4 Vertex = u_world * vec4(in_pos, 1.0); - gl_Position = u_proj * u_view * Vertex; - vec3 Normal = mat3(u_world) * in_normal; -#endif - - v_tex0 = in_tex0; -#ifdef ENVMAP - v_tex1 = (u_texMatrix * vec4(Normal, 1.0)).xy; -#endif - - v_color = in_color; - v_color.rgb += u_ambLight.rgb*surfAmbient; - v_color.rgb += DoDynamicLight(Vertex.xyz, Normal)*surfDiffuse; - // PS2 clamps before material color - // PSP clamps after...maybe another constant for this? - v_color = clamp(v_color, 0.0, 1.0); - v_color *= u_matColor; - - v_fog = DoFog(gl_Position.w); -} diff --git a/src/extras/shaders/leedsDefault_PS_x.hlsl b/src/extras/shaders/leedsDefault_PS_x.hlsl deleted file mode 100644 index 0b54652..0000000 --- a/src/extras/shaders/leedsDefault_PS_x.hlsl +++ /dev/null @@ -1,49 +0,0 @@ -struct VS_out { - float4 Position : POSITION; - float3 TexCoord0 : TEXCOORD0; -#if defined(PASS_BLEND) || defined(PASS_ADD) - float2 TexCoord1 : TEXCOORD1; -#endif - float4 Color : COLOR0; -}; - -sampler2D diffTex : register(s0); -sampler2D envTex : register(s1); - -float4 fogColor : register(c0); - -float4 colorscale : register(c1); -float4 fxparams : register(c2); - -#define shininess (fxparams.x) - -float4 main(VS_out input) : COLOR -{ - float4 pass1 = input.Color*tex2D(diffTex, input.TexCoord0.xy)*colorscale; - pass1.rgb = clamp(pass1.rgb, 0.0, 1.0); - pass1.rgb = lerp(fogColor.rgb, pass1.rgb, input.TexCoord0.z); - - float4 color; -#if defined(PASS_BLEND) || defined(PASS_ADD) - float4 pass2 = tex2D(envTex, input.TexCoord1.xy); - pass2.a *= shininess; - pass2.rgb = lerp(float3(0.0, 0.0, 0.0), pass2.rgb, input.TexCoord0.z); - - // We simulate drawing this in two passes. -#if defined(PASS_ADD) - // First pass with standard blending, second with addition - // We premultiply alpha so render state should be one. - color.rgb = pass1.rgb*pass1.a + pass2.rgb*pass2.a; - color.a = pass1.a; -#elif defined(PASS_BLEND) - // We premultiply alpha so render state should be one. - color.rgb = pass1.rgb*pass1.a*(1.0-pass2.a) + pass2.rgb*pass2.a; - color.a = pass1.a*(1.0-pass2.a) + pass2.a; -#endif - -#else - color = pass1; -#endif - - return color; -} diff --git a/src/extras/shaders/leedsDefault_VS_x.hlsl b/src/extras/shaders/leedsDefault_VS_x.hlsl deleted file mode 100644 index 58bee09..0000000 --- a/src/extras/shaders/leedsDefault_VS_x.hlsl +++ /dev/null @@ -1,72 +0,0 @@ -#include "standardConstants.h" - -#ifdef ENVMAP -float4x4 texMat : register(c41); -#endif -#ifdef SKIN -float4x3 boneMatrices[64] : register(c41); -#endif - -struct VS_in -{ - float4 Position : POSITION; - float3 Normal : NORMAL; - float2 TexCoord : TEXCOORD0; - float4 Prelight : COLOR0; -#ifdef SKIN - float4 Weights : BLENDWEIGHT; - int4 Indices : BLENDINDICES; -#endif -}; - -struct VS_out { - float4 Position : POSITION; - float3 TexCoord0 : TEXCOORD0; // also fog -#ifdef ENVMAP - float2 TexCoord1 : TEXCOORD1; -#endif - float4 Color : COLOR0; -}; - - -VS_out main(in VS_in input) -{ - VS_out output; - -#ifdef SKIN - int j; - float3 SkinVertex = float3(0.0, 0.0, 0.0); - float3 SkinNormal = float3(0.0, 0.0, 0.0); - for(j = 0; j < 4; j++){ - SkinVertex += mul(input.Position, boneMatrices[input.Indices[j]]).xyz * input.Weights[j]; - SkinNormal += mul(input.Normal, (float3x3)boneMatrices[input.Indices[j]]).xyz * input.Weights[j]; - } - output.Position = mul(combinedMat, SkinVertex); -// float3 V = mul(worldMat, SkinVertex).xyz; - float3 N = mul(normalMat, SkinNormal); -#else - output.Position = mul(combinedMat, input.Position); -// float3 V = mul(worldMat, input.Position).xyz; - float3 N = mul(normalMat, input.Normal); -#endif - - output.TexCoord0.xy = input.TexCoord; -#ifdef ENVMAP - output.TexCoord1 = mul(texMat, float4(N, 1.0)).xy; -#endif - - output.Color = input.Prelight; - output.Color.rgb += ambientLight.rgb * surfAmbient; - - int i; - for(i = 0; i < numDirLights; i++) - output.Color.xyz += DoDirLight(lights[i+firstDirLight], N)*surfDiffuse; - // PS2 clamps before material color - // PSP clamps after...maybe another constant for this? - output.Color = clamp(output.Color, 0.0, 1.0); - output.Color *= matCol; - - output.TexCoord0.z = clamp((output.Position.w - fogEnd)*fogRange, fogDisable, 1.0); - - return output; -} diff --git a/src/extras/shaders/leedsVehicle_mobile.frag b/src/extras/shaders/leedsVehicle_mobile.frag deleted file mode 100644 index 467379d..0000000 --- a/src/extras/shaders/leedsVehicle_mobile.frag +++ /dev/null @@ -1,76 +0,0 @@ -uniform sampler2D tex0; -uniform sampler2D tex1; - -uniform float u_fxparams; -uniform vec3 u_skyTop; -uniform vec3 u_skyBot; - -#define shininess (u_fxparams) - -// matfx: -// case 1 normal envmap -// custom1 (4.0, 1.0, 1.0, coef) -// custom2 (0.25, 3.0, 1.0, 1.0) -// case 2 too strong -// custom1 (4.0, 1.0, 2.0, coef) -// custom2 (0.5, 3.0, 1.0, 1.0) -// ???: practically no fresnel -// custom1 (4.0, 1.25, 0.01, coef) -// custom2 (1.0, 2.0, 1.1, 2.0) - -#define power (4.0) - -#define preMult (1.0) -#define postMult (1.0) -#define minRefl (0.25) -#define maxRefl (3.0) -#define minOpacity (1.0) -#define maxOpacity (1.0) - -//#define preMult (1.0) -//#define postMult (2.0) -//#define minRefl (0.5) -//#define maxRefl (3.0) -//#define minOpacity (1.0) -//#define maxOpacity (1.0) - -//#define preMult (1.25) -//#define postMult (0.01) -//#define minRefl (1.0) -//#define maxRefl (2.0) -//#define minOpacity (1.1) -//#define maxOpacity (2.0) - -FSIN vec4 v_color; -FSIN vec2 v_tex0; -FSIN vec2 v_tex1; -FSIN float v_fog; -FSIN vec2 v_reflData; - -#define v_NdotV (v_reflData.x) -#define v_lightingCont (v_reflData.y) - -void -main(void) -{ - vec4 pass1 = v_color*texture(tex0, vec2(v_tex0.x, 1.0-v_tex0.y)); - - vec3 envtex = texture(tex1, v_tex1).rgb; // V flipped - vec3 skyColour = mix(u_skyBot, u_skyTop, envtex.g); - vec3 envOut = mix(envtex.rrr, skyColour, envtex.b); - - float fresnel = mix(shininess, shininess * 2.0, v_NdotV); - fresnel = pow(v_NdotV * preMult, power); - fresnel = clamp(fresnel * postMult, 0.0, 1.0); - float reflectivity = v_lightingCont * mix(minRefl, maxRefl, fresnel)*shininess; - - float opacity = mix(minOpacity, maxOpacity, fresnel)*pass1.a; - vec4 color = pass1 + vec4(reflectivity * envOut, 0.0); - color.a = opacity; - - color.rgb = mix(u_fogColor.rgb, color.rgb, v_fog); - - DoAlphaTest(color.a); - - FRAGCOLOR(color); -} diff --git a/src/extras/shaders/leedsVehicle_mobile.vert b/src/extras/shaders/leedsVehicle_mobile.vert deleted file mode 100644 index b2123fa..0000000 --- a/src/extras/shaders/leedsVehicle_mobile.vert +++ /dev/null @@ -1,40 +0,0 @@ -uniform vec4 u_amb; -uniform vec4 u_emiss; - -VSIN(ATTRIB_POS) vec3 in_pos; - -VSOUT vec4 v_color; -VSOUT vec2 v_tex0; -VSOUT vec2 v_tex1; -VSOUT float v_fog; -VSOUT vec2 v_reflData; - -#define v_NdotV (v_reflData.x) -#define v_lightingCont (v_reflData.y) - -void -main(void) -{ - vec4 Vertex = u_world * vec4(in_pos, 1.0); - gl_Position = u_proj * u_view * Vertex; - vec3 Normal = mat3(u_world) * in_normal; - - v_tex0 = in_tex0; - - vec3 ViewNormal = mat3(u_view) * Normal; - v_tex1 = (ViewNormal.xy + vec2(1.0, 1.0))*0.5; - - v_color = in_color; - vec4 combinedAmbient = mix(u_emiss, u_amb, Normal.z); - v_color.rgb += combinedAmbient.rgb*surfAmbient; - v_color.rgb += DoDynamicLight(Vertex.xyz, Normal)*surfDiffuse; - v_lightingCont = max(0.5, (v_color.r + v_color.g + v_color.b) / 3.0); - v_color *= u_matColor; - - // for fresnel - vec3 camPos = -u_view[3].xyz * mat3(u_view); - vec3 viewVec = normalize(Vertex.xyz - camPos); - v_NdotV = 1.0 - dot(-Normal.xyz, viewVec.xyz); - - v_fog = DoFog(gl_Position.w); -} diff --git a/src/extras/shaders/leedsVehicle_mobile_PS.hlsl b/src/extras/shaders/leedsVehicle_mobile_PS.hlsl deleted file mode 100644 index a343b32..0000000 --- a/src/extras/shaders/leedsVehicle_mobile_PS.hlsl +++ /dev/null @@ -1,53 +0,0 @@ -struct VS_out { - float4 Position : POSITION; - float3 TexCoord0 : TEXCOORD0; - float2 TexCoord1 : TEXCOORD1; - float2 ReflData : TEXCOORD2; - float4 Color : COLOR0; -}; - -#define NdotV (input.ReflData.x) -#define lightingCont (input.ReflData.y) - -sampler2D diffTex : register(s0); -sampler2D envTex : register(s1); - -float4 fogColor : register(c0); - -float4 fxparams : register(c2); -float3 skyTop : register(c3); -float3 skyBot : register(c4); - -#define shininess (fxparams.x) - -#define power (4.0) - -#define preMult (1.0) -#define postMult (1.0) -#define minRefl (0.25) -#define maxRefl (3.0) -#define minOpacity (1.0) -#define maxOpacity (1.0) - - -float4 main(VS_out input) : COLOR -{ - float4 pass1 = input.Color*tex2D(diffTex, input.TexCoord0.xy); - - float3 envtex = tex2D(envTex, float2(input.TexCoord1.x, 1.0-input.TexCoord1.y)).rgb; // V flipped - float3 skyColour = lerp(skyBot, skyTop, envtex.g); - float3 envOut = lerp(envtex.rrr, skyColour, envtex.b); - - float fresnel = lerp(shininess, shininess * 2.0, NdotV); - fresnel = pow(NdotV * preMult, power); - fresnel = clamp(fresnel * postMult, 0.0, 1.0); - float reflectivity = lightingCont * lerp(minRefl, maxRefl, fresnel)*shininess; - - float opacity = lerp(minOpacity, maxOpacity, fresnel)*pass1.a; - float4 color = pass1 + float4(reflectivity * envOut, 0.0); - color.a = opacity; - - color.rgb = lerp(fogColor.rgb, color.rgb, input.TexCoord0.z); - - return color; -} diff --git a/src/extras/shaders/leedsVehicle_mobile_VS.hlsl b/src/extras/shaders/leedsVehicle_mobile_VS.hlsl deleted file mode 100644 index 3085c5e..0000000 --- a/src/extras/shaders/leedsVehicle_mobile_VS.hlsl +++ /dev/null @@ -1,57 +0,0 @@ -#include "standardConstants.h" - -float4 emissive : register(c41); -float4 ambient : register(c42); -float4x4 viewMat : register(c43); - -struct VS_in -{ - float4 Position : POSITION; - float3 Normal : NORMAL; - float2 TexCoord : TEXCOORD0; - float4 Prelight : COLOR0; -}; - -struct VS_out { - float4 Position : POSITION; - float3 TexCoord0 : TEXCOORD0; // also fog - float2 TexCoord1 : TEXCOORD1; - float2 ReflData : TEXCOORD2; - float4 Color : COLOR0; -}; - -#define NdotV (output.ReflData.x) -#define lightingCont (output.ReflData.y) - -VS_out main(in VS_in input) -{ - VS_out output; - - output.Position = mul(combinedMat, input.Position); - float3 V = mul(worldMat, input.Position).xyz; - float3 N = mul(normalMat, input.Normal); - - output.TexCoord0.xy = input.TexCoord; - - float4 ViewNormal = mul(viewMat, float4(N, 0.0)); - output.TexCoord1 = (ViewNormal.xy + float2(1.0, 1.0))*0.5; - - output.Color = input.Prelight; - float4 combinedAmbient = lerp(emissive, ambient, N.z); - output.Color.rgb += combinedAmbient.rgb * surfAmbient; - - int i; - for(i = 0; i < numDirLights; i++) - output.Color.xyz += DoDirLight(lights[i+firstDirLight], N)*surfDiffuse; - lightingCont = max(0.5, (output.Color.r + output.Color.g + output.Color.b) / 3.0); - output.Color *= matCol; - - // for fresnel - float3 camPos = mul(-viewMat._m03_m13_m23, (float3x3)(viewMat)); - float3 viewVec = normalize(V.xyz - camPos); - NdotV = 1.0 - dot(-N.xyz, viewVec.xyz); - - output.TexCoord0.z = clamp((output.Position.w - fogEnd)*fogRange, fogDisable, 1.0); - - return output; -} diff --git a/src/extras/shaders/make_hlsl.cmd b/src/extras/shaders/make_hlsl.cmd new file mode 100644 index 0000000..dee9528 --- /dev/null +++ b/src/extras/shaders/make_hlsl.cmd @@ -0,0 +1,3 @@ +@echo off +for %%f in (*PS.hlsl) do "%DXSDK_DIR%\Utilities\bin\x86\fxc.exe" /T ps_2_0 /nologo /E main /Fo obj\%%~nf.cso %%f +for %%f in (*VS.hlsl) do "%DXSDK_DIR%\Utilities\bin\x86\fxc.exe" /T vs_2_0 /nologo /E main /Fo obj\%%~nf.cso %%f diff --git a/src/extras/shaders/scale.frag b/src/extras/shaders/scale.frag deleted file mode 100644 index 7d9d1ff..0000000 --- a/src/extras/shaders/scale.frag +++ /dev/null @@ -1,19 +0,0 @@ -uniform sampler2D tex0; -uniform vec4 u_colorscale; - -FSIN vec4 v_color; -FSIN vec2 v_tex0; -FSIN float v_fog; - -void -main(void) -{ - vec4 color; - color = v_color*texture(tex0, vec2(v_tex0.x, 1.0-v_tex0.y))*u_colorscale; - color.rgb = clamp(color.rgb, 0.0, 1.0); - color.rgb = mix(u_fogColor.rgb, color.rgb, v_fog); - DoAlphaTest(color.a); - - FRAGCOLOR(color); -} - diff --git a/src/extras/shaders/scale_PS.hlsl b/src/extras/shaders/scale_PS.hlsl deleted file mode 100644 index 54da9c8..0000000 --- a/src/extras/shaders/scale_PS.hlsl +++ /dev/null @@ -1,19 +0,0 @@ -struct VS_out { - float4 Position : POSITION; - float3 TexCoord0 : TEXCOORD0; - float4 Color : COLOR0; -}; - -sampler2D tex0 : register(s0); - -float4 fogColor : register(c0); -float4 colorscale : register(c1); - -float4 main(VS_out input) : COLOR -{ - float4 color = input.Color; - color *= tex2D(tex0, input.TexCoord0.xy)*colorscale; - color.rgb = clamp(color.rgb, 0.0, 1.0); - color.rgb = lerp(fogColor.rgb, color.rgb, input.TexCoord0.z); - return color; -} diff --git a/src/fakerw/fake.cpp b/src/fakerw/fake.cpp index dde7d03..1faf6ee 100644 --- a/src/fakerw/fake.cpp +++ b/src/fakerw/fake.cpp @@ -394,7 +394,7 @@ RwStream *RwStreamOpen(RwStreamType type, RwStreamAccessType accessType, const v return nil; } } -RwBool RwStreamClose(RwStream * stream, void *pData) { if (!stream) return false; stream->close(); rwFree(stream); return true; } +RwBool RwStreamClose(RwStream * stream, void *pData) { stream->close(); rwFree(stream); return true; } RwUInt32 RwStreamRead(RwStream * stream, void *buffer, RwUInt32 length) { return stream->read8(buffer, length); } RwStream *RwStreamWrite(RwStream * stream, const void *buffer, RwUInt32 length) { stream->write8(buffer, length); return stream; } RwStream *RwStreamSkip(RwStream * stream, RwUInt32 offset) { stream->seek(offset); return stream; } @@ -411,9 +411,6 @@ void RwIm2DVertexSetRecipCameraZ(RwIm2DVertex *vert, RwReal recipz) { vert->setR void RwIm2DVertexSetScreenX(RwIm2DVertex *vert, RwReal scrnx) { vert->setScreenX(scrnx); } void RwIm2DVertexSetScreenY(RwIm2DVertex *vert, RwReal scrny) { vert->setScreenY(scrny); } void RwIm2DVertexSetScreenZ(RwIm2DVertex *vert, RwReal scrnz) { vert->setScreenZ(scrnz); } -float RwIm2DVertexGetScreenX(RwIm2DVertex *vert) { return vert->getScreenX(); } -float RwIm2DVertexGetScreenY(RwIm2DVertex *vert) { return vert->getScreenY(); } -float RwIm2DVertexGetScreenZ(RwIm2DVertex *vert) { return vert->getScreenZ(); } void RwIm2DVertexSetU(RwIm2DVertex *vert, RwReal texU, RwReal recipz) { vert->setU(texU, recipz); } void RwIm2DVertexSetV(RwIm2DVertex *vert, RwReal texV, RwReal recipz) { vert->setV(texV, recipz); } void RwIm2DVertexSetIntRGBA(RwIm2DVertex *vert, RwUInt8 red, RwUInt8 green, RwUInt8 blue, RwUInt8 alpha) { vert->setColor(red, green, blue, alpha); } diff --git a/src/fakerw/rpworld.h b/src/fakerw/rpworld.h index 8e3b09f..f10a375 100644 --- a/src/fakerw/rpworld.h +++ b/src/fakerw/rpworld.h @@ -13,7 +13,6 @@ //struct RpMaterial; typedef rw::Material RpMaterial; -typedef rw::MaterialList RpMaterialList; typedef RpMaterial *(*RpMaterialCallBack)(RpMaterial *material, void *data); diff --git a/src/fakerw/rwcore.h b/src/fakerw/rwcore.h index 7a142ab..e5d2186 100644 --- a/src/fakerw/rwcore.h +++ b/src/fakerw/rwcore.h @@ -34,9 +34,6 @@ void RwIm2DVertexSetRecipCameraZ(RwIm2DVertex *vert, RwReal recipz); void RwIm2DVertexSetScreenX(RwIm2DVertex *vert, RwReal scrnx); void RwIm2DVertexSetScreenY(RwIm2DVertex *vert, RwReal scrny); void RwIm2DVertexSetScreenZ(RwIm2DVertex *vert, RwReal scrnz); -float RwIm2DVertexGetScreenX(RwIm2DVertex *vert); -float RwIm2DVertexGetScreenY(RwIm2DVertex *vert); -float RwIm2DVertexGetScreenZ(RwIm2DVertex *vert); void RwIm2DVertexSetU(RwIm2DVertex *vert, RwReal texU, RwReal recipz); void RwIm2DVertexSetV(RwIm2DVertex *vert, RwReal texV, RwReal recipz); void RwIm2DVertexSetIntRGBA(RwIm2DVertex *vert, RwUInt8 red, RwUInt8 green, RwUInt8 blue, RwUInt8 alpha); diff --git a/src/leeds/base/memoryManager.cpp b/src/leeds/base/memoryManager.cpp deleted file mode 100644 index 57e7d95..0000000 --- a/src/leeds/base/memoryManager.cpp +++ /dev/null @@ -1,75 +0,0 @@ -#include "common.h" -#include "memoryManager.h" - -namespace base -{ - cMemoryManager::cMemoryManager() - { - - } - - void* cMemoryManager::Allocate(uint32 size) - { - void* buf = malloc(size); - memset(buf, 0, size); - return buf; - } - - void* cMemoryManager::AllocateAligned(uint32 size) - { - void* buf = malloc(size); - memset(buf, 0, size); - return buf; - } - - void* cMemoryManager::Realloc(void* buf, uint32 newSize, bool unk) - { - return realloc(buf, newSize); - } - - void cMemoryManager::Free(void* buf) - { - if (buf) - free(buf); - } - - bool cMemoryManager::IsFree(void* buf) - { - return buf == nil; - } - - - cMainMemoryManager* cMainMemoryManager::m_pInstance = nil; - - cMainMemoryManager::cMainMemoryManager() - { - assert(m_pInstance == nil); - m_pInstance = this; - Init(nil, 0); - } - - void cMainMemoryManager::Init(void*, uint32) - { - - } -}; - -void* operator new(size_t size) -{ - return base::cMainMemoryManager::Instance()->Allocate(size); -} - -void* operator new[](size_t size) -{ - return base::cMainMemoryManager::Instance()->Allocate(size); -} - -void operator delete(void* buf) noexcept -{ - base::cMainMemoryManager::Instance()->Free(buf); -} - -void operator delete[](void* buf) noexcept -{ - base::cMainMemoryManager::Instance()->Free(buf); -} \ No newline at end of file diff --git a/src/leeds/base/memoryManager.h b/src/leeds/base/memoryManager.h deleted file mode 100644 index 91124cd..0000000 --- a/src/leeds/base/memoryManager.h +++ /dev/null @@ -1,39 +0,0 @@ -#pragma once - -namespace base -{ - class cMemoryManager - { - public: - cMemoryManager(); - void* Allocate(uint32 size); - void* AllocateAligned(uint32 size); - void* Realloc(void* buf, uint32 newSize, bool unk); - void Free(void* buf); - bool IsFree(void* buf); - }; - - class cMainMemoryManager : public cMemoryManager - { - static cMainMemoryManager* m_pInstance; - static void Init(void*, uint32); - - public: - cMainMemoryManager(); - static cMainMemoryManager *Instance() - { - static cMainMemoryManager instance; - return &instance; - } - }; - - class cMemoryBlock - { - // TODO - }; -} - -void* operator new(size_t size); -void* operator new[](size_t size); -void operator delete(void* buf) noexcept; -void operator delete[](void* buf) noexcept; \ No newline at end of file diff --git a/src/leeds/base/relocatableChunk.cpp b/src/leeds/base/relocatableChunk.cpp deleted file mode 100644 index 5cb5a42..0000000 --- a/src/leeds/base/relocatableChunk.cpp +++ /dev/null @@ -1,36 +0,0 @@ -#include "common.h" -#include "relocatableChunk.h" - -namespace base -{ - // TODO(LCS): add actual code (all of these are stubs) - - void* cRelocatableChunk::Load(void* data, bool bShrink) { return nil; } - void* cRelocatableChunk::Load(const char* name, bool bShrink) { return nil; } - void cRelocatableChunk::Fixup(const sChunkHeader& header, void* data) {} - void cRelocatableChunk::Fixup(void* data) {} - void* cRelocatableChunk::Shrink(const sChunkHeader& header, void* data) { return nil; } - void* cRelocatableChunk::Shrink(void* data) { return nil; } - - cRelocatableChunkClassInfo::cRelocatableChunkClassInfo(const char* class_name, const void* pVmt, int size) {} - - cRelocatableChunkWriter::cRelocatableChunkWriter() {} - cRelocatableChunkWriter::~cRelocatableChunkWriter() {} - - void cRelocatableChunkWriter::AddPatch(void* addr) {} - void cRelocatableChunkWriter::AddPatchWithInfo(const char* str, int unk, void* addr) {} - void cRelocatableChunkWriter::AllocateRaw(void* addr, uint32 size, uint32 align, bool a5, bool a6) {} - - void cRelocatableChunkWriter::Clear() {} - void cRelocatableChunkWriter::Class(void* ptr, const cRelocatableChunkClassInfo& classInfo) {} - void cRelocatableChunkWriter::DebugFileLine(void*) {} - - void cRelocatableChunkWriter::PatchFunc(void* ptr) {} - - bool cRelocatableChunkWriter::IsAllocated(void* addr) { return false; } - - void cRelocatableChunkWriter::Reserve(int, int) {} - - void cRelocatableChunkWriter::Save(const char* filename, uint32 a3, uint32 a4, bool a5) {} - void cRelocatableChunkWriter::Save(void* file, uint32 a3, uint32 a4, bool a5, sChunkHeader* pHeader) {} -}; \ No newline at end of file diff --git a/src/leeds/base/relocatableChunk.h b/src/leeds/base/relocatableChunk.h deleted file mode 100644 index 2658aa2..0000000 --- a/src/leeds/base/relocatableChunk.h +++ /dev/null @@ -1,53 +0,0 @@ -#pragma once - -namespace base -{ - // TODO(LCS): add actual struct fields - - struct sChunkHeader; - struct sDataBlock; - struct sFileLine; - - class cRelocatableChunk - { - public: - void* Load(void* data, bool bShrink); - void* Load(const char* name, bool bShrink); - void Fixup(const sChunkHeader& header, void* data); - void Fixup(void* data); - void* Shrink(const sChunkHeader& header, void* data); - void* Shrink(void* data); - }; - -#define VTABLE_ADDR(obj) ((void*)obj) // TODO: make this portable - - class cRelocatableChunkClassInfo - { - public: - cRelocatableChunkClassInfo(const char* class_name, const void* pVmt, int size); - }; - - class cRelocatableChunkWriter - { - public: - cRelocatableChunkWriter(); - ~cRelocatableChunkWriter(); - - void AddPatch(void* addr); - void AddPatchWithInfo(const char* str, int unk, void* addr); - void AllocateRaw(void* addr, uint32 size, uint32 align, bool a5 = false, bool a6 = false); - - void Clear(); - void Class(void* ptr, const cRelocatableChunkClassInfo& classInfo); - void DebugFileLine(void*); - - void PatchFunc(void* ptr); - - bool IsAllocated(void* addr); - - void Reserve(int, int); - - void Save(const char* filename, uint32 a3, uint32 a4, bool a5); - void Save(void* file, uint32 a3, uint32 a4, bool a5, sChunkHeader* pHeader); - }; -}; \ No newline at end of file diff --git a/src/leeds/base/sList.h b/src/leeds/base/sList.h deleted file mode 100644 index 378d8e3..0000000 --- a/src/leeds/base/sList.h +++ /dev/null @@ -1,35 +0,0 @@ -#pragma once - -namespace base -{ - -template -class cSList -{ -public: - struct tSItem - { - tSItem* next; - T item; - }; - // extra field on PS2 - tSItem* first; - - cSList() { first = nil; } - void Insert(tSItem* item) { tSItem* n = first; first = item; item->next = n; } - void Remove(tSItem* item) { - if (first == item) { - first = item->next; - return; - } - tSItem* i = first; - while (i && i->next != item) - i = i->next; - assert(i); - i->next = item->next; - - } - -}; - -} \ No newline at end of file diff --git a/src/leeds/smallHeap.cpp b/src/leeds/smallHeap.cpp deleted file mode 100644 index 262113a..0000000 --- a/src/leeds/smallHeap.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include "common.h" -#include "smallHeap.h" - -cSmallHeap cSmallHeap::msInstance; - -cSmallHeap::cSmallHeap() -{ - bLocked = false; - bUnk = false; -} - -void cSmallHeap::Lock() -{ - // TODO: PS2 code -} - -void cSmallHeap::Unlock() -{ - // TODO: PS2 code -} \ No newline at end of file diff --git a/src/leeds/smallHeap.h b/src/leeds/smallHeap.h deleted file mode 100644 index f289768..0000000 --- a/src/leeds/smallHeap.h +++ /dev/null @@ -1,17 +0,0 @@ -#pragma once - -#include "memoryManager.h" - -class cSmallHeap : public base::cMemoryManager -{ - bool bLocked; - bool bUnk; -public: - cSmallHeap(); - void Lock(); - void Unlock(); - - bool IsLocked() const { return bLocked; } - - static cSmallHeap msInstance; -}; \ No newline at end of file diff --git a/src/math/Vector.cpp b/src/math/Vector.cpp index e29d433..ee76e55 100644 --- a/src/math/Vector.cpp +++ b/src/math/Vector.cpp @@ -44,18 +44,3 @@ operator*(const CMatrix &mat, const CVector &vec) mat.ry * vec.x + mat.fy * vec.y + mat.uy * vec.z + mat.py, mat.rz * vec.x + mat.fz * vec.y + mat.uz * vec.z + mat.pz); } - -void -RwV3dTransformPoints(CVector * pointsOut, const CVector * pointsIn, RwInt32 numPoints, const RwMatrix * matrix) -{ - while(numPoints--){ - float x = pointsIn->x*matrix->right.x + pointsIn->y*matrix->up.x + pointsIn->z*matrix->at.x + matrix->pos.x; - float y = pointsIn->x*matrix->right.y + pointsIn->y*matrix->up.y + pointsIn->z*matrix->at.y + matrix->pos.y; - float z = pointsIn->x*matrix->right.z + pointsIn->y*matrix->up.z + pointsIn->z*matrix->at.z + matrix->pos.z; - pointsOut->x = x; - pointsOut->y = y; - pointsOut->z = z; - pointsOut++; - pointsIn++; - } -} diff --git a/src/math/Vector.h b/src/math/Vector.h index 8789580..0212845 100644 --- a/src/math/Vector.h +++ b/src/math/Vector.h @@ -1,12 +1,8 @@ #pragma once -// TODO(LCS): this should have 16 byte alignment but VS doesn't like passing aligned values by value -// need a solution for this eventually if we ever want to load original assets class CVector : public RwV3d { public: - float w; - CVector(void) {} CVector(float x, float y, float z) { @@ -130,7 +126,4 @@ class CMatrix; CVector Multiply3x3(const CMatrix &mat, const CVector &vec); CVector Multiply3x3(const CVector &vec, const CMatrix &mat); -CVector operator*(const CMatrix &mat, const CVector &vec); - -// we need this because CVector and RwV3d have different size now -void RwV3dTransformPoints(CVector * pointsOut, const CVector * pointsIn, RwInt32 numPoints, const RwMatrix * matrix); +CVector operator*(const CMatrix &mat, const CVector &vec); \ No newline at end of file diff --git a/src/math/VuVector.h b/src/math/VuVector.h index 026965d..30d62cf 100644 --- a/src/math/VuVector.h +++ b/src/math/VuVector.h @@ -3,10 +3,10 @@ class TYPEALIGN(16) CVuVector : public CVector { public: -// float w; // in CVector now + float w; CVuVector(void) {} CVuVector(float x, float y, float z) : CVector(x, y, z) {} - CVuVector(float x, float y, float z, float w) : CVector(x, y, z)/*, w(w)*/ { this->w = w;} + CVuVector(float x, float y, float z, float w) : CVector(x, y, z), w(w) {} CVuVector(const CVector &v) : CVector(v.x, v.y, v.z) {} CVuVector(const RwV3d &v) : CVector(v) {} /* diff --git a/src/modelinfo/BaseModelInfo.cpp b/src/modelinfo/BaseModelInfo.cpp index ffd934b..765469b 100644 --- a/src/modelinfo/BaseModelInfo.cpp +++ b/src/modelinfo/BaseModelInfo.cpp @@ -1,15 +1,11 @@ #include "common.h" #include "templates.h" -#include "main.h" #include "TxdStore.h" #include "2dEffect.h" #include "BaseModelInfo.h" #include "ModelInfo.h" -#include "KeyGen.h" -#include "Streaming.h" -#include "smallHeap.h" -#include "TempColModels.h" +#include "ColModel.h" CBaseModelInfo::CBaseModelInfo(ModelInfoType type) { @@ -21,11 +17,6 @@ CBaseModelInfo::CBaseModelInfo(ModelInfoType type) m_type = type; m_num2dEffects = 0; m_bOwnsColModel = false; - m_nameKey = 0; - m_unk1 = 0; - m_unk2 = 0; - m_name = new char[MAX_MODEL_NAME]; - *(int32*)m_name = 0; } void @@ -33,7 +24,6 @@ CBaseModelInfo::Shutdown(void) { DeleteCollisionModel(); DeleteRwObject(); - DeleteChunk(); m_2dEffectsID = -1; m_num2dEffects = 0; m_txdSlot = -1; @@ -42,11 +32,11 @@ CBaseModelInfo::Shutdown(void) void CBaseModelInfo::DeleteCollisionModel(void) { - if(!gUseChunkFiles && m_colModel && m_bOwnsColModel){ + if(m_colModel && m_bOwnsColModel){ if(m_colModel) delete m_colModel; + m_colModel = nil; } - m_colModel = nil; } void @@ -59,10 +49,8 @@ CBaseModelInfo::AddRef(void) void CBaseModelInfo::RemoveRef(void) { - if(m_refCount > 0){ - m_refCount--; - RemoveTexDictionaryRef(); - } + m_refCount--; + RemoveTexDictionaryRef(); } void @@ -80,24 +68,12 @@ CBaseModelInfo::AddTexDictionaryRef(void) CTxdStore::AddRef(m_txdSlot); } -void -CBaseModelInfo::AddTexDictionaryRefGu(void) -{ - CTxdStore::AddRefGu(m_txdSlot); -} - void CBaseModelInfo::RemoveTexDictionaryRef(void) { CTxdStore::RemoveRef(m_txdSlot); } -void -CBaseModelInfo::RemoveTexDictionaryRefGu(void) -{ - CTxdStore::RemoveRefGu(m_txdSlot); -} - void CBaseModelInfo::Init2dEffects(void) { @@ -124,60 +100,3 @@ CBaseModelInfo::Get2dEffect(int n) else return nil; } - - -void -CBaseModelInfo::SetModelName(const char *name) -{ - m_nameKey = CKeyGen::GetUppercaseKey(name); - if (!gUseChunkFiles) - strcpy(m_name, name); -} - -void -CBaseModelInfo::DeleteChunk(void) -{ - // BUG? what if we're not using chunks? - if(m_chunk){ - CStreaming::UnregisterPointer(&m_chunk, 2); - cSmallHeap::msInstance.Free(m_chunk); - m_chunk = nil; - } -} - -inline int -GetColmodelID(CColModel *model) -{ - int colModelid = 0; - if(model == &gpTempColModels->ms_colModelBBox) colModelid = 1; - if(model == &gpTempColModels->ms_colModelPed1) colModelid = 2; - if(model == &gpTempColModels->ms_colModelWeapon) colModelid = 3; - if(model == &CTempColModels::ms_colModelPed2) colModelid = 4; - if(model == &CTempColModels::ms_colModelPedGroundHit) colModelid = 5; - if(model == &CTempColModels::ms_colModelDoor1) colModelid = 6; - if(model == &CTempColModels::ms_colModelBumper1) colModelid = 7; - if(model == &CTempColModels::ms_colModelPanel1) colModelid = 8; - if(model == &CTempColModels::ms_colModelBonnet1) colModelid = 9; - if(model == &CTempColModels::ms_colModelBoot1) colModelid = 10; - if(model == &CTempColModels::ms_colModelWheel1) colModelid = 11; - if(model == &CTempColModels::ms_colModelBodyPart1) colModelid = 12; - if(model == &CTempColModels::ms_colModelBodyPart2) colModelid = 13; - if(model == &CTempColModels::ms_colModelCutObj[0]) colModelid = 14; - if(model == &CTempColModels::ms_colModelCutObj[1]) colModelid = 15; - if(model == &CTempColModels::ms_colModelCutObj[2]) colModelid = 16; - if(model == &CTempColModels::ms_colModelCutObj[3]) colModelid = 17; - if(model == &CTempColModels::ms_colModelCutObj[4]) colModelid = 18; - return colModelid; -} - -void -CBaseModelInfo::Write(base::cRelocatableChunkWriter &writer) -{ - m_chunk = nil; - RcWriteThis(writer); - if(m_colModel){ - if(m_bOwnsColModel || GetColmodelID(m_colModel) != 0) - m_colModel->Write(writer, true); - writer.AddPatch(&m_colModel); - } -} diff --git a/src/modelinfo/BaseModelInfo.h b/src/modelinfo/BaseModelInfo.h index c9ea13b..2d1dc8a 100644 --- a/src/modelinfo/BaseModelInfo.h +++ b/src/modelinfo/BaseModelInfo.h @@ -2,7 +2,7 @@ struct CColModel; -#define MAX_MODEL_NAME (24) +#define MAX_MODEL_NAME (21) enum ModelInfoType { @@ -23,19 +23,11 @@ class C2dEffect; class CBaseModelInfo { protected: - uint32 m_unk1; - uint32 m_unk2; - uint32 m_nameKey; - union { - char *m_name; // if not using chunks - void *m_chunk; // else - }; + char m_name[MAX_MODEL_NAME]; uint8 m_type; uint8 m_num2dEffects; bool m_bOwnsColModel; -public: // need this in colstore CColModel *m_colModel; -protected: int16 m_2dEffectsID; int16 m_objectId; uint16 m_refCount; @@ -43,11 +35,7 @@ protected: public: CBaseModelInfo(ModelInfoType type); -#ifdef FIX_BUGS - virtual ~CBaseModelInfo() { delete []m_name; } -#else virtual ~CBaseModelInfo() {} -#endif virtual void Shutdown(void); virtual void DeleteRwObject(void) = 0; virtual RwObject *CreateInstance(void) = 0; @@ -57,24 +45,13 @@ public: virtual void ConvertAnimFileIndex(void) {} virtual int GetAnimFileIndex(void) { return -1; } - virtual void LoadModel(void *model, const void *chunk) = 0; - virtual void DeleteChunk(void); - // this writes the modelinfo struct, possibly including actual RW models - virtual void Write(base::cRelocatableChunkWriter &writer); - // this writes the RW models - virtual void *WriteModel(base::cRelocatableChunkWriter &writer) { return nil; } // = 0; // this is not in the vtable for some reason??? - // these allocate the space for a modelinfo struct and patch the vtable pointer - virtual void RcWriteThis(base::cRelocatableChunkWriter &writer) = 0; - virtual void RcWriteEmpty(base::cRelocatableChunkWriter &writer) = 0; - // one day it becomes virtual uint8 GetModelType() const { return m_type; } bool IsBuilding(void) { return m_type == MITYPE_SIMPLE || m_type == MITYPE_TIME; } bool IsSimple(void) { return m_type == MITYPE_SIMPLE || m_type == MITYPE_TIME || m_type == MITYPE_WEAPON; } bool IsClump(void) { return m_type == MITYPE_CLUMP || m_type == MITYPE_PED || m_type == MITYPE_VEHICLE; } char *GetModelName(void) { return m_name; } - void SetModelName(const char *name); - uint32 GetNameHashKey() { return m_nameKey; } + void SetModelName(const char *name) { strncpy(m_name, name, MAX_MODEL_NAME); } void SetColModel(CColModel *col, bool owns = false){ m_colModel = col; m_bOwnsColModel = owns; } CColModel *GetColModel(void) { return m_colModel; } @@ -88,9 +65,7 @@ public: void RemoveRef(void); void SetTexDictionary(const char *name); void AddTexDictionaryRef(void); - void AddTexDictionaryRefGu(void); void RemoveTexDictionaryRef(void); - void RemoveTexDictionaryRefGu(void); void Init2dEffects(void); void Add2dEffect(C2dEffect *fx); C2dEffect *Get2dEffect(int n); diff --git a/src/modelinfo/ClumpModelInfo.cpp b/src/modelinfo/ClumpModelInfo.cpp index 00c2c0f..ba18bfa 100644 --- a/src/modelinfo/ClumpModelInfo.cpp +++ b/src/modelinfo/ClumpModelInfo.cpp @@ -1,30 +1,17 @@ #include "common.h" -#include "main.h" #include "RwHelper.h" #include "General.h" #include "NodeName.h" #include "VisibilityPlugins.h" #include "ModelInfo.h" #include "AnimManager.h" -#include "Streaming.h" -#include "Leeds.h" - -base::cRelocatableChunkClassInfo CClumpModelInfo::msClassInfo("CElementGroupModelInfo", VTABLE_ADDR(&msClassInstance), sizeof(msClassInstance)); // the real name -CClumpModelInfo CClumpModelInfo::msClassInstance; void CClumpModelInfo::DeleteRwObject(void) { if(m_clump){ - if(!gUseChunkFiles) - RpClumpDestroy(m_clump); - else{ - CStreaming::UnregisterClump(m_clump); - CStreaming::UnregisterPointer(&m_clump, 2); - DeleteChunk(); - } - + RpClumpDestroy(m_clump); m_clump = nil; RemoveTexDictionaryRef(); if(GetAnimFileIndex() != -1) @@ -65,7 +52,6 @@ CClumpModelInfo::CreateInstance(RwMatrix *m) if(m_clump){ RpClump *clump = (RpClump*)CreateInstance(); *RwFrameGetMatrix(RpClumpGetFrame(clump)) = *m; - CStreaming::RegisterInstance(clump); return (RwObject*)clump; } return nil; @@ -87,15 +73,14 @@ CClumpModelInfo::SetClump(RpClump *clump) if(GetAnimFileIndex() != -1) CAnimManager::AddAnimBlockRef(GetAnimFileIndex()); if(IsClumpSkinned(clump)){ - //int i; + int i; RpHAnimHierarchy *hier; - //RpAtomic *skinAtomic; - //RpSkin *skin; + RpAtomic *skinAtomic; + RpSkin *skin; hier = GetAnimHierarchyFromClump(clump); assert(hier); RpClumpForAllAtomics(clump, SetHierarchyForSkinAtomic, hier); -/* skinAtomic = GetFirstAtomic(clump); assert(skinAtomic); @@ -109,7 +94,6 @@ CClumpModelInfo::SetClump(RpClump *clump) weights->w2 /= sum; weights->w3 /= sum; } -*/ RpHAnimHierarchySetFlags(hier, (RpHAnimHierarchyFlag)(rpHANIMHIERARCHYUPDATEMODELLINGMATRICES|rpHANIMHIERARCHYUPDATELTMS)); } } @@ -219,47 +203,3 @@ CClumpModelInfo::GetFrameFromId(RpClump *clump, int32 id) RwFrameForAllChildren(RpClumpGetFrame(clump), FindFrameFromIdCB, &assoc); return assoc.frame; } - - -void -CClumpModelInfo::LoadModel(void *clump, const void *chunk) -{ - m_chunk = (void*)chunk; - m_clump = (RpClump*)clump; - LoadResource(m_clump); - CStreaming::RegisterPointer(&m_chunk, 2, true); - CStreaming::RegisterClump(m_clump); - CStreaming::RegisterPointer(&m_clump, 2, true); -} - -void -CClumpModelInfo::Write(base::cRelocatableChunkWriter &writer) -{ - CBaseModelInfo::Write(writer); - if(m_clump){ - writer.AddPatch(&m_clump); - SaveResource(m_clump, writer); - } -} - -void* -CClumpModelInfo::WriteModel(base::cRelocatableChunkWriter &writer) -{ - if(m_clump) - SaveResource(m_clump, writer); - return m_clump; -} - -void -CClumpModelInfo::RcWriteThis(base::cRelocatableChunkWriter &writer) -{ - writer.AllocateRaw(this, sizeof(*this), sizeof(void*), false, true); - writer.Class(VTABLE_ADDR(this), msClassInfo); -} - -void -CClumpModelInfo::RcWriteEmpty(base::cRelocatableChunkWriter &writer) -{ - writer.AllocateRaw(this, sizeof(*this), sizeof(void*), false, true); - writer.Class(VTABLE_ADDR(this), msClassInfo); -} diff --git a/src/modelinfo/ClumpModelInfo.h b/src/modelinfo/ClumpModelInfo.h index b8507e5..0113d34 100644 --- a/src/modelinfo/ClumpModelInfo.h +++ b/src/modelinfo/ClumpModelInfo.h @@ -35,9 +35,6 @@ public: char *m_animFileName; }; - static base::cRelocatableChunkClassInfo msClassInfo; - static CClumpModelInfo msClassInstance; - CClumpModelInfo(void) : CBaseModelInfo(MITYPE_CLUMP) { m_animFileIndex = -1; } CClumpModelInfo(ModelInfoType id) : CBaseModelInfo(id) { m_animFileIndex = -1; } ~CClumpModelInfo() {} @@ -51,12 +48,6 @@ public: virtual void ConvertAnimFileIndex(void); virtual int GetAnimFileIndex(void) { return m_animFileIndex; } - virtual void LoadModel(void *model, const void *chunk); - virtual void Write(base::cRelocatableChunkWriter &writer); - virtual void *WriteModel(base::cRelocatableChunkWriter &writer); - virtual void RcWriteThis(base::cRelocatableChunkWriter &writer); - virtual void RcWriteEmpty(base::cRelocatableChunkWriter &writer); - static RpAtomic *SetAtomicRendererCB(RpAtomic *atomic, void *data); void SetFrameIds(RwObjectNameIdAssocation *assocs); static RwFrame *FindFrameFromNameCB(RwFrame *frame, void *data); diff --git a/src/modelinfo/ModelIndices.cpp b/src/modelinfo/ModelIndices.cpp index 8353940..98c7fb3 100644 --- a/src/modelinfo/ModelIndices.cpp +++ b/src/modelinfo/ModelIndices.cpp @@ -2,25 +2,17 @@ #include "General.h" #include "ModelIndices.h" -#include "main.h" -CModelIndices *gpModelIndices; - -/*#define X(name, var) int16 var = -1; +#define X(name, var) int16 var = -1; MODELINDICES -#undef X*/ +#undef X void InitModelIndices(void) { -/*#define X(name, var) var = -1; +#define X(name, var) var = -1; MODELINDICES -#undef X*/ - if (gMakeResources) - { - gpModelIndices = new CModelIndices; - memset(gpModelIndices, -1, sizeof(CModelIndices)); - } +#undef X } void diff --git a/src/modelinfo/ModelIndices.h b/src/modelinfo/ModelIndices.h index 3a6b825..836c409 100644 --- a/src/modelinfo/ModelIndices.h +++ b/src/modelinfo/ModelIndices.h @@ -2,591 +2,8 @@ #include "ModelInfo.h" -struct CModelIndices -{ - int16 TRAFFICLIGHTS; - int16 TLIGHT_POST; - int16 TLIGHT_WALK; - int16 TLIGHT_BOX1; - int16 TLIGHT_BOX2; - int16 TRAFFICLIGHTS_VERTICAL; - int16 TRAFFICLIGHTS_MIAMI; - int16 TRAFFICLIGHTS_TWOVERTICAL; - int16 SINGLESTREETLIGHTS1; - int16 SINGLESTREETLIGHTS2; - int16 SINGLESTREETLIGHTS3; - int16 DOUBLESTREETLIGHTS; - int16 STREETLAMP1; - int16 STREETLAMP2; - int16 ROADSFORROADBLOCKSSTART; - int16 ROADSFORROADBLOCKSEND; - int16 TREE2; - int16 TREE3; - int16 TREE6; - int16 TREE8; - int16 TREE1; - int16 TREE4; - int16 TREE5; - int16 TREE7; - int16 TREE9; - int16 TREE10; - int16 TREE11; - int16 TREE12; - int16 TREE13; - int16 TREE14; - int16 CRANE_1; - int16 CRANE_2; - int16 CRANE_3; - int16 CRANE_4; - int16 CRANE_5; - int16 CRANE_6; - int16 PARKINGMETER; - int16 PARKINGMETER2; - int16 MALLFAN; - int16 HOTELFAN_NIGHT; - int16 HOTELFAN_DAY; - int16 HOTROOMFAN; - int16 PHONEBOOTH1; - int16 WASTEBIN; - int16 BIN; - int16 POSTBOX1; - int16 NEWSSTAND; - int16 TRAFFICCONE; - int16 DUMP1; - int16 ROADWORKBARRIER1; - int16 BUSSIGN1; - int16 NOPARKINGSIGN1; - int16 PHONESIGN; - int16 TAXISIGN; - int16 FISHSTALL01; - int16 FISHSTALL02; - int16 FISHSTALL03; - int16 FISHSTALL04; - int16 BAGELSTAND2; - int16 FIRE_HYDRANT; - int16 COLLECTABLE1; - int16 MONEY; - int16 CARMINE; - int16 GARAGEDOOR1; - int16 GARAGEDOOR2; - int16 GARAGEDOOR3; - int16 GARAGEDOOR4; - int16 GARAGEDOOR5; - int16 GARAGEDOOR6; - int16 GARAGEDOOR7; - int16 GARAGEDOOR9; - int16 GARAGEDOOR10; - int16 GARAGEDOOR11; - int16 GARAGEDOOR12; - int16 GARAGEDOOR13; - int16 GARAGEDOOR14; - int16 GARAGEDOOR15; - int16 GARAGEDOOR16; - int16 GARAGEDOOR17; - int16 GARAGEDOOR18; - int16 GARAGEDOOR19; - int16 GARAGEDOOR20; - int16 GARAGEDOOR21; - int16 GARAGEDOOR22; - int16 GARAGEDOOR23; - int16 GARAGEDOOR24; - int16 GARAGEDOOR25; - int16 GARAGEDOOR26; - int16 GARAGEDOOR27; - int16 GARAGEDOOR28; - int16 GARAGEDOOR29; - int16 GARAGEDOOR30; - int16 GARAGEDOOR31; - int16 GARAGEDOOR32; - int16 GARAGEDOOR33; - int16 GARAGEDOOR34; - int16 GARAGEDOOR35; - int16 GARAGEDOOR36; - int16 GARAGEDOOR37; - int16 GARAGEDOOR38; - int16 GARAGEDOOR39; - int16 TESTRAMP1; // UNUSED - int16 TESTRAMP2; - int16 NAUTICALMINE; - int16 CRUSHERBODY; - int16 CRUSHERLID; - int16 DONKEYMAG; - int16 BULLION; - int16 FLOATPACKAGE1; - int16 BRIEFCASE; - int16 CHINABANNER1; - int16 CHINABANNER2; - int16 CHINABANNER3; - int16 CHINABANNER4; - int16 CHINABANNER5; - int16 CHINABANNER6; - int16 CHINABANNER7; - int16 CHINABANNER8; - int16 CHINABANNER9; - int16 CHINABANNER10; - int16 CHINABANNER11; - int16 CHINABANNER12; - int16 CHINALANTERN; - int16 GLASS1; - int16 GLASS2; - int16 GLASS3; - int16 GLASS4; - int16 GLASS5; - int16 GLASS6; - int16 GLASS7; - int16 GLASS8; - int16 BRIDGELIFT; - int16 BRIDGEWEIGHT; - int16 BRIDGEROADSEGMENT; - int16 EXPLODINGBARREL; - int16 ITALYBANNER1; - int16 MEGADAMAGE; - int16 REGENERATOR; - int16 INVISIBLE; - int16 GOOD_CAR; - int16 BAD_CAR; - int16 PICKUP_ADRENALINE; - int16 PICKUP_BODYARMOUR; - int16 PICKUP_INFO; - int16 PICKUP_HEALTH; - int16 PICKUP_BONUS; - int16 PICKUP_BRIBE; - int16 PICKUP_KILLFRENZY; - int16 PICKUP_CAMERA; - int16 PICKUP_REVENUE; - int16 PICKUP_SAVEGAME; - int16 PICKUP_PROPERTY; - int16 PICKUP_PROPERTY_FORSALE; - int16 PICKUP_CLOTHES; - int16 BOLLARDLIGHT; - int16 CA_SP1; - int16 CA_SP2; - int16 CA_SP3; - int16 CA_SP4; - int16 PACKAGE1IZZY; - int16 MAGNET; - int16 RAILTRACKS; - int16 FENCE; - int16 FENCE2; - int16 PETROLPUMP; - int16 PETROLPUMP2; - int16 BODYCAST; - int16 IZZY_CONFDOOR; - int16 SHIPDOOR; - int16 IZZY_JDDOOR; - int16 IZZY_JDDOOR_SLIDER; - int16 LITEHOUSE_GATE; - int16 COFFEE; - int16 BUOY; - int16 PARKTABLE; - int16 SUBWAY1; - int16 SUBWAY2; - int16 SUBWAY3; - int16 SUBWAY4; - int16 SUBWAY5; - int16 SUBWAY6; - int16 SUBWAY7; - int16 SUBWAY8; - int16 SUBWAY9; - int16 SUBWAY10; - int16 SUBWAY11; - int16 SUBWAY12; - int16 SUBWAY13; - int16 SUBWAY14; - int16 SUBWAY15; - int16 SUBWAY16; - int16 SUBWAY17; - int16 SUBWAY18; - int16 SUBPLATFORM_IND; - int16 SUBPLATFORM_COMS; - int16 SUBPLATFORM_COMS2; - int16 SUBPLATFORM_COMN; - int16 SUBPLATFORM_SUB; - int16 SUBPLATFORM_SUB2; - int16 FILES; - int16 LAMPPOST1; - int16 VEG_PALM01; - int16 VEG_PALM02; - int16 VEG_PALM03; - int16 VEG_PALM04; - int16 VEG_PALM05; - int16 VEG_PALM06; - int16 VEG_PALM07; - int16 VEG_PALM08; - int16 MLAMPPOST; - int16 BARRIER1; - int16 LITTLEHA_POLICE; - int16 TELPOLE02; - int16 TRAFFICLIGHT01; - int16 PARKBENCH; - int16 PLC_STINGER; - int16 LIGHTBEAM; - int16 AIRPORTRADAR; - int16 RCBOMB; - int16 JM_SALRADIO; - int16 BEACHBALL; - int16 SANDCASTLE1; - int16 SANDCASTLE2; - int16 JELLYFISH; - int16 JELLYFISH01; - int16 FISH1SINGLE; - int16 FISH1S; - int16 FISH2SINGLE; - int16 FISH2S; - int16 FISH3SINGLE; - int16 FISH3S; - int16 TURTLE; - int16 DOLPHIN; - int16 SHARK; - int16 SUBMARINE; - int16 ESCALATORSTEP; - int16 LOUNGE_WOOD_UP; - int16 LOUNGE_TOWEL_UP; - int16 LOUNGE_WOOD_DN; - int16 LOTION; - int16 BEACHTOWEL01; - int16 BEACHTOWEL02; - int16 BEACHTOWEL03; - int16 BEACHTOWEL04; - int16 BLIMP_NIGHT; - int16 BLIMP_DAY; - int16 YT_MAIN_BODY; - int16 YT_MAIN_BODY2; - int16 SMALL_HELIX; - int16 PT_BARRIER; - int16 SUBWAYGATE; - int16 IN_PMBRIDRAMP3; - int16 IN_PMBRIDG2_UPGS; - int16 IN_PMBRIDGE2; - int16 IN_PMBRIDG1_UPGS; - int16 PM_LIGHTRIG3; - int16 PM_LIGHTRIG1; - int16 IN_PMSCAFF_UPS; - int16 IN_PM_CONCBLOK2; - int16 IN_PMSCAFFH_NS; - int16 IN_PM_GRAVL_JMP; - int16 IN_PM_SCAFFCOVR; - int16 IN_PM_GIRDER2; - int16 IN_PM_SCAFFH_WE; - int16 IN_PM_SIXCONC2; - int16 IN_BMBRIDRAMP3; - int16 IN_BMBRIDG2_UPGS; - int16 IN_BMBRIDGE2; - int16 IN_BMBRIDG1_UPGS; - int16 BM_LIGHTRIG3; - int16 BM_LIGHTRIG1; - int16 IN_BMSCAFF_UPS; - int16 IN_BM_CONCBLOK2; - int16 IN_BMSCAFFH_NS; - int16 IN_BM_GRAVL_JMP; - int16 IN_BM_SCAFFCOVR; - int16 IN_BM_GIRDER2; - int16 IN_BM_SCAFFH_WE; - int16 IN_BM_SIXCONC2; - int16 CRATE_SJL; - int16 DOOR1_SJL; - int16 DOOR2_SJL; - int16 SJL_PORTACABIN; - int16 SJL_PORTACABINRED; - int16 advert_test; // txd -}; - -extern CModelIndices *gpModelIndices; - -#define MI_TRAFFICLIGHTS gpModelIndices->TRAFFICLIGHTS -#define MI_TLIGHT_POST gpModelIndices->TLIGHT_POST -#define MI_TLIGHT_WALK gpModelIndices->TLIGHT_WALK -#define MI_TLIGHT_BOX1 gpModelIndices->TLIGHT_BOX1 -#define MI_TLIGHT_BOX2 gpModelIndices->TLIGHT_BOX2 -#define MI_TRAFFICLIGHTS_VERTICAL gpModelIndices->TRAFFICLIGHTS_VERTICAL -#define MI_TRAFFICLIGHTS_MIAMI gpModelIndices->TRAFFICLIGHTS_MIAMI -#define MI_TRAFFICLIGHTS_TWOVERTICAL gpModelIndices->TRAFFICLIGHTS_TWOVERTICAL -#define MI_SINGLESTREETLIGHTS1 gpModelIndices->SINGLESTREETLIGHTS1 -#define MI_SINGLESTREETLIGHTS2 gpModelIndices->SINGLESTREETLIGHTS2 -#define MI_SINGLESTREETLIGHTS3 gpModelIndices->SINGLESTREETLIGHTS3 -#define MI_DOUBLESTREETLIGHTS gpModelIndices->DOUBLESTREETLIGHTS -#define MI_STREETLAMP1 gpModelIndices->STREETLAMP1 -#define MI_STREETLAMP2 gpModelIndices->STREETLAMP2 -#define MI_ROADSFORROADBLOCKSSTART gpModelIndices->ROADSFORROADBLOCKSSTART -#define MI_ROADSFORROADBLOCKSEND gpModelIndices->ROADSFORROADBLOCKSEND -#define MI_TREE2 gpModelIndices->TREE2 -#define MI_TREE3 gpModelIndices->TREE3 -#define MI_TREE6 gpModelIndices->TREE6 -#define MI_TREE8 gpModelIndices->TREE8 -#define MI_TREE1 gpModelIndices->TREE1 -#define MI_TREE4 gpModelIndices->TREE4 -#define MI_TREE5 gpModelIndices->TREE5 -#define MI_TREE7 gpModelIndices->TREE7 -#define MI_TREE9 gpModelIndices->TREE9 -#define MI_TREE10 gpModelIndices->TREE10 -#define MI_TREE11 gpModelIndices->TREE11 -#define MI_TREE12 gpModelIndices->TREE12 -#define MI_TREE13 gpModelIndices->TREE13 -#define MI_TREE14 gpModelIndices->TREE14 -#define MODELID_CRANE_1 gpModelIndices->CRANE_1 -#define MODELID_CRANE_2 gpModelIndices->CRANE_2 -#define MODELID_CRANE_3 gpModelIndices->CRANE_3 -#define MODELID_CRANE_4 gpModelIndices->CRANE_4 -#define MODELID_CRANE_5 gpModelIndices->CRANE_5 -#define MODELID_CRANE_6 gpModelIndices->CRANE_6 -#define MI_PARKINGMETER gpModelIndices->PARKINGMETER -#define MI_PARKINGMETER2 gpModelIndices->PARKINGMETER2 -#define MI_MALLFAN gpModelIndices->MALLFAN -#define MI_HOTELFAN_NIGHT gpModelIndices->HOTELFAN_NIGHT -#define MI_HOTELFAN_DAY gpModelIndices->HOTELFAN_DAY -#define MI_HOTROOMFAN gpModelIndices->HOTROOMFAN -#define MI_PHONEBOOTH1 gpModelIndices->PHONEBOOTH1 -#define MI_WASTEBIN gpModelIndices->WASTEBIN -#define MI_BIN gpModelIndices->BIN -#define MI_POSTBOX1 gpModelIndices->POSTBOX1 -#define MI_NEWSSTAND gpModelIndices->NEWSSTAND -#define MI_TRAFFICCONE gpModelIndices->TRAFFICCONE -#define MI_DUMP1 gpModelIndices->DUMP1 -#define MI_ROADWORKBARRIER1 gpModelIndices->ROADWORKBARRIER1 -#define MI_BUSSIGN1 gpModelIndices->BUSSIGN1 -#define MI_NOPARKINGSIGN1 gpModelIndices->NOPARKINGSIGN1 -#define MI_PHONESIGN gpModelIndices->PHONESIGN -#define MI_TAXISIGN gpModelIndices->TAXISIGN -#define MI_FISHSTALL01 gpModelIndices->FISHSTALL01 -#define MI_FISHSTALL02 gpModelIndices->FISHSTALL02 -#define MI_FISHSTALL03 gpModelIndices->FISHSTALL03 -#define MI_FISHSTALL04 gpModelIndices->FISHSTALL04 -#define MI_BAGELSTAND2 gpModelIndices->BAGELSTAND2 -#define MI_FIRE_HYDRANT gpModelIndices->FIRE_HYDRANT -#define MI_COLLECTABLE1 gpModelIndices->COLLECTABLE1 -#define MI_MONEY gpModelIndices->MONEY -#define MI_CARMINE gpModelIndices->CARMINE -#define MI_GARAGEDOOR1 gpModelIndices->GARAGEDOOR1 -#define MI_GARAGEDOOR2 gpModelIndices->GARAGEDOOR2 -#define MI_GARAGEDOOR3 gpModelIndices->GARAGEDOOR3 -#define MI_GARAGEDOOR4 gpModelIndices->GARAGEDOOR4 -#define MI_GARAGEDOOR5 gpModelIndices->GARAGEDOOR5 -#define MI_GARAGEDOOR6 gpModelIndices->GARAGEDOOR6 -#define MI_GARAGEDOOR7 gpModelIndices->GARAGEDOOR7 -#define MI_GARAGEDOOR9 gpModelIndices->GARAGEDOOR9 -#define MI_GARAGEDOOR10 gpModelIndices->GARAGEDOOR10 -#define MI_GARAGEDOOR11 gpModelIndices->GARAGEDOOR11 -#define MI_GARAGEDOOR12 gpModelIndices->GARAGEDOOR12 -#define MI_GARAGEDOOR13 gpModelIndices->GARAGEDOOR13 -#define MI_GARAGEDOOR14 gpModelIndices->GARAGEDOOR14 -#define MI_GARAGEDOOR15 gpModelIndices->GARAGEDOOR15 -#define MI_GARAGEDOOR16 gpModelIndices->GARAGEDOOR16 -#define MI_GARAGEDOOR17 gpModelIndices->GARAGEDOOR17 -#define MI_GARAGEDOOR18 gpModelIndices->GARAGEDOOR18 -#define MI_GARAGEDOOR19 gpModelIndices->GARAGEDOOR19 -#define MI_GARAGEDOOR20 gpModelIndices->GARAGEDOOR20 -#define MI_GARAGEDOOR21 gpModelIndices->GARAGEDOOR21 -#define MI_GARAGEDOOR22 gpModelIndices->GARAGEDOOR22 -#define MI_GARAGEDOOR23 gpModelIndices->GARAGEDOOR23 -#define MI_GARAGEDOOR24 gpModelIndices->GARAGEDOOR24 -#define MI_GARAGEDOOR25 gpModelIndices->GARAGEDOOR25 -#define MI_GARAGEDOOR26 gpModelIndices->GARAGEDOOR26 -#define MI_GARAGEDOOR27 gpModelIndices->GARAGEDOOR27 -#define MI_GARAGEDOOR28 gpModelIndices->GARAGEDOOR28 -#define MI_GARAGEDOOR29 gpModelIndices->GARAGEDOOR29 -#define MI_GARAGEDOOR30 gpModelIndices->GARAGEDOOR30 -#define MI_GARAGEDOOR31 gpModelIndices->GARAGEDOOR31 -#define MI_GARAGEDOOR32 gpModelIndices->GARAGEDOOR32 -#define MI_GARAGEDOOR33 gpModelIndices->GARAGEDOOR33 -#define MI_GARAGEDOOR34 gpModelIndices->GARAGEDOOR34 -#define MI_GARAGEDOOR35 gpModelIndices->GARAGEDOOR35 -#define MI_GARAGEDOOR36 gpModelIndices->GARAGEDOOR36 -#define MI_GARAGEDOOR37 gpModelIndices->GARAGEDOOR37 -#define MI_GARAGEDOOR38 gpModelIndices->GARAGEDOOR38 -#define MI_GARAGEDOOR39 gpModelIndices->GARAGEDOOR39 -#define MI_TESTRAMP1 gpModelIndices->TESTRAMP1 // UNUSED -#define MI_TESTRAMP2 gpModelIndices->TESTRAMP2 -#define MI_NAUTICALMINE gpModelIndices->NAUTICALMINE -#define MI_CRUSHERBODY gpModelIndices->CRUSHERBODY -#define MI_CRUSHERLID gpModelIndices->CRUSHERLID -#define MI_DONKEYMAG gpModelIndices->DONKEYMAG -#define MI_BULLION gpModelIndices->BULLION -#define MI_FLOATPACKAGE1 gpModelIndices->FLOATPACKAGE1 -#define MI_BRIEFCASE gpModelIndices->BRIEFCASE -#define MI_CHINABANNER1 gpModelIndices->CHINABANNER1 -#define MI_CHINABANNER2 gpModelIndices->CHINABANNER2 -#define MI_CHINABANNER3 gpModelIndices->CHINABANNER3 -#define MI_CHINABANNER4 gpModelIndices->CHINABANNER4 -#define MI_CHINABANNER5 gpModelIndices->CHINABANNER5 -#define MI_CHINABANNER6 gpModelIndices->CHINABANNER6 -#define MI_CHINABANNER7 gpModelIndices->CHINABANNER7 -#define MI_CHINABANNER8 gpModelIndices->CHINABANNER8 -#define MI_CHINABANNER9 gpModelIndices->CHINABANNER9 -#define MI_CHINABANNER10 gpModelIndices->CHINABANNER10 -#define MI_CHINABANNER11 gpModelIndices->CHINABANNER11 -#define MI_CHINABANNER12 gpModelIndices->CHINABANNER12 -#define MI_CHINALANTERN gpModelIndices->CHINALANTERN -#define MI_GLASS1 gpModelIndices->GLASS1 -#define MI_GLASS2 gpModelIndices->GLASS2 -#define MI_GLASS3 gpModelIndices->GLASS3 -#define MI_GLASS4 gpModelIndices->GLASS4 -#define MI_GLASS5 gpModelIndices->GLASS5 -#define MI_GLASS6 gpModelIndices->GLASS6 -#define MI_GLASS7 gpModelIndices->GLASS7 -#define MI_GLASS8 gpModelIndices->GLASS8 -#define MI_BRIDGELIFT gpModelIndices->BRIDGELIFT -#define MI_BRIDGEWEIGHT gpModelIndices->BRIDGEWEIGHT -#define MI_BRIDGEROADSEGMENT gpModelIndices->BRIDGEROADSEGMENT -#define MI_EXPLODINGBARREL gpModelIndices->EXPLODINGBARREL -#define MI_ITALYBANNER1 gpModelIndices->ITALYBANNER1 -#define MI_MEGADAMAGE gpModelIndices->MEGADAMAGE -#define MI_REGENERATOR gpModelIndices->REGENERATOR -#define MI_INVISIBLE gpModelIndices->INVISIBLE -#define MI_GOOD_CAR gpModelIndices->GOOD_CAR -#define MI_BAD_CAR gpModelIndices->BAD_CAR -#define MI_PICKUP_ADRENALINE gpModelIndices->PICKUP_ADRENALINE -#define MI_PICKUP_BODYARMOUR gpModelIndices->PICKUP_BODYARMOUR -#define MI_PICKUP_INFO gpModelIndices->PICKUP_INFO -#define MI_PICKUP_HEALTH gpModelIndices->PICKUP_HEALTH -#define MI_PICKUP_BONUS gpModelIndices->PICKUP_BONUS -#define MI_PICKUP_BRIBE gpModelIndices->PICKUP_BRIBE -#define MI_PICKUP_KILLFRENZY gpModelIndices->PICKUP_KILLFRENZY -#define MI_PICKUP_CAMERA gpModelIndices->PICKUP_CAMERA -#define MI_PICKUP_REVENUE gpModelIndices->PICKUP_REVENUE -#define MI_PICKUP_SAVEGAME gpModelIndices->PICKUP_SAVEGAME -#define MI_PICKUP_PROPERTY gpModelIndices->PICKUP_PROPERTY -#define MI_PICKUP_PROPERTY_FORSALE gpModelIndices->PICKUP_PROPERTY_FORSALE -#define MI_PICKUP_CLOTHES gpModelIndices->PICKUP_CLOTHES -#define MI_BOLLARDLIGHT gpModelIndices->BOLLARDLIGHT -#define MI_CA_SP1 gpModelIndices->CA_SP1 -#define MI_CA_SP2 gpModelIndices->CA_SP2 -#define MI_CA_SP3 gpModelIndices->CA_SP3 -#define MI_CA_SP4 gpModelIndices->CA_SP4 -#define MI_PACKAGE1IZZY gpModelIndices->PACKAGE1IZZY -#define MI_MAGNET gpModelIndices->MAGNET -#define MI_RAILTRACKS gpModelIndices->RAILTRACKS -#define MI_FENCE gpModelIndices->FENCE -#define MI_FENCE2 gpModelIndices->FENCE2 -#define MI_PETROLPUMP gpModelIndices->PETROLPUMP -#define MI_PETROLPUMP2 gpModelIndices->PETROLPUMP2 -#define MI_BODYCAST gpModelIndices->BODYCAST -#define MI_IZZY_CONFDOOR gpModelIndices->IZZY_CONFDOOR -#define MI_SHIPDOOR gpModelIndices->SHIPDOOR -#define MI_IZZY_JDDOOR gpModelIndices->IZZY_JDDOOR -#define MI_IZZY_JDDOOR_SLIDER gpModelIndices->IZZY_JDDOOR_SLIDER -#define MI_LITEHOUSE_GATE gpModelIndices->LITEHOUSE_GATE -#define MI_COFFEE gpModelIndices->COFFEE -#define MI_BUOY gpModelIndices->BUOY -#define MI_PARKTABLE gpModelIndices->PARKTABLE -#define MI_SUBWAY1 gpModelIndices->SUBWAY1 -#define MI_SUBWAY2 gpModelIndices->SUBWAY2 -#define MI_SUBWAY3 gpModelIndices->SUBWAY3 -#define MI_SUBWAY4 gpModelIndices->SUBWAY4 -#define MI_SUBWAY5 gpModelIndices->SUBWAY5 -#define MI_SUBWAY6 gpModelIndices->SUBWAY6 -#define MI_SUBWAY7 gpModelIndices->SUBWAY7 -#define MI_SUBWAY8 gpModelIndices->SUBWAY8 -#define MI_SUBWAY9 gpModelIndices->SUBWAY9 -#define MI_SUBWAY10 gpModelIndices->SUBWAY10 -#define MI_SUBWAY11 gpModelIndices->SUBWAY11 -#define MI_SUBWAY12 gpModelIndices->SUBWAY12 -#define MI_SUBWAY13 gpModelIndices->SUBWAY13 -#define MI_SUBWAY14 gpModelIndices->SUBWAY14 -#define MI_SUBWAY15 gpModelIndices->SUBWAY15 -#define MI_SUBWAY16 gpModelIndices->SUBWAY16 -#define MI_SUBWAY17 gpModelIndices->SUBWAY17 -#define MI_SUBWAY18 gpModelIndices->SUBWAY18 -#define MI_SUBPLATFORM_IND gpModelIndices->SUBPLATFORM_IND -#define MI_SUBPLATFORM_COMS gpModelIndices->SUBPLATFORM_COMS -#define MI_SUBPLATFORM_COMS2 gpModelIndices->SUBPLATFORM_COMS2 -#define MI_SUBPLATFORM_COMN gpModelIndices->SUBPLATFORM_COMN -#define MI_SUBPLATFORM_SUB gpModelIndices->SUBPLATFORM_SUB -#define MI_SUBPLATFORM_SUB2 gpModelIndices->SUBPLATFORM_SUB2 -#define MI_FILES gpModelIndices->FILES -#define MI_LAMPPOST1 gpModelIndices->LAMPPOST1 -#define MI_VEG_PALM01 gpModelIndices->VEG_PALM01 -#define MI_VEG_PALM02 gpModelIndices->VEG_PALM02 -#define MI_VEG_PALM03 gpModelIndices->VEG_PALM03 -#define MI_VEG_PALM04 gpModelIndices->VEG_PALM04 -#define MI_VEG_PALM05 gpModelIndices->VEG_PALM05 -#define MI_VEG_PALM06 gpModelIndices->VEG_PALM06 -#define MI_VEG_PALM07 gpModelIndices->VEG_PALM07 -#define MI_VEG_PALM08 gpModelIndices->VEG_PALM08 -#define MI_MLAMPPOST gpModelIndices->MLAMPPOST -#define MI_BARRIER1 gpModelIndices->BARRIER1 -#define MI_LITTLEHA_POLICE gpModelIndices->LITTLEHA_POLICE -#define MI_TELPOLE02 gpModelIndices->TELPOLE02 -#define MI_TRAFFICLIGHT01 gpModelIndices->TRAFFICLIGHT01 -#define MI_PARKBENCH gpModelIndices->PARKBENCH -#define MI_PLC_STINGER gpModelIndices->PLC_STINGER -#define MI_LIGHTBEAM gpModelIndices->LIGHTBEAM -#define MI_AIRPORTRADAR gpModelIndices->AIRPORTRADAR -#define MI_RCBOMB gpModelIndices->RCBOMB -#define MI_JM_SALRADIO gpModelIndices->JM_SALRADIO -#define MI_BEACHBALL gpModelIndices->BEACHBALL -#define MI_SANDCASTLE1 gpModelIndices->SANDCASTLE1 -#define MI_SANDCASTLE2 gpModelIndices->SANDCASTLE2 -#define MI_JELLYFISH gpModelIndices->JELLYFISH -#define MI_JELLYFISH01 gpModelIndices->JELLYFISH01 -#define MI_FISH1SINGLE gpModelIndices->FISH1SINGLE -#define MI_FISH1S gpModelIndices->FISH1S -#define MI_FISH2SINGLE gpModelIndices->FISH2SINGLE -#define MI_FISH2S gpModelIndices->FISH2S -#define MI_FISH3SINGLE gpModelIndices->FISH3SINGLE -#define MI_FISH3S gpModelIndices->FISH3S -#define MI_TURTLE gpModelIndices->TURTLE -#define MI_DOLPHIN gpModelIndices->DOLPHIN -#define MI_SHARK gpModelIndices->SHARK -#define MI_SUBMARINE gpModelIndices->SUBMARINE -#define MI_ESCALATORSTEP gpModelIndices->ESCALATORSTEP -#define MI_LOUNGE_WOOD_UP gpModelIndices->LOUNGE_WOOD_UP -#define MI_LOUNGE_TOWEL_UP gpModelIndices->LOUNGE_TOWEL_UP -#define MI_LOUNGE_WOOD_DN gpModelIndices->LOUNGE_WOOD_DN -#define MI_LOTION gpModelIndices->LOTION -#define MI_BEACHTOWEL01 gpModelIndices->BEACHTOWEL01 -#define MI_BEACHTOWEL02 gpModelIndices->BEACHTOWEL02 -#define MI_BEACHTOWEL03 gpModelIndices->BEACHTOWEL03 -#define MI_BEACHTOWEL04 gpModelIndices->BEACHTOWEL04 -#define MI_BLIMP_NIGHT gpModelIndices->BLIMP_NIGHT -#define MI_BLIMP_DAY gpModelIndices->BLIMP_DAY -#define MI_YT_MAIN_BODY gpModelIndices->YT_MAIN_BODY -#define MI_YT_MAIN_BODY2 gpModelIndices->YT_MAIN_BODY2 -#define MI_SMALL_HELIX gpModelIndices->SMALL_HELIX -#define MI_PT_BARRIER gpModelIndices->PT_BARRIER -#define MI_SUBWAYGATE gpModelIndices->SUBWAYGATE -#define MI_IN_PMBRIDRAMP3 gpModelIndices->IN_PMBRIDRAMP3 -#define MI_IN_PMBRIDG2_UPGS gpModelIndices->IN_PMBRIDG2_UPGS -#define MI_IN_PMBRIDGE2 gpModelIndices->IN_PMBRIDGE2 -#define MI_IN_PMBRIDG1_UPGS gpModelIndices->IN_PMBRIDG1_UPGS -#define MI_PM_LIGHTRIG3 gpModelIndices->PM_LIGHTRIG3 -#define MI_PM_LIGHTRIG1 gpModelIndices->PM_LIGHTRIG1 -#define MI_IN_PMSCAFF_UPS gpModelIndices->IN_PMSCAFF_UPS -#define MI_IN_PM_CONCBLOK2 gpModelIndices->IN_PM_CONCBLOK2 -#define MI_IN_PMSCAFFH_NS gpModelIndices->IN_PMSCAFFH_NS -#define MI_IN_PM_GRAVL_JMP gpModelIndices->IN_PM_GRAVL_JMP -#define MI_IN_PM_SCAFFCOVR gpModelIndices->IN_PM_SCAFFCOVR -#define MI_IN_PM_GIRDER2 gpModelIndices->IN_PM_GIRDER2 -#define MI_IN_PM_SCAFFH_WE gpModelIndices->IN_PM_SCAFFH_WE -#define MI_IN_PM_SIXCONC2 gpModelIndices->IN_PM_SIXCONC2 -#define MI_IN_BMBRIDRAMP3 gpModelIndices->IN_BMBRIDRAMP3 -#define MI_IN_BMBRIDG2_UPGS gpModelIndices->IN_BMBRIDG2_UPGS -#define MI_IN_BMBRIDGE2 gpModelIndices->IN_BMBRIDGE2 -#define MI_IN_BMBRIDG1_UPGS gpModelIndices->IN_BMBRIDG1_UPGS -#define MI_BM_LIGHTRIG3 gpModelIndices->BM_LIGHTRIG3 -#define MI_BM_LIGHTRIG1 gpModelIndices->BM_LIGHTRIG1 -#define MI_IN_BMSCAFF_UPS gpModelIndices->IN_BMSCAFF_UPS -#define MI_IN_BM_CONCBLOK2 gpModelIndices->IN_BM_CONCBLOK2 -#define MI_IN_BMSCAFFH_NS gpModelIndices->IN_BMSCAFFH_NS -#define MI_IN_BM_GRAVL_JMP gpModelIndices->IN_BM_GRAVL_JMP -#define MI_IN_BM_SCAFFCOVR gpModelIndices->IN_BM_SCAFFCOVR -#define MI_IN_BM_GIRDER2 gpModelIndices->IN_BM_GIRDER2 -#define MI_IN_BM_SCAFFH_WE gpModelIndices->IN_BM_SCAFFH_WE -#define MI_IN_BM_SIXCONC2 gpModelIndices->IN_BM_SIXCONC2 -#define MI_CRATE_SJL gpModelIndices->CRATE_SJL -#define MI_DOOR1_SJL gpModelIndices->DOOR1_SJL -#define MI_DOOR2_SJL gpModelIndices->DOOR2_SJL -#define MI_SJL_PORTACABIN gpModelIndices->SJL_PORTACABIN -#define MI_SJL_PORTACABINRED gpModelIndices->SJL_PORTACABINRED - #define MODELINDICES \ X("fire_hydrant", MI_FIRE_HYDRANT) \ - X("fire_hydrant", MI_FIRE_HYDRANT) /* BUG: second time */ \ - X("bagelstnd02", MI_BAGELSTAND2) \ - X("fish01", MI_FISHSTALL01) \ - X("fishstall02", MI_FISHSTALL02) \ - X("fishstall03", MI_FISHSTALL03) \ - X("fishstall04", MI_FISHSTALL04) \ - X("taxisign", MI_TAXISIGN) \ X("phonesign", MI_PHONESIGN) \ X("noparkingsign1", MI_NOPARKINGSIGN1) \ X("bussign1", MI_BUSSIGN1) \ @@ -599,17 +16,12 @@ extern CModelIndices *gpModelIndices; X("wastebin", MI_WASTEBIN) \ X("phonebooth1", MI_PHONEBOOTH1) \ X("parkingmeter", MI_PARKINGMETER) \ - X("trafficlight1", MI_TRAFFICLIGHTS) \ - X("tlight_post", MI_TLIGHT_POST) \ - X("tlight_walk", MI_TLIGHT_WALK) \ - X("tlight_box1", MI_TLIGHT_BOX1) \ - X("tlight_box2", MI_TLIGHT_BOX2) \ X("parkingmeterg", MI_PARKINGMETER2) \ X("mall_fans", MI_MALLFAN) \ X("htl_fan_rotate_nt", MI_HOTELFAN_NIGHT) \ X("htl_fan_rotate_dy", MI_HOTELFAN_DAY) \ X("hotroomfan", MI_HOTROOMFAN) \ - X("trafficlight1", MI_TRAFFICLIGHTS) /* BUG: second time */ \ + X("trafficlight1", MI_TRAFFICLIGHTS) \ X("MTraffic4", MI_TRAFFICLIGHTS_VERTICAL) \ X("MTraffic1", MI_TRAFFICLIGHTS_MIAMI) \ X("MTraffic2", MI_TRAFFICLIGHTS_TWOVERTICAL) \ @@ -619,110 +31,47 @@ extern CModelIndices *gpModelIndices; X("doublestreetlght1", MI_DOUBLESTREETLIGHTS) \ X("Streetlamp1", MI_STREETLAMP1) \ X("Streetlamp2", MI_STREETLAMP2) \ - X("rd_Road2A10", MI_ROADSFORROADBLOCKSSTART) \ - X("rd_Road1A30", MI_ROADSFORROADBLOCKSEND) \ - X("veg_tree1", MI_TREE1) \ X("veg_tree3", MI_TREE2) \ X("veg_treea1", MI_TREE3) \ - X("veg_treenew01", MI_TREE4) \ - X("veg_treenew05", MI_TREE5) \ X("veg_treeb1", MI_TREE6) \ - X("veg_treenew10", MI_TREE7) \ X("veg_treea3", MI_TREE8) \ - X("veg_treenew09", MI_TREE9) \ - X("veg_treenew08", MI_TREE10) \ - X("veg_treenew03", MI_TREE11) \ - X("veg_treenew16", MI_TREE12) \ - X("veg_treenew17", MI_TREE13) \ - X("veg_treenew06", MI_TREE14) \ - X("crusher_crane", MODELID_CRANE_1) \ + X("doc_crane_cab0", MODELID_CRANE_1) \ + X("doc_crane_cab01", MODELID_CRANE_2) \ + X("doc_crane_cab02", MODELID_CRANE_3) \ + X("doc_crane_cab03", MODELID_CRANE_4) \ + X("boatcranelg0", MODELID_CRANE_5) \ + X("LODnetopa0", MODELID_CRANE_6) \ X("package1", MI_COLLECTABLE1) \ X("Money", MI_MONEY) \ X("barrel1", MI_CARMINE) \ - X("oddjgaragdoor", MI_GARAGEDOOR1) \ - X("bombdoor", MI_GARAGEDOOR2) \ - X("door_bombshop", MI_GARAGEDOOR3) \ - X("vheistlocdoor", MI_GARAGEDOOR4) \ - X("door2_garage", MI_GARAGEDOOR5) \ - X("ind_slidedoor", MI_GARAGEDOOR6) \ - X("bankjobdoor", MI_GARAGEDOOR7) \ - X("door_jmsgrage", MI_GARAGEDOOR9) \ - X("ind_safeh_gdoor", MI_GARAGEDOOR10) \ - X("door_sfehousegrge", MI_GARAGEDOOR11) \ - X("shedgaragedoor", MI_GARAGEDOOR12) \ - X("door4_garage", MI_GARAGEDOOR13) \ - X("door_col_compnd_01", MI_GARAGEDOOR14) \ - X("door_col_compnd_02", MI_GARAGEDOOR15) \ - X("door_col_compnd_03", MI_GARAGEDOOR16) \ - X("door_col_compnd_04", MI_GARAGEDOOR17) \ - X("door_col_compnd_05", MI_GARAGEDOOR18) \ - X("impex_door", MI_GARAGEDOOR19) \ - X("SalvGarage", MI_GARAGEDOOR20) \ - X("door3_garage", MI_GARAGEDOOR21) \ - X("leveldoor2", MI_GARAGEDOOR22) \ - X("double_garage_dr", MI_GARAGEDOOR23) \ - X("amcogaragedoor", MI_GARAGEDOOR24) \ - X("towergaragedoor1", MI_GARAGEDOOR25) \ - X("towergaragedoor2", MI_GARAGEDOOR26) \ - X("towergaragedoor3", MI_GARAGEDOOR27) \ - X("plysve_gragedoor", MI_GARAGEDOOR28) \ - X("impexpsubgrgdoor", MI_GARAGEDOOR29) \ - X("Sub_sprayshopdoor", MI_GARAGEDOOR30) \ - X("ind_plyrwoor", MI_GARAGEDOOR31) \ - X("8ballsuburbandoor", MI_GARAGEDOOR32) \ - X("door_nthgrage", MI_GARAGEDOOR33) \ - X("hangardoor1", MI_GARAGEDOOR34) \ - X("hangardoor2", MI_GARAGEDOOR35) \ - X("neds_door", MI_GARAGEDOOR36) \ - X("fs_wrhsedoor", MI_GARAGEDOOR37) \ - X("jm_ContraGarage", MI_GARAGEDOOR38) \ - X("jm_imp_SalvGarage", MI_GARAGEDOOR39) \ - X("Testramp1", MI_TESTRAMP1) /* BUG: LCS used MI_TESTRAMP2 here */ \ - X("Testramp2", MI_TESTRAMP2) \ + X("dk_paynspraydoor", MI_GARAGEDOOR2) \ + X("dk_waretankdoor1", MI_GARAGEDOOR3) \ + X("hav_garagedoor1", MI_GARAGEDOOR4) \ + X("hav_garagedoor02", MI_GARAGEDOOR5) \ + X("hav_garagedoor03", MI_GARAGEDOOR6) \ + X("hav_garagedoor04", MI_GARAGEDOOR7) \ + X("lh_showdoor03", MI_GARAGEDOOR9) \ + X("lh_showdoor1", MI_GARAGEDOOR10) \ + X("lhtankdoor", MI_GARAGEDOOR11) \ + X("nbtgardoor", MI_GARAGEDOOR12) \ + X("dk_camjonesdoor", MI_GARAGEDOOR13) \ + X("nbtgardoor02", MI_GARAGEDOOR14) \ + X("dt_savedra", MI_GARAGEDOOR15) \ + X("dt_savedrb", MI_GARAGEDOOR16) \ + X("dk_bombdoor", MI_GARAGEDOOR18) \ + X("haiwshpnsdoor", MI_GARAGEDOOR19) \ + X("wshpnsdoor", MI_GARAGEDOOR20) \ + X("nbecpnsdoor", MI_GARAGEDOOR21) \ + X("nbtgardoor03", MI_GARAGEDOOR22) \ + X("dt_savedrc", MI_GARAGEDOOR23) \ + X("dt_savedrd", MI_GARAGEDOOR24) \ + X("man_frntstepGD", MI_GARAGEDOOR25) \ + X("svegrgedoor", MI_GARAGEDOOR26) \ X("barrel2", MI_NAUTICALMINE) \ - X("crushercrush", MI_CRUSHERBODY) \ - X("crushertop", MI_CRUSHERLID) \ - X("donkeymag", MI_DONKEYMAG) \ - X("bullion", MI_BULLION) \ - X("floatpackge1", MI_FLOATPACKAGE1) \ X("briefcase", MI_BRIEFCASE) \ - X("chinabanner1", MI_CHINABANNER1) \ - X("chinabanner2", MI_CHINABANNER2) \ - X("chinabanner3", MI_CHINABANNER3) \ - X("chinabanner4", MI_CHINABANNER4) \ - X("iten_chinatown5", MI_CHINABANNER5) \ - X("iten_chinatown7", MI_CHINABANNER6) \ - X("iten_chinatown3", MI_CHINABANNER7) \ - X("iten_chinatown2", MI_CHINABANNER8) \ - X("iten_chinatown4", MI_CHINABANNER9) \ - X("iten_washline01", MI_CHINABANNER10) \ - X("iten_washline02", MI_CHINABANNER11) \ - X("iten_washline03", MI_CHINABANNER12) \ - X("chinalanterns", MI_CHINALANTERN) \ - X("glassfx1", MI_GLASS1) \ - X("glassfx2", MI_GLASS2) \ - X("glassfx3", MI_GLASS3) \ - X("glassfx4", MI_GLASS4) \ - X("glassfx55", MI_GLASS5) \ - X("glassfxsub1", MI_GLASS6) \ - X("glassfxsub2", MI_GLASS7) \ + X("wglasssmash", MI_GLASS1) \ X("glassfx_composh", MI_GLASS8) \ - X("bridge_liftsec", MI_BRIDGELIFT) \ - X("bridge_liftweight", MI_BRIDGEWEIGHT) \ - X("subbridge_lift", MI_BRIDGEROADSEGMENT) \ - X("flagsitaly", MI_ITALYBANNER1) \ - X("small_helix", MI_SMALL_HELIX) \ X("barrel4", MI_EXPLODINGBARREL) \ - X("Crate_sjl", MI_CRATE_SJL) \ - X("Door1_sjl", MI_DOOR1_SJL) \ - X("Door2_sjl", MI_DOOR2_SJL) \ - X("SJL_PortaCabin", MI_SJL_PORTACABIN) \ - X("SJL_PortaCabinred", MI_SJL_PORTACABINRED) \ - X("megaDamage", MI_MEGADAMAGE) \ - X("regenerator", MI_REGENERATOR) \ - X("invisible", MI_INVISIBLE) \ - X("good_car", MI_GOOD_CAR) \ - X("bad_car", MI_BAD_CAR) \ X("adrenaline", MI_PICKUP_ADRENALINE) \ X("bodyarmour", MI_PICKUP_BODYARMOUR) \ X("info", MI_PICKUP_INFO) \ @@ -733,57 +82,16 @@ extern CModelIndices *gpModelIndices; X("camerapickup", MI_PICKUP_CAMERA) \ X("bigdollar", MI_PICKUP_REVENUE) \ X("pickupsave", MI_PICKUP_SAVEGAME) \ - X("clothesp", MI_PICKUP_CLOTHES) \ X("property_locked", MI_PICKUP_PROPERTY) \ X("property_fsale", MI_PICKUP_PROPERTY_FORSALE) \ + X("clothesp", MI_PICKUP_CLOTHES) \ X("bollardlight", MI_BOLLARDLIGHT) \ - X("ca_sp1", MI_CA_SP1) \ - X("ca_sp2", MI_CA_SP2) \ - X("ca_sp3", MI_CA_SP3) \ - X("ca_sp4", MI_CA_SP4) \ - X("package1izzy", MI_PACKAGE1IZZY) \ - X("magnet", MI_MAGNET) \ - X("streetlamp1", MI_STREETLAMP1) \ - X("streetlamp2", MI_STREETLAMP2) \ - X("railtrax_lo4b", MI_RAILTRACKS) \ X("bar_barrier10", MI_FENCE) \ X("bar_barrier12", MI_FENCE2) \ X("petrolpump", MI_PETROLPUMP) \ X("washgaspump", MI_PETROLPUMP2) \ - X("bodycast", MI_BODYCAST) \ - X("izzy_confDoor", MI_IZZY_CONFDOOR) \ - X("shipdoor", MI_SHIPDOOR) \ - X("izzy_jdDoor", MI_IZZY_JDDOOR) \ - X("izzy_jdDoor_slider", MI_IZZY_JDDOOR_SLIDER) \ - X("litehouse_gate", MI_LITEHOUSE_GATE) \ - X("coffee", MI_COFFEE) \ X("bouy", MI_BUOY) \ X("parktable1", MI_PARKTABLE) \ - X("sbwy_tunl_start", MI_SUBWAY1) \ - X("sbwy_tunl_bit", MI_SUBWAY2) \ - X("sbwy_tunl_bend", MI_SUBWAY3) \ - X("sbwy_tunl_cstm6", MI_SUBWAY4) \ - X("sbwy_tunl_cstm7", MI_SUBWAY5) \ - X("sbwy_tunl_cstm8", MI_SUBWAY6) \ - X("sbwy_tunl_cstm10", MI_SUBWAY7) \ - X("sbwy_tunl_cstm9", MI_SUBWAY8) \ - X("sbwy_tunl_cstm11", MI_SUBWAY9) \ - X("sbwy_tunl_cstm1", MI_SUBWAY10) \ - X("sbwy_tunl_cstm2", MI_SUBWAY11) \ - X("sbwy_tunl_cstm4", MI_SUBWAY12) \ - X("sbwy_tunl_cstm3", MI_SUBWAY13) \ - X("sbwy_tunl_cstm5", MI_SUBWAY14) \ - X("subplatform_n2", MI_SUBWAY15) \ - X("suby_tunl_start", MI_SUBWAY16) \ - X("sbwy_tunl_start2", MI_SUBWAY17) \ - X("indy_tunl_start", MI_SUBWAY18) \ - X("indsubway03", MI_SUBPLATFORM_IND) \ - X("comerside_subway", MI_SUBPLATFORM_COMS) \ - X("subplatform", MI_SUBPLATFORM_COMS2) \ - X("subplatform_n", MI_SUBPLATFORM_COMN) \ - X("Otherside_subway", MI_SUBPLATFORM_SUB) \ - X("subplatform_sub", MI_SUBPLATFORM_SUB2) \ - X("files", MI_FILES) \ X("lamppost1", MI_LAMPPOST1) \ X("veg_palm04", MI_VEG_PALM01) \ X("veg_palwee02", MI_VEG_PALM02) \ @@ -799,12 +107,10 @@ extern CModelIndices *gpModelIndices; X("telgrphpole02", MI_TELPOLE02) \ X("trafficlight1", MI_TRAFFICLIGHT01) \ X("parkbench1", MI_PARKBENCH) \ - X("Money", MI_MONEY) \ X("plc_stinger", MI_PLC_STINGER) \ X("od_lightbeam", MI_LIGHTBEAM) \ X("ap_radar1_01", MI_AIRPORTRADAR) \ X("rcbomb", MI_RCBOMB) \ - X("jm_salradio", MI_JM_SALRADIO) \ X("beachball", MI_BEACHBALL) \ X("sandcastle1", MI_SANDCASTLE1) \ X("sandcastle2", MI_SANDCASTLE2) \ @@ -832,42 +138,11 @@ extern CModelIndices *gpModelIndices; X("blimp_night", MI_BLIMP_NIGHT) \ X("blimp_day", MI_BLIMP_DAY) \ X("yt_main_body", MI_YT_MAIN_BODY) \ - X("pt_barrier", MI_PT_BARRIER) \ - X("subwaygate", MI_SUBWAYGATE) \ - X("in_PMbridramp3", MI_IN_PMBRIDRAMP3) \ - X("in_PMbridg2_upgs", MI_IN_PMBRIDG2_UPGS) \ - X("in_PMbridge2", MI_IN_PMBRIDGE2) \ - X("in_PMbridg1_upgs", MI_IN_PMBRIDG1_UPGS) \ - X("pm_lightrig3", MI_PM_LIGHTRIG3) \ - X("pm_lightrig1", MI_PM_LIGHTRIG1) \ - X("in_pmSCAFF_UPS", MI_IN_PMSCAFF_UPS) \ - X("in_pm_concblok2", MI_IN_PM_CONCBLOK2) \ - X("in_pmSCAFFH_ns", MI_IN_PMSCAFFH_NS) \ - X("in_pm_gravl_jmp", MI_IN_PM_GRAVL_JMP) \ - X("in_pm_scaffcovr", MI_IN_PM_SCAFFCOVR) \ - X("in_pm_girder2", MI_IN_PM_GIRDER2) \ - X("in_pm_scaffH_we", MI_IN_PM_SCAFFH_WE) \ - X("in_pm_sixconc2", MI_IN_PM_SIXCONC2) \ - X("in_BMbridramp3", MI_IN_BMBRIDRAMP3) \ - X("in_BMbridg2_upgs", MI_IN_BMBRIDG2_UPGS) \ - X("in_BMbridge2", MI_IN_BMBRIDGE2) \ - X("in_BMbridg1_upgs", MI_IN_BMBRIDG1_UPGS) \ - X("Bm_lightrig3", MI_BM_LIGHTRIG3) \ - X("bm_lightrig1", MI_BM_LIGHTRIG1) \ - X("in_BmSCAFF_UPS", MI_IN_BMSCAFF_UPS) \ - X("in_Bm_concblok2", MI_IN_BM_CONCBLOK2) \ - X("in_BmSCAFFH_ns", MI_IN_BMSCAFFH_NS) \ - X("in_Bm_gravl_jmp", MI_IN_BM_GRAVL_JMP) \ - X("in_Bm_scaffcovr", MI_IN_BM_SCAFFCOVR) \ - X("in_Bm_girder2", MI_IN_BM_GIRDER2) \ - X("in_Bm_scaffH_we", MI_IN_BM_SCAFFH_WE) \ - X("in_Bm_sixconc2", MI_IN_BM_SIXCONC2) + X("yt_main_body2", MI_YT_MAIN_BODY2) - /*X("yt_main_body2", MI_YT_MAIN_BODY2) \*/ - -//#define X(name, var) extern int16 var; -// MODELINDICES -//#undef X +#define X(name, var) extern int16 var; + MODELINDICES +#undef X // and some hardcoded ones // expand as needed @@ -882,85 +157,96 @@ enum MI_FIREMAN, MI_MALE01, - MI_TAXI_D = 9, - MI_PIMP, - MI_CRIMINAL01, - MI_CRIMINAL02, - MI_MALE02, - MI_MALE03, - MI_FATMALE01, - MI_FATMALE02, - MI_FEMALE01, - MI_FEMALE02, - MI_FEMALE03, - MI_FATFEMALE01, - MI_FATFEMALE02, - MI_PROSTITUTE, - MI_PROSTITUTE2, - MI_P_MAN1, - MI_P_MAN2, - MI_P_WOM1, - MI_P_WOM2, - MI_CT_MAN1, - MI_CT_MAN2, - MI_CT_WOM1, - MI_CT_WOM2, - MI_LI_MAN1, - MI_LI_MAN2, - MI_LI_WOM1, - MI_LI_WOM2, - MI_DOCKER1, - MI_DOCKER2, - MI_SCUM_MAN, - MI_SCUM_WOM, - MI_WORKER1, - MI_WORKER2, - MI_B_MAN1, - MI_B_MAN2, - MI_B_MAN3, - MI_B_WOM1, - MI_B_WOM2, - MI_B_WOM3, - MI_MOD_MAN, - MI_MOD_WOM, - MI_ST_MAN, - MI_ST_WOM, - MI_FAN_MAN1, - MI_FAN_MAN2, - MI_FAN_WOM, - MI_HOS_MAN, - MI_HOS_WOM, - MI_CONST1, - MI_CONST2, - MI_SHOPPER1, - MI_SHOPPER2, - MI_SHOPPER3, - MI_STUD_MAN, - MI_STUD_WOM, - MI_CAS_MAN, - MI_CAS_WOM, - MI_CAMP_MAN, - MI_CAMP_WOM, - MI_HITMAN, + MI_HFYST = 9, + MI_HFOST, + MI_HMYST, + MI_HMOST, + MI_HFYRI, + MI_HFORI, + MI_HMYRI, + MI_HMORI, + MI_HFYBE, + MI_HFOBE, + MI_HMYBE, + MI_HMOBE, + MI_HFYBU, + MI_HFYMD, + MI_HFYCG, + MI_HFYPR, + MI_HFOTR, + MI_HMOTR, + MI_HMYAP, + MI_HMOCA, + MI_TAXI_D = MI_HMOCA, + MI_BMODK, + MI_BMYKR, + MI_BFYST, + MI_BFOST, + MI_BMYST, + MI_BMOST, + MI_BFYRI, + MI_BFORI, + MI_BMYRI, + MI_BFYBE, + MI_BMYBE, + MI_BFOBE, + MI_BMOBE, + MI_BMYBU, + MI_BFYPR, + MI_BFOTR, + MI_BMOTR, + MI_BMYPI, + MI_BMYBB, + MI_WMYCR, + MI_WFYST, + MI_WFOST, + MI_WMYST, + MI_WMOST, + MI_WFYRI, + MI_WFORI, + MI_WMYRI, + MI_WMORI, + MI_WFYBE, + MI_WMYBE, + MI_WFOBE, + MI_WMOBE, + MI_WMYCW, + MI_WMYGO, + MI_WFOGO, + MI_WMOGO, + MI_WFYLG, + MI_WMYLG, + MI_WFYBU, + MI_WMYBU, + MI_WMOBU, + MI_WFYPR, + MI_WFOTR, + MI_WMOTR, + MI_WMYPI, + MI_WMOCA, + MI_WFYJG, + MI_WMYJG, + MI_WFYSK, + MI_WMYSK, + MI_WFYSH, + MI_WFOSH, + MI_JFOTO, + MI_JMOTO, - MI_GANG01 = 79, - MI_GANG02, - MI_GANG03, - MI_GANG04, - MI_GANG05, - MI_GANG06, - MI_GANG07, - MI_GANG08, - MI_GANG09, - MI_GANG10, - MI_GANG11, - MI_GANG12, - MI_GANG13, - MI_GANG14, - MI_GANG15, - MI_GANG16, - MI_GANG17, - MI_GANG18, + MI_CBA,// = 83, + MI_CBB, + MI_HNA, + MI_HNB, + MI_SGA, + MI_SGB, + MI_CLA, + MI_CLB, + MI_GDA, + MI_GDB, + MI_BKA, + MI_BKB, + MI_PGA, + MI_PGB, MI_VICE1, MI_VICE2, MI_VICE3, @@ -997,20 +283,19 @@ enum MI_LAST_PED = MI_SPECIAL21, MI_FIRST_VEHICLE, - MI_SPIDER = MI_FIRST_VEHICLE, - MI_LANDSTAL, + MI_LANDSTAL = MI_FIRST_VEHICLE, MI_IDAHO, MI_STINGER, MI_LINERUN, MI_PEREN, MI_SENTINEL, - MI_PATRIOT, + MI_RIO, MI_FIRETRUCK, MI_TRASH, MI_STRETCH, MI_MANANA, MI_INFERNUS, - MI_BLISTA, + MI_VOODOO, MI_PONY, MI_MULE, MI_CHEETAH, @@ -1019,120 +304,100 @@ enum MI_MOONBEAM, MI_ESPERANT, MI_TAXI, - MI_KURUMA, + MI_WASHING, MI_BOBCAT, MI_MRWHOOP, MI_BFINJECT, - MI_HEARSE, + MI_HUNTER, MI_POLICE, MI_ENFORCER, MI_SECURICA, MI_BANSHEE, + MI_PREDATOR, MI_BUS, MI_RHINO, MI_BARRACKS, - MI_DODO, + MI_CUBAN, + MI_CHOPPER, + MI_ANGEL, MI_COACH, MI_CABBIE, MI_STALLION, MI_RUMPO, MI_RCBANDIT, - MI_BELLYUP, - MI_MRWONGS, - MI_MAFIA, - MI_YARDIE, - MI_YAKUZA, - MI_DIABLOS, - MI_COLUMB, - MI_HOODS, - MI_PANLANT, - MI_FLATBED, - MI_YANKEE, - MI_BORGNINE, - MI_TOYZ, - MI_CAMPVAN, - MI_BALLOT, - MI_SHELBY, - MI_PONTIAC, - MI_ESPRIT, - MI_AMMOTRUK, - MI_HOTROD, - MI_SINDACCO_CAR, - MI_FORELLI_CAR, - MI_FERRY, - MI_GHOST, - MI_SPEEDER, - MI_REEFER, - MI_PREDATOR, - MI_TRAIN, - MI_ESCAPE, - MI_CHOPPER, + MI_ROMERO, + MI_PACKER, + MI_SENTXS, + MI_ADMIRAL, + MI_SQUALO, + MI_SEASPAR, + MI_PIZZABOY, + MI_GANGBUR, MI_AIRTRAIN, MI_DEADDODO, - MI_ANGEL, - MI_PIZZABOY, - MI_NOODLEBOY, + MI_SPEEDER, + MI_REEFER, + MI_TROPIC, + MI_FLATBED, + MI_YANKEE, + MI_CADDY, + MI_ZEBRA, + MI_TOPFUN, + MI_SKIMMER, MI_PCJ600, MI_FAGGIO, MI_FREEWAY, - MI_ANGEL2, - MI_SANCHEZ2, - MI_SANCHEZ, - MI_RCGOBLIN, - MI_RCRAIDER, - MI_HUNTER, - MI_MAVERICK, - MI_POLMAV, - MI_VCNMAV, - - MI_LAST_VEHICLE = MI_VCNMAV, - - // HACK HACK, hopefully temporary - MI_SEASPAR = -1000, - MI_SPARROW, MI_RCBARON, - MI_TOPFUN, - MI_CADDY, - MI_BAGGAGE, - MI_FBIRANCH, - MI_VICECHEE, - MI_RIO, - MI_SQUALO, - MI_JETMAX, - MI_COASTG, - MI_DINGHY, - MI_MARQUIS, - MI_SKIMMER, - MI_TROPIC, - MI_SANDKING, - MI_VOODOO, - MI_CUBAN, - MI_PHEONIX, - MI_COMET, - MI_SABRE, - MI_VIRGO, - MI_RANCHER, - MI_BLISTAC, - MI_WASHING, - MI_ADMIRAL, - MI_SABRETUR, - MI_DELUXO, - MI_HOTRING, - MI_REGINA, - MI_SENTXS, + MI_RCRAIDER, MI_GLENDALE, MI_OCEANIC, - MI_HERMES, - MI_GREENWOO, + MI_SANCHEZ, + MI_SPARROW, + MI_PATRIOT, MI_LOVEFIST, - MI_GANGBUR, + MI_COASTG, + MI_DINGHY, + MI_HERMES, + MI_SABRE, + MI_SABRETUR, + MI_PHEONIX, + MI_WALTON, + MI_REGINA, + MI_COMET, + MI_DELUXO, MI_BURRITO, MI_SPAND, - MI_PACKER, - MI_WALTON, - MI_ROMERO, + MI_MARQUIS, + MI_BAGGAGE, + MI_KAUFMAN, + MI_MAVERICK, + MI_VCNMAV, + MI_RANCHER, + MI_FBIRANCH, + MI_VIRGO, + MI_GREENWOO, + MI_JETMAX, + MI_HOTRING, + MI_SANDKING, + MI_BLISTAC, + MI_POLMAV, + MI_BOXVILLE, + MI_BENSON, + MI_MESA, + MI_RCGOBLIN, + MI_HOTRINA, + MI_HOTRINB, + MI_BLOODRA, + MI_BLOODRB, + MI_VICECHEE, - MI_WHEEL_RIM = 237, + // HACK + MI_TRAIN = -1, + MI_DODO = -2, + + MI_LAST_VEHICLE = MI_VICECHEE, + + MI_WHEEL_RIM, MI_WHEEL_OFFROAD, MI_WHEEL_TRUCK, @@ -1193,18 +458,14 @@ enum MI_FINGERS, MI_MINIGUN2, - MI_CUTOBJ01 = 120, + MI_CUTOBJ01,// = 295, MI_CUTOBJ02, MI_CUTOBJ03, MI_CUTOBJ04, MI_CUTOBJ05, - MI_CUTOBJ06, - MI_CUTOBJ07, - MI_CUTOBJ08, - MI_CUTOBJ09, - MI_CUTOBJ10, - NUM_DEFAULT_MODELS = 300 + + NUM_DEFAULT_MODELS,// = 300 }; enum{ @@ -1258,7 +519,11 @@ IsLightThatNeedsRepositioning(int16 id) return id == MI_SINGLESTREETLIGHTS1 || id == MI_SINGLESTREETLIGHTS2 || id == MI_SINGLESTREETLIGHTS3 || - id == MI_DOUBLESTREETLIGHTS; + id == MI_TRAFFICLIGHTS_MIAMI || + id == MI_TRAFFICLIGHTS_TWOVERTICAL || + id == MI_MLAMPPOST || + id == MI_STREETLAMP1 || + id == MI_STREETLAMP2; } inline bool @@ -1270,9 +535,7 @@ IsLightObject(int16 id) id == MI_SINGLESTREETLIGHTS2 || id == MI_SINGLESTREETLIGHTS3 || id == MI_DOUBLESTREETLIGHTS || - id == MI_TRAFFICLIGHTS_TWOVERTICAL || - id == MI_TRAFFICLIGHTS || - id == MI_FENCE; + id == MI_TRAFFICLIGHTS_TWOVERTICAL; } inline bool @@ -1304,26 +567,24 @@ IsPedModel(int16 id) inline bool IsPalmTreeModel(int16 id) { - return false; + return id == MI_VEG_PALM01 || + id == MI_VEG_PALM02 || + id == MI_VEG_PALM03 || + id == MI_VEG_PALM04 || + id == MI_VEG_PALM05 || + id == MI_VEG_PALM06 || + id == MI_VEG_PALM07 || + id == MI_VEG_PALM08; } inline bool IsTreeModel(int16 id) { - return id == MI_TREE1 || - id == MI_TREE2 || + return id == MI_TREE2 || id == MI_TREE3 || - id == MI_TREE4 || - id == MI_TREE5 || id == MI_TREE6 || - id == MI_TREE7 || id == MI_TREE8 || - id == MI_TREE9 || - id == MI_TREE10 || - id == MI_TREE11 || - id == MI_TREE12 || - id == MI_TREE13 || - id == MI_TREE14; + IsPalmTreeModel(id); } inline bool diff --git a/src/modelinfo/ModelInfo.cpp b/src/modelinfo/ModelInfo.cpp index 47f4e30..41515e2 100644 --- a/src/modelinfo/ModelInfo.cpp +++ b/src/modelinfo/ModelInfo.cpp @@ -4,7 +4,6 @@ #include "TempColModels.h" #include "ModelIndices.h" #include "ModelInfo.h" -#include "KeyGen.h" CBaseModelInfo *CModelInfo::ms_modelInfoPtrs[MODELINFOSIZE]; @@ -185,11 +184,10 @@ CModelInfo::AddVehicleModel(int id) CBaseModelInfo* CModelInfo::GetModelInfo(const char *name, int *id) { - uint32 hashKey = CKeyGen::GetUppercaseKey(name); CBaseModelInfo *modelinfo; for(int i = 0; i < MODELINFOSIZE; i++){ modelinfo = CModelInfo::ms_modelInfoPtrs[i]; - if(modelinfo && hashKey == modelinfo->GetNameHashKey()){ + if(modelinfo && !CGeneral::faststricmp(modelinfo->GetModelName(), name)){ if(id) *id = i; return modelinfo; @@ -201,14 +199,13 @@ CModelInfo::GetModelInfo(const char *name, int *id) CBaseModelInfo* CModelInfo::GetModelInfo(const char *name, int minIndex, int maxIndex) { - uint32 hashKey = CKeyGen::GetUppercaseKey(name); if (minIndex > maxIndex) return 0; CBaseModelInfo *modelinfo; for(int i = minIndex; i <= maxIndex; i++){ modelinfo = CModelInfo::ms_modelInfoPtrs[i]; - if(modelinfo && hashKey == modelinfo->GetNameHashKey()) + if(modelinfo && !CGeneral::faststricmp(modelinfo->GetModelName(), name)) return modelinfo; } return nil; diff --git a/src/modelinfo/PedModelInfo.cpp b/src/modelinfo/PedModelInfo.cpp index 1d519b1..28de250 100644 --- a/src/modelinfo/PedModelInfo.cpp +++ b/src/modelinfo/PedModelInfo.cpp @@ -1,6 +1,5 @@ #include "common.h" -#include "main.h" #include "RwHelper.h" #include "General.h" #include "Bones.h" @@ -10,19 +9,12 @@ #include "VisibilityPlugins.h" #include "ModelInfo.h" #include "custompipes.h" -#include "Streaming.h" -#include "Leeds.h" -#include "TempColModels.h" - -base::cRelocatableChunkClassInfo CPedModelInfo::msClassInfo("CPedModelInfo", VTABLE_ADDR(&msClassInstance), sizeof(msClassInstance)); -CPedModelInfo CPedModelInfo::msClassInstance; void CPedModelInfo::DeleteRwObject(void) { - CStreaming::UnregisterPointer(&m_hitColModel, 2); CClumpModelInfo::DeleteRwObject(); - if(!gUseChunkFiles && m_hitColModel) + if(m_hitColModel) delete m_hitColModel; m_hitColModel = nil; } @@ -49,15 +41,13 @@ CPedModelInfo::SetClump(RpClump *clump) #ifdef EXTENDED_PIPELINES CustomPipes::AttachRimPipe(clump); #endif - if(!IsClumpSkinned(clump)) - return; CClumpModelInfo::SetClump(clump); SetFrameIds(m_pPedIds); // not needed in VC actually if(m_hitColModel == nil) CreateHitColModelSkinned(clump); RpClumpForAllAtomics(m_clump, SetAtomicRendererCB, (void*)CVisibilityPlugins::RenderPedCB); - //if(strcmp(GetModelName(), "player") == 0) - // RpClumpForAllAtomics(m_clump, SetAtomicRendererCB, (void*)CVisibilityPlugins::RenderPlayerCB); + if(strcmp(GetModelName(), "player") == 0) + RpClumpForAllAtomics(m_clump, SetAtomicRendererCB, (void*)CVisibilityPlugins::RenderPlayerCB); } struct ColNodeInfo @@ -83,27 +73,40 @@ ColNodeInfo m_pColNodeInfos[NUMPEDINFONODES] = { { nil, PED_FOOTR, PEDPIECE_RIGHTLEG, 0.0f, 0.15f, 0.15f }, }; -bool +void CPedModelInfo::CreateHitColModelSkinned(RpClump *clump) { + RpHAnimHierarchy *hier = GetAnimHierarchyFromSkinClump(clump); CColModel *colmodel = new CColModel; CColSphere *spheres = (CColSphere*)RwMalloc(NUMPEDINFONODES*sizeof(CColSphere)); + RwFrame *root = RpClumpGetFrame(m_clump); + RwMatrix *invmat = RwMatrixCreate(); + RwMatrix *mat = RwMatrixCreate(); + RwMatrixInvert(invmat, RwFrameGetMatrix(RpClumpGetFrame(clump))); for(int i = 0; i < NUMPEDINFONODES; i++){ - spheres[i].center.x = 0.0f; - spheres[i].center.y = 0.0f; - spheres[i].center.z = 0.0f; + *mat = *invmat; + int id = ConvertPedNode2BoneTag(m_pColNodeInfos[i].pedNode); // this is wrong, wtf R* ??? + int idx = RpHAnimIDGetIndex(hier, id); + + // This doesn't really work as the positions are not initialized yet + RwMatrixTransform(mat, &RpHAnimHierarchyGetMatrixArray(hier)[idx], rwCOMBINEPRECONCAT); + RwV3d pos = { 0.0f, 0.0f, 0.0f }; + RwV3dTransformPoints(&pos, &pos, 1, mat); + + spheres[i].center = pos + CVector(m_pColNodeInfos[i].x, 0.0f, m_pColNodeInfos[i].z); spheres[i].radius = m_pColNodeInfos[i].radius; spheres[i].surface = SURFACE_PED; spheres[i].piece = m_pColNodeInfos[i].pieceType; } + RwMatrixDestroy(invmat); + RwMatrixDestroy(mat); colmodel->spheres = spheres; colmodel->numSpheres = NUMPEDINFONODES; colmodel->boundingSphere.Set(2.0f, CVector(0.0f, 0.0f, 0.0f)); colmodel->boundingBox.Set(CVector(-0.5f, -0.5f, -1.2f), CVector(0.5f, 0.5f, 1.2f)); colmodel->level = LEVEL_GENERIC; m_hitColModel = colmodel; - return true; } CColModel* @@ -111,27 +114,28 @@ CPedModelInfo::AnimatePedColModelSkinned(RpClump *clump) { if(m_hitColModel == nil){ CreateHitColModelSkinned(clump); -#ifndef FIX_BUGS return m_hitColModel; -#endif - // we should really animate this now } - RwMatrix invmat, mat; + RwMatrix *invmat, *mat; CColSphere *spheres = m_hitColModel->spheres; RpHAnimHierarchy *hier = GetAnimHierarchyFromSkinClump(clump); - RwMatrixInvert(&invmat, RwFrameGetMatrix(RpClumpGetFrame(clump))); + invmat = RwMatrixCreate(); + mat = RwMatrixCreate(); + RwMatrixInvert(invmat, RwFrameGetMatrix(RpClumpGetFrame(clump))); for(int i = 0; i < NUMPEDINFONODES; i++){ - mat = invmat; + *mat = *invmat; int id = ConvertPedNode2BoneTag(m_pColNodeInfos[i].pedNode); int idx = RpHAnimIDGetIndex(hier, id); - RwMatrixTransform(&mat, &RpHAnimHierarchyGetMatrixArray(hier)[idx], rwCOMBINEPRECONCAT); - RwV3d pos = { 0.0f, 0.0f, 0.0f }; // actually CVector - RwV3dTransformPoints(&pos, &pos, 1, &mat); + RwMatrixTransform(mat, &RpHAnimHierarchyGetMatrixArray(hier)[idx], rwCOMBINEPRECONCAT); + RwV3d pos = { 0.0f, 0.0f, 0.0f }; + RwV3dTransformPoints(&pos, &pos, 1, mat); spheres[i].center = pos + CVector(m_pColNodeInfos[i].x, 0.0f, m_pColNodeInfos[i].z); } + RwMatrixDestroy(invmat); + RwMatrixDestroy(mat); return m_hitColModel; } @@ -149,71 +153,10 @@ CPedModelInfo::AnimatePedColModelSkinnedWorld(RpClump *clump) int idx = RpHAnimIDGetIndex(hier, id); mat = &RpHAnimHierarchyGetMatrixArray(hier)[idx]; - RwV3d pos = { 0.0f, 0.0f, 0.0f }; // actually CVector + RwV3d pos = { 0.0f, 0.0f, 0.0f }; RwV3dTransformPoints(&pos, &pos, 1, mat); spheres[i].center = pos + CVector(m_pColNodeInfos[i].x, 0.0f, m_pColNodeInfos[i].z); } return m_hitColModel; } - - -struct PedChunk -{ - CColModel *colmodel; - RpClump *clump; -}; - -void -CPedModelInfo::LoadModel(void *data, const void *chunk) -{ - PedChunk *chk = (PedChunk*)data; - m_hitColModel = chk->colmodel; - CStreaming::RegisterPointer(&m_hitColModel, 2, true); - CClumpModelInfo::LoadModel(chk->clump, chunk); -} - -void -CPedModelInfo::Write(base::cRelocatableChunkWriter &writer) -{ - SetColModel(&gpTempColModels->ms_colModelPed1); - CClumpModelInfo::Write(writer); - if(m_hitColModel){ - writer.AddPatch(&m_hitColModel); - m_hitColModel->Write(writer, true); - } -} - -void* -CPedModelInfo::WriteModel(base::cRelocatableChunkWriter &writer) -{ - PedChunk *chunk = new PedChunk; // LEAK - chunk->colmodel = nil; - chunk->clump = nil; - writer.AllocateRaw(chunk, sizeof(*chunk), sizeof(void*), false, true); - - chunk->clump = (RpClump*)CClumpModelInfo::WriteModel(writer); - if(chunk->clump) - writer.AddPatch(&chunk->clump); - - chunk->colmodel = m_hitColModel; - if(chunk->colmodel){ - writer.AddPatch(&chunk->colmodel); - chunk->colmodel->Write(writer, true); - } - return nil; -} - -void -CPedModelInfo::RcWriteThis(base::cRelocatableChunkWriter &writer) -{ - writer.AllocateRaw(this, sizeof(*this), sizeof(void*), false, true); - writer.Class(VTABLE_ADDR(this), msClassInfo); -} - -void -CPedModelInfo::RcWriteEmpty(base::cRelocatableChunkWriter &writer) -{ - writer.AllocateRaw(this, sizeof(*this), sizeof(void*), false, true); - writer.Class(VTABLE_ADDR(this), msClassInfo); -} diff --git a/src/modelinfo/PedModelInfo.h b/src/modelinfo/PedModelInfo.h index 7baa2bd..79bd7ea 100644 --- a/src/modelinfo/PedModelInfo.h +++ b/src/modelinfo/PedModelInfo.h @@ -38,8 +38,6 @@ public: CColModel *m_hitColModel; int8 radio1, radio2; - static base::cRelocatableChunkClassInfo msClassInfo; - static CPedModelInfo msClassInstance; static RwObjectNameIdAssocation m_pPedIds[PED_NODE_MAX]; CPedModelInfo(void) : CClumpModelInfo(MITYPE_PED) { m_hitColModel = nil; } @@ -47,13 +45,7 @@ public: void DeleteRwObject(void); void SetClump(RpClump *); - virtual void LoadModel(void *model, const void *chunk); - virtual void Write(base::cRelocatableChunkWriter &writer); - virtual void *WriteModel(base::cRelocatableChunkWriter &writer); - virtual void RcWriteThis(base::cRelocatableChunkWriter &writer); - virtual void RcWriteEmpty(base::cRelocatableChunkWriter &writer); - - bool CreateHitColModelSkinned(RpClump *clump); + void CreateHitColModelSkinned(RpClump *clump); CColModel *GetHitColModel(void) { return m_hitColModel; } CColModel *AnimatePedColModelSkinned(RpClump *clump); CColModel *AnimatePedColModelSkinnedWorld(RpClump *clump); diff --git a/src/modelinfo/SimpleModelInfo.cpp b/src/modelinfo/SimpleModelInfo.cpp index 8d0ea67..18eb7e5 100644 --- a/src/modelinfo/SimpleModelInfo.cpp +++ b/src/modelinfo/SimpleModelInfo.cpp @@ -1,61 +1,37 @@ #include "common.h" -#include "main.h" #include "General.h" -#include "Renderer.h" #include "Camera.h" #include "Renderer.h" #include "ModelInfo.h" #include "AnimManager.h" #include "custompipes.h" -#include "Streaming.h" -#include "smallHeap.h" -#include "Leeds.h" - -TempIdeData m_sTempIdeData[800]; - -base::cRelocatableChunkClassInfo CSimpleModelInfo::msClassInfo("CSimpleModelInfo", VTABLE_ADDR(&msClassInstance), sizeof(msClassInstance)); -CSimpleModelInfo CSimpleModelInfo::msClassInstance; void CSimpleModelInfo::DeleteRwObject(void) { int i; RwFrame *f; - if(m_atomics == nil) - return; - if(!gUseChunkFiles){ - for(i = 0; i < m_numAtomics; i++) - if(m_atomics[i]){ - f = RpAtomicGetFrame(m_atomics[i]); - RpAtomicDestroy(m_atomics[i]); - RwFrameDestroy(f); - m_atomics[i] = nil; - RemoveTexDictionaryRef(); - if(GetAnimFileIndex() != -1) - CAnimManager::RemoveAnimBlockRef(GetAnimFileIndex()); - } - }else if(m_chunk){ - CStreaming::UnregisterPointer(&m_atomics, 2); - for(i = 0; i < m_numAtomics; i++) - CStreaming::UnregisterAtomic(m_atomics[i], nil); - DeleteChunk(); - RemoveTexDictionaryRef(); - if(GetAnimFileIndex() != -1) - CAnimManager::RemoveAnimBlockRef(GetAnimFileIndex()); - } - m_atomics = nil; + for(i = 0; i < m_numAtomics; i++) + if(m_atomics[i]){ + f = RpAtomicGetFrame(m_atomics[i]); + RpAtomicDestroy(m_atomics[i]); + RwFrameDestroy(f); + m_atomics[i] = nil; + RemoveTexDictionaryRef(); + if(GetAnimFileIndex() != -1) + CAnimManager::RemoveAnimBlockRef(GetAnimFileIndex()); + } } RwObject* CSimpleModelInfo::CreateInstance(void) { RpAtomic *atomic; - if(m_atomics == nil || m_atomics[0] == nil) + if(m_atomics[0] == nil) return nil; atomic = RpAtomicClone(m_atomics[0]); RpAtomicSetFrame(atomic, RwFrameCreate()); - CStreaming::RegisterInstance(atomic, nil); return (RwObject*)atomic; } @@ -65,20 +41,21 @@ CSimpleModelInfo::CreateInstance(RwMatrix *matrix) RpAtomic *atomic; RwFrame *frame; - if(m_atomics == nil || m_atomics[0] == nil) + if(m_atomics[0] == nil) return nil; atomic = RpAtomicClone(m_atomics[0]); frame = RwFrameCreate(); *RwFrameGetMatrix(frame) = *matrix; RpAtomicSetFrame(atomic, frame); - CStreaming::RegisterInstance(atomic, nil); return (RwObject*)atomic; } void CSimpleModelInfo::Init(void) { - m_atomics = new RpAtomic*[3]; + m_atomics[0] = nil; + m_atomics[1] = nil; + m_atomics[2] = nil; m_numAtomics = 0; m_firstDamaged = 0; m_wetRoadReflection = 0; @@ -94,30 +71,21 @@ CSimpleModelInfo::Init(void) m_ignoreDrawDist = 0; m_isCodeGlass = 0; m_isArtistGlass = 0; - m_relatedModel = nil; } void CSimpleModelInfo::SetAtomic(int n, RpAtomic *atomic) { - if(m_atomics == nil){ - m_atomics = new RpAtomic*[3]; - m_atomics[0] = nil; - m_atomics[1] = nil; - m_atomics[2] = nil; - } - m_atomics[n] = atomic; AddTexDictionaryRef(); + m_atomics[n] = atomic; if(GetAnimFileIndex() != -1) CAnimManager::AddAnimBlockRef(GetAnimFileIndex()); RpGeometry *geo = RpAtomicGetGeometry(atomic); if(m_ignoreLight) RpGeometrySetFlags(geo, RpGeometryGetFlags(geo) & ~rpGEOMETRYLIGHT); -/* if(RpGeometryGetFlags(geo) & rpGEOMETRYNORMALS && RpGeometryGetNumTriangles(geo) > 200) debug("%s has %d polys\n", m_name, RpGeometryGetNumTriangles(geo)); -*/ #ifdef EXTENDED_PIPELINES if(m_wetRoadReflection) @@ -167,47 +135,11 @@ CSimpleModelInfo::GetLargestLodDistance(void) return d * TheCamera.LODDistMultiplier; } -RpAtomic* -CSimpleModelInfo::GetLodAtomic(int n) -{ - if(m_atomics == nil || n >= m_numAtomics) - return nil; - return m_atomics[n]; -} - -RpAtomic* -CSimpleModelInfo::GetLastAtomic(void) -{ - if(m_atomics == nil) - return nil; - if(m_firstDamaged == 0 || m_isDamaged) - return m_atomics[m_numAtomics-1]; - else - return m_atomics[m_firstDamaged-1]; -} - -RpAtomic* -CSimpleModelInfo::GetLastAtomic(float dist) -{ - int n; - if(m_atomics == nil) - return nil; - if(m_firstDamaged == 0 || m_isDamaged) - n = m_numAtomics-1; - else - n = m_firstDamaged-1; - if(dist < m_lodDistances[n] * TheCamera.LODDistMultiplier) - return m_atomics[n]; - return nil; -} - RpAtomic* CSimpleModelInfo::GetAtomicFromDistance(float dist) { int i; i = 0; -// HACk until we figure out what's going on -if(m_atomics == nil) return nil; if(m_isDamaged) i = m_firstDamaged; for(; i < m_numAtomics; i++) @@ -219,40 +151,20 @@ if(m_atomics == nil) return nil; RpAtomic* CSimpleModelInfo::GetFirstAtomicFromDistance(float dist) { -// HACk until we figure out what's going on -if(m_atomics == nil) return nil; if(dist < m_lodDistances[0] * TheCamera.LODDistMultiplier) return m_atomics[0]; return nil; } void -CSimpleModelInfo::FindRelatedModel(void) +CSimpleModelInfo::FindRelatedModel(int32 minID, int32 maxID) { + int i; CBaseModelInfo *mi; - int thisIndex, otherIndex; - - // find our own index in temp data - for(thisIndex = 0; thisIndex < ARRAY_SIZE(m_sTempIdeData); thisIndex++){ - if(m_sTempIdeData[thisIndex].id == -1) - break; - if(this == CModelInfo::GetModelInfo(m_sTempIdeData[thisIndex].id)) - goto found; - } - thisIndex = -1; -found: -#ifdef FIX_BUGS - if(thisIndex == -1) - return; -#endif - - for(otherIndex = 0; otherIndex < ARRAY_SIZE(m_sTempIdeData); otherIndex++){ - if(m_sTempIdeData[otherIndex].id == -1) - break; - - mi = CModelInfo::GetModelInfo(m_sTempIdeData[otherIndex].id); + for(i = minID; i <= maxID; i++){ + mi = CModelInfo::GetModelInfo(i); if(mi && mi != this && - !CGeneral::faststrcmp(m_sTempIdeData[thisIndex].name+3, m_sTempIdeData[otherIndex].name+3)){ + !CGeneral::faststrcmp(GetModelName()+3, mi->GetModelName()+3)){ assert(mi->IsSimple()); this->SetRelatedModel((CSimpleModelInfo*)mi); return; @@ -260,17 +172,15 @@ found: } } -#define NEAR_DRAW_DIST 100.0f // 0.0f in vice city +#define NEAR_DRAW_DIST 0.0f // 100.0f in liberty city void -CSimpleModelInfo::SetupBigBuilding(void) +CSimpleModelInfo::SetupBigBuilding(int32 minID, int32 maxID) { CSimpleModelInfo *related; - if(m_lodDistances[0] < 0.0f) - m_lodDistances[0] = -m_lodDistances[0]; // what? - else if(m_lodDistances[0] > LOD_DISTANCE && GetRelatedModel() == nil){ + if(m_lodDistances[0] > LOD_DISTANCE && GetRelatedModel() == nil){ m_isBigBuilding = 1; - FindRelatedModel(); + FindRelatedModel(minID, maxID); related = GetRelatedModel(); if(related){ m_lodDistances[2] = related->GetLargestLodDistance()/TheCamera.LODDistMultiplier; @@ -282,79 +192,3 @@ CSimpleModelInfo::SetupBigBuilding(void) m_lodDistances[2] = NEAR_DRAW_DIST; } } - - -void -CSimpleModelInfo::LoadModel(void *atomics, const void *chunk) -{ - int i; - m_chunk = (void*)chunk; - m_atomics = (RpAtomic**)atomics; - CStreaming::RegisterPointer(m_chunk, 2, true); - CStreaming::RegisterPointer(m_atomics, 2, true); - for(i = 0; i < m_numAtomics; i++){ - LoadResource(m_atomics[i]); - CStreaming::RegisterAtomic(m_atomics[i], nil); - } -} - -void -CSimpleModelInfo::Write(base::cRelocatableChunkWriter &writer) -{ - CBaseModelInfo::Write(writer); - if(WriteModel(writer)) - writer.AddPatch(&m_atomics); - else - m_atomics = nil; - if(m_isBigBuilding) - writer.AddPatch(&m_relatedModel); -} - -void* -CSimpleModelInfo::WriteModel(base::cRelocatableChunkWriter &writer) -{ - int i; - if(m_atomics == nil || m_atomics[0] == nil) - return nil; - - // remove empty atomics - int numAtomics = 0; - for(i = 0; i < m_numAtomics; i++) - if(m_atomics[i]){ - m_atomics[numAtomics] = m_atomics[i]; -#ifdef FIX_BUGS - m_lodDistances[numAtomics] = m_lodDistances[i]; -#endif - numAtomics++; - } - if(m_firstDamaged){ - int firstDam = m_firstDamaged - m_numAtomics + numAtomics; - if(firstDam < numAtomics) - m_firstDamaged = firstDam; - else - m_firstDamaged = 0; - } - m_numAtomics = numAtomics; - - // write the actual models - writer.AllocateRaw(m_atomics, m_numAtomics*sizeof(void*), sizeof(void*), false, true); - for(i = 0; m_numAtomics; i++){ - writer.AddPatch(&m_atomics[i]); - SaveResource(m_atomics[i], writer); - } - return m_atomics; -} - -void -CSimpleModelInfo::RcWriteThis(base::cRelocatableChunkWriter &writer) -{ - writer.AllocateRaw(this, sizeof(*this), 0x10, false, true); - writer.Class(VTABLE_ADDR(this), msClassInfo); -} - -void -CSimpleModelInfo::RcWriteEmpty(base::cRelocatableChunkWriter &writer) -{ - writer.AllocateRaw(this, sizeof(*this), 0x10, false, true); - writer.Class(VTABLE_ADDR(this), msClassInfo); -} diff --git a/src/modelinfo/SimpleModelInfo.h b/src/modelinfo/SimpleModelInfo.h index f919194..986cb88 100644 --- a/src/modelinfo/SimpleModelInfo.h +++ b/src/modelinfo/SimpleModelInfo.h @@ -2,18 +2,11 @@ #include "BaseModelInfo.h" -// For linking up models by name -struct TempIdeData -{ - char name[24]; - int16 id; -}; -extern TempIdeData m_sTempIdeData[800]; - class CSimpleModelInfo : public CBaseModelInfo { public: - RpAtomic **m_atomics; + // atomics[2] is often a pointer to the non-LOD modelinfo + RpAtomic *m_atomics[3]; // m_lodDistances[2] holds the near distance for LODs float m_lodDistances[3]; uint8 m_numAtomics; @@ -38,26 +31,15 @@ public: uint16 m_isCodeGlass : 1; uint16 m_isArtistGlass : 1; - CSimpleModelInfo *m_relatedModel; - - static base::cRelocatableChunkClassInfo msClassInfo; - static CSimpleModelInfo msClassInstance; - CSimpleModelInfo(void) : CBaseModelInfo(MITYPE_SIMPLE) {} CSimpleModelInfo(ModelInfoType id) : CBaseModelInfo(id) {} ~CSimpleModelInfo() {} void DeleteRwObject(void); RwObject *CreateInstance(void); RwObject *CreateInstance(RwMatrix *); - RwObject *GetRwObject(void) { return m_atomics ? (RwObject*)m_atomics[0] : nil; } + RwObject *GetRwObject(void) { return (RwObject*)m_atomics[0]; } - virtual void LoadModel(void *atomics, const void *chunk); - virtual void Write(base::cRelocatableChunkWriter &writer); - virtual void *WriteModel(base::cRelocatableChunkWriter &writer); - virtual void RcWriteThis(base::cRelocatableChunkWriter &writer); - virtual void RcWriteEmpty(base::cRelocatableChunkWriter &writer); - - /*virtual*/ void SetAtomic(int n, RpAtomic *atomic); + virtual void SetAtomic(int n, RpAtomic *atomic); void Init(void); void IncreaseAlpha(void); @@ -65,18 +47,15 @@ public: float GetLodDistance(int i); float GetNearDistance(void); float GetLargestLodDistance(void); - RpAtomic *GetLodAtomic(int n); - RpAtomic *GetLastAtomic(void); - RpAtomic *GetLastAtomic(float dist); RpAtomic *GetAtomicFromDistance(float dist); RpAtomic *GetFirstAtomicFromDistance(float dist); - void FindRelatedModel(void); - void SetupBigBuilding(void); + void FindRelatedModel(int32 minID, int32 maxID); + void SetupBigBuilding(int32 minID, int32 maxID); void SetNumAtomics(int n) { m_numAtomics = n; } CSimpleModelInfo *GetRelatedModel(void){ - return m_relatedModel; } + return (CSimpleModelInfo*)m_atomics[2]; } void SetRelatedModel(CSimpleModelInfo *m){ - m_relatedModel = m; } + m_atomics[2] = (RpAtomic*)m; } }; //static_assert(sizeof(CSimpleModelInfo) == 0x4C, "CSimpleModelInfo: error"); diff --git a/src/modelinfo/TimeModelInfo.cpp b/src/modelinfo/TimeModelInfo.cpp index 85b59e4..0db5fb7 100644 --- a/src/modelinfo/TimeModelInfo.cpp +++ b/src/modelinfo/TimeModelInfo.cpp @@ -3,20 +3,15 @@ #include "Camera.h" #include "ModelInfo.h" #include "General.h" -#include "KeyGen.h" - -base::cRelocatableChunkClassInfo CTimeModelInfo::msClassInfo("CTimeModelInfo", VTABLE_ADDR(&msClassInstance), sizeof(msClassInstance)); -CTimeModelInfo CTimeModelInfo::msClassInstance; - CTimeModelInfo* -CTimeModelInfo::FindOtherTimeModel(const char *modelname) +CTimeModelInfo::FindOtherTimeModel(void) { char name[40]; char *p; int i; - strcpy(name, modelname); + strcpy(name, GetModelName()); // change _nt to _dy if(p = strstr(name, "_nt")) strncpy(p, "_dy", 4); @@ -26,29 +21,13 @@ CTimeModelInfo::FindOtherTimeModel(const char *modelname) else return nil; - uint32 nameKey = CKeyGen::GetUppercaseKey(name); - for(i = 0; i < MODELINFOSIZE; i++){ CBaseModelInfo *mi = CModelInfo::GetModelInfo(i); - if (mi && mi->GetModelType() == MITYPE_TIME && nameKey == mi->GetNameHashKey()){ + if (mi && mi->GetModelType() == MITYPE_TIME && + !CGeneral::faststrncmp(name, mi->GetModelName(), MAX_MODEL_NAME)){ m_otherTimeModelID = i; return (CTimeModelInfo*)mi; } } return nil; } - - -void -CTimeModelInfo::RcWriteThis(base::cRelocatableChunkWriter &writer) -{ - writer.AllocateRaw(this, sizeof(*this), sizeof(void*), false, true); - writer.Class(VTABLE_ADDR(this), msClassInfo); -} - -void -CTimeModelInfo::RcWriteEmpty(base::cRelocatableChunkWriter &writer) -{ - writer.AllocateRaw(this, sizeof(*this), sizeof(void*), false, true); - writer.Class(VTABLE_ADDR(this), msClassInfo); -} diff --git a/src/modelinfo/TimeModelInfo.h b/src/modelinfo/TimeModelInfo.h index 67273b2..6e3c64f 100644 --- a/src/modelinfo/TimeModelInfo.h +++ b/src/modelinfo/TimeModelInfo.h @@ -7,21 +7,14 @@ class CTimeModelInfo : public CSimpleModelInfo int32 m_timeOn; int32 m_timeOff; int32 m_otherTimeModelID; - - static base::cRelocatableChunkClassInfo msClassInfo; - static CTimeModelInfo msClassInstance; - public: CTimeModelInfo(void) : CSimpleModelInfo(MITYPE_TIME) { m_otherTimeModelID = -1; } - virtual void RcWriteThis(base::cRelocatableChunkWriter &writer); - virtual void RcWriteEmpty(base::cRelocatableChunkWriter &writer); - int32 GetTimeOn(void) { return m_timeOn; } int32 GetTimeOff(void) { return m_timeOff; } void SetTimes(int32 on, int32 off) { m_timeOn = on; m_timeOff = off; } int32 GetOtherTimeModel(void) { return m_otherTimeModelID; } void SetOtherTimeModel(int32 other) { m_otherTimeModelID = other; } - CTimeModelInfo *FindOtherTimeModel(const char *name); + CTimeModelInfo *FindOtherTimeModel(void); }; //static_assert(sizeof(CTimeModelInfo) == 0x58, "CTimeModelInfo: error"); diff --git a/src/modelinfo/VehicleModelInfo.cpp b/src/modelinfo/VehicleModelInfo.cpp index 2158370..d31962c 100644 --- a/src/modelinfo/VehicleModelInfo.cpp +++ b/src/modelinfo/VehicleModelInfo.cpp @@ -1,7 +1,6 @@ #include "common.h" #include -#include "main.h" #include "RwHelper.h" #include "General.h" #include "NodeName.h" @@ -15,28 +14,20 @@ #include "Automobile.h" #include "Boat.h" #include "Train.h" -#include "Ferry.h" #include "Plane.h" #include "Heli.h" #include "Bike.h" #include "ModelIndices.h" #include "ModelInfo.h" #include "custompipes.h" -#include "Streaming.h" -#include "Leeds.h" -base::cRelocatableChunkClassInfo CVehicleModelInfo::msClassInfo("CVehicleModelInfo", VTABLE_ADDR(&msClassInstance), sizeof(msClassInstance)); -CVehicleModelInfo CVehicleModelInfo::msClassInstance; +int8 CVehicleModelInfo::ms_compsToUse[2] = { -2, -2 }; +int8 CVehicleModelInfo::ms_compsUsed[2]; +RwRGBA CVehicleModelInfo::ms_vehicleColourTable[256]; +RwTexture *CVehicleModelInfo::ms_colourTextureTable[256]; -//int8 CVehicleModelInfo::ms_compsToUse[2] = { -2, -2 }; -//int8 CVehicleModelInfo::ms_compsUsed[2]; -//RwRGBA CVehicleModelInfo::ms_vehicleColourTable[256]; -CVehicleModelInfo::Statics *CVehicleModelInfo::mspInfo; - -//RwTexture *CVehicleModelInfo::ms_colourTextureTable[256]; - -//RwTexture *gpWhiteTexture; -//RwFrame *pMatFxIdentityFrame; +RwTexture *gpWhiteTexture; +RwFrame *pMatFxIdentityFrame; enum { VEHICLE_FLAG_COLLAPSE = 0x2, @@ -123,22 +114,6 @@ RwObjectNameIdAssocation trainIds[] = { { nil, 0, 0 } }; -RwObjectNameIdAssocation ferryIds[] = { - { "door_front_dummy", FERRY_DOOR_FRONT, VEHICLE_FLAG_LEFT | VEHICLE_FLAG_COLLAPSE }, - { "door_back_dummy", FERRY_DOOR_BACK, VEHICLE_FLAG_LEFT | VEHICLE_FLAG_COLLAPSE }, - { "ramp_front_dummy", FERRY_RAMP_FRONT, VEHICLE_FLAG_LEFT | VEHICLE_FLAG_COLLAPSE }, - { "ramp_back_dummy", FERRY_RAMP_BACK, VEHICLE_FLAG_LEFT | VEHICLE_FLAG_COLLAPSE }, - { "light_front", FERRY_POS_LIGHT_FRONT, VEHICLE_FLAG_POS | CLUMP_FLAG_NO_HIERID }, - { "light_rear", FERRY_POS_LIGHT_REAR, VEHICLE_FLAG_POS | CLUMP_FLAG_NO_HIERID }, - { "chim_left", FERRY_POS_CHIM_LEFT, VEHICLE_FLAG_POS | CLUMP_FLAG_NO_HIERID }, - { "ped_point", FERRY_POS_PED_POINT, VEHICLE_FLAG_DOOR | VEHICLE_FLAG_POS | CLUMP_FLAG_NO_HIERID }, - { "car1_dummy", FERRY_POS_CAR1, VEHICLE_FLAG_DOOR | VEHICLE_FLAG_POS | CLUMP_FLAG_NO_HIERID }, - { "car2_dummy", FERRY_POS_CAR2, VEHICLE_FLAG_DOOR | VEHICLE_FLAG_POS | CLUMP_FLAG_NO_HIERID }, - { "car3_dummy", FERRY_POS_CAR3, VEHICLE_FLAG_DOOR | VEHICLE_FLAG_POS | CLUMP_FLAG_NO_HIERID }, - { "car4_dummy", FERRY_POS_CAR4, VEHICLE_FLAG_DOOR | VEHICLE_FLAG_POS | CLUMP_FLAG_NO_HIERID }, - { nil, 0, 0 } -}; - RwObjectNameIdAssocation heliIds[] = { { "chassis_dummy", HELI_CHASSIS, VEHICLE_FLAG_COLLAPSE }, { "toprotor", HELI_TOPROTOR, 0 }, @@ -187,36 +162,12 @@ RwObjectNameIdAssocation *CVehicleModelInfo::ms_vehicleDescs[] = { trainIds, heliIds, planeIds, - bikeIds, - ferryIds + bikeIds }; bool gbBlackCars; bool gbPinkCars; -void -CVehicleModelInfo::Load(void *inst) -{ - if(inst) - mspInfo = (CVehicleModelInfo::Statics*)inst; - else{ - mspInfo = new CVehicleModelInfo::Statics; - memset(mspInfo, 0, sizeof(*mspInfo)); - mspInfo->ms_compsToUse[0] = -2; - mspInfo->ms_compsToUse[1] = -2; - } -} - -void* -CVehicleModelInfo::WriteStaticInfo(base::cRelocatableChunkWriter &writer) -{ - writer.AllocateRaw(mspInfo, sizeof(*mspInfo), sizeof(void*), false, true); - if(mspInfo->unknown) - writer.AddPatch(&mspInfo->unknown); - return mspInfo; - -} - CVehicleModelInfo::CVehicleModelInfo(void) : CClumpModelInfo(MITYPE_VEHICLE) { @@ -227,12 +178,7 @@ CVehicleModelInfo::CVehicleModelInfo(void) m_positions[i].z = 0.0f; } m_numColours = 0; - CClumpModelInfo::m_animFileIndex = -1; - - memset(m_materials1, 0, sizeof(m_materials1)); - memset(m_materials2, 0, sizeof(m_materials2)); m_animFileIndex = -1; - m_normalSplay = 0.3f; } void @@ -241,77 +187,15 @@ CVehicleModelInfo::DeleteRwObject(void) int32 i; RwFrame *f; - if(!gUseChunkFiles){ - for(i = 0; i < m_numComps; i++){ - f = RpAtomicGetFrame(m_comps[i]); - RpAtomicDestroy(m_comps[i]); - RwFrameDestroy(f); - } -#ifdef FIX_BUGS - delete[] m_comps; - m_comps = nil; -#endif - m_numComps = 0; + for(i = 0; i < m_numComps; i++){ + f = RpAtomicGetFrame(m_comps[i]); + RpAtomicDestroy(m_comps[i]); + RwFrameDestroy(f); } - - RemoveWheels(); - - for(i = 0; i < ARRAY_SIZE(m_materials1); i++) - CStreaming::UnregisterPointer(&m_materials1[i], 2); - for(i = 0; i < ARRAY_SIZE(m_materials2); i++) - CStreaming::UnregisterPointer(&m_materials2[i], 2); - - if(m_numComps > 0){ - CStreaming::UnregisterPointer(&m_comps, 2); - for(i = 0; i < m_numComps; i++) - CStreaming::UnregisterAtomic(m_comps[i], nil); - m_comps = nil; - } - + m_numComps = 0; CClumpModelInfo::DeleteRwObject(); } -RwObject* -RemoveWheelCB(RwObject *object, void *arg) -{ - RpAtomic *atomic = (RpAtomic*)object; - if(RwObjectGetType(object) == rpATOMIC){ - RpClumpRemoveAtomic((RpClump*)arg, atomic); -#ifdef LIBRW - CStreaming::UnregisterPointer(&atomic->inClump.next, 2); - CStreaming::UnregisterPointer(&atomic->inClump.prev, 2); - CStreaming::UnregisterPointer(&atomic->object.object.parent, 2); - CStreaming::UnregisterPointer(&atomic->object.inFrame.next, 2); - CStreaming::UnregisterPointer(&atomic->object.inFrame.prev, 2); - CStreaming::UnregisterPointer(&atomic->clump, 2); -#endif - RpAtomicDestroy(atomic); - } - return object; -} - -void -CVehicleModelInfo::RemoveWheels(void) -{ -#ifdef FIX_BUGS - if(m_clump == nil) - return; -#endif - RwObjectNameIdAssocation *desc = ms_vehicleDescs[m_vehicleType]; - for(int i = 0; desc[i].name; i++){ - RwObjectIdAssociation assoc; - - if(desc[i].flags & (VEHICLE_FLAG_COMP|VEHICLE_FLAG_POS)) - continue; - assoc.frame = nil; - assoc.id = desc[i].hierId; - RwFrameForAllChildren(RpClumpGetFrame(m_clump), - FindFrameFromIdCB, &assoc); - if(assoc.frame && desc[i].flags & VEHICLE_FLAG_ADD_WHEEL && m_wheelId != -1) - RwFrameForAllObjects(assoc.frame, RemoveWheelCB, m_clump); - } -} - RwObject* CVehicleModelInfo::CreateInstance(void) { @@ -321,7 +205,7 @@ CVehicleModelInfo::CreateInstance(void) int32 comp1, comp2; clump = (RpClump*)CClumpModelInfo::CreateInstance(); - if(clump && m_numComps != 0 && strcmp(m_gameName, "POLICAR") != 0){ + if(m_numComps != 0){ clumpframe = RpClumpGetFrame(clump); comp1 = ChooseComponent(); @@ -335,7 +219,7 @@ CVehicleModelInfo::CreateInstance(void) RpClumpAddAtomic(clump, atomic); RwFrameAddChild(clumpframe, f); } - mspInfo->ms_compsUsed[0] = comp1; + ms_compsUsed[0] = comp1; comp2 = ChooseSecondComponent(); if(comp2 != -1 && m_comps[comp2]){ @@ -348,27 +232,18 @@ CVehicleModelInfo::CreateInstance(void) RpClumpAddAtomic(clump, atomic); RwFrameAddChild(clumpframe, f); } - mspInfo->ms_compsUsed[1] = comp2; + ms_compsUsed[1] = comp2; }else{ - mspInfo->ms_compsUsed[0] = -1; - mspInfo->ms_compsUsed[1] = -1; + ms_compsUsed[0] = -1; + ms_compsUsed[1] = -1; } - CStreaming::RegisterInstance(clump); return (RwObject*)clump; } -RpAtomic* -SplayNormals(RpAtomic *atomic, void *arg) -{ - // PSP only? - return atomic; -} - void CVehicleModelInfo::SetClump(RpClump *clump) { CClumpModelInfo::SetClump(clump); - RpClumpForAllAtomics((RpClump*)GetRwObject(), SplayNormals, this); SetAtomicRenderCallbacks(); SetFrameIds(ms_vehicleDescs[m_vehicleType]); PreprocessHierarchy(); @@ -522,77 +397,36 @@ CVehicleModelInfo::SetAtomicRendererCB_Train(RpAtomic *atomic, void *data) return atomic; } -RpAtomic* -CVehicleModelInfo::SetAtomicRendererCB_Ferry(RpAtomic *atomic, void *data) -{ - char *name; - bool alpha; - - name = GetFrameNodeName(RpAtomicGetFrame(atomic)); - alpha = false; - RpGeometryForAllMaterials(RpAtomicGetGeometry(atomic), HasAlphaMaterialCB, &alpha); - if(strstr(name, "_hi")){ - if(alpha) - CVisibilityPlugins::SetAtomicRenderCallback(atomic, CVisibilityPlugins::RenderTrainHiDetailAlphaCB); - else - CVisibilityPlugins::SetAtomicRenderCallback(atomic, CVisibilityPlugins::RenderTrainHiDetailCB); - }else if(strstr(name, "_lo")){ - if(alpha) - CVisibilityPlugins::SetAtomicRenderCallback(atomic, CVisibilityPlugins::RenderVehicleLowDetailAlphaCB_BigVehicle); - else - CVisibilityPlugins::SetAtomicRenderCallback(atomic, CVisibilityPlugins::RenderVehicleLowDetailCB_BigVehicle); - }else if(strstr(name, "_vlo")) - CVisibilityPlugins::SetAtomicRenderCallback(atomic, CVisibilityPlugins::RenderVehicleReallyLowDetailCB_BigVehicle); - else - CVisibilityPlugins::SetAtomicRenderCallback(atomic, nil); - HideDamagedAtomicCB(atomic, nil); - return atomic; -} - RpAtomic* CVehicleModelInfo::SetAtomicRendererCB_Boat(RpAtomic *atomic, void *data) { RpClump *clump; char *name; + bool alpha; clump = (RpClump*)data; name = GetFrameNodeName(RpAtomicGetFrame(atomic)); + alpha = false; + RpGeometryForAllMaterials(RpAtomicGetGeometry(atomic), HasAlphaMaterialCB, &alpha); if(strcmp(name, "boat_hi") == 0 || !CGeneral::faststrncmp(name, "extra", 5)) CVisibilityPlugins::SetAtomicRenderCallback(atomic, CVisibilityPlugins::RenderVehicleHiDetailCB_Boat); - else if(strstr(name, "_hi")) - CVisibilityPlugins::SetAtomicRenderCallback(atomic, CVisibilityPlugins::RenderVehicleHiDetailCB); - else if(strstr(name, "_lo")){ + else if(strstr(name, "_hi")){ + if(alpha) + CVisibilityPlugins::SetAtomicRenderCallback(atomic, CVisibilityPlugins::RenderVehicleHiDetailAlphaCB_Boat); + else + CVisibilityPlugins::SetAtomicRenderCallback(atomic, CVisibilityPlugins::RenderVehicleHiDetailCB); + }else if(strstr(name, "_lo")){ RpClumpRemoveAtomic(clump, atomic); RpAtomicDestroy(atomic); return atomic; // BUG: not done by gta }else if(strstr(name, "_vlo")) CVisibilityPlugins::SetAtomicRenderCallback(atomic, CVisibilityPlugins::RenderVehicleLoDetailCB_Boat); - else - CVisibilityPlugins::SetAtomicRenderCallback(atomic, nil); - HideDamagedAtomicCB(atomic, nil); - return atomic; -} - -RpAtomic* -CVehicleModelInfo::SetAtomicRendererCB_Boat_Far(RpAtomic *atomic, void *data) -{ - RpClump *clump; - char *name; - - clump = (RpClump*)data; - name = GetFrameNodeName(RpAtomicGetFrame(atomic)); - if(strcmp(name, "boat_hi") == 0 || !CGeneral::faststrncmp(name, "extra", 5)) - CVisibilityPlugins::SetAtomicRenderCallback(atomic, CVisibilityPlugins::RenderVehicleHiDetailCB_Boat_Far); - else if(strstr(name, "_hi")) - CVisibilityPlugins::SetAtomicRenderCallback(atomic, CVisibilityPlugins::RenderVehicleHiDetailCB); - else if(strstr(name, "_lo")){ - RpClumpRemoveAtomic(clump, atomic); - RpAtomicDestroy(atomic); - return atomic; // BUG: not done by gta - }else if(strstr(name, "_vlo")) - CVisibilityPlugins::SetAtomicRenderCallback(atomic, CVisibilityPlugins::RenderVehicleLoDetailCB_Boat_Far); - else - CVisibilityPlugins::SetAtomicRenderCallback(atomic, nil); + else{ + if(alpha) + CVisibilityPlugins::SetAtomicRenderCallback(atomic, CVisibilityPlugins::RenderVehicleHiDetailAlphaCB_Boat); + else + CVisibilityPlugins::SetAtomicRenderCallback(atomic, nil); + } HideDamagedAtomicCB(atomic, nil); return atomic; } @@ -600,7 +434,6 @@ CVehicleModelInfo::SetAtomicRendererCB_Boat_Far(RpAtomic *atomic, void *data) RpAtomic* CVehicleModelInfo::SetAtomicRendererCB_Heli(RpAtomic *atomic, void *data) { -/* // LCS: gone, may be better to keep it though char *name; name = GetFrameNodeName(RpAtomicGetFrame(atomic)); @@ -609,7 +442,6 @@ CVehicleModelInfo::SetAtomicRendererCB_Heli(RpAtomic *atomic, void *data) else if(strncmp(name, "rearrotor", 9) == 0) CVisibilityPlugins::SetAtomicRenderCallback(atomic, CVisibilityPlugins::RenderVehicleTailRotorAlphaCB); else -*/ CVisibilityPlugins::SetAtomicRenderCallback(atomic, nil); return atomic; } @@ -654,18 +486,13 @@ CVehicleModelInfo::SetAtomicRenderCallbacks(void) RpClumpForAllAtomics(m_clump, SetAtomicRendererCB_Train, nil); else #endif - if(m_vehicleType == VEHICLE_TYPE_FERRY) - RpClumpForAllAtomics(m_clump, SetAtomicRendererCB_Ferry, nil); - else if(m_vehicleType == VEHICLE_TYPE_HELI) + if(m_vehicleType == VEHICLE_TYPE_HELI) RpClumpForAllAtomics(m_clump, SetAtomicRendererCB_Heli, nil); else if(m_vehicleType == VEHICLE_TYPE_PLANE) RpClumpForAllAtomics(m_clump, SetAtomicRendererCB_BigVehicle, nil); - else if(m_vehicleType == VEHICLE_TYPE_BOAT){ - if(strcmp(m_gameName, "REEFER") == 0) - RpClumpForAllAtomics(m_clump, SetAtomicRendererCB_Boat_Far, m_clump); - else - RpClumpForAllAtomics(m_clump, SetAtomicRendererCB_Boat, m_clump); - }else if(mod_HandlingManager.GetHandlingData((tVehicleType)m_handlingId)->Flags & HANDLING_IS_HELI) + else if(m_vehicleType == VEHICLE_TYPE_BOAT) + RpClumpForAllAtomics(m_clump, SetAtomicRendererCB_Boat, m_clump); + else if(mod_HandlingManager.GetHandlingData((tVehicleType)m_handlingId)->Flags & HANDLING_IS_HELI) RpClumpForAllAtomics(m_clump, SetAtomicRendererCB_RealHeli, m_clump); else RpClumpForAllAtomics(m_clump, SetAtomicRendererCB, m_clump); @@ -713,8 +540,6 @@ CVehicleModelInfo::PreprocessHierarchy(void) m_numDoors = 0; m_numComps = 0; - m_comps = new RpAtomic*[7]; - for(i = 0; desc[i].name; i++){ RwObjectNameAssociation assoc; @@ -772,23 +597,21 @@ CVehicleModelInfo::PreprocessHierarchy(void) SetVehicleComponentFlags(assoc.frame, desc[i].flags); - if(!(gMakeResources && gUseResources)){ - if(desc[i].flags & VEHICLE_FLAG_ADD_WHEEL){ - if(m_wheelId == -1) - RwFrameDestroy(assoc.frame); - else{ - RwV3d scale; - atomic = (RpAtomic*)CModelInfo::GetModelInfo(m_wheelId)->CreateInstance(); - RwFrameDestroy(RpAtomicGetFrame(atomic)); - RpAtomicSetFrame(atomic, assoc.frame); - RpClumpAddAtomic(m_clump, atomic); - CVisibilityPlugins::SetAtomicRenderCallback(atomic, - CVisibilityPlugins::RenderWheelAtomicCB); - scale.x = m_wheelScale; - scale.y = m_wheelScale; - scale.z = m_wheelScale; - RwFrameScale(assoc.frame, &scale, rwCOMBINEPRECONCAT); - } + if(desc[i].flags & VEHICLE_FLAG_ADD_WHEEL){ + if(m_wheelId == -1) + RwFrameDestroy(assoc.frame); + else{ + RwV3d scale; + atomic = (RpAtomic*)CModelInfo::GetModelInfo(m_wheelId)->CreateInstance(); + RwFrameDestroy(RpAtomicGetFrame(atomic)); + RpAtomicSetFrame(atomic, assoc.frame); + RpClumpAddAtomic(m_clump, atomic); + CVisibilityPlugins::SetAtomicRenderCallback(atomic, + CVisibilityPlugins::RenderWheelAtomicCB); + scale.x = m_wheelScale; + scale.y = m_wheelScale; + scale.z = m_wheelScale; + RwFrameScale(assoc.frame, &scale, rwCOMBINEPRECONCAT); } } } @@ -933,7 +756,7 @@ CVehicleModelInfo::ChooseComponent(void) int32 n; comp = -1; - if(mspInfo->ms_compsToUse[0] == -2){ + if(ms_compsToUse[0] == -2){ if(COMPRULE_RULE(m_compRules) && IsValidCompRule(COMPRULE_RULE(m_compRules))) comp = ::ChooseComponent(COMPRULE_RULE(m_compRules), COMPRULE_COMPS(m_compRules)); else if(CGeneral::GetRandomNumberInRange(0, 3) < 2){ @@ -942,8 +765,8 @@ CVehicleModelInfo::ChooseComponent(void) comp = comps[(int)CGeneral::GetRandomNumberInRange(0, n)]; } }else{ - comp = mspInfo->ms_compsToUse[0]; - mspInfo->ms_compsToUse[0] = -2; + comp = ms_compsToUse[0]; + ms_compsToUse[0] = -2; } return comp; } @@ -956,7 +779,7 @@ CVehicleModelInfo::ChooseSecondComponent(void) int32 n; comp = -1; - if(mspInfo->ms_compsToUse[1] == -2){ + if(ms_compsToUse[1] == -2){ if(COMPRULE2_RULE(m_compRules) && IsValidCompRule(COMPRULE2_RULE(m_compRules))) comp = ::ChooseComponent(COMPRULE2_RULE(m_compRules), COMPRULE2_COMPS(m_compRules)); else if(COMPRULE_RULE(m_compRules) && IsValidCompRule(COMPRULE_RULE(m_compRules)) && @@ -967,8 +790,8 @@ CVehicleModelInfo::ChooseSecondComponent(void) comp = comps[(int)CGeneral::GetRandomNumberInRange(0, n)]; } }else{ - comp = mspInfo->ms_compsToUse[1]; - mspInfo->ms_compsToUse[1] = -2; + comp = ms_compsToUse[1]; + ms_compsToUse[1] = -2; } return comp; } @@ -1036,7 +859,7 @@ CVehicleModelInfo::SetVehicleColour(uint8 c1, uint8 c2) RpMaterial **matp; if(c1 != m_currentColour1){ - col = mspInfo->ms_vehicleColourTable[c1]; + col = ms_vehicleColourTable[c1]; for(matp = m_materials1; *matp; matp++){ colp = (RwRGBA*)RpMaterialGetColor(*matp); // get rid of const colp->red = col.red; @@ -1047,7 +870,7 @@ CVehicleModelInfo::SetVehicleColour(uint8 c1, uint8 c2) } if(c2 != m_currentColour2){ - col = mspInfo->ms_vehicleColourTable[c2]; + col = ms_vehicleColourTable[c2]; for(matp = m_materials2; *matp; matp++){ colp = (RwRGBA*)RpMaterialGetColor(*matp); // get rid of const colp->red = col.red; @@ -1172,8 +995,8 @@ CVehicleModelInfo::LoadVehicleColours(void) fd = CFileMgr::OpenFile("CARCOLS.DAT", "r"); CFileMgr::ChangeDir("\\"); - //for(i = 0; i < 256; i++) - // ms_colourTextureTable[i] = nil; + for(i = 0; i < 256; i++) + ms_colourTextureTable[i] = nil; section = 0; numCols = 0; @@ -1205,10 +1028,10 @@ CVehicleModelInfo::LoadVehicleColours(void) }else if(section == COLOURS){ sscanf(&line[start], // BUG: games doesn't add start "%d %d %d", &r, &g, &b); - mspInfo->ms_vehicleColourTable[numCols].red = r; - mspInfo->ms_vehicleColourTable[numCols].green = g; - mspInfo->ms_vehicleColourTable[numCols].blue = b; - mspInfo->ms_vehicleColourTable[numCols].alpha = 0xFF; + ms_vehicleColourTable[numCols].red = r; + ms_vehicleColourTable[numCols].green = g; + ms_vehicleColourTable[numCols].blue = b; + ms_vehicleColourTable[numCols].alpha = 0xFF; numCols++; }else if(section == CARS){ n = sscanf(&line[start], // BUG: games doesn't add start @@ -1238,7 +1061,6 @@ CVehicleModelInfo::LoadVehicleColours(void) void CVehicleModelInfo::DeleteVehicleColourTextures(void) { -/* int i; for(i = 0; i < 256; i++){ @@ -1247,7 +1069,6 @@ CVehicleModelInfo::DeleteVehicleColourTextures(void) ms_colourTextureTable[i] = nil; } } -*/ } RpMaterial* @@ -1259,7 +1080,6 @@ CVehicleModelInfo::GetMatFXEffectMaterialCB(RpMaterial *material, void *data) return nil; } -/* RpMaterial* CVehicleModelInfo::SetDefaultEnvironmentMapCB(RpMaterial *material, void *data) { @@ -1276,9 +1096,7 @@ CVehicleModelInfo::SetDefaultEnvironmentMapCB(RpMaterial *material, void *data) } return material; } -*/ -/* RpAtomic* CVehicleModelInfo::SetEnvironmentMapCB(RpAtomic *atomic, void *data) { @@ -1294,12 +1112,10 @@ CVehicleModelInfo::SetEnvironmentMapCB(RpAtomic *atomic, void *data) } return atomic; } -*/ void CVehicleModelInfo::SetEnvironmentMap(void) { -/* CSimpleModelInfo *wheelmi; int32 i; @@ -1317,7 +1133,6 @@ CVehicleModelInfo::SetEnvironmentMap(void) for(i = 0; i < wheelmi->m_numAtomics; i++) SetEnvironmentMapCB(wheelmi->m_atomics[i], nil); } -*/ #ifdef EXTENDED_PIPELINES CustomPipes::AttachVehiclePipe(m_clump); @@ -1332,23 +1147,21 @@ CVehicleModelInfo::LoadEnvironmentMaps(void) txdslot = CTxdStore::FindTxdSlot("particle"); CTxdStore::PushCurrentTxd(); CTxdStore::SetCurrentTxd(txdslot); - /*if(gpWhiteTexture == nil){ + if(gpWhiteTexture == nil){ gpWhiteTexture = RwTextureRead("white", nil); RwTextureGetName(gpWhiteTexture)[0] = '@'; RwTextureSetFilterMode(gpWhiteTexture, rwFILTERLINEAR); - }*/ + } CTxdStore::PopCurrentTxd(); } void CVehicleModelInfo::ShutdownEnvironmentMaps(void) { -/* RwTextureDestroy(gpWhiteTexture); gpWhiteTexture = nil; RwFrameDestroy(pMatFxIdentityFrame); pMatFxIdentityFrame = nil; -*/ } int @@ -1371,162 +1184,10 @@ CVehicleModelInfo::GetMaximumNumberOfPassengersFromNumberOfDoors(int id) } if(n == 0) - return id == MI_RCBANDIT /*|| id == MI_PIZZABOY || id == MI_BAGGAGE*/ ? 0 : 1; + return id == MI_RCBANDIT || id == MI_PIZZABOY || id == MI_BAGGAGE ? 0 : 1; if(id == MI_COACH) return 8; return n - 1; } - - -struct VehicleChunk -{ - RpClump *clump; - int32 numComps; - RpAtomic **comp; - RpMaterial *materials1[NUM_FIRST_MATERIALS]; - RpMaterial *materials2[NUM_SECOND_MATERIALS]; -}; - -void -CVehicleModelInfo::LoadModel(void *data, const void *chunk) -{ - int i; - VehicleChunk *chk = (VehicleChunk*)data; - CClumpModelInfo::LoadModel(chk->clump, chunk); - - // editable materials - for(i = 0; i < NUM_FIRST_MATERIALS; i++){ - m_materials1[i] = chk->materials1[i]; - if(m_materials1[i]) - CStreaming::RegisterPointer(&m_materials1[i], 2, true); - } - for(i = 0; i < NUM_SECOND_MATERIALS; i++){ - m_materials2[i] = chk->materials2[i]; - if(m_materials2[i]) - CStreaming::RegisterPointer(&m_materials2[i], 2, true); - } - - // extra components - m_numComps = chk->numComps; - if(m_numComps > 0){ - m_comps = chk->comp; - CStreaming::RegisterPointer(&m_comps, 2, true); - for(i = 0; i < m_numComps; i++){ - LoadResource(m_comps[i]); - CStreaming::RegisterAtomic(m_comps[i], nil); - } - }else - m_comps = nil; - - m_currentColour1 = -1; - m_currentColour2 = -1; - - // add wheels - RwObjectNameIdAssocation *desc = ms_vehicleDescs[m_vehicleType]; - for(i = 0; desc[i].name; i++){ - RwObjectIdAssociation assoc; - - if(desc[i].flags & (VEHICLE_FLAG_COMP|VEHICLE_FLAG_POS)) - continue; - assoc.frame = nil; - assoc.id = desc[i].hierId; - RwFrameForAllChildren(RpClumpGetFrame(m_clump), - FindFrameFromIdCB, &assoc); - if(assoc.frame && desc[i].flags & VEHICLE_FLAG_ADD_WHEEL && m_wheelId != -1){ - RwV3d scale; - RpAtomic *atomic = (RpAtomic*)CModelInfo::GetModelInfo(m_wheelId)->CreateInstance(); - RwFrameDestroy(RpAtomicGetFrame(atomic)); - RpAtomicSetFrame(atomic, assoc.frame); - RpClumpAddAtomic(m_clump, atomic); - CVisibilityPlugins::SetAtomicRenderCallback(atomic, - CVisibilityPlugins::RenderWheelAtomicCB); - scale.x = m_wheelScale; - scale.y = m_wheelScale; - scale.z = m_wheelScale; - RwFrameScale(assoc.frame, &scale, rwCOMBINEPRECONCAT); -#ifdef LIBRW - CStreaming::RegisterPointer(&atomic->inClump.next, 2, true); - CStreaming::RegisterPointer(&atomic->inClump.prev, 2, true); - CStreaming::RegisterPointer(&atomic->object.object.parent, 2, true); - CStreaming::RegisterPointer(&atomic->object.inFrame.next, 2, true); - CStreaming::RegisterPointer(&atomic->object.inFrame.prev, 2, true); - CStreaming::RegisterPointer(&atomic->clump, 2, true); -#endif - } - } -} - -void -CVehicleModelInfo::Write(base::cRelocatableChunkWriter &writer) -{ - CClumpModelInfo::Write(writer); -} - -void* -CVehicleModelInfo::WriteModel(base::cRelocatableChunkWriter &writer) -{ - if(GetRwObject() == nil) - return nil; - - int i; - VehicleChunk *chk = new VehicleChunk; - memset(chk, 0, sizeof(*chk)); - writer.AllocateRaw(chk, sizeof(*chk), sizeof(void*), false, true); - - // clump - chk->clump = (RpClump*)CClumpModelInfo::WriteModel(writer); - if(chk->clump) - writer.AddPatch(&chk->clump); - - // materials - for(i = 0; i < NUM_FIRST_MATERIALS; i++){ - if(m_materials1[i] == nil || m_vehicleType == VEHICLE_TYPE_FERRY) - chk->materials1[i] = nil; - else{ - SaveResource(m_materials1[i], writer); - chk->materials1[i] = m_materials1[i]; - writer.AddPatch(&chk->materials1[i]); - } - } - for(i = 0; i < NUM_SECOND_MATERIALS; i++){ - if(m_materials2[i] == nil || m_vehicleType == VEHICLE_TYPE_FERRY) - chk->materials2[i] = nil; - else{ - SaveResource(m_materials2[i], writer); - chk->materials2[i] = m_materials2[i]; - writer.AddPatch(&chk->materials2[i]); - } - } - - // extra components - chk->numComps = m_numComps; - chk->comp = nil; - if(m_numComps > 0){ - chk->comp = m_comps; - writer.AddPatch(&chk->comp); - - writer.AllocateRaw(m_comps, m_numComps*sizeof(void*), sizeof(void*), false, true); - for(i = 0; i < m_numComps; i++) - if(m_comps[i]){ - SaveResource(m_comps[i], writer); - writer.AddPatch(&m_comps[i]); - } - } - return chk; -} - -void -CVehicleModelInfo::RcWriteThis(base::cRelocatableChunkWriter &writer) -{ - writer.AllocateRaw(this, sizeof(*this), sizeof(void*), false, true); - writer.Class(VTABLE_ADDR(this), msClassInfo); -} - -void -CVehicleModelInfo::RcWriteEmpty(base::cRelocatableChunkWriter &writer) -{ - writer.AllocateRaw(this, sizeof(*this), sizeof(void*), false, true); - writer.Class(VTABLE_ADDR(this), msClassInfo); -} diff --git a/src/modelinfo/VehicleModelInfo.h b/src/modelinfo/VehicleModelInfo.h index 6f2cea3..c7a4112 100644 --- a/src/modelinfo/VehicleModelInfo.h +++ b/src/modelinfo/VehicleModelInfo.h @@ -3,8 +3,8 @@ #include "ClumpModelInfo.h" enum { - NUM_FIRST_MATERIALS = 25, - NUM_SECOND_MATERIALS = 25, + NUM_FIRST_MATERIALS = 24, + NUM_SECOND_MATERIALS = 20, NUM_VEHICLE_COLOURS = 8, }; @@ -31,7 +31,6 @@ enum eVehicleType { VEHICLE_TYPE_HELI, VEHICLE_TYPE_PLANE, VEHICLE_TYPE_BIKE, - VEHICLE_TYPE_FERRY, NUM_VEHICLE_TYPES }; @@ -49,18 +48,6 @@ enum eBoatPositions BOAT_POS_FRONTSEAT }; -enum eFerryPositions -{ - FERRY_POS_LIGHT_FRONT, - FERRY_POS_LIGHT_REAR, - FERRY_POS_CHIM_LEFT, - FERRY_POS_PED_POINT, - FERRY_POS_CAR1, - FERRY_POS_CAR2, - FERRY_POS_CAR3, - FERRY_POS_CAR4 -}; - enum eTrainPositions { TRAIN_POS_LIGHT_FRONT, @@ -110,30 +97,19 @@ public: uint8 m_lastColorVariation; uint8 m_currentColour1; uint8 m_currentColour2; - RpAtomic **m_comps; - float m_normalSplay; + RpAtomic *m_comps[6]; // This is stupid, CClumpModelInfo already has it! union { int32 m_animFileIndex; char *m_animFileName; }; - static base::cRelocatableChunkClassInfo msClassInfo; - static CVehicleModelInfo msClassInstance; - - struct Statics { - void *unknown; // unused too it seems - RwRGBA ms_vehicleColourTable[256]; - int8 ms_compsUsed[2]; - int8 ms_compsToUse[2]; - }; - //static RwTexture *ms_colourTextureTable[256]; - static Statics *mspInfo; + static int8 ms_compsToUse[2]; + static int8 ms_compsUsed[2]; + static RwRGBA ms_vehicleColourTable[256]; + static RwTexture *ms_colourTextureTable[256]; static RwObjectNameIdAssocation *ms_vehicleDescs[NUM_VEHICLE_TYPES]; - static void Load(void *inst); - static void *WriteStaticInfo(base::cRelocatableChunkWriter &writer); - CVehicleModelInfo(void); void DeleteRwObject(void); RwObject *CreateInstance(void); @@ -142,12 +118,6 @@ public: void ConvertAnimFileIndex(void); int GetAnimFileIndex(void) { return m_animFileIndex; } - virtual void LoadModel(void *model, const void *chunk); - virtual void Write(base::cRelocatableChunkWriter &writer); - virtual void *WriteModel(base::cRelocatableChunkWriter &writer); - virtual void RcWriteThis(base::cRelocatableChunkWriter &writer); - virtual void RcWriteEmpty(base::cRelocatableChunkWriter &writer); - static RwFrame *CollapseFramesCB(RwFrame *frame, void *data); static RwObject *MoveObjectsCB(RwObject *object, void *data); static RpAtomic *HideDamagedAtomicCB(RpAtomic *atomic, void *data); @@ -157,16 +127,13 @@ public: static RpAtomic *SetAtomicRendererCB(RpAtomic *atomic, void *data); static RpAtomic *SetAtomicRendererCB_BigVehicle(RpAtomic *atomic, void *data); static RpAtomic *SetAtomicRendererCB_Train(RpAtomic *atomic, void *data); - static RpAtomic *SetAtomicRendererCB_Ferry(RpAtomic *atomic, void *data); static RpAtomic *SetAtomicRendererCB_Boat(RpAtomic *atomic, void *data); - static RpAtomic *SetAtomicRendererCB_Boat_Far(RpAtomic *atomic, void *data); static RpAtomic *SetAtomicRendererCB_Heli(RpAtomic *atomic, void *data); static RpAtomic *SetAtomicRendererCB_RealHeli(RpAtomic *atomic, void *data); void SetAtomicRenderCallbacks(void); static RwObject *SetAtomicFlagCB(RwObject *object, void *data); static RwObject *ClearAtomicFlagCB(RwObject *atomic, void *data); - void RemoveWheels(void); void SetVehicleComponentFlags(RwFrame *frame, uint32 flags); void PreprocessHierarchy(void); void GetWheelPosn(int32 n, CVector &pos); @@ -192,7 +159,7 @@ public: static void ShutdownEnvironmentMaps(void); static int GetMaximumNumberOfPassengersFromNumberOfDoors(int id); - static void SetComponentsToUse(int8 c1, int8 c2) { mspInfo->ms_compsToUse[0] = c1; mspInfo->ms_compsToUse[1] = c2; } + static void SetComponentsToUse(int8 c1, int8 c2) { ms_compsToUse[0] = c1; ms_compsToUse[1] = c2; } }; extern bool gbBlackCars; diff --git a/src/modelinfo/WeaponModelInfo.cpp b/src/modelinfo/WeaponModelInfo.cpp index 1d194ec..d9294c3 100644 --- a/src/modelinfo/WeaponModelInfo.cpp +++ b/src/modelinfo/WeaponModelInfo.cpp @@ -4,9 +4,6 @@ #include "AnimManager.h" #include "VisibilityPlugins.h" -base::cRelocatableChunkClassInfo CWeaponModelInfo::msClassInfo("CWeaponModelInfo", VTABLE_ADDR(&msClassInstance), sizeof(msClassInstance)); -CWeaponModelInfo CWeaponModelInfo::msClassInstance; - void CWeaponModelInfo::SetAnimFile(const char *file) { @@ -38,34 +35,19 @@ CWeaponModelInfo::Init(void) void CWeaponModelInfo::SetWeaponInfo(int32 weaponId) { - m_relatedModel = (CSimpleModelInfo*)weaponId; + m_atomics[2] = (RpAtomic*)weaponId; } eWeaponType CWeaponModelInfo::GetWeaponInfo(void) { - return (eWeaponType)(uintptr)m_relatedModel; + return (eWeaponType)(uintptr)m_atomics[2]; } -/* void CWeaponModelInfo::SetAtomic(int n, RpAtomic *atomic) { CSimpleModelInfo::SetAtomic(n, atomic); CVisibilityPlugins::SetAtomicRenderCallback(atomic, CVisibilityPlugins::RenderWeaponCB); } -*/ -void -CWeaponModelInfo::RcWriteThis(base::cRelocatableChunkWriter &writer) -{ - writer.AllocateRaw(this, sizeof(*this), sizeof(void*), false, true); - writer.Class(VTABLE_ADDR(this), msClassInfo); -} - -void -CWeaponModelInfo::RcWriteEmpty(base::cRelocatableChunkWriter &writer) -{ - writer.AllocateRaw(this, sizeof(*this), sizeof(void*), false, true); - writer.Class(VTABLE_ADDR(this), msClassInfo); -} diff --git a/src/modelinfo/WeaponModelInfo.h b/src/modelinfo/WeaponModelInfo.h index 8dc9baf..548bf8a 100644 --- a/src/modelinfo/WeaponModelInfo.h +++ b/src/modelinfo/WeaponModelInfo.h @@ -9,21 +9,13 @@ class CWeaponModelInfo : public CSimpleModelInfo int32 m_animFileIndex; char *m_animFileName; }; - - static base::cRelocatableChunkClassInfo msClassInfo; - static CWeaponModelInfo msClassInstance; - public: CWeaponModelInfo(void) : CSimpleModelInfo(MITYPE_WEAPON) { m_animFileIndex = -1; } virtual void SetAnimFile(const char *file); virtual void ConvertAnimFileIndex(void); virtual int GetAnimFileIndex(void) { return m_animFileIndex; } - - virtual void RcWriteThis(base::cRelocatableChunkWriter &writer); - virtual void RcWriteEmpty(base::cRelocatableChunkWriter &writer); - - //virtual void SetAtomic(int n, RpAtomic *atomic); + virtual void SetAtomic(int n, RpAtomic *atomic); void Init(void); void SetWeaponInfo(int32 weaponId); diff --git a/src/objects/CutsceneObject.cpp b/src/objects/CutsceneObject.cpp index 803fcf0..7d9fe64 100644 --- a/src/objects/CutsceneObject.cpp +++ b/src/objects/CutsceneObject.cpp @@ -53,15 +53,12 @@ CCutsceneObject::SetModelIndex(uint32 id) void CCutsceneObject::CreateShadow(void) { - // empty in LCS - /* if ( IsPedModel(GetModelIndex()) ) { m_pShadow = new CCutsceneShadow(); if (!m_pShadow->IsInitialized()) m_pShadow->Create(m_rwObject, 6, true, 4, true); } - */ } void diff --git a/src/objects/Object.h b/src/objects/Object.h index a8205ba..e34043a 100644 --- a/src/objects/Object.h +++ b/src/objects/Object.h @@ -71,7 +71,6 @@ public: uint8 bIsWeapon : 1; uint8 bIsStreetLight : 1; int8 m_nBonusValue; - int8 m_nLastWeaponToDamage; uint16 m_nCostValue; float m_fCollisionDamageMultiplier; uint8 m_nCollisionDamageEffect; diff --git a/src/objects/ParticleObject.cpp b/src/objects/ParticleObject.cpp index a281062..4d080d1 100644 --- a/src/objects/ParticleObject.cpp +++ b/src/objects/ParticleObject.cpp @@ -242,16 +242,6 @@ CParticleObject::AddObject(uint16 type, CVector const &pos, CVector const &targe break; } - case POBJECT_FIRE_HYDRANT_STEAM: - { - pobj->m_ParticleType = PARTICLE_HYDRANT_STEAM; - pobj->m_nNumEffectCycles = 2; - pobj->m_nSkipFrames = 2; - pobj->m_nCreationChance = 8; - pobj->m_nRemoveTimer = CTimer::GetTimeInMilliseconds() + 5000; - break; - } - case POBJECT_CAR_WATER_SPLASH: case POBJECT_PED_WATER_SPLASH: { @@ -931,7 +921,6 @@ void CParticleObject::UpdateClose(void) CParticle::AddParticle(PARTICLE_CAR_SPLASH, splashpos, splashvel, nil, CGeneral::GetRandomNumberInRange(0.005f, 0.0075f), this->m_Color, 0, 0, 1, 300); } - for ( int32 i = 0; i < this->m_nNumEffectCycles; i++ ) { CParticle::AddParticle(this->m_ParticleType, pos, vel, nil, 0.0f, this->m_Color); diff --git a/src/objects/ParticleObject.h b/src/objects/ParticleObject.h index 1ac2945..f199e53 100644 --- a/src/objects/ParticleObject.h +++ b/src/objects/ParticleObject.h @@ -15,7 +15,6 @@ enum eParticleObjectType POBJECT_WALL_STEAM_SLOWMOTION, POBJECT_DARK_SMOKE, POBJECT_FIRE_HYDRANT, - POBJECT_FIRE_HYDRANT_STEAM, POBJECT_CAR_WATER_SPLASH, POBJECT_PED_WATER_SPLASH, POBJECT_SPLASHES_AROUND, @@ -50,7 +49,7 @@ public: CParticleObject *m_pNext; CParticleObject *m_pPrev; CParticle *m_pParticle; - uint32 m_nRemoveTimer; + uint32 m_nRemoveTimer; eParticleObjectType m_Type; tParticleType m_ParticleType; uint8 m_nNumEffectCycles; @@ -110,4 +109,4 @@ public: static void Remove(CParticleObject *particleobject); static CAudioHydrant *Get(int n); // for neo screen droplets -}; +}; \ No newline at end of file diff --git a/src/peds/Gangs.cpp b/src/peds/Gangs.cpp index e6de077..2d6d113 100644 --- a/src/peds/Gangs.cpp +++ b/src/peds/Gangs.cpp @@ -20,24 +20,23 @@ CGangInfo::CGangInfo() : void CGangs::Initialise(void) { - SetGangPedModels(GANG_MAFIA, MI_GANG01, MI_GANG02); - SetGangPedModels(GANG_TRIAD, MI_GANG03, MI_GANG04); - SetGangPedModels(GANG_DIABLOS, MI_GANG05, MI_GANG06); - SetGangPedModels(GANG_YAKUZA, MI_GANG07, MI_GANG08); - SetGangPedModels(GANG_YARDIE, MI_GANG09, MI_GANG10); - SetGangPedModels(GANG_COLUMB, MI_GANG11, MI_GANG12); - SetGangPedModels(GANG_HOODS, MI_GANG13, MI_GANG14); - SetGangPedModels(GANG_FORELLI, MI_GANG15, MI_GANG16); - SetGangPedModels(GANG_SINDACCO, MI_GANG17, MI_GANG18); - SetGangVehicleModel(GANG_MAFIA, MI_MAFIA); - SetGangVehicleModel(GANG_TRIAD, MI_BELLYUP); - SetGangVehicleModel(GANG_DIABLOS, MI_DIABLOS); - SetGangVehicleModel(GANG_YAKUZA, MI_YAKUZA); - SetGangVehicleModel(GANG_YARDIE, MI_YARDIE); - SetGangVehicleModel(GANG_COLUMB, MI_COLUMB); - SetGangVehicleModel(GANG_HOODS, MI_HOODS); - SetGangVehicleModel(GANG_FORELLI, MI_FORELLI_CAR); - SetGangVehicleModel(GANG_SINDACCO, MI_SINDACCO_CAR); + SetGangPedModels(GANG_CUBAN, MI_CBA, MI_CBB); + SetGangPedModels(GANG_HAITIAN, MI_HNA, MI_HNB); + SetGangPedModels(GANG_STREET, MI_SGA, MI_SGB); + SetGangPedModels(GANG_DIAZ, MI_CLA, MI_CLB); + SetGangPedModels(GANG_SECURITY, MI_GDA, MI_GDB); + SetGangPedModels(GANG_BIKER, MI_BKA, MI_BKB); + SetGangPedModels(GANG_PLAYER, MI_PGA, MI_PGB); + SetGangPedModels(GANG_GOLFER, MI_WFOGO, MI_WMOGO); + SetGangVehicleModel(GANG_CUBAN, MI_CUBAN); + SetGangVehicleModel(GANG_HAITIAN, MI_VOODOO); + SetGangVehicleModel(GANG_STREET, MI_GANGBUR); + SetGangVehicleModel(GANG_DIAZ, -1); + SetGangVehicleModel(GANG_SECURITY, -1); + SetGangVehicleModel(GANG_BIKER, MI_ANGEL); + SetGangVehicleModel(GANG_PLAYER, -1); + SetGangVehicleModel(GANG_GOLFER, MI_CADDY); + SetGangWeapons(GANG_GOLFER, WEAPONTYPE_GOLFCLUB, WEAPONTYPE_GOLFCLUB); #ifdef FIX_BUGS for (int i = 0; i < NUM_GANGS; i++) SetGangPedModelOverride(i, -1); diff --git a/src/peds/Gangs.h b/src/peds/Gangs.h index acb2fb9..c638134 100644 --- a/src/peds/Gangs.h +++ b/src/peds/Gangs.h @@ -17,15 +17,15 @@ struct CGangInfo VALIDATE_SIZE(CGangInfo, 0x10); enum { - GANG_MAFIA = 0, - GANG_TRIAD, - GANG_DIABLOS, - GANG_YAKUZA, - GANG_YARDIE, - GANG_COLUMB, - GANG_HOODS, - GANG_FORELLI, - GANG_SINDACCO, + GANG_CUBAN = 0, + GANG_HAITIAN, + GANG_STREET, + GANG_DIAZ, + GANG_SECURITY, + GANG_BIKER, + GANG_PLAYER, + GANG_GOLFER, + GANG_9, NUM_GANGS }; diff --git a/src/peds/Ped.cpp b/src/peds/Ped.cpp index 3497362..ba09e8a 100644 --- a/src/peds/Ped.cpp +++ b/src/peds/Ped.cpp @@ -9272,7 +9272,7 @@ CPed::SetRadioStation(void) if (IsPlayer() || !m_pMyVehicle || m_pMyVehicle->pDriver != this) return; - if (GetModelIndex() != MI_GANG13 && GetModelIndex() != MI_GANG14) { + if (GetModelIndex() != MI_PGA && GetModelIndex() != MI_PGB) { if (m_pMyVehicle->m_nRadioStation != modelInfo->radio1 && m_pMyVehicle->m_nRadioStation != modelInfo->radio2) { if (CGeneral::GetRandomTrueFalse()) m_pMyVehicle->m_nRadioStation = modelInfo->radio1; @@ -9285,10 +9285,8 @@ CPed::SetRadioStation(void) } void -CPed::WarpPedIntoCar(CVehicle *car) // LCS TODO: remove passenger logic +CPed::WarpPedIntoCar(CVehicle *car) { - if (GetPedState() == PED_FACE_PHONE) - QuitEnteringCar(); bInVehicle = true; m_pMyVehicle = car; m_pMyVehicle->RegisterReference((CEntity **) &m_pMyVehicle); @@ -9353,77 +9351,6 @@ CPed::WarpPedIntoCar(CVehicle *car) // LCS TODO: remove passenger logic bChangedSeat = true; } -void -CPed::WarpPedIntoCarAsPassenger(CVehicle* pVehicle, int32 position) -{ - if (GetPedState() == PED_FACE_PHONE) - QuitEnteringCar(); - bInVehicle = true; - m_pMyVehicle = pVehicle; - m_pMyVehicle->RegisterReference((CEntity**)&m_pMyVehicle); - m_carInObjective = pVehicle; - m_carInObjective->RegisterReference((CEntity**)&m_carInObjective); - SetPedState(PED_DRIVING); // TODO: this is PED_PASSENGER, but it needs to have some logic applied first - bUsesCollision = false; - bIsInTheAir = false; - bVehExitWillBeInstant = true; - if (pVehicle->IsBike() && !pVehicle->pPassengers[0]) { - pVehicle->pPassengers[0] = this; - pVehicle->pPassengers[0]->RegisterReference((CEntity**)&pVehicle->pPassengers[0]); - } - if (position >= 0) { - if (!pVehicle->pPassengers[position]) { - pVehicle->pPassengers[position] = this; - pVehicle->pPassengers[position]->RegisterReference((CEntity**)&pVehicle->pPassengers[position]); - } - } - else { - for (int i = 0; i < 4; i++) { - if (!pVehicle->pPassengers[i]) { - pVehicle->pPassengers[i] = this; - pVehicle->pPassengers[i]->RegisterReference((CEntity**)&pVehicle->pPassengers[i]); - break; - } - } - } - - if (IsPlayer()) { - pVehicle->SetStatus(STATUS_PLAYER); - AudioManager.PlayerJustGotInCar(); - CCarCtrl::RegisterVehicleOfInterest(pVehicle); - } - else { - pVehicle->SetStatus(STATUS_PHYSICS); - } - - CWorld::Remove(this); - SetPosition(pVehicle->GetPosition()); - CWorld::Add(this); - - if (pVehicle->bIsAmbulanceOnDuty) { - pVehicle->bIsAmbulanceOnDuty = false; - --CCarCtrl::NumAmbulancesOnDuty; - } - if (pVehicle->bIsFireTruckOnDuty) { - pVehicle->bIsFireTruckOnDuty = false; - --CCarCtrl::NumFiretrucksOnDuty; - } - if (!pVehicle->bEngineOn) { - pVehicle->bEngineOn = true; - DMAudio.PlayOneShot(pVehicle->m_audioEntityId, SOUND_CAR_ENGINE_START, 1.0f); - } - - RpAnimBlendClumpSetBlendDeltas(GetClump(), ASSOC_PARTIAL, -1000.0f); - - AddInCarAnims(pVehicle, pVehicle->pDriver == this); - RemoveWeaponWhenEnteringVehicle(); - - if (pVehicle->bIsBus) - bRenderPedInCar = false; - - bChangedSeat = true; -} - bool CPed::HasAttractor(void) { diff --git a/src/peds/Ped.h b/src/peds/Ped.h index 1ddb136..c94cd32 100644 --- a/src/peds/Ped.h +++ b/src/peds/Ped.h @@ -100,31 +100,9 @@ enum PedFightMoves { FIGHTMOVE_NULL, // Attacker -// FIGHTMOVE_STDPUNCH, + FIGHTMOVE_STDPUNCH, FIGHTMOVE_IDLE, FIGHTMOVE_SHUFFLE_F, - // Combos - FIGHTMOVE_COMBO_A1, - FIGHTMOVE_COMBO_A2, - FIGHTMOVE_COMBO_A3, - FIGHTMOVE_COMBO_B1, - FIGHTMOVE_COMBO_B2, - FIGHTMOVE_COMBO_B3, - // Melee - FIGHTMOVE_MELEE1, - FIGHTMOVE_MELEE2, - FIGHTMOVE_MELEE3, - // Special - FIGHTMOVE_GROUNDKICK, - // Opponent - FIGHTMOVE_HITFRONT, - FIGHTMOVE_HITBACK, - FIGHTMOVE_HITRIGHT, - FIGHTMOVE_HITLEFT, - FIGHTMOVE_HITONFLOOR, - FIGHTMOVE_HITBEHIND, - FIGHTMOVE_IDLE2NORM, -/* FIGHTMOVE_KNEE, FIGHTMOVE_PUNCHHOOK, FIGHTMOVE_PUNCHJAB, @@ -156,16 +134,7 @@ enum PedFightMoves FIGHTMOVE_MELEE2, FIGHTMOVE_MELEE3, FIGHTMOVE_IDLE2NORM, -*/ - - NUM_FIGHTMOVES, - - // LCS replacements for the old names: - // NB: this may be totally bogus, i just need it to compile - FIGHTMOVE_PUNCH = FIGHTMOVE_COMBO_A2, - FIGHTMOVE_FWDRIGHT = FIGHTMOVE_COMBO_B1, - FIGHTMOVE_LONGKICK = FIGHTMOVE_COMBO_B2, - FIGHTMOVE_ROUNDHOUSE = FIGHTMOVE_COMBO_B3, + NUM_FIGHTMOVES }; enum ePedPieceTypes @@ -406,7 +375,7 @@ public: float m_fCollisionSpeed; // cf. https://github.com/DK22Pac/plugin-sdk/blob/master/plugin_sa/game_sa/CPed.h from R* - uint32 bIsStanding : 1; // 0x194 on PS2, 0x1A4 on android + uint32 bIsStanding : 1; uint32 bWasStanding : 1; uint32 bIsAttacking : 1; // doesn't reset after fist fight uint32 bIsPointingGunAt : 1; @@ -499,7 +468,7 @@ public: uint32 bIsDrowning : 1; uint32 bDrownsInWater : 1; uint32 bWaitForLeaderToComeCloser : 1; - uint32 bHeldHostageInCar : 1; // one flag was added somewhere after this one (TODO: figure out where and which) + uint32 bHeldHostageInCar : 1; uint32 bIsPlayerFriend : 1; uint32 bHeadStuckInCollision : 1; uint32 bDeadPedInFrontOfCar : 1; @@ -512,7 +481,7 @@ public: uint32 bMakeFleeScream : 1; uint32 bPushedAlongByCar : 1; uint32 bRemoveMeWhenIGotIntoCar : 1; - uint32 bIgnoreThreatsBehindObjects : 1; // one flag was added somewhere before this one (TODO: figure out where and which) + uint32 bIgnoreThreatsBehindObjects : 1; uint32 bNeverEverTargetThisPed : 1; uint32 bCrouchWhenScared : 1; @@ -521,42 +490,18 @@ public: uint32 bCollectBusFare : 1; uint32 bBoughtIceCream : 1; uint32 bDonePositionOutOfCollision : 1; - - uint32 bCanAttackPlayerWithCops : 1; // 1A1_1 on PS2 - uint32 bOnlyAllowedToSitBehind : 1; - uint32 bOnlyAllowedToSitInFront : 1; - uint32 b1A1_8 : 1; - uint32 b1A1_10 : 1; - uint32 bOverrideMoveAnim : 1; + uint32 bCanAttackPlayerWithCops : 1; #ifdef KANGAROO_CHEAT // our own flags uint32 m_ped_flagI80 : 1; // KANGAROO_CHEAT define makes use of this as cheat toggle #endif - uint16 m_gangFlags; // <- this one is uint16 - - uint8 bDropsWeaponsOnDeath : 1; - uint8 b1A4_2 : 1; - uint8 bAttacksPlayerWithCops : 1; - uint8 b1A4_8 : 1; - uint8 b1A4_10 : 1; - uint8 b1A4_20 : 1; - uint8 b1A4_40 : 1; - uint8 b1A4_80 : 1; - - uint8 bCanBeTargettedByLeader : 1; - uint8 b1A5_2 : 1; - uint8 b1A5_4 : 1; - uint8 b1A5_8 : 1; - uint8 b1A5_10 : 1; - uint8 b1A5_20 : 1; - uint8 b1A5_40 : 1; - uint8 b1A5_80 : 1; - - uint8 unk_1A6; // <- init with 100 in constructor - - uint8 CharCreatedBy; // 1AC + uint8 m_gangFlags; + uint8 m_unused15D; // these 3 can't be padding but had to actually have been members ... + uint8 m_unused15E; + uint8 m_unused15F; + uint8 CharCreatedBy; eObjective m_objective; eObjective m_prevObjective; CPed *m_pedInObjective; @@ -605,8 +550,6 @@ public: float m_fHealth; float m_fArmour; uint32 m_nExtendedRangeTimer; - uint32 m_nScriptShootTimer; - uint32 m_nScriptAttackTimer; int16 m_routeLastPoint; uint16 m_routeStartPoint; int16 m_routePointsPassed; @@ -706,7 +649,6 @@ public: uint32 m_lastComment; CVector m_vecSpotToGuard; float m_radiusToGuard; - float m_fMaxHealth; static void *operator new(size_t); static void *operator new(size_t, int); @@ -776,7 +718,6 @@ public: void SetObjective(eObjective); void SetObjective(eObjective, int16, int16); void SetObjective(eObjective, CVector); - void SetObjective(eObjective, CVector, float); void SetObjective(eObjective, float, const CVector&); void ClearChat(void); void InformMyGangOfAttack(CEntity*); @@ -909,7 +850,6 @@ public: void SetSolicit(uint32 time); void ScanForInterestingStuff(void); void WarpPedIntoCar(CVehicle*); - void WarpPedIntoCarAsPassenger(CVehicle*, int32); void SetCarJack(CVehicle*); bool WarpPedToNearLeaderOffScreen(void); void Solicit(void); @@ -1064,16 +1004,6 @@ public: { return m_pMyVehicle != nil && ((CEntity*)m_pMyVehicle)->GetStatus() != STATUS_WRECKED; } - bool CanStartMission() // used in CAN_PLAYER_START_MISSION and can looks like inlined function - { - if (m_nPedState >= PED_WANDER_RANGE && m_nPedState < PED_STATES_NO_AI && m_nPedState != PED_ANSWER_MOBILE) - return false; - if (m_nPedState >= PED_JUMP && m_nPedState < PED_STATES_NO_ST) - return false; - if (m_nPedState >= PED_ENTER_TRAIN && m_nPedState < PED_DEPLOY_STINGER) - return false; - return !bIsInTheAir && !bIsLanding && m_fHealth > 0.0f; - } // My names. Inlined in VC AnimationId GetFireAnimNotDucking(CWeaponInfo* weapon) { @@ -1092,7 +1022,7 @@ public: static AnimationId GetFireAnimGround(CWeaponInfo* weapon, bool kickFloorIfNone = true) { if (weapon->IsFlagSet(WEAPONFLAG_GROUND_2ND)) - return ANIM_ATTACK_2; + return ANIM_WEAPON_CROUCHFIRE; else if (weapon->IsFlagSet(WEAPONFLAG_GROUND_3RD)) return ANIM_WEAPON_FIRE_3RD; else if (kickFloorIfNone) @@ -1105,26 +1035,26 @@ public: if (weapon->IsFlagSet(WEAPONFLAG_ANIMDETONATE)) return ANIM_STD_DETONATE; else - return ANIM_ATTACK_1; + return ANIM_WEAPON_FIRE; } static AnimationId GetCrouchReloadAnim(CWeaponInfo* weapon) { if (weapon->IsFlagSet(WEAPONFLAG_RELOAD)) - return ANIM_ATTACK_EXTRA2; + return ANIM_WEAPON_CROUCHRELOAD; else return (AnimationId)0; } static AnimationId GetCrouchFireAnim(CWeaponInfo* weapon) { if (weapon->IsFlagSet(WEAPONFLAG_CROUCHFIRE)) - return ANIM_ATTACK_2; + return ANIM_WEAPON_CROUCHFIRE; else return (AnimationId)0; } static AnimationId GetReloadAnim(CWeaponInfo* weapon) { if (weapon->IsFlagSet(WEAPONFLAG_RELOAD)) - return ANIM_ATTACK_EXTRA1; + return ANIM_WEAPON_RELOAD; else return (AnimationId)0; } diff --git a/src/peds/PedAI.cpp b/src/peds/PedAI.cpp index 06fecaf..cd8b06f 100644 --- a/src/peds/PedAI.cpp +++ b/src/peds/PedAI.cpp @@ -362,51 +362,6 @@ CPed::SetObjective(eObjective newObj, void *entity) } } -void -CPed::SetObjective(eObjective newObj, CVector dest, float safeDist) -{ - if (DyingOrDead()) - return; - - if (m_prevObjective != OBJECTIVE_NONE && m_prevObjective == newObj) - return; - - if (m_objective == newObj) { - if (newObj == OBJECTIVE_GOTO_AREA_ANY_MEANS || newObj == OBJECTIVE_GOTO_AREA_ON_FOOT || newObj == OBJECTIVE_RUN_TO_AREA || newObj == OBJECTIVE_SPRINT_TO_AREA) { - if (m_nextRoutePointPos == dest && m_distanceToCountSeekDone == safeDist) - return; - } - else if (newObj == OBJECTIVE_GUARD_SPOT) { - if (m_vecSpotToGuard == dest && m_radiusToGuard == safeDist) - return; - } - } - - ClearPointGunAt(); - SetObjectiveTimer(0); - bObjectiveCompleted = false; - if (IsTemporaryObjective(m_objective)) { - m_prevObjective = newObj; - } - else { - if (m_objective != newObj) - SetStoredObjective(); - - m_objective = newObj; - } - - if (newObj == OBJECTIVE_GUARD_SPOT) { - m_vecSpotToGuard = dest; - m_radiusToGuard = safeDist; - } - else if (newObj == OBJECTIVE_GOTO_AREA_ANY_MEANS || newObj == OBJECTIVE_GOTO_AREA_ON_FOOT || newObj == OBJECTIVE_RUN_TO_AREA || newObj == OBJECTIVE_SPRINT_TO_AREA) { - m_pNextPathNode = nil; - m_nextRoutePointPos = dest; - m_vecSeekPos = m_nextRoutePointPos; - bUsePedNodeSeek = true; - } -} - // Only used in 01E1: SET_CHAR_OBJ_FOLLOW_ROUTE opcode // IDA fails very badly in here, puts a fake loop and ignores SetFollowRoute call... void @@ -6410,7 +6365,7 @@ CPed::KillCharOnFootArmed(CVector &ourPos, CVector &targetPos, CVector &distWith } } if (m_pedInObjective->IsPlayer() && m_nPedType != PEDTYPE_COP - && CharCreatedBy != MISSION_CHAR && FindPlayerPed()->m_pWanted->m_CurrentCops != 0/* TODO: && !bAttacksPlayerWithCops*/) { + && CharCreatedBy != MISSION_CHAR && FindPlayerPed()->m_pWanted->m_CurrentCops != 0) { SetObjective(OBJECTIVE_FLEE_ON_FOOT_TILL_SAFE); return CANT_ATTACK; diff --git a/src/peds/PedFight.cpp b/src/peds/PedFight.cpp index 10a260c..79e0121 100644 --- a/src/peds/PedFight.cpp +++ b/src/peds/PedFight.cpp @@ -31,7 +31,6 @@ RpClump* flyingClumpTemp; FightMove tFightMoves[NUM_FIGHTMOVES] = { -/* { ANIM_STD_NUM, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, { ANIM_STD_PUNCH, 0.2f, 8.f/30.f, 0.0f, 0.3f, 1.0f, HITLEVEL_HIGH, 1, 0 }, { ANIM_STD_FIGHT_IDLE, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, @@ -64,7 +63,6 @@ FightMove tFightMoves[NUM_FIGHTMOVES] = { ANIM_ATTACK_2, 4.f/30.f, 7.f/30.f, 10.f/30.f, 0.4f, 1.0f, HITLEVEL_HIGH, 1, 0 }, { ANIM_ATTACK_3, 4.f / 30.f, 7.f / 30.f, 10.f / 30.f, 0.4f, 1.0f, HITLEVEL_HIGH, 1, 0 }, { ANIM_STD_FIGHT_2IDLE, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 } -*/ }; static PedOnGroundState @@ -184,14 +182,14 @@ CPed::SetPointGunAt(CEntity *to) if (bCrouchWhenShooting && bIsDucking && GetCrouchFireAnim(curWeapon)) { aimAssoc = RpAnimBlendClumpGetAssociation(GetClump(), GetCrouchFireAnim(curWeapon)); } else { - aimAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_1); + aimAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_FIRE); } if (!aimAssoc || aimAssoc->blendDelta < 0.0f) { if (bCrouchWhenShooting && bIsDucking && GetCrouchFireAnim(curWeapon)) { aimAssoc = CAnimManager::BlendAnimation(GetClump(), curWeapon->m_AnimToPlay, GetCrouchFireAnim(curWeapon), 4.0f); } else { - aimAssoc = CAnimManager::AddAnimation(GetClump(), curWeapon->m_AnimToPlay, ANIM_ATTACK_1); + aimAssoc = CAnimManager::AddAnimation(GetClump(), curWeapon->m_AnimToPlay, ANIM_WEAPON_FIRE); } aimAssoc->blendAmount = 0.0f; @@ -206,7 +204,7 @@ CPed::PointGunAt(void) { CWeaponInfo *weaponInfo = CWeaponInfo::GetWeaponInfo(GetWeapon()->m_eWeaponType); float animLoopStart = weaponInfo->m_fAnimLoopStart; - CAnimBlendAssociation *weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_1); + CAnimBlendAssociation *weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_FIRE); if (!weaponAssoc || weaponAssoc->blendDelta < 0.0f) { if (weaponInfo->IsFlagSet(WEAPONFLAG_CROUCHFIRE)) { weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), GetCrouchFireAnim(weaponInfo)); @@ -242,7 +240,7 @@ CPed::ClearPointGunAt(void) RestorePreviousState(); } weaponInfo = CWeaponInfo::GetWeaponInfo(GetWeapon()->m_eWeaponType); - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_1); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_FIRE); if (!animAssoc || animAssoc->blendDelta < 0.0f) { if (weaponInfo->IsFlagSet(WEAPONFLAG_CROUCHFIRE)) { animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), GetCrouchFireAnim(weaponInfo)); @@ -998,7 +996,7 @@ CPed::Attack(void) weaponAnimAssoc->SetFinishCallback(FinishedAttackCB, this); } else if (GetSecondFireAnim(ourWeapon)) { if (weaponAnimAssoc->animId == GetSecondFireAnim(ourWeapon)) { - weaponAnimAssoc = CAnimManager::BlendAnimation(GetClump(), ourWeapon->m_AnimToPlay, ANIM_ATTACK_1, 8.0f); + weaponAnimAssoc = CAnimManager::BlendAnimation(GetClump(), ourWeapon->m_AnimToPlay, ANIM_WEAPON_FIRE, 8.0f); } else { weaponAnimAssoc = CAnimManager::BlendAnimation(GetClump(), ourWeapon->m_AnimToPlay, GetSecondFireAnim(ourWeapon), 8.0f); } @@ -1104,7 +1102,10 @@ CPed::StartFightAttack(uint8 buttonPressure) break; } } else { - animAssoc->speed = 0.8f; + if (m_curFightMove == FIGHTMOVE_BACKKICK) + animAssoc->speed = 1.15f; + else + animAssoc->speed = 0.8f; } if (IsPlayer()) animAssoc->SetCurrentTime(0.08f); @@ -1212,14 +1213,12 @@ CPed::StartFightDefend(uint8 direction, uint8 hitLevel, uint8 unk) default: if (hitLevel == HITLEVEL_LOW) { hitAnim = ANIM_STD_KO_SHOT_STOMACH; -/* LCS: removed } else if (CGeneral::GetRandomNumber() & 1) { fall = false; hitAnim = ANIM_STD_HIT_WALK; } else if (CGeneral::GetRandomNumber() & 1) { fall = false; hitAnim = ANIM_STD_HIT_HEAD; -*/ } else { hitAnim = ANIM_STD_KO_SHOT_FACE; } @@ -1254,7 +1253,7 @@ CPed::StartFightDefend(uint8 direction, uint8 hitLevel, uint8 unk) Say(SOUND_PED_DEFEND); return; } - m_curFightMove = FIGHTMOVE_HITFRONT; // LCS + m_curFightMove = FIGHTMOVE_HITBODY; break; case HITLEVEL_HIGH: switch (direction) { @@ -1268,12 +1267,10 @@ CPed::StartFightDefend(uint8 direction, uint8 hitLevel, uint8 unk) m_curFightMove = FIGHTMOVE_HITRIGHT; break; default: - // LCS: removed - //if (unk <= 5) - // m_curFightMove = FIGHTMOVE_HITHEAD; - //else - // m_curFightMove = FIGHTMOVE_HITBIGSTEP; - m_curFightMove = FIGHTMOVE_HITFRONT; + if (unk <= 5) + m_curFightMove = FIGHTMOVE_HITHEAD; + else + m_curFightMove = FIGHTMOVE_HITBIGSTEP; break; } break; @@ -1289,12 +1286,10 @@ CPed::StartFightDefend(uint8 direction, uint8 hitLevel, uint8 unk) m_curFightMove = FIGHTMOVE_HITRIGHT; break; default: - // LCS: removed - //if (unk <= 5) - // m_curFightMove = FIGHTMOVE_HITCHEST; - //else - // m_curFightMove = FIGHTMOVE_HITBIGSTEP; - m_curFightMove = FIGHTMOVE_HITFRONT; + if (unk <= 5) + m_curFightMove = FIGHTMOVE_HITCHEST; + else + m_curFightMove = FIGHTMOVE_HITBIGSTEP; break; } break; @@ -1447,30 +1442,30 @@ CPed::Fight(void) CVector touchingNodePos(0.0f, 0.0f, 0.0f); switch (m_curFightMove) { - // case FIGHTMOVE_KNEE: - // TransformToNode(touchingNodePos, PED_LOWERLEGR); - // break; - // case FIGHTMOVE_PUNCHHOOK: - // case FIGHTMOVE_PUNCHJAB: - // TransformToNode(touchingNodePos, PED_HANDL); - // break; + case FIGHTMOVE_KNEE: + TransformToNode(touchingNodePos, PED_LOWERLEGR); + break; + case FIGHTMOVE_PUNCHHOOK: + case FIGHTMOVE_PUNCHJAB: + TransformToNode(touchingNodePos, PED_HANDL); + break; case FIGHTMOVE_LONGKICK: case FIGHTMOVE_ROUNDHOUSE: - // case FIGHTMOVE_FWDLEFT: - // case FIGHTMOVE_BACKRIGHT: + case FIGHTMOVE_FWDLEFT: + case FIGHTMOVE_BACKRIGHT: case FIGHTMOVE_GROUNDKICK: TransformToNode(touchingNodePos, PED_FOOTR); break; case FIGHTMOVE_FWDRIGHT: TransformToNode(touchingNodePos, PED_HEAD); break; - // case FIGHTMOVE_BACKKICK: - // case FIGHTMOVE_BACKFLIP: - // TransformToNode(touchingNodePos, PED_FOOTL); - // break; - // case FIGHTMOVE_BACKLEFT: - // TransformToNode(touchingNodePos, PED_UPPERARML); - // break; + case FIGHTMOVE_BACKKICK: + case FIGHTMOVE_BACKFLIP: + TransformToNode(touchingNodePos, PED_FOOTL); + break; + case FIGHTMOVE_BACKLEFT: + TransformToNode(touchingNodePos, PED_UPPERARML); + break; default: TransformToNode(touchingNodePos, PED_HANDR); break; @@ -1522,7 +1517,10 @@ CPed::Fight(void) tFightMoves[m_curFightMove].animId, 8.0f); if (weaponInfo->m_AnimToPlay != ASSOCGRP_KNIFE || m_curFightMove < FIGHTMOVE_MELEE1) { - animAssoc->speed = 0.8f; + if (m_curFightMove == FIGHTMOVE_BACKKICK) + animAssoc->speed = 1.15f; + else + animAssoc->speed = 0.8f; } else { switch (GetWeapon()->m_eWeaponType) { case WEAPONTYPE_SCREWDRIVER: @@ -1662,9 +1660,8 @@ CPed::ChooseAttackAI(uint8 buttonPressure, bool fightWithWeapon) return FIGHTMOVE_IDLE; } } - // LCS: removed - //if (dist < 0.95f && canKneeHead) - // return FIGHTMOVE_KNEE; + if (dist < 0.95f && canKneeHead) + return FIGHTMOVE_KNEE; if (dist < 1.4f) return FIGHTMOVE_PUNCH; if (dist < 2.f && canKick) { @@ -1782,11 +1779,9 @@ CPed::ChooseAttackPlayer(uint8 buttonPressure, bool fightWithWeapon) switch (dir) { case 0: // forward if (fightWithWeapon) { - // LCS: removed - //if (distToVictim < 0.95f - 0.2f && m_nPedState == PED_FIGHT) { - // choosenMove = FIGHTMOVE_KNEE; - //} else - { + if (distToVictim < 0.95f - 0.2f && m_nPedState == PED_FIGHT) { + choosenMove = FIGHTMOVE_KNEE; + } else { if (GetWeapon()->m_eWeaponType == WEAPONTYPE_CLEAVER) { if (distToVictim < 0.85f * weaponInfo->m_fRange) choosenMove = FIGHTMOVE_MELEE1; @@ -1809,20 +1804,18 @@ CPed::ChooseAttackPlayer(uint8 buttonPressure, bool fightWithWeapon) } } } - // LCS: removed - //} else if (distToVictim < 0.95f && m_nPedState == PED_FIGHT) { - // choosenMove = FIGHTMOVE_KNEE; + } else if (distToVictim < 0.95f && m_nPedState == PED_FIGHT) { + choosenMove = FIGHTMOVE_KNEE; } else if (distToVictim < 1.4f) { - // LCS: removed - /*if (m_curFightMove == FIGHTMOVE_PUNCHJAB) { + if (m_curFightMove == FIGHTMOVE_PUNCHJAB) { choosenMove = FIGHTMOVE_PUNCH; - } else*/ if (m_curFightMove != FIGHTMOVE_PUNCH || randVal != 1) { - //if (randVal == 2) + } else if (m_curFightMove != FIGHTMOVE_PUNCH || randVal != 1) { + if (randVal == 2) choosenMove = FIGHTMOVE_PUNCH; - //else - // choosenMove = FIGHTMOVE_PUNCHJAB; + else + choosenMove = FIGHTMOVE_PUNCHJAB; } else { choosenMove = FIGHTMOVE_LONGKICK; } @@ -1830,7 +1823,6 @@ CPed::ChooseAttackPlayer(uint8 buttonPressure, bool fightWithWeapon) choosenMove = FIGHTMOVE_LONGKICK; } break; -/* LCS: removed case 1: choosenMove = FIGHTMOVE_FWDLEFT; break; @@ -1843,7 +1835,6 @@ CPed::ChooseAttackPlayer(uint8 buttonPressure, bool fightWithWeapon) case 4: choosenMove = FIGHTMOVE_BACKRIGHT; break; -*/ default: choosenMove = FIGHTMOVE_FWDRIGHT; break; @@ -1909,22 +1900,20 @@ CPed::ChooseAttackPlayer(uint8 buttonPressure, bool fightWithWeapon) #else switch (CGeneral::GetRandomNumberInRange(0,3)) { #endif - // LCS: hack hack - // case 0: - // choosenMove = FIGHTMOVE_PUNCHJAB; - // break; - default: + case 0: + choosenMove = FIGHTMOVE_PUNCHJAB; + break; case 1: choosenMove = FIGHTMOVE_PUNCH; break; case 2: choosenMove = FIGHTMOVE_LONGKICK; break; - // case 3: - // choosenMove = FIGHTMOVE_KNEE; - // break; - // default: - // break; + case 3: + choosenMove = FIGHTMOVE_KNEE; + break; + default: + break; } } return choosenMove; @@ -1967,7 +1956,6 @@ CPed::EndFight(uint8 endType) void CPed::PlayHitSound(CPed *hitTo) { -#if 0 // LCS: temporarily removed // That was very complicated to reverse for me... // First index is our fight move ID (from 1 to 17, total 17), second is the one of we fight with (from 18 to 27, total 10). enum { @@ -2038,7 +2026,6 @@ CPed::PlayHitSound(CPed *hitTo) if (soundId != NO_SND) DMAudio.PlayOneShot(m_audioEntityId, soundId, (weapon << 8) | ENTITY_TYPE_PED); -#endif } bool @@ -2170,9 +2157,8 @@ CPed::FightHitPed(CPed *victim, CVector &touchPoint, CVector &dir, int16 piece) bool brassKnucklePunch = false; if (GetWeapon()->m_eWeaponType == WEAPONTYPE_BRASSKNUCKLE) { - // LCS: removed - if (/*m_curFightMove == FIGHTMOVE_PUNCHHOOK || m_curFightMove == FIGHTMOVE_PUNCHJAB || m_curFightMove == FIGHTMOVE_BACKLEFT || - m_curFightMove == FIGHTMOVE_STDPUNCH ||*/ m_curFightMove == FIGHTMOVE_PUNCH) { + if (m_curFightMove == FIGHTMOVE_PUNCHHOOK || m_curFightMove == FIGHTMOVE_PUNCHJAB || m_curFightMove == FIGHTMOVE_BACKLEFT || + m_curFightMove == FIGHTMOVE_STDPUNCH || m_curFightMove == FIGHTMOVE_PUNCH) { brassKnucklePunch = true; damageMult *= 1.5f; } @@ -4160,7 +4146,7 @@ CPed::RemoveWeaponAnims(int unused, float animDelta) CAnimBlendAssociation *weaponAssoc; //CWeaponInfo::GetWeaponInfo(unused); - weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_1); + weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_FIRE); if (weaponAssoc) { weaponAssoc->blendDelta = animDelta; weaponAssoc->flags |= ASSOC_DELETEFADEDOUT; @@ -4175,7 +4161,7 @@ CPed::RemoveWeaponAnims(int unused, float animDelta) weaponAssoc->blendDelta = animDelta; weaponAssoc->flags |= ASSOC_DELETEFADEDOUT; } - weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_EXTRA1); + weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_RELOAD); if (weaponAssoc) { weaponAssoc->blendDelta = animDelta; weaponAssoc->flags |= ASSOC_DELETEFADEDOUT; diff --git a/src/peds/PedType.h b/src/peds/PedType.h index 776dd14..a4698bb 100644 --- a/src/peds/PedType.h +++ b/src/peds/PedType.h @@ -95,9 +95,6 @@ VALIDATE_SIZE(CPedType, 0x20); enum ePedStats { - PEDSTAT_COWARD, - PEDSTAT_SHOPPER, - PEDSTAT_OLDSHOPPER, PEDSTAT_PLAYER, PEDSTAT_COP, PEDSTAT_MEDIC, @@ -109,8 +106,6 @@ enum ePedStats PEDSTAT_GANG5, PEDSTAT_GANG6, PEDSTAT_GANG7, - PEDSTAT_GANG8, - PEDSTAT_GANG9, PEDSTAT_STREET_GUY, PEDSTAT_SUIT_GUY, PEDSTAT_SENSIBLE_GUY, @@ -133,10 +128,13 @@ enum ePedStats PEDSTAT_PSYCHO, PEDSTAT_STEWARD, PEDSTAT_SPORTSFAN, + PEDSTAT_SHOPPER, + PEDSTAT_OLDSHOPPER, PEDSTAT_BEACH_GUY, PEDSTAT_BEACH_GIRL, PEDSTAT_SKATER, PEDSTAT_STD_MISSION, + PEDSTAT_COWARD, NUM_PEDSTATS }; diff --git a/src/peds/PlayerPed.cpp b/src/peds/PlayerPed.cpp index 78d45f9..9c668cf 100644 --- a/src/peds/PlayerPed.cpp +++ b/src/peds/PlayerPed.cpp @@ -1138,8 +1138,7 @@ void CPlayerPed::ProcessAnimGroups(void) { AssocGroupId groupToSet; -//#ifdef PC_PLAYER_CONTROLS -#if 0 // chainsaw anims missing in LCS +#ifdef PC_PLAYER_CONTROLS if ((m_fWalkAngle <= -DEGTORAD(50.0f) || m_fWalkAngle >= DEGTORAD(50.0f)) && TheCamera.Cams[TheCamera.ActiveCam].Using3rdPersonMouseCam() && CanStrafeOrMouseControl()) { diff --git a/src/peds/Population.cpp b/src/peds/Population.cpp index 0119b47..5603e2c 100644 --- a/src/peds/Population.cpp +++ b/src/peds/Population.cpp @@ -1205,11 +1205,10 @@ CPopulation::IsSkateable(CVector const& pos) return foundCol.surfaceB == SURFACE_TARMAC || foundCol.surfaceB == SURFACE_PAVEMENT; } -//--LCS: done bool CPopulation::CanJeerAtStripper(int32 model) { - return false; + return model == MI_WMOBE || model == MI_WMYBE || model == MI_WMOST || model == MI_BMYBB; } void @@ -1241,38 +1240,46 @@ bool CPopulation::IsMale(int32 model) { switch (model) { - // TODO(LCS): do this right - case MI_TAXI_D: - case MI_PIMP: - case MI_CRIMINAL01: - case MI_CRIMINAL02: - case MI_MALE02: - case MI_MALE03: - case MI_P_MAN1: - case MI_P_MAN2: - case MI_CT_MAN1: - case MI_CT_MAN2: - case MI_LI_MAN1: - case MI_LI_MAN2: - case MI_DOCKER1: - case MI_DOCKER2: - case MI_SCUM_MAN: - case MI_WORKER1: - case MI_WORKER2: - case MI_B_MAN1: - case MI_B_MAN2: - case MI_B_MAN3: - case MI_MOD_MAN: - case MI_ST_MAN: - case MI_FAN_MAN1: - case MI_FAN_MAN2: - case MI_HOS_MAN: - case MI_CONST1: - case MI_CONST2: - case MI_STUD_MAN: - case MI_CAS_MAN: - case MI_CAMP_MAN: - case MI_HITMAN: + case MI_HMYST: + case MI_HMOST: + case MI_HMYRI: + case MI_HMORI: + case MI_HMYBE: + case MI_HMOBE: + case MI_HMOTR: + case MI_HMYAP: + case MI_HMOCA: + case MI_BMODK: + case MI_BMYKR: + case MI_BMYST: + case MI_BMOST: + case MI_BMYRI: + case MI_BMYBE: + case MI_BMOBE: + case MI_BMYBU: + case MI_BMOTR: + case MI_BMYPI: + case MI_BMYBB: + case MI_WMYCR: + case MI_WMYST: + case MI_WMOST: + case MI_WMYRI: + case MI_WMORI: + case MI_WMYBE: + case MI_WMOBE: + case MI_WMYCW: + case MI_WMYGO: + case MI_WMOGO: + case MI_WMYLG: + case MI_WMYBU: + case MI_WMOBU: + case MI_WMOTR: + case MI_WMYPI: + case MI_WMOCA: + case MI_WMYJG: + case MI_WMYSK: + + // BUG? Why no JMOTO? return true; default: return false; @@ -1283,34 +1290,41 @@ bool CPopulation::IsFemale(int32 model) { switch (model) { - // TODO(LCS): do this right - case MI_FEMALE01: - case MI_FEMALE02: - case MI_FEMALE03: - case MI_FATFEMALE01: - case MI_FATFEMALE02: - case MI_PROSTITUTE: - case MI_PROSTITUTE2: - case MI_P_WOM1: - case MI_P_WOM2: - case MI_CT_WOM1: - case MI_CT_WOM2: - case MI_LI_WOM1: - case MI_LI_WOM2: - case MI_SCUM_WOM: - case MI_B_WOM1: - case MI_B_WOM2: - case MI_B_WOM3: - case MI_MOD_WOM: - case MI_ST_WOM: - case MI_FAN_WOM: - case MI_HOS_WOM: - case MI_SHOPPER1: - case MI_SHOPPER2: - case MI_SHOPPER3: - case MI_STUD_WOM: - case MI_CAS_WOM: - case MI_CAMP_WOM: + case MI_HFYST: + case MI_HFOST: + case MI_HFYRI: + case MI_HFORI: + case MI_HFYBE: + case MI_HFOBE: + case MI_HFYBU: + case MI_HFYMD: + case MI_HFYCG: + case MI_HFYPR: + case MI_HFOTR: + case MI_BFYST: + case MI_BFOST: + case MI_BFYRI: + case MI_BFORI: + case MI_BFYBE: + case MI_BFOBE: + case MI_BFYPR: + case MI_BFOTR: + case MI_WFYST: + case MI_WFOST: + case MI_WFYRI: + case MI_WFORI: + case MI_WFYBE: + case MI_WFOBE: + case MI_WFOGO: + case MI_WFYLG: + case MI_WFYBU: + case MI_WFYPR: + case MI_WFOTR: + case MI_WFYJG: + case MI_WFYSK: + case MI_WFYSH: + case MI_WFOSH: + case MI_JFOTO: return true; default: return false; @@ -1320,7 +1334,23 @@ CPopulation::IsFemale(int32 model) bool CPopulation::IsSunbather(int32 model) { - return false; + switch (model) { + case MI_HFYBE: + case MI_HFOBE: + case MI_HMYBE: + case MI_HMOBE: + case MI_BFYBE: + case MI_BMYBE: + case MI_BFOBE: + case MI_BMOBE: + case MI_WFYBE: + case MI_WMYBE: + case MI_WFOBE: + case MI_WMOBE: + return true; + default: + return false; + } } int32 @@ -1332,13 +1362,13 @@ CPopulation::ComputeRandomisedGangSize(void) bool CPopulation::CanSolicitPlayerInCar(int32 model) { - return model == MI_PROSTITUTE || model == MI_PROSTITUTE2; + return model == MI_HFYPR || model == MI_BFYPR || model == MI_WFYPR; } bool CPopulation::CanSolicitPlayerOnFoot(int32 model) { - return model == MI_B_WOM3 || model == MI_FEMALE01 || model == MI_FEMALE02 || model == MI_FEMALE03; + return model == MI_HFYMD || model == MI_HFYCG || model == MI_BFOTR || model == MI_BMOTR || model == MI_WFOTR || model == MI_WMOTR; } bool diff --git a/src/render/Antennas.cpp b/src/render/Antennas.cpp index 452069a..5e30aca 100644 --- a/src/render/Antennas.cpp +++ b/src/render/Antennas.cpp @@ -1,5 +1,6 @@ #include "common.h" +#include "main.h" #include "Antennas.h" CAntenna CAntennas::aAntennas[NUMANTENNAS]; @@ -70,6 +71,7 @@ CAntennas::Render(void) { int i, j; + PUSH_RENDERGROUP("CAntennas::Render"); for(i = 0; i < NUMANTENNAS; i++){ if(!aAntennas[i].active) continue; @@ -101,6 +103,8 @@ CAntennas::Render(void) } RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)FALSE); + + POP_RENDERGROUP(); } void diff --git a/src/render/Clouds.cpp b/src/render/Clouds.cpp index e3a8c86..9cd32c5 100644 --- a/src/render/Clouds.cpp +++ b/src/render/Clouds.cpp @@ -1,5 +1,6 @@ #include "common.h" +#include "main.h" #include "Sprite.h" #include "Sprite2d.h" #include "General.h" @@ -119,6 +120,8 @@ CClouds::Render(void) if(!CGame::CanSeeOutSideFromCurrArea()) return; + PUSH_RENDERGROUP("CClouds::Render"); + CCoronas::SunBlockedByClouds = false; RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)FALSE); @@ -301,6 +304,8 @@ CClouds::Render(void) RwRenderStateSet(rwRENDERSTATEZTESTENABLE, (void*)TRUE); RwRenderStateSet(rwRENDERSTATESRCBLEND, (void*)rwBLENDSRCALPHA); RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void*)rwBLENDINVSRCALPHA); + + POP_RENDERGROUP(); } bool @@ -313,6 +318,8 @@ void CClouds::RenderBackground(int16 topred, int16 topgreen, int16 topblue, int16 botred, int16 botgreen, int16 botblue, int16 alpha) { + PUSH_RENDERGROUP("CClouds::RenderBackground"); + CVector right = CrossProduct(TheCamera.GetUp(), TheCamera.GetForward()); right.Normalise(); float c = right.Magnitude2D(); @@ -415,6 +422,8 @@ CClouds::RenderBackground(int16 topred, int16 topgreen, int16 topblue, ms_colourBottom.g = fogg; ms_colourBottom.b = fogb; } + + POP_RENDERGROUP(); } void @@ -423,6 +432,8 @@ CClouds::RenderHorizon(void) if(UseDarkBackground()) return; + PUSH_RENDERGROUP("CClouds::RenderHorizon"); + ms_colourBottom.a = 230; ms_colourTop.a = 80; @@ -457,4 +468,6 @@ CClouds::RenderHorizon(void) CSprite2d::DrawAnyRect(0.0f, topleft, SCREEN_WIDTH, topright, 0.0f, botleft, SCREEN_WIDTH, botright, ms_colourBkGrd, ms_colourBkGrd, ms_colourBkGrd, ms_colourBkGrd); + + POP_RENDERGROUP(); } diff --git a/src/render/Coronas.cpp b/src/render/Coronas.cpp index e3d3416..8b137aa 100644 --- a/src/render/Coronas.cpp +++ b/src/render/Coronas.cpp @@ -249,6 +249,8 @@ CCoronas::Render(void) int i, j; int screenw, screenh; + PUSH_RENDERGROUP("CCoronas::Render"); + screenw = RwRasterGetWidth(RwCameraGetRaster(Scene.camera)); screenh = RwRasterGetHeight(RwCameraGetRaster(Scene.camera)); @@ -432,6 +434,8 @@ CCoronas::Render(void) RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)FALSE); RwRenderStateSet(rwRENDERSTATEZTESTENABLE, (void*)TRUE); RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)TRUE); + + POP_RENDERGROUP(); } void @@ -442,6 +446,8 @@ CCoronas::RenderReflections(void) CEntity *entity; if(CWeather::WetRoads > 0.0f){ + PUSH_RENDERGROUP("CCoronas::RenderReflections"); + CSprite::InitSpriteBuffer(); RwRenderStateSet(rwRENDERSTATEFOGENABLE, (void*)FALSE); @@ -517,6 +523,8 @@ CCoronas::RenderReflections(void) RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)FALSE); RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)TRUE); RwRenderStateSet(rwRENDERSTATEZTESTENABLE, (void*)TRUE); + + POP_RENDERGROUP(); }else{ for(i = 0; i < NUMCORONAS; i++) aCoronas[i].renderReflection = false; diff --git a/src/render/Fluff.cpp b/src/render/Fluff.cpp index e28ebc8..e92eee2 100644 --- a/src/render/Fluff.cpp +++ b/src/render/Fluff.cpp @@ -417,9 +417,8 @@ void CMovingThings::Init() } } -// LCS: removed -// CEscalators::Init(); -// aScrollBars[0].Init(CVector(-1069.209f, 1320.126f, 18.848f), CVector(-1069.209f, 1342.299f, 22.612f), SCROLL_ARENA_STRING, 128, 255, 0, 0.3f); + CEscalators::Init(); + aScrollBars[0].Init(CVector(-1069.209f, 1320.126f, 18.848f), CVector(-1069.209f, 1342.299f, 22.612f), SCROLL_ARENA_STRING, 128, 255, 0, 0.3f); } void CMovingThings::Shutdown() @@ -460,6 +459,7 @@ void CMovingThings::Update() void CMovingThings::Render() { + PUSH_RENDERGROUP("CMovingThings::Render"); CSmokeTrails::Update(); int i; @@ -472,6 +472,7 @@ void CMovingThings::Render() CPlaneTrails::Render(); CSmokeTrails::Render(); CPlaneBanners::Render(); + POP_RENDERGROUP(); } void CMovingThings::RegisterOne(CEntity *pEnt, uint16 nType) { diff --git a/src/render/Font.cpp b/src/render/Font.cpp index b38b0ef..9c49924 100644 --- a/src/render/Font.cpp +++ b/src/render/Font.cpp @@ -1,6 +1,5 @@ #include "common.h" -#include "main.h" #include "Sprite2d.h" #include "TxdStore.h" #include "Font.h" @@ -8,9 +7,6 @@ #include "FileMgr.h" #endif #include "Timer.h" -#include "Frontend.h" - -//--LCS: todo scaling (needs CSprite2d reversed), SuspendHandler, ReplaceGermanSZ, volatile mem, other todos void AsciiToUnicode(const char *src, wchar *dst) @@ -53,48 +49,225 @@ UnicodeMakeUpperCase(wchar *dst, const wchar *src) //idk what to do with it, see } CFontDetails CFont::Details; -bool16 CFont::NewLine; +int16 CFont::NewLine; CSprite2d CFont::Sprite[MAX_FONTS]; CFontRenderState CFont::RenderState; -int16 CFont::Size[MAX_FONTS][419] = { - {15, 6, 8, 24, 22, 28, 28, 2, 8, 8, 12, 24, 8, 10, 8, 12, 24, 8, 22, 20, 24, 22, 22, 22, 24, 22, 8, 8, 22, 22, 24, 16, 28, 26, 20, 22, 22, 18, 18, - 24, 22, 4, 16, 20, 18, 26, 20, 24, 20, 24, 22, 24, 20, 20, 26, 32, 26, 26, 20, 10, 12, 8, 22, 18, 6, 26, 20, 22, 22, 18, 18, 24, 22, 4, 16, 20, 18, 26, - 20, 24, 20, 24, 22, 24, 20, 20, 26, 32, 26, 26, 20, 10, 12, 8, 22, 18, 26, 26, 26, 26, 26, 26, 26, 22, 18, 18, 18, 18, 8, 8, 10, 10, 26, 20, 24, 24, 24, - 24, 24, 22, 24, 20, 20, 20, 20, 26, 22, 20, 26, 26, 26, 26, 26, 26, 26, 22, 18, 18, 18, 18, 8, 8, 10, 10, 26, 20, 24, 24, 24, 24, 24, 22, 24, 20, 20, 20, - 20, 26, 22, 24, 24, 8, 16, 10, 8, 28, 8, 8, 18, 16, 10, 28, 8, 28, 24, 6, 16, 22, 18, 24, 4, 14, 10, 26, 14, 16, 26, 12, 2, 16, 16, 32, 19, 19, 19, - 19, 19, 19, 19, 19, 24, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, -2, 0, -2, -2, 0, 0, 0, 0, -2, -2, -2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, -2, 0, -2, -2, 0, 0, 0, 0, -2, -2, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28}, - {10, 12, 20, 24, 28, 30, 28, 12, 14, 14, 20, 24, 12, 16, 10, 28, 26, 20, 24, 24, 26, 24, 24, 24, 24, 24, 12, 12, 22, 22, 24, 24, 32, 28, 24, 26, 26, 24, 22, - 28, 26, 10, 22, 26, 22, 30, 28, 28, 26, 30, 26, 26, 28, 26, 26, 32, 26, 26, 26, 14, 18, 14, 22, 22, 14, 22, 22, 22, 22, 22, 18, 22, 22, 10, 12, 20, 10, 28, - 20, 22, 22, 22, 20, 22, 20, 20, 20, 30, 20, 22, 20, 16, 10, 16, 20, 0, 28, 28, 28, 28, 28, 28, 32, 26, 24, 24, 24, 24, 14, 14, 18, 16, 30, 28, 28, 28, 28, - 28, 28, 20, 30, 26, 26, 26, 26, 28, 26, 22, 22, 22, 22, 22, 22, 22, 32, 22, 22, 22, 22, 22, 14, 14, 18, 16, 22, 20, 22, 22, 22, 22, 22, 22, 24, 20, 20, 20, - 20, 22, 22, 22, 26, 12, 18, 18, 12, 32, 12, 12, 18, 18, 18, 32, 12, 32, 28, 10, 22, 28, 24, 28, 10, 26, 16, 30, 16, 20, 30, 18, 14, 18, 24, 32, 30, 30, 30, - 30, 24, 28, 24, 20, 24, 20, 20, 22, 20, 20, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, -2, -2, 0, 0, 2, 0, 0, 0, 0, -2, -2, 0, 0, 0, -2, -2, -2, 0, -2, 0, -2, 0, 0, 0, 0, 0, 0, - 0, 0, -2, -2, 0, 0, -2, 0, -2, 1, 0, -2, -1, 0, 0, 0, -2, 0, 0, 0, -2, 0, 0, -2, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -2, -2, -2, -2, 0, 0, -2, 0, 0, 0, 0, -2, -2, -2, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28}, - {15, 8, 0, 0, 18, 0, 22, 8, 13, 13, 0, 0, 7, 0, 8, 22, 18, 17, 18, 18, 20, 18, 18, 18, 18, 18, 8, 18, 18, 18, 18, 18, 15, 18, 18, 8, 18, 18, 13, - 28, 18, 18, 18, 18, 18, 18, 20, 18, 19, 30, 18, 18, 18, 18, 18, 18, 0, 18, 0, 28, 18, 18, 18, 18, 0, 8, 8, 8, 8, 0, 18, 18, 18, 18, 0, 18, 0, 0, - 18, 18, 18, 18, 0, 0, 20, 30, 18, 8, 9, 9, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22} +#ifdef MORE_LANGUAGES +uint8 CFont::LanguageSet = FONT_LANGSET_EFIGS; +int32 CFont::Slot = -1; +#define JAP_TERMINATION (0x8000 | '~') + +int16 CFont::Size[LANGSET_MAX][MAX_FONTS][210] = { + { +#else +int16 CFont::Size[MAX_FONTS][210] = { +#endif + { + //FONT2 EFIGS + //SPC,!, $, %, &, ', [, ], +, , -, ., + 12, 9, 22, 17, 19, 19, 25, 4, 33, 33, 25, 35, 11, 10, 6, 33, + //0, 1, 2, 3, 4, 5, 6, 7, 8, 9, :, ??, + 18, 10, 17, 17, 17, 17, 17, 15, 12, 16, 5, 30, 30, 30, 30, 30, + // A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, + 12, 16, 19, 16, 19, 18, 18, 17, 22, 11, 17, 18, 18, 30, 22, 19, + //P, Q, R, S, T, U, V, W, X, Y, Z, ??, ??, ??, ¡, \, + #ifdef FIX_BUGS + 22, 19, 19, 20, 18, 19, 19, 29, 19, 18, 19, 19, 33, 33, 10, 19, + #else + 22, 19, 19, 20, 18, 19, 19, 29, 19, 18, 19, 19, 33, 33, 19, 19, + #endif + //??,a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, + 12, 14, 11, 11, 16, 11, 12, 14, 14, 10, 13, 12, 10, 19, 18, 12, + //p, q, r, s, t, u, v, w, x, y, z, ??, ??, ??, ??, ??, + 16, 13, 13, 11, 12, 15, 12, 15, 13, 12, 12, 37, 33, 37, 35, 37, + //À, Á, Â, Ä, Æ, Ç, È, É, Ê, Ë, Ì, Í, Î, Ï, Ò, Ó, + 16, 16, 16, 16, 33, 17, 18, 18, 18, 18, 11, 11, 11, 11, 19, 19, + //Ô, Ö, Ù, Ú, Û, Ü, ß, à, á, â, ä, æ, ç, è, é, ê, + 19, 19, 19, 19, 19, 19, 15, 14, 14, 14, 14, 20, 14, 11, 11, 11, + //ë, ì, í, î, ï, ò, ó, ô, ö, ù, ú, û, ü, Ñ, ñ, ¿, + #ifdef FIX_BUGS + 11, 10, 10, 10, 10, 12, 12, 12, 12, 15, 15, 15, 15, 22, 18, 21, + #else + 11, 10, 10, 10, 10, 12, 12, 12, 12, 15, 15, 15, 15, 24, 18, 21, + #endif + //i,BLANKS + 10, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + //space, unprop + 19, 16 + }, + { + //FONT1 EFIGS + //Characters with a '2' refer to the Pricedown font. + //Characters that are referred as '*I' are characters that contain icons for PS2/XBOX, but contain regular characters on PC + //in order to display them properly in the Keyboard controls menu. + //!2,!, *I,(R), $, %, &, ', [, ], *I, +, , -, ., *I, + 15, 7, 31, 25, 20, 23, 21, 7, 11, 10, 26, 14, 6, 12, 6, 26, + //0, 1, 2, 3, 4, 5, 6, 7, 8, 9, :, *I, *I, *I, *I, ?, + 20, 7, 20, 20, 21, 20, 20, 19, 21, 20, 8, 30, 24, 30, 24, 19, + //TM,A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, + 20, 22, 22, 21, 22, 18, 18, 22, 22, 9, 14, 21, 18, 27, 21, 24, + //P, Q, R, S, T, U, V, W, X, Y, Z, *I, \, *I, ¡, °, + #ifdef FIX_BUGS + 22, 22, 23, 20, 19, 23, 22, 31, 23, 23, 21, 25, 13, 30, 7, 19, + #else + 22, 22, 23, 20, 19, 23, 22, 31, 23, 23, 21, 25, 13, 30, 10, 19, + #endif + //(C),a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, + 10, 17, 17, 16, 17, 17, 11, 17, 17, 7, 7, 18, 7, 25, 17, 17, + //p, q, r, s, t, u, v, w, x, y, z, *I, *I, $2, (2, )2, + 17, 17, 11, 17, 11, 17, 18, 25, 19, 18, 17, 28, 26, 20, 15, 15, + //À, Á, Â, Ä, Æ, Ç, È, É, Ê, Ë, Ì, Í, Î, Ï, Ò, Ó, + 20, 20, 20, 20, 29, 22, 19, 19, 19, 19, 9, 9, 9, 9, 23, 23, + //Ô, Ö, Ù, Ú, Û, Ü, ß, à, á, â, ä, æ, ç, è, é, ê, + 23, 23, 24, 24, 24, 24, 20, 19, 17, 17, 17, 30, 16, 17, 17, 17, + //ë, ì, í, î, ï, ò, ó, ô, ö, ù, ú, û, ü, Ñ, ñ, ¿, + #ifdef FIX_BUGS + 17, 11, 11, 15, 12, 17, 17, 17, 17, 17, 17, 17, 17, 21, 17, 19, + #else + 17, 11, 11, 15, 12, 17, 17, 17, 17, 17, 17, 17, 17, 19, 20, 20, + #endif + //02,12,22, 32, 42, 52, 62, 72, 82, 92, :2, A2, B2, C2, D2, E2, + 20, 18, 19, 19, 21, 19, 19, 19, 19, 19, 16, 19, 19, 19, 20, 19, + //F2,G2,H2, I2, J2, K2, L2, M2, N2, O2, P2, Q2, R2, S2, T2, U2, + 16, 19, 19, 9, 19, 20, 14, 29, 19, 19, 19, 19, 19, 19, 21, 19, + //V2,W2,X2, Y2, Z2, À2, Á2, Â2, Ä2, Æ2, Ç2, È2, É2, Ê2, Ë2, Ì2, + 20, 32, 20, 19, 19, 19, 19, 19, 19, 29, 19, 19, 19, 19, 19, 9, + //Í2,Î2,Ï2, Ò2, Ó2, Ô2, Ö2, Ù2, Ú2, Û2, Ü2, ß2, Ñ2, ¿2, '2, .2, + #ifdef FIX_BUGS + 9, 9, 9, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 10, 9, + #else + 9, 9, 9, 19, 19, 19, 19, 19, 19, 19, 19, 19, 21, 21, 10, 9, + #endif + //space, unprop + 10, 20 + } + +#ifdef MORE_LANGUAGES + }, + { + { + 5, 9, 9, 0, 17, 17, 23, 3, 21, 18, 0, 8, 3, 8, 3, 0, + 16, 9, 16, 16, 15, 19, 15, 14, 17, 17, 4, 4, 0, 0, 0, 17, + 19, 17, 19, 15, 21, 18, 19, 16, 21, 13, 15, 21, 20, 28, 21, 18, + 22, 17, 21, 20, 18, 18, 20, 26, 22, 18, 18, 0, 8, 0, 9, 8, + 0, 14, 11, 12, 16, 11, 13, 13, 15, 10, 14, 15, 11, 21, 17, 10, + 20, 15, 12, 12, 16, 17, 13, 16, 13, 21, 11, 0, 0, 0, 0, 0, + 20, 19, 19, 22, 27, 15, 18, 18, 20, 26, 21, 23, 17, 22, 21, 17, + 26, 25, 26, 17, 20, 26, 17, 16, 11, 12, 13, 21, 11, 17, 17, 12, + 21, 17, 17, 15, 24, 16, 10, 20, 23, 16, 7, 9, 16, 23, 12, 11, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, + 19, 16 + }, + { + 11, 5, 10, 15, 19, 22, 20, 5, 9, 8, 11, 12, 5, 12, 6, 12, + 19, 5, 18, 19, 20, 18, 19, 18, 20, 19, 5, 6, 26, 12, 30, 19, + 23, 21, 20, 20, 20, 16, 16, 21, 19, 5, 13, 19, 16, 24, 20, 21, + 20, 21, 20, 19, 17, 20, 21, 30, 22, 21, 20, 25, 13, 30, 5, 9, + 10, 15, 15, 14, 15, 16, 10, 15, 15, 5, 5, 15, 5, 23, 15, 16, + 15, 15, 9, 16, 10, 15, 17, 24, 18, 15, 15, 27, 5, 19, 2, 2, + 20, 20, 16, 23, 30, 19, 20, 20, 21, 24, 19, 19, 20, 23, 22, 19, + 27, 29, 25, 20, 20, 28, 24, 16, 16, 14, 19, 25, 16, 16, 16, 17, + 19, 16, 16, 17, 25, 19, 15, 23, 26, 21, 16, 14, 22, 20, 16, 19, + 15, 14, 15, 16, 17, 15, 15, 15, 15, 15, 7, 15, 15, 15, 15, 15, + 13, 15, 15, 7, 15, 16, 13, 23, 15, 15, 15, 15, 15, 15, 17, 15, + 16, 24, 17, 17, 17, 15, 15, 13, 20, 23, 15, 17, 17, 16, 24, 15, + 15, 15, 23, 18, 15, 23, 26, 23, 16, 15, 23, 15, 15, 19, 2, 2, + 10, 20 + }, + }, + { + { + //FONT2 EFIGS + //SPC,!, $, %, &, ', [, ], +, , -, ., + 12, 9, 22, 17, 19, 19, 25, 4, 33, 33, 25, 35, 11, 10, 6, 33, + //0, 1, 2, 3, 4, 5, 6, 7, 8, 9, :, ??, + 18, 10, 17, 17, 17, 17, 17, 15, 12, 16, 5, 30, 30, 30, 30, 30, + // A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, + 12, 16, 19, 16, 19, 18, 18, 17, 22, 11, 17, 18, 18, 30, 22, 19, + //P, Q, R, S, T, U, V, W, X, Y, Z, ??, ??, ??, ¡, \, + 22, 19, 19, 20, 18, 19, 19, 29, 19, 18, 19, 19, 33, 33, 10, 19, + //??,a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, + 12, 14, 11, 11, 16, 11, 12, 14, 14, 10, 13, 12, 10, 19, 18, 12, + //p, q, r, s, t, u, v, w, x, y, z, ??, ??, ??, ??, ??, + 16, 13, 13, 11, 12, 15, 12, 15, 13, 12, 12, 37, 33, 37, 35, 37, + //À, Á, Â, Ä, Æ, Ç, È, É, Ê, Ë, Ì, Í, Î, Ï, Ò, Ó, + 16, 16, 16, 16, 33, 17, 18, 18, 18, 18, 11, 11, 11, 11, 19, 19, + //Ô, Ö, Ù, Ú, Û, Ü, ß, à, á, â, ä, æ, ç, è, é, ê, + 19, 19, 19, 19, 19, 19, 15, 14, 14, 14, 14, 20, 14, 11, 11, 11, + //ë, ì, í, î, ï, ò, ó, ô, ö, ù, ú, û, ü, Ñ, ñ, ¿, + 11, 10, 10, 10, 10, 12, 12, 12, 12, 15, 15, 15, 15, 22, 18, 21, + //i,BLANKS + 10, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + //space, unprop + 19, 16 + }, + { + //FONT1 EFIGS + //Characters with a '2' refer to the Pricedown font. + //Characters that are referred as '*I' are characters that contain icons for PS2/XBOX, but contain regular characters on PC + //in order to display them properly in the Keyboard controls menu. + //!2,!, *I,(R), $, %, &, ', [, ], *I, +, , -, ., *I, + 15, 7, 31, 25, 20, 23, 21, 7, 11, 10, 26, 14, 6, 12, 6, 26, + //0, 1, 2, 3, 4, 5, 6, 7, 8, 9, :, *I, *I, *I, *I, ?, + 20, 7, 20, 20, 21, 20, 20, 19, 21, 20, 8, 30, 24, 30, 24, 19, + //TM,A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, + 20, 22, 22, 21, 22, 18, 18, 22, 22, 9, 14, 21, 18, 27, 21, 24, + //P, Q, R, S, T, U, V, W, X, Y, Z, *I, \, *I, ¡, °, + 22, 22, 23, 20, 19, 23, 22, 31, 23, 23, 21, 25, 13, 30, 7, 19, + //(C),a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, + 10, 17, 17, 16, 17, 17, 11, 17, 17, 7, 7, 18, 7, 25, 17, 17, + //p, q, r, s, t, u, v, w, x, y, z, *I, *I, $2, (2, )2, + 17, 17, 11, 17, 11, 17, 18, 25, 19, 18, 17, 28, 26, 20, 15, 15, + //À, Á, Â, Ä, Æ, Ç, È, É, Ê, Ë, Ì, Í, Î, Ï, Ò, Ó, + 20, 20, 20, 20, 29, 22, 19, 19, 19, 19, 9, 9, 9, 9, 23, 23, + //Ô, Ö, Ù, Ú, Û, Ü, ß, à, á, â, ä, æ, ç, è, é, ê, + 23, 23, 24, 24, 24, 24, 20, 19, 17, 17, 17, 30, 16, 17, 17, 17, + //ë, ì, í, î, ï, ò, ó, ô, ö, ù, ú, û, ü, Ñ, ñ, ¿, + 17, 11, 11, 15, 12, 17, 17, 17, 17, 17, 17, 17, 17, 21, 17, 19, + //02,12,22, 32, 42, 52, 62, 72, 82, 92, :2, A2, B2, C2, D2, E2, + 20, 18, 19, 19, 21, 19, 19, 19, 19, 19, 16, 19, 19, 19, 20, 19, + //F2,G2,H2, I2, J2, K2, L2, M2, N2, O2, P2, Q2, R2, S2, T2, U2, + 16, 19, 19, 9, 19, 20, 14, 29, 19, 19, 19, 19, 19, 19, 21, 19, + //V2,W2,X2, Y2, Z2, À2, Á2, Â2, Ä2, Æ2, Ç2, È2, É2, Ê2, Ë2, Ì2, + 20, 32, 20, 19, 19, 19, 19, 19, 19, 29, 19, 19, 19, 19, 19, 9, + //Í2,Î2,Ï2, Ò2, Ó2, Ô2, Ö2, Ù2, Ú2, Û2, Ü2, ß2, Ñ2, ¿2, '2, .2, + 9, 9, 9, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 10, 9, + //space, unprop + 10, 20 + } + } +#endif }; - -int FontSizeIncrementers[] = { 4, -2, 2 }; +#ifdef MORE_LANGUAGES +int16 Size_jp[] = { + 15, 14, 16, 20, 19, 26, 22, 11, 18, 18, 27, 26, 13, //; 0 + 19, 20, 27, 19, 15, 19, 19, 21, 19, 20, 18, 19, 15, //; 13 + 13, 28, 15, 32, 15, 35, 15, 19, 19, 19, 19, 17, 16, //; 26 + 19, 20, 15, 19, 20, 14, 17, 19, 19, 19, 19, 19, 19, //; 39 + 19, 19, 20, 25, 20, 19, 19, 33, 31, 39, 37, 39, 37, //; 52 + 21, 21, 21, 19, 17, 15, 23, 21, 15, 19, 20, 16, 19, //; 65 + 19, 19, 20, 20, 17, 22, 19, 22, 22, 19, 22, 22, 23, //; 78 + 35, 35, 35, 35, 37, 19, 19, 19, 19, 29, 19, 19, 19, //; 91 + 19, 19, 9, 9, 9, 9, 19, 19, 19, 19, 19, 19, 19, 19, //; 104 + 19, 19, 19, 19, 19, 30, 19, 19, 19, 19, 19, 10, 10, //; 118 + 10, 10, 19, 19, 19, 19, 19, 19, 19, 19, 19, 23, 35, //; 131 + 12, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, //; 144 + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, //; 157 + 19, 19, 19, 11, 19, 19, 19, 19, 19, 19, 19, 19, 19, //; 170 + 19, 19, 19, 19, 19, 19, 19, 19, 19, 21 +}; +#endif wchar foreign_table[128] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -128,26 +301,44 @@ int CFont::PS2Symbol = BUTTON_NONE; int CFont::ButtonsSlot = -1; #endif // BUTTON_ICONS -//--TODO(LCS): volatile memory void CFont::Initialise(void) { int slot; - if (gMakeResources) + slot = CTxdStore::AddTxdSlot("fonts"); +#ifdef MORE_LANGUAGES + Slot = slot; + switch (LanguageSet) { - slot = CTxdStore::AddTxdSlot("fonts"); + case FONT_LANGSET_EFIGS: + default: CTxdStore::LoadTxd(slot, "MODELS/FONTS.TXD"); - CTxdStore::AddRef(slot); - CTxdStore::PushCurrentTxd(); - CTxdStore::SetCurrentTxd(slot); - Sprite[0].SetTexture("font2", "font2m"); - Sprite[1].SetTexture("font1", "font1m"); - Sprite[2].SetTexture("font3", "font3m"); - CTxdStore::PopCurrentTxd(); + break; + case FONT_LANGSET_POLISH: + CTxdStore::LoadTxd(slot, "MODELS/FONTS_P.TXD"); + break; + case FONT_LANGSET_RUSSIAN: + CTxdStore::LoadTxd(slot, "MODELS/FONTS_R.TXD"); + break; + case FONT_LANGSET_JAPANESE: + CTxdStore::LoadTxd(slot, "MODELS/FONTS_J.TXD"); + break; } - else - slot = CTxdStore::FindTxdSlot("fonts"); +#else + CTxdStore::LoadTxd(slot, "MODELS/FONTS.TXD"); +#endif + CTxdStore::AddRef(slot); + CTxdStore::PushCurrentTxd(); + CTxdStore::SetCurrentTxd(slot); + Sprite[0].SetTexture("font2", "font2m"); +#ifdef MORE_LANGUAGES + if (IsJapanese()) { + Sprite[1].SetTexture("FONTJAP", "FONTJAP_mask"); + Sprite[3].SetTexture("FONTJAP", "FONTJAP_mask"); + } +#endif // MORE_LANGUAGES + Sprite[1].SetTexture("font1", "font1m"); SetScale(1.0f, 1.0f); SetSlantRefPoint(SCREEN_WIDTH, 0.0f); SetSlant(0.0f); @@ -164,17 +355,7 @@ CFont::Initialise(void) SetRightJustifyWrap(0.0f); SetAlphaFade(255.0f); SetDropShadowPosition(0); - SetOutlineColor(CRGBA(0, 0, 0, 0)); - SetOutlineOn(0); - SetNewLineAdd(0); - SetNewLineAdd(2); - - /* - if (mspCompressedTexList) - { - // TODO (LCS): volatile shit - } - */ + CTxdStore::PopCurrentTxd(); #if !defined(GAMEPAD_MENU) && defined(BUTTON_ICONS) // loaded in CMenuManager with GAMEPAD_MENU defined @@ -237,9 +418,8 @@ CFont::ReloadFonts(uint8 set) if (Slot != -1 && LanguageSet != set) { Sprite[0].Delete(); Sprite[1].Delete(); - Sprite[2].Delete(); if (IsJapanese()) - Sprite[3].Delete(); + Sprite[2].Delete(); CTxdStore::PushCurrentTxd(); CTxdStore::RemoveTxd(Slot); switch (set) @@ -261,19 +441,15 @@ CFont::ReloadFonts(uint8 set) CTxdStore::SetCurrentTxd(Slot); Sprite[0].SetTexture("font2", "font2_mask"); if (set == FONT_LANGSET_JAPANESE) { - Sprite[1].SetTexture("FONTJAP", "FONTJAP_mask"); - Sprite[3].SetTexture("FONTJAP", "FONTJAP_mask"); + Sprite[2].SetTexture("FONTJAP", "FONTJAP_mask"); } - else - Sprite[1].SetTexture("pager", "pager_mask"); - Sprite[2].SetTexture("font1", "font1_mask"); + Sprite[1].SetTexture("font1", "font1_mask"); CTxdStore::PopCurrentTxd(); } LanguageSet = set; } #endif -//--TODO(LCS): gpFonts void CFont::Shutdown(void) { @@ -287,7 +463,6 @@ CFont::Shutdown(void) #endif Sprite[0].Delete(); Sprite[1].Delete(); - Sprite[2].Delete(); #ifdef MORE_LANGUAGES if (IsJapanese()) Sprite[3].Delete(); @@ -298,7 +473,6 @@ CFont::Shutdown(void) #endif } -//--LCS: Done void CFont::InitPerFrame(void) { @@ -341,39 +515,39 @@ CFont::DrawButton(float x, float y) } #endif -//--LCS: TODO (mostly done but could use some checking) void CFont::PrintChar(float x, float y, wchar c) { - if (!(c >= 0 && c < 209)) return; - bool bDontPrint = false; if(x <= 0.0f || x > SCREEN_WIDTH || - y <= -12.0f || y > SCREEN_HEIGHT) // BUG: game uses SCREENW again + y <= 0.0f || y > SCREEN_HEIGHT) // BUG: game uses SCREENW again return; bDontPrint = c == '\0'; float w = GetCharacterWidth(c) / 32.0f; - - if ( !RenderState.proportional && RenderState.rightJustify ) - x += (GetCharacterWidth(c) - GetCharacterWidth(c, true)) * RenderState.scaleX; - if (Details.bFontHalfTexture && c == 208) c = '\0'; - - float xoff = c % 16; float yoff = c / 16; - - // small float modifiers were left for pc +#ifdef MORE_LANGUAGES + if (IsJapaneseFont()) { + w = 21.0f; + xoff = (float)(c % 48); + yoff = c / 48; + } +#endif if(RenderState.style == FONT_BANK || RenderState.style == FONT_STANDARD){ if (bDontPrint) return; if (RenderState.slant == 0.0f) { +#ifdef FIX_BUGS if (c < 192) { +#else + if (c < 193) { +#endif CSprite2d::AddToBuffer( CRect(x, y, - x + 32.0f * RenderState.scaleX * 0.96f, + x + 32.0f * RenderState.scaleX * 1.0f, y + 40.0f * RenderState.scaleY * 0.5f), RenderState.color, xoff / 16.0f, yoff / 12.8f + 0.0021f, @@ -381,13 +555,10 @@ CFont::PrintChar(float x, float y, wchar c) xoff / 16.0f, (yoff + 1.0f) / 12.8f - 0.0021f, (xoff + 1.0f) / 16.0f - 0.001f, (yoff + 1.0f) / 12.8f - 0.0021f); } else { - float xScale = 0.54f; - if (FrontEndMenuManager.m_PrefsUseWideScreen) - xScale = 0.486f; CSprite2d::AddToBuffer( - CRect(x, y + RenderState.scaleY * 4.0f, - x + 32.0f * RenderState.scaleY * xScale * 0.96f, - y + 4.0f * RenderState.scaleY + 16.0f * RenderState.scaleY), + CRect(x, y, + x + 32.0f * RenderState.scaleX * 1.0f, + y + 33.0f * RenderState.scaleY * 0.5f), RenderState.color, xoff / 16.0f, yoff / 12.8f + 0.0021f, (xoff + 1.0f) / 16.0f - 0.001f, yoff / 12.8f + 0.0021f, @@ -397,13 +568,37 @@ CFont::PrintChar(float x, float y, wchar c) } else CSprite2d::AddToBuffer( CRect(x, y, - x + 32.0f * RenderState.scaleX * 0.96f, + x + 32.0f * RenderState.scaleX * 1.0f, y + 40.0f * RenderState.scaleY * 0.5f), RenderState.color, xoff / 16.0f, yoff / 12.8f + 0.00055f, (xoff + 1.0f) / 16.0f - 0.001f, yoff / 12.8f + 0.0021f + 0.01f, xoff / 16.0f, (yoff + 1.0f) / 12.8f - 0.009f, (xoff + 1.0f) / 16.0f - 0.001f, (yoff + 1.0f) / 12.8f - 0.0021f + 0.01f); +#ifdef MORE_LANGUAGES + /*}else if (IsJapaneseFont()) { + if (Details.dropShadowPosition != 0) { + CSprite2d::AddSpriteToBank(Details.bank + Details.style, // BUG: game doesn't add bank + CRect(x + SCREEN_SCALE_X(Details.dropShadowPosition), + y + SCREEN_SCALE_Y(Details.dropShadowPosition), + x + SCREEN_SCALE_X(Details.dropShadowPosition) + 32.0f * Details.scaleX * 1.0f, + y + SCREEN_SCALE_Y(Details.dropShadowPosition) + 40.0f * Details.scaleY / 2.75f), + Details.dropColor, + xoff * w / 1024.0f, yoff / 25.6f, + xoff * w / 1024.0f + (1.0f / 48.0f) - 0.001f, yoff / 25.6f, + xoff * w / 1024.0f, (yoff + 1.0f) / 25.6f, + xoff * w / 1024.0f + (1.0f / 48.0f) - 0.001f, (yoff + 1.0f) / 25.6f - 0.0001f); + } + CSprite2d::AddSpriteToBank(Details.bank + Details.style, // BUG: game doesn't add bank + CRect(x, y, + x + 32.0f * Details.scaleX * 1.0f, + y + 40.0f * Details.scaleY / 2.75f), + Details.color, + xoff * w / 1024.0f, yoff / 25.6f, + xoff * w / 1024.0f + (1.0f / 48.0f) - 0.001f, yoff / 25.6f, + xoff * w / 1024.0f, (yoff + 1.0f) / 25.6f - 0.002f, + xoff * w / 1024.0f + (1.0f / 48.0f) - 0.001f, (yoff + 1.0f) / 25.6f - 0.0001f);*/ +#endif } else { if (bDontPrint) return; CSprite2d::AddToBuffer( @@ -411,10 +606,10 @@ CFont::PrintChar(float x, float y, wchar c) x + 32.0f * RenderState.scaleX * w, y + 32.0f * RenderState.scaleY * 0.5f), RenderState.color, - xoff / 16.0f, yoff / 6.4f, - (xoff + w) / 16.0f, yoff / 6.4f, - xoff / 16.0f, (yoff + 1.0f) / 6.4f, - (xoff + w) / 16.0f, (yoff + 1.0f) / 6.4f); + xoff / 16.0f, yoff / 16.0f, + (xoff + w) / 16.0f, yoff / 16.0f, + xoff / 16.0f, (yoff + 1.0f) / 16.0f, + (xoff + w) / 16.0f - 0.0001f, (yoff + 1.0f) / 16.0f - 0.0001f); } } @@ -440,7 +635,6 @@ bool CFont::IsAnsiCharacter(wchar *s) } #endif -//--LCS: TODO (mostly done but could use some checking) void CFont::RenderFontBuffer() { @@ -453,7 +647,7 @@ CFont::RenderFontBuffer() bool bFlash = false; Sprite[RenderState.style].SetRenderState(); - RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE); // TODO: not in lcs + RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE); RenderState = *(CFontRenderState*)&FontRenderStateBuf[0]; textPosX = RenderState.fTextPosX; textPosY = RenderState.fTextPosY; @@ -495,15 +689,16 @@ CFont::RenderFontBuffer() } Details.color.alpha = Details.bFlashState ? 0 : 255; } - if (!RenderState.bIsShadow && !RenderState.bOutlineOn) + if (!RenderState.bIsShadow) RenderState.color = color; } wchar c = *pRenderStateBufPointer.pStr; c -= ' '; - if (c == 200) c = '^'; - if (c == 201) c = '>'; if (RenderState.bFontHalfTexture) - c = FindNewCharacter(c); + c = FindNewCharacter(c); + else if (c > 155) + c = '\0'; + if (RenderState.slant != 0.0f) textPosY = (RenderState.slantRefX - textPosX) * RenderState.slant + RenderState.slantRefY; PrintChar(textPosX, textPosY, c); @@ -512,11 +707,11 @@ CFont::RenderFontBuffer() PrintChar(textPosX + 2.0f, textPosY, c); textPosX += 2.0f; } +#ifdef FIX_BUGS + // PS2 uses different chars for some symbols + if (!RenderState.bFontHalfTexture && c == 30) c = 61; // wanted star +#endif textPosX += RenderState.scaleX * GetCharacterWidth(c); -//#ifdef FIX_BUGS -// // PS2 uses different chars for some symbols -// if (!RenderState.bFontHalfTexture && c == 30) c = 61; // wanted star -//#endif if (c == '\0') textPosX += RenderState.fExtraSpace; } @@ -524,8 +719,50 @@ CFont::RenderFontBuffer() FontRenderStatePointer.pRenderState = (CFontRenderState*)FontRenderStateBuf; } +#if 0 //def MORE_LANGUAGES +bool +CFont::PrintString(float x, float y, wchar *start, wchar *&end, float spwidth, float japX) +{ + wchar *s, c, unused; -//--LCS: TODO + if (IsJapanese()) { + float jx = 0.0f; + for (s = start; s < end; s++) { + if (*s == JAP_TERMINATION || *s == '~') + s = ParseToken(s, &unused, true); + if (NewLine) { + NewLine = false; + break; + } + jx += GetCharacterSize(*s - ' '); + } + s = start; + if (Details.centre) + x = japX - jx / 2.0f; + else if (Details.rightJustify) + x = japX - jx; + } + + for (s = start; s < end; s++) { + if (*s == '~' || (IsJapanese() && *s == JAP_TERMINATION)) + s = ParseToken(s, &unused); + if (NewLine && IsJapanese()) { + NewLine = false; + end = s; + return true; + } + c = *s - ' '; + if (Details.slant != 0.0f && !IsJapanese()) + y = (Details.slantRefX - x) * Details.slant + Details.slantRefY; + + PrintChar(x, y, c); + x += GetCharacterSize(c); + if (c == 0 && (!NewLine || !IsJapanese())) // space + x += spwidth; + } + return false; +} +#else void CFont::PrintString(float x, float y, uint32, wchar *start, wchar *end, float spwidth) { @@ -536,38 +773,26 @@ CFont::PrintString(float x, float y, uint32, wchar *start, wchar *end, float spw RenderState.style = Details.style; } - if (Details.outlineColor.a != 0) { + float dropShadowPosition = Details.dropShadowPosition; + if (dropShadowPosition != 0.0f && (Details.style == FONT_BANK || Details.style == FONT_STANDARD)) { CRGBA color = Details.color; - Details.color = Details.outlineColor; - Details.bOutlineOn = true; - Details.outlineColor.a = 0; + Details.color = Details.dropColor; Details.dropShadowPosition = 0; - Details.bIsShadow = false; - PrintString(x, y, Details.anonymous_25, start, end, spwidth); - Details.color = color; - Details.bOutlineOn = false; - } else { - float dropShadowPosition = Details.dropShadowPosition; - if (dropShadowPosition != 0.0f && (Details.style == FONT_BANK || Details.style == FONT_STANDARD)) { - CRGBA color = Details.color; - Details.color = Details.dropColor; - Details.dropShadowPosition = 0; - Details.bIsShadow = true; - if (Details.slant != 0.0f) { - Details.slantRefX += SCREEN_SCALE_X(dropShadowPosition); - Details.slantRefY += SCREEN_SCALE_Y(dropShadowPosition); - PrintString(SCREEN_SCALE_X(dropShadowPosition) + x, SCREEN_SCALE_Y(dropShadowPosition) + y, Details.anonymous_25, start, end, spwidth); - Details.slantRefX -= SCREEN_SCALE_X(dropShadowPosition); - Details.slantRefY -= SCREEN_SCALE_Y(dropShadowPosition); - } else { - PrintString(SCREEN_SCALE_X(dropShadowPosition) + x, SCREEN_SCALE_Y(dropShadowPosition) + y, Details.anonymous_25, start, end, spwidth); - } - Details.color = color; - Details.dropShadowPosition = dropShadowPosition; - Details.bIsShadow = false; + Details.bIsShadow = true; + if (Details.slant != 0.0f) { + Details.slantRefX += SCREEN_SCALE_X(dropShadowPosition); + Details.slantRefY += SCREEN_SCALE_Y(dropShadowPosition); + PrintString(SCREEN_SCALE_X(dropShadowPosition) + x, SCREEN_SCALE_Y(dropShadowPosition) + y, Details.anonymous_25, start, end, spwidth); + Details.slantRefX -= SCREEN_SCALE_X(dropShadowPosition); + Details.slantRefY -= SCREEN_SCALE_Y(dropShadowPosition); + } else { + PrintString(SCREEN_SCALE_X(dropShadowPosition) + x, SCREEN_SCALE_Y(dropShadowPosition) + y, Details.anonymous_25, start, end, spwidth); } + Details.color = color; + Details.dropShadowPosition = dropShadowPosition; + Details.bIsShadow = false; } - if ((uintptr)FontRenderStatePointer.pStr >= (uintptr)&FontRenderStateBuf[ARRAY_SIZE(FontRenderStateBuf)] - sizeof(wchar) * (end - start + 2) - sizeof(CFontRenderState)) + if (FontRenderStatePointer.pStr >= (wchar*)&FontRenderStateBuf[ARRAY_SIZE(FontRenderStateBuf)] - (end - start + 26)) // why 26? RenderFontBuffer(); CFontRenderState *pRenderState = FontRenderStatePointer.pRenderState; pRenderState->fTextPosX = x; @@ -603,18 +828,17 @@ CFont::PrintString(float x, float y, uint32, wchar *start, wchar *end, float spw *(FontRenderStatePointer.pStr++) = '\0'; FontRenderStatePointer.Align(); } +#endif -// LCS: Done void CFont::PrintStringFromBottom(float x, float y, wchar *str) { - y -= (32.0f * Details.scaleY / 2.0f + Details.line * Details.scaleY) * GetNumberLines(x, y, str); + y -= (32.0f * Details.scaleY / 2.0f + 2.0f * Details.scaleY) * GetNumberLines(x, y, str); if (Details.slant != 0.0f) y -= ((Details.slantRefX - x) * Details.slant + Details.slantRefY); PrintString(x, y, str); } -//--LCS: TODO void CFont::PrintString(float xstart, float ystart, wchar *s) { @@ -625,8 +849,7 @@ CFont::PrintString(float xstart, float ystart, wchar *s) bool first; wchar *start, *t; - CRGBA outlineColor = Details.outlineColor; - CFont::SetFlashOff(); + Details.bFlash = false; if(*s == '*') return; @@ -673,7 +896,7 @@ CFont::PrintString(float xstart, float ystart, wchar *s) float xleft = Details.centre ? xstart - x/2 : Details.rightJustify ? xstart - x : xstart; -#ifdef MORE_LANGUAGES +#if 0//def MORE_LANGUAGES PrintString(xleft, y, start, s, spaceWidth, xstart); #else PrintString(xleft, y, Details.anonymous_25, start, s, spaceWidth); @@ -711,7 +934,7 @@ CFont::PrintString(float xstart, float ystart, wchar *s) #endif lineLength = x; s = t+1; -#ifdef MORE_LANGUAGES +#if 0 //def MORE_LANGUAGES if (IsJapaneseFont() && !*s) { x += GetStringWidth(s); if (IsAnsiCharacter(s)) @@ -743,7 +966,7 @@ CFont::PrintString(float xstart, float ystart, wchar *s) float xleft = Details.centre ? xstart - x/2 : Details.rightJustify ? xstart - x : xstart; -#ifdef MORE_LANGUAGES +#if 0 //def MORE_LANGUAGES if (PrintString(xleft, y, start, s, 0.0f, xstart) && IsJapaneseFont()) { start = s; if (!Details.centre && !Details.rightJustify) @@ -761,7 +984,6 @@ CFont::PrintString(float xstart, float ystart, wchar *s) } } -//--LCS: TODO int CFont::GetNumberLines(float xstart, float ystart, wchar *s) { @@ -770,7 +992,7 @@ CFont::GetNumberLines(float xstart, float ystart, wchar *s) wchar *t; n = 0; -#ifdef MORE_LANGUAGES +#if 0//def MORE_LANGUAGES bool bSomeJapBool = false; if (IsJapanese()) { @@ -863,7 +1085,6 @@ CFont::GetNumberLines(float xstart, float ystart, wchar *s) return n; } -//--LCS: TODO void CFont::GetTextRect(CRect *rect, float xstart, float ystart, wchar *s) { @@ -969,65 +1190,101 @@ CFont::GetTextRect(CRect *rect, float xstart, float ystart, wchar *s) } } -//--LCS: done -bool IsPunctuation(wchar c) -{ - switch (c) - { - case '!': - case '?': - case '.': - case ',': - case ':': - case ';': - - // these are lucid it seems - //case '$': - //case '/': - //case '\\': - return true; - } - return false; -} - -//--LCS: done float -CFont::GetCharacterWidth(wchar c, bool forceProportional) +CFont::GetCharacterWidth(wchar c) { - if (RenderState.proportional || forceProportional) - { - float inc = c < 192 ? 0.0f : 4.0f; - return Size[RenderState.style][c] + Size[RenderState.style][c + 209] + FontSizeIncrementers[RenderState.style] + inc; - } else { - if (IsPunctuation(c + ' ')) - return Size[RenderState.style][418] / 1.6f + FontSizeIncrementers[RenderState.style]; - else - return Size[RenderState.style][418] + FontSizeIncrementers[RenderState.style]; +#ifdef MORE_LANGUAGES + if (IsJapanese()) { + if (!RenderState.proportional) + return Size[0][Details.style][192]; + if (c <= 94 || Details.style == FONT_HEADING || RenderState.style == FONT_BANK) { + switch (RenderState.style) + { + case FONT_JAPANESE: + return Size_jp[c]; + default: + return Size[0][RenderState.style][c]; + } + } + + switch (RenderState.style) + { + case FONT_JAPANESE: + return 29.4f; + case FONT_BANK: + return 10.0f; + default: + return Size[0][RenderState.style][c]; + } } + + else if (RenderState.proportional) + return Size[LanguageSet][RenderState.style][c]; + else + return Size[LanguageSet][RenderState.style][209]; +#else + + if (RenderState.proportional) + return Size[RenderState.style][c]; + else + return Size[RenderState.style][209]; +#endif // MORE_LANGUAGES } -//--LCS: done float CFont::GetCharacterSize(wchar c) { -//#ifdef FIX_BUGS +#ifdef MORE_LANGUAGES + + if (IsJapanese()) + { + if (!Details.proportional) + return Size[0][Details.style][209] * Details.scaleX; + if (c <= 94 || Details.style == FONT_HEADING || Details.style == FONT_BANK) { + switch (Details.style) + { + case FONT_JAPANESE: + return Size_jp[c] * Details.scaleX; + default: + return Size[0][Details.style][c] * Details.scaleX; + } + } + + switch (Details.style) + { + case FONT_JAPANESE: + return 29.4f * Details.scaleX; + case FONT_BANK: + return 10.0f * Details.scaleX; + default: + return Size[0][Details.style][c] * Details.scaleX; + } + } + else + { + if (!Details.bFontHalfTexture && c == 30) c = 61; // wanted star + if (Details.bFontHalfTexture) + c = FindNewCharacter(c); + if (Details.proportional) + return Size[LanguageSet][Details.style][c] * Details.scaleX; + else + return Size[LanguageSet][Details.style][209] * Details.scaleX; + } +#else + +#ifdef FIX_BUGS // PS2 don't call FindNewCharacter in here at all, and also uses different chars for some symbols -// if (!Details.bFontHalfTexture && c == 30) c = 61; // wanted star -//#endif + if (!Details.bFontHalfTexture && c == 30) c = 61; // wanted star +#endif if (Details.bFontHalfTexture) c = FindNewCharacter(c); - if (Details.proportional) { - float inc = c < 192 ? 0.0f : 4.0f; - return (Size[Details.style][c] + Size[Details.style][c + 209] + FontSizeIncrementers[Details.style] + inc) * Details.scaleX; - } else { - if (IsPunctuation(c + ' ')) - return (Size[Details.style][418] + FontSizeIncrementers[Details.style]) / 1.6f * Details.scaleX; - else - return Size[Details.style][418] + FontSizeIncrementers[Details.style] * Details.scaleX; - } + if (Details.proportional) + return Size[Details.style][c] * Details.scaleX; + else + return Size[Details.style][209] * Details.scaleX; +#endif // MORE_LANGUAGES } -//--LCS: TODO float CFont::GetStringWidth(wchar *s, bool spaces) { @@ -1140,19 +1397,6 @@ CFont::GetStringWidth_Jap(wchar* s) } #endif -//--LCS: done -bool16 -CFont::CheckNewLine(wchar *s) -{ - while (*s == ' ') - s++; - - if (*s == '~') - return s[1] == 'N' || s[1] == 'n'; - return false; -} - -//--LCS: TODO wchar* CFont::GetNextSpace(wchar *s) { @@ -1183,7 +1427,6 @@ CFont::GetNextSpace(wchar *s) return s; } -//--LCS: done wchar* CFont::ParseToken(wchar* str, CRGBA &color, bool &flash, bool &bold) { @@ -1196,36 +1439,28 @@ CFont::ParseToken(wchar* str, CRGBA &color, bool &flash, bool &bold) case 'B': bold = !bold; break; - case 'Y': - color.r = 255; - color.g = 227; - color.b = 79; - break; case 'b': - color.r = 77; - color.g = 155; - color.b = 210; + color.r = 27; + color.g = 89; + color.b = 130; break; case 'f': flash = !flash; break; case 'g': - color.r = 75; - color.g = 151; - color.b = 75; - Details.anonymous_23 = true; + color.r = 255; + color.g = 150; + color.b = 225; break; case 'h': - color.r = 255; - color.g = 255; - color.b = 255; - Details.anonymous_23 = true; + color.r = 225; + color.g = 225; + color.b = 225; break; case 'l': color.r = 0; color.g = 0; color.b = 0; - Details.anonymous_23 = true; break; case 'o': color.r = 229; @@ -1233,9 +1468,9 @@ CFont::ParseToken(wchar* str, CRGBA &color, bool &flash, bool &bold) color.b = 126; break; case 'p': - color.r = 151; - color.g = 82; - color.b = 197; + color.r = 168; + color.g = 110; + color.b = 252; break; case 'q': color.r = 199; @@ -1243,9 +1478,9 @@ CFont::ParseToken(wchar* str, CRGBA &color, bool &flash, bool &bold) color.b = 203; break; case 'r': - color.r = 174; - color.g = 0; - color.b = 0; + color.r = 255; + color.g = 150; + color.b = 225; break; case 't': color.r = 86; @@ -1253,20 +1488,27 @@ CFont::ParseToken(wchar* str, CRGBA &color, bool &flash, bool &bold) color.b = 146; break; case 'w': - color.r = 225; - color.g = 225; - color.b = 225; - Details.anonymous_23 = true; + color.r = 175; + color.g = 175; + color.b = 175; break; +#ifdef FIX_BUGS + case 'x': + color.r = 0; + color.g = 255; + color.b = 255; + break; +#else case 'x': color.r = 132; color.g = 146; color.b = 197; break; +#endif case 'y': color.r = 255; - color.g = 255; - color.b = 0; + color.g = 227; + color.b = 79; break; #ifdef BUTTON_ICONS case 'U': PS2Symbol = BUTTON_UP; break; @@ -1294,34 +1536,187 @@ CFont::ParseToken(wchar* str, CRGBA &color, bool &flash, bool &bold) } while (*s != '~') ++s; - - // seem to be gone in lcs - //if (*(++s) == '~') - // s = ParseToken(s, color, flash, bold); - - // wtf? - if (*s == '\0') s++; - s++; + if (*(++s) == '~') + s = ParseToken(s, color, flash, bold); return s; } -//--LCS: done +#if 0//def MORE_LANGUAGES +wchar* +CFont::ParseToken(wchar *s, bool japShit) +{ + s++; + if ((Details.color.r || Details.color.g || Details.color.b) && !japShit) { + wchar c = *s; + if (IsJapanese()) + c &= 0x7FFF; + switch (c) { + case 'N': + case 'n': + NewLine = true; + break; + case 'b': SetColor(CRGBA(128, 167, 243, 255)); break; + case 'g': SetColor(CRGBA(95, 160, 106, 255)); break; + case 'h': SetColor(CRGBA(225, 225, 225, 255)); break; + case 'l': SetColor(CRGBA(0, 0, 0, 255)); break; + case 'p': SetColor(CRGBA(168, 110, 252, 255)); break; + case 'r': SetColor(CRGBA(113, 43, 73, 255)); break; + case 'w': SetColor(CRGBA(175, 175, 175, 255)); break; + case 'y': SetColor(CRGBA(210, 196, 106, 255)); break; +#ifdef BUTTON_ICONS + case 'U': PS2Symbol = BUTTON_UP; break; + case 'D': PS2Symbol = BUTTON_DOWN; break; + case '<': PS2Symbol = BUTTON_LEFT; break; + case '>': PS2Symbol = BUTTON_RIGHT; break; + case 'X': PS2Symbol = BUTTON_CROSS; break; + case 'O': PS2Symbol = BUTTON_CIRCLE; break; + case 'Q': PS2Symbol = BUTTON_SQUARE; break; + case 'T': PS2Symbol = BUTTON_TRIANGLE; break; + case 'K': PS2Symbol = BUTTON_L1; break; + case 'M': PS2Symbol = BUTTON_L2; break; + case 'A': PS2Symbol = BUTTON_L3; break; + case 'J': PS2Symbol = BUTTON_R1; break; + case 'V': PS2Symbol = BUTTON_R2; break; + case 'C': PS2Symbol = BUTTON_R3; break; + case 'H': PS2Symbol = BUTTON_RSTICK_UP; break; + case 'L': PS2Symbol = BUTTON_RSTICK_DOWN; break; + case '(': PS2Symbol = BUTTON_RSTICK_LEFT; break; + case ')': PS2Symbol = BUTTON_RSTICK_RIGHT; break; +#endif + } + } else if (IsJapanese()) { + if ((*s & 0x7FFF) == 'N' || (*s & 0x7FFF) == 'n') + NewLine = true; + } + while ((!IsJapanese() || (*s != JAP_TERMINATION)) && *s != '~') s++; + return s + 1; +} +#else wchar* CFont::ParseToken(wchar *s) { - bool flash = false; - bool bold = false; - CRGBA color = Details.color; - s = ParseToken(s, color, flash, bold); - Details.bFlash = flash; - Details.bBold = bold; - - if (Details.anonymous_23) - Details.color = color; + Details.anonymous_23 = false; + s++; + if(Details.color.r || Details.color.g || Details.color.b) + switch(*s){ + case 'B': + Details.bBold = !Details.bBold; + break; + case 'N': + case 'n': + NewLine = true; + break; + case 'b': + Details.color.r = 27; + Details.color.g = 89; + Details.color.b = 130; + Details.anonymous_23 = true; + break; + case 'f': + Details.bFlash = !Details.bFlash; + if (!Details.bFlash) + Details.color.a = 255; + break; + case 'g': + Details.color.r = 255; + Details.color.g = 150; + Details.color.b = 225; + Details.anonymous_23 = true; + break; + case 'h': + Details.color.r = 225; + Details.color.g = 225; + Details.color.b = 225; + Details.anonymous_23 = true; + break; + case 'l': + Details.color.r = 0; + Details.color.g = 0; + Details.color.b = 0; + Details.anonymous_23 = true; + break; + case 'o': + Details.color.r = 229; + Details.color.g = 125; + Details.color.b = 126; + Details.anonymous_23 = true; + break; + case 'p': + Details.color.r = 168; + Details.color.g = 110; + Details.color.b = 252; + Details.anonymous_23 = true; + break; + case 'q': + Details.color.r = 199; + Details.color.g = 144; + Details.color.b = 203; + Details.anonymous_23 = true; + break; + case 'r': + Details.color.r = 255; + Details.color.g = 150; + Details.color.b = 225; + Details.anonymous_23 = true; + break; + case 't': + Details.color.r = 86; + Details.color.g = 212; + Details.color.b = 146; + Details.anonymous_23 = true; + break; + case 'w': + Details.color.r = 175; + Details.color.g = 175; + Details.color.b = 175; + Details.anonymous_23 = true; + break; + case 'x': +#ifdef FIX_BUGS + Details.color.r = 0; + Details.color.g = 255; + Details.color.b = 255; +#else + Details.color.r = 132; + Details.color.g = 146; + Details.color.b = 197; +#endif + Details.anonymous_23 = true; + break; + case 'y': + Details.color.r = 255; + Details.color.g = 227; + Details.color.b = 79; + Details.anonymous_23 = true; + break; +#ifdef BUTTON_ICONS + case 'U': PS2Symbol = BUTTON_UP; break; + case 'D': PS2Symbol = BUTTON_DOWN; break; + case '<': PS2Symbol = BUTTON_LEFT; break; + case '>': PS2Symbol = BUTTON_RIGHT; break; + case 'X': PS2Symbol = BUTTON_CROSS; break; + case 'O': PS2Symbol = BUTTON_CIRCLE; break; + case 'Q': PS2Symbol = BUTTON_SQUARE; break; + case 'T': PS2Symbol = BUTTON_TRIANGLE; break; + case 'K': PS2Symbol = BUTTON_L1; break; + case 'M': PS2Symbol = BUTTON_L2; break; + case 'A': PS2Symbol = BUTTON_L3; break; + case 'J': PS2Symbol = BUTTON_R1; break; + case 'V': PS2Symbol = BUTTON_R2; break; + case 'C': PS2Symbol = BUTTON_R3; break; + case 'H': PS2Symbol = BUTTON_RSTICK_UP; break; + case 'L': PS2Symbol = BUTTON_RSTICK_DOWN; break; + case '(': PS2Symbol = BUTTON_RSTICK_LEFT; break; + case ')': PS2Symbol = BUTTON_RSTICK_RIGHT; break; +#endif + } + while(*s != '~') s++; + if (*(++s) == '~') + s = ParseToken(s); return s; } +#endif -//--LCS: done void CFont::FilterOutTokensFromString(wchar *str) { @@ -1340,22 +1735,25 @@ CFont::FilterOutTokensFromString(wchar *str) str[newIdx] = '\0'; } -//--LCS: done void CFont::DrawFonts(void) { RenderFontBuffer(); } -//--LCS: done void CFont::SetScale(float x, float y) { +#ifdef MORE_LANGUAGES + /*if (IsJapanese()) { + x *= 1.35f; + y *= 1.25f; + }*/ +#endif Details.scaleX = x; Details.scaleY = y; } -//--LCS: done void CFont::SetSlantRefPoint(float x, float y) { @@ -1363,14 +1761,12 @@ CFont::SetSlantRefPoint(float x, float y) Details.slantRefY = y; } -//--LCS: done void CFont::SetSlant(float s) { Details.slant = s; } -//--LCS: done void CFont::SetColor(CRGBA col) { @@ -1379,14 +1775,6 @@ CFont::SetColor(CRGBA col) Details.color.a *= Details.alphaFade / 255.0f; } -//--LCS: done -void -CFont::SetFlashOff() -{ - Details.bFlash = false; -} - -//--LCS: done void CFont::SetJustifyOn(void) { @@ -1395,7 +1783,6 @@ CFont::SetJustifyOn(void) Details.rightJustify = false; } -//--LCS: done void CFont::SetJustifyOff(void) { @@ -1403,7 +1790,6 @@ CFont::SetJustifyOff(void) Details.rightJustify = false; } -//--LCS: done void CFont::SetCentreOn(void) { @@ -1412,65 +1798,54 @@ CFont::SetCentreOn(void) Details.rightJustify = false; } -//--LCS: done void CFont::SetCentreOff(void) { Details.centre = false; } -//--LCS: TODO void CFont::SetWrapx(float x) { - // uncomment when scaling is done - //x = clamp(x, 0.0f, DEFAULT_SCREEN_WIDTH); Details.wrapX = x; } -//--LCS: done void CFont::SetCentreSize(float s) { Details.centreSize = s; } -//--LCS: done void CFont::SetBackgroundOn(void) { Details.background = true; } -//--LCS: done void CFont::SetBackgroundOff(void) { Details.background = false; } -//--LCS: done void CFont::SetBackgroundColor(CRGBA col) { Details.backgroundColor = col; } -//--LCS: done void CFont::SetBackGroundOnlyTextOn(void) { Details.backgroundOnlyText = true; } -//--LCS: done void CFont::SetBackGroundOnlyTextOff(void) { Details.backgroundOnlyText = false; } -//--LCS: done void CFont::SetRightJustifyOn(void) { @@ -1479,7 +1854,6 @@ CFont::SetRightJustifyOn(void) Details.centre = false; } -//--LCS: done void CFont::SetRightJustifyOff(void) { @@ -1488,118 +1862,70 @@ CFont::SetRightJustifyOff(void) Details.centre = false; } -//--LCS: done void CFont::SetPropOff(void) { Details.proportional = false; } -//--LCS: done void CFont::SetPropOn(void) { Details.proportional = true; } -//--LCS: done void CFont::SetFontStyle(int16 style) { if (style == FONT_HEADING) { - Details.style = FONT_HEADING; + Details.style = FONT_STANDARD; Details.bFontHalfTexture = true; - } - else { + } else { Details.style = style; Details.bFontHalfTexture = false; } } -//--LCS: done void CFont::SetRightJustifyWrap(float wrap) { Details.rightJustifyWrap = wrap; } -//--LCS: done void CFont::SetAlphaFade(float fade) { Details.alphaFade = fade; } -//--LCS: done void CFont::SetDropColor(CRGBA col) { Details.dropColor = col; if (Details.alphaFade < 255.0f) - // TODO: was this a copypaste bug in here? - //Details.dropColor.a *= Details.alphaFade / 255.0f; - Details.dropColor.a = Details.color.a * Details.alphaFade / 255.0f; + Details.dropColor.a *= Details.alphaFade / 255.0f; } - -//--LCS: done -void -CFont::SetOutlineColor(CRGBA col) -{ - Details.outlineColor = col; - if (Details.alphaFade < 255.0f) - Details.outlineColor.a *= Details.alphaFade / 255.0f; -} - -//--LCS: done -void -CFont::SetOutlineOn(int on) -{ - Details.bOutlineOn = on; -} - -//--LCS: done -void -CFont::SetNewLineAdd(int line) -{ - Details.line = line; -} - -//--LCS: done void CFont::SetDropShadowPosition(int16 pos) { Details.dropShadowPosition = pos; } -int16 CFont::FindNewCharacter(int16 c) +wchar CFont::FindNewCharacter(wchar c) { - if (c >= 33 && c <= 33 + 25) - return c - 6; - else if(c >= 65 && c <= 65 + 25) - return c - 38; - else if (c >= 96 && c <= 96 + 31) - return c - 43; - else if (c >= 128 && c <= 128 + 31) - return c - 75; - - switch (c) - { - case 190: - return 90; - case 175: - return 87; - case 184: - return 88; - case 187: - return 89; - case 31: - return 88; - } - if (c >= 27 && c < 31) - return 2; - if (c >= 180 && c < 256) - c = 2; + if (c >= 16 && c <= 26) return c + 128; + if (c >= 8 && c <= 9) return c + 86; + if (c == 4) return c + 89; + if (c == 7) return 206; + if (c == 14) return 207; + if (c >= 33 && c <= 58) return c + 122; + if (c >= 65 && c <= 90) return c + 90; + if (c >= 96 && c <= 118) return c + 85; + if (c >= 119 && c <= 140) return c + 62; + if (c >= 141 && c <= 142) return 204; + if (c == 143) return 205; + if (c == 1) return 208; return c; } @@ -1609,4 +1935,4 @@ CFont::character_code(uint8 c) if(c < 128) return c; return foreign_table[c-128]; -} +} \ No newline at end of file diff --git a/src/render/Font.h b/src/render/Font.h index a433e05..42eb7b4 100644 --- a/src/render/Font.h +++ b/src/render/Font.h @@ -39,9 +39,6 @@ struct CFontDetails int nFlashTimer; bool8 anonymous_23; uint32 anonymous_25; - CRGBA outlineColor; - int bOutlineOn; - int line; }; struct CFontRenderState @@ -61,9 +58,6 @@ struct CFontRenderState bool8 proportional; bool8 anonymous_14; int16 style; - int bOutlineOn; - int line; - bool8 rightJustify; }; class CSprite2d; @@ -72,7 +66,10 @@ enum { FONT_BANK, FONT_STANDARD, FONT_HEADING, - MAX_FONTS +#ifdef MORE_LANGUAGES + FONT_JAPANESE, +#endif + MAX_FONTS = FONT_HEADING }; enum { @@ -126,13 +123,13 @@ enum class CFont { #ifdef MORE_LANGUAGES - static int16 Size[LANGSET_MAX][MAX_FONTS][193]; + static int16 Size[LANGSET_MAX][MAX_FONTS][210]; static uint8 LanguageSet; static int32 Slot; #else - static int16 Size[MAX_FONTS][419]; + static int16 Size[MAX_FONTS][210]; #endif - static bool16 NewLine; + static int16 NewLine; public: static CSprite2d Sprite[MAX_FONTS]; static CFontDetails Details; @@ -154,29 +151,30 @@ public: static void PrintChar(float x, float y, wchar c); static void PrintString(float x, float y, wchar *s); #ifdef XBOX_SUBTITLES + static void PrintStringFromBottom(float x, float y, wchar *str); static void PrintOutlinedString(float x, float y, wchar *str, float outlineStrength, bool fromBottom, CRGBA outlineColor); #endif static int GetNumberLines(float xstart, float ystart, wchar *s); static void GetTextRect(CRect *rect, float xstart, float ystart, wchar *s); -#ifdef MORE_LANGUAGES - static bool PrintString(float x, float y, wchar *start, wchar* &end, float spwidth, float japX); -#else +//#ifdef MORE_LANGUAGES +// static bool PrintString(float x, float y, wchar *start, wchar* &end, float spwidth, float japX); +//#else static void PrintString(float x, float y, uint32, wchar *start, wchar *end, float spwidth); -#endif +//#endif static void PrintStringFromBottom(float x, float y, wchar *str); - static float GetCharacterWidth(wchar c, bool forceProportional = false); + static float GetCharacterWidth(wchar c); static float GetCharacterSize(wchar c); static float GetStringWidth(wchar *s, bool spaces = false); #ifdef MORE_LANGUAGES static float GetStringWidth_Jap(wchar* s); #endif static uint16 *GetNextSpace(wchar *s); -#ifdef MORE_LANGUAGES - static uint16 *ParseToken(wchar *s, bool japShit = false); -#else +//#ifdef MORE_LANGUAGES +// static uint16 *ParseToken(wchar *s, bool japShit = false); +//#else static uint16 *ParseToken(wchar *s); static uint16 *ParseToken(wchar *s, CRGBA &color, bool &flash, bool &bold); -#endif +//#endif static void DrawFonts(void); static void RenderFontBuffer(void); static uint16 character_code(uint8 c); @@ -196,7 +194,6 @@ public: static void SetBackgroundOff(void); static void SetBackGroundOnlyTextOn(void); static void SetBackGroundOnlyTextOff(void); - static void SetFlashOff(void); static void SetPropOn(void); static void SetPropOff(void); static void SetFontStyle(int16 style); @@ -206,14 +203,8 @@ public: static void SetBackgroundColor(CRGBA col); static void SetColor(CRGBA col); static void SetDropColor(CRGBA col); - - static void SetOutlineColor(CRGBA col); - static void SetOutlineOn(int on); - static void SetNewLineAdd(int line); - - static int16 FindNewCharacter(int16 c); + static wchar FindNewCharacter(wchar c); static void FilterOutTokensFromString(wchar*); - static bool16 CheckNewLine(wchar *s); #ifdef MORE_LANGUAGES static void ReloadFonts(uint8 set); @@ -221,6 +212,6 @@ public: static bool IsAnsiCharacter(wchar* s); static bool IsJapanesePunctuation(wchar* str); static bool IsJapanese() { return LanguageSet == FONT_LANGSET_JAPANESE; } - static bool IsJapaneseFont() { return IsJapanese() && (Details.style == FONT_JAPANESE || Details.style == FONT_PAGER); } + static bool IsJapaneseFont() { return IsJapanese() && (Details.style == FONT_JAPANESE); } #endif }; diff --git a/src/render/Glass.cpp b/src/render/Glass.cpp index c6d0275..3409a05 100644 --- a/src/render/Glass.cpp +++ b/src/render/Glass.cpp @@ -276,6 +276,8 @@ CGlass::Render(void) RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void *)rwBLENDONE); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void *)TRUE); + PUSH_RENDERGROUP("CGlass::Render"); + for ( int32 i = 0; i < NUM_GLASSPANES; i++ ) { if ( aGlassPanes[i].m_bActive ) @@ -285,6 +287,8 @@ CGlass::Render(void) for ( uint32 i = 0; i < NumGlassEntities; i++ ) RenderEntityInGlass(apEntitiesToBeRendered[i]); + POP_RENDERGROUP(); + NumGlassEntities = 0; RenderHiLightPolys(); diff --git a/src/render/Hud.cpp b/src/render/Hud.cpp index 2efa7b6..9150391 100644 --- a/src/render/Hud.cpp +++ b/src/render/Hud.cpp @@ -39,14 +39,14 @@ // Game has colors inlined in code. // For easier modification we collect them here: CRGBA MONEY_COLOR(0, 207, 133, 255); -CRGBA AMMO_COLOR(255, 255, 255, 255); +CRGBA AMMO_COLOR(255, 150, 225, 255); CRGBA HEALTH_COLOR(255, 150, 225, 255); CRGBA ARMOUR_COLOR(185, 185, 185, 255); CRGBA NOTWANTED_COLOR(27, 89, 130, 255); CRGBA WANTED_COLOR_FLASH(62, 141, 181, 255); CRGBA WANTED_COLOR(97, 194, 247, 255); -CRGBA ZONE_COLOR(255, 255, 255, 255); -CRGBA VEHICLE_COLOR(255, 255, 255, 255); +CRGBA ZONE_COLOR(45, 155, 90, 255); +CRGBA VEHICLE_COLOR(97, 194, 247, 255); CRGBA CLOCK_COLOR(97, 194, 247, 255); CRGBA TIMER_COLOR(97, 194, 247, 255); CRGBA COUNTER_COLOR(97, 194, 247, 255); @@ -89,7 +89,7 @@ bool CHud::m_HideRadar; int32 CHud::m_ClockState; // These aren't really in CHud -float BigMessageInUse[6]; +float CHud::BigMessageInUse[6]; float CHud::BigMessageAlpha[6]; float CHud::BigMessageX[6]; float CHud::OddJob2OffTimer; @@ -128,10 +128,6 @@ uint32 CHud::m_LastTimeEnergyLost; CSprite2d CHud::Sprites[NUM_HUD_SPRITES]; -wchar* CHud::gLastPrintForeverString; - -uint8 CHud::m_HudAlpha = 209; - struct { const char *name; @@ -188,25 +184,24 @@ struct { "", "" }, { "", "" }, { "radardisc", "radardisc" }, - { "radardiscback", "" }, { "", "" }, { "", "" }, { "", "" }, { "", "" }, { "", "" }, - { "bar_inside1dark", "" }, - { "bar_inside2dark", "" }, - { "hudnumbers", "" }, - { "bar_inside1", "" }, - { "bar_inside2", "" }, - { "bar_outline", "" }, + { "", "" }, + { "", "" }, + { "", "" }, + { "", "" }, + { "", "" }, + { "", "" }, + { "", "" }, { "sitesniper", "sitesniperm" }, { "siteM16", "siteM16m" }, { "sitelaser", "sitelaserm" }, { "laserdot", "laserdotm" }, { "viewfinder_128", "viewfinder_128m" }, - { "bleeder", "" }, - { "gren_rem", "noMaskNeeded" } + { "bleeder", "" } }; RwTexture *gpSniperSightTex; @@ -215,7 +210,6 @@ RwTexture *gpLaserSightTex; RwTexture *gpLaserDotTex; RwTexture *gpViewFinderTex; -// TODO(LCS): some things were reversed from LCS but not all void CHud::Draw() { RwRenderStateSet(rwRENDERSTATETEXTUREFILTER, (void*)rwFILTERNEAREST); @@ -408,8 +402,6 @@ void CHud::Draw() DrawMoneyCounter */ - RwRenderStateSet(rwRENDERSTATETEXTUREFILTER, (void*)rwFILTERLINEAR); // TODO(LCS): temp filtering fix for money counter, remove later - wchar sPrint[16]; wchar sPrintIcon[16]; char sTemp[16]; @@ -422,8 +414,25 @@ void CHud::Draw() m_LastDisplayScore = CWorld::Players[CWorld::PlayerInFocus].m_nVisibleMoney; } if (m_DisplayScoreState != FADED_OUT) { + sprintf(sTemp, "$%08d", CWorld::Players[CWorld::PlayerInFocus].m_nVisibleMoney); + AsciiToUnicode(sTemp, sPrint); + + CFont::SetPropOff(); + CFont::SetBackgroundOff(); + CFont::SetScale(SCREEN_SCALE_X(HUD_TEXT_SCALE_X), SCREEN_SCALE_Y(HUD_TEXT_SCALE_Y)); + CFont::SetCentreOff(); + CFont::SetRightJustifyOn(); + CFont::SetRightJustifyWrap(0.0f); + CFont::SetBackGroundOnlyTextOff(); + CFont::SetFontStyle(FONT_HEADING); + CFont::SetPropOff(); + CFont::SetDropShadowPosition(2); + CFont::SetDropColor(CRGBA(0, 0, 0, alpha)); + MONEY_COLOR.a = alpha; + CFont::SetColor(MONEY_COLOR); + if (FrontEndMenuManager.m_PrefsShowHud) { - DrawCash(); + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(110.0f), SCREEN_SCALE_Y(43.0f), sPrint); } } @@ -436,23 +445,46 @@ void CHud::Draw() alpha = CHud::DrawFadeState(HUD_WEAPON_FADING, 1); m_LastWeapon = playerPed->GetWeapon()->m_eWeaponType; } - alpha = Min(alpha, m_HudAlpha); if (m_WeaponState != FADED_OUT) { CWeapon *weapon = playerPed->GetWeapon(); + int32 AmmoAmount = CWeaponInfo::GetWeaponInfo((eWeaponType)WeaponType)->m_nAmountofAmmunition; + int32 AmmoInClip = weapon->m_nAmmoInClip; + int32 TotalAmmo = weapon->m_nAmmoTotal; + int32 Ammo, Clip; + + if (AmmoAmount <= 1 || AmmoAmount >= 1000) + sprintf(sTemp, "%d", TotalAmmo); + else { + if (WeaponType == WEAPONTYPE_FLAMETHROWER) { + Clip = AmmoInClip / 10; + + Ammo = Min((TotalAmmo - AmmoInClip) / 10, 9999); + } else { + Clip = AmmoInClip; + + Ammo = Min(TotalAmmo - AmmoInClip, 9999); + } + + sprintf(sTemp, "%d-%d", Ammo, Clip); + } + + AsciiToUnicode(sTemp, sPrint); CWeaponInfo *weaponInfo = CWeaponInfo::GetWeaponInfo((eWeaponType)WeaponType); /* DrawWeaponIcon */ if (FrontEndMenuManager.m_PrefsShowHud) { - float right = FrontEndMenuManager.m_PrefsUseWideScreen ? 468.6f : 470.0f; - float left = right - (FrontEndMenuManager.m_PrefsUseWideScreen ? 48.6f : 54.0f); if (weaponInfo->m_nModelId <= 0) { RwRenderStateSet(rwRENDERSTATETEXTUREFILTER, (void*)rwFILTERLINEAR); if (FrontEndMenuManager.m_PrefsShowHud) Sprites[WeaponType].Draw( - CRect(PSP_SCREEN_SCALE_X(left), PSP_SCREEN_SCALE_Y(16.0f), PSP_SCREEN_SCALE_X(right), PSP_SCREEN_SCALE_Y(60.0f)), - CRGBA(255, 255, 255, alpha)); + CRect(SCREEN_SCALE_FROM_RIGHT(99.0f), SCREEN_SCALE_Y(27.0f), SCREEN_SCALE_FROM_RIGHT(35.0f), SCREEN_SCALE_Y(91.0f)), + CRGBA(255, 255, 255, alpha), + 0.015f, 0.015f, + 1.0f, 0.0f, + 0.015f, 1.0f, + 1.0f, 1.0f); } else { CBaseModelInfo *weaponModel = CModelInfo::GetModelInfo(weaponInfo->m_nModelId); RwTexDictionary *weaponTxd = CTxdStore::GetSlot(weaponModel->GetTxdSlot())->texDict; @@ -472,8 +504,12 @@ void CHud::Draw() static CSprite2d sprite; sprite.m_pTexture = weaponIcon; sprite.Draw( - CRect(PSP_SCREEN_SCALE_X(left), PSP_SCREEN_SCALE_Y(16.0f), PSP_SCREEN_SCALE_X(right), PSP_SCREEN_SCALE_Y(60.0f)), - CRGBA(255, 255, 255, alpha)); + CRect(SCREEN_SCALE_FROM_RIGHT(99.0f), SCREEN_SCALE_Y(27.0f), SCREEN_SCALE_FROM_RIGHT(35.0f), SCREEN_SCALE_Y(91.0f)), + CRGBA(255, 255, 255, alpha), + 0.015f, 0.015f, + 1.0f, 0.0f, + 0.015f, 1.0f, + 1.0f, 1.0f); sprite.m_pTexture = nil; #endif } @@ -481,7 +517,7 @@ void CHud::Draw() } CFont::SetBackgroundOff(); - CFont::SetScale(PSP_SCREEN_SCALE_X(FrontEndMenuManager.m_PrefsUseWideScreen ? 0.18f : 0.2f), PSP_SCREEN_SCALE_Y(0.44f)); + CFont::SetScale(SCREEN_SCALE_X(0.5f), SCREEN_SCALE_Y(0.8f)); CFont::SetJustifyOff(); CFont::SetCentreOn(); CFont::SetCentreSize(SCREEN_STRETCH_X(DEFAULT_SCREEN_WIDTH)); @@ -489,65 +525,13 @@ void CHud::Draw() CFont::SetDropShadowPosition(0); CFont::SetFontStyle(FONT_STANDARD); - int32 AmmoAmount = CWeaponInfo::GetWeaponInfo((eWeaponType)WeaponType)->m_nAmountofAmmunition; - int32 AmmoInClip = weapon->m_nAmmoInClip; - int32 TotalAmmo = weapon->m_nAmmoTotal; - int32 Ammo, Clip; - if (Min(9999, TotalAmmo - AmmoInClip) != 9999 && !CDarkel::FrenzyOnGoing() && weaponInfo->m_nWeaponSlot > 1 && weapon->m_eWeaponType != WEAPONTYPE_DETONATOR) { CFont::SetDropShadowPosition(2); CFont::SetDropColor(CRGBA(0, 0, 0, alpha)); AMMO_COLOR.a = alpha; CFont::SetColor(AMMO_COLOR); - if (FrontEndMenuManager.m_PrefsShowHud) { - - - if (AmmoAmount <= 1 || AmmoAmount >= 1000) - { - sprintf(sTemp, "%d", TotalAmmo); - AsciiToUnicode(sTemp, sPrint); - float pos = 435.0f; -#ifdef FIX_BUGS - if (FrontEndMenuManager.m_PrefsUseWideScreen) - pos = 438.0f; -#endif - CFont::PrintString(PSP_SCREEN_SCALE_FROM_RIGHT(PSP_DEFAULT_SCREEN_WIDTH - pos), PSP_SCREEN_SCALE_Y(42.0f), sPrint); - } - else { - - if (WeaponType == WEAPONTYPE_FLAMETHROWER) { - Clip = AmmoInClip / 10; - - Ammo = Min((TotalAmmo - AmmoInClip) / 10, 9999); - } - else { - Clip = AmmoInClip; - - Ammo = Min(TotalAmmo - AmmoInClip, 9999); - } - - char sMinus[10]; - char sAmmo[20]; - char sClip[20]; - - sprintf(sMinus, "-"); - sprintf(sAmmo, "%d", Ammo); - sprintf(sClip, "%d", Clip); - - CFont::SetCentreOff(); - CFont::SetRightJustifyOn(); - AsciiToUnicode(sAmmo, sPrint); - CFont::PrintString(PSP_SCREEN_SCALE_FROM_RIGHT(PSP_DEFAULT_SCREEN_WIDTH - (FrontEndMenuManager.m_PrefsUseWideScreen ? 438.0f : 435.0f)), PSP_SCREEN_SCALE_Y(42.0f), sPrint); - - CFont::SetRightJustifyOff(); - AsciiToUnicode(sMinus, sPrint); - CFont::PrintString(PSP_SCREEN_SCALE_FROM_RIGHT(PSP_DEFAULT_SCREEN_WIDTH - (FrontEndMenuManager.m_PrefsUseWideScreen ? 439.0f : 436.0f)), PSP_SCREEN_SCALE_Y(42.0f), sPrint); - - AsciiToUnicode(sClip, sPrint); - CFont::PrintString(PSP_SCREEN_SCALE_FROM_RIGHT(PSP_DEFAULT_SCREEN_WIDTH - (FrontEndMenuManager.m_PrefsUseWideScreen ? 441.0f : 439.0f)), PSP_SCREEN_SCALE_Y(42.0f), sPrint); - - } - } + if (FrontEndMenuManager.m_PrefsShowHud) + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(66.0f), SCREEN_SCALE_Y(90.0f), sPrint); CFont::SetDropShadowPosition(0); } } @@ -581,8 +565,23 @@ void CHud::Draw() && CTimer::GetFrameCounter() & 8) { if (playerPed->m_fHealth >= 10 || playerPed->m_fHealth < 10 && CTimer::GetFrameCounter() & 8) { + + AsciiToUnicode("{", sPrintIcon); +#ifdef FIX_BUGS + sprintf(sTemp, "%03d", int32(playerPed->m_fHealth + 0.5f)); +#else + sprintf(sTemp, "%03d", (int32)playerPed->m_fHealth); +#endif + AsciiToUnicode(sTemp, sPrint); + + CFont::SetColor(HEALTH_COLOR); if (FrontEndMenuManager.m_PrefsShowHud) { - DrawHealthBar(playerPed->m_fHealth); + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(110.0f), SCREEN_SCALE_Y(65.0f), sPrint); + + if (!CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastHealthLoss || CTimer::GetTimeInMilliseconds() > CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastHealthLoss + 2000 || CTimer::GetFrameCounter() & 4) { + // CFont::SetColor(HEALTH_COLOR); + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(110.0f + 54.0f), SCREEN_SCALE_Y(65.0f), sPrintIcon); + } } } } @@ -603,7 +602,13 @@ void CHud::Draw() CFont::SetColor(ARMOUR_COLOR); if (FrontEndMenuManager.m_PrefsShowHud) { - DrawArmourBar(playerPed->m_fArmour); + + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(182.0f), SCREEN_SCALE_Y(65.0f), sPrint); + + if (!CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastArmourLoss || CTimer::GetTimeInMilliseconds() > CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastArmourLoss + 2000 || CTimer::GetFrameCounter() & 4) { + // CFont::SetColor(ARMOUR_COLOR); + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(182.0f + 52.0f), SCREEN_SCALE_Y(65.0f), sPrintIcon); + } } } } @@ -620,23 +625,36 @@ void CHud::Draw() } if (m_WantedState != FADED_OUT) { - char wantedStar[] = "\x16"; - float starX = 441.0f; + CFont::SetBackgroundOff(); + CFont::SetScale(SCREEN_SCALE_X(HUD_TEXT_SCALE_X), SCREEN_SCALE_Y(HUD_TEXT_SCALE_Y)); + CFont::SetJustifyOff(); + CFont::SetCentreOff(); + CFont::SetRightJustifyOn(); + CFont::SetPropOn(); + CFont::SetFontStyle(FONT_STANDARD); + + AsciiToUnicode(">", sPrintIcon); + for (int i = 0; i < 6; i++) { if (FrontEndMenuManager.m_PrefsShowHud) { if (playerPed->m_pWanted->GetWantedLevel() > i && (CTimer::GetTimeInMilliseconds() > playerPed->m_pWanted->m_nLastWantedLevelChange + 2000 || CTimer::GetFrameCounter() & 4)) { - DrawTimeAndCashNumbers(wantedStar, starX, 63.0f, false); + WANTED_COLOR.a = alpha; + CFont::SetColor(WANTED_COLOR); + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(110.0f + 23.0f * i), SCREEN_SCALE_Y(87.0f), sPrintIcon); } else if (playerPed->m_pWanted->m_nMinWantedLevel > i && CTimer::GetFrameCounter() & 4) { - DrawTimeAndCashNumbers(wantedStar, starX, 63.0f, true); + WANTED_COLOR_FLASH.a = alpha; + CFont::SetColor(WANTED_COLOR_FLASH); + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(110.0f + 23.0f * i), SCREEN_SCALE_Y(87.0f), sPrintIcon); + + } else if (playerPed->m_pWanted->GetWantedLevel() <= i) { + NOTWANTED_COLOR.a = alpha; + CFont::SetColor(NOTWANTED_COLOR); + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(110.0f + 23.0f * i), SCREEN_SCALE_Y(87.0f), sPrintIcon); } - if (FrontEndMenuManager.m_PrefsUseWideScreen) - starX -= 11.0f; - else - starX -= 13.5f; } } } @@ -764,14 +782,14 @@ void CHud::Draw() CFont::SetPropOn(); CFont::SetBackgroundOff(); - if (FrontEndMenuManager.m_PrefsUseWideScreen) - CFont::SetScale(PSP_SCREEN_SCALE_X(0.42768f), PSP_SCREEN_SCALE_Y(0.88f)); + if (FrontEndMenuManager.m_PrefsLanguage == CMenuManager::LANGUAGE_SPANISH) + CFont::SetScale(SCREEN_SCALE_X(1.7f * 0.8f), SCREEN_SCALE_Y(1.8f)); else - CFont::SetScale(PSP_SCREEN_SCALE_X(0.4752f), PSP_SCREEN_SCALE_Y(0.88f)); + CFont::SetScale(SCREEN_SCALE_X(1.7f), SCREEN_SCALE_Y(1.8f)); + + CFont::SetSlantRefPoint(SCREEN_SCALE_FROM_RIGHT(32.0f), SCREEN_SCALE_FROM_BOTTOM(128.0f)); + CFont::SetSlant(0.15f); - //CFont::SetSlantRefPoint(SCREEN_SCALE_FROM_RIGHT(32.0f), SCREEN_SCALE_FROM_BOTTOM(128.0f)); - //CFont::SetSlant(0.15f); - CFont::SetWrapx(SCREEN_WIDTH); CFont::SetRightJustifyOn(); CFont::SetRightJustifyWrap(0.0f); CFont::SetBackGroundOnlyTextOff(); @@ -781,9 +799,9 @@ void CHud::Draw() CFont::SetColor(CRGBA(ZONE_COLOR.r, ZONE_COLOR.g, ZONE_COLOR.b, fZoneAlpha)); if (!CTheScripts::bPlayerIsInTheStatium) - CFont::PrintStringFromBottom(PSP_SCREEN_SCALE_FROM_RIGHT(24.0f), PSP_SCREEN_SCALE_FROM_BOTTOM(16.0f), m_ZoneToPrint); + CFont::PrintStringFromBottom(SCREEN_SCALE_FROM_RIGHT(32.0f), SCREEN_SCALE_FROM_BOTTOM(128.0f), m_ZoneToPrint); - //CFont::SetSlant(0.f); + CFont::SetSlant(0.f); } else { m_ZoneState = 3; } @@ -864,14 +882,13 @@ void CHud::Draw() CFont::SetPropOn(); CFont::SetBackgroundOff(); - if (FrontEndMenuManager.m_PrefsUseWideScreen) - CFont::SetScale(PSP_SCREEN_SCALE_X(0.42768f), PSP_SCREEN_SCALE_Y(0.88f)); + if (FrontEndMenuManager.m_PrefsLanguage != CMenuManager::LANGUAGE_ITALIAN && FrontEndMenuManager.m_PrefsLanguage != CMenuManager::LANGUAGE_SPANISH) + CFont::SetScale(SCREEN_SCALE_X(1.7f), SCREEN_SCALE_Y(1.8f)); else - CFont::SetScale(PSP_SCREEN_SCALE_X(0.4752f), PSP_SCREEN_SCALE_Y(0.88f)); + CFont::SetScale(SCREEN_SCALE_X(1.7f * 0.85f), SCREEN_SCALE_Y(1.8f)); - CFont::SetWrapx(SCREEN_WIDTH); - CFont::SetSlantRefPoint(PSP_SCREEN_SCALE_FROM_RIGHT(24.0f), PSP_SCREEN_SCALE_FROM_BOTTOM(35.6f)); - CFont::SetSlant(0.f); + CFont::SetSlantRefPoint(SCREEN_SCALE_FROM_RIGHT(32.0f), SCREEN_SCALE_FROM_BOTTOM(105.0f)); + CFont::SetSlant(0.15f); CFont::SetRightJustifyOn(); CFont::SetRightJustifyWrap(0.0f); @@ -881,7 +898,7 @@ void CHud::Draw() CFont::SetColor(CRGBA(VEHICLE_COLOR.r, VEHICLE_COLOR.g, VEHICLE_COLOR.b, fVehicleAlpha)); CFont::SetDropColor(CRGBA(0, 0, 0, fVehicleAlpha)); - CFont::PrintStringFromBottom(PSP_SCREEN_SCALE_FROM_RIGHT(24.0f), PSP_SCREEN_SCALE_FROM_BOTTOM(35.6f), m_pVehicleNameToPrint); + CFont::PrintStringFromBottom(SCREEN_SCALE_FROM_RIGHT(32.0f), SCREEN_SCALE_FROM_BOTTOM(105.0f), m_pVehicleNameToPrint); CFont::SetSlant(0.f); } @@ -898,8 +915,24 @@ void CHud::Draw() DrawClock */ if (m_ClockState) { + CFont::SetJustifyOff(); + CFont::SetCentreOff(); + CFont::SetBackgroundOff(); + CFont::SetScale(SCREEN_SCALE_X(HUD_TEXT_SCALE_X), SCREEN_SCALE_Y(HUD_TEXT_SCALE_Y)); + CFont::SetBackGroundOnlyTextOff(); + CFont::SetPropOff(); + CFont::SetFontStyle(FONT_HEADING); + CFont::SetRightJustifyOn(); + CFont::SetRightJustifyWrap(0.0f); + CFont::SetDropShadowPosition(2); + CFont::SetDropColor(CRGBA(0, 0, 0, 255)); + + sprintf(sTemp, "%02d:%02d", CClock::GetHours(), CClock::GetMinutes()); + AsciiToUnicode(sTemp, sPrint); + + CFont::SetColor(CLOCK_COLOR); if (FrontEndMenuManager.m_PrefsShowHud) - DrawTime(); + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(111.0f), SCREEN_SCALE_Y(22.0f), sPrint); } /* @@ -1166,7 +1199,7 @@ void CHud::Draw() onceItWasWidescreen = false; CFont::DrawFonts(); - CFont::SetDropShadowPosition(0); + CFont::SetDropShadowPosition(2); CFont::SetDropColor(CRGBA(0, 0, 0, 255)); CFont::SetScale(SCREEN_SCALE_X(0.58f), SCREEN_SCALE_Y(1.22f)); @@ -1392,221 +1425,6 @@ void CHud::Draw() } } -int HealthFlashTimer = 50; - -void -CHud::DrawHealthBar(int16 value) -{ - if (m_ItemToFlash == ITEM_HEALTH) { - if (CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_fHealth > 10.0f) { - if (HealthFlashTimer-- == 0) { - m_ItemToFlash = -1; - HealthFlashTimer = 50; - } - } - } - float fHealth = value; - float fMaxHealth = CWorld::Players[CWorld::PlayerInFocus].m_nMaxHealth; - fHealth = clamp(fHealth, 0.0f, fMaxHealth); - float fWidth = (fHealth / fMaxHealth) * 40.0f + 16.0f + 4.0f; - float u = fWidth / 64.0f; - if (value == 0) { - fWidth = 0.0f; - u = 0.0f; - } else if (value == fMaxHealth) { - fWidth = 64.0f; - u = 1.0f; - } - - if (FrontEndMenuManager.m_PrefsUseWideScreen) - fWidth *= 0.68f; - else - fWidth *= 0.85f; - - float fX1 = FrontEndMenuManager.m_PrefsUseWideScreen ? 375.0f : 360.0f; - float fX2 = fWidth + (FrontEndMenuManager.m_PrefsUseWideScreen ? 375.0f : 360.0f); - CRect rect1(PSP_SCREEN_SCALE_X(fX1), PSP_SCREEN_SCALE_Y(40.0f), PSP_SCREEN_SCALE_X(fX2), PSP_SCREEN_SCALE_Y(50.0f)); - CRGBA color1(255, 255, 255, m_HudAlpha); - Sprites[HUD_BAR_INSIDE2].Draw(rect1, color1, 0.0f, 0.0f, u, 0.0f, 0.0f, 1.0f, u, 1.0f); - - fX1 = fWidth + (FrontEndMenuManager.m_PrefsUseWideScreen ? 375.0f : 360.0f); - fX2 = (FrontEndMenuManager.m_PrefsUseWideScreen ? 43.52f : 54.4f) + (FrontEndMenuManager.m_PrefsUseWideScreen ? 375.0f : 360.0f); - CRect rect2(PSP_SCREEN_SCALE_X(fX1), PSP_SCREEN_SCALE_Y(40.0f), PSP_SCREEN_SCALE_X(fX2), PSP_SCREEN_SCALE_Y(50.0f)); - CRGBA color2(255, 255, 255, m_HudAlpha); - Sprites[HUD_BAR_INSIDE2DARK].Draw(rect2, color2, u, 0.0f, 1.0f, 0.0f, u, 1.0f, 1.0f, 1.0f); - - fX1 = FrontEndMenuManager.m_PrefsUseWideScreen ? 375.0f : 360.0f; - fX2 = (FrontEndMenuManager.m_PrefsUseWideScreen ? 43.52f : 54.4f) + (FrontEndMenuManager.m_PrefsUseWideScreen ? 375.0f : 360.0f); - CRect rect3(PSP_SCREEN_SCALE_X(fX1), PSP_SCREEN_SCALE_Y(40.0f), PSP_SCREEN_SCALE_X(fX2), PSP_SCREEN_SCALE_Y(50.0f)); - CRGBA color3(255, 255, 255, m_HudAlpha); - Sprites[HUD_BAR_OUTLINE].Draw(rect3, color3, 0.01f, 0.0f, 1.0f, 0.0f, 0.01f, 1.0f, 1.0f, 1.0f); - - if (fMaxHealth > 100.0f) - { - CFont::SetFontStyle(FONT_STANDARD); - CFont::SetDropShadowPosition(0); - CFont::SetDropColor(CRGBA(0, 0, 0, m_HudAlpha)); - CFont::SetColor(CRGBA(255, 255, 255, m_HudAlpha)); - CFont::SetCentreOn(); - if (fMaxHealth > 125.0f) - CFont::SetScale(FrontEndMenuManager.StretchX(PSP_SCALE_TO_PS2_X(FrontEndMenuManager.m_PrefsUseWideScreen ? 0.3375f : 0.45f)), FrontEndMenuManager.StretchY(PSP_SCALE_TO_PS2_Y(0.75f))); - else - CFont::SetScale(FrontEndMenuManager.StretchX(PSP_SCALE_TO_PS2_X(FrontEndMenuManager.m_PrefsUseWideScreen ? 0.2625f : 0.35f)), FrontEndMenuManager.StretchY(PSP_SCALE_TO_PS2_Y(0.6f))); - - if (FrontEndMenuManager.m_PrefsUseWideScreen) - fX1 = 375.0f + 12.0f; - else - fX1 = 360.0f + 15.0f; - CFont::PrintString(PSP_SCREEN_SCALE_X(fX1), PSP_SCREEN_SCALE_Y(36.0f), (wchar*)L"+"); - } - -} - -int ArmourFlashTimer = 50; - -void -CHud::DrawArmourBar(int16 value) -{ - if (m_ItemToFlash == ITEM_ARMOUR) { - if (CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_fArmour > 10.0f) { - if (ArmourFlashTimer-- == 0) { - m_ItemToFlash = -1; - ArmourFlashTimer = 50; - } - } - } - float fArmour = value; - float fMaxArmour = CWorld::Players[CWorld::PlayerInFocus].m_nMaxArmour; - fArmour = clamp(fArmour, 0.0f, fMaxArmour); - float fWidth = (fArmour / fMaxArmour) * 40.0f + 16.0f + 4.0f; - float u = fWidth / 64.0f; - if (value == 0) { - fWidth = 0.0f; - u = 0.0f; - } else if (value == fMaxArmour) { - fWidth = 64.0f; - u = 1.0f; - } - - if (FrontEndMenuManager.m_PrefsUseWideScreen) - fWidth *= 0.68f; - else - fWidth *= 0.85f; - - float fX1 = FrontEndMenuManager.m_PrefsUseWideScreen ? 375.0f : 360.0f; - float fX2 = fWidth + (FrontEndMenuManager.m_PrefsUseWideScreen ? 375.0f : 360.0f); - CRect rect1(PSP_SCREEN_SCALE_X(fX1), PSP_SCREEN_SCALE_Y(28.0f), PSP_SCREEN_SCALE_X(fX2), PSP_SCREEN_SCALE_Y(38.0f)); - CRGBA color1(255, 255, 255, m_HudAlpha); - Sprites[HUD_BAR_INSIDE1].Draw(rect1, color1, 0.0f, 0.0f, u, 0.0f, 0.0f, 1.0f, u, 1.0f); - - fX1 = fWidth + (FrontEndMenuManager.m_PrefsUseWideScreen ? 375.0f : 360.0f); - fX2 = (FrontEndMenuManager.m_PrefsUseWideScreen ? 43.52f : 54.4f) + (FrontEndMenuManager.m_PrefsUseWideScreen ? 375.0f : 360.0f); - CRect rect2(PSP_SCREEN_SCALE_X(fX1), PSP_SCREEN_SCALE_Y(28.0f), PSP_SCREEN_SCALE_X(fX2), PSP_SCREEN_SCALE_Y(38.0f)); - CRGBA color2(255, 255, 255, m_HudAlpha); - Sprites[HUD_BAR_INSIDE1DARK].Draw(rect2, color2, u, 0.0f, 1.0f, 0.0f, u, 1.0f, 1.0f, 1.0f); - - fX1 = FrontEndMenuManager.m_PrefsUseWideScreen ? 375.0f : 360.0f; - fX2 = (FrontEndMenuManager.m_PrefsUseWideScreen ? 43.52f : 54.4f) + (FrontEndMenuManager.m_PrefsUseWideScreen ? 375.0f : 360.0f); - CRect rect3(PSP_SCREEN_SCALE_X(fX1), PSP_SCREEN_SCALE_Y(28.0f), PSP_SCREEN_SCALE_X(fX2), PSP_SCREEN_SCALE_Y(38.0f)); - CRGBA color3(255, 255, 255, m_HudAlpha); - Sprites[HUD_BAR_OUTLINE].Draw(rect3, color3, 0.01f, 0.0f, 1.0f, 0.0f, 0.01f, 1.0f, 1.0f, 1.0f); - - if (fMaxArmour > 100.0f) { - CFont::SetFontStyle(FONT_STANDARD); - CFont::SetDropShadowPosition(0); - CFont::SetDropColor(CRGBA(0, 0, 0, m_HudAlpha)); - CFont::SetColor(CRGBA(255, 255, 255, m_HudAlpha)); - CFont::SetCentreOn(); - if (fMaxArmour > 125.0f) - CFont::SetScale(FrontEndMenuManager.StretchX(PSP_SCALE_TO_PS2_X(FrontEndMenuManager.m_PrefsUseWideScreen ? 0.3375f : 0.45f)), FrontEndMenuManager.StretchY(PSP_SCALE_TO_PS2_Y(0.75f))); - else - CFont::SetScale(FrontEndMenuManager.StretchX(PSP_SCALE_TO_PS2_X(FrontEndMenuManager.m_PrefsUseWideScreen ? 0.2625f : 0.35f)), FrontEndMenuManager.StretchY(PSP_SCALE_TO_PS2_Y(0.6f))); - - if (FrontEndMenuManager.m_PrefsUseWideScreen) - fX1 = 375.0f + 12.0f; - else - fX1 = 360.0f + 15.0f; - CFont::PrintString(PSP_SCREEN_SCALE_X(fX1), PSP_SCREEN_SCALE_Y(24.0f), (wchar*)L"+"); - } - -} - -void -CHud::DrawTimeAndCashNumbers(char *str, float x, float y, bool secondSet) -{ - CRGBA color(255, 255, 255, m_HudAlpha); - - float width = 11.0f; - if (FrontEndMenuManager.m_PrefsUseWideScreen) - width = 9.0f; - - float height = 10.0f; - while (*str) { - uint8 c = *str; - if (c >= '0' && c <= ':') - { - if (secondSet) c -= '%'; - else c -= '0'; - } else { - if (c == 22) { - if (secondSet) - color = CRGBA(62, 141, 188, m_HudAlpha); - else - color = CRGBA(192, 155, 54, m_HudAlpha); - } else if (!secondSet) - c = 10; - else - c = 21; - } - - int row = c / 8; - int col = c - row * 8; - float width2 = width; - if (c == 22) - width2 += 3.0f; - CRect rect(PSP_SCREEN_SCALE_X(x), PSP_SCREEN_SCALE_Y(y), PSP_SCREEN_SCALE_X(x+ width2), PSP_SCREEN_SCALE_Y(y) + PSP_SCREEN_SCALE_Y(height)); - - float u = col * 0.125f; - // TODO(LCS): some odd calculation with u going on in here if it's < 0, it might be fabs, but maybe not - - float v = row * 0.265625f; - // TODO(LCS): same odd calculation with v as above - - str++; - Sprites[HUD_HUDNUMBERS].Draw(rect, color, u, v, u + 0.125f, v, u, v + 0.265625f, u + 0.125f, v + 0.265625f); - - x += (width - 2.0f); - if (c == 10) - x -= 4.0f; - -#ifdef GTA_PSP - x = Ceil(PSP_SCREEN_SCALE_X(x)) * ((float)PSP_DEFAULT_SCREEN_WIDTH / (float)SCREEN_WIDTH); -#else - // BUG: actually above wasn't PSP only but on higher resolutions things don't look like they were meant to, so we stick with PS2 version here - x = Ceil(PSP_SCALE_TO_PS2_X(x)) * ((float)PSP_DEFAULT_SCREEN_WIDTH / (float)DEFAULT_SCREEN_WIDTH); -#endif - } -} - -void -CHud::DrawCash() -{ - char str[200]; - sprintf(str, "$%08d", CWorld::Players[CWorld::PlayerInFocus].m_nMoney); - DrawTimeAndCashNumbers(str, FrontEndMenuManager.m_PrefsUseWideScreen ? 386.0f : 373.0f, 53.0f, true); -} - -void -CHud::DrawTime() -{ - // TODO(LCS): a lot more code should be here - - char str[24]; - sprintf(str, "%02d:%02d", CClock::ms_nGameClockHours, CClock::ms_nGameClockMinutes); - DrawTimeAndCashNumbers(str, FrontEndMenuManager.m_PrefsUseWideScreen ? 386.0f : 373.0f, 17.0f, false); -} - - void CHud::DrawAfterFade() { RwRenderStateSet(rwRENDERSTATETEXTUREFILTER, (void*)rwFILTERNEAREST); @@ -2262,4 +2080,4 @@ CHud::ResetWastedText(void) BigMessageInUse[0] = 0.0f; m_BigMessage[2][0] = 0; m_BigMessage[0][0] = 0; -} \ No newline at end of file +} diff --git a/src/render/Hud.h b/src/render/Hud.h index 4ae3688..a4b9609 100644 --- a/src/render/Hud.h +++ b/src/render/Hud.h @@ -38,23 +38,15 @@ enum eSprites HUD_FIST, HUD_SITEROCKET = 41, HUD_RADARDISC = 50, - HUD_BAR_INSIDE1DARK = 57, - HUD_BAR_INSIDE2DARK, - HUD_HUDNUMBERS, - HUD_BAR_INSIDE1, - HUD_BAR_INSIDE2, - HUD_BAR_OUTLINE, - HUD_SITESNIPER, + HUD_SITESNIPER = 63, HUD_SITEM16, HUD_SITELASER, HUD_LASERDOT, HUD_VIEWFINDER, HUD_BLEEDER, - NUM_HUD_SPRITES = 70, + NUM_HUD_SPRITES = 69, }; -extern float BigMessageInUse[6]; - class CHud { public: @@ -90,6 +82,7 @@ public: static int32 m_ClockState; // These aren't really in CHud + static float BigMessageInUse[6]; static float BigMessageAlpha[6]; static float BigMessageX[6]; static float OddJob2OffTimer; @@ -124,9 +117,6 @@ public: static uint32 m_LastWeapon; static uint32 m_LastTimeEnergyLost; - static wchar* gLastPrintForeverString; - static uint8 m_HudAlpha; - public: static void Draw(); static void DrawAfterFade(); @@ -146,9 +136,4 @@ public: static void Shutdown(); static float DrawFadeState(DRAW_FADE_STATE, int); static void ResetWastedText(void); - static void DrawHealthBar(int16 value); - static void DrawArmourBar(int16 value); - static void DrawTimeAndCashNumbers(char *str, float x, float y, bool secondSet); - static void DrawCash(); - static void DrawTime(); }; diff --git a/src/render/MBlur.cpp b/src/render/MBlur.cpp index ab77bf9..9f5122d 100644 --- a/src/render/MBlur.cpp +++ b/src/render/MBlur.cpp @@ -6,6 +6,7 @@ #include #endif +#include "main.h" #include "General.h" #include "RwHelper.h" #include "Camera.h" @@ -333,6 +334,7 @@ CMBlur::MotionBlurRender(RwCamera *cam, uint32 red, uint32 green, uint32 blue, u #ifdef EXTENDED_COLOURFILTER CPostFX::Render(cam, red, green, blue, blur, type, bluralpha); #else + PUSH_RENDERGROUP("CMBlur::MotionBlurRender"); RwRGBA color = { (RwUInt8)red, (RwUInt8)green, (RwUInt8)blue, (RwUInt8)blur }; #ifdef GTA_PS2 if( pFrontBuffer ) @@ -348,6 +350,7 @@ CMBlur::MotionBlurRender(RwCamera *cam, uint32 red, uint32 green, uint32 blue, u RwRasterPopContext(); } #endif + POP_RENDERGROUP(); #endif } @@ -590,8 +593,6 @@ CMBlur::AddRenderFx(RwCamera *cam, RwRect *rect, float z, FxType type) void CMBlur::OverlayRenderFx(RwCamera *cam, RwRaster *frontBuf) { - //TODO(LCS) -#if 0 bool drawWaterDrops = false; RwIm2DVertex verts[4]; int red = (0.75f*CTimeCycle::GetDirectionalRed() + CTimeCycle::GetAmbientRed())*0.55f * 255; @@ -797,5 +798,4 @@ CMBlur::OverlayRenderFx(RwCamera *cam, RwRaster *frontBuf) RwRenderStateSet(rwRENDERSTATEZTESTENABLE, (void*)FALSE); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)FALSE); pBufVertCount = 0; -#endif } diff --git a/src/render/Particle.cpp b/src/render/Particle.cpp index 3ce0063..14b4824 100644 --- a/src/render/Particle.cpp +++ b/src/render/Particle.cpp @@ -1,5 +1,6 @@ #include "common.h" +#include "main.h" #include "General.h" #include "Timer.h" #include "TxdStore.h" @@ -12,7 +13,6 @@ #include "Replay.h" #include "Stats.h" #include "Weather.h" -#include "WaterLevel.h" #include "MBlur.h" #include "main.h" #include "AudioScriptObject.h" @@ -212,6 +212,7 @@ RwRaster *gpRainDropRaster; RwTexture *gpSparkTex; RwTexture *gpNewspaperTex; RwTexture *gpGunSmokeTex; +RwTexture *gpDotTex; RwTexture *gpHeatHazeTex; RwTexture *gpBeastieTex; RwTexture *gpRainDripTex[MAX_RAINDRIP_FILES]; @@ -220,30 +221,34 @@ RwTexture *gpRainDripDarkTex[MAX_RAINDRIP_FILES]; RwRaster *gpSparkRaster; RwRaster *gpNewspaperRaster; RwRaster *gpGunSmokeRaster; +RwRaster *gpDotRaster; RwRaster *gpHeatHazeRaster; RwRaster *gpBeastieRaster; RwRaster *gpRainDripRaster[MAX_RAINDRIP_FILES]; RwRaster *gpRainDripDarkRaster[MAX_RAINDRIP_FILES]; -RwTexture *gpFireHoseTex; -RwRaster *gpFireHoseRaster; - -RwTexture *gpMultiPlayerHitTex; -RwRaster *gpMultiPlayerHitRaster; - float CParticle::ms_afRandTable[CParticle::RAND_TABLE_SIZE]; CParticle *CParticle::m_pUnusedListHead; float CParticle::m_SinTable[CParticle::SIN_COS_TABLE_SIZE]; float CParticle::m_CosTable[CParticle::SIN_COS_TABLE_SIZE]; int32 Randomizer; +int32 nParticleCreationInterval = 1; float PARTICLE_WIND_TEST_SCALE = 0.002f; +float fParticleScaleLimit = 0.5f; + +bool clearWaterDrop; +int32 numWaterDropOnScreen; #ifdef DEBUGMENU SETTWEAKPATH("Particle"); +TWEAKINT32(nParticleCreationInterval, 0, 5, 1); +TWEAKFLOAT(fParticleScaleLimit, 0.0f, 1.0f, 0.1f); TWEAKFUNC(CParticle::ReloadConfig); #endif + + void CParticle::ReloadConfig() { debug("Initialising CParticleMgr..."); @@ -281,6 +286,14 @@ void CParticle::ReloadConfig() gParticleArray[i].m_nFadeAlphaTimer = 0; + gParticleArray[i].m_nCurrentZRotation = 0; + + gParticleArray[i].m_nZRotationTimer = 0; + + gParticleArray[i].m_fCurrentZRadius = 0.0f; + + gParticleArray[i].m_nZRadiusTimer = 0; + gParticleArray[i].m_nCurrentFrame = 0; gParticleArray[i].m_nAnimationSpeedTimer = 0; @@ -305,7 +318,7 @@ void CParticle::Initialise() } for ( int32 i = 0; i < SIN_COS_TABLE_SIZE; i++ ) - { + { float angle = DEGTORAD(float(i) * float(360.0f / SIN_COS_TABLE_SIZE)); m_SinTable[i] = ::Sin(angle); @@ -320,98 +333,83 @@ void CParticle::Initialise() for ( int32 i = 0; i < MAX_SMOKE_FILES; i++ ) { gpSmokeTex[i] = RwTextureRead(SmokeFiles[i], nil); - ASSERT(gpSmokeTex[i] != nil); gpSmokeRaster[i] = RwTextureGetRaster(gpSmokeTex[i]); } gpSmoke2Tex = RwTextureRead("smokeII_3", nil); - ASSERT(gpSmoke2Tex != nil); gpSmoke2Raster = RwTextureGetRaster(gpSmoke2Tex); for ( int32 i = 0; i < MAX_RUBBER_FILES; i++ ) { gpRubberTex[i] = RwTextureRead(RubberFiles[i], nil); - ASSERT(gpRubberTex[i] != nil); gpRubberRaster[i] = RwTextureGetRaster(gpRubberTex[i]); } for ( int32 i = 0; i < MAX_RAINSPLASH_FILES; i++ ) { gpRainSplashTex[i] = RwTextureRead(RainSplashFiles[i], nil); - ASSERT(gpRainSplashTex[i] != nil); gpRainSplashRaster[i] = RwTextureGetRaster(gpRainSplashTex[i]); } for ( int32 i = 0; i < MAX_WATERSPRAY_FILES; i++ ) { gpWatersprayTex[i] = RwTextureRead(WatersprayFiles[i], nil); - ASSERT(gpWatersprayTex[i] != nil); gpWatersprayRaster[i] = RwTextureGetRaster(gpWatersprayTex[i]); } for ( int32 i = 0; i < MAX_EXPLOSIONMEDIUM_FILES; i++ ) { gpExplosionMediumTex[i] = RwTextureRead(ExplosionMediumFiles[i], nil); - ASSERT(gpExplosionMediumTex[i] != nil); gpExplosionMediumRaster[i] = RwTextureGetRaster(gpExplosionMediumTex[i]); } for ( int32 i = 0; i < MAX_GUNFLASH_FILES; i++ ) { gpGunFlashTex[i] = RwTextureRead(GunFlashFiles[i], nil); - ASSERT(gpGunFlashTex[i] != nil); gpGunFlashRaster[i] = RwTextureGetRaster(gpGunFlashTex[i]); } gpRainDropTex = RwTextureRead("raindrop4", nil); - ASSERT(gpRainDropTex != nil); gpRainDropRaster = RwTextureGetRaster(gpRainDropTex); + for ( int32 i = 0; i < MAX_RAINSPLASHUP_FILES; i++ ) { gpRainSplashupTex[i] = RwTextureRead(RainSplashupFiles[i], nil); - ASSERT(gpRainSplashupTex[i] != nil); gpRainSplashupRaster[i] = RwTextureGetRaster(gpRainSplashupTex[i]); } for ( int32 i = 0; i < MAX_BIRDFRONT_FILES; i++ ) { gpBirdfrontTex[i] = RwTextureRead(BirdfrontFiles[i], nil); - ASSERT(gpBirdfrontTex[i] != nil); gpBirdfrontRaster[i] = RwTextureGetRaster(gpBirdfrontTex[i]); } for ( int32 i = 0; i < MAX_BOAT_FILES; i++ ) { gpBoatTex[i] = RwTextureRead(BoatFiles[i], nil); - ASSERT(gpBoatTex[i] != nil); gpBoatRaster[i] = RwTextureGetRaster(gpBoatTex[i]); } for ( int32 i = 0; i < MAX_CARDEBRIS_FILES; i++ ) { gpCarDebrisTex[i] = RwTextureRead(CardebrisFiles[i], nil); - ASSERT(gpCarDebrisTex[i] != nil); gpCarDebrisRaster[i] = RwTextureGetRaster(gpCarDebrisTex[i]); } for ( int32 i = 0; i < MAX_CARSPLASH_FILES; i++ ) { gpCarSplashTex[i] = RwTextureRead(CarsplashFiles[i], nil); - ASSERT(gpCarSplashTex[i] != nil); gpCarSplashRaster[i] = RwTextureGetRaster(gpCarSplashTex[i]); } gpBoatWakeTex = RwTextureRead("boatwake2", nil); - ASSERT(gpBoatWakeTex != nil); gpBoatWakeRaster = RwTextureGetRaster(gpBoatWakeTex); gpFlame1Tex = RwTextureRead("flame1", nil); - ASSERT(gpFlame1Tex != nil); gpFlame1Raster = RwTextureGetRaster(gpFlame1Tex); gpFlame5Tex = RwTextureRead("flame5", nil); - ASSERT(gpFlame5Tex != nil); //#ifdef FIX_BUGS #if 0 @@ -422,92 +420,70 @@ void CParticle::Initialise() #endif gpRainDropSmallTex = RwTextureRead("rainsmall", nil); - ASSERT(gpRainDropSmallTex != nil); gpRainDropSmallRaster = RwTextureGetRaster(gpRainDropSmallTex); gpBloodTex = RwTextureRead("blood", nil); - ASSERT(gpBloodTex != nil); gpBloodRaster = RwTextureGetRaster(gpBloodTex); gpLeafTex[0] = RwTextureRead("gameleaf01_64", nil); - ASSERT(gpLeafTex[0] != nil); gpLeafRaster[0] = RwTextureGetRaster(gpLeafTex[0]); gpLeafTex[1] = RwTextureRead("letter", nil); - ASSERT(gpLeafTex[1] != nil); gpLeafRaster[1] = RwTextureGetRaster(gpLeafTex[1]); gpCloudTex1 = RwTextureRead("cloud3", nil); - ASSERT(gpCloudTex1 != nil); gpCloudRaster1 = RwTextureGetRaster(gpCloudTex1); gpCloudTex4 = RwTextureRead("cloudmasked", nil); - ASSERT(gpCloudTex4 != nil); gpCloudRaster4 = RwTextureGetRaster(gpCloudTex4); gpBloodSmallTex = RwTextureRead("bloodsplat2", nil); - ASSERT(gpBloodSmallTex != nil); gpBloodSmallRaster = RwTextureGetRaster(gpBloodSmallTex); gpGungeTex = RwTextureRead("gunge", nil); - ASSERT(gpGungeTex != nil); gpGungeRaster = RwTextureGetRaster(gpGungeTex); gpCollisionSmokeTex = RwTextureRead("collisionsmoke", nil); - ASSERT(gpCollisionSmokeTex != nil); gpCollisionSmokeRaster = RwTextureGetRaster(gpCollisionSmokeTex); gpBulletHitTex = RwTextureRead("bullethitsmoke", nil); - ASSERT(gpBulletHitTex != nil); gpBulletHitRaster = RwTextureGetRaster(gpBulletHitTex); gpGunShellTex = RwTextureRead("gunshell", nil); - ASSERT(gpGunShellTex != nil); gpGunShellRaster = RwTextureGetRaster(gpGunShellTex); - gpPointlightTex = RwTextureRead("smoke5", nil); - ASSERT(gpPointlightTex != nil); + gpPointlightTex = RwTextureRead("pointlight", nil); gpPointlightRaster = RwTextureGetRaster(gpPointlightTex); gpSparkTex = RwTextureRead("spark", nil); - ASSERT(gpSparkTex != nil); gpSparkRaster = RwTextureGetRaster(gpSparkTex); - gpNewspaperTex = RwTextureRead("ballot_paper", nil); - ASSERT(gpNewspaperTex != nil); + gpNewspaperTex = RwTextureRead("newspaper02_64", nil); gpNewspaperRaster = RwTextureGetRaster(gpNewspaperTex); gpGunSmokeTex = RwTextureRead("gunsmoke3", nil); - ASSERT(gpGunSmokeTex != nil); gpGunSmokeRaster = RwTextureGetRaster(gpGunSmokeTex); + gpDotTex = RwTextureRead("dot", nil); + gpDotRaster = RwTextureGetRaster(gpDotTex); + gpHeatHazeTex = RwTextureRead("heathaze", nil); - ASSERT(gpHeatHazeTex != nil); gpHeatHazeRaster = RwTextureGetRaster(gpHeatHazeTex); gpBeastieTex = RwTextureRead("beastie", nil); - ASSERT(gpBeastieTex != nil); gpBeastieRaster = RwTextureGetRaster(gpBeastieTex); gpRainDripTex[0] = RwTextureRead("raindrip64", nil); - ASSERT(gpRainDripTex[0] != nil); gpRainDripRaster[0] = RwTextureGetRaster(gpRainDripTex[0]); gpRainDripTex[1] = RwTextureRead("raindripb64", nil); - ASSERT(gpRainDripTex[1] != nil); gpRainDripRaster[1] = RwTextureGetRaster(gpRainDripTex[1]); gpRainDripDarkTex[0] = RwTextureRead("raindrip64_d", nil); - ASSERT(gpRainDripDarkTex[0] != nil); gpRainDripDarkRaster[0] = RwTextureGetRaster(gpRainDripDarkTex[0]); - gpMultiPlayerHitTex = RwTextureRead("mphit", nil); - ASSERT(gpMultiPlayerHitTex != nil); - gpMultiPlayerHitRaster = RwTextureGetRaster(gpMultiPlayerHitTex); - - gpFireHoseTex = RwTextureRead("firehose", nil); - ASSERT(gpFireHoseTex != nil); - gpFireHoseRaster = RwTextureGetRaster(gpFireHoseTex); + gpRainDripDarkTex[1] = RwTextureRead("raindripb64_d", nil); + gpRainDripDarkRaster[1] = RwTextureGetRaster(gpRainDripDarkTex[1]); CTxdStore::PopCurrentTxd(); @@ -515,84 +491,98 @@ void CParticle::Initialise() { tParticleSystemData *entry = &mod_ParticleSystemManager.m_aParticles[i]; - switch( i ) + switch ( i ) { case PARTICLE_SPARK: - entry->m_ppRaster = &gpRainDropSmallRaster; - break; - case PARTICLE_SPARK_SMALL: + case PARTICLE_RAINDROP_SMALL: + case PARTICLE_HELI_ATTACK: entry->m_ppRaster = &gpRainDropSmallRaster; break; - + case PARTICLE_WATER_SPARK: entry->m_ppRaster = &gpSparkRaster; break; - + case PARTICLE_WHEEL_DIRT: - entry->m_ppRaster = &gpSmoke2Raster; - break; - case PARTICLE_SAND: + case PARTICLE_STEAM2: + case PARTICLE_STEAM_NY: + case PARTICLE_STEAM_NY_SLOWMOTION: + case PARTICLE_GROUND_STEAM: + case PARTICLE_ENGINE_STEAM: + case PARTICLE_PEDFOOT_DUST: + case PARTICLE_CAR_DUST: + case PARTICLE_EXHAUST_FUMES: entry->m_ppRaster = &gpSmoke2Raster; break; - + case PARTICLE_WHEEL_WATER: + case PARTICLE_WATER: + case PARTICLE_SMOKE: + case PARTICLE_SMOKE_SLOWMOTION: + case PARTICLE_DRY_ICE: + case PARTICLE_GARAGEPAINT_SPRAY: + case PARTICLE_STEAM: + case PARTICLE_WATER_CANNON: + case PARTICLE_EXTINGUISH_STEAM: + case PARTICLE_HELI_DUST: + case PARTICLE_PAINT_SMOKE: + case PARTICLE_BULLETHIT_SMOKE: entry->m_ppRaster = gpSmokeRaster; break; - + case PARTICLE_BLOOD: entry->m_ppRaster = &gpBloodRaster; break; - + case PARTICLE_BLOOD_SMALL: - entry->m_ppRaster = &gpBloodSmallRaster; - break; - case PARTICLE_BLOOD_SPURT: entry->m_ppRaster = &gpBloodSmallRaster; break; - + case PARTICLE_DEBRIS: + case PARTICLE_TREE_LEAVES: entry->m_ppRaster = gpLeafRaster; break; - + case PARTICLE_DEBRIS2: entry->m_ppRaster = &gpGungeRaster; break; - + case PARTICLE_FLYERS: entry->m_ppRaster = &gpNewspaperRaster; break; - - case PARTICLE_WATER: - entry->m_ppRaster = gpSmokeRaster; - break; - + case PARTICLE_FLAME: + case PARTICLE_CARFLAME: entry->m_ppRaster = &gpFlame1Raster; break; - + case PARTICLE_FIREBALL: entry->m_ppRaster = &gpFlame5Raster; break; - + case PARTICLE_GUNFLASH: - entry->m_ppRaster = gpGunFlashRaster; - break; - case PARTICLE_GUNFLASH_NOANIM: entry->m_ppRaster = gpGunFlashRaster; break; - + + case PARTICLE_GUNSMOKE: + case PARTICLE_WATERDROP: + case PARTICLE_BLOODDROP: + case PARTICLE_HEATHAZE: + case PARTICLE_HEATHAZE_IN_DIST: entry->m_ppRaster = nil; break; - + case PARTICLE_GUNSMOKE2: + case PARTICLE_BOAT_THRUSTJET: + case PARTICLE_RUBBER_SMOKE: entry->m_ppRaster = gpRubberRaster; break; - + case PARTICLE_CIGARETTE_SMOKE: entry->m_ppRaster = &gpGunSmokeRaster; break; @@ -600,56 +590,20 @@ void CParticle::Initialise() case PARTICLE_TEARGAS: entry->m_ppRaster = &gpHeatHazeRaster; break; - - case PARTICLE_SMOKE: - case PARTICLE_SMOKE_SLOWMOTION: - case PARTICLE_DRY_ICE: - entry->m_ppRaster = gpSmokeRaster; - break; - case PARTICLE_GARAGEPAINT_SPRAY: - entry->m_ppRaster = gpSmokeRaster; - break; - case PARTICLE_SHARD: + case PARTICLE_RAINDROP: + case PARTICLE_RAINDROP_2D: entry->m_ppRaster = &gpRainDropRaster; break; - + case PARTICLE_SPLASH: + case PARTICLE_PED_SPLASH: + case PARTICLE_CAR_SPLASH: + case PARTICLE_WATER_HYDRANT: entry->m_ppRaster = gpCarSplashRaster; break; - - case PARTICLE_CARFLAME: - entry->m_ppRaster = &gpFlame1Raster; - break; - - case PARTICLE_STEAM: - entry->m_ppRaster = gpSmokeRaster; - break; - - case PARTICLE_STEAM2: - entry->m_ppRaster = &gpSmoke2Raster; - break; - - case PARTICLE_STEAM_NY: - case PARTICLE_STEAM_NY_SLOWMOTION: - case PARTICLE_GROUND_STEAM: - case PARTICLE_HYDRANT_STEAM: - entry->m_ppRaster = &gpSmoke2Raster; - break; - - case PARTICLE_ENGINE_STEAM: - entry->m_ppRaster = &gpSmoke2Raster; - break; - - case PARTICLE_RAINDROP: - entry->m_ppRaster = &gpRainDropRaster; - break; - case PARTICLE_RAINDROP_SMALL: - entry->m_ppRaster = &gpRainDropSmallRaster; - break; - case PARTICLE_RAIN_SPLASH: case PARTICLE_RAIN_SPLASH_BIGGROW: entry->m_ppRaster = gpRainSplashRaster; @@ -663,140 +617,44 @@ void CParticle::Initialise() entry->m_ppRaster = gpWatersprayRaster; break; - case PARTICLE_RAINDROP_2D: - entry->m_ppRaster = &gpRainDropRaster; - break; - case PARTICLE_EXPLOSION_MEDIUM: - entry->m_ppRaster = gpExplosionMediumRaster; - break; - case PARTICLE_EXPLOSION_LARGE: - entry->m_ppRaster = gpExplosionMediumRaster; - break; - case PARTICLE_EXPLOSION_MFAST: - entry->m_ppRaster = gpExplosionMediumRaster; - break; - case PARTICLE_EXPLOSION_LFAST: entry->m_ppRaster = gpExplosionMediumRaster; break; - case PARTICLE_CAR_SPLASH: - entry->m_ppRaster = gpCarSplashRaster; - break; - case PARTICLE_BOAT_SPLASH: entry->m_ppRaster = &gpBoatWakeRaster; break; - case PARTICLE_BOAT_THRUSTJET: - entry->m_ppRaster = gpRubberRaster; - break; - - case PARTICLE_WATER_HYDRANT: - entry->m_ppRaster = gpCarSplashRaster; - break; - - case PARTICLE_WATER_CANNON: - entry->m_ppRaster = gpSmokeRaster; - break; - - case PARTICLE_EXTINGUISH_STEAM: - entry->m_ppRaster = gpSmokeRaster; - break; - - case PARTICLE_PED_SPLASH: - entry->m_ppRaster = gpCarSplashRaster; - break; - - case PARTICLE_PEDFOOT_DUST: - entry->m_ppRaster = &gpSmoke2Raster; - break; - - case PARTICLE_CAR_DUST: - entry->m_ppRaster = &gpSmoke2Raster; - break; - - case PARTICLE_HELI_DUST: - entry->m_ppRaster = gpSmokeRaster; - break; - - case PARTICLE_HELI_ATTACK: - entry->m_ppRaster = &gpRainDropSmallRaster; - break; - case PARTICLE_ENGINE_SMOKE: - entry->m_ppRaster = &gpCloudRaster4; - break; - case PARTICLE_ENGINE_SMOKE2: - case PARTICLE_ROCKET_SMOKE: - entry->m_ppRaster = &gpCloudRaster4; - break; - case PARTICLE_CARFLAME_SMOKE: - entry->m_ppRaster = &gpCloudRaster4; - break; - case PARTICLE_FIREBALL_SMOKE: + case PARTICLE_ROCKET_SMOKE: + case PARTICLE_TEST: entry->m_ppRaster = &gpCloudRaster4; break; - case PARTICLE_PAINT_SMOKE: - entry->m_ppRaster = gpSmokeRaster; - break; - - case PARTICLE_TREE_LEAVES: - entry->m_ppRaster = gpLeafRaster; - break; - case PARTICLE_CARCOLLISION_DUST: - entry->m_ppRaster = &gpCollisionSmokeRaster; - break; - - case PARTICLE_CAR_DEBRIS: - case PARTICLE_BIRD_DEBRIS: - case PARTICLE_HELI_DEBRIS: - entry->m_ppRaster = gpCarDebrisRaster; - break; - - case PARTICLE_EXHAUST_FUMES: - entry->m_ppRaster = &gpSmoke2Raster; - break; - - case PARTICLE_RUBBER_SMOKE: - entry->m_ppRaster = gpRubberRaster; - break; - case PARTICLE_BURNINGRUBBER_SMOKE: entry->m_ppRaster = &gpCollisionSmokeRaster; break; - case PARTICLE_BULLETHIT_SMOKE: - entry->m_ppRaster = gpSmokeRaster; + case PARTICLE_CAR_DEBRIS: + case PARTICLE_HELI_DEBRIS: + case PARTICLE_BIRD_DEBRIS: + entry->m_ppRaster = gpCarDebrisRaster; break; case PARTICLE_GUNSHELL_FIRST: - entry->m_ppRaster = &gpGunShellRaster; - break; - case PARTICLE_GUNSHELL: - entry->m_ppRaster = &gpGunShellRaster; - break; - case PARTICLE_GUNSHELL_BUMP1: - entry->m_ppRaster = &gpGunShellRaster; - break; - case PARTICLE_GUNSHELL_BUMP2: entry->m_ppRaster = &gpGunShellRaster; break; - case PARTICLE_TEST: - entry->m_ppRaster = &gpCloudRaster4; - break; case PARTICLE_BIRD_FRONT: entry->m_ppRaster = gpBirdfrontRaster; @@ -809,14 +667,6 @@ void CParticle::Initialise() case PARTICLE_BEASTIE: entry->m_ppRaster = &gpBeastieRaster; break; - - case PARTICLE_FERRY_CHIM_SMOKE: - entry->m_ppRaster = gpSmokeRaster; - break; - - case PARTICLE_MULTIPLAYER_HIT: - entry->m_ppRaster = &gpMultiPlayerHitRaster; - break; } } @@ -904,13 +754,8 @@ void CParticle::Shutdown() RwTextureDestroy(gpRainDripTex[i]); gpRainDripTex[i] = nil; -#ifdef FIX_BUGS - if (gpRainDripDarkTex[i]) -#endif - { - RwTextureDestroy(gpRainDripDarkTex[i]); - gpRainDripDarkTex[i] = nil; - } + RwTextureDestroy(gpRainDripDarkTex[i]); + gpRainDripDarkTex[i] = nil; } RwTextureDestroy(gpBoatWakeTex); @@ -966,18 +811,14 @@ void CParticle::Shutdown() RwTextureDestroy(gpGunSmokeTex); gpGunSmokeTex = nil; - + + RwTextureDestroy(gpDotTex); + gpDotTex = nil; RwTextureDestroy(gpHeatHazeTex); gpHeatHazeTex = nil; RwTextureDestroy(gpBeastieTex); gpBeastieTex = nil; - - RwTextureDestroy(gpMultiPlayerHitTex); - gpBeastieTex = nil; - - RwTextureDestroy(gpFireHoseTex); - gpFireHoseTex = nil; int32 slot; @@ -1029,12 +870,24 @@ CParticle *CParticle::AddParticle(tParticleType type, CVector const &vecPos, CVe CParticle *CParticle::AddParticle(tParticleType type, CVector const &vecPos, CVector const &vecDir, CEntity *pEntity, float fSize, RwRGBA const &color, int32 nRotationSpeed, int32 nRotation, int32 nCurFrame, int32 nLifeSpan) { - if ( CTimer::GetIsPaused() /*TODO: || byte_355C47*/ ) + if ( CTimer::GetIsPaused() ) return nil; -/* + + if ( ( type == PARTICLE_ENGINE_SMOKE + || type == PARTICLE_ENGINE_SMOKE2 + || type == PARTICLE_ENGINE_STEAM + || type == PARTICLE_CARFLAME_SMOKE + || type == PARTICLE_RUBBER_SMOKE + || type == PARTICLE_BURNINGRUBBER_SMOKE + || type == PARTICLE_EXHAUST_FUMES + || type == PARTICLE_CARCOLLISION_DUST ) + && nParticleCreationInterval & CTimer::GetFrameCounter() ) + { + return nil; + } + if ( !CReplay::IsPlayingBack() ) CReplay::RecordParticle(type, vecPos, vecDir, fSize, color); -*/ CParticle *pParticle = m_pUnusedListHead; @@ -1069,15 +922,38 @@ CParticle *CParticle::AddParticle(tParticleType type, CVector const &vecPos, CVe if ( psystem->m_nFadeAlphaTime ) pParticle->m_nFadeAlphaTimer /= psystem->m_nFadeAlphaTime; + pParticle->m_nCurrentZRotation = psystem->m_nZRotationInitialAngle; + pParticle->m_fCurrentZRadius = psystem->m_fInitialZRadius; + if ( nCurFrame != 0 ) pParticle->m_nCurrentFrame = nCurFrame; else pParticle->m_nCurrentFrame = psystem->m_nStartAnimationFrame; + + pParticle->m_nZRotationTimer = 0; + pParticle->m_nZRadiusTimer = 0; pParticle->m_nAnimationSpeedTimer = 0; pParticle->m_fZGround = 0.0f; - pParticle->m_vecPosition = vecPos; + + if ( type != PARTICLE_HEATHAZE ) + pParticle->m_vecPosition = vecPos; + else + { + CVector screen; + float w, h; + + if ( !CSprite::CalcScreenCoors(vecPos, &screen, &w, &h, true) ) + return nil; + + pParticle->m_vecPosition = screen; + psystem->m_vecTextureStretch.x = w; + psystem->m_vecTextureStretch.y = h; + } + pParticle->m_vecVelocity = vecDir; + + pParticle->m_vecParticleMovementOffset = CVector(0.0f, 0.0f, 0.0f); pParticle->m_nTimeWhenColorWillBeChanged = 0; if ( color.alpha != 0 ) @@ -1214,14 +1090,14 @@ CParticle *CParticle::AddParticle(tParticleType type, CVector const &vecPos, CVe break; case PARTICLE_EXPLOSION_MEDIUM: - pParticle->m_nColorIntensity -= 2 * 15 * (CGeneral::GetRandomNumber() & 1); // mb "+= -30 * rand" here ? + pParticle->m_nColorIntensity -= 30 * (CGeneral::GetRandomNumber() & 1); // mb "+= -30 * rand" here ? pParticle->m_nAnimationSpeedTimer = CGeneral::GetRandomNumber() & 7; pParticle->m_fSize = CGeneral::GetRandomNumberInRange(0.3f, 0.8f); pParticle->m_vecPosition.z -= CGeneral::GetRandomNumberInRange(-0.1f, 0.1f); break; case PARTICLE_EXPLOSION_LARGE: - pParticle->m_nColorIntensity -= 2 * 15 * (CGeneral::GetRandomNumber() & 1); // mb "+= -30 * rand" here ? + pParticle->m_nColorIntensity -= 30 * (CGeneral::GetRandomNumber() & 1); // mb "+= -30 * rand" here ? pParticle->m_nAnimationSpeedTimer = CGeneral::GetRandomNumber() & 7; pParticle->m_fSize = CGeneral::GetRandomNumberInRange(0.8f, 1.4f); pParticle->m_vecPosition.z -= CGeneral::GetRandomNumberInRange(-0.3f, 0.3f); @@ -1247,7 +1123,7 @@ CParticle *CParticle::AddParticle(tParticleType type, CVector const &vecPos, CVe void CParticle::Update() { - if ( CTimer::GetIsPaused() /*TODO: || byte_355C47*/ ) + if ( CTimer::GetIsPaused() ) return; CRGBA color(0, 0, 0, 0); @@ -1260,9 +1136,7 @@ void CParticle::Update() float fFricDeccel99 = pow(0.99f, CTimer::GetTimeStep()); CParticleObject::UpdateAll(); - - // no more erectedcocks -#ifndef FIX_BUGS + // ejaculation at 23:00, 23:15, 23:30, 23:45 if ( CClock::ms_nGameClockHours == 23 && ( CClock::ms_nGameClockMinutes == 0 @@ -1281,7 +1155,6 @@ void CParticle::Update() 1, 1000); } -#endif for ( int32 i = 0; i < MAX_PARTICLES; i++ ) { @@ -1301,7 +1174,68 @@ void CParticle::Update() CVector vecMoveStep = particle->m_vecVelocity * CTimer::GetTimeStep(); CVector vecPos = particle->m_vecPosition; - + + if ( numWaterDropOnScreen == 0 ) + clearWaterDrop = false; + + if ( psystem->m_Type == PARTICLE_WATERDROP ) + { + if ( CGame::IsInInterior() || clearWaterDrop == true ) + { + bRemoveParticle = true; + continue; + } + + static uint8 nWaterDropCount; + + if ( nWaterDropCount == 5 ) + { + vecMoveStep = CVector(0.0f, 0.0f, 0.0f); + particle->m_nTimeWhenWillBeDestroyed += 1250; + nWaterDropCount = 0; + } + else + { + if ( TheCamera.m_CameraAverageSpeed > 0.35f ) + { + if ( vecMoveStep.Magnitude() > 0.5f ) + { + if ( vecMoveStep.Magnitude() > 0.4f && vecMoveStep.Magnitude() < 0.8f ) + { + vecMoveStep.x += TheCamera.m_CameraAverageSpeed * 1.5f; + vecMoveStep.y += TheCamera.m_CameraAverageSpeed * 1.5f; + } + else if ( vecMoveStep.Magnitude() != 0.0f ) + { + vecMoveStep.x += CGeneral::GetRandomNumberInRange(0.01f, 0.05f); + vecMoveStep.y += CGeneral::GetRandomNumberInRange(0.01f, 0.05f); + } + } + } + + nWaterDropCount++; + } + + if ( vecPos.z <= 1.5f ) + vecMoveStep.z = 0.0f; + } + + if ( psystem->m_Type == PARTICLE_HEATHAZE || psystem->m_Type == PARTICLE_HEATHAZE_IN_DIST ) + { +#ifdef FIX_BUGS + int32 nSinCosIndex = (int32(DEGTORAD((float)particle->m_nRotation) * float(SIN_COS_TABLE_SIZE) / TWOPI) + SIN_COS_TABLE_SIZE) % SIN_COS_TABLE_SIZE; +#else + int32 nSinCosIndex = int32(DEGTORAD((float)particle->m_nRotation) * float(SIN_COS_TABLE_SIZE) / TWOPI) % SIN_COS_TABLE_SIZE; +#endif + vecMoveStep.x = Sin(nSinCosIndex); + vecMoveStep.y = Sin(nSinCosIndex); + + if ( psystem->m_Type == PARTICLE_HEATHAZE_IN_DIST ) + particle->m_nRotation = int16((float)particle->m_nRotation + 0.75f); + else + particle->m_nRotation = int16((float)particle->m_nRotation + 1.0f); + } + if ( psystem->m_Type == PARTICLE_BEASTIE ) { #ifdef FIX_BUGS @@ -1324,7 +1258,28 @@ void CParticle::Update() } vecPos += vecMoveStep; - + + if ( psystem->m_Type == PARTICLE_FIREBALL ) + { + AddParticle(PARTICLE_HEATHAZE, particle->m_vecPosition, CVector(0.0f, 0.0f, 0.0f), + nil, particle->m_fSize * 5.0f); + } + + if ( psystem->m_Type == PARTICLE_GUNSMOKE2 ) + { + if ( CTimer::GetFrameCounter() & 10 ) + { +#ifdef FIX_BUGS + if ( FindPlayerPed() && FindPlayerPed()->GetWeapon()->m_eWeaponType == WEAPONTYPE_MINIGUN ) +#else + if ( FindPlayerPed()->GetWeapon()->m_eWeaponType == WEAPONTYPE_MINIGUN ) +#endif + { + AddParticle(PARTICLE_HEATHAZE, particle->m_vecPosition, CVector(0.0f, 0.0f, 0.0f)); + } + } + } + if ( CWeather::Wind > 0.0f ) { if ( vecMoveStep.Magnitude() != 0.0f ) @@ -1344,15 +1299,12 @@ void CParticle::Update() || psystem->m_Type == PARTICLE_BOAT_SPLASH || psystem->m_Type == PARTICLE_RAINDROP_2D ) { - //int32 nMaxDrops = int32(6.0f * TheCamera.m_CameraAverageSpeed + 1.0f); + int32 nMaxDrops = int32(6.0f * TheCamera.m_CameraAverageSpeed + 1.0f); float fDistToCam = 0.0f; if ( psystem->m_Type == PARTICLE_BOAT_SPLASH || psystem->m_Type == PARTICLE_CAR_SPLASH ) { - float fWaterLevel = 0.0f; - CWaterLevel::GetWaterLevelNoWaves(vecPos.x, vecPos.y, vecPos.z, &fWaterLevel); - - if ( vecPos.z + particle->m_fSize < fWaterLevel ) + if ( vecPos.z + particle->m_fSize < 5.0f ) { bRemoveParticle = true; continue; @@ -1363,16 +1315,61 @@ void CParticle::Update() case LOOKING_LEFT: case LOOKING_RIGHT: case LOOKING_FORWARD: - //nMaxDrops /= 2; + nMaxDrops /= 2; break; default: - //nMaxDrops = 0; + nMaxDrops = 0; break; } fDistToCam = (TheCamera.GetPosition() - vecPos).Magnitude(); } + + if ( numWaterDropOnScreen < nMaxDrops && numWaterDropOnScreen < 63 + && fDistToCam < 10.0f + && clearWaterDrop == false + && !CGame::IsInInterior() ) + { + CVector vecWaterdropTarget + ( + CGeneral::GetRandomNumberInRange(-0.25f, 0.25f), + CGeneral::GetRandomNumberInRange(0.1f, 0.75f), + -0.01f + ); + + CVector vecWaterdropPos; + + if ( TheCamera.m_CameraAverageSpeed < 0.35f ) + vecWaterdropPos.x = (float)CGeneral::GetRandomNumberInRange(50, int32(SCREEN_WIDTH) - 50); + else + vecWaterdropPos.x = (float)CGeneral::GetRandomNumberInRange(200, int32(SCREEN_WIDTH) - 200); + + if ( psystem->m_Type == PARTICLE_BOAT_SPLASH || psystem->m_Type == PARTICLE_CAR_SPLASH ) + vecWaterdropPos.y = (float)CGeneral::GetRandomNumberInRange(SCREEN_HEIGHT / 2, SCREEN_HEIGHT); + else + { + if ( TheCamera.m_CameraAverageSpeed < 0.35f ) + vecWaterdropPos.y = (float)CGeneral::GetRandomNumberInRange(0, int32(SCREEN_HEIGHT)); + else + vecWaterdropPos.y = (float)CGeneral::GetRandomNumberInRange(150, int32(SCREEN_HEIGHT) - 200); + } + + vecWaterdropPos.z = 2.0f; + + if ( AddParticle(PARTICLE_WATERDROP, + vecWaterdropPos, + vecWaterdropTarget, + nil, + CGeneral::GetRandomNumberInRange(0.1f, 0.15f), + 0, + 0, + CGeneral::GetRandomNumber() & 1, + 0) != nil ) + { + numWaterDropOnScreen++; + } + } } if ( CTimer::GetTimeInMilliseconds() > particle->m_nTimeWhenWillBeDestroyed || particle->m_nAlpha == 0 ) @@ -1435,7 +1432,10 @@ void CParticle::Update() } else size = particle->m_fSize + particle->m_fExpansionRate; - + + if ( psystem->m_Type == PARTICLE_WATERDROP ) + size = (size - Abs(vecMoveStep.x) * 0.000150000007f) + (Abs(vecMoveStep.z) * 0.0500000007f); //TODO: + if ( size < 0.0f ) { bRemoveParticle = true; @@ -1716,6 +1716,28 @@ void CParticle::Update() continue; } } + + if ( psystem->m_nZRotationAngleChangeAmount != 0 ) + { + if ( particle->m_nZRotationTimer >= psystem->m_nZRotationChangeTime ) + { + particle->m_nZRotationTimer = 0; + particle->m_nCurrentZRotation += psystem->m_nZRotationAngleChangeAmount; + } + else + ++particle->m_nZRotationTimer; + } + + if ( psystem->m_fZRadiusChangeAmount != 0.0f ) + { + if ( particle->m_nZRadiusTimer >= psystem->m_nZRadiusChangeTime ) + { + particle->m_nZRadiusTimer = 0; + particle->m_fCurrentZRadius += psystem->m_fZRadiusChangeAmount; + } + else + ++particle->m_nZRadiusTimer; + } if ( psystem->m_nAnimationSpeed != 0 ) { @@ -1742,6 +1764,21 @@ void CParticle::Update() particle->m_nRotation += particle->m_nRotationStep; #endif + if ( particle->m_fCurrentZRadius != 0.0f ) + { + int32 nSinCosIndex = particle->m_nCurrentZRotation % SIN_COS_TABLE_SIZE; + + float fX = (Cos(nSinCosIndex) - Sin(nSinCosIndex)) * particle->m_fCurrentZRadius; + + float fY = (Sin(nSinCosIndex) + Cos(nSinCosIndex)) * particle->m_fCurrentZRadius; + + vecPos -= particle->m_vecParticleMovementOffset; + + vecPos += CVector(fX, fY, 0.0f); + + particle->m_vecParticleMovementOffset = CVector(fX, fY, 0.0f); + } + particle->m_vecPosition = vecPos; } } @@ -1749,6 +1786,8 @@ void CParticle::Update() void CParticle::Render() { + PUSH_RENDERGROUP("CParticle::Render"); + RwRenderStateSet(rwRENDERSTATETEXTUREADDRESS, (void *)rwTEXTUREADDRESSWRAP); RwRenderStateSet(rwRENDERSTATETEXTUREPERSPECTIVE, (void *)TRUE); RwRenderStateSet(rwRENDERSTATEFOGENABLE, (void *)FALSE); @@ -1772,8 +1811,6 @@ void CParticle::Render() RwRaster **frames = psystem->m_ppRaster; tParticleType type = psystem->m_Type; - /* - something on ps2 if ( type == PARTICLE_ENGINE_SMOKE || type == PARTICLE_ENGINE_SMOKE2 || type == PARTICLE_ENGINE_STEAM @@ -1785,7 +1822,7 @@ void CParticle::Render() { particleBanned = true; } - */ + if ( particle ) { if ( (flags & DRAW_OPAQUE) != (psystem->Flags & DRAW_OPAQUE) @@ -1830,8 +1867,6 @@ void CParticle::Render() if ( particle->m_nAlpha == 0 ) canDraw = false; - // TODO: psp vert buffer check - if ( canDraw && psystem->m_nFinalAnimationFrame != 0 && frames != nil ) { RwRaster *curFrame = frames[particle->m_nCurrentFrame]; @@ -1845,7 +1880,11 @@ void CParticle::Render() if ( canDraw && psystem->Flags & DRAWTOP2D ) { - float screenZ = CalcScreenZ(particle->m_vecPosition.z); + float screenZ = (particle->m_vecPosition.z - CDraw::GetNearClipZ()) + * (CSprite::GetFarScreenZ() - CSprite::GetNearScreenZ()) + * CDraw::GetFarClipZ() + / ( (CDraw::GetFarClipZ() - CDraw::GetNearClipZ()) * particle->m_vecPosition.z ) + + CSprite::GetNearScreenZ(); float stretchTexW; float stretchTexH; @@ -1860,6 +1899,108 @@ void CParticle::Render() stretchTexW = CGeneral::GetRandomNumberInRange(0.1f, 1.0f) * psystem->m_vecTextureStretch.x + 63.0f; stretchTexH = CGeneral::GetRandomNumberInRange(0.1f, 1.0f) * psystem->m_vecTextureStretch.y + 63.0f; } + + + if ( i == PARTICLE_WATERDROP ) + { + int32 timeLeft = (particle->m_nTimeWhenWillBeDestroyed - CTimer::GetTimeInMilliseconds()) / particle->m_nTimeWhenWillBeDestroyed; + + stretchTexH += (1.0f - (float)timeLeft ) * psystem->m_vecTextureStretch.y; + + RwRect rect; + + rect.x = int32(particle->m_vecPosition.x - SCREEN_STRETCH_X(particle->m_fSize * stretchTexW)); + rect.y = int32(particle->m_vecPosition.y - SCREEN_STRETCH_Y(particle->m_fSize * stretchTexH)); + rect.w = int32(particle->m_vecPosition.x + SCREEN_STRETCH_X(particle->m_fSize * stretchTexW)); + rect.h = int32(particle->m_vecPosition.y + SCREEN_STRETCH_Y(particle->m_fSize * stretchTexH)); + + FxType fxtype; + + if ( particle->m_nCurrentFrame != 0 ) + fxtype = FXTYPE_WATER2; + else + fxtype = FXTYPE_WATER1; + + CMBlur::AddRenderFx(Scene.camera, &rect, screenZ, fxtype); + + canDraw = false; + } + + if ( i == PARTICLE_BLOODDROP ) + { + int32 timeLeft = (particle->m_nTimeWhenWillBeDestroyed - CTimer::GetTimeInMilliseconds()) / particle->m_nTimeWhenWillBeDestroyed; + + stretchTexH += (1.0f + (float)timeLeft) * psystem->m_vecTextureStretch.y; + stretchTexW += (1.0f - (float)timeLeft) * psystem->m_vecTextureStretch.x; + + RwRect rect; + + rect.x = int32(particle->m_vecPosition.x - SCREEN_STRETCH_X(particle->m_fSize * stretchTexW)); + rect.y = int32(particle->m_vecPosition.y - SCREEN_STRETCH_Y(particle->m_fSize * stretchTexH)); + rect.w = int32(particle->m_vecPosition.x + SCREEN_STRETCH_X(particle->m_fSize * stretchTexW)); + rect.h = int32(particle->m_vecPosition.y + SCREEN_STRETCH_Y(particle->m_fSize * stretchTexH)); + + FxType fxtype; + + if ( particle->m_nCurrentFrame ) + fxtype = FXTYPE_BLOOD2; + else + fxtype = FXTYPE_BLOOD1; + + CMBlur::AddRenderFx(Scene.camera, &rect, screenZ, fxtype); + + canDraw = false; + } + + if ( i == PARTICLE_HEATHAZE_IN_DIST ) + { + RwRect rect; + + rect.x = int32(particle->m_vecPosition.x - SCREEN_STRETCH_X(particle->m_fSize * stretchTexW)); + rect.y = int32(particle->m_vecPosition.y - SCREEN_STRETCH_Y(particle->m_fSize * stretchTexH * 0.15f)); + rect.w = int32(particle->m_vecPosition.x + SCREEN_STRETCH_X(particle->m_fSize * stretchTexW)); + rect.h = int32(particle->m_vecPosition.y + SCREEN_STRETCH_Y(particle->m_fSize * stretchTexH * 0.15f)); + + CMBlur::AddRenderFx(Scene.camera, &rect, screenZ, FXTYPE_HEATHAZE); + + canDraw = false; + } + + if ( i == PARTICLE_HEATHAZE ) + { + RwRect rect; + + switch ( TheCamera.GetLookDirection() ) + { + case LOOKING_LEFT: + rect.x = int32(particle->m_vecPosition.x - SCREEN_STRETCH_X(particle->m_fSize * psystem->m_vecTextureStretch.x * 2.0f)); + rect.y = int32(particle->m_vecPosition.y - SCREEN_STRETCH_Y(particle->m_fSize * psystem->m_vecTextureStretch.y)); + rect.w = int32(particle->m_vecPosition.x - SCREEN_STRETCH_X(particle->m_fSize * psystem->m_vecTextureStretch.x)); + rect.h = int32(particle->m_vecPosition.y + SCREEN_STRETCH_Y(particle->m_fSize * psystem->m_vecTextureStretch.y)); + + break; + + case LOOKING_RIGHT: + rect.x = int32(particle->m_vecPosition.x + SCREEN_STRETCH_X(particle->m_fSize * psystem->m_vecTextureStretch.x)); + rect.y = int32(particle->m_vecPosition.y - SCREEN_STRETCH_Y(particle->m_fSize * psystem->m_vecTextureStretch.y)); + rect.w = int32(particle->m_vecPosition.x + SCREEN_STRETCH_X(particle->m_fSize * psystem->m_vecTextureStretch.x * 4.0f)); + rect.h = int32(particle->m_vecPosition.y + SCREEN_STRETCH_Y(particle->m_fSize * psystem->m_vecTextureStretch.y)); + + break; + + default: + rect.x = int32(particle->m_vecPosition.x - SCREEN_STRETCH_X(particle->m_fSize * psystem->m_vecTextureStretch.x)); + rect.y = int32(particle->m_vecPosition.y - SCREEN_STRETCH_Y(particle->m_fSize * psystem->m_vecTextureStretch.y)); + rect.w = int32(particle->m_vecPosition.x + SCREEN_STRETCH_X(particle->m_fSize * psystem->m_vecTextureStretch.x)); + rect.h = int32(particle->m_vecPosition.y + SCREEN_STRETCH_Y(particle->m_fSize * psystem->m_vecTextureStretch.y)); + + break; + } + + CMBlur::AddRenderFx(Scene.camera, &rect, screenZ, FXTYPE_HEATHAZE); + + canDraw = false; + } if ( canDraw ) { @@ -1925,8 +2066,6 @@ void CParticle::Render() } else if ( i == PARTICLE_WATER_HYDRANT ) { - float screenZ = CalcScreenZ(particle->m_vecPosition.z); - int32 timeLeft = (particle->m_nTimeWhenWillBeDestroyed - CTimer::GetTimeInMilliseconds()) / particle->m_nTimeWhenWillBeDestroyed; w += (1.0f - (float)timeLeft) * psystem->m_vecTextureStretch.x; @@ -1946,149 +2085,190 @@ void CParticle::Render() h += CGeneral::GetRandomNumberInRange(0.1f, 1.0f) * psystem->m_vecTextureStretch.y; } - if ( particle->m_nRotation != 0 && i != PARTICLE_BEASTIE ) - { - CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension(coors.x, coors.y, coors.z, - particle->m_fSize * w, particle->m_fSize * h, - particle->m_Color.red, - particle->m_Color.green, - particle->m_Color.blue, - particle->m_nColorIntensity, - 1.0f / coors.z, - DEGTORAD((float)particle->m_nRotation), - particle->m_nAlpha); - } - else if ( psystem->Flags & SCREEN_TRAIL ) + if ( i == PARTICLE_WATER_HYDRANT + || (!particleBanned || SCREEN_WIDTH * fParticleScaleLimit >= w) + && SCREEN_HEIGHT * fParticleScaleLimit >= h ) { - float fRotation; - float fTrailLength; - - if ( particle->m_fZGround == 0.0f ) + if ( i == PARTICLE_WATER_HYDRANT ) { - fTrailLength = 0.0f; - fRotation = 0.0f; + RwRect rect; + + if ( w > 0.0f ) + { + rect.x = int32(coors.x - SCREEN_STRETCH_X(particle->m_fSize * w)); + rect.w = int32(coors.x + SCREEN_STRETCH_X(particle->m_fSize * w)); + } + else + { + rect.w = int32(coors.x - SCREEN_STRETCH_X(particle->m_fSize * w)); + rect.x = int32(coors.x + SCREEN_STRETCH_X(particle->m_fSize * w)); + } + + if ( h > 0.0f ) + { + rect.y = int32(coors.y - SCREEN_STRETCH_Y(particle->m_fSize * h)); + rect.h = int32(coors.y + SCREEN_STRETCH_Y(particle->m_fSize * h)); + } + else + { + rect.h = int32(coors.y - SCREEN_STRETCH_Y(particle->m_fSize * h)); + rect.y = int32(coors.y + SCREEN_STRETCH_Y(particle->m_fSize * h)); + } + + float screenZ = (coors.z - CDraw::GetNearClipZ()) + * (CSprite::GetFarScreenZ() - CSprite::GetNearScreenZ()) * CDraw::GetFarClipZ() + / ( (CDraw::GetFarClipZ() - CDraw::GetNearClipZ()) * coors.z ) + CSprite::GetNearScreenZ(); + + CMBlur::AddRenderFx(Scene.camera, &rect, screenZ, FXTYPE_SPLASH1); } else { - CVector2D vecDist - ( - coors.x - particle->m_fZGround, - coors.y - particle->m_fExpansionRate - ); + if ( particle->m_nRotation != 0 && i != PARTICLE_BEASTIE ) + { + CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension(coors.x, coors.y, coors.z, + particle->m_fSize * w, particle->m_fSize * h, + particle->m_Color.red, + particle->m_Color.green, + particle->m_Color.blue, + particle->m_nColorIntensity, + 1.0f / coors.z, + DEGTORAD((float)particle->m_nRotation), + particle->m_nAlpha); + } + else if ( psystem->Flags & SCREEN_TRAIL ) + { + float fRotation; + float fTrailLength; + + if ( particle->m_fZGround == 0.0f ) + { + fTrailLength = 0.0f; + fRotation = 0.0f; + } + else + { + CVector2D vecDist + ( + coors.x - particle->m_fZGround, + coors.y - particle->m_fExpansionRate + ); - float fDist = vecDist.Magnitude(); + float fDist = vecDist.Magnitude(); - fTrailLength = fDist; - - float fRot = Asin(vecDist.x / fDist); + fTrailLength = fDist; + + float fRot = Asin(vecDist.x / fDist); - fRotation = fRot; + fRotation = fRot; - if ( vecDist.y < 0.0f ) - fRotation = -1.0f * fRot + DEGTORAD(180.0f); - - float fSpeed = particle->m_vecVelocity.Magnitude(); - - float fNewTrailLength = fSpeed * CTimer::GetTimeStep() * w * 2.0f; - - if ( fDist > fNewTrailLength ) - fTrailLength = fNewTrailLength; - } - - CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension(coors.x, coors.y, coors.z, - particle->m_fSize * w, - particle->m_fSize * h + fTrailLength * psystem->m_fTrailLengthMultiplier, - particle->m_Color.red, - particle->m_Color.green, - particle->m_Color.blue, - particle->m_nColorIntensity, - 1.0f / coors.z, - fRotation, - particle->m_nAlpha); + if ( vecDist.y < 0.0f ) + fRotation = -1.0f * fRot + DEGTORAD(180.0f); + + float fSpeed = particle->m_vecVelocity.Magnitude(); + + float fNewTrailLength = fSpeed * CTimer::GetTimeStep() * w * 2.0f; + + if ( fDist > fNewTrailLength ) + fTrailLength = fNewTrailLength; + } + + CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension(coors.x, coors.y, coors.z, + particle->m_fSize * w, + particle->m_fSize * h + fTrailLength * psystem->m_fTrailLengthMultiplier, + particle->m_Color.red, + particle->m_Color.green, + particle->m_Color.blue, + particle->m_nColorIntensity, + 1.0f / coors.z, + fRotation, + particle->m_nAlpha); - particle->m_fZGround = coors.x; // WTF ? - particle->m_fExpansionRate = coors.y; // WTF ? - } - else if ( psystem->Flags & SPEED_TRAIL ) - { - CVector vecPrevPos = particle->m_vecPosition - particle->m_vecVelocity; - float fRotation; - float fTrailLength; - CVector vecScreenPosition; - - if ( CSprite::CalcScreenCoors(vecPrevPos, &vecScreenPosition, &fTrailLength, &fRotation, true) ) - { - CVector2D vecDist - ( - coors.x - vecScreenPosition.x, - coors.y - vecScreenPosition.y - ); - - float fDist = vecDist.Magnitude(); - - fTrailLength = fDist; - - float fRot = Asin(vecDist.x / fDist); - - fRotation = fRot; - - if ( vecDist.y < 0.0f ) - fRotation = -1.0f * fRot + DEGTORAD(180.0f); - } - else - { - fRotation = 0.0f; - fTrailLength = 0.0f; - } - - CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension(coors.x, coors.y, coors.z, - particle->m_fSize * w, - particle->m_fSize * h + fTrailLength * psystem->m_fTrailLengthMultiplier, - particle->m_Color.red, - particle->m_Color.green, - particle->m_Color.blue, - particle->m_nColorIntensity, - 1.0f / coors.z, - fRotation, - particle->m_nAlpha); - } - else if ( psystem->Flags & VERT_TRAIL ) - { - float fTrailLength = Abs(particle->m_vecVelocity.z * 10.0f); + particle->m_fZGround = coors.x; // WTF ? + particle->m_fExpansionRate = coors.y; // WTF ? + } + else if ( psystem->Flags & SPEED_TRAIL ) + { + CVector vecPrevPos = particle->m_vecPosition - particle->m_vecVelocity; + float fRotation; + float fTrailLength; + CVector vecScreenPosition; + + if ( CSprite::CalcScreenCoors(vecPrevPos, &vecScreenPosition, &fTrailLength, &fRotation, true) ) + { + CVector2D vecDist + ( + coors.x - vecScreenPosition.x, + coors.y - vecScreenPosition.y + ); + + float fDist = vecDist.Magnitude(); + + fTrailLength = fDist; + + float fRot = Asin(vecDist.x / fDist); + + fRotation = fRot; + + if ( vecDist.y < 0.0f ) + fRotation = -1.0f * fRot + DEGTORAD(180.0f); + } + else + { + fRotation = 0.0f; + fTrailLength = 0.0f; + } + + CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension(coors.x, coors.y, coors.z, + particle->m_fSize * w, + particle->m_fSize * h + fTrailLength * psystem->m_fTrailLengthMultiplier, + particle->m_Color.red, + particle->m_Color.green, + particle->m_Color.blue, + particle->m_nColorIntensity, + 1.0f / coors.z, + fRotation, + particle->m_nAlpha); + } + else if ( psystem->Flags & VERT_TRAIL ) + { + float fTrailLength = fabsf(particle->m_vecVelocity.z * 10.0f); - CSprite::RenderBufferedOneXLUSprite(coors.x, coors.y, coors.z, - particle->m_fSize * w, - (particle->m_fSize + fTrailLength * psystem->m_fTrailLengthMultiplier) * h, - particle->m_Color.red, - particle->m_Color.green, - particle->m_Color.blue, - particle->m_nColorIntensity, - 1.0f / coors.z, - particle->m_nAlpha); - } - else if ( i == PARTICLE_RAINDROP_SMALL ) - { - CSprite::RenderBufferedOneXLUSprite(coors.x, coors.y, coors.z, - particle->m_fSize * w * 0.05f, - particle->m_fSize * h, - particle->m_Color.red, - particle->m_Color.green, - particle->m_Color.blue, - particle->m_nColorIntensity, - 1.0f / coors.z, - particle->m_nAlpha); - } - else - { - CSprite::RenderBufferedOneXLUSprite(coors.x, coors.y, coors.z, - particle->m_fSize * w, - particle->m_fSize * h, - particle->m_Color.red, - particle->m_Color.green, - particle->m_Color.blue, - particle->m_nColorIntensity, - 1.0f / coors.z, - particle->m_nAlpha); + CSprite::RenderBufferedOneXLUSprite(coors.x, coors.y, coors.z, + particle->m_fSize * w, + (particle->m_fSize + fTrailLength * psystem->m_fTrailLengthMultiplier) * h, + particle->m_Color.red, + particle->m_Color.green, + particle->m_Color.blue, + particle->m_nColorIntensity, + 1.0f / coors.z, + particle->m_nAlpha); + } + else if ( i == PARTICLE_RAINDROP_SMALL ) + { + CSprite::RenderBufferedOneXLUSprite(coors.x, coors.y, coors.z, + particle->m_fSize * w * 0.05f, + particle->m_fSize * h, + particle->m_Color.red, + particle->m_Color.green, + particle->m_Color.blue, + particle->m_nColorIntensity, + 1.0f / coors.z, + particle->m_nAlpha); + } + /*else if ( i == PARTICLE_BOAT_WAKE )*/ + else + { + CSprite::RenderBufferedOneXLUSprite(coors.x, coors.y, coors.z, + particle->m_fSize * w, + particle->m_fSize * h, + particle->m_Color.red, + particle->m_Color.green, + particle->m_Color.blue, + particle->m_nColorIntensity, + 1.0f / coors.z, + particle->m_nAlpha); + } + } } } } @@ -2105,6 +2285,8 @@ void CParticle::Render() RwRenderStateSet(rwRENDERSTATEZTESTENABLE, (void *)TRUE); RwRenderStateSet(rwRENDERSTATESRCBLEND, (void *)rwBLENDSRCALPHA); RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void *)rwBLENDINVSRCALPHA); + + POP_RENDERGROUP(); } void CParticle::RemovePSystem(tParticleType type) @@ -2117,6 +2299,9 @@ void CParticle::RemovePSystem(tParticleType type) void CParticle::RemoveParticle(CParticle *pParticle, CParticle *pPrevParticle, tParticleSystemData *pPSystemData) { + if ( pPSystemData->m_Type == PARTICLE_WATERDROP ) + --numWaterDropOnScreen; + if ( pPrevParticle ) pPrevParticle->m_pNext = pParticle->m_pNext; else @@ -2216,7 +2401,18 @@ void CParticle::CalWindDir(CVector *vecDirIn, CVector *vecDirOut) void CParticle::HandleShipsAtHorizonStuff() { - ; + tParticleSystemData *psystemdata = &mod_ParticleSystemManager.m_aParticles[PARTICLE_SHIP_SIDE]; + + for ( CParticle *particle = psystemdata->m_pParticles; particle; particle = particle->m_pNext ) + { + if ( CTimer::GetTimeInMilliseconds() > particle->m_nTimeWhenWillBeDestroyed - 32000 + && CTimer::GetTimeInMilliseconds() < particle->m_nTimeWhenWillBeDestroyed - 22000 ) + { + particle->m_nAlpha = Min(particle->m_nAlpha + 1, 96); + } + if ( CTimer::GetTimeInMilliseconds() > particle->m_nTimeWhenWillBeDestroyed - 10000 ) + particle->m_nFadeAlphaTimer = 1; + } } void CParticle::HandleShootableBirdsStuff(CEntity *entity, CVector const&camPos) @@ -2256,7 +2452,7 @@ void CParticle::HandleShootableBirdsStuff(CEntity *entity, CVector const&camPos) bRemoveParticle = true; for ( int32 i = 0; i < 8; i++ ) - { + { CParticle *pBirdDerbis = AddParticle(PARTICLE_BIRD_DEBRIS, particle->m_vecPosition, CVector diff --git a/src/render/Particle.h b/src/render/Particle.h index a306f0c..5542dc0 100644 --- a/src/render/Particle.h +++ b/src/render/Particle.h @@ -18,6 +18,11 @@ public: uint32 m_nTimeWhenWillBeDestroyed; uint32 m_nTimeWhenColorWillBeChanged; float m_fZGround; + CVector m_vecParticleMovementOffset; + int16 m_nCurrentZRotation; + uint16 m_nZRotationTimer; + float m_fCurrentZRadius; + uint16 m_nZRadiusTimer; uint8 m_nColorIntensity; uint8 m_nAlpha; float m_fSize; @@ -30,13 +35,12 @@ public: uint8 m_nCurrentFrame; RwRGBA m_Color; CParticle *m_pNext; - int32 field_4C; - + CParticle() { ; } - + ~CParticle() { ; @@ -93,9 +97,12 @@ public: static void HandleShootableBirdsStuff(CEntity *entity, CVector const&camPos); }; +extern bool clearWaterDrop; +extern int32 numWaterDropOnScreen; extern RwRaster *gpCarSplashRaster[]; extern RwRaster *gpHeatHazeRaster; +extern RwRaster *gpDotRaster; extern RwRaster *gpRainDripRaster[]; extern RwRaster *gpRainDripDarkRaster[]; -VALIDATE_SIZE(CParticle, 0x50); +VALIDATE_SIZE(CParticle, 0x58); diff --git a/src/render/ParticleMgr.cpp b/src/render/ParticleMgr.cpp index 04f42c8..f691943 100644 --- a/src/render/ParticleMgr.cpp +++ b/src/render/ParticleMgr.cpp @@ -4,30 +4,18 @@ #include "FileMgr.h" #include "ParticleMgr.h" -// --LCS: File done - cParticleSystemMgr mod_ParticleSystemManager; const char *ParticleFilename = "PARTICLE.CFG"; cParticleSystemMgr::cParticleSystemMgr() { -#ifdef FIX_BUGS - m_aParticles = nil; -#endif + memset(this, 0, sizeof(*this)); } -#ifdef FIX_BUGS -cParticleSystemMgr::~cParticleSystemMgr() -{ - delete [] m_aParticles; -} -#endif - void cParticleSystemMgr::Initialise() { - if ( gMakeResources ) - LoadParticleData(); + LoadParticleData(); for ( int32 i = 0; i < MAX_PARTICLES; i++ ) m_aParticles[i].m_pParticles = nil; @@ -35,30 +23,20 @@ void cParticleSystemMgr::Initialise() void cParticleSystemMgr::LoadParticleData() { -#ifdef FIX_BUGS - delete [] m_aParticles; -#endif - m_aParticles = new tParticleSystemData[MAX_PARTICLES]; - - memset(m_aParticles, 0, sizeof(tParticleSystemData)*MAX_PARTICLES); - - CFileMgr::SetDir("Data"); - ssize_t len = CFileMgr::LoadFile(ParticleFilename, work_buff, ARRAY_SIZE(work_buff), "r"); + CFileMgr::SetDir("DATA"); + CFileMgr::LoadFile(ParticleFilename, work_buff, ARRAY_SIZE(work_buff), "r"); CFileMgr::SetDir(""); - ASSERT(!(len <= 0)); - tParticleSystemData *entry = nil; int32 type = PARTICLE_FIRST; - char *buffEnd = (char *)&work_buff[len]; char *lineStart = (char *)work_buff; char *lineEnd = lineStart + 1; char line[500]; char delims[4]; - while ( lineStart < buffEnd ) + while ( true ) { ASSERT(lineStart != nil); ASSERT(lineEnd != nil); diff --git a/src/render/ParticleMgr.h b/src/render/ParticleMgr.h index 16da2c5..f4afc01 100644 --- a/src/render/ParticleMgr.h +++ b/src/render/ParticleMgr.h @@ -124,18 +124,15 @@ class cParticleSystemMgr }; public: - tParticleSystemData *m_aParticles;//[MAX_PARTICLES]; + tParticleSystemData m_aParticles[MAX_PARTICLES]; cParticleSystemMgr(); -#ifdef FIX_BUGS - ~cParticleSystemMgr(); -#endif void Initialise(); void LoadParticleData(); void RangeCheck(tParticleSystemData *pData) { } }; -VALIDATE_SIZE(cParticleSystemMgr, 0x4); +VALIDATE_SIZE(cParticleSystemMgr, 0x2FFC); extern cParticleSystemMgr mod_ParticleSystemManager; diff --git a/src/render/ParticleType.h b/src/render/ParticleType.h index cb3d53f..9578083 100644 --- a/src/render/ParticleType.h +++ b/src/render/ParticleType.h @@ -42,6 +42,8 @@ enum tParticleType PARTICLE_RAIN_SPLASH_BIGGROW, PARTICLE_RAIN_SPLASHUP, PARTICLE_WATERSPRAY, + PARTICLE_WATERDROP, + PARTICLE_BLOODDROP, PARTICLE_EXPLOSION_MEDIUM, PARTICLE_EXPLOSION_LARGE, PARTICLE_EXPLOSION_MFAST, @@ -81,11 +83,10 @@ enum tParticleType PARTICLE_SHIP_SIDE, PARTICLE_BEASTIE, PARTICLE_RAINDROP_2D, - PARTICLE_FERRY_CHIM_SMOKE, - PARTICLE_MULTIPLAYER_HIT, - PARTICLE_HYDRANT_STEAM, + PARTICLE_HEATHAZE, + PARTICLE_HEATHAZE_IN_DIST, MAX_PARTICLES, PARTICLE_FIRST = PARTICLE_SPARK, - PARTICLE_LAST = PARTICLE_HYDRANT_STEAM + PARTICLE_LAST = PARTICLE_HEATHAZE_IN_DIST }; \ No newline at end of file diff --git a/src/render/PointLights.cpp b/src/render/PointLights.cpp index 3e73c57..1387240 100644 --- a/src/render/PointLights.cpp +++ b/src/render/PointLights.cpp @@ -159,6 +159,8 @@ CPointLights::RenderFogEffect(void) if(CCutsceneMgr::IsRunning()) return; + PUSH_RENDERGROUP("CPointLights::RenderFogEffect"); + RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)FALSE); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE); RwRenderStateSet(rwRENDERSTATESRCBLEND, (void*)rwBLENDONE); @@ -302,6 +304,8 @@ CPointLights::RenderFogEffect(void) } CSprite::FlushSpriteBuffer(); + + POP_RENDERGROUP(); } bool diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index a320748..6b306b6 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -2,7 +2,6 @@ #include "common.h" #include "main.h" -#include "General.h" #include "Lights.h" #include "ModelInfo.h" #include "Treadable.h" @@ -21,7 +20,6 @@ #include "ModelIndices.h" #include "Streaming.h" #include "Shadows.h" -#include "Coronas.h" #include "PointLights.h" #include "Occlusion.h" #include "Renderer.h" @@ -40,8 +38,6 @@ bool gbDontRenderPeds; bool gbDontRenderObjects; bool gbDontRenderVehicles; -bool gbRenderDebugEnvMap; - // unused int16 TestCloseThings; int16 TestBigThings; @@ -134,8 +130,13 @@ CRenderer::RenderOneRoad(CEntity *e) return; if(gbShowCollisionPolys) CCollision::DrawColModel_Coloured(e->GetMatrix(), *CModelInfo::GetModelInfo(e->GetModelIndex())->GetColModel(), e->GetModelIndex()); - else + else{ + PUSH_RENDERGROUP(CModelInfo::GetModelInfo(e->GetModelIndex())->GetModelName()); + e->Render(); + + POP_RENDERGROUP(); + } } void @@ -182,6 +183,8 @@ CRenderer::RenderOneNonRoad(CEntity *e) } #endif + PUSH_RENDERGROUP(CModelInfo::GetModelInfo(e->GetModelIndex())->GetModelName()); + resetLights = e->SetupLighting(); if(e->IsVehicle()){ @@ -210,6 +213,8 @@ CRenderer::RenderOneNonRoad(CEntity *e) } e->RemoveLighting(resetLights); + + POP_RENDERGROUP(); } void @@ -235,6 +240,7 @@ CRenderer::RenderRoads(void) int i; CEntity *e; + PUSH_RENDERGROUP("CRenderer::RenderRoads"); RwRenderStateSet(rwRENDERSTATEFOGENABLE, (void*)TRUE); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE); SetCullMode(rwCULLMODECULLBACK); @@ -246,6 +252,7 @@ CRenderer::RenderRoads(void) if(IsRoad(e)) RenderOneRoad(e); } + POP_RENDERGROUP(); } inline bool PutIntoSortedVehicleList(CVehicle *veh) @@ -268,6 +275,7 @@ CRenderer::RenderEverythingBarRoads(void) CEntity *e; EntityInfo ei; + PUSH_RENDERGROUP("CRenderer::RenderEverythingBarRoads"); RwRenderStateSet(rwRENDERSTATEFOGENABLE, (void*)TRUE); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE); SetCullMode(rwCULLMODECULLBACK); @@ -299,6 +307,7 @@ CRenderer::RenderEverythingBarRoads(void) }else RenderOneNonRoad(e); } + POP_RENDERGROUP(); } void @@ -306,6 +315,7 @@ CRenderer::RenderBoats(void) { CLink *node; + PUSH_RENDERGROUP("CRenderer::RenderBoats"); RwRenderStateSet(rwRENDERSTATEFOGENABLE, (void*)TRUE); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE); SetCullMode(rwCULLMODECULLBACK); @@ -334,6 +344,7 @@ CRenderer::RenderBoats(void) CVehicle *v = (CVehicle*)node->item.ent; RenderOneNonRoad(v); } + POP_RENDERGROUP(); } #ifdef NEW_RENDERER @@ -437,6 +448,7 @@ CRenderer::RenderWorld(int pass) switch(pass){ case 0: // Roads + PUSH_RENDERGROUP("CRenderer::RenderWorld - Roads"); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)FALSE); for(i = 0; i < ms_nNoOfVisibleBuildings; i++){ e = ms_aVisibleBuildingPtrs[i]; @@ -450,9 +462,11 @@ CRenderer::RenderWorld(int pass) if(e->bIsBIGBuilding || IsRoad(e)) RenderOneBuilding(e, node->item.sort); } + POP_RENDERGROUP(); break; case 1: // Opaque + PUSH_RENDERGROUP("CRenderer::RenderWorld - Opaque"); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)FALSE); for(i = 0; i < ms_nNoOfVisibleBuildings; i++){ e = ms_aVisibleBuildingPtrs[i]; @@ -473,14 +487,17 @@ CRenderer::RenderWorld(int pass) RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, FALSE); WorldRender::RenderBlendPass(PASS_NOZ); RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)TRUE); + POP_RENDERGROUP(); break; case 2: // Transparent + PUSH_RENDERGROUP("CRenderer::RenderWorld - Transparent"); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE); RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void*)rwBLENDONE); WorldRender::RenderBlendPass(PASS_ADD); RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void*)rwBLENDINVSRCALPHA); WorldRender::RenderBlendPass(PASS_BLEND); + POP_RENDERGROUP(); break; } } @@ -491,11 +508,13 @@ CRenderer::RenderPeds(void) int i; CEntity *e; + PUSH_RENDERGROUP("CRenderer::RenderPeds"); for(i = 0; i < ms_nNoOfVisibleVehicles; i++){ e = ms_aVisibleVehiclePtrs[i]; if(e->IsPed()) RenderOneNonRoad(e); } + POP_RENDERGROUP(); } void @@ -506,6 +525,7 @@ CRenderer::RenderVehicles(void) EntityInfo ei; CLink *node; + PUSH_RENDERGROUP("CRenderer::RenderVehicles"); // not the real thing for(i = 0; i < ms_nNoOfVisibleVehicles; i++){ e = ms_aVisibleVehiclePtrs[i]; @@ -522,6 +542,7 @@ CRenderer::RenderVehicles(void) node != &gSortedVehiclesAndPeds.head; node = node->prev) RenderOneNonRoad(node->item.ent); + POP_RENDERGROUP(); } void @@ -530,6 +551,7 @@ CRenderer::RenderTransparentWater(void) int i; CEntity *e; + PUSH_RENDERGROUP("CRenderer::RenderTransparentWater"); RwRenderStateSet(rwRENDERSTATETEXTURERASTER, nil); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE); RwRenderStateSet(rwRENDERSTATEFOGENABLE, (void*)FALSE); @@ -553,6 +575,7 @@ CRenderer::RenderTransparentWater(void) CWaterLevel::RenderTransparentWater(); SetStencilState(0); + POP_RENDERGROUP(); } void @@ -573,20 +596,24 @@ CRenderer::ClearForFrame(void) void CRenderer::RenderFadingInEntities(void) { + PUSH_RENDERGROUP("CRenderer::RenderFadingInEntities"); RwRenderStateSet(rwRENDERSTATEFOGENABLE, (void*)TRUE); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE); SetCullMode(rwCULLMODECULLBACK); DeActivateDirectional(); SetAmbientColours(); CVisibilityPlugins::RenderFadingEntities(); + POP_RENDERGROUP(); } void CRenderer::RenderFadingInUnderwaterEntities(void) { + PUSH_RENDERGROUP("CRenderer::RenderFadingInUnderwaterEntities"); DeActivateDirectional(); SetAmbientColours(); CVisibilityPlugins::RenderFadingUnderwaterEntities(); + POP_RENDERGROUP(); } void @@ -1646,186 +1673,3 @@ CRenderer::RemoveVehiclePedLights(CEntity *ent, bool reset) SetAmbientColours(); DeActivateDirectional(); } - - -#include "postfx.h" - -static RwIm2DVertex Screen2EnvQuad[4]; -static RwImVertexIndex EnvQuadIndices[6] = { 0, 1, 2, 0, 2, 3 }; - -static void -SetQuadVertices(RwRaster *env, RwRaster *screen, float z) -{ - uint32 width = RwRasterGetWidth(env); - uint32 height = RwRasterGetHeight(env); - - float zero, xmax, ymax; - - zero = -HALFPX; - xmax = width - HALFPX; - ymax = height - HALFPX; - - float recipz = 1.0f/z; - float umax = (float)SCREEN_WIDTH/RwRasterGetWidth(screen); - float vmax = (float)SCREEN_HEIGHT/RwRasterGetHeight(screen); - - RwIm2DVertexSetScreenX(&Screen2EnvQuad[0], zero); - RwIm2DVertexSetScreenY(&Screen2EnvQuad[0], zero); - RwIm2DVertexSetScreenZ(&Screen2EnvQuad[0], RwIm2DGetNearScreenZ()); - RwIm2DVertexSetCameraZ(&Screen2EnvQuad[0], z); - RwIm2DVertexSetRecipCameraZ(&Screen2EnvQuad[0], recipz); - RwIm2DVertexSetU(&Screen2EnvQuad[0], 0.0f, recipz); - RwIm2DVertexSetV(&Screen2EnvQuad[0], 0.0f, recipz); - RwIm2DVertexSetIntRGBA(&Screen2EnvQuad[0], 255, 255, 255, 255); - - RwIm2DVertexSetScreenX(&Screen2EnvQuad[1], zero); - RwIm2DVertexSetScreenY(&Screen2EnvQuad[1], ymax); - RwIm2DVertexSetScreenZ(&Screen2EnvQuad[1], RwIm2DGetNearScreenZ()); - RwIm2DVertexSetCameraZ(&Screen2EnvQuad[1], z); - RwIm2DVertexSetRecipCameraZ(&Screen2EnvQuad[1], recipz); - RwIm2DVertexSetU(&Screen2EnvQuad[1], 0.0f, recipz); - RwIm2DVertexSetV(&Screen2EnvQuad[1], vmax, recipz); - RwIm2DVertexSetIntRGBA(&Screen2EnvQuad[1], 255, 255, 255, 255); - - RwIm2DVertexSetScreenX(&Screen2EnvQuad[2], xmax); - RwIm2DVertexSetScreenY(&Screen2EnvQuad[2], ymax); - RwIm2DVertexSetScreenZ(&Screen2EnvQuad[2], RwIm2DGetNearScreenZ()); - RwIm2DVertexSetCameraZ(&Screen2EnvQuad[2], z); - RwIm2DVertexSetRecipCameraZ(&Screen2EnvQuad[2], recipz); - RwIm2DVertexSetU(&Screen2EnvQuad[2], umax, recipz); - RwIm2DVertexSetV(&Screen2EnvQuad[2], vmax, recipz); - RwIm2DVertexSetIntRGBA(&Screen2EnvQuad[2], 255, 255, 255, 255); - - RwIm2DVertexSetScreenX(&Screen2EnvQuad[3], xmax); - RwIm2DVertexSetScreenY(&Screen2EnvQuad[3], zero); - RwIm2DVertexSetScreenZ(&Screen2EnvQuad[3], RwIm2DGetNearScreenZ()); - RwIm2DVertexSetCameraZ(&Screen2EnvQuad[3], z); - RwIm2DVertexSetRecipCameraZ(&Screen2EnvQuad[3], recipz); - RwIm2DVertexSetU(&Screen2EnvQuad[3], umax, recipz); - RwIm2DVertexSetV(&Screen2EnvQuad[3], 0.0f, recipz); - RwIm2DVertexSetIntRGBA(&Screen2EnvQuad[3], 255, 255, 255, 255); -} - -static RwIm2DVertex coronaVerts[4*4]; -static RwImVertexIndex coronaIndices[6*4]; -static int numCoronaVerts, numCoronaIndices; - -static void -AddCorona(float x, float y, float sz) -{ - float nearz, recipz; - RwIm2DVertex *v; - nearz = RwIm2DGetNearScreenZ(); - float z = RwCameraGetNearClipPlane(RwCameraGetCurrentCamera()); - recipz = 1.0f/z; - - v = &coronaVerts[numCoronaVerts]; - RwIm2DVertexSetScreenX(&v[0], x); - RwIm2DVertexSetScreenY(&v[0], y); - RwIm2DVertexSetScreenZ(&v[0], z); - RwIm2DVertexSetScreenZ(&v[0], nearz); - RwIm2DVertexSetRecipCameraZ(&v[0], recipz); - RwIm2DVertexSetU(&v[0], 0.0f, recipz); - RwIm2DVertexSetV(&v[0], 0.0f, recipz); - RwIm2DVertexSetIntRGBA(&v[0], 255, 255, 255, 255); - - RwIm2DVertexSetScreenX(&v[1], x); - RwIm2DVertexSetScreenY(&v[1], y + sz); - RwIm2DVertexSetScreenZ(&v[1], z); - RwIm2DVertexSetScreenZ(&v[1], nearz); - RwIm2DVertexSetRecipCameraZ(&v[1], recipz); - RwIm2DVertexSetU(&v[1], 0.0f, recipz); - RwIm2DVertexSetV(&v[1], 1.0f, recipz); - RwIm2DVertexSetIntRGBA(&v[1], 255, 255, 255, 255); - - RwIm2DVertexSetScreenX(&v[2], x + sz); - RwIm2DVertexSetScreenY(&v[2], y + sz); - RwIm2DVertexSetScreenZ(&v[2], z); - RwIm2DVertexSetScreenZ(&v[2], nearz); - RwIm2DVertexSetRecipCameraZ(&v[2], recipz); - RwIm2DVertexSetU(&v[2], 1.0f, recipz); - RwIm2DVertexSetV(&v[2], 1.0f, recipz); - RwIm2DVertexSetIntRGBA(&v[2], 255, 255, 255, 255); - - RwIm2DVertexSetScreenX(&v[3], x + sz); - RwIm2DVertexSetScreenY(&v[3], y); - RwIm2DVertexSetScreenZ(&v[3], z); - RwIm2DVertexSetScreenZ(&v[3], nearz); - RwIm2DVertexSetRecipCameraZ(&v[3], recipz); - RwIm2DVertexSetU(&v[3], 1.0f, recipz); - RwIm2DVertexSetV(&v[3], 0.0f, recipz); - RwIm2DVertexSetIntRGBA(&v[3], 255, 255, 255, 255); - - - coronaIndices[numCoronaIndices++] = numCoronaVerts; - coronaIndices[numCoronaIndices++] = numCoronaVerts + 1; - coronaIndices[numCoronaIndices++] = numCoronaVerts + 2; - coronaIndices[numCoronaIndices++] = numCoronaVerts; - coronaIndices[numCoronaIndices++] = numCoronaVerts + 2; - coronaIndices[numCoronaIndices++] = numCoronaVerts + 3; - numCoronaVerts += 4; -} -#include "Debug.h" - -static void -DrawEnvMapCoronas(float heading) -{ - RwRaster *rt = RwTextureGetRaster(CustomPipes::EnvMapTex); - const float BIG = 89.0f * RwRasterGetWidth(rt)/128.0f; - const float SMALL = 38.0f * RwRasterGetHeight(rt)/128.0f; - - float x; - numCoronaVerts = 0; - numCoronaIndices = 0; - x = (heading - PI)/TWOPI;// - 1.0f; - x *= BIG+SMALL; - AddCorona(x, 0.0f, BIG); x += BIG; - AddCorona(x, 12.0f, SMALL); x += SMALL; - AddCorona(x, 0.0f, BIG); x += BIG; - AddCorona(x, 12.0f, SMALL); x += SMALL; - - RwRenderStateSet(rwRENDERSTATESRCBLEND, (void*)rwBLENDONE); - RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void*)rwBLENDONE); - RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE); - RwRenderStateSet(rwRENDERSTATETEXTURERASTER, RwTextureGetRaster(gpCoronaTexture[CCoronas::TYPE_STAR])); - RwIm2DRenderIndexedPrimitive(rwPRIMTYPETRILIST, coronaVerts, numCoronaVerts, coronaIndices, numCoronaIndices); - RwRenderStateSet(rwRENDERSTATESRCBLEND, (void*)rwBLENDSRCALPHA); - RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void*)rwBLENDINVSRCALPHA); - RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)FALSE); -} - -void -CRenderer::GenerateEnvironmentMap(void) -{ - // We'll probably do this differently eventually - // re-using all sorts of stuff here... - - CPostFX::GetBackBuffer(Scene.camera); - - RwCameraBeginUpdate(CustomPipes::EnvMapCam); - - // get current scene - SetQuadVertices(RwTextureGetRaster(CustomPipes::EnvMapTex), CPostFX::pBackBuffer, RwCameraGetNearClipPlane(RwCameraGetCurrentCamera())); - RwRenderStateSet(rwRENDERSTATEZTESTENABLE, (void*)FALSE); - RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)FALSE); - RwRenderStateSet(rwRENDERSTATETEXTURERASTER, CPostFX::pBackBuffer); - RwRenderStateSet(rwRENDERSTATETEXTUREFILTER, (void*)rwFILTERLINEAR); - RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)FALSE); - RwIm2DRenderIndexedPrimitive(rwPRIMTYPETRILIST, Screen2EnvQuad, 4, EnvQuadIndices, 6); - RwRenderStateSet(rwRENDERSTATEZTESTENABLE, (void*)TRUE); - RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)TRUE); - - // Draw coronas - if(CustomPipes::VehiclePipeSwitch != CustomPipes::VEHICLEPIPE_MOBILE) - DrawEnvMapCoronas(TheCamera.GetForward().Heading()); - - RwCameraEndUpdate(CustomPipes::EnvMapCam); - - - RwCameraBeginUpdate(Scene.camera); - - if(gbRenderDebugEnvMap){ - RwRenderStateSet(rwRENDERSTATETEXTURERASTER, RwTextureGetRaster(CustomPipes::EnvMapTex)); - RwIm2DRenderIndexedPrimitive(rwPRIMTYPETRILIST, CustomPipes::EnvScreenQuad, 4, (RwImVertexIndex*)CustomPipes::QuadIndices, 6); - } -} diff --git a/src/render/Renderer.h b/src/render/Renderer.h index a4b6b0b..9b20209 100644 --- a/src/render/Renderer.h +++ b/src/render/Renderer.h @@ -102,6 +102,4 @@ public: static void RenderTransparentWater(void); // keep-out polys and transparent water #endif static void InsertEntityIntoList(CEntity *ent); - - static void GenerateEnvironmentMap(void); }; diff --git a/src/render/Rubbish.cpp b/src/render/Rubbish.cpp index bd69f87..147c97b 100644 --- a/src/render/Rubbish.cpp +++ b/src/render/Rubbish.cpp @@ -54,6 +54,8 @@ CRubbish::Render(void) if(RubbishVisibility == 0) return; + PUSH_RENDERGROUP("CRubbish::Render"); + RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)FALSE); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE); RwRenderStateSet(rwRENDERSTATEFOGENABLE, (void*)TRUE); @@ -150,6 +152,8 @@ CRubbish::Render(void) RwRenderStateSet(rwRENDERSTATEFOGENABLE, (void*)FALSE); RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)FALSE); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE); + + POP_RENDERGROUP(); } void diff --git a/src/render/Shadows.cpp b/src/render/Shadows.cpp index d4f75a2..ae07982 100644 --- a/src/render/Shadows.cpp +++ b/src/render/Shadows.cpp @@ -76,14 +76,14 @@ CShadows::Init(void) gpShadowBikeTex = RwTextureRead("shad_bike", nil); gpShadowBaronTex = RwTextureRead("shad_rcbaron", nil); gpShadowExplosionTex = RwTextureRead("shad_exp", nil); - gpShadowHeadLightsTex = RwTextureRead("headlight_single", nil); + gpShadowHeadLightsTex = RwTextureRead("headlight", nil); gpOutline1Tex = RwTextureRead("outline_64", nil); gpOutline2Tex = RwTextureRead("outline2_64", nil); gpOutline3Tex = RwTextureRead("outline3_64", nil); gpBloodPoolTex = RwTextureRead("bloodpool_64", nil); - //gpReflectionTex = RwTextureRead("reflection01", nil); + gpReflectionTex = RwTextureRead("reflection01", nil); gpWalkDontTex = RwTextureRead("walk_dont", nil); - //gpCrackedGlassTex = RwTextureRead("wincrack_32", nil); + gpCrackedGlassTex = RwTextureRead("wincrack_32", nil); gpPostShadowTex = RwTextureRead("lamp_shad_64", nil); CTxdStore::PopCurrentTxd(); @@ -99,9 +99,9 @@ CShadows::Init(void) ASSERT(gpOutline2Tex != nil); ASSERT(gpOutline3Tex != nil); ASSERT(gpBloodPoolTex != nil); - //ASSERT(gpReflectionTex != nil); + ASSERT(gpReflectionTex != nil); ASSERT(gpWalkDontTex != nil); - //ASSERT(gpCrackedGlassTex != nil); + ASSERT(gpCrackedGlassTex != nil); ASSERT(gpPostShadowTex != nil); @@ -178,9 +178,9 @@ CShadows::Shutdown(void) ASSERT(gpOutline2Tex != nil); ASSERT(gpOutline3Tex != nil); ASSERT(gpBloodPoolTex != nil); - //ASSERT(gpReflectionTex != nil); + ASSERT(gpReflectionTex != nil); ASSERT(gpWalkDontTex != nil); - //ASSERT(gpCrackedGlassTex != nil); + ASSERT(gpCrackedGlassTex != nil); ASSERT(gpPostShadowTex != nil); RwTextureDestroy(gpShadowCarTex); @@ -194,9 +194,9 @@ CShadows::Shutdown(void) RwTextureDestroy(gpOutline2Tex); RwTextureDestroy(gpOutline3Tex); RwTextureDestroy(gpBloodPoolTex); - //RwTextureDestroy(gpReflectionTex); + RwTextureDestroy(gpReflectionTex); RwTextureDestroy(gpWalkDontTex); - //RwTextureDestroy(gpCrackedGlassTex); + RwTextureDestroy(gpCrackedGlassTex); RwTextureDestroy(gpPostShadowTex); } @@ -1068,6 +1068,8 @@ CShadows::SetRenderModeForShadowType(uint8 ShadowType) void CShadows::RenderStoredShadows(void) { + PUSH_RENDERGROUP("CShadows::RenderStoredShadows"); + RenderBuffer::ClearRenderBuffer(); RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void *)FALSE); @@ -1241,12 +1243,16 @@ CShadows::RenderStoredShadows(void) RwRenderStateSet(rwRENDERSTATETEXTUREADDRESS, (void *)rwTEXTUREADDRESSWRAP); ShadowsStoredToBeRendered = 0; + + POP_RENDERGROUP(); } void CShadows::RenderStaticShadows(void) { + PUSH_RENDERGROUP("CShadows::RenderStaticShadows"); + RenderBuffer::ClearRenderBuffer(); RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void *)FALSE); @@ -1313,6 +1319,8 @@ CShadows::RenderStaticShadows(void) RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void *)FALSE); RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void *)TRUE); + + POP_RENDERGROUP(); } diff --git a/src/render/Skidmarks.cpp b/src/render/Skidmarks.cpp index 07039c1..08df330 100644 --- a/src/render/Skidmarks.cpp +++ b/src/render/Skidmarks.cpp @@ -96,6 +96,8 @@ CSkidmarks::Render(void) { int i, j; + PUSH_RENDERGROUP("CSkidmarks::Render"); + RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)FALSE); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE); RwRenderStateSet(rwRENDERSTATESRCBLEND, (void*)rwBLENDSRCALPHA); @@ -152,6 +154,8 @@ CSkidmarks::Render(void) RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)FALSE); RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)TRUE); RwRenderStateSet(rwRENDERSTATEZTESTENABLE, (void*)TRUE); + + POP_RENDERGROUP(); } void diff --git a/src/render/SpecialFX.cpp b/src/render/SpecialFX.cpp index 161bf16..b44848f 100644 --- a/src/render/SpecialFX.cpp +++ b/src/render/SpecialFX.cpp @@ -164,6 +164,7 @@ CSpecialFX::Shutdown(void) void CSpecialFX::Render(void) { + PUSH_RENDERGROUP("CSpecialFX::Render"); CMotionBlurStreaks::Render(); CBulletTraces::Render(); CBrightLights::Render(); @@ -173,6 +174,7 @@ CSpecialFX::Render(void) if(!(gbNewRenderer && FredIsInFirstPersonCam())) #endif C3dMarkers::Render(); + POP_RENDERGROUP(); } void @@ -877,7 +879,7 @@ C3dMarkers::PlaceMarker(uint32 identifier, uint16 type, CVector &pos, float size pMarker->m_Matrix.GetPosition() = pos; if (pMarker->m_bFindZOnNextPlacement) { - if ((playerPos - pos).MagnitudeSqr() < sq(100.f) && CColStore::HasCollisionLoaded(pos)) { + if ((playerPos - pos).MagnitudeSqr() < sq(100.f) && CColStore::HasCollisionLoaded(CVector2D(pos))) { float z = CWorld::FindGroundZFor3DCoord(pos.x, pos.y, pos.z + 1.0f, nil); if (z != 0.0f) pMarker->m_Matrix.GetPosition().z = z - 0.05f * size; @@ -893,7 +895,7 @@ C3dMarkers::PlaceMarker(uint32 identifier, uint16 type, CVector &pos, float size pMarker->AddMarker(identifier, type, size, r, g, b, a, pulsePeriod, pulseFraction, rotateRate); if (type == MARKERTYPE_CYLINDER || type == MARKERTYPE_0 || type == MARKERTYPE_2) { - if ((playerPos - pos).MagnitudeSqr() < sq(100.f) && CColStore::HasCollisionLoaded(pos)) { + if ((playerPos - pos).MagnitudeSqr() < sq(100.f) && CColStore::HasCollisionLoaded(CVector2D(pos))) { float z = CWorld::FindGroundZFor3DCoord(pos.x, pos.y, pos.z + 1.0f, nil); if (z != 0.0f) pos.z = z - 0.05f * size; diff --git a/src/render/Sprite.cpp b/src/render/Sprite.cpp index 0e4d4fc..ba6ab29 100644 --- a/src/render/Sprite.cpp +++ b/src/render/Sprite.cpp @@ -10,19 +10,6 @@ float CSprite::m_f2DFarScreenZ; float CSprite::m_fRecipNearClipPlane; int32 CSprite::m_bFlushSpriteBufferSwitchZTest; -float CalcScreenZ(float z) -{ - // LCS TODO: check - - if ( z == 0.0f ) - return CSprite::GetNearScreenZ(); - - return (z - CDraw::GetNearClipZ()) - * (CSprite::GetFarScreenZ() - CSprite::GetNearScreenZ()) * CDraw::GetFarClipZ() - / ( (CDraw::GetFarClipZ() - CDraw::GetNearClipZ()) * z ) - + CSprite::GetNearScreenZ(); -} - float CSprite::CalcHorizonCoors(void) { diff --git a/src/render/Sprite.h b/src/render/Sprite.h index 952837a..fae6684 100644 --- a/src/render/Sprite.h +++ b/src/render/Sprite.h @@ -29,5 +29,3 @@ public: static void RenderBufferedOneXLUSprite2D_Rotate_Dimension(float x, float y, float w, float h, const RwRGBA &colour, int16 intens, float rotation, uint8 alpha); }; - -extern float CalcScreenZ(float z); \ No newline at end of file diff --git a/src/render/Timecycle.cpp b/src/render/Timecycle.cpp index 8a3efd8..95d9fe3 100644 --- a/src/render/Timecycle.cpp +++ b/src/render/Timecycle.cpp @@ -134,61 +134,6 @@ float CTimeCycle::m_fShadowSideY[16]; float CTimeCycle::m_fShadowDisplacementX[16]; float CTimeCycle::m_fShadowDisplacementY[16]; - - -static float tmp_nAmbientRed[NUMHOURS][NUMWEATHERS]; -static float tmp_nAmbientGreen[NUMHOURS][NUMWEATHERS]; -static float tmp_nAmbientBlue[NUMHOURS][NUMWEATHERS]; -static float tmp_nAmbientRed_Obj[NUMHOURS][NUMWEATHERS]; -static float tmp_nAmbientGreen_Obj[NUMHOURS][NUMWEATHERS]; -static float tmp_nAmbientBlue_Obj[NUMHOURS][NUMWEATHERS]; -static float tmp_nAmbientRed_Bl[NUMHOURS][NUMWEATHERS]; -static float tmp_nAmbientGreen_Bl[NUMHOURS][NUMWEATHERS]; -static float tmp_nAmbientBlue_Bl[NUMHOURS][NUMWEATHERS]; -static float tmp_nAmbientRed_Obj_Bl[NUMHOURS][NUMWEATHERS]; -static float tmp_nAmbientGreen_Obj_Bl[NUMHOURS][NUMWEATHERS]; -static float tmp_nAmbientBlue_Obj_Bl[NUMHOURS][NUMWEATHERS]; -static float tmp_nDirectionalRed[NUMHOURS][NUMWEATHERS]; -static float tmp_nDirectionalGreen[NUMHOURS][NUMWEATHERS]; -static float tmp_nDirectionalBlue[NUMHOURS][NUMWEATHERS]; -static float tmp_nSkyTopRed[NUMHOURS][NUMWEATHERS]; -static float tmp_nSkyTopGreen[NUMHOURS][NUMWEATHERS]; -static float tmp_nSkyTopBlue[NUMHOURS][NUMWEATHERS]; -static float tmp_nSkyBottomRed[NUMHOURS][NUMWEATHERS]; -static float tmp_nSkyBottomGreen[NUMHOURS][NUMWEATHERS]; -static float tmp_nSkyBottomBlue[NUMHOURS][NUMWEATHERS]; -static float tmp_nSunCoreRed[NUMHOURS][NUMWEATHERS]; -static float tmp_nSunCoreGreen[NUMHOURS][NUMWEATHERS]; -static float tmp_nSunCoreBlue[NUMHOURS][NUMWEATHERS]; -static float tmp_nSunCoronaRed[NUMHOURS][NUMWEATHERS]; -static float tmp_nSunCoronaGreen[NUMHOURS][NUMWEATHERS]; -static float tmp_nSunCoronaBlue[NUMHOURS][NUMWEATHERS]; -static float tmp_fSunSize[NUMHOURS][NUMWEATHERS]; -static float tmp_fSpriteSize[NUMHOURS][NUMWEATHERS]; -static float tmp_fSpriteBrightness[NUMHOURS][NUMWEATHERS]; -static float tmp_nShadowStrength[NUMHOURS][NUMWEATHERS]; -static float tmp_nLightShadowStrength[NUMHOURS][NUMWEATHERS]; -static float tmp_nPoleShadowStrength[NUMHOURS][NUMWEATHERS]; -static float tmp_fFogStart[NUMHOURS][NUMWEATHERS]; -static float tmp_fFarClip[NUMHOURS][NUMWEATHERS]; -static float tmp_fLightsOnGroundBrightness[NUMHOURS][NUMWEATHERS]; -static float tmp_nLowCloudsRed[NUMHOURS][NUMWEATHERS]; -static float tmp_nLowCloudsGreen[NUMHOURS][NUMWEATHERS]; -static float tmp_nLowCloudsBlue[NUMHOURS][NUMWEATHERS]; -static float tmp_nFluffyCloudsTopRed[NUMHOURS][NUMWEATHERS]; -static float tmp_nFluffyCloudsTopGreen[NUMHOURS][NUMWEATHERS]; -static float tmp_nFluffyCloudsTopBlue[NUMHOURS][NUMWEATHERS]; -static float tmp_nFluffyCloudsBottomRed[NUMHOURS][NUMWEATHERS]; -static float tmp_nFluffyCloudsBottomGreen[NUMHOURS][NUMWEATHERS]; -static float tmp_nFluffyCloudsBottomBlue[NUMHOURS][NUMWEATHERS]; -static float tmp_fBlurRed[NUMHOURS][NUMWEATHERS]; -static float tmp_fBlurGreen[NUMHOURS][NUMWEATHERS]; -static float tmp_fBlurBlue[NUMHOURS][NUMWEATHERS]; -static float tmp_fWaterRed[NUMHOURS][NUMWEATHERS]; -static float tmp_fWaterGreen[NUMHOURS][NUMWEATHERS]; -static float tmp_fWaterBlue[NUMHOURS][NUMWEATHERS]; -static float tmp_fWaterAlpha[NUMHOURS][NUMWEATHERS]; - void CTimeCycle::Initialise(void) { @@ -226,7 +171,7 @@ CTimeCycle::Initialise(void) for(h = 0; h < NUMHOURS; h++){ li = 0; while(work_buff[bi] == '/' || work_buff[bi] == '\n' || - work_buff[bi] == '\0' || work_buff[bi] == '\r'){ + work_buff[bi] == '\0' || work_buff[bi] == ' ' || work_buff[bi] == '\r'){ while(work_buff[bi] != '\n' && work_buff[bi] != '\0' && work_buff[bi] != '\r') bi++; bi++; @@ -262,180 +207,65 @@ CTimeCycle::Initialise(void) &blurR, &blurG, &blurB, &waterR, &waterG, &waterB, &waterA); - tmp_nAmbientRed[h][w] = ambR; - tmp_nAmbientGreen[h][w] = ambG; - tmp_nAmbientBlue[h][w] = ambB; - tmp_nAmbientRed_Obj[h][w] = ambobjR; - tmp_nAmbientGreen_Obj[h][w] = ambobjG; - tmp_nAmbientBlue_Obj[h][w] = ambobjB; - tmp_nAmbientRed_Bl[h][w] = ambblR; - tmp_nAmbientGreen_Bl[h][w] = ambblG; - tmp_nAmbientBlue_Bl[h][w] = ambblB; - tmp_nAmbientRed_Obj_Bl[h][w] = ambobjblR; - tmp_nAmbientGreen_Obj_Bl[h][w] = ambobjblG; - tmp_nAmbientBlue_Obj_Bl[h][w] = ambobjblB; - tmp_nDirectionalRed[h][w] = dirR; - tmp_nDirectionalGreen[h][w] = dirG; - tmp_nDirectionalBlue[h][w] = dirB; - tmp_nSkyTopRed[h][w] = skyTopR; - tmp_nSkyTopGreen[h][w] = skyTopG; - tmp_nSkyTopBlue[h][w] = skyTopB; - tmp_nSkyBottomRed[h][w] = skyBotR; - tmp_nSkyBottomGreen[h][w] = skyBotG; - tmp_nSkyBottomBlue[h][w] = skyBotB; - tmp_nSunCoreRed[h][w] = sunCoreR; - tmp_nSunCoreGreen[h][w] = sunCoreG; - tmp_nSunCoreBlue[h][w] = sunCoreB; - tmp_nSunCoronaRed[h][w] = sunCoronaR; - tmp_nSunCoronaGreen[h][w] = sunCoronaG; - tmp_nSunCoronaBlue[h][w] = sunCoronaB; - if(sunSz == -1) - tmp_fSunSize[h][w] = -1; - else - tmp_fSunSize[h][w] = sunSz * 10.0f; - if(sprSz == -1) - tmp_fSpriteSize[h][w] = -1; - else - tmp_fSpriteSize[h][w] = sprSz * 10.0f; - if(sprBght == -1) - tmp_fSpriteBrightness[h][w] = -1; - else - tmp_fSpriteBrightness[h][w] = sprBght * 10.0f; - tmp_nShadowStrength[h][w] = shad; - tmp_nLightShadowStrength[h][w] = lightShad; - tmp_nPoleShadowStrength[h][w] = poleShad; - tmp_fFarClip[h][w] = farClp; - tmp_fFogStart[h][w] = fogSt; - if(lightGnd == -1) - tmp_fLightsOnGroundBrightness[h][w] = -1; - else - tmp_fLightsOnGroundBrightness[h][w] = lightGnd * 10.0f; - tmp_nLowCloudsRed[h][w] = cloudR; - tmp_nLowCloudsGreen[h][w] = cloudG; - tmp_nLowCloudsBlue[h][w] = cloudB; - tmp_nFluffyCloudsTopRed[h][w] = fluffyTopR; - tmp_nFluffyCloudsTopGreen[h][w] = fluffyTopG; - tmp_nFluffyCloudsTopBlue[h][w] = fluffyTopB; - tmp_nFluffyCloudsBottomRed[h][w] = fluffyBotR; - tmp_nFluffyCloudsBottomGreen[h][w] = fluffyBotG; - tmp_nFluffyCloudsBottomBlue[h][w] = fluffyBotB; - tmp_fBlurRed[h][w] = blurR; - tmp_fBlurGreen[h][w] = blurG; - tmp_fBlurBlue[h][w] = blurB; - tmp_fWaterRed[h][w] = waterR; - tmp_fWaterGreen[h][w] = waterG; - tmp_fWaterBlue[h][w] = waterB; - tmp_fWaterAlpha[h][w] = waterA; + m_nAmbientRed[h][w] = ambR; + m_nAmbientGreen[h][w] = ambG; + m_nAmbientBlue[h][w] = ambB; + m_nAmbientRed_Obj[h][w] = ambobjR; + m_nAmbientGreen_Obj[h][w] = ambobjG; + m_nAmbientBlue_Obj[h][w] = ambobjB; + m_nAmbientRed_Bl[h][w] = ambblR; + m_nAmbientGreen_Bl[h][w] = ambblG; + m_nAmbientBlue_Bl[h][w] = ambblB; + m_nAmbientRed_Obj_Bl[h][w] = ambobjblR; + m_nAmbientGreen_Obj_Bl[h][w] = ambobjblG; + m_nAmbientBlue_Obj_Bl[h][w] = ambobjblB; + m_nDirectionalRed[h][w] = dirR; + m_nDirectionalGreen[h][w] = dirG; + m_nDirectionalBlue[h][w] = dirB; + m_nSkyTopRed[h][w] = skyTopR; + m_nSkyTopGreen[h][w] = skyTopG; + m_nSkyTopBlue[h][w] = skyTopB; + m_nSkyBottomRed[h][w] = skyBotR; + m_nSkyBottomGreen[h][w] = skyBotG; + m_nSkyBottomBlue[h][w] = skyBotB; + m_nSunCoreRed[h][w] = sunCoreR; + m_nSunCoreGreen[h][w] = sunCoreG; + m_nSunCoreBlue[h][w] = sunCoreB; + m_nSunCoronaRed[h][w] = sunCoronaR; + m_nSunCoronaGreen[h][w] = sunCoronaG; + m_nSunCoronaBlue[h][w] = sunCoronaB; + m_fSunSize[h][w] = sunSz * 10.0f; + m_fSpriteSize[h][w] = sprSz * 10.0f; + m_fSpriteBrightness[h][w] = sprBght * 10.0f; + m_nShadowStrength[h][w] = shad; + m_nLightShadowStrength[h][w] = lightShad; + m_nPoleShadowStrength[h][w] = poleShad; + m_fFarClip[h][w] = farClp; + m_fFogStart[h][w] = fogSt; + m_fLightsOnGroundBrightness[h][w] = lightGnd * 10.0f; + m_nLowCloudsRed[h][w] = cloudR; + m_nLowCloudsGreen[h][w] = cloudG; + m_nLowCloudsBlue[h][w] = cloudB; + m_nFluffyCloudsTopRed[h][w] = fluffyTopR; + m_nFluffyCloudsTopGreen[h][w] = fluffyTopG; + m_nFluffyCloudsTopBlue[h][w] = fluffyTopB; + m_nFluffyCloudsBottomRed[h][w] = fluffyBotR; + m_nFluffyCloudsBottomGreen[h][w] = fluffyBotG; + m_nFluffyCloudsBottomBlue[h][w] = fluffyBotB; + m_fBlurRed[h][w] = blurR; + m_fBlurGreen[h][w] = blurG; + m_fBlurBlue[h][w] = blurB; + m_fWaterRed[h][w] = waterR; + m_fWaterGreen[h][w] = waterG; + m_fWaterBlue[h][w] = waterB; + m_fWaterAlpha[h][w] = waterA; } - UpdateArrays(); - m_FogReduction = 0; debug("CTimeCycle ready\n"); } -template void -FillGaps(T (*out)[NUMWEATHERS], float (*in)[NUMWEATHERS]) -{ - int w; - for(w = 0; w < NUMWEATHERS; w++){ - for(int h = 0; h < NUMHOURS; h++) - out[h][w] = in[h][w]; - -#define NEXT(h) (((h)+1)%NUMHOURS) -#define PREV(h) (((h)+NUMHOURS-1)%NUMHOURS) - int hend, h1, h2; - for(hend = 0; hend < NUMHOURS; hend++) - if(in[hend][w] != -1.0f) - goto foundstart; - return; // this should never happen -foundstart: - // Found the start of a block of filled in entries - for(h1 = NEXT(hend); h1 != hend; h1 = h2){ - // Skip filled in entries - for(; h1 != hend; h1 = NEXT(h1)) - if(in[h1][w] == -1.0f) - goto foundfirst; - break; // all filled in already -foundfirst: - // h1 is now the first -1 after n filled in values - for(h2 = NEXT(h1); ; h2 = NEXT(h2)) - if(in[h2][w] != -1.0f) - goto foundlast; - break; -foundlast: - // h2 is now the first entry after a row of -1s - h1 = PREV(h1); // make h1 the first before a row of -1s - int n = (h2-h1 + NUMHOURS) % NUMHOURS; - if(n == 0) n = NUMHOURS; // can't happen - float step = (in[h2][w] - in[h1][w])/n; - - for(int i = 1; i < n; i++){ - float f = (float)i/n; - out[(h1+i)%NUMHOURS][w] = in[h2][w]*f + in[h1][w]*(1.0f-f); - } - } - } -} - -void -CTimeCycle::UpdateArrays(void) -{ - FillGaps(m_nAmbientRed, tmp_nAmbientRed); - FillGaps(m_nAmbientGreen, tmp_nAmbientGreen); - FillGaps(m_nAmbientBlue, tmp_nAmbientBlue); - FillGaps(m_nAmbientRed_Obj, tmp_nAmbientRed_Obj); - FillGaps(m_nAmbientGreen_Obj, tmp_nAmbientGreen_Obj); - FillGaps(m_nAmbientBlue_Obj, tmp_nAmbientBlue_Obj); - FillGaps(m_nAmbientRed_Bl, tmp_nAmbientRed_Bl); - FillGaps(m_nAmbientGreen_Bl, tmp_nAmbientGreen_Bl); - FillGaps(m_nAmbientBlue_Bl, tmp_nAmbientBlue_Bl); - FillGaps(m_nAmbientRed_Obj_Bl, tmp_nAmbientRed_Obj_Bl); - FillGaps(m_nAmbientGreen_Obj_Bl, tmp_nAmbientGreen_Obj_Bl); - FillGaps(m_nAmbientBlue_Obj_Bl, tmp_nAmbientBlue_Obj_Bl); - FillGaps(m_nDirectionalRed, tmp_nDirectionalRed); - FillGaps(m_nDirectionalGreen, tmp_nDirectionalGreen); - FillGaps(m_nDirectionalBlue, tmp_nDirectionalBlue); - FillGaps(m_nSkyTopRed, tmp_nSkyTopRed); - FillGaps(m_nSkyTopGreen, tmp_nSkyTopGreen); - FillGaps(m_nSkyTopBlue, tmp_nSkyTopBlue); - FillGaps(m_nSkyBottomRed, tmp_nSkyBottomRed); - FillGaps(m_nSkyBottomGreen, tmp_nSkyBottomGreen); - FillGaps(m_nSkyBottomBlue, tmp_nSkyBottomBlue); - FillGaps(m_nSunCoreRed, tmp_nSunCoreRed); - FillGaps(m_nSunCoreGreen, tmp_nSunCoreGreen); - FillGaps(m_nSunCoreBlue, tmp_nSunCoreBlue); - FillGaps(m_nSunCoronaRed, tmp_nSunCoronaRed); - FillGaps(m_nSunCoronaGreen, tmp_nSunCoronaGreen); - FillGaps(m_nSunCoronaBlue, tmp_nSunCoronaBlue); - FillGaps(m_fSunSize, tmp_fSunSize); - FillGaps(m_fSpriteSize, tmp_fSpriteSize); - FillGaps(m_fSpriteBrightness, tmp_fSpriteBrightness); - FillGaps(m_nShadowStrength, tmp_nShadowStrength); - FillGaps(m_nLightShadowStrength, tmp_nLightShadowStrength); - FillGaps(m_nPoleShadowStrength, tmp_nPoleShadowStrength); - FillGaps(m_fFogStart, tmp_fFogStart); - FillGaps(m_fFarClip, tmp_fFarClip); - FillGaps(m_fLightsOnGroundBrightness, tmp_fLightsOnGroundBrightness); - FillGaps(m_nLowCloudsRed, tmp_nLowCloudsRed); - FillGaps(m_nLowCloudsGreen, tmp_nLowCloudsGreen); - FillGaps(m_nLowCloudsBlue, tmp_nLowCloudsBlue); - FillGaps(m_nFluffyCloudsTopRed, tmp_nFluffyCloudsTopRed); - FillGaps(m_nFluffyCloudsTopGreen, tmp_nFluffyCloudsTopGreen); - FillGaps(m_nFluffyCloudsTopBlue, tmp_nFluffyCloudsTopBlue); - FillGaps(m_nFluffyCloudsBottomRed, tmp_nFluffyCloudsBottomRed); - FillGaps(m_nFluffyCloudsBottomGreen, tmp_nFluffyCloudsBottomGreen); - FillGaps(m_nFluffyCloudsBottomBlue, tmp_nFluffyCloudsBottomBlue); - FillGaps(m_fBlurRed, tmp_fBlurRed); - FillGaps(m_fBlurGreen, tmp_fBlurGreen); - FillGaps(m_fBlurBlue, tmp_fBlurBlue); - FillGaps(m_fWaterRed, tmp_fWaterRed); - FillGaps(m_fWaterGreen, tmp_fWaterGreen); - FillGaps(m_fWaterBlue, tmp_fWaterBlue); - FillGaps(m_fWaterAlpha, tmp_fWaterAlpha); -} - static float interp_c0, interp_c1, interp_c2, interp_c3; float CTimeCycle::Interpolate(int8 *a, int8 *b) diff --git a/src/render/Timecycle.h b/src/render/Timecycle.h index d8c333f..da911b7 100644 --- a/src/render/Timecycle.h +++ b/src/render/Timecycle.h @@ -185,7 +185,6 @@ public: static int32 GetWaterAlpha(void) { return m_fCurrentWaterAlpha; } static void Initialise(void); - static void UpdateArrays(void); static void Update(void); static float Interpolate(int8 *a, int8 *b); static float Interpolate(uint8 *a, uint8 *b); diff --git a/src/render/WaterCannon.cpp b/src/render/WaterCannon.cpp index 74fd7be..4976f8a 100644 --- a/src/render/WaterCannon.cpp +++ b/src/render/WaterCannon.cpp @@ -13,16 +13,6 @@ #include "Camera.h" #include "Particle.h" -// --LCS: file done - -#ifdef PSP_WATERCANNON - //PSP: - #define WATER_COLOR 255 -#else - //PS2: - #define WATER_COLOR 127 -#endif - #define WATERCANNONVERTS 4 #define WATERCANNONINDEXES 12 @@ -125,33 +115,23 @@ void CWaterCannon::Update_NewInput(CVector *pos, CVector *dir) m_abUsed[m_nCur] = true; } -static float fWaterCannonU = 0.0f; void CWaterCannon::Render(void) { - extern RwRaster *gpFireHoseRaster; - RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void *)FALSE); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void *)TRUE); RwRenderStateSet(rwRENDERSTATEFOGENABLE, (void *)TRUE); - RwRenderStateSet(rwRENDERSTATETEXTURERASTER, (void *)gpFireHoseRaster); + RwRenderStateSet(rwRENDERSTATETEXTURERASTER, (void *)gpWaterRaster); - fWaterCannonU += CTimer::GetTimeStepInSeconds() * 6.0f; + float v = float(CGeneral::GetRandomNumber() & 255) / 256; + + RwIm3DVertexSetV(&WaterCannonVertices[0], v); + RwIm3DVertexSetV(&WaterCannonVertices[1], v); + RwIm3DVertexSetV(&WaterCannonVertices[2], v); + RwIm3DVertexSetV(&WaterCannonVertices[3], v); - while ( fWaterCannonU >= 1.0f ) - fWaterCannonU -= 1.0f; - - RwIm3DVertexSetU(&WaterCannonVertices[0], -fWaterCannonU); - RwIm3DVertexSetV(&WaterCannonVertices[0], 0.0f); - RwIm3DVertexSetU(&WaterCannonVertices[1], -fWaterCannonU); - RwIm3DVertexSetV(&WaterCannonVertices[1], 1.0f); - RwIm3DVertexSetU(&WaterCannonVertices[2], 1.0f - fWaterCannonU); - RwIm3DVertexSetV(&WaterCannonVertices[2], 0.0f); - RwIm3DVertexSetU(&WaterCannonVertices[3], 1.0f - fWaterCannonU); - RwIm3DVertexSetV(&WaterCannonVertices[3], 1.0f); - int16 pointA = m_nCur % NUM_SEGMENTPOINTS; + int16 pointB = pointA - 1; - int16 pointC = pointA; if ( pointB < 0 ) pointB += NUM_SEGMENTPOINTS; @@ -162,10 +142,6 @@ void CWaterCannon::Render(void) { if ( m_abUsed[pointA] && m_abUsed[pointB] ) { - bool bFirst = false; - if ( i == 0 || m_abUsed[pointA] && !m_abUsed[pointC] ) - bFirst = true; - if ( !bInit ) { CVector cp = CrossProduct(m_avecPos[pointB] - m_avecPos[pointA], TheCamera.GetForward()); @@ -173,25 +149,26 @@ void CWaterCannon::Render(void) bInit = true; } + float dist = float(i*i*i) / 300.0f + 1.0f; float brightness = float(i) / NUM_SEGMENTPOINTS; + int32 color = (int32)((1.0f - brightness*brightness) * 255.0f); + CVector offset = dist * norm; - CVector offset = (float(i)+1.0f) * norm; - - RwIm3DVertexSetRGBA(&WaterCannonVertices[0], WATER_COLOR, WATER_COLOR, WATER_COLOR, bFirst ? 0 : color); + RwIm3DVertexSetRGBA(&WaterCannonVertices[0], color, color, color, color); RwIm3DVertexSetPos (&WaterCannonVertices[0], m_avecPos[pointA].x - offset.x, m_avecPos[pointA].y - offset.y, m_avecPos[pointA].z - offset.z); - RwIm3DVertexSetRGBA(&WaterCannonVertices[1], WATER_COLOR, WATER_COLOR, WATER_COLOR, bFirst ? 0 : color); + RwIm3DVertexSetRGBA(&WaterCannonVertices[1], color, color, color, color); RwIm3DVertexSetPos (&WaterCannonVertices[1], m_avecPos[pointA].x + offset.x, m_avecPos[pointA].y + offset.y, m_avecPos[pointA].z + offset.z); - offset = (float(i+1)+1.0f) * norm; - - RwIm3DVertexSetRGBA(&WaterCannonVertices[2], WATER_COLOR, WATER_COLOR, WATER_COLOR, color); + RwIm3DVertexSetRGBA(&WaterCannonVertices[2], color, color, color, color); RwIm3DVertexSetPos (&WaterCannonVertices[2], m_avecPos[pointB].x - offset.x, m_avecPos[pointB].y - offset.y, m_avecPos[pointB].z - offset.z); - RwIm3DVertexSetRGBA(&WaterCannonVertices[3], WATER_COLOR, WATER_COLOR, WATER_COLOR, color); + RwIm3DVertexSetRGBA(&WaterCannonVertices[3], color, color, color, color); RwIm3DVertexSetPos (&WaterCannonVertices[3], m_avecPos[pointB].x + offset.x, m_avecPos[pointB].y + offset.y, m_avecPos[pointB].z + offset.z); + LittleTest(); + if ( RwIm3DTransform(WaterCannonVertices, WATERCANNONVERTS, NULL, rwIM3D_VERTEXUV) ) { RwIm3DRenderIndexedPrimitive(rwPRIMTYPETRILIST, WaterCannonIndexList, WATERCANNONINDEXES); @@ -199,7 +176,6 @@ void CWaterCannon::Render(void) } } - pointC = pointA; pointA = pointB--; if ( pointB < 0 ) pointB += NUM_SEGMENTPOINTS; @@ -331,9 +307,11 @@ void CWaterCannons::Update(void) void CWaterCannons::Render(void) { + PUSH_RENDERGROUP("CWaterCannons::Render"); for ( int32 i = 0; i < NUM_WATERCANNONS; i++ ) { if ( aCannons[i].m_nId != 0 ) aCannons[i].Render(); } + POP_RENDERGROUP(); } diff --git a/src/render/WaterCannon.h b/src/render/WaterCannon.h index 5b60639..a37bdd1 100644 --- a/src/render/WaterCannon.h +++ b/src/render/WaterCannon.h @@ -14,7 +14,6 @@ public: int32 m_nId; int16 m_nCur; uint32 m_nTimeCreated; - int32 field_C; CVector m_avecPos[NUM_SEGMENTPOINTS]; CVector m_avecVelocity[NUM_SEGMENTPOINTS]; bool m_abUsed[NUM_SEGMENTPOINTS]; @@ -26,7 +25,7 @@ public: void PushPeds(void); }; -VALIDATE_SIZE(CWaterCannon, 0x1A0); +VALIDATE_SIZE(CWaterCannon, 412); class CWaterCannons { diff --git a/src/render/WaterCreatures.cpp b/src/render/WaterCreatures.cpp index 4c6c92a..92fb74e 100644 --- a/src/render/WaterCreatures.cpp +++ b/src/render/WaterCreatures.cpp @@ -8,7 +8,6 @@ #include "General.h" #include "Object.h" -/* int CWaterCreatures::nNumActiveSeaLifeForms; CWaterCreature CWaterCreatures::aWaterCreatures[NUM_WATER_CREATURES]; @@ -273,5 +272,4 @@ void CWaterCreatures::RemoveAll() { nNumActiveSeaLifeForms--; } } -} -*/ \ No newline at end of file +} \ No newline at end of file diff --git a/src/render/WaterCreatures.h b/src/render/WaterCreatures.h index 099cc1a..32754a1 100644 --- a/src/render/WaterCreatures.h +++ b/src/render/WaterCreatures.h @@ -2,7 +2,6 @@ class CObject; -/* enum eFishSlotState { WATER_CREATURE_INIT = 0, WATER_CREATURE_ACTIVE, @@ -47,4 +46,4 @@ struct WaterCreatureProperties { float fLevel; float fUnknown; //unused float fWaterDepth; -};*/ \ No newline at end of file +}; \ No newline at end of file diff --git a/src/render/WaterLevel.cpp b/src/render/WaterLevel.cpp index 6bd89ad..0d114db 100644 --- a/src/render/WaterLevel.cpp +++ b/src/render/WaterLevel.cpp @@ -611,14 +611,14 @@ CWaterLevel::TestVisibilityForFineWaterBlocks(const CVector &worldPos) if ((lineEnd.x > WORLD_MIN_X && lineEnd.x < WORLD_MAX_X) && (lineEnd.y > WORLD_MIN_Y && lineEnd.y < WORLD_MAX_Y)) { - if (!CWorld::ProcessLineOfSight(lineStart, lineEnd, col, entity, true, false, false, false, true, false, nil)) + if (!CWorld::ProcessLineOfSight(lineStart, lineEnd, col, entity, true, false, false, false, true, false)) { lineStart.x += 0.4f; lineStart.y += 0.4f; lineEnd.x += 0.4f; lineEnd.y += 0.4f; - if (!CWorld::ProcessLineOfSight(lineStart, lineEnd, col, entity, true, false, false, false, true, false, nil)) + if (!CWorld::ProcessLineOfSight(lineStart, lineEnd, col, entity, true, false, false, false, true, false)) { return false; } @@ -1176,13 +1176,13 @@ CWaterLevel::RenderWater() if ( WavesCalculatedThisFrame ) { RenderSeaBirds(); - //RenderShipsOnHorizon(); - //CParticle::HandleShipsAtHorizonStuff(); - //HandleBeachToysStuff(); + RenderShipsOnHorizon(); + CParticle::HandleShipsAtHorizonStuff(); + HandleBeachToysStuff(); } - //if ( _bSeaLife ) - // HandleSeaLifeForms(); + if ( _bSeaLife ) + HandleSeaLifeForms(); DefinedState(); } @@ -1202,6 +1202,8 @@ CWaterLevel::RenderTransparentWater(void) if ( !CGame::CanSeeWaterFromCurrArea() ) return; + PUSH_RENDERGROUP("CWaterLevel::RenderTransparentWater"); + float fWaterDrawDist = _GetWavyDrawDist(); float fWaterDrawDistLarge = fWaterDrawDist + 90.0f; float fWavySectorMaxRenderDistSqr = SQR(fWaterDrawDist); @@ -1485,6 +1487,8 @@ CWaterLevel::RenderTransparentWater(void) DefinedState(); #endif + + POP_RENDERGROUP(); } void CWaterLevel::RenderOneFlatSmallWaterPoly(float fX, float fY, float fZ, RwRGBA const &color) @@ -3106,7 +3110,6 @@ CWaterLevel::RenderShipsOnHorizon() } } -/* void CWaterLevel::HandleSeaLifeForms() { @@ -3147,7 +3150,7 @@ CWaterLevel::HandleSeaLifeForms() } CWaterCreatures::UpdateAll(); -}*/ +} void CWaterLevel::HandleBeachToysStuff(void) diff --git a/src/render/WaterLevel.h b/src/render/WaterLevel.h index d12fb9f..6d6614d 100644 --- a/src/render/WaterLevel.h +++ b/src/render/WaterLevel.h @@ -1,6 +1,6 @@ #pragma once -#define WATER_X_OFFSET (0.0f) +#define WATER_X_OFFSET (400.0f) #define WATER_Z_OFFSET (0.5f) diff --git a/src/render/Weather.cpp b/src/render/Weather.cpp index 65343a6..ffbd7e8 100644 --- a/src/render/Weather.cpp +++ b/src/render/Weather.cpp @@ -49,11 +49,6 @@ float CWeather::WindClipped; float CWeather::TrafficLightBrightness; bool CWeather::bScriptsForceRain; -bool CWeather::Stored_StateStored; -float CWeather::Stored_InterpolationValue; -int16 CWeather::Stored_OldWeatherType; -int16 CWeather::Stored_NewWeatherType; -float CWeather::Stored_Rain; tRainStreak Streaks[NUM_RAIN_STREAKS]; @@ -328,7 +323,6 @@ void CWeather::Update(void) void CWeather::AddHeatHaze() { - /* if(TheCamera.Cams[TheCamera.ActiveCam].Mode == CCam::MODE_TOPDOWN || TheCamera.Cams[TheCamera.ActiveCam].Mode == CCam::MODE_TOP_DOWN_PED) return; @@ -340,7 +334,6 @@ void CWeather::AddHeatHaze() pos.y = CGeneral::GetRandomNumberInRange(SCREEN_HEIGHT*0.4f, SCREEN_HEIGHT*0.9f); pos.z = 100.0f; CParticle::AddParticle(PARTICLE_HEATHAZE_IN_DIST, pos, CVector(0.0f, 0.0f, 0.0f)); - */ } void CWeather::AddBeastie() @@ -653,26 +646,6 @@ void CWeather::RenderRainStreaks(void) TempBufferIndicesStored = 0; } -void CWeather::StoreWeatherState() -{ - Stored_StateStored = true; - Stored_InterpolationValue = InterpolationValue; - Stored_Rain = Rain; - Stored_NewWeatherType = NewWeatherType; - Stored_OldWeatherType = OldWeatherType; -} - -void CWeather::RestoreWeatherState() -{ -#ifdef FIX_BUGS // it's not used anyway though - Stored_StateStored = false; -#endif - InterpolationValue = Stored_InterpolationValue; - Rain = Stored_Rain; - NewWeatherType = Stored_NewWeatherType; - OldWeatherType = Stored_OldWeatherType; -} - #ifdef SECUROM void CWeather::ForceHurricaneWeather() { diff --git a/src/render/Weather.h b/src/render/Weather.h index 0e7cf9b..bda57d5 100644 --- a/src/render/Weather.h +++ b/src/render/Weather.h @@ -42,11 +42,6 @@ public: static float TrafficLightBrightness; static bool bScriptsForceRain; - static bool Stored_StateStored; - static float Stored_InterpolationValue; - static int16 Stored_OldWeatherType; - static int16 Stored_NewWeatherType; - static float Stored_Rain; static void RenderRainStreaks(void); static void Update(void); @@ -62,8 +57,6 @@ public: static void AddBeastie(); static void ForceHurricaneWeather(); - static void StoreWeatherState(); - static void RestoreWeatherState(); }; enum { diff --git a/src/rw/Lights.cpp b/src/rw/Lights.cpp index 5f8ba82..772e196 100644 --- a/src/rw/Lights.cpp +++ b/src/rw/Lights.cpp @@ -24,7 +24,12 @@ RwRGBAReal DirectionalLightColourForFrame; RwRGBAReal AmbientLightColour; RwRGBAReal DirectionalLightColour; -#define USEBLURCOLORS true // actually CMBlur::BlurOn, but that's always supposed to be on +#ifdef EXTENDED_COLOURFILTER +#include "postfx.h" +#define USEBLURCOLORS CPostFX::UseBlurColours() +#else +#define USEBLURCOLORS CMBlur::BlurOn +#endif void SetLightsWithTimeOfDayColour(RpWorld *) diff --git a/src/rw/RwHelper.cpp b/src/rw/RwHelper.cpp index 186ed87..9b0ba13 100644 --- a/src/rw/RwHelper.cpp +++ b/src/rw/RwHelper.cpp @@ -9,6 +9,7 @@ #endif #ifndef FINAL RtCharset *debugCharset; +bool bDebugRenderGroups; #endif #ifdef PS2_ALPHA_TEST @@ -16,7 +17,7 @@ bool gPS2alphaTest = true; #else bool gPS2alphaTest = false; #endif -bool gBackfaceCulling = false; // can we ever enable this in LCS even? +bool gBackfaceCulling = true; #if !defined(FINAL) || defined(DEBUGMENU) static bool charsetOpen; @@ -102,6 +103,36 @@ SetCullMode(uint32 mode) RwRenderStateSet(rwRENDERSTATECULLMODE, (void*)rwCULLMODECULLNONE); } +#ifndef FINAL +void +PushRendergroup(const char *name) +{ + if(!bDebugRenderGroups) + return; +#if defined(RW_OPENGL) + if(GLAD_GL_KHR_debug) + glPushDebugGroup(GL_DEBUG_SOURCE_APPLICATION, 0, -1, name); +#elif defined(RW_D3D9) + static WCHAR tmp[256]; + MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, name, -1, tmp, sizeof(tmp)); + D3DPERF_BeginEvent(0xFFFFFFFF, tmp); +#endif +} + +void +PopRendergroup(void) +{ + if(!bDebugRenderGroups) + return; +#if defined(RW_OPENGL) + if(GLAD_GL_KHR_debug) + glPopDebugGroup(); +#elif defined(RW_D3D9) + D3DPERF_EndEvent(); +#endif +} +#endif + RwFrame* GetFirstFrameCallback(RwFrame *child, void *data) { diff --git a/src/rw/RwHelper.h b/src/rw/RwHelper.h index 9352d1f..a3a1928 100644 --- a/src/rw/RwHelper.h +++ b/src/rw/RwHelper.h @@ -1,5 +1,6 @@ #pragma once +extern bool bDebugRenderGroups; extern bool gPS2alphaTest; extern bool gBackfaceCulling; diff --git a/src/rw/TxdStore.cpp b/src/rw/TxdStore.cpp index b7936bc..0bd2971 100644 --- a/src/rw/TxdStore.cpp +++ b/src/rw/TxdStore.cpp @@ -1,7 +1,5 @@ #include "common.h" -#include "main.h" -#include "smallHeap.h" #include "templates.h" #include "General.h" #include "Streaming.h" @@ -11,19 +9,13 @@ CPool *CTxdStore::ms_pTxdPool; RwTexDictionary *CTxdStore::ms_pStoredTxd; -// LCS: file done except unused: -// CTexListStore::RemoveTexListChunk(int) -// CTexListStore::validateRefs(void) -// CTexListStore::Write(base::cRelocatableChunkWriter &) - void CTxdStore::Initialise(void) { - if(gMakeResources && ms_pTxdPool == nil) + if(ms_pTxdPool == nil) ms_pTxdPool = new CPool(TXDSTORESIZE, "TexDictionary"); } -// removed in LCS but we should probably keep it void CTxdStore::Shutdown(void) { @@ -31,7 +23,6 @@ CTxdStore::Shutdown(void) delete ms_pTxdPool; } -// removed in LCS but we should probably keep it void CTxdStore::GameShutdown(void) { @@ -51,7 +42,6 @@ CTxdStore::AddTxdSlot(const char *name) assert(def); def->texDict = nil; def->refCount = 0; - def->refCountGu = 0; strcpy(def->name, name); return ms_pTxdPool->GetJustIndex(def); } @@ -105,11 +95,7 @@ CTxdStore::SetCurrentTxd(int slot) void CTxdStore::Create(int slot) { - TxdDef *def = GetSlot(slot); - def->texDict = RwTexDictionaryCreate(); - // LCS: mobile sets the txd name here, but txds don't really have names - def->refCount = 0; - def->refCountGu = 0; + GetSlot(slot)->texDict = RwTexDictionaryCreate(); } int @@ -124,20 +110,6 @@ CTxdStore::AddRef(int slot) GetSlot(slot)->refCount++; } -void -CTxdStore::AddRefEvenIfNotInMemory(int slot) -{ - GetSlot(slot)->refCount++; -} - -void -CTxdStore::AddRefGu(int slot) -{ - TxdDef *def = GetSlot(slot); - def->refCount++; - def->refCountGu++; -} - void CTxdStore::RemoveRef(int slot) { @@ -145,15 +117,6 @@ CTxdStore::RemoveRef(int slot) CStreaming::RemoveTxd(slot); } -void -CTxdStore::RemoveRefGu(int slot) -{ - TxdDef *def = GetSlot(slot); - def->refCount--; - if(gUseChunkFiles) - def->refCountGu--; -} - void CTxdStore::RemoveRefWithoutDelete(int slot) { @@ -165,31 +128,14 @@ CTxdStore::LoadTxd(int slot, RwStream *stream) { TxdDef *def = GetSlot(slot); - if(stream){ - if(RwStreamFindChunk(stream, rwID_TEXDICTIONARY, nil, nil)){ - def->texDict = RwTexDictionaryGtaStreamRead(stream); - return def->texDict != nil; - } - }else{ - // TODO(LCS)? fall back reading from file + if(RwStreamFindChunk(stream, rwID_TEXDICTIONARY, nil, nil)){ + def->texDict = RwTexDictionaryGtaStreamRead(stream); + return def->texDict != nil; } printf("Failed to load TXD\n"); return false; } -bool -CTxdStore::LoadTxd(int slot, void *data, void *chunk) -{ - TxdDef *def = GetSlot(slot); - def->texDict = (RwTexDictionary*)data; - if(strncasecmp(def->name, "radar", 5) == 0){ - def->refCount = 0; - def->refCountGu = 0; - } - CStreaming::RegisterPointer(&def->texDict, 3, true); - return def->texDict != nil; -} - bool CTxdStore::LoadTxd(int slot, const char *filename) { @@ -206,7 +152,6 @@ CTxdStore::LoadTxd(int slot, const char *filename) return ret; } -// removed in LCS but we should probably keep it bool CTxdStore::StartLoadTxd(int slot, RwStream *stream) { @@ -220,7 +165,6 @@ CTxdStore::StartLoadTxd(int slot, RwStream *stream) } } -// removed in LCS but we should probably keep it bool CTxdStore::FinishLoadTxd(int slot, RwStream *stream) { @@ -230,31 +174,10 @@ CTxdStore::FinishLoadTxd(int slot, RwStream *stream) } void -CTxdStore::RemoveTxd(int slot, bool notChunk) +CTxdStore::RemoveTxd(int slot) { TxdDef *def = GetSlot(slot); - if(def->texDict){ - if(!gUseChunkFiles || notChunk) - RwTexDictionaryDestroy(def->texDict); - else{ - // TODO? Rsl3D specific: RslTextureDestroyDispList for all textures - CStreaming::UnregisterPointer(&def->texDict, 3); - cSmallHeap::msInstance.Free(def->texDict); - } - } + if(def->texDict) + RwTexDictionaryDestroy(def->texDict); def->texDict = nil; - def->refCount = 0; - def->refCountGu = 0; -} - -void -CTxdStore::Load(RwTexDictionary *stored, CPool *pool) -{ - ms_pTxdPool = pool; - ms_pStoredTxd = stored; - for(int i = 0; i < TXDSTORESIZE; i++){ - TxdDef *def = GetSlot(i); - if(def) - def->refCount = def->texDict != nil; - } } diff --git a/src/rw/TxdStore.h b/src/rw/TxdStore.h index 31fcf87..937fd1b 100644 --- a/src/rw/TxdStore.h +++ b/src/rw/TxdStore.h @@ -4,8 +4,7 @@ struct TxdDef { RwTexDictionary *texDict; - int16 refCount; - int16 refCountGu; + int refCount; char name[20]; }; @@ -27,19 +26,13 @@ public: static void Create(int slot); static int GetNumRefs(int slot); static void AddRef(int slot); - static void AddRefEvenIfNotInMemory(int slot); - static void AddRefGu(int slot); static void RemoveRef(int slot); - static void RemoveRefGu(int slot); static void RemoveRefWithoutDelete(int slot); static bool LoadTxd(int slot, RwStream *stream); - static bool LoadTxd(int slot, void *data, void *chunk); static bool LoadTxd(int slot, const char *filename); static bool StartLoadTxd(int slot, RwStream *stream); static bool FinishLoadTxd(int slot, RwStream *stream); - static void RemoveTxd(int slot, bool notChunk = false); - - static void Load(RwTexDictionary *stored, CPool *pool); + static void RemoveTxd(int slot); static TxdDef *GetSlot(int slot) { assert(slot >= 0); diff --git a/src/rw/VisibilityPlugins.cpp b/src/rw/VisibilityPlugins.cpp index 69e30c1..01db546 100644 --- a/src/rw/VisibilityPlugins.cpp +++ b/src/rw/VisibilityPlugins.cpp @@ -233,7 +233,9 @@ CVisibilityPlugins::RenderFadingEntities(CLinkList &list) DeActivateDirectional(); SetAmbientColours(); e->bImBeingRendered = true; + PUSH_RENDERGROUP(mi->GetModelName()); RenderFadingAtomic((RpAtomic*)e->m_rwObject, node->item.sort); + POP_RENDERGROUP(); e->bImBeingRendered = false; }else CRenderer::RenderOneNonRoad(e); @@ -265,7 +267,6 @@ CVisibilityPlugins::RenderWheelAtomicCB(RpAtomic *atomic) mi = GetAtomicModelInfo(atomic); len = Sqrt(DistToCameraSq); - len *= 0.5f; // HACK HACK, LOD wheels look shite lodatm = mi->GetAtomicFromDistance(len * TheCamera.LODDistMultiplier / VEHICLE_LODDIST_MULTIPLIER); if(lodatm){ if(RpAtomicGetGeometry(lodatm) != RpAtomicGetGeometry(atomic)) @@ -464,14 +465,6 @@ CVisibilityPlugins::RenderVehicleHiDetailCB_Boat(RpAtomic *atomic) return atomic; } -RpAtomic* -CVisibilityPlugins::RenderVehicleHiDetailCB_Boat_Far(RpAtomic *atomic) -{ - if(DistToCameraSq < ms_bigVehicleLod1Dist) - RENDERCALLBACK(atomic); - return atomic; -} - RpAtomic* CVisibilityPlugins::RenderVehicleHiDetailAlphaCB_Boat(RpAtomic *atomic) { @@ -502,23 +495,6 @@ CVisibilityPlugins::RenderVehicleLoDetailCB_Boat(RpAtomic *atomic) return atomic; } -RpAtomic* -CVisibilityPlugins::RenderVehicleLoDetailCB_Boat_Far(RpAtomic *atomic) -{ - RpClump *clump; - int32 alpha; - - clump = RpAtomicGetClump(atomic); - if(DistToCameraSq >= ms_bigVehicleLod1Dist){ - alpha = GetClumpAlpha(clump); - if(alpha == 255) - RENDERCALLBACK(atomic); - else - RenderAlphaAtomic(atomic, alpha); - } - return atomic; -} - RpAtomic* CVisibilityPlugins::RenderVehicleLowDetailCB_BigVehicle(RpAtomic *atomic) { @@ -677,9 +653,8 @@ CVisibilityPlugins::RenderVehicleTailRotorAlphaCB(RpAtomic *atomic) RpAtomic* CVisibilityPlugins::RenderPlayerCB(RpAtomic *atomic) { -// LCS: removed -// if(CWorld::Players[0].m_pSkinTexture) -// RpGeometryForAllMaterials(RpAtomicGetGeometry(atomic), SetTextureCB, CWorld::Players[0].m_pSkinTexture); + if(CWorld::Players[0].m_pSkinTexture) + RpGeometryForAllMaterials(RpAtomicGetGeometry(atomic), SetTextureCB, CWorld::Players[0].m_pSkinTexture); RENDERCALLBACK(atomic); return atomic; } diff --git a/src/rw/VisibilityPlugins.h b/src/rw/VisibilityPlugins.h index f188096..9cdbc0c 100644 --- a/src/rw/VisibilityPlugins.h +++ b/src/rw/VisibilityPlugins.h @@ -61,9 +61,7 @@ public: static RpAtomic *RenderVehicleHiDetailAlphaCB_BigVehicle(RpAtomic *atomic); static RpAtomic *RenderVehicleHiDetailCB_Boat(RpAtomic *atomic); static RpAtomic *RenderVehicleHiDetailAlphaCB_Boat(RpAtomic *atomic); - static RpAtomic *RenderVehicleHiDetailCB_Boat_Far(RpAtomic *atomic); static RpAtomic *RenderVehicleLoDetailCB_Boat(RpAtomic *atomic); - static RpAtomic *RenderVehicleLoDetailCB_Boat_Far(RpAtomic *atomic); static RpAtomic *RenderVehicleLowDetailCB_BigVehicle(RpAtomic *atomic); static RpAtomic *RenderVehicleLowDetailAlphaCB_BigVehicle(RpAtomic *atomic); static RpAtomic *RenderVehicleReallyLowDetailCB(RpAtomic *atomic); diff --git a/src/save/GenericGameStorage.cpp b/src/save/GenericGameStorage.cpp index 0bab543..a97e9af 100644 --- a/src/save/GenericGameStorage.cpp +++ b/src/save/GenericGameStorage.cpp @@ -42,7 +42,7 @@ #include "Fluff.h" #define BLOCK_COUNT 22 -#define SIZE_OF_SIMPLEVARS 0xE8 +#define SIZE_OF_SIMPLEVARS 0xE4 const uint32 SIZE_OF_ONE_GAME_IN_BYTES = 201729; @@ -228,7 +228,7 @@ GenericSave(int file) totalSize = buf - work_buff; // Save the rest - //WriteSaveDataBlock(CPools::SavePedPool, "PedPoolSize"); + WriteSaveDataBlock(CPools::SavePedPool, "PedPoolSize"); WriteSaveDataBlock(CGarages::Save, "GaragesSize"); WriteSaveDataBlock(CGameLogic::Save, "GameLogicSize"); WriteSaveDataBlock(CPools::SaveVehiclePool, "VehPoolSize"); @@ -363,8 +363,8 @@ GenericLoad() ReadDataFromBlock("Loading Scripts \n", CTheScripts::LoadAllScripts); // Load the rest - //LoadSaveDataBlock(); - //ReadDataFromBlock("Loading PedPool \n", CPools::LoadPedPool); + LoadSaveDataBlock(); + ReadDataFromBlock("Loading PedPool \n", CPools::LoadPedPool); LoadSaveDataBlock(); ReadDataFromBlock("Loading Garages \n", CGarages::Load); LoadSaveDataBlock(); diff --git a/src/skel/glfw/glfw.cpp b/src/skel/glfw/glfw.cpp index a703ed5..f5195b8 100644 --- a/src/skel/glfw/glfw.cpp +++ b/src/skel/glfw/glfw.cpp @@ -50,16 +50,30 @@ long _dwOperatingSystemVersion; #include "Font.h" #include "MemoryMgr.h" -#define MAX_SUBSYSTEMS (16) +// We found out that GLFW's keyboard input handling is still pretty delayed/not stable, so now we fetch input from X11 directly on Linux. +#if !defined _WIN32 && !defined __APPLE__ && !defined __SWITCH__ // && !defined WAYLAND +#define GET_KEYBOARD_INPUT_FROM_X11 +#endif + +#ifdef GET_KEYBOARD_INPUT_FROM_X11 +#include +#include +#define GLFW_EXPOSE_NATIVE_X11 +#include +#endif #ifdef _WIN32 #define GLFW_EXPOSE_NATIVE_WIN32 #include #endif +#define MAX_SUBSYSTEMS (16) + rw::EngineOpenParams openParams; static RwBool ForegroundApp = TRUE; +static RwBool WindowIconified = FALSE; +static RwBool WindowFocused = TRUE; static RwBool RwInitialised = FALSE; @@ -325,7 +339,9 @@ psInitialize(void) RsGlobal.ps = &PsGlobal; PsGlobal.fullScreen = FALSE; - PsGlobal.cursorIsInWindow = TRUE; + PsGlobal.cursorIsInWindow = FALSE; + WindowFocused = TRUE; + WindowIconified = FALSE; PsGlobal.joy1id = -1; PsGlobal.joy2id = -1; @@ -849,11 +865,15 @@ psSelectDevice() return TRUE; } +#ifndef GET_KEYBOARD_INPUT_FROM_X11 void keypressCB(GLFWwindow* window, int key, int scancode, int action, int mods); +#endif void resizeCB(GLFWwindow* window, int width, int height); void scrollCB(GLFWwindow* window, double xoffset, double yoffset); void cursorCB(GLFWwindow* window, double xpos, double ypos); void cursorEnterCB(GLFWwindow* window, int entered); +void windowFocusCB(GLFWwindow* window, int focused); +void windowIconifyCB(GLFWwindow* window, int iconified); void joysChangeCB(int jid, int event); bool IsThisJoystickBlacklisted(int i) @@ -962,11 +982,15 @@ void psPostRWinit(void) RwVideoMode vm; RwEngineGetVideoModeInfo(&vm, GcurSelVM); +#ifndef GET_KEYBOARD_INPUT_FROM_X11 glfwSetKeyCallback(PSGLOBAL(window), keypressCB); +#endif glfwSetFramebufferSizeCallback(PSGLOBAL(window), resizeCB); glfwSetScrollCallback(PSGLOBAL(window), scrollCB); glfwSetCursorPosCallback(PSGLOBAL(window), cursorCB); glfwSetCursorEnterCallback(PSGLOBAL(window), cursorEnterCB); + glfwSetWindowIconifyCallback(PSGLOBAL(window), windowIconifyCB); + glfwSetWindowFocusCallback(PSGLOBAL(window), windowFocusCB); glfwSetJoystickCallback(joysChangeCB); _InputInitialiseJoys(); @@ -1318,6 +1342,10 @@ void scrollCB(GLFWwindow* window, double xoffset, double yoffset) { PSGLOBAL(mouseWheel) = yoffset; } +bool lshiftStatus = false; +bool rshiftStatus = false; + +#ifndef GET_KEYBOARD_INPUT_FROM_X11 int keymap[GLFW_KEY_LAST + 1]; static void @@ -1448,9 +1476,6 @@ initkeymap(void) keymap[GLFW_KEY_MENU] = rsNULL; } -bool lshiftStatus = false; -bool rshiftStatus = false; - void keypressCB(GLFWwindow* window, int key, int scancode, int action, int mods) { @@ -1468,6 +1493,266 @@ keypressCB(GLFWwindow* window, int key, int scancode, int action, int mods) } } +#else + +uint32 keymap[512]; // 256 ascii + 256 KeySyms between 0xff00 - 0xffff +bool keyStates[512]; +uint32 keyCodeToKeymapIndex[256]; // cache for physical keys + +#define KEY_MAP_OFFSET (0xff00 - 256) +static void +initkeymap(void) +{ + Display *display = glfwGetX11Display(); + int i; + + for (i = 0; i < ARRAY_SIZE(keymap); i++) + keymap[i] = rsNULL; + + // You can add new ASCII mappings to here freely (but beware that if right hand side of assignment isn't supported on CFont, it'll be blank/won't work on binding screen) + // Right hand side of assigments should always be uppercase counterpart of character + keymap[XK_space] = ' '; + keymap[XK_apostrophe] = '\''; + keymap[XK_ampersand] = '&'; + keymap[XK_percent] = '%'; + keymap[XK_dollar] = '$'; + keymap[XK_comma] = ','; + keymap[XK_minus] = '-'; + keymap[XK_period] = '.'; + keymap[XK_slash] = '/'; + keymap[XK_question] = '?'; + keymap[XK_exclam] = '!'; + keymap[XK_quotedbl] = '"'; + keymap[XK_colon] = ':'; + keymap[XK_semicolon] = ';'; + keymap[XK_equal] = '='; + keymap[XK_bracketleft] = '['; + keymap[XK_backslash] = '\\'; + keymap[XK_bracketright] = ']'; + keymap[XK_grave] = '`'; + keymap[XK_0] = '0'; + keymap[XK_1] = '1'; + keymap[XK_2] = '2'; + keymap[XK_3] = '3'; + keymap[XK_4] = '4'; + keymap[XK_5] = '5'; + keymap[XK_6] = '6'; + keymap[XK_7] = '7'; + keymap[XK_8] = '8'; + keymap[XK_9] = '9'; + keymap[XK_a] = 'A'; + keymap[XK_b] = 'B'; + keymap[XK_c] = 'C'; + keymap[XK_d] = 'D'; + keymap[XK_e] = 'E'; + keymap[XK_f] = 'F'; + keymap[XK_g] = 'G'; + keymap[XK_h] = 'H'; + keymap[XK_i] = 'I'; + keymap[XK_I] = 'I'; // Turkish I problem + keymap[XK_j] = 'J'; + keymap[XK_k] = 'K'; + keymap[XK_l] = 'L'; + keymap[XK_m] = 'M'; + keymap[XK_n] = 'N'; + keymap[XK_o] = 'O'; + keymap[XK_p] = 'P'; + keymap[XK_q] = 'Q'; + keymap[XK_r] = 'R'; + keymap[XK_s] = 'S'; + keymap[XK_t] = 'T'; + keymap[XK_u] = 'U'; + keymap[XK_v] = 'V'; + keymap[XK_w] = 'W'; + keymap[XK_x] = 'X'; + keymap[XK_y] = 'Y'; + keymap[XK_z] = 'Z'; + + // Some of regional but ASCII characters that GTA supports + keymap[XK_agrave] = 0x00c0; + keymap[XK_aacute] = 0x00c1; + keymap[XK_acircumflex] = 0x00c2; + keymap[XK_adiaeresis] = 0x00c4; + + keymap[XK_ae] = 0x00c6; + + keymap[XK_egrave] = 0x00c8; + keymap[XK_eacute] = 0x00c9; + keymap[XK_ecircumflex] = 0x00ca; + keymap[XK_ediaeresis] = 0x00cb; + + keymap[XK_igrave] = 0x00cc; + keymap[XK_iacute] = 0x00cd; + keymap[XK_icircumflex] = 0x00ce; + keymap[XK_idiaeresis] = 0x00cf; + + keymap[XK_ccedilla] = 0x00c7; + keymap[XK_odiaeresis] = 0x00d6; + keymap[XK_udiaeresis] = 0x00dc; + + // These are 0xff00 - 0xffff range of KeySym's, and subtracting KEY_MAP_OFFSET is needed + keymap[XK_Escape - KEY_MAP_OFFSET] = rsESC; + keymap[XK_Return - KEY_MAP_OFFSET] = rsENTER; + keymap[XK_Tab - KEY_MAP_OFFSET] = rsTAB; + keymap[XK_BackSpace - KEY_MAP_OFFSET] = rsBACKSP; + keymap[XK_Insert - KEY_MAP_OFFSET] = rsINS; + keymap[XK_Delete - KEY_MAP_OFFSET] = rsDEL; + keymap[XK_Right - KEY_MAP_OFFSET] = rsRIGHT; + keymap[XK_Left - KEY_MAP_OFFSET] = rsLEFT; + keymap[XK_Down - KEY_MAP_OFFSET] = rsDOWN; + keymap[XK_Up - KEY_MAP_OFFSET] = rsUP; + keymap[XK_Page_Up - KEY_MAP_OFFSET] = rsPGUP; + keymap[XK_Page_Down - KEY_MAP_OFFSET] = rsPGDN; + keymap[XK_Home - KEY_MAP_OFFSET] = rsHOME; + keymap[XK_End - KEY_MAP_OFFSET] = rsEND; + keymap[XK_Caps_Lock - KEY_MAP_OFFSET] = rsCAPSLK; + keymap[XK_Scroll_Lock - KEY_MAP_OFFSET] = rsSCROLL; + keymap[XK_Num_Lock - KEY_MAP_OFFSET] = rsNUMLOCK; + keymap[XK_Pause - KEY_MAP_OFFSET] = rsPAUSE; + + keymap[XK_F1 - KEY_MAP_OFFSET] = rsF1; + keymap[XK_F2 - KEY_MAP_OFFSET] = rsF2; + keymap[XK_F3 - KEY_MAP_OFFSET] = rsF3; + keymap[XK_F4 - KEY_MAP_OFFSET] = rsF4; + keymap[XK_F5 - KEY_MAP_OFFSET] = rsF5; + keymap[XK_F6 - KEY_MAP_OFFSET] = rsF6; + keymap[XK_F7 - KEY_MAP_OFFSET] = rsF7; + keymap[XK_F8 - KEY_MAP_OFFSET] = rsF8; + keymap[XK_F9 - KEY_MAP_OFFSET] = rsF9; + keymap[XK_F10 - KEY_MAP_OFFSET] = rsF10; + keymap[XK_F11 - KEY_MAP_OFFSET] = rsF11; + keymap[XK_F12 - KEY_MAP_OFFSET] = rsF12; + keymap[XK_F13 - KEY_MAP_OFFSET] = rsNULL; + keymap[XK_F14 - KEY_MAP_OFFSET] = rsNULL; + keymap[XK_F15 - KEY_MAP_OFFSET] = rsNULL; + keymap[XK_F16 - KEY_MAP_OFFSET] = rsNULL; + keymap[XK_F17 - KEY_MAP_OFFSET] = rsNULL; + keymap[XK_F18 - KEY_MAP_OFFSET] = rsNULL; + keymap[XK_F19 - KEY_MAP_OFFSET] = rsNULL; + keymap[XK_F20 - KEY_MAP_OFFSET] = rsNULL; + keymap[XK_F21 - KEY_MAP_OFFSET] = rsNULL; + keymap[XK_F22 - KEY_MAP_OFFSET] = rsNULL; + keymap[XK_F23 - KEY_MAP_OFFSET] = rsNULL; + keymap[XK_F24 - KEY_MAP_OFFSET] = rsNULL; + keymap[XK_F25 - KEY_MAP_OFFSET] = rsNULL; + + keymap[XK_KP_0 - KEY_MAP_OFFSET] = rsPADINS; + keymap[XK_KP_1 - KEY_MAP_OFFSET] = rsPADEND; + keymap[XK_KP_2 - KEY_MAP_OFFSET] = rsPADDOWN; + keymap[XK_KP_3 - KEY_MAP_OFFSET] = rsPADPGDN; + keymap[XK_KP_4 - KEY_MAP_OFFSET] = rsPADLEFT; + keymap[XK_KP_5 - KEY_MAP_OFFSET] = rsPAD5; + keymap[XK_KP_6 - KEY_MAP_OFFSET] = rsPADRIGHT; + keymap[XK_KP_7 - KEY_MAP_OFFSET] = rsPADHOME; + keymap[XK_KP_8 - KEY_MAP_OFFSET] = rsPADUP; + keymap[XK_KP_9 - KEY_MAP_OFFSET] = rsPADPGUP; + keymap[XK_KP_Insert - KEY_MAP_OFFSET] = rsPADINS; + keymap[XK_KP_End - KEY_MAP_OFFSET] = rsPADEND; + keymap[XK_KP_Down - KEY_MAP_OFFSET] = rsPADDOWN; + keymap[XK_KP_Page_Down - KEY_MAP_OFFSET] = rsPADPGDN; + keymap[XK_KP_Left - KEY_MAP_OFFSET] = rsPADLEFT; + keymap[XK_KP_Begin - KEY_MAP_OFFSET] = rsPAD5; + keymap[XK_KP_Right - KEY_MAP_OFFSET] = rsPADRIGHT; + keymap[XK_KP_Home - KEY_MAP_OFFSET] = rsPADHOME; + keymap[XK_KP_Up - KEY_MAP_OFFSET] = rsPADUP; + keymap[XK_KP_Page_Up - KEY_MAP_OFFSET] = rsPADPGUP; + + keymap[XK_KP_Decimal - KEY_MAP_OFFSET] = rsPADDEL; + keymap[XK_KP_Divide - KEY_MAP_OFFSET] = rsDIVIDE; + keymap[XK_KP_Multiply - KEY_MAP_OFFSET] = rsTIMES; + keymap[XK_KP_Subtract - KEY_MAP_OFFSET] = rsMINUS; + keymap[XK_KP_Add - KEY_MAP_OFFSET] = rsPLUS; + keymap[XK_KP_Enter - KEY_MAP_OFFSET] = rsPADENTER; + keymap[XK_KP_Equal - KEY_MAP_OFFSET] = rsNULL; + keymap[XK_Shift_L - KEY_MAP_OFFSET] = rsLSHIFT; + keymap[XK_Control_L - KEY_MAP_OFFSET] = rsLCTRL; + keymap[XK_Alt_L - KEY_MAP_OFFSET] = rsLALT; + keymap[XK_Super_L - KEY_MAP_OFFSET] = rsLWIN; + keymap[XK_Shift_R - KEY_MAP_OFFSET] = rsRSHIFT; + keymap[XK_Control_R - KEY_MAP_OFFSET] = rsRCTRL; + keymap[XK_Alt_R - KEY_MAP_OFFSET] = rsRALT; + keymap[XK_Super_R - KEY_MAP_OFFSET] = rsRWIN; + keymap[XK_Menu - KEY_MAP_OFFSET] = rsNULL; + + // Cache the key codes' key symbol equivelants, otherwise we will have to do it on each frame + // KeyCode is always in [0,255], and represents a physical key + + int min_keycode, max_keycode, keysyms_per_keycode; + KeySym *keymap, *origkeymap; + + char *keyboardLang = setlocale (LC_CTYPE, NULL); + setlocale(LC_CTYPE, ""); + + XDisplayKeycodes(display, &min_keycode, &max_keycode); + origkeymap = XGetKeyboardMapping(display, min_keycode, (max_keycode - min_keycode + 1), &keysyms_per_keycode); + keymap = origkeymap; + for (int i = min_keycode; i <= max_keycode; i++) { + int j, lastKeysym; + + lastKeysym = keysyms_per_keycode - 1; + while ((lastKeysym >= 0) && (keymap[lastKeysym] == NoSymbol)) + lastKeysym--; + + for (j = 0; j <= lastKeysym; j++) { + KeySym ks = keymap[j]; + + if (ks == NoSymbol) + continue; + + if (ks < 256) { + keyCodeToKeymapIndex[i] = ks; + break; + } else if (ks >= 0xff00 && ks < 0xffff) { + keyCodeToKeymapIndex[i] = ks - KEY_MAP_OFFSET; + break; + } + } + keymap += keysyms_per_keycode; + } + XFree(origkeymap); + + setlocale(LC_CTYPE, keyboardLang); +} +#undef KEY_MAP_OFFSET + +void checkKeyPresses() +{ + Display *display = glfwGetX11Display(); + char keys[32]; + XQueryKeymap(display, keys); + for (int i = 0; i < sizeof(keys); i++) { + for (int j = 0; j < 8; j++) { + KeyCode keycode = 8 * i + j; + uint32 keymapIndex = keyCodeToKeymapIndex[keycode]; + if (keymapIndex != 0) { + int rsCode = keymap[keymapIndex]; + if (rsCode == rsNULL) + continue; + + bool pressed = WindowFocused && !!(keys[i] & (1 << j)); + + // idk why R* does that + if (rsCode == rsLSHIFT) + lshiftStatus = pressed; + else if (rsCode == rsRSHIFT) + rshiftStatus = pressed; + + if (keyStates[keymapIndex] != pressed) { + if (pressed) { + RsKeyboardEventHandler(rsKEYDOWN, &rsCode); + } else { + RsKeyboardEventHandler(rsKEYUP, &rsCode); + } + } + + keyStates[keymapIndex] = pressed; + } + } + } + +} +#endif + // R* calls that in ControllerConfig, idk why void _InputTranslateShiftKeyUpDown(RsKeyCodes *rs) { @@ -1492,6 +1777,16 @@ cursorEnterCB(GLFWwindow* window, int entered) { PSGLOBAL(cursorIsInWindow) = !!entered; } +void +windowFocusCB(GLFWwindow* window, int focused) { + WindowFocused = !!focused; +} + +void +windowIconifyCB(GLFWwindow* window, int iconified) { + WindowIconified = !!iconified; +} + /* ***************************************************************************** */ @@ -1744,6 +2039,9 @@ main(int argc, char *argv[]) #endif { glfwPollEvents(); +#ifdef GET_KEYBOARD_INPUT_FROM_X11 + checkKeyPresses(); +#endif #ifndef MASTER if (gbModelViewer) { // This is TheModelViewerCore in LCS @@ -1844,8 +2142,8 @@ main(int argc, char *argv[]) printf("Into TheGame!!!\n"); #else - LoadingScreen(nil, nil, "sceelee"); - // LoadingScreen(nil, nil, "sceelee"); // duplicate + LoadingScreen(nil, nil, "loadsc0"); + // LoadingScreen(nil, nil, "loadsc0"); // duplicate #endif if ( !CGame::InitialiseOnceAfterRW() ) RsGlobal.quit = TRUE; @@ -1861,8 +2159,8 @@ main(int argc, char *argv[]) #ifndef PS2_MENU case GS_INIT_FRONTEND: { - LoadingScreen(nil, nil, "sceelee"); - // LoadingScreen(nil, nil, "sceelee"); // duplicate + LoadingScreen(nil, nil, "loadsc0"); + // LoadingScreen(nil, nil, "loadsc0"); // duplicate FrontEndMenuManager.m_bGameNotLoaded = true; @@ -1882,7 +2180,7 @@ main(int argc, char *argv[]) case GS_FRONTEND: { - if(!glfwGetWindowAttrib(PSGLOBAL(window), GLFW_ICONIFIED)) + if(!WindowIconified) RsEventHandler(rsFRONTENDIDLE, nil); #ifdef PS2_MENU diff --git a/src/skel/skeleton.cpp b/src/skel/skeleton.cpp index d580568..2bb2346 100644 --- a/src/skel/skeleton.cpp +++ b/src/skel/skeleton.cpp @@ -397,7 +397,7 @@ RsInitialize(void) */ RwBool result; - RsGlobal.appName = RWSTRING("GTA: Liberty City Stories"); + RsGlobal.appName = RWSTRING("GTA: Vice City"); RsGlobal.maximumWidth = DEFAULT_SCREEN_WIDTH; RsGlobal.maximumHeight = DEFAULT_SCREEN_HEIGHT; RsGlobal.width = DEFAULT_SCREEN_WIDTH; diff --git a/src/skel/win/gtalcs.ico b/src/skel/win/gtalcs.ico deleted file mode 100644 index c4b5343681642f0d2dfc5a483ec2810358accc5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2238 zcmc(gd0bOh7RP^9Yrudck^}^02}A2o^fRB)nPKjOvGdpbJtv>vy~+9J-1FW! z@7)WmARikWkkJ6$1^^F$kchYtOho%>JG5$PS{_#XXIep`|A*dqVY*U!5GX}hA#hKCz+(pl;zSaY41sSd1b*po2+D+0=pHz4&4ft$E?lJ9aFyo5 zOEf_G8@{F3(}D0wd=DSHu?wh!Uy?;|{`9MYU> zMC2bvOhGMT4*m);MRkys{2FoP^@yu%K%D#&qT`TNG$OXF3DJco5LM8O$h;OrWVK>j zW-FxcoJ4qPD1p;#V5t#d11ms_af5F%AKX48Hh2O%jcm)2XqX?+Di6HqTB-Im$P)s1Mb`m@5 zrjdMX25HA;kx{2b`UhIPqtIga;aQ{|nnh|2QS~kCs`{@|SjGNUHt=l8$_Xl)9@({pfc{`}iyD{`4}^8^1*6@qT1{(ueehE~M9=MuzeP_S8|x zI&uW>RTm?tG7q^WsmOVMJF@r3AiE#}Is3O^UtuH;mPVnhDh4&R@isgn(0nQl z?W%OBdNR;;ZVy!Fve9ua7wzZv;&ktRwDlfDOHT=o_tfCSZY31mEhy{i!$H+oIH0;h z=5J8g^(~5ehEUu)f|Ad_L$P`sW#=bRap4x^7w$l={+>vOioW|O?R$Xo3lC5_K=d{F zef0s#e*b5b4?af4@Do&i_amxCe?ryR0;+F5L(Rl<9GZNA!$h^?FK~3^Ih4cCQ9tw? z9}!U_FYxJ&7ib*&D?YpVGfqtW4K0&@N6XYpw9fnkCvW|e=wH96jeI{f`x0kne@2J) zDSB_;NB`U;uHLs4h&tv`PH3H85q=^j{qO3Y5x- zq%q}mR$MG(OVIH3UxJkS$Gc_Gl6>WAITSHv*Cr%~oE>3XsD+g?XMAORLn9#G1c;(BMNL2L5bTZ(juH*z zJRHw-x3i=3CIRbC$oN|-DXRXN{_&&XD4F`=P!GF30UUx^fk1R_V19mn6V>p9q`$#t zIQCz?XrMh!M}y@F?q`1d053n^Ch9TaPdC8H;(Wiu*qx0uXLvzIUs|88OHgBq407zv5s?@aXANHxUf=Vs+JOzHKz)S~{ymnNpg3@e8F z-87I*o1ITlY|c*M4)5k?de`&nfyGN3JqwME?Ampmq(DLRrSlE=8?E@+di{0_k@}T7 zK_z3EX0_`^f&DRb>O4~)d1J$Uy?$)HbD!n*^y^;mZ&T^!tr6}=T1)OB$}T#3T>q1p zVcC^AH>VOZLMzjBvk8#c`OuuSprTd(NDQn=y?0wT*pJZKQJpTs%#P2ZYfIboLJE^? z?Div_b6O2MxaRiUz0s}k;@B)>>cJBSKyW>?EB=r38mC~z(YaBrio-G`j{t4Tg--gs z%v8r@(1oI+kVryG`%LzG3AuR+;rMz=&TKbW9%|I(>SQ5|~h?w>NOh;N-wq>st+ zVQXeJ+pfKCsd27Ulov}r(9XKkK}*IWEm>nK9vs#si8Sia8inkDq;U4;re$j5Nk5Th zT=(zib%INp%R;Y0MYJu)F6C^budOkRIWV??fu%+InC^~+Mxz x^z!0z9fnl8P7&c65sz!U-qCdv&(Pk8$K~>PJeGka+fCbXPuj0}9rXX2{|$zf**X9K diff --git a/src/skel/win/gtavc.ico b/src/skel/win/gtavc.ico new file mode 100644 index 0000000000000000000000000000000000000000..7bfcc5a5751ad1bedab31b8c5a771a15bdccf065 GIT binary patch literal 81817 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 + 48; - - while (*in != '~') in++; - in++; - - int i = 1; - while (*in != '~') - str[1+i++] = *(in++); - - wchar *text = TheText.Get(UnicodeToAscii(str)); - if (!text) return i; - while (text[0] != '\0') - { - if (text[0] == '~') - { - switch (text[1]) - { - case 'L': - *(out++) = 'M'; - break; - case 'N': - *(out++) = 'O'; - break; - case 'O': - *(out++) = 227; - break; - case 'R': - *(out++) = 'S'; - break; - case 'S': - *(out++) = 225; - break; - case 'T': - *(out++) = 224; - break; - case 'X': - *(out++) = 226; - break; - default: - break; - } - text += 3; - } - else { - *(out++) = *(text++); - } - } - return i; -} - void CMessages::InsertPlayerControlKeysInString(wchar *str) { @@ -510,7 +450,7 @@ CMessages::InsertPlayerControlKeysInString(wchar *str) if (!str) return; uint16 strSize = GetWideStringLength(str); - memset(keybuf, 0, 256*sizeof(wchar)); // not memset? :O + memset(keybuf, 0, 256*sizeof(wchar)); wchar *_outstr = outstr; for (i = 0; i < strSize;) { @@ -520,16 +460,9 @@ CMessages::InsertPlayerControlKeysInString(wchar *str) #else if (str[i] == '~' && str[i + 1] == 'k' && str[i + 2] == '~') { #endif - memset(keybuf, 0, 256 * sizeof(wchar)); i += 4; - i += GetTokenPadKeyString(&str[i], keybuf) + 1; - uint16 keybuf_size = GetWideStringLength(keybuf); - for (uint16 j = 0; j < keybuf_size; j++) { - *(_outstr++) = keybuf[j]; - keybuf[j] = '\0'; - } - - /*for (int32 cont = 0; cont < MAX_CONTROLLERACTIONS && !done; cont++) { + bool done = false; + for (int32 cont = 0; cont < MAX_CONTROLLERACTIONS && !done; cont++) { uint16 contSize = GetWideStringLength(ControlsManager.m_aActionNames[cont]); if (contSize != 0) { if (WideStringCompare(&str[i], ControlsManager.m_aActionNames[cont], contSize)) { @@ -543,7 +476,7 @@ CMessages::InsertPlayerControlKeysInString(wchar *str) i += contSize + 1; } } - }*/ + } } else { *(_outstr++) = str[i++]; } @@ -880,13 +813,3 @@ CMessages::ClearAllMessagesDisplayedByGame() CHud::GetRidOfAllHudMessages(); CUserDisplay::Pager.ClearMessages(); } - -void -CMessages::ClearThisBigPrintNow(uint32 id) -{ - if (BIGMessages[id].m_Stack[0].m_pText) - ClearThisBigPrint(BIGMessages[id].m_Stack[0].m_pText); - CHud::m_BigMessage[id][0] = '\0'; - BigMessageInUse[id] = 0.0f; -} - diff --git a/src/text/Messages.h b/src/text/Messages.h index 5111290..e8ba1bf 100644 --- a/src/text/Messages.h +++ b/src/text/Messages.h @@ -61,8 +61,6 @@ public: static void ClearThisPrint(wchar *str); static void ClearThisBigPrint(wchar *str); static void ClearAllMessagesDisplayedByGame(void); - static void ClearThisBigPrintNow(uint32 id); - static int GetTokenPadKeyString(const wchar *in, wchar *out); // unused or cut //static void AddMessageSoonWithString(wchar*, uint32, uint16, wchar*); diff --git a/src/text/Text.cpp b/src/text/Text.cpp index ad51210..1369d1d 100644 --- a/src/text/Text.cpp +++ b/src/text/Text.cpp @@ -11,7 +11,7 @@ wchar WideErrorString[25]; -CText *CText::msInstance = nil; +CText TheText; CText::CText(void) { @@ -39,7 +39,7 @@ CText::Load(void) CFileMgr::SetDir("TEXT"); switch(FrontEndMenuManager.m_PrefsLanguage){ case CMenuManager::LANGUAGE_AMERICAN: - sprintf(filename, "ENGLISH.GXT"); + sprintf(filename, "AMERICAN.GXT"); break; case CMenuManager::LANGUAGE_FRENCH: sprintf(filename, "FRENCH.GXT"); @@ -91,13 +91,11 @@ CText::Load(void) keyArray.Update(data.chars); CFileMgr::CloseFile(file); CFileMgr::SetDir(""); - bIsLoaded = true; } void CText::Unload(void) { - bIsLoaded = false; CMessages::ClearAllMessagesDisplayedByGame(); keyArray.Unload(); data.Unload(); @@ -245,7 +243,7 @@ CText::LoadMissionText(char *MissionTableName) CFileMgr::SetDir("TEXT"); switch (FrontEndMenuManager.m_PrefsLanguage) { case CMenuManager::LANGUAGE_AMERICAN: - sprintf(filename, "ENGLISH.GXT"); + sprintf(filename, "AMERICAN.GXT"); break; case CMenuManager::LANGUAGE_FRENCH: sprintf(filename, "FRENCH.GXT"); @@ -260,13 +258,13 @@ CText::LoadMissionText(char *MissionTableName) sprintf(filename, "SPANISH.GXT"); break; #ifdef MORE_LANGUAGES - case LANGUAGE_POLISH: + case CMenuManager::LANGUAGE_POLISH: sprintf(filename, "POLISH.GXT"); break; - case LANGUAGE_RUSSIAN: + case CMenuManager::LANGUAGE_RUSSIAN: sprintf(filename, "RUSSIAN.GXT"); break; - case LANGUAGE_JAPANESE: + case CMenuManager::LANGUAGE_JAPANESE: sprintf(filename, "JAPANESE.GXT"); break; #endif @@ -307,11 +305,6 @@ CText::LoadMissionText(char *MissionTableName) bIsMissionTextLoaded = true; } -bool -CText::IsLoaded() -{ - return bIsLoaded; -} void CKeyArray::Load(size_t length, int file, size_t* offset) diff --git a/src/text/Text.h b/src/text/Text.h index 0538734..1174216 100644 --- a/src/text/Text.h +++ b/src/text/Text.h @@ -58,7 +58,7 @@ public: uint32 offset; }; - enum {MAX_MISSION_TEXTS = 200}; + enum {MAX_MISSION_TEXTS = 90}; // beware that LCS has more Entry data[MAX_MISSION_TEXTS]; uint16 size; // You can make this size_t if you want to exceed 32-bit boundaries, everything else should be ready. @@ -84,9 +84,6 @@ class CText bool bIsMissionTextLoaded; char szMissionTableName[8]; CMissionTextOffsets MissionTextOffsets; - bool bIsLoaded; - - static CText *msInstance; public: CText(void); void Load(void); @@ -97,15 +94,6 @@ public: void GetNameOfLoadedMissionText(char *outName); void ReadChunkHeader(ChunkHeader *buf, int32 file, size_t *bytes_read); void LoadMissionText(char *MissionTableName); - bool IsLoaded(); - void GetUTF8(const char*, char*, int); // TODO but unused - - static CText &Instance() - { - if (!msInstance) - msInstance = new CText; - return *msInstance; - } }; -#define TheText CText::Instance() +extern CText TheText; diff --git a/src/vehicles/Automobile.cpp b/src/vehicles/Automobile.cpp index 0d14fef..06dc1b5 100644 --- a/src/vehicles/Automobile.cpp +++ b/src/vehicles/Automobile.cpp @@ -102,8 +102,6 @@ CAutomobile::CAutomobile(int32 id, uint8 CreatedBy) pHandling = mod_HandlingManager.GetHandlingData((tVehicleType)mi->m_handlingId); pFlyingHandling = mod_HandlingManager.GetFlyingPointer((tVehicleType)mi->m_handlingId); - m_fEngineInertiaVar1 = 0.0f; - m_fEngineInertiaVar2 = 0.0f; m_auto_unused1 = 20.0f; m_auto_unused2 = 0; @@ -152,7 +150,7 @@ CAutomobile::CAutomobile(int32 id, uint8 CreatedBy) m_fMass = pHandling->fMass; m_fTurnMass = pHandling->fTurnMass; m_vecCentreOfMass = pHandling->CentreOfMass; - m_fAirResistance = pHandling->fDragMult > 0.01f ? pHandling->fDragMult*0.0005f : pHandling->fDragMult; + m_fAirResistance = pHandling->Dimension.x*pHandling->Dimension.z/m_fMass; m_fElasticity = 0.05f; m_fBuoyancy = pHandling->fBuoyancy; @@ -193,6 +191,12 @@ CAutomobile::CAutomobile(int32 id, uint8 CreatedBy) m_fTraction = 1.0f; m_fTireTemperature = 1.0f; + CColModel *colModel = mi->GetColModel(); + if(colModel->lines == nil){ + colModel->lines = (CColLine*)RwMalloc(4*sizeof(CColLine)); + colModel->numLines = 4; + } + SetupSuspensionLines(); SetStatus(STATUS_SIMPLE); @@ -252,10 +256,6 @@ CVector vecDAMAGE_ENGINE_POS_BIG(-0.5f, -0.3f, 0.0f); void CAutomobile::ProcessControl(void) { - // TODO(LCS): - // TheCamera can remove service vehicles - // some audio (?) stuff - int i; float wheelRot; CColModel *colModel; @@ -310,7 +310,7 @@ CAutomobile::ProcessControl(void) if(GetStatus() != STATUS_ABANDONED && GetStatus() != STATUS_WRECKED && GetStatus() != STATUS_PLAYER && GetStatus() != STATUS_PLAYER_REMOTE && GetStatus() != STATUS_PLAYER_DISABLED){ switch(GetModelIndex()) - case MI_FBICAR: + case MI_FBIRANCH: case MI_POLICE: case MI_ENFORCER: case MI_SECURICA: @@ -319,18 +319,16 @@ CAutomobile::ProcessControl(void) ScanForCrimes(); } - // TODO(LCS): the fields used by this function are weird - ActivateBombWhenEntered(); - // Process driver - if(pDriver){ + if(pDriver) if(IsUpsideDown() && CanPedEnterCar()){ if(!pDriver->IsPlayer() && !(pDriver->m_leader && pDriver->m_leader->bInVehicle) && pDriver->CharCreatedBy != MISSION_CHAR) pDriver->SetObjective(OBJECTIVE_LEAVE_CAR, this); } - } + + ActivateBombWhenEntered(); // Process passengers if(m_nNumPassengers != 0 && IsUpsideDown() && CanPedEnterCar()){ @@ -353,7 +351,7 @@ CAutomobile::ProcessControl(void) if(strongGrip1 || bCheat3) m_vecCentreOfMass.z = 0.3f*m_aSuspensionSpringLength[0] + -1.0f*m_fHeightAboveRoad; else if(pHandling->Flags & HANDLING_NONPLAYER_STABILISER && GetStatus() == STATUS_PHYSICS) - m_vecCentreOfMass.z = pHandling->CentreOfMass.z + (colModel->boundingBox.min.z - pHandling->CentreOfMass.z)*0.4f; + m_vecCentreOfMass.z = pHandling->CentreOfMass.z - 0.2f*pHandling->Dimension.z; else m_vecCentreOfMass = pHandling->CentreOfMass; @@ -373,7 +371,11 @@ CAutomobile::ProcessControl(void) bool playerRemote = false; switch(GetStatus()){ case STATUS_PLAYER_REMOTE: +#ifdef FIX_BUGS if(CPad::GetPad(0)->CarGunJustDown() && !bDisableRemoteDetonation){ +#else + if(CPad::GetPad(0)->WeaponJustDown() && !bDisableRemoteDetonation){ +#endif BlowUpCar(FindPlayerPed()); CRemote::TakeRemoteControlledCarFromPlayer(); } @@ -392,7 +394,6 @@ CAutomobile::ProcessControl(void) // fall through case STATUS_PLAYER: if(playerRemote || - // TODO(LCS): ped state 64 pDriver && pDriver->GetPedState() != PED_EXIT_CAR && pDriver->GetPedState() != PED_DRAG_FROM_CAR && pDriver->GetPedState() != PED_ARRESTED){ // process control input if controlled by player if(playerRemote || pDriver->m_nPedType == PEDTYPE_PLAYER1) @@ -418,8 +419,6 @@ CAutomobile::ProcessControl(void) }else m_vecCentreOfMass.z = pHandling->CentreOfMass.z; - // TODO(LCS): some in air handling? - if(bHoverCheat) DoHoverSuspensionRatios(); @@ -455,6 +454,8 @@ CAutomobile::ProcessControl(void) m_fBrakePedal = 1.0f; m_fGasPedal = 0.0f; } + if(CPad::GetPad(0)->CarGunJustDown()) + ActivateBomb(); break; case STATUS_SIMPLE: @@ -494,7 +495,7 @@ CAutomobile::ProcessControl(void) m_aSuspensionSpringRatio[1] < 1.0f && CSurfaceTable::GetAdhesionGroup(m_aWheelColPoints[1].surfaceB) == ADHESIVE_SAND || m_aSuspensionSpringRatio[2] < 1.0f && CSurfaceTable::GetAdhesionGroup(m_aWheelColPoints[2].surfaceB) == ADHESIVE_SAND || m_aSuspensionSpringRatio[3] < 1.0f && CSurfaceTable::GetAdhesionGroup(m_aWheelColPoints[3].surfaceB) == ADHESIVE_SAND){ - if(GetModelIndex() != MI_RCBANDIT /*&& GetModelIndex() != MI_SANDKING*/ && GetModelIndex() != MI_BFINJECT){ + if(GetModelIndex() != MI_RCBANDIT && GetModelIndex() != MI_SANDKING && GetModelIndex() != MI_BFINJECT){ bStuckInSand = true; if(CWeather::WetRoads > 0.0f) ApplyMoveForce(m_vecMoveSpeed * -CTimer::GetTimeStep()*SAND_SLOWDOWN*m_fMass * (1.0f-CWeather::WetRoads)); @@ -529,10 +530,8 @@ CAutomobile::ProcessControl(void) m_fSteerAngle = 0.0f; m_fGasPedal = 0.0f; - m_nCarHornTimer = 0; - // TODO(LCS): - // CWeapon::::RemovePlayersRemoteDetonatorForThisVehicle - m_pBombRigger = nil; + if(!IsAlarmOn()) + m_nCarHornTimer = 0; break; case STATUS_PLAYER_DISABLED: @@ -626,13 +625,14 @@ CAutomobile::ProcessControl(void) // special control switch(GetModelIndex()){ - // FireTruckControl in PreRender now + case MI_FIRETRUCK: + FireTruckControl(); + break; case MI_RHINO: TankControl(); BlowUpCarsInPath(); break; - // LCS: this is gone but i'm keeping it! - case MI_YARDIE: + case MI_VOODOO: HydraulicControl(); break; default: @@ -722,7 +722,7 @@ CAutomobile::ProcessControl(void) ApplyTurnSpeed(); } bIsInSafePosition = true; - bIsStuck = false; + bIsStuck = false; } CPhysical::ProcessControl(); @@ -741,7 +741,6 @@ CAutomobile::ProcessControl(void) CVector contactPoints[4]; // relative to model CVector contactSpeeds[4]; // speed at contact points CVector springDirections[4]; // normalized, in world space - float springForces[4]; for(i = 0; i < 4; i++){ // Set spring under certain circumstances @@ -765,13 +764,10 @@ CAutomobile::ProcessControl(void) } // get points and directions if spring is compressed - springDirections[i] = -GetUp(); // springs are always pointing down anyway if(m_aSuspensionSpringRatio[i] < 1.0f){ contactPoints[i] = m_aWheelColPoints[i].point - GetPosition(); -// springDirections[i] = Multiply3x3(GetMatrix(), colModel->lines[i].p1 - colModel->lines[i].p0); -// springDirections[i].Normalise(); - }else{ - contactPoints[i] = CVector(0.0f, 0.0f, 0.0f); + springDirections[i] = Multiply3x3(GetMatrix(), colModel->lines[i].p1 - colModel->lines[i].p0); + springDirections[i].Normalise(); } } @@ -784,7 +780,7 @@ CAutomobile::ProcessControl(void) ApplySpringCollisionAlt(pHandling->fSuspensionForceLevel, springDirections[i], contactPoints[i], - m_aSuspensionSpringRatio[i], bias, m_aWheelColPoints[i].normal, springForces[i]); + m_aSuspensionSpringRatio[i], bias, m_aWheelColPoints[i].normal); m_aWheelSkidmarkUnk[i] = false; if(m_aWheelColPoints[i].surfaceB == SURFACE_GRASS || @@ -796,8 +792,8 @@ CAutomobile::ProcessControl(void) m_aWheelSkidmarkUnk[i] = true; }else m_aWheelSkidmarkType[i] = SKIDMARK_NORMAL; -// }else{ -// contactPoints[i] = Multiply3x3(GetMatrix(), colModel->lines[i].p1); + }else{ + contactPoints[i] = Multiply3x3(GetMatrix(), colModel->lines[i].p1); } } @@ -819,7 +815,7 @@ CAutomobile::ProcessControl(void) // dampen springs for(i = 0; i < 4; i++) if(m_aSuspensionSpringRatio[i] < 0.99999f) - ApplySpringDampening(pHandling->fSuspensionDampingLevel, springForces[i], + ApplySpringDampening(pHandling->fSuspensionDampingLevel, springDirections[i], contactPoints[i], contactSpeeds[i]); // Get speed at contact points again @@ -832,6 +828,42 @@ CAutomobile::ProcessControl(void) } } + bool gripCheat = true; + fwdSpeed = DotProduct(m_vecMoveSpeed, GetForward()); + if(!strongGrip1 && !CVehicle::bCheat3) + gripCheat = false; + float acceleration = pHandling->Transmission.CalculateDriveAcceleration(m_fGasPedal, m_nCurrentGear, m_fChangeGearTime, fwdSpeed, gripCheat); + acceleration /= m_fForceMultiplier; + + if(IsRealHeli() || IsRealPlane()) + acceleration = 0.0f; + + if(bAudioChangingGear && m_fGasPedal > 0.4f && m_fBrakePedal < 0.1f && fwdSpeed > 0.15f && + this == FindPlayerVehicle() && TheCamera.Cams[TheCamera.ActiveCam].Mode != CCam::MODE_1STPERSON){ + if(GetStatus() == STATUS_PLAYER && !(pHandling->Flags & HANDLING_IS_BUS)){ + if(m_nBusDoorTimerEnd == 0) + m_nBusDoorTimerEnd = 1000; + else { + uint32 timeStepInMs = CTimer::GetTimeStepInMilliseconds(); + if(m_nBusDoorTimerEnd > timeStepInMs) + m_nBusDoorTimerEnd -= timeStepInMs; + else + m_nBusDoorTimerEnd = 0; + } + } + + if((m_aSuspensionSpringRatio[0] < 1.0f || m_aSuspensionSpringRatio[2] < 1.0f) && + (m_aSuspensionSpringRatio[1] < 1.0f || m_aSuspensionSpringRatio[3] < 1.0f)) + ApplyTurnForce(-GRAVITY*Min(m_fTurnMass, 2500.0f)*GetUp(), -1.0f*GetForward()); + } + + brake = m_fBrakePedal * pHandling->fBrakeDeceleration * CTimer::GetTimeStep(); + bool neutralHandling = GetStatus() != STATUS_PLAYER && GetStatus() != STATUS_PLAYER_REMOTE && (pHandling->Flags & HANDLING_NEUTRALHANDLING); + float brakeBiasFront = neutralHandling ? 1.0f : 2.0f*pHandling->fBrakeBias; + float brakeBiasRear = neutralHandling ? 1.0f : 2.0f-pHandling->fBrakeBias; // looks like a bug, but it was correct in III... + float tractionBiasFront = neutralHandling ? 1.0f : 2.0f*pHandling->fTractionBias; + float tractionBiasRear = neutralHandling ? 1.0f : 2.0f-tractionBiasFront; + // Count how many wheels are touching the ground m_nWheelsOnGround = 0; @@ -862,36 +894,16 @@ CAutomobile::ProcessControl(void) } } - bool gripCheat = true; - fwdSpeed = DotProduct(m_vecMoveSpeed, GetForward()); - if(!strongGrip1 && !CVehicle::bCheat3) - gripCheat = false; - float acceleration = pHandling->Transmission.CalculateDriveAcceleration(m_fGasPedal, m_nCurrentGear, m_fChangeGearTime, fwdSpeed, - &m_fEngineInertiaVar1, &m_fEngineInertiaVar2, m_nDriveWheelsOnGround, gripCheat); - acceleration /= m_fForceMultiplier; - - if(IsRealHeli() || IsRealPlane()) - acceleration = 0.0f; - - if(Abs(acceleration) > 0.0f) - m_fEngineEnergy += Abs(acceleration); - else - m_fEngineEnergy = 0.0f; - float traction; if(GetStatus() == STATUS_PHYSICS) traction = 0.004f * m_fTraction; else traction = 0.004f; - traction *= pHandling->GetTractionMultiplier() / 4.0f; + traction *= pHandling->fTractionMultiplier / 4.0f; traction /= m_fForceMultiplier; if(CVehicle::bCheat3) traction *= 4.0f; - if(FindPlayerVehicle() && FindPlayerVehicle() == this) - if(CPad::GetPad(0)->CarGunJustDown()) - ActivateBomb(); - if(FindPlayerVehicle() != this && (strongGrip1 || CVehicle::bCheat3)){ traction *= 1.2f; acceleration *= 1.4f; @@ -901,73 +913,448 @@ CAutomobile::ProcessControl(void) } } - // TODO(LCS): where did this go? -/* - if(bAudioChangingGear && m_fGasPedal > 0.4f && m_fBrakePedal < 0.1f && fwdSpeed > 0.15f && - this == FindPlayerVehicle() && TheCamera.Cams[TheCamera.ActiveCam].Mode != CCam::MODE_1STPERSON){ - if(GetStatus() == STATUS_PLAYER && !(pHandling->Flags & HANDLING_IS_BUS)){ - if(m_nBusDoorTimerEnd == 0) - m_nBusDoorTimerEnd = 1000; - else { - uint32 timeStepInMs = CTimer::GetTimeStepInMilliseconds(); - if(m_nBusDoorTimerEnd > timeStepInMs) - m_nBusDoorTimerEnd -= timeStepInMs; - else - m_nBusDoorTimerEnd = 0; - } + static float fThrust; + static tWheelState WheelState[4]; + + bool rearWheelsFirst = !!(pHandling->Flags & HANDLING_REARWHEEL_1ST); + + // Process front wheels on ground - first try + + if(!rearWheelsFirst){ + if(m_aWheelTimer[CARWHEEL_FRONT_LEFT] > 0.0f || m_aWheelTimer[CARWHEEL_FRONT_RIGHT] > 0.0f){ + float s = Sin(m_fSteerAngle); + float c = Cos(m_fSteerAngle); + + CVector wheelFwd, wheelRight, tmp; + + if(m_aWheelTimer[CARWHEEL_FRONT_LEFT] > 0.0f){ + if(mod_HandlingManager.HasFrontWheelDrive(pHandling->nIdentifier)) + fThrust = acceleration; + else + fThrust = 0.0f; + + wheelFwd = GetForward(); + wheelFwd -= DotProduct(wheelFwd, m_aWheelColPoints[CARWHEEL_FRONT_LEFT].normal)*m_aWheelColPoints[CARWHEEL_FRONT_LEFT].normal; + wheelFwd.Normalise(); + wheelRight = CrossProduct(wheelFwd, m_aWheelColPoints[CARWHEEL_FRONT_LEFT].normal); + wheelRight.Normalise(); + tmp = c*wheelFwd - s*wheelRight; + wheelRight = s*wheelFwd + c*wheelRight; + wheelFwd = tmp; + + m_aWheelColPoints[CARWHEEL_FRONT_LEFT].surfaceA = SURFACE_WHEELBASE; + float adhesion = CSurfaceTable::GetAdhesiveLimit(m_aWheelColPoints[CARWHEEL_FRONT_LEFT])*traction; + if(GetStatus() == STATUS_PLAYER) + adhesion *= CSurfaceTable::GetWetMultiplier(m_aWheelColPoints[CARWHEEL_FRONT_LEFT].surfaceB); + WheelState[CARWHEEL_FRONT_LEFT] = m_aWheelState[CARWHEEL_FRONT_LEFT]; + + if(Damage.GetWheelStatus(CARWHEEL_FRONT_LEFT) == WHEEL_STATUS_BURST) + ProcessWheel(wheelFwd, wheelRight, + contactSpeeds[CARWHEEL_FRONT_LEFT], contactPoints[CARWHEEL_FRONT_LEFT], + m_nWheelsOnGround, fThrust, + brake*brakeBiasFront, + adhesion*tractionBiasFront*Damage.m_fWheelDamageEffect, + CARWHEEL_FRONT_LEFT, + &m_aWheelSpeed[CARWHEEL_FRONT_LEFT], + &WheelState[CARWHEEL_FRONT_LEFT], + WHEEL_STATUS_BURST); + else + ProcessWheel(wheelFwd, wheelRight, + contactSpeeds[CARWHEEL_FRONT_LEFT], contactPoints[CARWHEEL_FRONT_LEFT], + m_nWheelsOnGround, fThrust, + brake*brakeBiasFront, + adhesion*tractionBiasFront, + CARWHEEL_FRONT_LEFT, + &m_aWheelSpeed[CARWHEEL_FRONT_LEFT], + &WheelState[CARWHEEL_FRONT_LEFT], + WHEEL_STATUS_OK); } - if((m_aSuspensionSpringRatio[0] < 1.0f || m_aSuspensionSpringRatio[2] < 1.0f) && - (m_aSuspensionSpringRatio[1] < 1.0f || m_aSuspensionSpringRatio[3] < 1.0f)) - ApplyTurnForce(-GRAVITY*Min(m_fTurnMass, 2500.0f)*GetUp(), -1.0f*GetForward()); + if(m_aWheelTimer[CARWHEEL_FRONT_RIGHT] > 0.0f){ + if(mod_HandlingManager.HasFrontWheelDrive(pHandling->nIdentifier)) + fThrust = acceleration; + else + fThrust = 0.0f; + + wheelFwd = GetForward(); + wheelFwd -= DotProduct(wheelFwd, m_aWheelColPoints[CARWHEEL_FRONT_RIGHT].normal)*m_aWheelColPoints[CARWHEEL_FRONT_RIGHT].normal; + wheelFwd.Normalise(); + wheelRight = CrossProduct(wheelFwd, m_aWheelColPoints[CARWHEEL_FRONT_RIGHT].normal); + wheelRight.Normalise(); + tmp = c*wheelFwd - s*wheelRight; + wheelRight = s*wheelFwd + c*wheelRight; + wheelFwd = tmp; + + m_aWheelColPoints[CARWHEEL_FRONT_RIGHT].surfaceA = SURFACE_WHEELBASE; + float adhesion = CSurfaceTable::GetAdhesiveLimit(m_aWheelColPoints[CARWHEEL_FRONT_RIGHT])*traction; + if(GetStatus() == STATUS_PLAYER) + adhesion *= CSurfaceTable::GetWetMultiplier(m_aWheelColPoints[CARWHEEL_FRONT_RIGHT].surfaceB); + WheelState[CARWHEEL_FRONT_RIGHT] = m_aWheelState[CARWHEEL_FRONT_RIGHT]; + + if(Damage.GetWheelStatus(CARWHEEL_FRONT_RIGHT) == WHEEL_STATUS_BURST) + ProcessWheel(wheelFwd, wheelRight, + contactSpeeds[CARWHEEL_FRONT_RIGHT], contactPoints[CARWHEEL_FRONT_RIGHT], + m_nWheelsOnGround, fThrust, + brake*brakeBiasFront, + adhesion*tractionBiasFront*Damage.m_fWheelDamageEffect, + CARWHEEL_FRONT_RIGHT, + &m_aWheelSpeed[CARWHEEL_FRONT_RIGHT], + &WheelState[CARWHEEL_FRONT_RIGHT], + WHEEL_STATUS_BURST); + else + ProcessWheel(wheelFwd, wheelRight, + contactSpeeds[CARWHEEL_FRONT_RIGHT], contactPoints[CARWHEEL_FRONT_RIGHT], + m_nWheelsOnGround, fThrust, + brake*brakeBiasFront, + adhesion*tractionBiasFront, + CARWHEEL_FRONT_RIGHT, + &m_aWheelSpeed[CARWHEEL_FRONT_RIGHT], + &WheelState[CARWHEEL_FRONT_RIGHT], + WHEEL_STATUS_OK); + } } -*/ - float steerRange; - if(fwdSpeed > 0.01f && m_aWheelTimer[CARWHEEL_FRONT_LEFT] > 0.0f && m_aWheelTimer[CARWHEEL_FRONT_RIGHT] > 0.0f && GetStatus() == STATUS_PLAYER){ - CColPoint point; - point.surfaceA = SURFACE_WHEELBASE; - point.surfaceB = SURFACE_TARMAC; - float rightSpeed = DotProduct(m_vecMoveSpeed, GetRight()); - float adhesion = CSurfaceTable::GetAdhesiveLimit(point); - // i have no idea what's going on here - float magic = traction * adhesion * 16.0f / SQR(fwdSpeed); - magic = clamp(magic, -1.0f, 1.0f); - magic = Asin(magic); - if(m_fSteerAngle < 0.0f && rightSpeed > 0.05f || - m_fSteerAngle > 0.0f && rightSpeed < -0.05f || - bIsHandbrakeOn) - steerRange = 1.0f; - else - steerRange = Min(magic/DEGTORAD(pHandling->fSteeringLock), 1.0f); - - }else - steerRange = 1.0f; - m_fSteerAngle *= steerRange; + // Process front wheels off ground - brake = m_fBrakePedal * pHandling->fBrakeDeceleration * CTimer::GetTimeStep(); + if(!IsRealHeli()){ + if(m_aWheelTimer[CARWHEEL_FRONT_LEFT] <= 0.0f){ + if(mod_HandlingManager.HasFrontWheelDrive(pHandling->nIdentifier) && acceleration != 0.0f){ + if(acceleration > 0.0f){ + if(m_aWheelSpeed[CARWHEEL_FRONT_LEFT] < 2.0f) + m_aWheelSpeed[CARWHEEL_FRONT_LEFT] -= 0.2f; + }else{ + if(m_aWheelSpeed[CARWHEEL_FRONT_LEFT] > -2.0f) + m_aWheelSpeed[CARWHEEL_FRONT_LEFT] += 0.1f; + } + }else{ + m_aWheelSpeed[CARWHEEL_FRONT_LEFT] *= 0.95f; + } + m_aWheelRotation[CARWHEEL_FRONT_LEFT] += m_aWheelSpeed[CARWHEEL_FRONT_LEFT]; + } + if(m_aWheelTimer[CARWHEEL_FRONT_RIGHT] <= 0.0f){ + if(mod_HandlingManager.HasFrontWheelDrive(pHandling->nIdentifier) && acceleration != 0.0f){ + if(acceleration > 0.0f){ + if(m_aWheelSpeed[CARWHEEL_FRONT_RIGHT] < 2.0f) + m_aWheelSpeed[CARWHEEL_FRONT_RIGHT] -= 0.2f; + }else{ + if(m_aWheelSpeed[CARWHEEL_FRONT_RIGHT] > -2.0f) + m_aWheelSpeed[CARWHEEL_FRONT_RIGHT] += 0.1f; + } + }else{ + m_aWheelSpeed[CARWHEEL_FRONT_RIGHT] *= 0.95f; + } + m_aWheelRotation[CARWHEEL_FRONT_RIGHT] += m_aWheelSpeed[CARWHEEL_FRONT_RIGHT]; + } + } + } - if(pHandling->Flags & HANDLING_REARWHEEL_1ST){ - ProcessCarWheelPair(CARWHEEL_REAR_LEFT, CARWHEEL_REAR_RIGHT, -999.0f, contactSpeeds, contactPoints, - traction, acceleration, brake, false); - ProcessCarWheelPair(CARWHEEL_FRONT_LEFT, CARWHEEL_FRONT_RIGHT, m_fSteerAngle, contactSpeeds, contactPoints, - traction, acceleration, brake, true); - }else{ - ProcessCarWheelPair(CARWHEEL_FRONT_LEFT, CARWHEEL_FRONT_RIGHT, m_fSteerAngle, contactSpeeds, contactPoints, - traction, acceleration, brake, true); - ProcessCarWheelPair(CARWHEEL_REAR_LEFT, CARWHEEL_REAR_RIGHT, -999.0f, contactSpeeds, contactPoints, - traction, acceleration, brake, false); + // Process rear wheels + + if(m_aWheelTimer[CARWHEEL_REAR_LEFT] > 0.0f || m_aWheelTimer[CARWHEEL_REAR_RIGHT] > 0.0f){ + CVector wheelFwd = GetForward(); + CVector wheelRight = GetRight(); // overwritten for resp. wheel + + float rearBrake = brake; + float rearTraction = traction; + if(bIsHandbrakeOn){ +#ifdef FIX_BUGS + // Not sure if this is needed, but brake usually has timestep as a factor + rearBrake = 20000.0f * CTimer::GetTimeStepFix(); +#else + rearBrake = 20000.0f; +#endif + if(fwdSpeed > 0.1f && pHandling->Flags & HANDLING_HANDBRAKE_TYRE){ + m_fTireTemperature += 0.005*CTimer::GetTimeStep(); + if(m_fTireTemperature > 2.0f) + m_fTireTemperature = 2.0f; + } + }else if(m_doingBurnout && mod_HandlingManager.HasRearWheelDrive(pHandling->nIdentifier)){ + rearBrake = 0.0f; + rearTraction = 0.0f; + // BUG: missing timestep + ApplyTurnForce(contactPoints[CARWHEEL_REAR_LEFT], -0.001f*m_fTurnMass*m_fSteerAngle*GetRight()); + }else if(m_fTireTemperature > 1.0f){ + rearTraction *= m_fTireTemperature; + } + + if(m_aWheelTimer[CARWHEEL_REAR_LEFT] > 0.0f){ + if(mod_HandlingManager.HasRearWheelDrive(pHandling->nIdentifier)) + fThrust = acceleration; + else + fThrust = 0.0f; + + wheelFwd -= DotProduct(wheelFwd, m_aWheelColPoints[CARWHEEL_REAR_LEFT].normal)*m_aWheelColPoints[CARWHEEL_REAR_LEFT].normal; + wheelFwd.Normalise(); + wheelRight = CrossProduct(wheelFwd, m_aWheelColPoints[CARWHEEL_REAR_LEFT].normal); + wheelRight.Normalise(); + + m_aWheelColPoints[CARWHEEL_REAR_LEFT].surfaceA = SURFACE_WHEELBASE; + float adhesion = CSurfaceTable::GetAdhesiveLimit(m_aWheelColPoints[CARWHEEL_REAR_LEFT])*rearTraction; + if(GetStatus() == STATUS_PLAYER) + adhesion *= CSurfaceTable::GetWetMultiplier(m_aWheelColPoints[CARWHEEL_REAR_LEFT].surfaceB); + WheelState[CARWHEEL_REAR_LEFT] = m_aWheelState[CARWHEEL_REAR_LEFT]; + + if(Damage.GetWheelStatus(CARWHEEL_REAR_LEFT) == WHEEL_STATUS_BURST) + ProcessWheel(wheelFwd, wheelRight, + contactSpeeds[CARWHEEL_REAR_LEFT], contactPoints[CARWHEEL_REAR_LEFT], + m_nWheelsOnGround, fThrust, + rearBrake*brakeBiasRear, + adhesion*tractionBiasRear*Damage.m_fWheelDamageEffect, + CARWHEEL_REAR_LEFT, + &m_aWheelSpeed[CARWHEEL_REAR_LEFT], + &WheelState[CARWHEEL_REAR_LEFT], + WHEEL_STATUS_BURST); + else + ProcessWheel(wheelFwd, wheelRight, + contactSpeeds[CARWHEEL_REAR_LEFT], contactPoints[CARWHEEL_REAR_LEFT], + m_nWheelsOnGround, fThrust, + rearBrake*brakeBiasRear, + adhesion*tractionBiasRear, + CARWHEEL_REAR_LEFT, + &m_aWheelSpeed[CARWHEEL_REAR_LEFT], + &WheelState[CARWHEEL_REAR_LEFT], + WHEEL_STATUS_OK); + } + +#ifdef FIX_BUGS + // Shouldn't we reset these after the left wheel? + wheelFwd = GetForward(); + wheelRight = GetRight(); // actually useless +#endif + + if(m_aWheelTimer[CARWHEEL_REAR_RIGHT] > 0.0f){ + if(mod_HandlingManager.HasRearWheelDrive(pHandling->nIdentifier)) + fThrust = acceleration; + else + fThrust = 0.0f; + + wheelFwd -= DotProduct(wheelFwd, m_aWheelColPoints[CARWHEEL_REAR_RIGHT].normal)*m_aWheelColPoints[CARWHEEL_REAR_RIGHT].normal; + wheelFwd.Normalise(); + wheelRight = CrossProduct(wheelFwd, m_aWheelColPoints[CARWHEEL_REAR_RIGHT].normal); + wheelRight.Normalise(); + + m_aWheelColPoints[CARWHEEL_REAR_RIGHT].surfaceA = SURFACE_WHEELBASE; + float adhesion = CSurfaceTable::GetAdhesiveLimit(m_aWheelColPoints[CARWHEEL_REAR_RIGHT])*rearTraction; + if(GetStatus() == STATUS_PLAYER) + adhesion *= CSurfaceTable::GetWetMultiplier(m_aWheelColPoints[CARWHEEL_REAR_RIGHT].surfaceB); + WheelState[CARWHEEL_REAR_RIGHT] = m_aWheelState[CARWHEEL_REAR_RIGHT]; + + if(Damage.GetWheelStatus(CARWHEEL_REAR_RIGHT) == WHEEL_STATUS_BURST) + ProcessWheel(wheelFwd, wheelRight, + contactSpeeds[CARWHEEL_REAR_RIGHT], contactPoints[CARWHEEL_REAR_RIGHT], + m_nWheelsOnGround, fThrust, + rearBrake*brakeBiasRear, + adhesion*tractionBiasRear*Damage.m_fWheelDamageEffect, + CARWHEEL_REAR_RIGHT, + &m_aWheelSpeed[CARWHEEL_REAR_RIGHT], + &WheelState[CARWHEEL_REAR_RIGHT], + WHEEL_STATUS_BURST); + else + ProcessWheel(wheelFwd, wheelRight, + contactSpeeds[CARWHEEL_REAR_RIGHT], contactPoints[CARWHEEL_REAR_RIGHT], + m_nWheelsOnGround, fThrust, + rearBrake*brakeBiasRear, + adhesion*tractionBiasRear, + CARWHEEL_REAR_RIGHT, + &m_aWheelSpeed[CARWHEEL_REAR_RIGHT], + &WheelState[CARWHEEL_REAR_RIGHT], + WHEEL_STATUS_OK); + } + } + + if(m_doingBurnout && mod_HandlingManager.HasRearWheelDrive(pHandling->nIdentifier) && + (m_aWheelState[CARWHEEL_REAR_LEFT] == WHEEL_STATE_SPINNING || m_aWheelState[CARWHEEL_REAR_RIGHT] == WHEEL_STATE_SPINNING)){ + m_fTireTemperature += 0.001f*CTimer::GetTimeStep(); + if(m_fTireTemperature > 3.0f) + m_fTireTemperature = 3.0f; + }else if(m_fTireTemperature > 1.0f){ + m_fTireTemperature = (m_fTireTemperature - 1.0f)*Pow(0.995f, CTimer::GetTimeStep()) + 1.0f; + } + + // Process rear wheels off ground + + if(!IsRealHeli()){ + if(m_aWheelTimer[CARWHEEL_REAR_LEFT] <= 0.0f){ + if(bIsHandbrakeOn) + m_aWheelSpeed[CARWHEEL_REAR_LEFT] = 0.0f; + else if(mod_HandlingManager.HasRearWheelDrive(pHandling->nIdentifier) && acceleration != 0.0f){ + if(acceleration > 0.0f){ + if(m_aWheelSpeed[CARWHEEL_REAR_LEFT] < 2.0f) + m_aWheelSpeed[CARWHEEL_REAR_LEFT] -= 0.2f; + }else{ + if(m_aWheelSpeed[CARWHEEL_REAR_LEFT] > -2.0f) + m_aWheelSpeed[CARWHEEL_REAR_LEFT] += 0.1f; + } + }else{ + m_aWheelSpeed[CARWHEEL_REAR_LEFT] *= 0.95f; + } + m_aWheelRotation[CARWHEEL_REAR_LEFT] += m_aWheelSpeed[CARWHEEL_REAR_LEFT]; + } + if(m_aWheelTimer[CARWHEEL_REAR_RIGHT] <= 0.0f){ + if(bIsHandbrakeOn) + m_aWheelSpeed[CARWHEEL_REAR_RIGHT] = 0.0f; + else if(mod_HandlingManager.HasRearWheelDrive(pHandling->nIdentifier) && acceleration != 0.0f){ + if(acceleration > 0.0f){ + if(m_aWheelSpeed[CARWHEEL_REAR_RIGHT] < 2.0f) + m_aWheelSpeed[CARWHEEL_REAR_RIGHT] -= 0.2f; + }else{ + if(m_aWheelSpeed[CARWHEEL_REAR_RIGHT] > -2.0f) + m_aWheelSpeed[CARWHEEL_REAR_RIGHT] += 0.1f; + } + }else{ + m_aWheelSpeed[CARWHEEL_REAR_RIGHT] *= 0.95f; + } + m_aWheelRotation[CARWHEEL_REAR_RIGHT] += m_aWheelSpeed[CARWHEEL_REAR_RIGHT]; + } + } + + // Process front wheels on ground - second try + + if(rearWheelsFirst){ + if(m_aWheelTimer[CARWHEEL_FRONT_LEFT] > 0.0f || m_aWheelTimer[CARWHEEL_FRONT_RIGHT] > 0.0f){ + float s = Sin(m_fSteerAngle); + float c = Cos(m_fSteerAngle); + + CVector wheelFwd, wheelRight, tmp; + + if(m_aWheelTimer[CARWHEEL_FRONT_LEFT] > 0.0f){ + if(mod_HandlingManager.HasFrontWheelDrive(pHandling->nIdentifier)) + fThrust = acceleration; + else + fThrust = 0.0f; + + wheelFwd = GetForward(); + wheelFwd -= DotProduct(wheelFwd, m_aWheelColPoints[CARWHEEL_FRONT_LEFT].normal)*m_aWheelColPoints[CARWHEEL_FRONT_LEFT].normal; + wheelFwd.Normalise(); + wheelRight = CrossProduct(wheelFwd, m_aWheelColPoints[CARWHEEL_FRONT_LEFT].normal); + wheelRight.Normalise(); + tmp = c*wheelFwd - s*wheelRight; + wheelRight = s*wheelFwd + c*wheelRight; + wheelFwd = tmp; + + m_aWheelColPoints[CARWHEEL_FRONT_LEFT].surfaceA = SURFACE_WHEELBASE; + float adhesion = CSurfaceTable::GetAdhesiveLimit(m_aWheelColPoints[CARWHEEL_FRONT_LEFT])*traction; + if(GetStatus() == STATUS_PLAYER) + adhesion *= CSurfaceTable::GetWetMultiplier(m_aWheelColPoints[CARWHEEL_FRONT_LEFT].surfaceB); + WheelState[CARWHEEL_FRONT_LEFT] = m_aWheelState[CARWHEEL_FRONT_LEFT]; + + if(Damage.GetWheelStatus(CARWHEEL_FRONT_LEFT) == WHEEL_STATUS_BURST) + ProcessWheel(wheelFwd, wheelRight, + contactSpeeds[CARWHEEL_FRONT_LEFT], contactPoints[CARWHEEL_FRONT_LEFT], + m_nWheelsOnGround, fThrust, + brake*brakeBiasFront, + adhesion*tractionBiasFront*Damage.m_fWheelDamageEffect, + CARWHEEL_FRONT_LEFT, + &m_aWheelSpeed[CARWHEEL_FRONT_LEFT], + &WheelState[CARWHEEL_FRONT_LEFT], + WHEEL_STATUS_BURST); + else + ProcessWheel(wheelFwd, wheelRight, + contactSpeeds[CARWHEEL_FRONT_LEFT], contactPoints[CARWHEEL_FRONT_LEFT], + m_nWheelsOnGround, fThrust, + brake*brakeBiasFront, + adhesion*tractionBiasFront, + CARWHEEL_FRONT_LEFT, + &m_aWheelSpeed[CARWHEEL_FRONT_LEFT], + &WheelState[CARWHEEL_FRONT_LEFT], + WHEEL_STATUS_OK); + } + + if(m_aWheelTimer[CARWHEEL_FRONT_RIGHT] > 0.0f){ + if(mod_HandlingManager.HasFrontWheelDrive(pHandling->nIdentifier)) + fThrust = acceleration; + else + fThrust = 0.0f; + + wheelFwd = GetForward(); + wheelFwd -= DotProduct(wheelFwd, m_aWheelColPoints[CARWHEEL_FRONT_RIGHT].normal)*m_aWheelColPoints[CARWHEEL_FRONT_RIGHT].normal; + wheelFwd.Normalise(); + wheelRight = CrossProduct(wheelFwd, m_aWheelColPoints[CARWHEEL_FRONT_RIGHT].normal); + wheelRight.Normalise(); + tmp = c*wheelFwd - s*wheelRight; + wheelRight = s*wheelFwd + c*wheelRight; + wheelFwd = tmp; + + m_aWheelColPoints[CARWHEEL_FRONT_RIGHT].surfaceA = SURFACE_WHEELBASE; + float adhesion = CSurfaceTable::GetAdhesiveLimit(m_aWheelColPoints[CARWHEEL_FRONT_RIGHT])*traction; + if(GetStatus() == STATUS_PLAYER) + adhesion *= CSurfaceTable::GetWetMultiplier(m_aWheelColPoints[CARWHEEL_FRONT_RIGHT].surfaceB); + WheelState[CARWHEEL_FRONT_RIGHT] = m_aWheelState[CARWHEEL_FRONT_RIGHT]; + + if(Damage.GetWheelStatus(CARWHEEL_FRONT_RIGHT) == WHEEL_STATUS_BURST) + ProcessWheel(wheelFwd, wheelRight, + contactSpeeds[CARWHEEL_FRONT_RIGHT], contactPoints[CARWHEEL_FRONT_RIGHT], + m_nWheelsOnGround, fThrust, + brake*brakeBiasFront, + adhesion*tractionBiasFront*Damage.m_fWheelDamageEffect, + CARWHEEL_FRONT_RIGHT, + &m_aWheelSpeed[CARWHEEL_FRONT_RIGHT], + &WheelState[CARWHEEL_FRONT_RIGHT], + WHEEL_STATUS_BURST); + else + ProcessWheel(wheelFwd, wheelRight, + contactSpeeds[CARWHEEL_FRONT_RIGHT], contactPoints[CARWHEEL_FRONT_RIGHT], + m_nWheelsOnGround, fThrust, + brake*brakeBiasFront, + adhesion*tractionBiasFront, + CARWHEEL_FRONT_RIGHT, + &m_aWheelSpeed[CARWHEEL_FRONT_RIGHT], + &WheelState[CARWHEEL_FRONT_RIGHT], + WHEEL_STATUS_OK); + } + } + + // Process front wheels off ground + + if (!IsRealHeli()) { + if(m_aWheelTimer[CARWHEEL_FRONT_LEFT] <= 0.0f){ + if(mod_HandlingManager.HasFrontWheelDrive(pHandling->nIdentifier) && acceleration != 0.0f){ + if(acceleration > 0.0f){ + if(m_aWheelSpeed[CARWHEEL_FRONT_LEFT] < 2.0f) + m_aWheelSpeed[CARWHEEL_FRONT_LEFT] -= 0.2f; + }else{ + if(m_aWheelSpeed[CARWHEEL_FRONT_LEFT] > -2.0f) + m_aWheelSpeed[CARWHEEL_FRONT_LEFT] += 0.1f; + } + }else{ + m_aWheelSpeed[CARWHEEL_FRONT_LEFT] *= 0.95f; + } + m_aWheelRotation[CARWHEEL_FRONT_LEFT] += m_aWheelSpeed[CARWHEEL_FRONT_LEFT]; + } + if(m_aWheelTimer[CARWHEEL_FRONT_RIGHT] <= 0.0f){ + if(mod_HandlingManager.HasFrontWheelDrive(pHandling->nIdentifier) && acceleration != 0.0f){ + if(acceleration > 0.0f){ + if(m_aWheelSpeed[CARWHEEL_FRONT_RIGHT] < 2.0f) + m_aWheelSpeed[CARWHEEL_FRONT_RIGHT] -= 0.2f; + }else{ + if(m_aWheelSpeed[CARWHEEL_FRONT_RIGHT] > -2.0f) + m_aWheelSpeed[CARWHEEL_FRONT_RIGHT] += 0.1f; + } + }else{ + m_aWheelSpeed[CARWHEEL_FRONT_RIGHT] *= 0.95f; + } + m_aWheelRotation[CARWHEEL_FRONT_RIGHT] += m_aWheelSpeed[CARWHEEL_FRONT_RIGHT]; + } + } } for(i = 0; i < 4; i++){ float wheelPos = colModel->lines[i].p0.z; if(m_aSuspensionSpringRatio[i] > 0.0f) wheelPos -= m_aSuspensionSpringRatio[i]*m_aSuspensionSpringLength[i]; - if(GetModelIndex() == MI_YARDIE && bUsingSpecialColModel) // not original LCS + if(GetModelIndex() == MI_VOODOO && bUsingSpecialColModel) m_aWheelPosition[i] = wheelPos; else m_aWheelPosition[i] += (wheelPos - m_aWheelPosition[i])*0.75f; } + for(i = 0; i < 4; i++) + m_aWheelState[i] = WheelState[i]; + if(m_fGasPedal < 0.0f){ + if(m_aWheelState[CARWHEEL_REAR_LEFT] == WHEEL_STATE_SPINNING) + m_aWheelState[CARWHEEL_REAR_LEFT] = WHEEL_STATE_NORMAL; + if(m_aWheelState[CARWHEEL_REAR_RIGHT] == WHEEL_STATE_SPINNING) + m_aWheelState[CARWHEEL_REAR_RIGHT] = WHEEL_STATE_NORMAL; + } // Process horn @@ -1262,13 +1649,13 @@ CAutomobile::ProcessControl(void) // TODO: make the numbers defines float heading; - if(GetPosition().x > 1950.0f){ + if(GetPosition().x > 1950.0f-400.0f){ if(m_vecMoveSpeed.x > 0.0f) m_vecMoveSpeed.x *= -1.0f; heading = GetForward().Heading(); if(heading > 0.0f) // going west SetHeading(-heading); - }else if(GetPosition().x < -1950.0f){ + }else if(GetPosition().x < -1950.0f-400.0f){ if(m_vecMoveSpeed.x < 0.0f) m_vecMoveSpeed.x *= -1.0f; heading = GetForward().Heading(); @@ -1331,207 +1718,6 @@ CAutomobile::ProcessControl(void) #pragma optimize("", on) -//--LCS: done -void -CAutomobile::ProcessCarWheelPair(int leftWheel, int rightWheel, float steerAngle, CVector *contactSpeeds, CVector *contactPoints, float traction, float acceleration, float brake, bool bFront) -{ - bool driveWheels; - float suspensionBias; - - if(bFront){ - driveWheels = mod_HandlingManager.HasFrontWheelDrive(pHandling->nIdentifier); - suspensionBias = 2.0f*pHandling->fSuspensionBias; - }else{ - driveWheels = mod_HandlingManager.HasRearWheelDrive(pHandling->nIdentifier); - suspensionBias = 2.0f*(1.0f-pHandling->fSuspensionBias); - - float fwdSpeed = DotProduct(m_vecMoveSpeed, GetForward()); - if(bIsHandbrakeOn && Abs(fwdSpeed) > 0.01f){ -#ifdef FIX_BUGS - // Not sure if this is needed, but brake usually has timestep as a factor - brake = 20000.0f * CTimer::GetTimeStepFix(); -#else - brake = 20000.0f; -#endif -/* - if(fwdSpeed > 0.1f && pHandling->Flags & HANDLING_HANDBRAKE_TYRE){ - m_fTireTemperature += 0.005*CTimer::GetTimeStep(); - if(m_fTireTemperature > 2.0f) - m_fTireTemperature = 2.0f; - } -*/ - }else if(driveWheels && m_doingBurnout){ - brake = 0.0f; - traction = 0.0f; - // BUG: missing timestep - ApplyTurnForce(contactPoints[leftWheel], -0.003f*m_fTurnMass*Min(3000.0f/m_fTurnMass, 1.0f)*m_fSteerAngle*GetRight()); - }else if(mod_HandlingManager.HasRearWheelDrive(pHandling->nIdentifier)){ - traction *= m_fTireTemperature; - } - } - - // Wheels on ground - if(m_aWheelTimer[leftWheel] > 0.0f || m_aWheelTimer[rightWheel] > 0.0f){ - CVector wheelFwd, wheelRight; - float s, c; - bool canSteer = steerAngle > -100.0f; - if(canSteer){ - s = Sin(steerAngle); - c = Cos(steerAngle); - } - - bool neutralHandling = GetStatus() != STATUS_PLAYER && GetStatus() != STATUS_PLAYER_REMOTE && (pHandling->Flags & HANDLING_NEUTRALHANDLING); - float brakeBias, tractionBias; - if(bFront){ - brakeBias = neutralHandling ? 1.0f : 2.0f*pHandling->fBrakeBias; - tractionBias = neutralHandling ? 1.0f : 2.0f*pHandling->fTractionBias; - }else{ - brakeBias = neutralHandling ? 1.0f : 2.0f*(1.0f-pHandling->fBrakeBias); - tractionBias = neutralHandling ? 1.0f : 2.0f*(1.0f-pHandling->fTractionBias); - } - - if(m_aWheelTimer[leftWheel] > 0.0f){ - float fThrust = driveWheels ? acceleration : 0.0f; - - wheelFwd = GetForward(); - wheelFwd -= DotProduct(wheelFwd, m_aWheelColPoints[leftWheel].normal)*m_aWheelColPoints[leftWheel].normal; - wheelFwd.Normalise(); - wheelRight = CrossProduct(wheelFwd, m_aWheelColPoints[leftWheel].normal); - wheelRight.Normalise(); - if(canSteer){ - CVector tmp = c*wheelFwd - s*wheelRight; - wheelRight = s*wheelFwd + c*wheelRight; - wheelFwd = tmp; - } - - m_aWheelColPoints[leftWheel].surfaceA = SURFACE_WHEELBASE; - float adhesion = CSurfaceTable::GetAdhesiveLimit(m_aWheelColPoints[leftWheel])*traction; - if(GetStatus() == STATUS_PLAYER){ - adhesion *= CSurfaceTable::GetWetMultiplier(m_aWheelColPoints[leftWheel].surfaceB); - adhesion *= Min(suspensionBias*pHandling->fSuspensionForceLevel*4.0f*(1.0f-m_aSuspensionSpringRatio[leftWheel]), 2.0f); - } - tWheelState WheelState = m_aWheelState[leftWheel]; - if(Damage.GetWheelStatus(leftWheel) == WHEEL_STATUS_BURST) - ProcessWheel(wheelFwd, wheelRight, - contactSpeeds[leftWheel], contactPoints[leftWheel], - m_nWheelsOnGround, fThrust, - brake*brakeBias, - adhesion*tractionBias*Damage.m_fWheelDamageEffect, - leftWheel, - &m_aWheelRotation[leftWheel], - &WheelState, - WHEEL_STATUS_BURST); - else - ProcessWheel(wheelFwd, wheelRight, - contactSpeeds[leftWheel], contactPoints[leftWheel], - m_nWheelsOnGround, fThrust, - brake*brakeBias, - adhesion*tractionBias, - leftWheel, - &m_aWheelRotation[leftWheel], - &WheelState, - WHEEL_STATUS_OK); - - if(driveWheels && m_fGasPedal < 0.0f && WheelState == WHEEL_STATE_SPINNING) - m_aWheelState[leftWheel] = WHEEL_STATE_NORMAL; - else - m_aWheelState[leftWheel] = WheelState; - } - - if(m_aWheelTimer[rightWheel] > 0.0f){ - float fThrust = driveWheels ? acceleration : 0.0f; - - wheelFwd = GetForward(); - wheelFwd -= DotProduct(wheelFwd, m_aWheelColPoints[rightWheel].normal)*m_aWheelColPoints[rightWheel].normal; - wheelFwd.Normalise(); - wheelRight = CrossProduct(wheelFwd, m_aWheelColPoints[rightWheel].normal); - wheelRight.Normalise(); - if(canSteer){ - CVector tmp = c*wheelFwd - s*wheelRight; - wheelRight = s*wheelFwd + c*wheelRight; - wheelFwd = tmp; - } - - m_aWheelColPoints[rightWheel].surfaceA = SURFACE_WHEELBASE; - float adhesion = CSurfaceTable::GetAdhesiveLimit(m_aWheelColPoints[rightWheel])*traction; - if(GetStatus() == STATUS_PLAYER){ - adhesion *= CSurfaceTable::GetWetMultiplier(m_aWheelColPoints[rightWheel].surfaceB); - adhesion *= Min(suspensionBias*pHandling->fSuspensionForceLevel*4.0f*(1.0f-m_aSuspensionSpringRatio[rightWheel]), 2.0f); - } - tWheelState WheelState = m_aWheelState[rightWheel]; - if(Damage.GetWheelStatus(rightWheel) == WHEEL_STATUS_BURST) - ProcessWheel(wheelFwd, wheelRight, - contactSpeeds[rightWheel], contactPoints[rightWheel], - m_nWheelsOnGround, fThrust, - brake*brakeBias, - adhesion*tractionBias*Damage.m_fWheelDamageEffect, - rightWheel, - &m_aWheelRotation[rightWheel], - &WheelState, - WHEEL_STATUS_BURST); - else - ProcessWheel(wheelFwd, wheelRight, - contactSpeeds[rightWheel], contactPoints[rightWheel], - m_nWheelsOnGround, fThrust, - brake*brakeBias, - adhesion*tractionBias, - rightWheel, - &m_aWheelRotation[rightWheel], - &WheelState, - WHEEL_STATUS_OK); - - if(driveWheels && m_fGasPedal < 0.0f && WheelState == WHEEL_STATE_SPINNING) - m_aWheelState[rightWheel] = WHEEL_STATE_NORMAL; - else - m_aWheelState[rightWheel] = WheelState; - } - } - - if(!bFront){ - if(m_doingBurnout && driveWheels && - (m_aWheelState[CARWHEEL_REAR_LEFT] == WHEEL_STATE_SPINNING || m_aWheelState[CARWHEEL_REAR_RIGHT] == WHEEL_STATE_SPINNING)){ - m_fTireTemperature += 0.001f*CTimer::GetTimeStep(); - if(m_fTireTemperature > 3.0f) - m_fTireTemperature = 3.0f; - }else if(m_fTireTemperature > 1.0f){ - m_fTireTemperature = (m_fTireTemperature - 1.0f)*Pow(0.995f, CTimer::GetTimeStep()) + 1.0f; - } - } - - // Process wheels off ground - - if(!IsRealHeli()){ - if(m_aWheelTimer[leftWheel] <= 0.0f){ - if(driveWheels && acceleration != 0.0f){ - if(acceleration > 0.0f){ - if(m_aWheelSpeed[leftWheel] < 1.0f) - m_aWheelSpeed[leftWheel] -= 0.1f; - }else{ - if(m_aWheelSpeed[leftWheel] > -1.0f) - m_aWheelSpeed[leftWheel] += 0.05f; - } - }else{ - m_aWheelSpeed[leftWheel] *= 0.95f; - } - m_aWheelRotation[leftWheel] += m_aWheelSpeed[leftWheel]*CTimer::GetTimeStep(); - } - if(m_aWheelTimer[rightWheel] <= 0.0f){ - if(driveWheels && acceleration != 0.0f){ - if(acceleration > 0.0f){ - if(m_aWheelSpeed[rightWheel] < 1.0f) - m_aWheelSpeed[rightWheel] -= 0.1f; - }else{ - if(m_aWheelSpeed[rightWheel] > -1.0f) - m_aWheelSpeed[rightWheel] += 0.05f; - } - }else{ - m_aWheelSpeed[rightWheel] *= 0.95f; - } - m_aWheelRotation[rightWheel] += m_aWheelSpeed[rightWheel]*CTimer::GetTimeStep(); - } - } -} - void CAutomobile::Teleport(CVector pos) { @@ -1553,11 +1739,6 @@ CAutomobile::PreRender(void) int i, j, n; CVehicleModelInfo *mi = (CVehicleModelInfo*)CModelInfo::GetModelInfo(GetModelIndex()); - if(GetModelIndex() == MI_FIRETRUCK) - FireTruckControl(); - - CVehicle::PreRender(); - if(GetModelIndex() == MI_RHINO && m_aCarNodes[CAR_WINDSCREEN]){ // Rotate Rhino turret CMatrix m; @@ -1864,7 +2045,6 @@ CAutomobile::PreRender(void) if(DotProduct(GetForward(), camDist) > 0.0f || TheCamera.GetLookDirection() == LOOKING_LEFT || TheCamera.GetLookDirection() == LOOKING_RIGHT){ - /* CParticle::AddParticle(PARTICLE_HEATHAZE, pos1, CVector(0.0f, 0.0f, 0.0f)); if(pHandling->Flags & HANDLING_DBL_EXHAUST) CParticle::AddParticle(PARTICLE_HEATHAZE, pos2, CVector(0.0f, 0.0f, 0.0f)); @@ -1872,7 +2052,6 @@ CAutomobile::PreRender(void) CParticle::AddParticle(PARTICLE_HEATHAZE, pos1, CVector(0.0f, 0.0f, 0.0f)); if(pHandling->Flags & HANDLING_DBL_EXHAUST) CParticle::AddParticle(PARTICLE_HEATHAZE, pos2, CVector(0.0f, 0.0f, 0.0f)); - */ } } @@ -2022,7 +2201,8 @@ CAutomobile::PreRender(void) case MI_TAXI: case MI_CABBIE: - case MI_BORGNINE: + case MI_ZEBRA: + case MI_KAUFMAN: if(bTaxiLight){ CVector pos = GetPosition() + GetUp()*0.95f; CCoronas::RegisterCorona((uintptr)this + 21, @@ -2838,7 +3018,6 @@ CAutomobile::Render(void) CEntity::Render(); } -//--LCS: done int32 CAutomobile::ProcessEntityCollision(CEntity *ent, CColPoint *colpoints) { @@ -2910,13 +3089,9 @@ static float fMouseCentreRange = 0.35f; static float fMouseSteerSens = -0.0035f; static float fMouseCentreMult = 0.975f; -//--LCS: done except TODO void CAutomobile::ProcessControlInputs(uint8 pad) { - if(this == FindPlayerVehicle() && CWorld::Players[CWorld::PlayerInFocus].m_pRemoteVehicle) - return; - float speed = DotProduct(m_vecMoveSpeed, GetForward()); if(!CPad::GetPad(pad)->GetExitVehicle() || @@ -2927,7 +3102,6 @@ CAutomobile::ProcessControlInputs(uint8 pad) bIsHandbrakeOn = true; // Steer left/right -#if 0 // LCS: removed, need mouse for free cam if(CCamera::m_bUseMouse3rdPerson && !CVehicle::m_bDisableMouseSteering){ if(CPad::GetPad(pad)->GetMouseX() != 0.0f){ m_fSteerInput += fMouseSteerSens*CPad::GetPad(pad)->GetMouseX(); @@ -2940,9 +3114,7 @@ CAutomobile::ProcessControlInputs(uint8 pad) 0.2f*CTimer::GetTimeStep(); nLastControlInput = 0; } - }else -#endif - { + }else{ m_fSteerInput += (-CPad::GetPad(pad)->GetSteeringLeftRight()/128.0f - m_fSteerInput)* 0.2f*CTimer::GetTimeStep(); nLastControlInput = 0; @@ -3035,7 +3207,6 @@ CAutomobile::ProcessControlInputs(uint8 pad) // Brake if player isn't in control // BUG: game always uses pad 0 here - // TODO(LCS): more conditions here #ifdef FIX_BUGS if(CPad::GetPad(pad)->ArePlayerControlsDisabled()){ #else @@ -3758,7 +3929,6 @@ CAutomobile::DoDriveByShootings(void) } } -//--LCS: done void CAutomobile::DoHoverSuspensionRatios(void) { @@ -4174,7 +4344,7 @@ CAutomobile::dmgDrawCarCollidingParticles(const CVector &pos, float amount) CGeneral::GetRandomNumberInRange(0.1f, 0.25f)), nil, CGeneral::GetRandomNumberInRange(0.02f, 0.08f), - CVehicleModelInfo::mspInfo->ms_vehicleColourTable[m_currentColour1], + CVehicleModelInfo::ms_vehicleColourTable[m_currentColour1], CGeneral::GetRandomNumberInRange(-40.0f, 40.0f), 0, CGeneral::GetRandomNumberInRange(0.0f, 4.0f)); @@ -4855,7 +5025,6 @@ CAutomobile::ResetSuspension(void) } } -//--LCS: done void CAutomobile::SetupSuspensionLines(void) { @@ -4864,14 +5033,6 @@ CAutomobile::SetupSuspensionLines(void) CVehicleModelInfo *mi = (CVehicleModelInfo*)CModelInfo::GetModelInfo(GetModelIndex()); CColModel *colModel = mi->GetColModel(); - bool adjustColModel; - if(colModel->lines == nil){ - adjustColModel = true; - colModel->lines = new CColLine[4]; - colModel->numLines = 4; - }else - adjustColModel = false; - // Each suspension line starts at the uppermost wheel position // and extends down to the lowermost point on the tyre for(i = 0; i < 4; i++){ @@ -4911,21 +5072,6 @@ CAutomobile::SetupSuspensionLines(void) for(i = 0; i < colModel->numSpheres; i++) colModel->spheres[i].radius = 0.3f; } - - if(pHandling->Flags & HANDLING_FORCE_GRND_CLR && adjustColModel){ - // 0.25 is the min distance between ground and col spheres, everything above it is safe - float safePos = 0.25f - m_fHeightAboveRoad; - for(i = 0; i < colModel->numSpheres; i++){ - CColSphere *sph = &colModel->spheres[i]; - if(sph->center.z - sph->radius < safePos){ - // sphere extends too far down, so move it up - // or decrease the radius for bigger spheres - if(radius > 0.4f) - sph->radius = Max(sph->center.z - safePos, 0.4f); - sph->center.z = safePos + sph->radius; - } - } - } } // called on police cars diff --git a/src/vehicles/Automobile.h b/src/vehicles/Automobile.h index 4f4ab50..16d8691 100644 --- a/src/vehicles/Automobile.h +++ b/src/vehicles/Automobile.h @@ -26,8 +26,6 @@ public: float m_aSuspensionSpringRatioPrev[4]; float m_aWheelTimer[4]; // set to 4.0 when wheel is touching ground, then decremented float m_auto_unused1; - float m_fEngineInertiaVar1; - float m_fEngineInertiaVar2; eSkidmarkType m_aWheelSkidmarkType[4]; bool m_aWheelSkidmarkBloody[4]; bool m_aWheelSkidmarkUnk[4]; @@ -116,7 +114,6 @@ public: float GetHeightAboveRoad(void); void PlayCarHorn(void); - void ProcessCarWheelPair(int leftWheel, int rightWheel, float steerAngle, CVector *contactSpeeds, CVector *contactPoints, float traction, float acceleration, float brake, bool bFront); void FireTruckControl(void); void TankControl(void); void HydraulicControl(void); diff --git a/src/vehicles/Bike.cpp b/src/vehicles/Bike.cpp index 761ea93..3e4c3a3 100644 --- a/src/vehicles/Bike.cpp +++ b/src/vehicles/Bike.cpp @@ -79,10 +79,9 @@ CBike::CBike(int32 id, uint8 CreatedBy) m_bikeAnimType = ASSOCGRP_BIKE_STANDARD; break; case MI_SANCHEZ: - case MI_SANCHEZ2: m_bikeAnimType = ASSOCGRP_BIKE_DIRT; break; - default: m_bikeAnimType = ASSOCGRP_BIKE_STANDARD; //assert(0 && "invalid bike model ID"); // TODO + default: assert(0 && "invalid bike model ID"); } m_vehType = VEHICLE_TYPE_BIKE; @@ -110,7 +109,7 @@ CBike::CBike(int32 id, uint8 CreatedBy) m_fTurnMass = pHandling->fTurnMass; m_vecCentreOfMass = pHandling->CentreOfMass; m_vecCentreOfMass.z = 0.1f; - m_fAirResistance = pHandling->fDragMult > 0.01f ? pHandling->fDragMult*0.0005f : pHandling->fDragMult; + m_fAirResistance = pHandling->Dimension.x*pHandling->Dimension.z/m_fMass; m_fElasticity = 0.05f; m_fBuoyancy = pHandling->fBuoyancy; @@ -134,8 +133,6 @@ CBike::CBike(int32 id, uint8 CreatedBy) bIsOnFire = false; bWheelieCam = false; - bFixedColour = false; // <- figure out actual place (TODO) - m_fTireTemperature = 1.0f; m_fBrakeDestabilization = 0.0f; m_fVelocityChangeForAudio = 0; @@ -1725,7 +1722,7 @@ CBike::PreRender(void) TheCamera.GetLookDirection() == LOOKING_RIGHT) pos1 -= 0.2f*GetForward(); - //CParticle::AddParticle(PARTICLE_HEATHAZE, pos1, CVector(0.0f, 0.0f, 0.0f)); + CParticle::AddParticle(PARTICLE_HEATHAZE, pos1, CVector(0.0f, 0.0f, 0.0f)); } } } diff --git a/src/vehicles/Bike.h b/src/vehicles/Bike.h index 611cd11..219d887 100644 --- a/src/vehicles/Bike.h +++ b/src/vehicles/Bike.h @@ -75,7 +75,6 @@ public: uint8 bExtraSpeed : 1; // leaning forward uint8 bIsOnFire : 1; uint8 bWheelieCam : 1; - uint8 bFixedColour : 1; // <- figure out its actual place (TODO) int16 m_doingBurnout; float m_fTireTemperature; float m_fBrakeDestabilization; diff --git a/src/vehicles/Boat.cpp b/src/vehicles/Boat.cpp index 3b9290e..0bc653c 100644 --- a/src/vehicles/Boat.cpp +++ b/src/vehicles/Boat.cpp @@ -71,7 +71,7 @@ CBoat::CBoat(int mi, uint8 owner) : CVehicle(owner) m_fMass = pHandling->fMass; m_fTurnMass = pHandling->fTurnMass / 2.0f; m_vecCentreOfMass = pHandling->CentreOfMass; - m_fAirResistance = pHandling->fDragMult > 0.01f ? pHandling->fDragMult*0.0005f : pHandling->fDragMult; + m_fAirResistance = pHandling->Dimension.x * pHandling->Dimension.z / m_fMass; m_fElasticity = 0.1f; m_fBuoyancy = pHandling->fBuoyancy; m_fSteerAngle = 0.0f; @@ -681,7 +681,6 @@ CBoat::ProcessControl(void) } // Spray waterdrops on screen - /* if(TheCamera.GetLookingForwardFirstPerson() && FindPlayerVehicle() && FindPlayerVehicle()->IsBoat() && m_nDeltaVolumeUnderWater > 0 && numWaterDropOnScreen < 20){ CVector dropPos; @@ -712,7 +711,7 @@ CBoat::ProcessControl(void) if(CParticle::AddParticle(PARTICLE_WATERDROP, dropPos, dropDir, nil, CGeneral::GetRandomNumberInRange(0.1f, 0.15f), dropColor, 0, 0, frm)) numWaterDropOnScreen++; - }*/ + } if(m_fPrevVolumeUnderWater == 0.0f && m_fVolumeUnderWater > 0.0f && GetModelIndex() == MI_SKIMMER){ CVector splashDir(0.0f, 0.0f, 0.25f*speed); diff --git a/src/vehicles/Cranes.cpp b/src/vehicles/Cranes.cpp index a675fe4..b592686 100644 --- a/src/vehicles/Cranes.cpp +++ b/src/vehicles/Cranes.cpp @@ -12,7 +12,7 @@ #include "Object.h" #include "World.h" -#define MAX_DISTANCE_TO_FIND_CRANE (100.0f) +#define MAX_DISTANCE_TO_FIND_CRANE (10.0f) #define CRANE_UPDATE_RADIUS (300.0f) #define CRANE_MOVEMENT_PROCESSING_RADIUS (150.0f) #define CRUSHER_Z (-0.951f) @@ -60,8 +60,7 @@ void CCranes::InitCranes(void) } } } - // TODO(LCS) - for (CPtrNode* pNode = CWorld::GetBigBuildingList(LEVEL_INDUSTRIAL).first; pNode; pNode = pNode->next) { + for (CPtrNode* pNode = CWorld::GetBigBuildingList(LEVEL_MAINLAND).first; pNode; pNode = pNode->next) { CEntity* pEntity = (CEntity*)pNode->item; if (MODELID_CRANE_1 == pEntity->GetModelIndex() || MODELID_CRANE_2 == pEntity->GetModelIndex() || @@ -71,7 +70,6 @@ void CCranes::InitCranes(void) MODELID_CRANE_6 == pEntity->GetModelIndex()) AddThisOneCrane(pEntity); } - } void CCranes::AddThisOneCrane(CEntity* pEntity) @@ -464,7 +462,7 @@ bool CCranes::DoesMilitaryCraneHaveThisOneAlready(uint32 mi) case MI_FIRETRUCK: return (CarsCollectedMilitaryCrane & 1); case MI_AMBULAN: return (CarsCollectedMilitaryCrane & 2); case MI_ENFORCER: return (CarsCollectedMilitaryCrane & 4); - case (uint32)MI_FBIRANCH: return (CarsCollectedMilitaryCrane & 8); + case MI_FBIRANCH: return (CarsCollectedMilitaryCrane & 8); case MI_RHINO: return (CarsCollectedMilitaryCrane & 0x10); case MI_BARRACKS: return (CarsCollectedMilitaryCrane & 0x20); case MI_POLICE: return (CarsCollectedMilitaryCrane & 0x40); @@ -479,7 +477,7 @@ void CCranes::RegisterCarForMilitaryCrane(uint32 mi) case MI_FIRETRUCK: CarsCollectedMilitaryCrane |= 1; break; case MI_AMBULAN: CarsCollectedMilitaryCrane |= 2; break; case MI_ENFORCER: CarsCollectedMilitaryCrane |= 4; break; - case (uint32)MI_FBIRANCH: CarsCollectedMilitaryCrane |= 8; break; + case MI_FBIRANCH: CarsCollectedMilitaryCrane |= 8; break; case MI_RHINO: CarsCollectedMilitaryCrane |= 0x10; break; case MI_BARRACKS: CarsCollectedMilitaryCrane |= 0x20; break; case MI_POLICE: CarsCollectedMilitaryCrane |= 0x40; break; diff --git a/src/vehicles/DamageManager.cpp b/src/vehicles/DamageManager.cpp index b74e708..8ba235b 100644 --- a/src/vehicles/DamageManager.cpp +++ b/src/vehicles/DamageManager.cpp @@ -10,8 +10,7 @@ float G_aComponentDamage[] = { 2.5f, 1.25f, 3.2f, 1.4f, 2.5f, 2.8f, 0.5f }; CDamageManager::CDamageManager(void) { ResetDamageStatus(); - m_fWheelDamageEffect = 0.65f; - m_bSmashedDoorDoesntClose = false; + m_fWheelDamageEffect = 0.5f; field_18 = 1; } @@ -137,8 +136,6 @@ void CDamageManager::SetDoorStatus(int32 door, uint32 status) { m_doorStatus[door] = status; - if(m_bSmashedDoorDoesntClose && door != DOOR_BONNET && status == DOOR_STATUS_SMASHED) - m_doorStatus[door] = DOOR_STATUS_SWINGING; } int32 diff --git a/src/vehicles/DamageManager.h b/src/vehicles/DamageManager.h index 1f83642..312006e 100644 --- a/src/vehicles/DamageManager.h +++ b/src/vehicles/DamageManager.h @@ -81,7 +81,6 @@ class CDamageManager public: float m_fWheelDamageEffect; - bool m_bSmashedDoorDoesntClose; uint8 m_engineStatus; uint8 m_wheelStatus[4]; uint8 m_doorStatus[6]; diff --git a/src/vehicles/Door.cpp b/src/vehicles/Door.cpp index 72a3033..c80965a 100644 --- a/src/vehicles/Door.cpp +++ b/src/vehicles/Door.cpp @@ -168,58 +168,3 @@ CTrainDoor::IsClosed(void) { return m_fPosn == RetTranslationWhenClosed(); } - -bool -CFerryDoor::IsInUse(void) -{ - float translationDifference = m_fPrevPosn - m_fPosn; - m_fPrevPosn = m_fPosn; - return Abs(translationDifference) > 0.002f; -} - -float -CFerryDoor::RetTranslationWhenClosed(void) -{ - if(Abs(m_fClosedPosn) < Abs(m_fOpenPosn)) - return m_fClosedPosn; - else - return m_fOpenPosn; -} - -bool -CFerryDoor::IsClosed(void) -{ - return m_fPosn == RetTranslationWhenClosed(); -} - -float -CFerryDoor::RetTranslationWhenOpen(void) -{ - if(Abs(m_fClosedPosn) < Abs(m_fOpenPosn)) - return m_fOpenPosn; - else - return m_fClosedPosn; -} - -bool -CFerryDoor::IsFullyOpen(void) -{ - if(Abs(m_fPosn) < Abs(RetTranslationWhenOpen()) - 0.5f) - return false; - return true; -} - -void -CFerryDoor::Open(float ratio) -{ - float open; - - m_fPrevPosn = m_fPosn; - open = RetTranslationWhenOpen(); - if(ratio < 1.0f){ - m_fPosn = open*ratio; - }else{ - m_nDoorState = DOORST_OPEN; - m_fPosn = open; - } -} \ No newline at end of file diff --git a/src/vehicles/Door.h b/src/vehicles/Door.h index da5a3de..567d326 100644 --- a/src/vehicles/Door.h +++ b/src/vehicles/Door.h @@ -67,22 +67,3 @@ public: float RetTranslationWhenOpen(void); void Open(float ratio); }; - - -class CFerryDoor { -private: - float m_fClosedPosn; - float m_fOpenPosn; - int8 m_nDirn; - int8 m_nAxis; - int8 m_nDoorState; - float m_fPosn; - float m_fPrevPosn; -public: - bool IsInUse(void); - float RetTranslationWhenClosed(void); - float RetTranslationWhenOpen(void); - bool IsClosed(void); - bool IsFullyOpen(void); - void Open(float ratio); -}; \ No newline at end of file diff --git a/src/vehicles/Ferry.h b/src/vehicles/Ferry.h deleted file mode 100644 index 375dfce..0000000 --- a/src/vehicles/Ferry.h +++ /dev/null @@ -1,13 +0,0 @@ -#pragma once - -#include "Vehicle.h" -#include "Door.h" - -enum eFerryNodes -{ - FERRY_DOOR_FRONT = 1, - FERRY_RAMP_FRONT, - FERRY_DOOR_BACK, - FERRY_RAMP_BACK, - NUM_FERRY_NODES -}; diff --git a/src/vehicles/HandlingMgr.cpp b/src/vehicles/HandlingMgr.cpp index b5dc765..8438c5c 100644 --- a/src/vehicles/HandlingMgr.cpp +++ b/src/vehicles/HandlingMgr.cpp @@ -42,7 +42,6 @@ const char VehicleNames[NUMHANDLINGS][14] = { "RHINO", "BARRACKS", "TRAIN", - "FERRY", "HELI", "DODO", "COACH", @@ -55,40 +54,66 @@ const char VehicleNames[NUMHANDLINGS][14] = { "DEADDODO", "FLATBED", "YANKEE", - "BLISTA", - "BELLYUP", - "MRWONGS", - "YARDIE", - "YAKUZA", - "DIABLOS", - "COLUMB", - "HOODS", - "PANLANT", - "BORGNINE", - "CAMPVAN", - "BALLOT", - "SPIDER", - "SHELBY", - "PONTIAC", - "ESPRIT", - "MINI", - "HOTROD", - "SINDACCO", - "FORELLI", + "GOLFCART", + "VOODOO", + "WASHING", + "CUBAN", + "ROMERO", + "PACKER", + "ADMIRAL", + "GANGBUR", + "ZEBRA", + "TOPFUN", + "GLENDALE", + "OCEANIC", + "HERMES", + "SABRE1", + "SABRETUR", + "PHEONIX", + "WALTON", + "REGINA", + "COMET", + "DELUXO", + "BURRITO", + "SPAND", + "BAGGAGE", + "KAUFMAN", + "RANCHER", + "FBIRANCH", + "VIRGO", + "GREENWOO", + "HOTRING", + "SANDKING", + "BLISTAC", + "BOXVILLE", + "BENSON", + "DESPERAD", + "LOVEFIST", + "BLOODRA", + "BLOODRB", "BIKE", "MOPED", "DIRTBIKE", "ANGEL", - "DIRTBIK2", - "ANGE2", "FREEWAY", "PREDATOR", "SPEEDER", "REEFER", + "RIO", + "SQUALO", + "TROPIC", + "COASTGRD", + "DINGHY", + "MARQUIS", + "CUPBOAT", + "SEAPLANE", + "SPARROW", + "SEASPAR", "MAVERICK", "COASTMAV", "POLMAV", "HUNTER", + "RCBARON", "RCGOBLIN", "RCCOPTER" }; @@ -113,17 +138,18 @@ void cHandlingDataMgr::LoadHandlingData(void) { char *start, *end; - char line[300]; + char line[201]; // weird value char delim[4]; // not sure char *word; int field, handlingId; + int keepGoing; tHandlingData *handling; tFlyingHandlingData *flyingHandling; tBoatHandlingData *boatHandling; tBikeHandlingData *bikeHandling; CFileMgr::SetDir("DATA"); - ssize_t filesz = CFileMgr::LoadFile(HandlingFilename, work_buff, sizeof(work_buff), "r"); + CFileMgr::LoadFile(HandlingFilename, work_buff, sizeof(work_buff), "r"); CFileMgr::SetDir(""); start = (char*)work_buff; @@ -132,18 +158,21 @@ cHandlingDataMgr::LoadHandlingData(void) flyingHandling = nil; boatHandling = nil; bikeHandling = nil; + keepGoing = 1; - while(start < (char*)&work_buff[filesz]){ + while(keepGoing){ // find end of line while(*end != '\n') end++; // get line strncpy(line, start, end - start); line[end - start] = '\0'; + start = end+1; + end = start+1; // yeah, this is kinda crappy if(strcmp(line, ";the end") == 0) - break; + keepGoing = 0; else if(line[0] != ';'){ if(line[0] == '!'){ // Bike data @@ -257,19 +286,19 @@ cHandlingDataMgr::LoadHandlingData(void) handling->nIdentifier = (tVehicleType)handlingId; break; case 1: handling->fMass = atof(word); break; - case 2: handling->fTurnMass = atof(word); break; - case 3: handling->fDragMult = atof(word); break; - case 4: handling->CentreOfMass.x = atof(word); break; - case 5: handling->CentreOfMass.y = atof(word); break; - case 6: handling->CentreOfMass.z = atof(word); break; - case 7: handling->nPercentSubmerged = atoi(word); break; - case 8: handling->fTractionMultiplier = atof(word); break; - case 9: handling->fTractionLoss = atof(word); break; - case 10: handling->fTractionBias = atof(word); break; - case 11: handling->Transmission.nNumberOfGears = atoi(word); break; - case 12: handling->Transmission.fMaxVelocity = atof(word); break; - case 13: handling->Transmission.fEngineAcceleration = atof(word) * 0.4; break; - case 14: handling->Transmission.fEngineInertia = atof(word); break; + case 2: handling->Dimension.x = atof(word); break; + case 3: handling->Dimension.y = atof(word); break; + case 4: handling->Dimension.z = atof(word); break; + case 5: handling->CentreOfMass.x = atof(word); break; + case 6: handling->CentreOfMass.y = atof(word); break; + case 7: handling->CentreOfMass.z = atof(word); break; + case 8: handling->nPercentSubmerged = atoi(word); break; + case 9: handling->fTractionMultiplier = atof(word); break; + case 10: handling->fTractionLoss = atof(word); break; + case 11: handling->fTractionBias = atof(word); break; + case 12: handling->Transmission.nNumberOfGears = atoi(word); break; + case 13: handling->Transmission.fMaxVelocity = atof(word); break; + case 14: handling->Transmission.fEngineAcceleration = atof(word) * 0.4; break; case 15: handling->Transmission.nDriveType = word[0]; break; case 16: handling->Transmission.nEngineType = word[0]; break; case 17: handling->fBrakeDeceleration = atof(word); break; @@ -278,28 +307,25 @@ cHandlingDataMgr::LoadHandlingData(void) case 20: handling->fSteeringLock = atof(word); break; case 21: handling->fSuspensionForceLevel = atof(word); break; case 22: handling->fSuspensionDampingLevel = atof(word); break; - // case 23: // fSuspensionHighSpdComDamp unused - case 24: handling->fSuspensionUpperLimit = atof(word); break; - case 25: handling->fSuspensionLowerLimit = atof(word); break; - case 26: handling->fSuspensionBias = atof(word); break; - case 27: handling->fSuspensionAntidiveMultiplier = atof(word); break; - case 28: handling->fSeatOffsetDistance = atof(word); break; - case 29: handling->fCollisionDamageMultiplier = atof(word); break; - case 30: handling->nMonetaryValue = atoi(word); break; - case 31: + case 23: handling->fSeatOffsetDistance = atof(word); break; + case 24: handling->fCollisionDamageMultiplier = atof(word); break; + case 25: handling->nMonetaryValue = atoi(word); break; + case 26: handling->fSuspensionUpperLimit = atof(word); break; + case 27: handling->fSuspensionLowerLimit = atof(word); break; + case 28: handling->fSuspensionBias = atof(word); break; + case 29: handling->fSuspensionAntidiveMultiplier = atof(word); break; + case 30: sscanf(word, "%x", &handling->Flags); - // handling->Transmission.Flags = handling->Flags; + handling->Transmission.Flags = handling->Flags; break; - case 32: handling->FrontLights = atoi(word); break; - case 33: handling->RearLights = atoi(word); break; + case 31: handling->FrontLights = atoi(word); break; + case 32: handling->RearLights = atoi(word); break; } field++; } ConvertDataToGameUnits(handling); } } - start = end+1; - end = start+1; } } @@ -327,9 +353,12 @@ cHandlingDataMgr::ConvertDataToGameUnits(tHandlingData *handling) handling->Transmission.fEngineAcceleration *= 1.0f/(50.0f*50.0f); handling->Transmission.fMaxVelocity *= 1000.0f/(60.0f*60.0f * 50.0f); handling->fBrakeDeceleration *= 1.0f/(50.0f*50.0f); - handling->fInvMass = 1.0f/handling->GetMass(); - handling->fCollisionDamageMultiplier = handling->GetCollisionDamageMultiplier() * 2000.0f/handling->GetMass(); - handling->fBuoyancy = 100.0f/handling->nPercentSubmerged * GRAVITY*handling->GetMass(); + handling->fTurnMass = (sq(handling->Dimension.x) + sq(handling->Dimension.y)) * handling->fMass / 12.0f; + if(handling->fTurnMass < 10.0f) + handling->fTurnMass *= 5.0f; + handling->fInvMass = 1.0f/handling->fMass; + handling->fCollisionDamageMultiplier *= 2000.0f/handling->fMass; + handling->fBuoyancy = 100.0f/handling->nPercentSubmerged * GRAVITY*handling->fMass; // Don't quite understand this. What seems to be going on is that // we calculate a drag (air resistance) deceleration for a given velocity and @@ -342,13 +371,10 @@ cHandlingDataMgr::ConvertDataToGameUnits(tHandlingData *handling) velocity -= 0.01f; // what's the 1/6? a = handling->Transmission.fEngineAcceleration/6.0f; - // no idea what's happening here - float drag; - if(handling->fDragMult < 0.01f) - drag = 1.0f - 1.0f/(SQR(velocity)*handling->fDragMult + 1.0f); - else - drag = 0.0005f*handling->fDragMult * velocity; - b = velocity * drag; + // no density or drag coefficient here... + float a_drag = 0.5f*SQR(velocity) * handling->Dimension.x*handling->Dimension.z / handling->fMass; + // can't make sense of this... maybe v - v/(drag + 1) ? but that doesn't make so much sense either + b = -velocity * (1.0f/(a_drag + 1.0f) - 1.0f); } if(handling->nIdentifier == HANDLING_RCBANDIT){ @@ -394,15 +420,15 @@ cHandlingDataMgr::GetHandlingId(const char *name) tFlyingHandlingData* cHandlingDataMgr::GetFlyingPointer(uint8 id) { - if(id >= HANDLING_MAVERICK && id <= HANDLING_RCCOPTER) - return &FlyingHandlingData[id-HANDLING_MAVERICK]; + if(id >= HANDLING_SEAPLANE && id <= HANDLING_RCCOPTER) + return &FlyingHandlingData[id-HANDLING_SEAPLANE]; return &FlyingHandlingData[0]; } tBoatHandlingData* cHandlingDataMgr::GetBoatPointer(uint8 id) { - if(id >= HANDLING_PREDATOR && id <= HANDLING_MAVERICK) + if(id >= HANDLING_PREDATOR && id <= HANDLING_SEAPLANE) return &BoatHandlingData[id-HANDLING_PREDATOR]; return &BoatHandlingData[0]; } diff --git a/src/vehicles/HandlingMgr.h b/src/vehicles/HandlingMgr.h index 2d49761..8d290f7 100644 --- a/src/vehicles/HandlingMgr.h +++ b/src/vehicles/HandlingMgr.h @@ -36,7 +36,6 @@ enum tVehicleType HANDLING_RHINO, HANDLING_BARRACKS, HANDLING_TRAIN, - HANDLING_FERRY, HANDLING_HELI, HANDLING_DODO, HANDLING_COACH, @@ -49,51 +48,76 @@ enum tVehicleType HANDLING_DEADDODO, HANDLING_FLATBED, HANDLING_YANKEE, - HANDLING_BLISTA, - HANDLING_BELLYUP, - HANDLING_MRWONGS, - HANDLING_YARDIE, - HANDLING_YAKUZA, - HANDLING_DIABLOS, - HANDLING_COLUMB, - HANDLING_HOODS, - HANDLING_PANLANT, - HANDLING_BORGNINE, - HANDLING_CAMPVAN, - HANDLING_BALLOT, - HANDLING_SPIDER, - HANDLING_SHELBY, - HANDLING_PONTIAC, - HANDLING_ESPRIT, - HANDLING_MINI, - HANDLING_HOTROD, - HANDLING_SINDACCO, - HANDLING_FORELLI, + HANDLING_GOLFCART, + HANDLING_VOODOO, + HANDLING_WASHING, + HANDLING_CUBAN, + HANDLING_ROMERO, + HANDLING_PACKER, + HANDLING_ADMIRAL, + HANDLING_GANGBUR, + HANDLING_ZEBRA, + HANDLING_TOPFUN, + HANDLING_GLENDALE, + HANDLING_OCEANIC, + HANDLING_HERMES, + HANDLING_SABRE1, + HANDLING_SABRETUR, + HANDLING_PHEONIX, + HANDLING_WALTON, + HANDLING_REGINA, + HANDLING_COMET, + HANDLING_DELUXO, + HANDLING_BURRITO, + HANDLING_SPAND, + HANDLING_BAGGAGE, + HANDLING_KAUFMAN, + HANDLING_RANCHER, + HANDLING_FBIRANCH, + HANDLING_VIRGO, + HANDLING_GREENWOO, + HANDLING_HOTRING, + HANDLING_SANDKING, + HANDLING_BLISTAC, + HANDLING_BOXVILLE, + HANDLING_BENSON, + HANDLING_DESPERAD, + HANDLING_LOVEFIST, + HANDLING_BLOODRA, + HANDLING_BLOODRB, HANDLING_BIKE, HANDLING_MOPED, HANDLING_DIRTBIKE, HANDLING_ANGEL, - HANDLING_DIRTBIK2, - HANDLING_ANGE2, HANDLING_FREEWAY, HANDLING_PREDATOR, HANDLING_SPEEDER, HANDLING_REEFER, - + HANDLING_RIO, + HANDLING_SQUALO, + HANDLING_TROPIC, + HANDLING_COASTGRD, + HANDLING_DINGHY, + HANDLING_MARQUIS, + HANDLING_CUPBOAT, + HANDLING_SEAPLANE, // both boat and plane! + HANDLING_SPARROW, + HANDLING_SEASPAR, HANDLING_MAVERICK, HANDLING_COASTMAV, HANDLING_POLMAV, HANDLING_HUNTER, + HANDLING_RCBARON, HANDLING_RCGOBLIN, HANDLING_RCCOPTER, NUMHANDLINGS, NUMBIKEHANDLINGS = HANDLING_FREEWAY+1 - HANDLING_BIKE, - NUMFLYINGHANDLINGS = HANDLING_RCCOPTER+1 - HANDLING_MAVERICK, - NUMBOATHANDLINGS = HANDLING_REEFER+1 - HANDLING_PREDATOR, + NUMFLYINGHANDLINGS = HANDLING_RCCOPTER+1 - HANDLING_SEAPLANE, + NUMBOATHANDLINGS = HANDLING_SEAPLANE+1 - HANDLING_PREDATOR, }; enum tField // most likely a handling field enum, never used so :shrug: @@ -131,21 +155,19 @@ enum HANDLING_NARROW_FRONTW = 0x2000000, HANDLING_GOOD_INSAND = 0x4000000, HANDLING_UNKNOWN = 0x8000000, // something for helis and planes - HANDLING_FORCE_GRND_CLR = 0x10000000 }; struct tHandlingData { - float fMass; - float fTurnMass; - float fTractionMultiplier; - float fCollisionDamageMultiplier; tVehicleType nIdentifier; + float fMass; float fInvMass; - float fDragMult; + float fTurnMass; + CVector Dimension; CVector CentreOfMass; int8 nPercentSubmerged; float fBuoyancy; + float fTractionMultiplier; cTransmission Transmission; float fBrakeDeceleration; float fBrakeBias; @@ -160,17 +182,12 @@ struct tHandlingData float fSuspensionLowerLimit; float fSuspensionBias; float fSuspensionAntidiveMultiplier; + float fCollisionDamageMultiplier; uint32 Flags; float fSeatOffsetDistance; int32 nMonetaryValue; int8 FrontLights; int8 RearLights; - int unk[4]; - - float GetMass(void) const { return fMass; } - float GetTurnMass(void) const { return fTurnMass; } - float GetTractionMultiplier(void) const { return fTractionMultiplier; } - float GetCollisionDamageMultiplier(void) const { return fCollisionDamageMultiplier; } }; struct tBikeHandlingData diff --git a/src/vehicles/Heli.cpp b/src/vehicles/Heli.cpp index 3f01ff4..bf14416 100644 --- a/src/vehicles/Heli.cpp +++ b/src/vehicles/Heli.cpp @@ -756,7 +756,7 @@ CHeli::InitHelis(void) for(i = 0; i < NUM_HELIS; i++) pHelis[i] = nil; - ((CVehicleModelInfo*)CModelInfo::GetModelInfo(MI_CHOPPER))->SetColModel(&gpTempColModels->ms_colModelPed1); + ((CVehicleModelInfo*)CModelInfo::GetModelInfo(MI_CHOPPER))->SetColModel(&CTempColModels::ms_colModelPed1); } CHeli* diff --git a/src/vehicles/Train.cpp b/src/vehicles/Train.cpp index 55be4a2..5f0cf36 100644 --- a/src/vehicles/Train.cpp +++ b/src/vehicles/Train.cpp @@ -459,11 +459,11 @@ CTrain::InitTrains(void) CStreaming::LoadAllRequestedModels(false); // El-Train wagons - float wagonPositions[] = { 0.0f, 20.0f, 0.0f, 20.0f }; - int8 firstWagon[] = { 1, 0, 1, 0 }; - int8 lastWagon[] = { 0, 1, 0, 1 }; - int16 wagonGroup[] = { 0, 0, 1, 1 }; - for(i = 0; i < 4; i++){ + float wagonPositions[] = { 0.0f, 20.0f, 40.0f, 0.0f, 20.0f }; + int8 firstWagon[] = { 1, 0, 0, 1, 0 }; + int8 lastWagon[] = { 0, 0, 1, 0, 1 }; + int16 wagonGroup[] = { 0, 0, 0, 1, 1 }; + for(i = 0; i < 5; i++){ train = new CTrain(MI_TRAIN, PERMANENT_VEHICLE); train->GetMatrix().SetTranslate(0.0f, 0.0f, 0.0f); train->SetStatus(STATUS_ABANDONED); @@ -649,6 +649,52 @@ CTrain::ReadAndInterpretTrackFile(Const char *filename, CTrainNode **nodes, int1 #endif } +void +PlayAnnouncement(uint8 sound, uint8 station) +{ + // this was gone in a PC version but inlined on PS2 + cAudioScriptObject *obj = new cAudioScriptObject; + obj->AudioId = sound; + obj->Posn = CTrain::aStationCoors[station]; + obj->AudioEntity = AEHANDLE_NONE; + DMAudio.CreateOneShotScriptObject(obj); +} + +void +ProcessTrainAnnouncements(void) +{ +#ifdef GTA_TRAIN + for (int i = 0; i < ARRAY_SIZE(StationDist); i++) { + for (int j = 0; j < ARRAY_SIZE(EngineTrackPosition); j++) { + if (!bTrainArrivalAnnounced[i]) { + float preDist = StationDist[i] - 100.0f; + if (preDist < 0.0f) + preDist += TotalLengthOfTrack; + if (EngineTrackPosition[j] > preDist && EngineTrackPosition[j] < StationDist[i]) { + bTrainArrivalAnnounced[i] = true; + PlayAnnouncement(SCRIPT_SOUND_TRAIN_ANNOUNCEMENT_1, i); + break; + } + } else { + float postDist = StationDist[i] + 10.0f; +#ifdef FIX_BUGS + if (postDist > TotalLengthOfTrack) + postDist -= TotalLengthOfTrack; +#else + if (postDist < 0.0f) // does this even make sense here? + postDist += TotalLengthOfTrack; +#endif + if (EngineTrackPosition[j] > StationDist[i] && EngineTrackPosition[j] < postDist) { + bTrainArrivalAnnounced[i] = false; + PlayAnnouncement(SCRIPT_SOUND_TRAIN_ANNOUNCEMENT_2, i); + break; + } + } + } + } +#endif +} + void CTrain::UpdateTrains(void) { @@ -686,6 +732,8 @@ CTrain::UpdateTrains(void) // time offset for each train time += 0x20000/2; } + + ProcessTrainAnnouncements(); } // Update Subway diff --git a/src/vehicles/Transmission.cpp b/src/vehicles/Transmission.cpp index f7851f4..1aeabfe 100644 --- a/src/vehicles/Transmission.cpp +++ b/src/vehicles/Transmission.cpp @@ -4,7 +4,6 @@ #include "HandlingMgr.h" #include "Transmission.h" -//--LCS: file done void cTransmission::InitGearRatios(void) { @@ -15,14 +14,11 @@ cTransmission::InitGearRatios(void) memset(Gears, 0, sizeof(Gears)); - float baseVelocity = 0.5f*fMaxVelocity / nNumberOfGears; - float step = (fMaxVelocity - baseVelocity) / nNumberOfGears; - for(i = 1; i <= nNumberOfGears; i++){ pGearRatio0 = &Gears[i-1]; pGearRatio1 = &Gears[i]; - pGearRatio1->fMaxVelocity = baseVelocity + i*step; + pGearRatio1->fMaxVelocity = (float)i / nNumberOfGears * fMaxVelocity; velocityDiff = pGearRatio1->fMaxVelocity - pGearRatio0->fMaxVelocity; @@ -49,12 +45,9 @@ cTransmission::CalculateGearForSimpleCar(float speed, uint8 &gear) pGearRatio = &Gears[gear]; fCurVelocity = speed; - if(speed > pGearRatio->fShiftUpVelocity){ - if(gear + 1 > nNumberOfGears) - gear = nNumberOfGears; - else - gear++; - }else if(speed < pGearRatio->fShiftDownVelocity){ + if(speed > pGearRatio->fShiftUpVelocity) + gear++; + else if(speed < pGearRatio->fShiftDownVelocity){ if(gear - 1 < 0) gear = 0; else @@ -62,110 +55,6 @@ cTransmission::CalculateGearForSimpleCar(float speed, uint8 &gear) } } -float TRANSMISSION_NITROS_INERTIA_MULT = 0.5f; -float TRANSMISSION_AI_CHEAT_INERTIA_MULT = 0.75f; -float TRANSMISSION_NITROS_MULT = 2.0f; -float TRANSMISSION_AI_CHEAT_MULT = 1.2f; -float TRANSMISSION_SMOOTHER_FRAC = 0.85f; -float TRANSMISSION_FREE_ACCELERATION = 0.1f; - -//--LCS: done -float -cTransmission::CalculateDriveAcceleration(const float &gasPedal, uint8 &gear, float &time, const float &velocity, float *inertiaVar1, float *inertiaVar2, uint8 nDriveWheels, uint8 cheat) -{ - static float fAcceleration = 0.0f; - static float fVelocity; - static float fCheat; - static tGear *pGearRatio; - - fVelocity = velocity; - if(fVelocity < fMaxReverseVelocity) - return 0.0f; - if(fVelocity > fMaxVelocity) - return 0.0f; - fCurVelocity = fVelocity; - - assert(gear <= nNumberOfGears); - - pGearRatio = &Gears[gear]; - if(fVelocity > pGearRatio->fShiftUpVelocity){ - if(gear != 0 || gasPedal > 0.0f){ - gear++; - return CalculateDriveAcceleration(gasPedal, gear, time, fVelocity, nil, nil, 0, false); - } - }else if(fVelocity < pGearRatio->fShiftDownVelocity && gear != 0){ - if(gear != 1 || gasPedal < 0.0f){ - gear--; - return CalculateDriveAcceleration(gasPedal, gear, time, fVelocity, nil, nil, 0, false); - } - } - - float accelMul; - - if(nNumberOfGears == 1){ - accelMul = 1.0f; - }else if(gear == 0){ - accelMul = 4.5f; - }else{ - float f = 1.0f - (gear-1.0f)/(nNumberOfGears-1.0f); - if(Flags & HANDLING_1G_BOOST) - accelMul = SQR(f)*5.0f + 1.0f; - else if(Flags & HANDLING_2G_BOOST) - accelMul = SQR(f)*4.0f + 1.0f; - else - accelMul = SQR(f)*3.0f + 1.0f; - } - - fCheat = 1.0f; - float nitroMult = 1.0f; - if(cheat == 1) - fCheat = TRANSMISSION_AI_CHEAT_MULT; - else if(cheat == 2) - nitroMult = TRANSMISSION_NITROS_MULT; - - fAcceleration = fEngineAcceleration*CTimer::GetTimeStep()*0.4f*accelMul*gasPedal*fCheat*nitroMult; - - if(inertiaVar1 != nil && inertiaVar2 != nil){ - if(nDriveWheels == 0){ - float f = TRANSMISSION_FREE_ACCELERATION*CTimer::GetTimeStep()*Abs(gasPedal)/fEngineInertia; - *inertiaVar1 = Min(*inertiaVar1 + f, 1.0f); - *inertiaVar2 = 0.1f; - }else{ - float var1; - // What is being calculated here? - // TODO: find better names for the inertia vars - if(gear == 0){ - var1 = ((fMaxVelocity/nNumberOfGears)*(1.0f-0.6667f) - fVelocity) / - ((fMaxVelocity/nNumberOfGears)*(1.0f-0.6667f) - Gears[gear].fShiftDownVelocity); - }else if(gear == 1){ - var1 = ((fMaxVelocity/nNumberOfGears)*(1.0f-0.6667f) + fVelocity) / - ((fMaxVelocity/nNumberOfGears)*(1.0f-0.6667f) + Gears[gear].fShiftUpVelocity); - }else{ - var1 = (fVelocity - Gears[gear].fShiftDownVelocity) / - (Gears[gear].fShiftUpVelocity - Gears[gear].fShiftDownVelocity); - } - float inertiaMult = var1 - *inertiaVar1; - if(cheat == 1) - inertiaMult *= TRANSMISSION_AI_CHEAT_INERTIA_MULT; - else if(cheat == 2) - inertiaMult *= TRANSMISSION_NITROS_INERTIA_MULT; - float var2target = 1.0f - inertiaMult*fEngineInertia; - var2target = clamp(var2target, 0.1f, 1.0f); - *inertiaVar2 = (1.0f-TRANSMISSION_SMOOTHER_FRAC)*var2target + TRANSMISSION_SMOOTHER_FRAC*(*inertiaVar2); - *inertiaVar1 = var1; - fAcceleration *= *inertiaVar2; - } - } - - float targetVelocity = Gears[gear].fMaxVelocity*fCheat; - if(Gears[gear].fMaxVelocity < 0.0f && targetVelocity > fVelocity) - fAcceleration *= 1.0f - Min((targetVelocity - fVelocity)/0.05f, 1.0f); - else if(Gears[gear].fMaxVelocity > 0.0f && targetVelocity < fVelocity) - fAcceleration *= 1.0f - Min((fVelocity - targetVelocity)/0.05f, 1.0f); - return fAcceleration; -} - -// TEMP old VC code until we have bikes float cTransmission::CalculateDriveAcceleration(const float &gasPedal, uint8 &gear, float &time, const float &velocity, bool cheat) { diff --git a/src/vehicles/Transmission.h b/src/vehicles/Transmission.h index 8aea7b0..a3d1551 100644 --- a/src/vehicles/Transmission.h +++ b/src/vehicles/Transmission.h @@ -17,7 +17,6 @@ public: int8 nNumberOfGears; uint8 Flags; float fEngineAcceleration; - float fEngineInertia; float fMaxVelocity; float fMaxCruiseVelocity; float fMaxReverseVelocity; @@ -25,6 +24,5 @@ public: void InitGearRatios(void); void CalculateGearForSimpleCar(float speed, uint8 &gear); - float CalculateDriveAcceleration(const float &gasPedal, uint8 &gear, float &time, const float &velocity, float *inertiaVar1, float *inertiaVar2, uint8 nDriveWheels, uint8 cheat); float CalculateDriveAcceleration(const float &gasPedal, uint8 &gear, float &time, const float &velocity, bool cheat); }; diff --git a/src/vehicles/Vehicle.cpp b/src/vehicles/Vehicle.cpp index a05a32a..4e6c24e 100644 --- a/src/vehicles/Vehicle.cpp +++ b/src/vehicles/Vehicle.cpp @@ -133,7 +133,6 @@ CVehicle::CVehicle(uint8 CreatedBy) bCreatedAsPoliceVehicle = false; bRestingOnPhysical = false; bParking = false; - m_bGarageTurnedLightsOff = false; bCanPark = CGeneral::GetRandomNumberInRange(0.0f, 1.0f) < 0.0f; // never true. probably doesn't work very well bIsVan = false; bIsBus = false; @@ -218,8 +217,8 @@ void CVehicle::SetModelIndex(uint32 id) { CEntity::SetModelIndex(id); - m_aExtras[0] = CVehicleModelInfo::mspInfo->ms_compsUsed[0]; - m_aExtras[1] = CVehicleModelInfo::mspInfo->ms_compsUsed[1]; + m_aExtras[0] = CVehicleModelInfo::ms_compsUsed[0]; + m_aExtras[1] = CVehicleModelInfo::ms_compsUsed[1]; m_nNumMaxPassengers = CVehicleModelInfo::GetMaximumNumberOfPassengersFromNumberOfDoors(id); } @@ -772,9 +771,7 @@ CVehicle::BladeColSectorList(CPtrList &list, CColModel &rotorColModel, CMatrix & } -float WS_ALREADY_SPINNING_LOSS = 0.2f; -float WS_TRAC_FRAC_LIMIT = 0.3f; -float fBurstSpeedMax = 0.2f; +float fBurstSpeedMax = 0.3f; float fBurstTyreMod = 0.13f; void @@ -802,15 +799,13 @@ CVehicle::ProcessWheel(CVector &wheelFwd, CVector &wheelRight, CVector &wheelCon float contactSpeedFwd = DotProduct(wheelContactSpeed, wheelFwd); float contactSpeedRight = DotProduct(wheelContactSpeed, wheelRight); - adhesion *= CTimer::GetTimeStep(); - if(*wheelState != WHEEL_STATE_NORMAL){ + if(*wheelState != WHEEL_STATE_NORMAL) bAlreadySkidding = true; - adhesion *= pHandling->fTractionLoss; - if(*wheelState == WHEEL_STATE_SPINNING && (GetStatus() == STATUS_PLAYER || GetStatus() == STATUS_PLAYER_REMOTE)) - adhesion *= 1.0f - Abs(m_fGasPedal) * WS_ALREADY_SPINNING_LOSS; - } *wheelState = WHEEL_STATE_NORMAL; + adhesion *= CTimer::GetTimeStep(); + if(bAlreadySkidding) + adhesion *= pHandling->fTractionLoss; // moving sideways if(contactSpeedRight != 0.0f){ @@ -850,15 +845,13 @@ CVehicle::ProcessWheel(CVector &wheelFwd, CVector &wheelRight, CVector &wheelCon if(!bBraking){ if(m_fGasPedal < 0.01f){ if(IsBike()) - brake = 0.6f * mod_HandlingManager.fWheelFriction / (pHandling->GetMass() + 200.0f); - else if(IsPlane()) - brake = 0.0f; - else if(pHandling->GetMass() < 500.0f) - brake = 0.1f * mod_HandlingManager.fWheelFriction / pHandling->GetMass(); + brake = 0.6f * mod_HandlingManager.fWheelFriction / (pHandling->fMass + 200.0f); + else if(pHandling->fMass < 500.0f) + brake = 0.2f * mod_HandlingManager.fWheelFriction / pHandling->fMass; else if(GetModelIndex() == MI_RCBANDIT) - brake = 0.2f * mod_HandlingManager.fWheelFriction / pHandling->GetMass(); + brake = 0.2f * mod_HandlingManager.fWheelFriction / pHandling->fMass; else - brake = mod_HandlingManager.fWheelFriction / pHandling->GetMass(); + brake = mod_HandlingManager.fWheelFriction / pHandling->fMass; #ifdef FIX_BUGS brake *= CTimer::GetTimeStepFix(); #endif @@ -882,10 +875,7 @@ CVehicle::ProcessWheel(CVector &wheelFwd, CVector &wheelRight, CVector &wheelCon float speedSq = sq(right) + sq(fwd); if(sq(adhesion) < speedSq){ if(*wheelState != WHEEL_STATE_FIXED){ - float tractionLimit = WS_TRAC_FRAC_LIMIT; - if(contactSpeedFwd > 0.15f && (wheelId == CARWHEEL_FRONT_LEFT || wheelId == CARWHEEL_FRONT_RIGHT)) - tractionLimit *= 2.0f; - if(bDriving && tractionLimit*adhesion < Abs(fwd)) + if(bDriving && contactSpeedFwd < 0.2f) *wheelState = WHEEL_STATE_SPINNING; else *wheelState = WHEEL_STATE_SKIDDING; @@ -893,8 +883,6 @@ CVehicle::ProcessWheel(CVector &wheelFwd, CVector &wheelRight, CVector &wheelCon float l = Sqrt(speedSq); float tractionLoss = bAlreadySkidding ? 1.0f : pHandling->fTractionLoss; - if(*wheelState == WHEEL_STATE_SPINNING && (GetStatus() == STATUS_PLAYER || GetStatus() == STATUS_PLAYER_REMOTE)) - tractionLoss *= 1.0f - Abs(m_fGasPedal) * WS_ALREADY_SPINNING_LOSS; right *= adhesion * tractionLoss / l; fwd *= adhesion * tractionLoss / l; } @@ -903,7 +891,7 @@ CVehicle::ProcessWheel(CVector &wheelFwd, CVector &wheelRight, CVector &wheelCon CVector totalSpeed = fwd*wheelFwd + right*wheelRight; CVector turnDirection = totalSpeed; - bool separateTurnForce = false; + bool separateTurnForce = false; // BUG: not initialized on PC if(pHandling->fSuspensionAntidiveMultiplier > 0.0f){ if(bBraking){ separateTurnForce = true; @@ -940,7 +928,6 @@ float fBurstBikeSpeedMax = 0.12f; float fBurstBikeTyreMod = 0.05f; float fTweakBikeWheelTurnForce = 2.0f; -//--LCS: done void CVehicle::ProcessBikeWheel(CVector &wheelFwd, CVector &wheelRight, CVector &wheelContactSpeed, CVector &wheelContactPoint, int32 wheelsOnGround, float thrust, float brake, float adhesion, float destabTraction, int8 wheelId, float *wheelSpeed, tWheelState *wheelState, eBikeWheelSpecial special, uint16 wheelStatus) @@ -1861,7 +1848,8 @@ CVehicle::SetDriver(CPed *driver) case MI_TAXI: case MI_CABBIE: - case MI_BORGNINE: + case MI_ZEBRA: + case MI_KAUFMAN: CWorld::Players[CWorld::PlayerInFocus].m_nMoney += 12; break; diff --git a/src/vehicles/Vehicle.h b/src/vehicles/Vehicle.h index db4c598..2fb2caf 100644 --- a/src/vehicles/Vehicle.h +++ b/src/vehicles/Vehicle.h @@ -240,19 +240,16 @@ public: uint8 bRestingOnPhysical : 1; // Dont go static cause car is sitting on a physical object that might get removed uint8 bParking : 1; uint8 bCanPark : 1; -#if (!defined GTA_PS2 || defined FIX_BUGS) // <- I think this can be moved back to CAutomobile? +#if (!defined GTA_PS2 || defined FIX_BUGS) uint8 m_bombType : 3; #endif uint8 bDriverLastFrame : 1; - uint8 bRewardVehicle : 1; // 25B_40 int8 m_numPedsUseItAsCover; uint8 m_nAmmoInClip; // Used to make the guns on boat do a reload (20 by default) int8 m_nPacManPickupsCarried; uint8 m_nRoadblockType; - bool m_bGarageTurnedLightsOff; float m_fHealth; // 1000.0f = full health. 250.0f = fire. 0 -> explode - float m_fEngineEnergy; // TODO(LCS): better name. it adds up acceleration force, so possibly kinetic energy?? uint8 m_nCurrentGear; float m_fChangeGearTime; #if (!defined GTA_PS2 || defined FIX_BUGS) @@ -291,7 +288,6 @@ public: ~CVehicle(void); // from CEntity void SetModelIndex(uint32 id); - void PreRender(void) {} bool SetupLighting(void); void RemoveLighting(bool); void FlagToDestroyWhenNextProcessed(void) {} @@ -388,8 +384,8 @@ public: bool IsAlarmOn(void) { return m_nAlarmState != 0 && m_nAlarmState != -1 && GetStatus() != STATUS_WRECKED; } CVehicleModelInfo* GetModelInfo() { return (CVehicleModelInfo*)CModelInfo::GetModelInfo(GetModelIndex()); } - bool IsTaxi(void) { return GetModelIndex() == MI_TAXI || GetModelIndex() == MI_CABBIE || GetModelIndex() == MI_BORGNINE; } - bool IsLimo(void) { return GetModelIndex() == MI_STRETCH; } + bool IsTaxi(void) { return GetModelIndex() == MI_TAXI || GetModelIndex() == MI_CABBIE || GetModelIndex() == MI_ZEBRA || GetModelIndex() == MI_KAUFMAN; } + bool IsLimo(void) { return GetModelIndex() == MI_STRETCH || GetModelIndex() == MI_LOVEFIST; } bool IsRealHeli(void) { return !!(pHandling->Flags & HANDLING_IS_HELI); } bool IsRealPlane(void) { return !!(pHandling->Flags & HANDLING_IS_PLANE); } diff --git a/src/weapons/Weapon.cpp b/src/weapons/Weapon.cpp index 49102fc..7a54941 100644 --- a/src/weapons/Weapon.cpp +++ b/src/weapons/Weapon.cpp @@ -513,7 +513,7 @@ CWeapon::FireMelee(CEntity *shooter, CVector &fireSource) if ( SQR(victimPedRadius) > (victimPedPos-fireSource).MagnitudeSqr() ) { CVector collisionDist; - CColModel* victimPedCol = &gpTempColModels->ms_colModelPed1; + CColModel* victimPedCol = &CTempColModels::ms_colModelPed1; bool useLocalPos = false; if (victimPed->m_nPedState == PED_FALL || victimPed->m_nPedState == PED_DIE && victimPed->bIsPedDieAnimPlaying @@ -649,9 +649,9 @@ CWeapon::FireMelee(CEntity *shooter, CVector &fireSource) CVector dropDir(CGeneral::GetRandomNumberInRange(-0.15f, 0.15f), CGeneral::GetRandomNumberInRange(0.1f, 0.35f), 0.f); CVector dropPos(CGeneral::GetRandomNumberInRange(SCREEN_STRETCH_X(50.0f), SCREEN_STRETCH_FROM_RIGHT(50.0f)), CGeneral::GetRandomNumberInRange(SCREEN_STRETCH_Y(50.0f), SCREEN_STRETCH_FROM_BOTTOM(50.0f)), 1.f); - /*CParticle::AddParticle(PARTICLE_BLOODDROP, dropPos, dropDir, nil, CGeneral::GetRandomNumberInRange(0.1f, 0.15f), + CParticle::AddParticle(PARTICLE_BLOODDROP, dropPos, dropDir, nil, CGeneral::GetRandomNumberInRange(0.1f, 0.15f), CRGBA(0, 0, 0, 0), 0, 0, CGeneral::GetRandomNumber() & 1, 0); - */ + } if (info->m_AnimToPlay == ASSOCGRP_KNIFE) { @@ -741,7 +741,7 @@ CWeapon::FireMelee(CEntity *shooter, CVector &fireSource) { nearCar->VehicleDamage(info->m_nDamage * (0.00075f * nearCar->pHandling->fMass), gaTempSphereColPoints[0].pieceB); - //CParticle::AddParticle(PARTICLE_HEATHAZE, gaTempSphereColPoints[0].point, CVector(0.0f, 0.0f, 0.0f), 0, 0.0f, 0, 0, 0, 0); + CParticle::AddParticle(PARTICLE_HEATHAZE, gaTempSphereColPoints[0].point, CVector(0.0f, 0.0f, 0.0f), 0, 0.0f, 0, 0, 0, 0); } else { @@ -818,7 +818,7 @@ CWeapon::FireMelee(CEntity *shooter, CVector &fireSource) CParticle::AddParticle(PARTICLE_SPARK, gaTempSphereColPoints[0].point, 0.1f * gaTempSphereColPoints[0].normal, 0, 0.0f, 0, 0, 0, 0); } - //CParticle::AddParticle(PARTICLE_HEATHAZE, gaTempSphereColPoints[0].point, CVector(0.0f, 0.0f, 0.0f), 0, 0.0f, 0, 0, 0, 0); + CParticle::AddParticle(PARTICLE_HEATHAZE, gaTempSphereColPoints[0].point, CVector(0.0f, 0.0f, 0.0f), 0, 0.0f, 0, 0, 0, 0); if (!damageEntityRegistered) { diff --git a/src/weapons/WeaponEffects.cpp b/src/weapons/WeaponEffects.cpp index b0df610..bb95ea8 100644 --- a/src/weapons/WeaponEffects.cpp +++ b/src/weapons/WeaponEffects.cpp @@ -1,5 +1,6 @@ #include "common.h" +#include "main.h" #include "WeaponEffects.h" #include "TxdStore.h" #include "Sprite.h" @@ -103,6 +104,8 @@ CWeaponEffects::Render(void) float w, h; if ( CSprite::CalcScreenCoors(gCrossHair.m_vecPos, &pos, &w, &h, true) ) { + PUSH_RENDERGROUP("CWeaponEffects::Render"); + float recipz = 1.0f / pos.z; CSprite::RenderOneXLUSprite_Rotate_Aspect(pos.x, pos.y, pos.z, w, h, @@ -119,6 +122,8 @@ CWeaponEffects::Render(void) gCrossHair.m_fRotation += 0.02f; if ( gCrossHair.m_fRotation > TWOPI ) gCrossHair.m_fRotation = 0.0; + + POP_RENDERGROUP(); } RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void *)FALSE); diff --git a/utils/gxt/ENGLISH.txt b/utils/gxt/ENGLISH.txt deleted file mode 100644 index 5a18faf..0000000 --- a/utils/gxt/ENGLISH.txt +++ /dev/null @@ -1,18230 +0,0 @@ -[LETTER1] -abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789"$,.'-?!!SDBF - -[DEFNAM] -Claude---------------------- - -[IN_VEH] -~w~Hey! Get back in the ~b~vehicle! - -[IN_VEH2] -~w~You need some wheels for this job! - -[IN_BOAT] -~w~You need a boat for this job! - -[HEY] -~w~Don't go solo, keep your posse together! - -[HEY2] -~w~Don't split up, keep the group together! - -[HEY3] -~w~You've dropped your main man, go back and get 8-Ball! - -[HEY6] -~w~You left your honor with the Yakuza Kanbu. You must protect him! - -[HEY7] -~w~An extra gun could be useful. Go back and pick up your contact! - -[HEY9] -~w~You want the word on the street? Go see the contact! - -[GATE_1] -~w~The Sindaccos will only open the gates for Sindacco cars. - -[HELPA] -~w~This is your ~h~Safe House. - -[HELPB] -~w~While not on a mission you can save your progress by collecting the ~h~Save Icon~w~ - time will advance by 6 hours. - -[HELPC] -~w~Vehicles left in the ~h~garage next door~w~ will be stored when you save the game. - -[HELPD] -To exit the Safe House, walk into the ~h~marker. - -[HELP0] -~w~Press~h~ ~k~ ~VEEE~ ~w~to enter or exit a vehicle. - -[HELP1] -~w~Stop in the center of the ~h~yellow marker. - -[HELP3] -~w~You can only sprint for a short time before tiring. - -[HELP4] -~w~Press~h~ ~k~ ~VEACC~ ~w~to ~h~accelerate,~h~ ~k~ ~VESTR~ ~w~to steer. - -[HELP5] -~w~Press~h~ ~k~ ~VEBRK~ ~w~to ~h~brake~w~, or to ~h~reverse~w~ if the vehicle has stopped. - -[HELP6] -~w~Press~h~ ~k~ ~VEHB~ ~w~to use the vehicle's ~h~handbrake. - -[HELP7] -~w~Hold~h~ ~k~ ~PDLT~ ~w~to target with a sniper rifle. - -[HELP8] -~w~Use~h~ ~k~ ~SNZI~ ~w~and~h~ ~k~ ~SNZO~ ~w~to ~h~zoom in and out~w~ when targeting. - -[HELP10] -~w~The ~h~yellow badge~w~ indicates you are a ~h~wanted man~w~ - police officers will try to arrest you. - -[HELP11] -~w~As more badges are displayed the Law will try harder to stop you. - -[HELP12] -~w~Walk into the ~h~yellow marker~w~ to initiate a mission. - -[HELP13] -~w~Look out for pathways not shown on the ~h~radar,~w~ and use them to your advantage! - -[HELP14] -~w~Use the ~h~Radar~w~ to find your way around the city - follow the ~h~yellow blip~w~ to find the ~h~Safe House. - -[HELP16] -~w~Use~h~ ~k~ ~VESTR~ ~w~to steer. - -[HELP17] -~w~Phil Cassidy's - for a higher caliber of merchandise: New stock coming soon! - -[HELP18] -~w~New stock has been delivered to Phil Cassidy's Fully Cocked Gun Shop! - -[HELP18B] -~w~Phil Cassidy's now has the ~h~Minigun~w~ in stock! - -[HELP19A] -~w~To perform a ~h~drive-by~w~, hold~h~ ~k~ ~VELL~ ~w~or~h~ ~k~ ~VELR~ ~w~and fire using~h~ ~k~ ~VEWEP~. - -[HELP19C] -~w~You can only do a drive-by if you have a ~h~sub-machine gun. - -[HELP19D] -~h~Motorbikes ~w~allow you to ~h~shoot forwards~w~ by pressing~h~ ~k~ ~VEWEP~. - -[HELP19F] -~w~You can only shoot forwards if you have a ~h~sub-machine gun. - -[HELP20] -~w~You found a ~h~police bribe!~w~ Collecting them reduces your ~h~wanted level~w~ by one star! - -[HELP21] -~w~Use~h~ ~k~ ~PDCWE~ ~w~to change weapons when on foot. - -[HELP22] -~w~To find ~h~Vincenzo's warehouse~w~, follow the ~h~V blip~w~ on the radar. - -[HELP23] -~w~The blip is a ~h~triangle pointing down~w~, this shows that the ~h~target is lower down~w~ than you are. - -[HELP24] -~w~Hold~h~ ~k~ ~VELL~ ~w~or~h~ ~k~ ~VELR~ ~w~to look ~h~left or right~w~ in a vehicle. Hold both to look ~h~behind. - -[HELP25] -~w~Press~h~ ~k~ ~CVEIW~ ~w~to change ~h~camera modes. - -[HELP26] -~w~Jump into a boat and press~h~ ~k~ ~VEEE~ ~w~to get in. - -[HELP27] -~w~If you are near a boat press~h~ ~k~ ~VEEE~ ~w~to board it. - -[HELP29] -~w~Press~h~ ~k~ ~VEHN~ ~w~to sound the vehicle's ~h~horn. - -[HELP30] -~w~Use~h~ ~k~ ~VECRS~ ~w~to select different ~h~radio stations. - -[HELP33] -~w~Now the hitmen have been paid they'll see the job through, no matter how long it takes. - -[HELP34] -~w~Hold~h~ ~k~ ~VELB~ ~w~to look behind you when in a car. - -[HELP38] -~w~If you kill someone who has a weapon, they will drop it. - -[HELP40] -~w~When on foot use~h~ ~k~ ~PDLOO~ ~w~to look around. - -[HELP58] -~w~Hold~h~ ~k~ ~PDLT~ ~w~to ~h~lock on to a target~w~, and press~h~ ~k~ ~PDFW~ ~w~to fire! - -[HELP59] -~w~While locked on, press~h~ ~k~ ~PDCTL~ ~w~to change targets. - -[HELP60] -~w~Some barrels will explode if you shoot them - but remember to keep your distance! - -[TANK] -~w~Use~h~ ~k~ ~VEWEA~ ~w~to aim the Rhino's cannon, and~h~ ~k~ ~VEWEP~ ~w~to fire. - -[ANSWER] -~w~Press~h~ ~k~ ~ANS~ ~w~to answer your cell phone and~h~ ~k~ ~VEEE~ ~w~to hang up. - -[BOMB] -~w~If you drive a car into the bomb shop 8-Ball will charge you ~h~$500~w~ to attach a ~h~bomb~w~. - -[BRIDGE1] -~w~Callahan Bridge: Under construction. Expected completion date: May 1998 - -[STRIK_1] -~w~You will be able to ride the ~h~ferry~w~ over to Staunton Island, once the strike is over. - -[SPRAY] -~w~Driving your vehicle into ~h~Pay 'n' Spray~w~ will clear your ~h~wanted level~w~ and ~h~repair ~w~and ~h~respray ~w~your vehicle for ~h~$100. - -[S_TRN_1] -~w~You can use the ~h~subway trains~w~ to travel around Liberty City. Press~h~ ~k~ ~VEEE~ ~w~to ~h~enter ~w~or ~h~exit~w~ a train. - -[TUBE1] -~w~When the station opens you will be able to catch a ~h~subway train~w~ to Staunton Island. - -[TUBE2] -~w~You will be able to reach ~h~Francis International Airport ~w~once this station opens. - -[TUBE_2] -~w~To get on a ~h~subway train~w~, press~h~ ~k~ ~VEEE~. - -[SPRAY1] -~w~Parking in the ~h~Pay 'n' Spray~w~ will clear your ~h~wanted level~w~, and ~h~repair ~w~and ~h~respray ~w~your vehicle. The charge is usually ~h~$100~w~ but this time it's free. - -[HELPE31] -~w~New outfits become available to the player during the game, and must be collected from Mr. Benz. - -[HELPE32] -~w~During the game the player will have the opportunity to buy more powerful weapons from Ammu-Nation. - -[HELPCOM] -~w~New outfits unlocked at safehouse! - -[HELP41] -~w~Park in the ~h~Pay 'n' Spray~w~ to respray and repair your car. Follow the ~h~Spray Can blip~w~ on the radar to find the ~h~Pay 'n' Spray. - -[PAGEB1] -~w~The ~h~Pistol~w~ is now available at your safehouse! - -[PAGEB10] -~w~You found all of the hidden packages! Have a ~h~$50,000 cash bonus! - -[EXPO_W] -~w~Love Media need one of these! - -[FERRY_2] -~w~Come back when a ferry is docked. - -[FERRY_3] -~w~Your vehicle won't fit on the ferry! - -[FERRY_4] -~w~Wanted criminals are not allowed on the ferry! - -[FERRY_5] -~w~You need ~h~$25~w~ for a ferry ticket. Come back when you have enough money! - -[FERRY_6] -~w~You can't use a ferry whilst on a mission. - -[FERR_SK] -~w~Press~h~ ~k~ ~TRSK~ ~w~to skip to the end of the trip. - -[FERR_C1] -~w~Ferry to Staunton. Cost: ~h~$25~w~. Press~h~ ~k~ ~TGSUB~ ~w~to buy a ticket. - -[FERR_C2] -~w~Ferry to Portland. Cost: ~h~$25~w~. Press~h~ ~k~ ~TGSUB~ ~w~to buy a ticket. - -[A_H1] -~w~~k~ ~AMBUY~ ~w~to buy. ~n~~k~ ~AMEXI~ ~w~to exit. - -[A_UZI_A] -~w~Ammu-Nation now stock Micro SMGs! - -[AMMU] -~w~Weapons will be available at ~h~Ammu-Nation~w~ once new stock arrives. Sorry for any inconvenience. - -[WANT_A] -~w~When you get ~h~'busted'~w~ you are taken to the nearest police station. - -[WANT_B] -~w~Any mission you were on will be failed, and the cops will take all your weapons and a cash bribe. - -[WANT_C] -~w~You will only be ~h~'busted'~w~ if you have a ~h~wanted level~w~ - represented by a row of stars in the top corner of the screen. - -[WANT_D] -~w~The more stars you have, the harder the Law will try to take you down. - -[WANT_E] -~w~There are ways of reducing your wanted level - keep your eyes open for them. - -[WANT_F] -~w~While driving a vehicle, call in at a ~h~Pay 'n' Spray~w~ to clear your wanted level. - -[HEAL_A] -~w~When you get ~h~'wasted'~w~ you will be taken to the nearest hospital. - -[HEAL_B] -~w~You will lose all your weapons and fail any mission you were on. You will also be charged for health care. - -[HEAL_C] -~w~Your ~h~health~w~ is represented by the red bar in the top right of the screen. - -[HEAL_D] -~w~There are ways of healing or protecting yourself - keep your eyes open for them. - -[H_WE_01] -~w~Walk over weapons to pick them up. They can only be collected when you're on foot. - -[H_WE_02] -~w~If you already have a weapon of that type press~h~ ~k~ ~PUCF~ ~w~to replace your weapon with the new one. - -[PU_CF] -~w~Press~h~ ~k~ ~PUCF~ ~w~to take this weapon. Any weapon of the same type will be lost. - -[CLOTHA] -~h~~k~ ~AMMOV~ ~w~to view outfits. ~h~~k~ ~AMBUY~ ~w~to change into outfit. ~h~~k~ ~AMEXI~ ~w~to cancel. - -[CLOTHB] -~w~You can change clothes here at any time. - -[SIREN_1] -~w~To toggle an ~h~emergency vehicle's sirens~w~ on or off tap~h~ ~k~ ~VEHN~. - -[FHOSE_1] -~w~Hold~h~ ~k~ ~VEWEP~ ~w~to use the water cannon. - -[PHOTO1] -~w~Hold~h~ ~k~ ~PDLT~ ~w~to target with the camera. - -[PHOTO2] -~w~While targeting with the camera, use~h~ ~k~ ~SNZI~ ~w~and~h~ ~k~ ~SNZO~ ~w~to ~h~zoom~w~ in and out. - -[PHOTO3] -~w~Press~h~ ~k~ ~PDFW~ ~w~to take a picture while targeting with the camera. - -[BENZ_H1] -~w~Follow the ~h~Shirt blip~w~ on the radar to find ~h~Mr. Benz clothes shop. - -[BENZ_LE] -~w~The ~h~Leone suit~w~ is now available at the safehouse. - -[BENZ_GU] -~w~The ~h~Avenging Angel outfit~w~ is now available at the safehouse. - -[BENZ_CH] -~w~The ~h~Chauffeur outfit~w~ is now available at the safehouse. - -[BENZ_TU] -~w~The ~h~Tuxedo~w~ is now available at the safehouse. - -[ATUTOR] -~w~Paramedic missions can be toggled on or off by pressing~h~ ~k~ ~TGSUB~. - -[CTUTOR] -~w~Vigilante missions can be toggled on or off by pressing~h~ ~k~ ~TGSUB~. - -[FTUTOR] -~w~Firefighter missions can be toggled on or off by pressing~h~ ~k~ ~TGSUB~. - -[TRATUT1] -~w~Trash Dash missions can be toggled on or off by pressing~h~ ~k~ ~TGSUB~. - -[TTUTOR] -~w~Taxi Driver missions can be toggled on or off by pressing~h~ ~k~ ~TGSUB~. - -[A_COMP2] -~w~Paramedic mission: level 12 complete! Running will never tire you! - -[FIREPRO] -~w~Firefighter mission: level 12 complete! You're now flame retardant! - -[RCHELP] -~w~To ~h~detonate~w~ your RC Car press~h~ ~k~ ~VEWEP~. - -[TAXIH1] -~w~Stop near a ~h~highlighted pedestrian~w~ to pick them up, then drive them to their destination quickly. - -[TIPHLP] -~w~The ~h~tip bar~w~ decreases over ~h~time~w~, and when your taxi gets ~h~damaged. - -[ANG_E3] -~w~Go and look for other Avenging Angels in Chinatown. - -[ANGOUT] -~w~Come back when you're wearing an ~h~Avenging Angel ~w~outfit. - -[ANGCOM2] -~w~Avenging Angel missions Staunton: level 15 complete! Now you won't lose any money if you get busted! - -[ANGCOM3] -~w~Avenging Angel missions Shoreside: level 15 complete! You get a 'special' vehicle at your safehouse! - -[TVOHELP] -~w~Try returning when you're wearing the ~h~Hockey Mask. - -[TIMER] -This is a timed mission, you must complete it before the timer counts down to zero. - -[GARAGE] -Drive the vehicle into the garage, then walk outside. - -[TRASH] -~g~You've junked your wheels real bad! Get your vehicle repaired! - -[WRECKED] -~r~The vehicle is wrecked! - -[SPOOK] -SPOOKOMETER - -[SPOTTED] -~r~They're on to you! - -[REWARD] -~w~Reward: $~1~ - -[GAMEOVR] -GAME OVER - -[Z] -Z-axis value: ~1~ - -[DEAD] -WASTED! - -[BUSTED] -BUSTED! - -[GOODBOY] -~w~$50 Good Citizen Bonus! - -[NUMBER] -~1~ - -[SCORE] -$~1~ - -[LOADCAR] -LOADING VEHICLE... (PRESS L button TO CANCEL) - -[CARSOFF] -Cars turned off. - -[CARS_ON] -Cars turned on. - -[TEXTXYZ] -Writing coordinates to file... - -[CHEATON] -Cheat mode ON - -[CHEATOF] -Cheat mode OFF - -[IMPORT1] -Go outside and wait for your vehicle. - -[KE_PLYR] -Player - -[KE_CTCS] -Contacts - -[KE_WEPS] -Weapons - -[KE_ADR] -Adrenaline - -[KE_BRIB] -Bribe - -[KE_HLTH] -Health - -[KE_KILF] -Kill Frenzy - -[KE_ARM] -Armor - -[KE_USJ] -USJ - -[KE_PKG] -Hidden Package - -[KE_INFO] -Information - -[DAM] -Damage - -[KILLS] -Kills - -[TIME] -Timer - -[STOPS] -Stops - -[BULL] -Bullion - -[EVID] -Evidence - -[HEALTH] -Car Health - -[COLLECT] -Collected - -[LEVEL] -Level - -[SALES] -Sales - -[CITYZON] -Liberty City - -[VICE_C] -Liberty City - -[IND_ZON] -Portland - -[PORT_W] -Callahan Point - -[PORT_S] -Atlantic Quays - -[PORT_E] -Portland Harbor - -[PORT_I] -Trenton - -[S_VIEW] -Portland View - -[CHINA] -Chinatown - -[EASTBAY] -Portland Beach - -[LITTLEI] -Saint Mark's - -[REDLIGH] -Red Light District - -[TOWERS] -Hepburn Heights - -[HARWOOD] -Harwood - -[ROADBR1] -Callahan Bridge - -[ROADBR2] -Callahan Bridge - -[TUNNELP] -Porter Tunnel - -[BOMB1] -8-Ball's Garage - -[COM_ZON] -Staunton Island - -[STADIUM] -Aspatria - -[STADIU2] -Aspatria - -[STADIU3] -Aspatria - -[HOSPI_2] -Rockford - -[UNIVERS] -Liberty Campus - -[CONSTRU] -Fort Staunton - -[PARK] -Belleville Park - -[COM_EAS] -Newport - -[SHOPING] -Bedford Point - -[SHOP2] -Bedford Point - -[SHOP3] -Bedford Point - -[YAKUSA] -Torrington - -[SUB_ZON] -Shoreside Vale - -[AIRPORT] -Francis Intl. Airport - -[PROJECT] -Wichita Gardens - -[SUB_IND] -Pike Creek - -[SWANKS] -Cedar Grove - -[BIG_DAM] -Cochrane Dam - -[SUB_ZO2] -Shoreside Vale - -[SUB_ZO3] -Shoreside Vale - -[CAR_1] -Ambulance - -[CAR_2] -Firetruck - -[CAR_3] -Police - -[CAR_4] -Enforcer - -[CAR_5] -Barracks - -[CAR_6] -Rhino - -[CAR_7] -FBI Cruiser - -[CAR_8] -Securicar - -[CAR_9] -Moonbeam - -[CAR_10] -Coach - -[CAR_11] -Flatbed - -[CAR_12] -Linerunner - -[CAR_13] -Trashmaster - -[CAR_14] -Patriot - -[CAR_15] -Mr Whoopee - -[CAR_16] -Mule - -[CAR_17] -Yankee - -[CAR_18] -Pony - -[CAR_19] -Bobcat - -[CAR_20] -Rumpo - -[CAR_21] -Blista - -[CAR_22] -Dodo - -[CAR_23] -Bus - -[CAR_24] -Sentinel - -[CAR_25] -Cheetah - -[CAR_26] -Banshee - -[CAR_27] -Stinger - -[CAR_28] -Infernus - -[CAR_29] -Esperanto - -[CAR_30] -Kuruma - -[CAR_31] -Stretch - -[CAR_32] -Perennial - -[CAR_33] -Landstalker - -[CAR_34] -Manana - -[CAR_35] -Idaho - -[CAR_36] -Stallion - -[CAR_37] -Taxi - -[CAR_38] -Cabbie - -[CAR_39] -Buggy - -[SINDACO] -Sindacco Argento - -[HEARSE] -Hearse - -[LANDSTK] -Landstalker - -[IDAHO] -Idaho - -[STINGER] -Stinger - -[LINERUN] -Linerunner - -[PEREN] -Perennial - -[SENTINL] -Sentinel - -[PATRIOT] -Patriot - -[FIRETRK] -Firetruck - -[TRASHM] -Trashmaster - -[STRETCH] -Stretch - -[MANANA] -Manana - -[INFERNS] -Infernus - -[BLISTA] -Blista - -[PONY] -Pony - -[MULE] -Mule - -[CHEETAH] -Cheetah - -[AMBULAN] -Ambulance - -[FBICAR] -FBI Cruiser - -[MOONBM] -Moonbeam - -[ESPERAN] -Esperanto - -[TAXI] -Taxi - -[KURUMA] -Kuruma - -[BOBCAT] -Bobcat - -[WHOOPEE] -Mr Whoopee - -[BFINJC] -BF Injection - -[POLICAR] -Police - -[ENFORCR] -Enforcer - -[SECURI] -Securicar - -[BANSHEE] -Banshee - -[PREDATR] -Predator - -[BUS] -Bus - -[RHINO] -Rhino - -[BARRCKS] -Barracks OL - -[BARRACK] -Barracks OL - -[TRAIN] -Train - -[HELI] -Helicopter - -[DODO] -Dodo - -[COACH] -Coach - -[CABBIE] -Cabbie - -[STALION] -Stallion - -[RUMPO] -Rumpo - -[RCBANDT] -RC Bandit - -[BELLYUP] -Triad Fish Van - -[MRWONGS] -Mr Wongs - -[MAFIACR] -Leone Sentinel - -[YARDICR] -Yardie Lobo - -[YAKUZCR] -Yakuza Stinger - -[DIABLCR] -Diablo Stallion - -[COLOMCR] -Cartel Cruiser - -[HOODSCR] -Hoods Rumpo XL - -[AEROPL] -Aeroplane - -[SPEEDER] -Speeder - -[REEFER] -Reefer - -[PANLANT] -Panlantic - -[FLATBED] -Flatbed - -[YANKEE] -Yankee - -[BORGNIN] -Bickle'76 - -[TOYZ] -TOYZ - -[MCLARN] -Lancer MF1 - -[SHELBY] -Hellenbach GT - -[SUBARU] -Impreza WRX - -[SUPRA] -Supra - -[SKYLINE] -Skoiloine - -[CYCLONE] -Cyclone GT - -[ESPRIT] -V8 Ghost - -[MINI] -Tommy - -[HOTROD] -Thunder-Rodd - -[CAMPVAN] -Campaign Rumpo - -[BALLOT] -Ballot Van - -[GHOST] -Ghost - -[ANGEL] -Angel - -[ANGEL2] -Avenger - -[PIZZABO] -Pizzaboy - -[NOODLBO] -Noodleboy - -[FAGGIO] -Faggio - -[FREEWAY] -Freeway - -[SANCHEZ] -Sanchez - -[SANCH2] -Manchez - -[F_PASS1] -~w~Fire extinguished! Reward $~1~ - -[F_RANGE] -~r~The fire truck radio is out of range, get closer to a fire station! - -[C0TGSUB] -R3 button - -[C0VESTR] -left analog stick, or left and right directional buttons - -[C1VESTR] -left analog stick - -[C2VESTR] -left analog stick, or left and right directional buttons - -[C3VESTR] -left analog stick - -[C2VEHB] -~T~ - -[C3VEHB] -L1 button - -[C0VEHN] -L3 button - -[C0VELL] -L2 button - -[C1VELL] -L2 button - -[C2VELL] -L2 button - -[C3VELL] -L2 button - -[C0VELR] -R2 button - -[C1VELR] -R2 button - -[C2VELR] -R2 button - -[C3VELR] -R2 button - -[C0VELB] -L2 button + R2 button - -[C1VELB] -L2 button + R2 button - -[C2VELB] -L2 button + R2 button - -[C3VELB] -L2 button + R2 button - -[C0VECRS] -L1 button - -[C1VECRS] -SELECT button - -[C0VEWEI] -left analog stick up and down, or up and down directional buttons - -[C1VEWEI] -left analog stick up and down - -[C2VEWEI] -left analog stick up and down, or up and down directional buttons - -[C3VEWEI] -left analog stick up and down - -[C0PDCWE] -L2 and R2 buttons - -[C1PDCWE] -L2 and R2 buttons - -[C0PUCF] -L1 button - -[C1PUCF] -L1 button - -[C2PUCF] -~T~ - -[C3PUCF] -~O~ - -[C0PDLT] -R1 button - -[C1PDLT] -R1 button - -[C2PDLT] -R1 button - -[C3PDLT] -L1 button - -[C0PDCTL] -L2 and R2 buttons - -[C1PDCTL] -L2 and R2 buttons - -[C2PDCTL] -L2 and R2 buttons - -[C3PDCTL] -L2 and R2 buttons - -[C0CVEIW] -SELECT button - -[C1CVEIW] -up and down directional buttons - -[C2CVEIW] -SELECT button - -[C3CVEIW] -SELECT button - -[C0PDBAK] -R3 button - -[C1PDBAK] -R3 button - -[C2PDBAK] -R3 button - -[C3PDBAK] -R3 button - -[C0PDLO1] -L button - -[C1PDLO1] -L button - -[C2PDLO1] -L button - -[C3PDLO1] -L button - -[C0PDLO2] -analog stick - -[C2PDLO2] -analog stick - -[C0ANS] -L1 button - -[C1ANS] -L1 button - -[C2ANS] -L1 button - -[C3ANS] -L1 button - -[WEATHER] -FORCE WEATHER - -[WEATHE2] -WEATHER NORMAL - -[GA_4] -~w~Car bombs are $500 each - -[GA_5] -~w~Your vehicle is already fitted with a bomb. - -[GA_6] -~w~Park it, prime it by pressing~h~ ~k~ ~PED_FIREWEAPON~ ~w~and LEG IT! - -[GA_7] -~w~Arm with ~h~ ~k~ ~PED_FIREWEAPON~ button~w~. Bomb will go off when engine is started. - -[GA_8] -~w~Use the detonator to activate the bomb. - -[GA_9] -You collected ~1~ out of 10 special cars - -[GA_10] -Nice one. Here's your $~1~ - -[GA_11] -We got these wheels already. It's worthless to us! - -[GA_12] -Bomb armed - -[GA_13] -Delivered like a pro. Complete the list and there'll be a bonus for you. - -[GA_14] -All the cars. NICE! Here's a little something. - -[GA_15] -~w~Hope you like the new color. - -[GA_17] -~w~New engine and paint job! - -[GA_19] -We're not interested in that model. - -[GA_20] -We got more of these than we can shift. Sorry man, no deal. - -[GA_22] -~w~You cannot fit a bomb to a bike. - -[GA_23] -~w~Car bomb fitted - parts and labor: $500 - -[GA_24] -~w~Car bomb fitted - this one's on the house! - -[CR_1] -~w~The crane cannot lift this vehicle. - -[PU_MONY] -~w~You don't have enough cash. - -[PAUSED] -GAME PAUSED - -[FEB_STA] -Stats - -[FEB_MAP] -Map - -[FEB_BRI] -Briefs - -[FEB_CON] -Controls - -[FEB_AUD] -Audio - -[FEB_DIS] -Display - -[FEB_LAN] -Language - -[FEP_MAP] -MAP - -[FEP_BRI] -BRIEFS - -[FEP_CON] -CONTROLS - -[FEP_AUD] -AUDIO - -[FEP_DIS] -DISPLAY - -[FEP_LAN] -LANGUAGE: - -[FEF_ST1] -Who's the bad man? - -[FEF_ST2] -How much havoc have you caused - -[FEF_BR1] -Lost the plot? - -[FEF_CO1] -Need more control, freak? - -[FEF_SA1] -Keep your place in the pile! - -[FEF_SA2] -Save and load your games - -[FEF_AU1] -Pump up the volume! - -[FEF_AU2] -Select a radio station and sound effect - -[FEF_DI1] -Change the game! - -[FEF_DI2] -Customize the game for your TV - -[FEF_LA1] -What you talking about willis? - -[FEF_LA2] -Choose your preferred parlance - -[FEM_ON] -ON - -[FEM_OFF] -OFF - -[FEM_YES] -Yes - -[FEM_NO] -No - -[FEM_NON] -None - -[FEI_SEL] -Select - -[FEI_TAR] -Target On/Off - -[FEI_BAC] -Back - -[FEI_RES] -Resume - -[FEI_NAV] -Move - -[FEI_BTX] -/ - -[FEI_BTT] -" - -[FEI_STA] -START - -[FEI_BTD] -analog - -[FEI_BTU] -;= - -[FEI_R1B] -L \ R - -[FEI_SCR] -Scroll - -[FEI_ZOO] -Zoom - -[FEH_CON] -CONTROLS - -[FEH_AUD] -AUDIO - -[FEH_LAN] -LANGUAGE - -[FET_SG] -SAVE GAME - -[FEH_DIS] -DISPLAY - -[FEM_OK] -OK - -[FEC_CRO] -Crouch - -[FE_MLG] -MAP LEGEND - -[MAP_LEG] -LEGEND: - -[LG_01] -Player position - -[LG_13] -Ammu-Nation - -[LG_16] -Safe House - -[LG_22] -Pay 'n' Spray - -[LG_23] -Mr. Benz - -[LG_25] -Telephone - -[LG_26] -Wildstyle Radio Station - -[LG_27] -Flash FM Radio Station - -[LG_28] -KChat Radio Station - -[LG_29] -Fever 105 Radio Station - -[LG_30] -VROck Radio Station - -[LG_31] -VCPR Radio Station - -[LG_32] -Espantoso Radio Station - -[LG_33] -Emotion 98.3 Radio Station - -[LG_34] -Wave 103 Radio Station - -[LG_35] -Destination - -[LG_36] -Sun Yard - -[LG_37] -Strip Club - -[LG_38] -EightBall - -[LG_39] -Church Confessional - -[LG_40] -Ma Cipriani - -[LG_41] -Donald Love - -[LG_42] -JD O'Toole - -[LG_43] -Salvatore Leone - -[LG_44] -Maria - -[LG_45] -McAffrey - -[LG_46] -Toshiko Kasen - -[LG_47] -Vincenzo Cilli - -[LG_48] -Bomb Shop - -[LG_49] -Clothes Shop - -[LG_50] -Phil Cassidy's - -[LG_51] -Threat - -[LG_52] -Friend - -[LG_53] -Pick up - -[LG_54] -Player Target - -[FEO_CON] -Controller Setup - -[FEO_AUD] -Audio Setup - -[FEO_DIS] -Display Setup - -[FEO_LAN] -Language Setup - -[FEO_PLA] -Player Setup - -[FEB_PMB] -Previous Mission Briefs: - -[FEC_NA] -NA - -[FEC_CWL] -Cycle Weapon left - -[FEC_CWR] -Cycle Weapon right - -[FEC_CW] -Cycle Weapons - -[FEC_CT] -Cycle Targets - -[FEC_TAR] -Target - -[FEC_MOV] -Movement - -[FEC_CAM] -Camera modes - -[FEC_PAU] -Pause - -[FEC_ENV] -Enter vehicle - -[FEC_JUM] -Jump - -[FEC_ATT] -Attack/Fire weapon - -[FEC_RUN] -Run - -[FEC_FPC] -Look - -[FEC_LL] -Look left - -[FEC_LB1] -Look - -[FEC_LB2] -behind - -[FEC_LB] -Look behind - -[FEC_LR] -Look right - -[FEC_HOR] -Horn - -[FEC_VES] -Vehicle control - -[FEC_RSC] -Radio station cycle - -[FEC_BRA] -Brake or Reverse - -[FEC_HAB] -Hand brake - -[FEC_CAW] -Car weapon - -[FEC_ACC] -Accelerate - -[FEC_SMT] -Special mission - -[FEC_CCF] -CONFIGURATION: - -[FEC_CF1] -SETUP 1 - -[FEC_CF2] -SETUP 2 - -[FEC_CF3] -SETUP 3 - -[FEC_CF4] -SETUP 4 - -[FEC_CDP] -TYPE: - -[FEC_ONF] -ON FOOT - -[FEC_INC] -IN CAR - -[FEC_VIB] -VIBRATION: - -[FEC_ILU] -INVERT LOOK: - -[FEC_SWP] -PLAYER MOVEMENT: - -[FEC_AS] -analog stick - -[FEC_DP] -directional buttons - -[FEA_SFX] -SFX VOLUME: - -[FEA_OUT] -Output: - -[FEA_ST] -Stereo - -[FEA_MNO] -Mono - -[FEA_CTD] -Warning! This feature requires DTS compatible hardware to be connected. Proceed? - -[FEA_DTS] -DTS - -[FEA_RSS] -RADIO STATION: - -[FEA_NON] -Radio Off - -[FED_BRI] -BRIGHTNESS: - -[FED_TRA] -TRAILS: - -[FED_RDR] -RADAR MODE: - -[FED_HUD] -HUD MODE: - -[FED_RDM] -MAP & BLIPS - -[FED_RDB] -BLIPS ONLY - -[FED_DBG] -Menu Debug - -[FED_RID] -Reload IDE - -[FED_RIP] -Reload IPL - -[FED_PAH] -Parse Heap - -[FED_RCD] -CCullZones::RecalculateCullZoneData - -[FED_DFL] -CTheScripts::DbgFlag - -[FED_DLS] -Big White Debug Light Switched - -[FED_SPR] -Show Ped Road Groups - -[FED_SCR] -Show Car Road Grups - -[FED_SCZ] -Show Cull Zones - -[FED_DSR] -Debug Streaming Requests - -[FED_SCP] -gbShowCollisionPolys - -[FEM_MCM] -Memory Card Menu - -[FEM_RMC] -Register MemCard One - -[FEM_TFM] -Test Format MemCard One - -[FEM_TUM] -Test UnFormat MemCard One - -[FEM_CRD] -Create Root Dir - -[FEM_CLI] -Create And Load Icons - -[FEM_FFF] -Fill First File with Guff - -[FEM_SOG] -Save Only The Game - -[FEM_CES] -Check Every 0kB4 Save - -[FEM_STG] -Save The Game - -[FEM_STS] -Save The Game under GTA3 name - -[FEM_CPD] -Create copy protected mag directory - -[FEM_MC2] -Memory Card Menu 2 - -[FEM_TS] -Test Save: - -[FEM_TL] -Test Load: - -[FEM_TD] -Test Delete: - -[FEM_SL0] -Slot0 - -[FEM_SL1] -Save File 1 Not Present - -[FEM_SL2] -Save File 2 Not Present - -[FEM_SL3] -Save File 3 Not Present - -[FEM_SL4] -Save File 4 Not Present - -[FEM_SL5] -Save File 5 Not Present - -[FEM_SL6] -Save File 6 Not Present - -[FEM_SL7] -Save File 7 Not Present - -[ST_TIME] -Current playing time - -[ST_OVTI] -Total playing time - -[NUMSHV] -Number of saves - -[PL_STAT] -Player stats - -[PE_WAST] -People you've wasted - -[PE_WSOT] -People wasted by others - -[CAR_EXP] -Cars exploded - -[BOA_EXP] -Boats destroyed - -[TM_BUST] -Times busted - -[M_WASTE] -Civilian males wasted - -[F_WASTE] -Civilian females wasted - -[PIG_WST] -Cops wasted - -[GNG_WST] -Gang members wasted - -[MED_WST] -Medics wasted - -[FIRE_WS] -Firemen wasted - -[DED_CRI] -Criminals wasted - -[DED_DED] -Deadbeats wasted - -[DED_HOK] -Hookers wasted - -[HEL_DST] -Helicopters destroyed - -[PER_COM] -Percentage completed - -[KGS_EXP] -Kgs of explosives used - -[ACCURA] -Accuracy - -[ELBURRO] -Best 'Turismo' time in secs - -[CAR_CRU] -Cars crushed - -[HED_EX] -Heads exploded - -[ST_HEAD] -Number of headshots - -[BUL_FIR] -Bullets fired - -[BUL_HIT] -Bullets that hit - -[SPRAYIN] -Sprayings - -[TM_DED] -Hospital visits - -[ST_GANG] -Least favorite gang - -[ST_GNG1] -Leones - -[ST_GNG2] -Triads - -[ST_GNG3] -Diablos - -[ST_GNG4] -Yakuza - -[ST_GNG5] -Yardies - -[ST_GNG6] -Colombians - -[ST_GNG7] -Hoods - -[ST_GNG8] -Forellis - -[ST_GNG9] -Sindaccos - -[DAYSPS] -Days passed in game - -[MMRAIN] -Mm rain fallen - -[ST_STAR] -Total number of wanted stars attained - -[ST_STGN] -Total number of wanted stars evaded - -[TOT_DIS] -Total distance travelled (miles) - -[TOTDISM] -Total distance travelled (m) - -[DISTBIK] -Dist. travelled by bike (miles) - -[DISTBIM] -Distance travelled by bike (m) - -[DISTHEL] -Dist. travelled by helicopter (miles) - -[DISTHEM] -Distance travelled by helicopter (m) - -[DISTBOA] -Dist. travelled by boat (miles) - -[DISTBOM] -Distance travelled by boat (m) - -[ST_WHEE] -Longest wheelie time (secs) - -[ST_STOP] -Longest stoppie time (secs) - -[ST_2WHE] -Longest 2 wheels time (secs) - -[ST_WHED] -Longest wheelie distance (m) - -[ST_STOD] -Longest stoppie distance (m) - -[ST_2WHD] -Longest 2 wheels distance (m) - -[ST_FAPD] -Longest face plant distance (m) - -[FEST_HV] -Highest 'Vigilante' level - -[FIRELVL] -Highest 'Firefighter' level - -[ST_STOR] -Stores knocked off - -[ST_ASSI] -Assassination contracts completed - -[ST_FTIM] -Flight hours - -[ST_FASH] -Fashion budget - -[ST_WEAP] -Weapon budget - -[ST_PROP] -Property budget - -[ST_DAMA] -Property destroyed - -[ST_AUTO] -Auto repair and painting budget - -[MXCARD] -Max. insane jump dist. (ft) - -[MXCARJ] -Max. insane jump height (ft) - -[MXCARDM] -Max. insane jump dist. (m) - -[MXCARJM] -Max. insane jump height (m) - -[MXFLIP] -Max. insane jump flips - -[MXJUMP] -Max. insane jump rotation - -[FST_MFR] -Most favorite radio station - -[FST_LFR] -Least favorite radio station - -[BSTSTU] -Best insane stunt so far: - -[INSTUN] -Insane stunt - -[PRINST] -Perfect insane stunt - -[DBINST] -Double insane stunt - -[DBPINS] -Perfect double insane stunt - -[TRINST] -Triple insane stunt - -[PRTRST] -Perfect triple insane stunt - -[QUINST] -Quadruple insane stunt - -[PQUINS] -Perfect quadruple insane stunt - -[NOSTUC] -No insane stunts completed - -[NOUNIF] -Unique jumps completed - -[NOUNGM] -Total unique Jumps - -[NMISON] -Mission attempts - -[NMMISP] -Missions passed - -[PASDRO] -Passengers dropped off - -[MONTAX] -Cash made in taxi - -[CARSLD] -Cars sold - -[MONCAR] -Cash made selling cars - -[BIKESLD] -Bikes sold - -[MONBIKE] -Cash made selling bikes - -[CARSEXP] -Cars found for 'Love Media' - -[SLTVLVL] -Highest 'Slash TV' level - -[SLTVKIL] -Opponents killed in 'Slash TV' - -[MONTRS] -Cash made collecting trash - -[HTMKLD] -Hitmen wasted - -[GDAMSP] -Number of 'Avenging Angel' missions passed - -[HGAJD] -Total 'Avenging Angel' justice dished out - -[BNDRACE] -RC Races - -[FSTTRT] -Most time left on 'Wong Side of the Track' - -[HGHTRC] -Most cash on 'Wong Side of the Track' - -[FSTHRT] -Fastest helicopter race time - -[BHLPOS] -Best helicopter race position - -[TMSOUT] -Outfit changes - -[BSRPS0] -'Low Rider Rumble' - -[BSRPS1] -'Deimos Dash' - -[BSRPS2] -'Wi-Cheetah Run' - -[BSRPS3] -'Red Light Racing' - -[BSRPS4] -'Torrington TT' - -[BSRPS5] -'Gangsta GP' - -[DBIKE0] -Course 1 - -[DBIKE1] -Course 2 - -[DBIKE2] -Course 3 - -[DBIKE3] -Course 4 - -[DBIKE4] -Course 5 - -[DBIKE5] -Course 6 - -[DBIKE6] -Course 7 - -[DBIKE7] -Course 8 - -[DBIKE8] -Course 9 - -[DBIKE9] -Course 10 - -[DBIKEHE] -'Bump & Grinds' - -[DBIKEBP] -Best position - -[DBIKEFL] -Fastest lap - -[DBIKEFT] -Fastest time - -[ST_PHOT] -Photos taken - -[ST_PIZZ] -Pizzas delivered - -[ST_NOOD] -Noodles delivered - -[MO_TOUR] -Cash made from tourists - -[TA_TOUR] -Tourists taken to tourist spots - -[SC_SCRA] -Highest score in 'Scrapyard Challenge' - -[SC_9MM] -Highest score in '9mm Mayhem' - -[SC_SCOO] -Highest score in 'Scooter Shooter' - -[DAYPLC] -Daily police spending - -[SEAGULL] -Seagulls sniped - -[CRIMRA] -CRIMINAL RATING - -[CHASE] -Highest media attention - -[CHASE1] -Ignored - -[CHASE2] -Boring - -[CHASE3] -Vaguely interesting - -[CHASE4] -Local paper Page 7 - -[CHASE5] -Front page of local paper - -[CHASE8] -Local TV 3am - -[CHASE9] -Local TV news - -[CHASE10] -Local TV Live coverage - -[CHASE11] -UFA Today page 12 - -[CHASE12] -UFA Today page 4 - -[CHASE13] -Picture in UFA Today - -[CHASE14] -National TV 4am - -[CHASE15] -National TV news - -[CHASE16] -National TV live coverage - -[CHASE17] -International news - -[CHASE18] -National crisis - -[CHASE19] -International crisis - -[CHASE20] -World event - -[CHASE21] -Stuff of legends - -[WHEEL01] -~w~TWO WHEELS BONUS: $~1~ Distance: ~1~.~1~m Time: ~1~ seconds - -[WHEEL02] -~w~TWO WHEELS BONUS: $~1~ Distance: ~1~ feet Time: ~1~ seconds - -[WHEEL06] -~w~WHEELIE BONUS: $~1~ Distance: ~1~.~1~m Time: ~1~ seconds - -[WHEEL07] -~w~WHEELIE BONUS: $~1~ Distance: ~1~ feet Time: ~1~ seconds - -[WHEEL11] -~w~STOPPIE BONUS: $~1~ Distance: ~1~.~1~m Time: ~1~ seconds - -[WHEEL12] -~w~STOPPIE BONUS: $~1~ Distance: ~1~ feet Time: ~1~ seconds - -[GMSTOR] -Game Store - -[PREBRF] -Previous Briefs - -[CNTLS] -Controls - -[MUSMEN] -Music/SFX - -[GAMSET] -Game Settings - -[LANGUA] -Language - -[DSPLAY] -Display - -[DEBUGM] -Debug Menu - -[QUITOP] -Quit Options - -[CONTRL] -Control Configuration - -[SET1EN] -SetUp 1. Enabled - -[SET1] -SetUp 1. - -[SET2EN] -SetUp 2. Enabled - -[SET2] -SetUp 2 - -[SET3EN] -SetUp 3. Enabled - -[SET3] -SetUp 3 - -[SET4EN] -SetUp 4. Enabled - -[SET4] -SetUp 4 - -[GOBACK] -GoBack - -[SOUND] -SOUND - -[MUSVOL] -Music Volume - -[SFXVOL] -SFX Volume - -[SCROPT] -SCREEN OPTIONS - -[CTRSCR] -Center Screen - -[SCRFOR] -Screen format - -[GMSVLQ] -GAME SAVE-LOAD-QUIT - -[GMREST] -Restart Game - -[GMLOAD] -Load Game - -[GMSAVE] -Save Game - -[NOGMSV] -Can save only at your hideout. - -[DLFILE] -Delete Grand Theft Auto Files - -[CHFILE] -CHOOSE FILE TO LOAD - -[CHFIDL] -CHOOSE FILE TO DELETE - -[SVCONF] -SAVE CONFIRMATION - -[SVFNAM] -Your saved file name is - -[LANGSL] -LANGUAGE SELECTION - -[ENGLIS] -English - -[GERMAN] -German - -[ITALIA] -Italian - -[FRENCH] -French - -[SPAIN] -Spanish - -[RELIDE] -ReLoadIde - -[RELIPE] -ReLoadIpl - -[PARSHP] -Parse Heap - -[DBGFON] -CTheScripts::DbgFlag On - -[DBFOFF] -CTheScripts::DbgFlag Off - -[BGWHON] -Big White Debug Light Switched On - -[BGWOFF] -Big White Debug Light Switched Off - -[DSTRON] -Debug Streaming Requests On - -[DSTROFF] -Debug Streaming Requests Off - -[PDRGON] -ShowPedRoadGroups On - -[PRGOFF] -ShowPedRoadGroups Off - -[CRRGON] -ShowCarRoadGroups On - -[CRGOFF] -ShowCarRoadGroups Off - -[CLZOON] -Show Cull Zones On - -[CLZOOF] -Show Cull Zones Off - -[SHPLON] -gbShowCollisionPolys On - -[SHPLOF] -gbShowCollisionPolys Off - -[CULREC] -CCullZones::RecalculateCullZoneData() - -[FORMM1] -FormatMemCard 1 (teststuff) - -[UNFRM1] -UnFormatMemCard 1 (teststuff) - -[GORLEV] -Gore Level - -[SICASS] -Sick Fuck - -[SICSIC] -Sick Fucker - -[SCASSL] -Sick Fuck Selected - -[SCSCSL] -Sick Fucker Selected - -[PRVMEN] -Previous Mission Briefs - -[FORMEN] -Format Menu - -[MEMTST] -MemoryCardTest screen - -[REGCAR] -Register MemoryCard One - -[TEFONE] -Test Format MemCard One - -[TEUFON] -Test UnFormat MemCard One - -[CRROOT] -CreateRootDir - -[CRLDIC] -Create and Load Icons - -[FLFSGF] -Fill First File With Guff - -[PUSAVE] -Save Only the game - -[CHEVOK] -CheckEveryOkB4Save - -[SVGMON] -SaveTheGame - -[CNTSAV] -Can't save the game. On a mission. - -[CNCSAV] -Can't save the game. You're in a car. - -[CRMGSV] -Create copy protected magazine directory - -[MGSVCN] -MagazineDirectory Created - -[MGSVNC] -MagazineDirectory Not Created - -[YES] -Yes - -[NO] -No - -[X] -x - -[LAST] -Last message. - -[GS_STYL] -GAME STYLE: - -[GS_FFAL] -FREE FOR ALL - -[GS_LOC] -GAME LOCATION: - -[GS_SLMT] -SCORE LIMIT: - -[GS_KLMT] -KILL LIMIT: - -[GS_TLMT] -TIME LIMIT: - -[GS_ULMT] -UNLIMITED - -[GS_PRUP] -POWERUPS: - -[GS_RACE] -RACE: - -[GS_LAPS] -LAPS: - -[GS_OK] -OK - -[FEH_MP] -MULTIPLAYER - -[FEMP_J] -Join - -[FEMP_CS] -CHARACTER: - -[FEMP_PS] -PLAYER SETTINGS - -[FEMP_GS] -GAME SELECT - -[FEMP_NG] -START A NEW GAME - -[SVRLIST] -HOST LIST - -[SVRINFO] -HOST DETAILS - -[SVRNAME] -NAME: - -[NO_SVRS] -LOOKING FOR HOSTS - -[NO_PLRS] -LOOKING FOR PLAYERS - -[NO_NAME] -NO NAME - -[NO_WIFI] -In order to play the multiplayer games you must first set the WLAN switch to ON. - -[FEMP_SG] -START GAME - -[FEMP_S] -Start - -[FEMP_WS] -Waiting for host to start game... - -[SVRLOST] -Communication with the host machine has been lost. - -[NOSVRS] -A host machine could not be found. - -[MP_WARN] -Starting a multiplayer game will cause all progress since the last save game to be lost. - -[FEDS_XB] -Select - -[FEDS_TB] -Back - -[FEDS_ST] -START button - RESUME - -[FEST_OO] -out of - -[FED_SUB] -SUBTITLES: - -[FEC_TUC] -Turret control - -[FEC_SM3] -Special mission trigger (R3 button) - -[FEC_RS3] -Radio station cycle (L3 button) - -[FEC_HO3] -Horn (L3 button) - -[FIRST] -~g~1st - -[SECOND] -~g~2nd - -[THIRD] -~g~3rd - -[FOURTH] -~g~4th - -[NOCONTE] -Please connect an analog controller (DUALSHOCK®) or analog controller (DUALSHOCK®2) to controller port 1 to continue. - -[WRCONT] -The controller connected to controller port 1 is an unsupported controller. GTA: Liberty City Stories requires an analog controller (DUALSHOCK®) or analog controller (DUALSHOCK®2). - -[WRCONTE] -The controller connected to controller port 1 is an unsupported controller. GTA: Liberty City Stories requires an analog controller (DUALSHOCK®) or analog controller (DUALSHOCK®2). - -[WRONGCD] -Incorrect disc. Please insert the GTA:Liberty City Stories disc. - -[NOCD] -The disc tray is empty. Please insert the GTA:Liberty City Stories disc. - -[OPENCD] -The disc tray is open. Please close the disc tray. - -[RESTART] -Starting new game. - -[GA_3] -~w~$100 to respray! - -[GA_1A] -~w~Come back when you're not so busy... - -[AWAY] -~r~He's clean out of here! - -[GA_6B] -~w~Park it, prime it by pressing~h~ ~k~ ~PDFW~ ~w~and LEG IT! - -[GA_7B] -~w~Arm with~h~ ~k~ ~PDFW~~w~. Bomb will go off when engine is started. - -[FESZ_CA] -Cancel - -[FESZ_QU] -Quit - -[FESZ_L1] -Game saved successfully! - -[FESZ_L2] -Your saved filename is: - -[FESZ_OK] -OK - -[FES_LGA] -Load Game - -[FES_DGA] -DELETE SAVE DATA - -[FES_CAN] -Cancel - -[FESZ_QL] -All unsaved progress in your current game will be lost. Proceed with loading? - -[FESZ_QD] -Proceed with deleting this saved game? - -[FESZ_QO] -Proceed with overwriting this saved game? - -[FESZ_QR] -Are you sure you want to start a new game? All progress since the last save game will be lost. Proceed? - -[FESZ_QS] -PROCEED WITH SAVE ? - -[T4X4_2A] -~g~You have ~y~2 minutes~g~ to collect ~y~12~g~ checkpoints! ~g~You may collect them in ~y~ANY ORDER. - -[T4X4_2B] -~1~ of 12! - -[T4X4_2C] -~y~PASS THROUGH~g~ the first checkpoint to start the timer. ~g~Each checkpoint will credit you with ~y~10 SECONDS~g~. - -[T4X4_F] -~r~You bailed! Too tough for you?! - -[UPSIDE] -~r~You flipped your wheels! - -[FEST_DF] -Dist. travelled on foot (miles) - -[FEST_DC] -Dist. travelled by car (miles) - -[FESTDFM] -Distance travelled on foot (m) - -[FESTDCM] -Distance travelled by car (m) - -[FEST_LS] -People saved in an Ambulance - -[FEST_CC] -Criminals killed on Vigilante Mission - -[FEST_FE] -Total fires extinguished - -[FEST_LF] -Longest flight in Dodo - -[FEST_BD] -Best time for bomb defusal - -[FEST_RP] -Rampages passed - -[FEST_CN] -Most time left in 'Karmageddon' - -[FEST_TR] -Most kills in 'RC Triad Take-Down' - -[FEST_MP] -Missions passed - -[FEST_H0] -Most checkpoints - -[FEST_GC] -Gang Cars Totalled: - -[USJ] -~w~UNIQUE STUNT BONUS! - -[USJ_FAL] -~w~UNIQUE STUNT FAILED! - -[HM1_1] -~g~Ice 20 Purple Nines in 2 minutes 30 seconds. - -[KM1_8A] -Press the~h~ ~k~ ~PDFW~ ~w~to ~h~activate the bomb,~w~ remember to get out of the way. - -[KM1_8D] -Press the~h~ ~k~ ~PDFW~ ~w~to ~h~activate the bomb,~w~ remember to get out of the way. - -[RATNG1] -UPSTANDING CITIZEN - -[RATNG2] -NOBODY SPECIAL - -[RATNG3] -LITTERER - -[RATNG4] -SHOPLIFTER - -[RATNG5] -VANDAL - -[RATNG6] -DO BOY - -[RATNG7] -PICKPOCKET - -[RATNG8] -KLEPTO - -[RATNG9] -SNITCH - -[RATNG10] -RAT - -[RATNG12] -SCAM ARTIST - -[RATNG13] -TRICKSTER - -[RATNG14] -NUMBERS RUNNER - -[RATNG15] -HUSTLER - -[RATNG16] -BULLY - -[RATNG17] -RIFF-RAFF - -[RATNG18] -SCALAWAG - -[RATNG19] -RUFFIAN - -[RATNG20] -OUTLAW - -[RATNG21] -THUG - -[RATNG22] -DROP MAN - -[RATNG23] -SA GOON - -[RATNG24] -GOON - -[RATNG25] -JAILBIRD - -[RATNG26] -EX-CON - -[RATNG27] -FELON - -[RATNG28] -BAG MAN - -[RATNG29] -WISEGUY - -[RATNG30] -WHEELMAN - -[RATNG31] -HIRED MUSCLE - -[RATNG32] -HATCHETMAN - -[RATNG33] -HEADHUNTER - -[RATNG34] -ENFORCER - -[RATNG35] -RONIN - -[RATNG36] -FIXER - -[RATNG37] -HITMAN - -[RATNG38] -ASSOCIATE - -[RATNG39] -BUTCHER - -[RATNG40] -CLEANER - -[RATNG41] -ASSASSIN - -[RATNG42] -CONSIGLIERE - -[RATNG43] -MADE MAN - -[RATNG44] -RIGHT-HAND MAN - -[RATNG45] -EXECUTIONER - -[RATNG46] -LIEUTENANT - -[RATNG47] -UNDERBOSS - -[RATNG48] -CAPO - -[RATNG49] -BOSS - -[RATNG50] -KINGPIN - -[RATNG51] -DON - -[RATNG52] -GODFATHER - -[TRAIN_1] -Kurowski Station - -[TRAIN_2] -Rothwell Station - -[TRAIN_3] -Baillie Station - -[SUBWAY1] -Portland Station - -[SUBWAY2] -Rockford Station - -[SUBWAY3] -Staunton South Station - -[SUBWAY4] -Shoreside Terminal - -[DETON] -DETONATION - -[RCBOMB1] -RC Triad Take-Down - -[RECORD] -~w~New record - ~1~ kills! - -[NRECORD] -~r~You didn't beat the previous record of ~1~ kills! - -[RCBOMBF] -~r~You got out of the van! - -[RC_2] -You have 2 minutes to blow up as many Mafia Gang Cars as possible! - -[RC_3] -You have 2 minutes to blow up as many Yakuza Gang Cars as possible! - -[RC_4] -You have 2 minutes to blow up as many Yardie Gang Cars as possible! - -[RC_5] -You have 2 minutes to blow up as many Hood Gang Cars as possible! - -[RC_6] -You have 2 minutes to blow up as many Cartel Gang Cars as possible! - -[RAMPKA] -~w~You need a vehicle for this rampage. - -[PAGE_00] -. - -[TURTXT] -Mobile Massacre! - -[TURPASS] -~w~Massacre Passed! - -[TUR3D] -~w~Car Health - -[FTFRENZ] -Firetruck Frenzy - -[WELCOME] -WELCOME TO - -[TSCORE] -~w~TOTAL EARNINGS: $~1~ - -[PBOAT_1] -Press~h~ ~k~ ~VEWEP~ ~w~to fire the boat cannons. - -[HM2_1] -Use the RC buggies to destroy the armored cars. Press~h~ ~k~ ~VEWEP~ ~w~to detonate. - -[HM2_1A] -Use the RC buggies to destroy the armored cars. Press~h~ ~k~ ~VEWEP~ ~w~to detonate. - -[HM2_2] -~r~You failed to destroy all the armored cars! - -[HM2_6] -~g~Armored Car destroyed! - -[FESZ_UC] -CANCEL - -[FEDS_SM] -L1,R1-CHANGE MENU - -[FEDS_AS] -;=-CHANGE SELECTION - -[FEDSAS2] -<>-CHANGE SELECTION - -[FEDS_SS] -L1,R1-CHANGE SELECTION - -[FEDSSC1] -;-FASTER SCROLLING - -[FEDSSC2] -=-STOP SCROLLING - -[FES_LOF] -Load Failed. - -[FES_SLO] -SAVE FILE - -[FES_ISC] -IS CORRUPTED - -[FESZ_TI] -SAVE Z1 - -[FESZ_SA] -Save game - -[MC_LDFL] -Load Failed! - -[MC_NWRE] -Now Restarting Game. - -[BIFP_1] -~w~Ouch! Face plant distance: ~1~.~1~m - -[BIFP_1F] -~w~Ouch! Face plant distance: ~1~ft - -[DIAB1_5] -RACE TIME: - -[F_FAIL1] -~r~Firefighter mission ended. - -[F_CANC] -~r~Firefighter mission cancelled! - -[F_FAIL3] -~r~You're too late! - -[F_FAIL4] -~r~One of the passengers has died! - -[F_FAIL5] -~r~One of the cars has been destroyed! - -[F_FAIL6] -~r~The car has been destroyed! - -[F_EXTIN] -Fires - -[A_CANC] -~r~Paramedic mission cancelled! - -[ALEVEL] -~w~Paramedic Mission Level ~1~ - -[A_FAIL1] -~r~Paramedic mission ended. - -[FEST_HA] -Highest 'Paramedic' level - -[A_SAVES] -~w~PEOPLE SAVED: ~1~ - -[C_KILLS] -~w~CRIMINALS KILLED: ~1~ - -[F_START] -~b~Burning vehicle ~w~reported in the ~a~ area. Go and extinguish the fire. - -[F_STAR1] -~b~Burning vehicles ~w~reported in the ~a~ area. Go and extinguish the fires. - -[F_REWAR] -~w~FIRE EXTINGUISHED! Level ~1~ completed! Reward: $~1~ - -[CINCAM] -Cinematic Camera - -[FEDS_AM] -<>-CHANGE MENU - -[KABOOM] -KABOOOM! - -[SPLAT] -SPLAT! - -[PANCAK] -PANCAKED! - -[SOAKED] -SOAKED! - -[HEAD] -Head Radio - -[DBL_CLF] -Double Clef FM - -[FLASHB] -Flashback FM - -[RISE] -Rise FM - -[LIPS] -Lips 106 - -[CHAT] -Chatterbox FM - -[K_JAH] -K-Jah Radio - -[GAM_FM] -Game Radio FM - -[MSX_FM] -MSX FM - -[GA_2] -~w~New engine and paint job: $100 - -[PERPIC] -Hidden Packages found - -[GA_21] -~w~You cannot store any more vehicles in this garage. - -[CHEAT1] -Cheat activated - -[CHEAT2] -Weapon cheat - -[CHEAT3] -Health cheat - -[CHEAT4] -Armor cheat - -[CHEAT5] -Wanted level cheat - -[CHEAT6] -Money cheat - -[CHEAT7] -Weather cheat - -[FEDS_BA] -" button - BACK - -[FED_WIS] -WIDE SCREEN: - -[USJ_ALL] -~w~ALL UNIQUE STUNTS COMPLETED! - -[JAN] -Jan - -[FEB] -Feb - -[MAR] -Mar - -[APR] -Apr - -[MAY] -May - -[JUN] -Jun - -[JUL] -Jul - -[AUG] -Aug - -[SEP] -Sept - -[OCT] -Oct - -[NOV] -Nov - -[DEC] -Dec - -[DEFDT] ---:---:---- --:--:-- - -[BONUS] -~g~BONUS $~1~ - -[TAXI_M] -'Taxi Driver' - -[COP_M] -'Vigilante' - -[FIRE_M] -'Firefighter' - -[AMBUL_M] -'Paramedic' - -[HJ_IS] -~w~INSANE STUNT BONUS: $~1~ - -[HJ_PIS] -~w~PERFECT INSANE STUNT BONUS: $~1~ - -[HJ_DIS] -~w~DOUBLE INSANE STUNT BONUS: $~1~ - -[HJ_PDIS] -~w~PERFECT DOUBLE INSANE STUNT BONUS: $~1~ - -[HJ_TIS] -~w~TRIPLE INSANE STUNT BONUS: $~1~ - -[HJ_PTIS] -~w~PERFECT TRIPLE INSANE STUNT BONUS: $~1~ - -[HJ_QIS] -~w~QUADRUPLE INSANE STUNT BONUS: $~1~ - -[HJ_PQIS] -~w~PERFECT QUADRUPLE INSANE STUNT BONUS: $~1~ - -[HJBAD] -~w~Terrible landing - you almost won $~1~! - -[HJUP] -Takeoff health: ~1~ - -[HJDOWN] -Landing health: ~1~ - -[FESZ_LS] -Load Successful. - -[CEDBUG1] -!!Debug Event!! - -[CEDBUG2] -!!Player is dead or not playing!! - -[CEDBUG3] -!!Player is in INDUSTRIAL level!! - -[CEDBUG4] -Trying to make COLLECTIVE with ~1~ - -[CEDBUG5] -Debug Value: ~1~ - -[CEDBUG6] -Debug Values: A: ~1~ B: ~1~ - -[CEDBUG7] -Debug Values: A: ~1~ B: ~1~ C: ~1~ - -[LINE] -This is Line ~1~ - -[MRACE08] -~w~Come back when you've got some wheels! - -[MRACE01] -~w~Wait for some rivals and then sound your horn to start the race! - -[MRACE02] -~w~The race will start when the first player toots his horn - -[MRACE05] -~r~YOU LOSE! - -[MRACE07] -~r~You're dead! You loser! - -[MRACE06] -~r~You wimp! You retired! - -[MRACE09] -~w~Get back in the race! - -[MRACE10] -~w~You've won (a one horse race)! - -[MRACEPO] -Position - -[MRCPU03] -YOU SET EVERYONE ON FIRE! - -[MRCPU04] -YOU ARE ON FIRE! - -[TRASH1] -Trash Dash - -[TRASH1A] -~w~Collect the dumpsters and get the trash back to the junk yard. - -[TRASH1C] -~w~The timer will start when you collect a dumpster. You may collect them in ANY ORDER. - -[TRASH1G] -~r~Too tough for you? You're garbage! - -[TRASH1H] -~r~You've run out of time! - -[TRASH1J] -~r~You've strayed too far from your route! - -[TRASH1K] -~w~Collect the ~g~dumpsters! - -[TRASH1L] -~w~Get back to the ~y~junk yard! - -[TRASH1M] -~w~Trash collected! +~1~ seconds - -[PCJINFO] -~w~Hit all 25 ~y~Checkpoints~w~ within ~1~ seconds. - -[PCJFAIL] -~r~You Failed to beat the time of ~1~ seconds! - -[PCJPROM] -~w~You have ~1~ seconds to get back on the ~b~bike! - -[PCJPRO1] -~w~You have ~1~ second to get back on the ~b~bike! - -[PCJDEST] -~r~Bike destroyed! - -[PCJRET] -~r~You failed to return to your bike. - -[PCJTIME] -~r~You ran out of time! - -[PCJCHEC] -~w~Checkpoint ~1~ out of ~1~ - -[TRRACE1] -~w~Get a time extension for each checkpoint you pass through... - -[TRRACE3] -~w~You finished with ~1~ seconds to spare! - -[TRRACE4] -~w~You reached ~1~ checkpoints out of ~1~ checkpoints first. - -[TRRACE5] -~w~That gives you $~1~! - -[TRRACE6] -~w~WELL DONE! You hit all checkpoints first! You get a bonus $1000! - -[TRRACE7] -~r~You've left the track! - -[TRRACE8] -~r~Your bike was destroyed! - -[TRRACE9] -~r~You failed to return to your bike in time! - -[TRRAC10] -~r~You lost your bike! - -[TRRAC11] -~r~You ran out of time! - -[ANG] -Avenging Angels - -[ANG_1] -~w~Hey, friend! We're gonna clean up crime in this city! - -[ANG_2A] -Press~h~ ~k~ ~TGSUB~ ~w~to join the Avenging Angels. - -[ANG_3] -~w~You and I could take this town apart on our own. But, er... let's get some help, just in case. - -[ANG_3A] -~w~Stop near other Avenging Angels to have them join your gang. - -[ANG_4] -~w~Yo! I joined this chicken shit outfit to kick ass. So let's go! - -[ANG_5] -~w~I'm your man... - -[ANG_6] -~w~Let's burn down some scum! - -[ANG_7] -~w~Kicking ass rocks! - -[ANG_7A] -~w~Can you dig it? - -[ANG_7B] -~w~We don't want no bully-boy gangs on our streets! - -[ANG_7C] -~w~Not in my backyard! - -[ANG_7D] -~w~It's time we fought back! - -[ANG_7E] -~w~We're the law in this town! - -[ANG_8] -Time Remaining - -[ANG_9] -~w~Time Extended! - -[ANG_10] -~r~You ran out of time! - -[ANG_11] -~w~There's a group of 'undesirables', loitering nearby... let's teach 'em a lesson. - -[ANG_12] -~w~There's a lynch mob raising hell in the streets. Let's pacify these idiots! - -[ANG_13] -~w~What's this city coming to? People think they have a right to free assembly? We'll show them! - -[ANG_13A] -~w~A nasty looking gang have been spotted bullying people in the streets... - -[ANG_14] -~w~Another crime's been reported... let's roll! - -[ANG_16] -~w~Some people have been spotted parking illegally. COME ON! - -[ANG_16A] -~w~There's some guys I know, who're always up to no good. It's about time we gave them a whipping. - -[ANG_OBJ] -~w~Take out the troublesome ~r~gang. - -[ANG_17] -~w~Good work, friend! Thanks to you, this neighborhood is crime free. At least for now... - -[ANG_18] -~w~They're bailing out! - -[ANG_19] -~w~Find an Avenging Angel and stop near them to get your next mission. - -[ANG_20] -~w~They're making a run for it! - -[ANG_21] -~w~Don't let them get away! - -[VIC1] -Home Sweet Home - -[VIC2] -Slacker - -[VIC3] -Dealing Revenge - -[VIC4] -Snuff - -[VIC5] -Smash and Grab - -[VIC6] -Hot Wheels - -[VIC7] -The Portland Chainsaw Masquerade - -[MAR1] -Shop 'til you Strop - -[MAR2] -Taken for a Ride - -[MAR3] -Booby Prize - -[MAR4] -Biker Heat - -[MAR5] -Overdose of Trouble - -[SAL1] -The Offer - -[SAL2] -Ho Selecta! - -[SAL3] -Frighteners - -[SAL4] -Rollercoaster Ride - -[SAL5] -Contra-Banned - -[SAL6] -Sindacco Sabotage - -[SAL7] -The Trouble with Triads - -[SAL8] -Driving Mr Leone - -[JDT1] -Bone Voyeur! - -[JDT2] -Don in 60 Seconds - -[JDT3] -A Volatile Situation - -[JDT4] -Blow up 'Dolls' - -[JDT5] -Salvatore's Salvation - -[JDT6] -The Guns of Leone - -[JDT7] -Calm before the Storm - -[JDT8] -The Made Man - -[MAC1] -Snappy Dresser - -[MAC2] -Big Rumble in Little China - -[MAC3] -Grease Sucho - -[MAC4] -Dead Meat - -[MAC4_0] -Casa - -[MAC5] -No Son of Mine - -[SALH1] -Rough Justice - -[SALH2] -Dead Reckoning - -[SALH3] -Shogun Showdown - -[SALH4] -The Shoreside Redemption - -[SALH4_V] -~r~v1.1 - -[SALH5] -The Sicilian Gambit - -[SALH5_V] -~r~v1.1 - -[DONH1] -Panlantic Land Grab - -[DONH2] -Stop the Press - -[DONH3] -Morgue Party Resurrection - -[DONH4] -No Money, Mo' Problems - -[DONH5] -Bringing the House Down - -[DONH6] -Love on the Run - -[TOSH1] -More Deadly than the Male - -[TOSH2] -Cash Clash - -[TOSH2F0] -~r~A van reached the Yakuza compound! - -[TOSH2F1] -~r~The convoy reached the Yakuza compound! - -[TOSH2F2] -~r~You didn't destroy the security vans! - -[TOSH2M0] -~w~That's one down! - -[TOSH2M1] -~w~Another one down! - -[TOSH3] -A Date with Death - -[TOSH4] -Cash in Kazuki's Chips - -[PO_MOB1] -~w~Toni? It's your Ma! - -[POMOB1A] -~w~How long have you been back in town? - -[POMOB1B] -~w~How come you don't come and see me? - -[POMOB1C] -~w~What's wrong with you? - -[POMOB1D] -~w~I'm your mother for her holiness'-sake! Come on. - -[PO_MOB2] -~w~Hello fido! It's Maria. - -[PO_MOB3] -~w~Hey Toni! It's JD. - -[POMOB3A] -~w~I hear it all over: you're headed for big things. - -[POMOB3B] -~w~I just hope you don't go forgetting your old pal JD when you get to the top. Right? - -[POMOB4A] -~w~What the hell do you want? - -[POMOB4B] -~w~Someone to pick up your laundry? Or wipe your ass? - -[POMOB4C] -~w~Don't be like that. Listen, I feel bad about everything... - -[POMOB4F] -~w~A nice slice of arsenic pie? - -[POMOB4G] -~w~Forget about it. - -[POMOB4I] -~w~Salvatore heard about it, and told me we both need to grow up. - -[POMOB4J] -~w~This is me growing up. I'm sorry. Come on. - -[PO_MOB5] -~w~Toni? It's Salvatore. - -[POMOB5A] -~w~We've got big trouble! Get your ass over here pronto! - -[PO_MOB6] -~w~Anthony? It's Salvatore. - -[POMOB6A] -~w~Have you seen Maria? - -[ST_MOB8] -~w~Yep? - -[STMOB8A] -~w~Toni? It's Sal. - -[STMOB8B] -~w~I need to talk. But I don't trust these cell phones for shit. - -[STMOB8C] -~w~I'll call you on the public phone outside the Court House. - -[ST_MOB1] -~w~Toni. It's Donald. - -[STMOB1A] -~w~I have rather a pressing matter that requires your... particular skills. - -[STMOB1B] -~w~Please call at my office as soon as you can. - -[ST_MOB2] -~w~Yeah? - -[STMOB2A] -~w~Cipriani? It's me, McAffrey. - -[STMOB2B] -~w~I've got some news that Salvatore might appreciate. - -[STMOB2C] -~w~Come and see me up at the usual place. - -[ST_MOB3] -~w~Yeah? - -[STMOB3A] -~w~It's Sal. - -[STMOB3B] -~w~Listen, the Forellis had Mayor Hole in their pocket. - -[STMOB3D] -~w~I know a big shot businessman who'd do anything to get into office. - -[STMOB3E] -~w~He's a complete asshole, so he's qualified for the position. - -[STMOB3F] -~w~I told him you'd make sure he wins the election... for us! - -[ST_MOB4] -~w~Hello. - -[STMOB4A] -~w~Toni. It's me, Sal. - -[STMOB4B] -~w~I can smell those Forellis behind all this shit I'm in. - -[STMOB4C] -~w~What I wanna know is: Why'd they get the mayor to light a fire under my ass? - -[STMOB4D] -~w~Listen, meet me down at the jetty. - -[STMOB4E] -~w~We're gonna do a little fact finding. - -[ST_MOB5] -~w~Yo! - -[STMOB5B] -~w~Head over to the public phone booth in Torrington. - -[STMOB5C] -~w~I need to talk. - -[STMOB5D] -~w~On the way, I want you to see an associate of mine in Aspatria. - -[STMOB5E] -~w~He's gonna help us pile the pressure on the Sindaccos and Forellis. - -[ST_MOB6] -~w~Yep? - -[STMOB6A] -~w~Toni? It's Sal. - -[STMOB6B] -~w~Get to the public phone booth at the Liberty Campus. - -[STMOB6C] -~w~This is important. - -[ST_MOB7] -~w~Yeah? - -[STMOB7A] -~w~Toni? Sal here. - -[STMOB7B] -~w~Get over to Belleville and find the public phone booth. - -[STMOB7C] -~w~I got something urgent needs doing. - -[ST_MOB9] -~w~Toni Cipriani here. - -[STMOB9A] -~w~Toni? It's your Ma. - -[STMOB9B] -~w~I just heard, you've been Made! - -[STMOB9C] -~w~...I never doubted you for a second, son! - -[STMOB9D] -~w~...and seeing as how you've finally proven yourself, - -[STMOB9E] -~w~I'm calling off that contract I put on you. - -[STMOB9F] -~w~Let's just put it behind us. - -[STMOB9G] -~w~After all, I only did it with your best interests at heart. - -[STMOB9H] -~w~Ah, what kind of a son makes his Ma go to such lengths? - -[STMOB9I] -~w~See you soon, son. Don't forget about your old Ma. - -[STMO10] -~w~Yeah? - -[STMO10A] -~w~Hey tough guy. It's McAffrey. - -[STMO10B] -~w~The Feds have caught up with your boss, Salvatore. - -[STMO10C] -~w~And they're real pissed. - -[STMO10D] -~w~He's gonna take the heat for every crime in this city. - -[STMO10E] -~w~So, we never met. Understood? - -[SH_MOB1] -~w~Toni...? - -[SHMOB1A] -~w~Sal? Is that you? - -[SHMOB1B] -~w~Ay, shut up! I'm speaking to my lawyer here! - -[SHMOB1C] -~w~Toni? ...I mean er ...Lionel? - -[SHMOB1D] -~w~Listen. They got me. Can you believe it? - -[SHMOB1E] -~w~I'm up shit creek without a paddle. - -[SHMOB1F] -~w~So get your ass over here, there's stuff I need you to take care of. - -[SHMOB1G] -~w~...Lionel? - -[SH_MOB2] -~w~Yeah? - -[SHMOB2A] -~w~Toni? It's Donald. - -[SHMOB2B] -~w~No wait, don't hang up! - -[SHMOB2C] -~w~I've got a very exciting proposition for you... - -[SHMOB2D] -~w~please call round at my current... um... residence, and I'll fill you in. - -[SHMOB2E] -~w~Toni...? - -[SHMOB2F] -~w~Please, Toni, have a heart. I'm calling you with my last di... - -[SH_MOB3] -~w~Is this Mr. Cipriani? - -[SHMOB3A] -~w~Who's this? How'd you get my number? - -[SHMOB3B] -~w~If one puts their mind to it, one can achieve much. - -[SHMOB3C] -~w~I shouldn't have to tell you that, Mr. Cipriani. - -[SHMOB3D] -~w~I need your help in a delicate matter. - -[SHMOB3E] -~w~For this help you will be richly rewarded. - -[SHMOB3F] -~w~I will explain when you arrive at my apartment in Torrington. - -[SH_MOB4] -~w~Toni! This is Sal! - -[SHMOB4A] -~w~You did it! I can hardly believe it kid! - -[SHMOB4B] -~w~We're nearly home free! - -[SHMOB4C] -~w~Come and see me. We just got a few loose ends to tie up. - -[SH_MOB5] -~w~Toni? Donald here. - -[SHMOB5A] -~w~If the Panlantic deal is to come to fruition we're going to need to, um... - -[SHMOB5B] -~w~how can I put this delicately... - -[SHMOB5C] -~w~'clear' a small section of land in Fort Staunton. - -[SHMOB5D] -~w~When you say 'we', you mean 'me' right? - -[SHMOB5E] -~w~Toni, you see right through me. - -[SHMOB5F] -~w~Go and see 8-Ball. I'm sure he can provide us with the necessary hardware. - -[SHMOB5G] -~w~I'm sure he can provide us with the necessary hardware. - -[SH_MOB6] -~w~My man? This is 8-Ball. - -[SHMOB6A] -~w~Your hardware is ready to ship out. - -[AHIT_H0] -~w~Is that all you've got, asshead! - -[AHIT_H1] -~w~For crying out loud! When will these morons give up? - -[AHIT_H2] -~w~Kiss my ass, dickhead! - -[AHIT_H3] -~w~You guys are starting to piss me off! - -[AHIT_BI] -~w~Keep your wits about you! One of Ma's hitmen is close by! - -[AHIT_TA] -~w~Keep your eyes peeled! One of Ma's hired guns is nearby! - -[AHIT_BU] -~w~Look out! One of Ma's hitmen is coming for you! - -[AHIT_AM] -~w~Watch out! One of Ma's hired killers has seen you! - -[AHIT_VA] -~w~Stay alert! One of Ma's paid killers is in the area! - -[AHIT_PO] -~w~Stay sharp! One of Ma's hitmen is moving in for the kill! - -[AHIT_CA] -~w~Look out! One of Ma's assassins is closing on you! - -[K_TKT] -Scrapyard Challenge - -[K_TK2] -~w~Ride through the coronas to score points. - -[K_TK4] -~w~Score as many points as you can before the time runs out! - -[K_CD] -~w~You have ~1~ seconds to return to your ~b~bike! - -[K_TKP1] -~w~1 point! - -[K_TKP2] -~w~2 points! - -[K_TKP3] -~W~3 points! - -[K_SC] -Score - -[K_SCX] -~w~You scored ~1~ points! - -[K_SCX1] -~w~You scored 1 point! - -[K_HSC1] -~w~New high score of ~1~ points! - -[K_HSC2] -~r~You failed to beat the high score of ~1~ points. - -[KRUSH] -You now get four times as much cash for using the car crusher! - -[KRUSH2] -You now get eight times as much cash for using the car crusher! - -[TURFAIL] -~r~ODDJOB OVER! - -[TKR1] -9mm Mayhem - -[TKR2] -Scooter Shooter - -[TCKILL] -Kills - -[TCHEAL] -Damage - -[TC2_1] -~r~You killed your driver! - -[TC2_2] -~r~Vehicle destroyed! - -[TC2_3] -~r~Out of time! - -[TC_T_E] -~w~Target Eliminated! $~1~ - -[TUP_BR] -~w~Eliminate as many ~r~targets ~w~as you can within the time limit. - -[TUP_BR2] -~w~Eliminate more than ~1~ ~r~targets ~w~for a new high score! - -[TUP_AD] -~w~You have 3 adrenaline pills, Press R1 button to use one. - -[TUPSC1] -~w~New high score of ~1~ kills! - -[TUPSC2] -~r~You failed to beat the high score of ~1~ kills. - -[MPWCS1] -The Wedding List - -[MPWCS2] -Hey, how ya been? - -[MPWCS3] -Listen, my son Joey's getting hitched! - -[MPWCS4] -I found him this real classy girl, just like my Maria... I can't wait to get them together! - -[MPWCS5] -Only, I don't want her seeing him driving one of those junk-heaps he's fixing up in his shop. - -[MPWCS6] -So, you're gonna scour this town for some decent wheels. - -[MPWCS7] -I'll make sure it's worth your while. - -[MPTCS1] -Tanks for the Memories - -[MPTCS2] -It's Sal. I need some heat diverting and you're gonna help me out. - -[MPTCS3] -I got a tank parked across town. Take it and wreak havoc! Don't pull no punches! - -[MPTCS4] -I want people thinking they must've pissed on Patton's grave. - -[MPTCS5] -Listen, this diversion's real important, so I've got other wise-guys showing up looking to take a ride. - -[MPTCS6] -...And, I'm only gonna pay the one that sits behind the wheel the longest - -[MPRCS1] -Street Rage - -[MPRCS2] -This is Salvatore Leone! Your dedicated public benefactor. - -[MPRCS3] -...don't listen to what the Attorney General says! - -[MPRCS4] -I am a good and generous friend of Liberty City. That's why I'm sponsoring this great race today. - -[MPRCS5] -How much is this shit costing me? - -[MPRCS6] -WHAT?! Get me to the E.R. My chest feels tight! - -[MPHPCS2] -It's Sal... the feds are tapping my phone so I'll be subtle. - -[MPHPCS3] -There's a briefcase full of Benjamin's under the phone, and a list of names. Guess what I want... - -[MPHPCS4] -...wait! It ain't to share this money with those fucks. - -[MPHPCS5] -You know... take them out. - -[MPHPCS6] -Wait. I don't mean 'Take them out - for a good time'. I mean... um... - -[MPHPCS7] -Look, just kill the fucks on the list will ya! - -[DEB0] -DEBUG 0 - -[DEB1] -DEBUG 1 - -[DEB2] -DEBUG 2 - -[DEB3] -DEBUG 3 - -[DEB4] -DEBUG 4 - -[NUM0] -DEBUG 0 (~1~) - -[NUM1] -DEBUG 1 (~1~) - -[NUM2] -DEBUG 2 (~1~) - -[NUM3] -DEBUG 3 (~1~) - -[NUM4] -DEBUG 4 (~1~) - -[CARS] -'Car Salesman' - -[BIKE] -'Bike Salesman' - -[RACE_0] -Position - -[RACE_FL] -~w~FINAL LAP - -[RACE_X0] -~w~Get a car and head for the ~y~start line! - -[RACE_X1] -~w~Get a bike and head for the ~y~start line! - -[RACE_X2] -~w~You need a car to be in this race! - -[RACE_X3] -~w~You need a bike to be in this race! - -[RACE_X4] -~w~You have ~1~ seconds to find a car. - -[RACE_X5] -~w~You have ~1~ seconds to find a bike. - -[RACE_X6] -~w~You have 1 second to find a car. - -[RACE_X7] -~w~You have 1 second to find a bike. - -[RACE_T0] -~r~You didn't come first! - -[RACE_T1] -~r~You have been disqualified for leaving your car. - -[RACE_T2] -~r~One of the racers has died - the race has been called off! - -[RACE_T3] -~r~You have been disqualified for leaving your bike. - -[RACE_Y3] -~w~3 - -[RACE_Y2] -~w~2 - -[RACE_Y1] -~w~1 - -[RACE_Y] -~w~GO! - -[RACE_Z1] -~w~1ST PLACE! - -[RACE_Z2] -~w~2ND PLACE! - -[RACE_Z3] -~w~3RD PLACE! - -[RACE_Z4] -~w~LAST PLACE! - -[RACE_R1] -~w~RECORD: ~1~:~1~~1~ NEW RECORD! - -[RACE_R2] -~w~NEW RECORD! - -[RACE_S0] -~w~TIME: ~1~:~1~~1~ - -[RACE_S1] -~w~BEST LAP: ~1~:~1~~1~ - -[RAC1] -Low-Rider Rumble - -[RAC2] -Deimos Dash - -[RAC3] -Wi-Cheetah Run - -[BIK1] -Red Light Racing - -[BIK2] -Torrington TT - -[BIK3] -Gangsta GP - -[TT1] -'Bumps & Grinds' - -[TT1_A1] -~w~< COURSE ~1~ > - -[TT1_B1] -~w~Course Target: ~1~:~1~ - -[TT1_B1A] -~w~Course Target: ~1~:0~1~ - -[TT1_B2] -~w~Best Course Time: ~1~:~1~ - -[TT1_B2A] -~w~Best Course Time: ~1~:0~1~ - -[TT1_B3] -~w~Best Lap Time: ~1~:~1~ - -[TT1_B3A] -~w~Best Lap Time: ~1~:0~1~ - -[TT1_B4] -~w~~1~:~1~ - -[TT1_B4A] -~w~~1~:0~1~ - -[TT1_B5] -~w~New Course Record! ~1~:~1~ - -[TT1_B5A] -~w~New Course Record! ~1~:0~1~ - -[TT1_L] -~r~ Locked. - -[A_PISTO] -~w~< Pistol > - -[A_UZI] -~w~< Micro SMG > - -[A_AK] -~w~< AK > - -[A_SNIPE] -~w~< Sniper Rifle > - -[A_GRENA] -~w~< Grenades > - -[A_ARMOU] -~w~< Body Armor > - -[A_ROCKE] -~w~< Rocket Launcher > - -[A_SHOTG] -~w~< Shotgun > - -[A_M4] -~w~< M4 > - -[A_FLAME] -~w~< Flame-Thrower > - -[A_MINIG] -~w~< Minigun > - -[A_COST] -~w~Cost: ~h~$~1~ - -[A_COST2] -~w~Cost: ~h~$~1~ ~n~ ~r~This will replace your current weapon. - -[A_COST3] -~w~Cost: ~h~$~1~ ~n~ ~r~Your Body Armor is in good condition. - -[A_COST4] -~w~Cost: ~h~$~1~ ~n~ ~r~You cannot afford this. - -[A_STOCK] -~r~Out of stock. - -[A_VIC4] -~w~A pistol usually costs $240, but this one's on Vincenzo. - -[A_DONS4] -~w~Donald Love's already paid for this. - -[A_NEDS4] -~w~Some church guy reserved one of these for you. - -[A_TALK1] -~w~I got all your home defense needs. - -[A_TALK2] -~w~You want a license too? - -[A_TALK3] -~w~I don't need to see any I.D. you look trustworthy. - -[A_TALK4] -~w~You're welcome to try out the range round the back. - -[BENZ_GO] -~w~Get a change of outfit! - -[PIZ_B01] -~w~You have ~1~ second to get back on the Pizza ~b~bike! - -[PIZ_B02] -~w~You have ~1~ seconds to get back on the Pizza ~b~bike! - -[PIZ_F04] -~r~You failed to return to the Pizza bike! - -[NDL_B01] -~w~You have ~1~ second to get back on the Noodle ~b~bike! - -[NDL_B02] -~w~You have ~1~ seconds to get back on the Noodle ~b~bike! - -[NDL_F04] -~r~You failed to return to the Noodle bike! - -[EXPO_D] -~w~Here's a finder's fee: $~1~! Finish the list for a bonus! - -[PUPSPN] -~w~POWERUP SPAWNED! - -[PUPMEGA] -~y~MEGA DAMAGE! - -[PUPREGN] -~y~HEALTH BOOST! - -[PUPINVS] -~y~INVISIBILITY! - -[PUPFREZ] -~y~FRENZY! - -[MPK] -killed - -[MPKHEAD] -with a headshot! - -[MPNEED] -only needs - -[MPNAME] -Name - -[MPSCORE] -Score - -[MPPING] -Ping - -[MPCPS] -Checkpoints - -[MPTIME] -Time - -[MPBONUS] -Bonus - -[MPQG] -Quit Game? - -[MPQUIT] -Quit - -[MPCONT] -Continue - -[MPHIGH] -Highest Time - -[MPBY] -by - -[MPOVER] -Game Over - -[MPFIRST] -finished first - -[MPWITH] -wins with $ - -[MPHP05] -~w~5 seconds until next target. - -[MPHP04] -~w~4 seconds until next target. - -[MPHP03] -~w~3 seconds until next target. - -[MPHP02] -~w~2 seconds until next target. - -[MPHP01] -~w~1 second until next target. - -[RCRANGE] -~w~Out of range! - -[CAD5_AA] -Sal here. - -[CAD5_AB] -These Forelli's have got me pissed! So they're gonna pay! - -[CAD5_AC] -I want you to take their classiest cars... - -[CAD5_AD] -...and run them over to their main competitors at the Sindacco auto yard. - -[CAD5_AE] -Just make sure the Forellis don't steal any Sindacco cars in retaliation. - -[CAD5_AF] -Capiche? - -[CAD4_AA] -It's me, Sal. - -[CAD4_AB] -I owe Franco Forelli, and you're gonna help me pay. - -[CAD4_AC] -Down at the Sindacco auto yard they've got some real classy cars. - -[CAD4_AD] -I want you to grab them all and take them to the Forelli car lot. - -[CAD4_AE] -Make sure that no Forelli vehicles get stolen while you're down there. - -[CAD4_AF] -Hey, don't screw this up. - -[MPC_000] -Toni - -[MPC_001] -'Lionel' - -[MPC_002] -Cipriani - -[MPC_003] -Chauffeur - -[MPC_004] -13th - -[MPC_005] -Toni the Tux - -[MPC_006] -Fury - -[MPC_007] -The King - -[MPC_008] -Cocks - -[MPC_009] -Streak - -[MPC_010] -'T' - -[MPC_011] -Dragon - -[MPC_012] -JD - -[MPC_013] -The Gimp - -[MPC_014] -Avery - -[MPC_015] -Choc-Choc - -[MPC_016] -8-Ball - -[MPC_017] -Maria - -[MPC_018] -'Hamfists' - -[MPC_021] -No.1 - -[MPC_023] -Hung Lo - -[MPC_025] -Yamazaki - -[MPC_031] -Officer '69' - -[MPC_032] -The Specialist - -[MPC_034] -G.I. Jones - -[MPC_035] -Sam - -[FEA_FM0] -HEAD RADIO - -[FEA_FM1] -DOUBLE CLEF FM - -[FEA_FM2] -K-JAH - -[FEA_FM3] -RISE FM - -[FEA_FM4] -LIPS 106 - -[FEA_FM5] -RADIO DEL MUNDO - -[FEA_FM6] -MSX 98 - -[FEA_FM7] -FLASHBACK FM - -[FEA_FM8] -THE LIBERTY JAM - -[FEA_FM9] -LCFR - -[MRACELA] -Lap - -[DTB_01] -~w~Defend your base against enemy attackers. - -[DTB_02] -~w~Protect your cars at all costs. - -[CAD2_AB] -~w~Good news, the Forellis and Sindaccos are at each other's throats again. - -[CAD2_AC] -~w~They both want ownership of all the car dealers in Liberty. - -[CAD2_AD] -~w~Seeing as we 'assisted' the Forellis last week... - -[CAD2_AE] -~w~...it's time to even the balance. - -[CAD2_AF] -~w~Help the Sindaccos cream the Forelli car lot. - -[POMOB6B] -~w~I swear I can only find that bitch when she needs money! - -[POMOB2A] -~w~Salvatore gave me your number... well I found it in his address book. But, whatever! - -[POMOB2B] -~w~You're his new doggy, right? Well, I want to go walkies. - -[POMOB2C] -~w~I'll expect you over soon. - -[GS_RGUN] -START WITH GUNS: - -[TUSHTK] -AWOL Angel - -[SC_WICH] -Highest score in 'AWOL Angel' - -[NE_WIFI] -A network error occurred. The WLAN switch is OFF. Please turn the WLAN switch ON to play the multiplayer games. - -[BNDRAC0] -Thrashin' RC - -[BNDRAC1] -Ragin' RC - -[BNDRAC2] -Chasin' RC - -[GS_G1] -LIBERTY CITY SURVIVOR - -[GS_G2] -STREET RAGE - -[GS_G3] -PROTECTION RACKET - -[GS_G4] -GET STRETCH - -[GS_G5] -TANKS FOR THE MEMORIES - -[GS_G6] -THE HIT LIST - -[GS_G7] -THE WEDDING LIST - -[TRCR1] -~w~1 - -[TRCR2] -~w~2 - -[TRCR3] -~w~3 - -[TRCRGO] -~w~GO! - -[GA_16] -~w~Respray is complimentary. - -[NEW_TAX] -~w~Taxi Driver mission complete! Mean Street Taxis have taken delivery of a new vehicle at their Trenton depot! - -[EXPO_2] -~w~If you supply them with the vehicles they need in good condition, you'll be well rewarded. - -[FEMP_NC] -Establishing network connections...Please Wait - -[C1TGSUB] -R3 button - -[C2TGSUB] -R3 button - -[C3TGSUB] -~S~ - -[C2VEHN] -R1 button - -[C2VECRS] -L3 button - -[C3VECRS] -~O~ - -[C2PDCWE] -L2 and R2 buttons - -[C3PDCWE] -L2 and R2 buttons - -[BENZ_LA] -~w~The ~h~Lawyer's outfit~w~ is now available at the safehouse. - -[BENZ_TR] -~w~Your ~h~Casual clothes~w~ are now available at the safehouse. - -[SLH1_OU] -~w~You'll need a ~h~lawyer's outfit~w~ to get in to see Sal. - -[SLH1_OR] -~w~You need to be in a lawyer's outfit to see Sal. - -[L_TRN_1] -~w~You can use the ~h~El-train~w~ to travel around Portland. Press~h~ ~k~ ~VEEE~ ~w~to enter or exit the train. - -[HELP2] -~w~Press~h~ ~k~ ~PDSPR~ ~w~while running to ~h~start sprinting. - -[STMOB5A] -~w~Toni, Sal. - -[SCH_TK7] -~r~You left the junkyard. - -[STMOB3C] -~w~But, we're gonna take control of City Hall. - -[SALH3A] -~w~Get some transport for Donald. - -[MPCASH] -Cash - -[MPCARS] -Cars - -[CRUSHED] -Junk value $~1~ - -[BENZ_BO] -~w~Pick up a change of ~h~underwear~w~ from the safehouse. - -[BENZ_EL] -~w~The ~h~King jumpsuit~w~ is now available at the safehouse. - -[BENZ_CO] -~w~A ~h~Cox mascot suit~w~ is now available at the safehouse. - -[BENZ_HE] -~w~Avenging Angel mission: Shoreside - level 15 complete! The ~h~Hero costume~w~ is now available at the safehouse. - -[BENZ_DR] -~w~The ~h~Dragon outfit~w~ is now available at the safehouse. - -[TRTIT] -Wong Side Of The Tracks - -[TRRACE2] -~w~Watch out! The Wong Brothers look mean... - -[MPTOTAL] -Total Time - -[TOUR_W6] -~w~Exclusive Armored Landstalker delivered to your safehouse. Keep it safe in your garage! - -[OUTFITS] -Unlocked Costumes - -[MPHPMAR] -has been marked for death. - -[FEC_CWT] -Cycle Weapons\Targets - -[EXPO_1] -~w~Love Media need prizes to give away in their 'Car-razy Car Give Away' competitions! - -[PCJLAP] -~w~New Lap Record of ~1~ seconds! - -[MPBLCAR] -Blue Car: - -[MPRDCAR] -Red Car: - -[RAMP_A] -~w~ALL RAMPAGES COMPLETED! $~1~ - -[FET_SAV] -Save Game - -[FET_WRN] -Warning! One or more cheats have been activated. This may affect your save game. It is recommended that you do not save this game. - -[HELP39] -~w~Use~h~ ~k~ ~VEWEI~ ~w~to shift your weight while on a bike. - -[FEC_EXV] -Exit vehicle - -[MPCOLL] -CARS TO COLLECT: - -[FEMP_HG] -HOST GAME - -[FEMP_JG] -JOIN GAME - -[K_TK3] -~w~1 point for ~g~green~w~, 2 points for ~y~amber~w~, and 3 points for ~r~red. - -[FEMP_GJ] -SELECT GAME TO JOIN - -[FEMP_H] -HOST: - -[FEMP_P] -PLAYERS: - -[FEMP_HN] -HOST A NEW GAME - -[PO_MOB4] -~w~Hey, it's me, Vincenzo. - -[POMOB4D] -~w~Come on. Drop by my place, I've got something for you. - -[POMOB4E] -~w~Yeah? What's that? A pair of concrete boots? - -[POMOB4H] -~w~No. Come on, Toni, I feel bad about what went down. - -[FEMP_F] -FULL - -[FEMP_R] -RESET TO DEFAULTS - -[YOU] -YOU - -[NE_POW] -A network error occurred. The power/hold switch was turned OFF. - -[FEMP_SQ] -Are you sure you want to start a multiplayer game? - -[BIKETXT] -~w~Hogs & Cogs is only open between the hours of 08:00 and 18:00. Come back then! - -[RACE_2] -Time - -[FEF_CO2] -Choose the best controller set-up for your playing style - -[TYREPOP] -Tires popped with gunfire - -[FE_INIP] -Initializing and loading Pause Menu... Please wait. - -[DON4EX3] -~w~You take a check? - -[CRUSH] -~w~Earn money from junk! Certain types of vehicle will be crushed if left in the area marked by tires. - -[ANG_15] -~w~A group of idiots just stole some poor guy's car... let's take 'em down! - -[CDERROR] -Please wait... - -[FEC_LOF] -Look Forward - -[FEC_LFA] -Look\Fine Aim - -[MPHELP] -HELP - -[C1VEHN] -L1 button - -[C3VEHN] -L3 button - -[MPOBJ] -OBJECTIVE: - -[MPLEG] -RADAR LEGEND: - -[GS_O1] -Every man for themselves! Kill the other players! - -[GS_O2] -Drive through the checkpoints to reach the finish line first. - -[GS_OD3] -Defend the four limos at your base from incoming attackers. - -[GS_O6] -Kill the 'Marked' player as quickly as possible. But, if you are the 'Mark' survive as long as you can. - -[GS_O7] -Collect cars scattered around the city, then drive them into the waiting containers. - -[FHOSE_2] -~h~~k~ ~VEWEA~ ~w~will adjust the cannon's aim. - -[MPI01] -POWERUP - -[MPI02] -HEALTH - -[MPI03] -ARMOUR - -[MPI04] -WEAPON - -[SPIDER] -Deimos SP - -[PONTIAC] -Phobos Vt - -[FORELLI] -Forelli ExSess - -[AHIT_LO] -You may have lost him for now, but he'll be back to finish the job. - -[FEM_ROF] -Radio Off - -[GA_1] -~w~You gotta be kiddin'! I ain't touchin' that! - -[TRA_NEX] -Next Stop: - -[TRA_CUR] -Current Stop: - -[PAGEB2] -~w~The ~h~Shotgun~w~ is now available at your safehouse! - -[PAGEB3] -~h~Body Armor~w~ is now available at your safehouse! - -[PAGEB4] -~w~The ~h~SMG~w~ is now available at your safehouse! - -[PAGEB5] -~w~The ~h~.357~w~ is now available at your safehouse! - -[PAGEB6] -~w~The ~h~M4~w~ is now available at your safehouse! - -[PAGEB7] -~w~The ~h~Laser Sighted Sniper Rifle~w~ is now available at your safehouse! - -[PAGEB8] -~w~The ~h~Flame-Thrower~w~ is now available at your safehouse! - -[PAGEB9] -~w~The ~h~Rocket Launcher~w~ is now available at your safehouse! - -[PAGE_01] -Gun down ~1~ Triads in 2 minutes! - -[PAGE_02] -Blow up ~1~ vehicles in 2 minutes! - -[PAGE_03] -Incinerate ~1~ Diablos in 2 minutes! - -[PAGE_04] -Kill ~1~ Leone mafia in 2 minutes! - -[PAGE_05] -Burn ~1~ vehicles in 2 minutes! - -[PAGE_06] -Run over ~1~ pedestrians in 2 minutes! - -[PAGE_07] -Destroy ~1~ vehicles in 2 minutes! - -[PAGE_08] -Massacre ~1~ pedestrians in 2 minutes! - -[PAGE_09] -Burn ~1~ Yakuza in 2 minutes! - -[PAGE_10] -Assassinate ~1~ Forellis in 2 minutes! - -[PAGE_11] -Run over ~1~ pedestrians in 2 minutes! - -[PAGE_12] -Murder ~1~ pedestrians in 2 minutes! - -[PAGE_13] -Kill ~1~ Yakuza in 2 minutes! - -[PAGE_15] -Massacre ~1~ pedestrians in 2 minutes! - -[PAGE_16] -Destroy ~1~ vehicles in 2 minutes! - -[PAGE_17] -Snipe ~1~ pedestrians in 2 minutes! - -[PAGE_18] -Destroy ~1~ vehicles in 2 minutes! - -[PAGE_20] -Burn ~1~ pedestrians in 2 minutes! - -[MPI05] -ENEMY - -[MPI07] -CHECKPOINT - -[MPI08] -NEXT - -[MPI09] -FINISH LINE - -[MPI10] -RACER - -[MPI11] -BASE - -[MPI12] -ENEMY BASE - -[MPI13] -TANK - -[MPI14] -THE MARK - -[MPI15] -CAR - -[MPI16] -CONTAINER - -[FEI_LEG] -Legend On\Off - -[SR_ON] -Now you've made a name for yourself on the street racing circuit, look out for challengers trying to contact you. - -[FEC_FRA] -Free Aim - -[KAR_ON] -Return to the firetruck whenever you want to try and beat your best time! - -[DON2EX5] -~w~8-ball won't budge unless you pay him $20000 - -[PCJTIT] -GO GO Faggio - -[FEA_MUS] -RADIO VOLUME: - -[FEST_GO] -Best time for Go Go Faggio - -[RC_1] -~w~Kill more than ~1~ Triads - each kill awards a time bonus! - -[EXPO_C] -~w~Thanks! That's all of them! We've left a cool bonus waiting outside your Newport apartment! - -[TRRACE0] -~w~Race through the ~y~checkpoints~w~ and reach the end of the course alive! - -[RACE_P1] -~w~1st - -[RACE_P2] -~w~2nd - -[RACE_P3] -~w~3rd - -[RACE_P4] -~w~4th - -[OUTF_00] -~w~Casual clothes - -[OUTF_01] -~w~Leone's suit - -[OUTF_03] -~w~Avenging Angel's fatigues - -[OUTF_04] -~w~Chauffeur's clothes - -[OUTF_05] -~w~Lawyer's suit - -[OUTF_06] -~w~Tuxedo - -[OUTF_07] -~w~'The King' jumpsuit - -[OUTF_08] -~w~Cox Mascot suit - -[OUTF_09] -~w~Underwear - -[OUTF_10] -~w~Hero garb - -[OUTF_11] -~w~'Dragon' jumpsuit - -[SLTVMON] -Total Cash made on 'Slash TV' - -[DBIKEAI] -Most air achieved (m) - -[MPC_039] -Vincenzo - -[MPC_040] -Salvatore - -[MPC_041] -Toshi - -[MPC_042] -Toshiko - -[MPC_043] -Ophelia Lardaz - -[MPC_044] -Ed Banger - -[MPC_045] -Robin Emblind - -[MPC_046] -Mrs. Menalot - -[MPC_047] -Hugh Jazz - -[MPC_048] -Wayne - -[MPC_049] -Paulie - -[MPC_050] -Anne Job - -[MPC_051] -Randy Boner - -[MPC_052] -Owen Monie - -[MPC_053] -Ekant Sing - -[MPC_054] -M.T.Head - -[MPC_055] -Rick O'Shea - -[MPC_056] -Arden Long - -[MPC_057] -Ann Thrax - -[MPC_058] -Fay Slift - -[MPC_059] -Mona Lott - -[C0VEACC] -~X~ - -[C1VEACC] -~X~ - -[C2VEACC] -~X~ - -[C3VEACC] -right analog stick up - -[C0VEBRK] -~S~ - -[C1VEBRK] -~S~ - -[C2VEBRK] -~S~ - -[C3VEBRK] -right analog stick down - -[C0VEHB] -R1 button - -[C1VEHB] -R1 button - -[C0VEEE] -~T~ - -[C1VEEE] -~T~ - -[C2VEEE] -L1 button - -[C3VEEE] -~T~ - -[C0VEWEP] -~O~ - -[C1VEWEP] -~O~ - -[C2VEWEP] -~O~ - -[C3VEWEP] -R1 button - -[C0PDSPR] -~X~ - -[C1PDSPR] -~X~ - -[C0SNZI] -~S~ - -[C1SNZI] -~S~ - -[C0SNZO] -~X~ - -[C1SNZO] -~X~ - -[C0PDFW] -~O~ - -[C1PDFW] -~O~ - -[C0TRSK] -~X~ - -[C1TRSK] -~X~ - -[C2TRSK] -~X~ - -[C3TRSK] -~X~ - -[C0AMBUY] -~X~ - -[C1AMBUY] -~X~ - -[C2AMBUY] -~X~ - -[C3AMBUY] -~X~ - -[C0AMEXI] -~T~ - -[C1AMEXI] -~T~ - -[C2AMEXI] -~T~ - -[C3AMEXI] -~T~ - -[C2PDSPR] -~O~ - -[C3PDSPR] -~X~ - -[C2SNZI] -~T~ - -[C3SNZI] -~S~ - -[C2SNZO] -~S~ - -[C3SNZO] -~X~ - -[C2PDFW] -~X~ - -[C3PDFW] -R1 button - -[MPC_020] -Rico Garlik - -[MPC_022] -Lou Scannon - -[MPC_024] -Cruz Vormen - -[MPC_026] -Busta Moves - -[MPC_027] -Juan Kerr - -[MPC_028] -Nick Yakar - -[MPC_029] -Lou Bricant - -[MPC_030] -Lance Urwell - -[MPC_033] -Agent Ochre - -[MPC_036] -Papi Love - -[MPC_037] -Lucy Lastic - -[MPC_038] -Bill Durzbum - -[MPISCOL] -Pickup Collected - -[MPSTART] -Starting game... - -[MRACEC1] -~w~1... - -[MRACEC2] -~w~2... - -[MRACEC3] -~w~3... - -[MPC_019] -Phil DeGirth - -[GDA_HL] -Highest 'Avenging Angel' level - -[MP_SNEW] -Please load or start a new single player or multiplayer game. - -[DON2EX9] -~r~Ned's~w~ getting away! Don't lose him! - -[FEI_CHA] -Change Team - -[FES_RES] -RESET GAME SETTINGS - -[FESZ_QT] -Are you sure you want to reset all settings for controls, audio and the display? Proceed? - -[FEH_LOA] -GAME - -[MPEMPTY] -Vacant - -[FEMP_SN] -START GAME (2 or more players required) - -[JD_SUIT] -~w~JD can't give you work when you're dressed as a Leone! - -[SAVD_SH] -safehouse. - -[SAVD_DY] -Day - -[SAVD_CO] -complete. - -[SAVD_AL] -Portland safehouse. Day 71, $57640. 17% complete. - -[SAV_SLT] -New Save - -[POMOB6C] -~w~Come over and see me soon. I got some work for you. - -[ANG_2] -~w~Press~h~ ~k~ ~TGSUB~ ~w~to toggle Avenging Angels missions on or off. - -[TVHELP] -~w~Press~h~ ~k~ ~TGSUB~ ~w~to toggle SLASH TV missions on or off. - -[PAGERA] -~w~The ~h~M60~w~ is now available at your safehouse! - -[CO_ALL] -~w~All Hidden Packages collected! - -[CO_ONE] -~w~Hidden Package ~1~ of ~1~ collected! - -[PAGE_14] -Blow away ~1~ Colombian gangsters in 2 minutes! - -[PAGE_19] -Run over ~1~ Colombian gang bangers in 2 minutes! - -[ANG_22] -~r~Avenging Angel missions cancelled. - -[SLATVQO] -~r~SlashTV mission cancelled. - -[C0FREE1] -L3 button - -[C1FREE1] -L3 button - -[C2FREE1] -L3 button - -[C3FREE1] -L3 button - -[C0FREE2] -left analog stick - -[C2FREE2] -left analog stick - -[ANGCOM1] -~w~Avenging Angel mission: Portland - level 15 complete! The unique 'Avenger' motorcycle has been delivered to your safehouse! - -[K_CE] -~w~You have ~1~ second to return to your ~b~bike! - -[HELP31] -~w~If you are ~h~'busted'~w~ or ~h~'wasted'~w~ while on a mission, this ~h~Taxi~w~ will appear. - -[LOSER] -~y~LOSER! - -[RCRHELP] -~w~Press~h~ ~k~ ~TGSUB~ ~w~to ~h~quit the race~w~.~h~ ~k~ ~VEWEP~ ~w~to reset your RC Car to the last checkpoint. - -[SRC_ON] -Now that you've made a name for yourself on the underground car-racing circuit, challengers will try to contact you. - -[SRB_ON] -Now that you've made a name for yourself on the underground bike-racing circuit, challengers will try to contact you. - -[RACE_R0] -~w~PREVIOUS RECORD: ~1~:~1~~1~ - -[POMOB3C] -~w~Hey, drop by some time okay buddy. - -[MPHPCS1] -The Hit List - -[MPWLGOC] -Get out of the car. - -[MPWLLTC] -Leave the crate. - -[MPWLDTC] -Deliver the car. - -[MPWLCD] -Car delivered. - -[MPWLNGC] -Now grab the cars. - -[MPAUTO] -PLAY ONCE - -[MRACEGO] -~w~GO - -[MRACE04] -YOU'RE THE WINNER - -[MRACEWI] -has won the race - -[MRCPU01] -~y~INSTANT REPAIR - -[DTB01] -defend the cars - -[DTB02] -destroy the cars - -[DTB03] -lost a car - -[DTB04] -destroyed a car - -[MPWIN] -wins - -[MPKSELF] -was killed - -[MPMORE] -more kills - -[MP1MORE] -more kill - -[MPSTRT] -Started - -[MPTANK] -has the tank - -[MPONE] -only has one car to get - -[MPDEL] -has delivered a car - -[MPGOCAR] -Go find the car - -[MPGOGAR] -Deliver the car - -[MPDEST] -Target vehicle destroyed - -[MPLEFT] -left the game - -[MPHPGO2] -~w~You have been marked for death - -[MPHPKI] -~w~You killed an assassin - -[LOCKON] -Lock On - -[MPHPGO] -~w~Eliminate the mark - -[MPTNK] -Get The Tank - -[MRCPU02] -YOU POPPED EVERYONE'S TIRES - -[MRCPU05] -YOUR TIRES ARE POPPED - -[MRCPU06] -~y~Sticky Tires - -[WINNER] -~Y~WINNER - -[MPDRAW] -~w~DRAW - -[MPDADDY] -YOU'RE THE DADDY NOW. - -[MPRUN] -RUN THIS TOWN NOW. - -[MPBITCH] -WHO'S YOUR DADDY NOW, BITCH? - -[FEMP_SM] -Play Grand Theft Auto with friends or creepy strangers standing nearby. - -[MPYL] -YOU LOSER! - -[MPTMWIN] -ARE THE TOP DOGS - -[GS_SCAR] -VEHICLE: - -[GS_MIN] -minute - -[GS_MINS] -minutes - -[MPTNKGA] -You got the tank, tough guy. - -[MPTNKGB] -Now keep it. - -[GS_TYPE] -SCENARIO: - -[CLILOST] -Communication with other players has been lost. - -[ONEHPC] -100 percent completed! There's a little present waiting for you in Fort Staunton. - -[MPBLTM] -sindaccos - -[MPRDTM] -forellis - -[MTN_1] -Sindaccos - -[MTN_2] -Forellis - -[MPRDCAP] -car has been captured - -[MPBLCAP] -car has been captured - -[MPRDST] -car has been stolen - -[MPBLST] -car has been stolen - -[MPBLEST] -car has been stolen - -[MPRDRET] -car has been returned - -[MPBLRET] -car has been returned - -[MPRDPOS] -car is out of position - -[MPBLPOS] -car is out of position - -[GS_TEAM] -JOIN GANG: - -[FEMP_TS] -JOIN GANG: - -[MPTEAM] -Gang - -[GS_OA3] -Destroy four limos at the rival gang's base. - -[GS_O4] -Steal the rival gang's car and return it to your base. Simultaneously, protect your gang's car. - -[MPI06] -GANG MEMBER - -[FEMP_ST] -START GAME (1 or more players per gang required) - -[HELP32] -~w~For a small fee (or free if you have no cash) it will transport you to the ~h~contact location~w~ of your last mission. - -[BENZ_HO] -~h~Overalls~w~ are now available at the safehouse. Come back here at night wearing them to play SlashTV. - -[SLATXT] -~w~Come back here dressed in the 'Overalls' between the hours of 18:00 and 05:00 to play SlashTV. - -[OUTF_02] -~w~Overalls - -[CAN_CON] -~w~Press~h~ ~k~ ~TGSUB~ ~w~again to cancel the mission. - -[GNG1] -LEONES - -[GNG2] -TRIADS - -[GNG3] -DIABLOS - -[GNG4] -YAKUZA - -[GNG5] -YARDIES - -[GNG6] -COLOMBIANS - -[GNG7] -HOODS - -[GNG8] -SINDACCOS - -[GNG9] -FORELLIS - -[GNG0] -SICILIANS - -[MP_GNG1] -SELECTED GANG 1: - -[MP_GNG2] -SELECTED GANG 2: - -[GS_TEMS] -GANG WAR - -[CARS_O] -~w~Capital Autos in Harwood is looking for new salesmen, if you want to make some extra money. - -[CARTXT] -~w~Capital Autos is only open between the hours of 08:00 and 18:00. Come back then! - -[GS_TO1] -Kill the rival gang! - -[MPTNEED] -only need - -[MPTWIN] -win - -[BADTEAM] -One of the gangs had no players left. - -[RACELAP] -Lap - -[GS_D1] -RE-LIVE THE CLASSIC GAME SHOW! URBAN DARWINISM IS BACK. - -[GS_D2] -WHO’S THE BEST AT DRIVING (OR CHEATING)? - -[GS_D3] -PROTECT YOUR CARS FROM SCUMBAGS AND VANDALS. - -[GS_D4] -STEAL THE ENEMY GANG’S CAR. LAUGH AT THEM. - -[GS_D5] -WHO WANTS THAT TANK THE MOST? - -[GS_D6] -THE MARKED MAN MUST BE WHACKED. - -[GS_D7] -DEAL CARS FOR CASH. - -[HELP61] -~w~When the ~h~triangular blip points up~w~ the ~h~target is above you~w~. A ~h~square blip~w~ indicates the ~h~target is level with you. - -[ST_DRWN] -Fish fed - -[RACE_T4] -~r~You have been disqualified for failing to find a car. - -[RACE_T5] -~r~You have been disqualified for failing to find a bike. - -[PCJ600] -PCJ-600 - -[FEC_HBB] -Hand brake~h~ ~k~ ~VEACC~ ~w~and~h~ ~k~ ~VEBRK~ - -[HJSTAT] -~w~Distance: ~1~.~1~m Height: ~1~.~1~m Flips: ~1~ Rotation: ~1~° - -[HJSTATW] -~w~Distance: ~1~.~1~m Height: ~1~.~1~m Flips: ~1~ Rotation: ~1~° And what a great landing! - -[HJSTATF] -~w~Distance: ~1~ft Height: ~1~ft Flips: ~1~ Rotation: ~1~° - -[HJSTAWF] -~w~Distance: ~1~ft Height: ~1~ft Flips: ~1~ Rotation: ~1~° And what a great landing! - -[MPUNLK] -New multiplayer content unlocked. Shame other players with all the stuff you've unlocked! - -[MPUNLKA] -All multiplayer content unlocked. Shame other players with all the stuff you've unlocked! - -[TOUR] -See the Sight Before your Flight - -[NDL1_A] -Noodle Punk - -[PIZ1_A] -Well Snacked Pizza - -[GS_SCUT] -PLAY CUTSCENE: - -[TR_00] -RACE ONE - -[TR_01] -RACE TWO - -[TR_02] -RACE THREE - -[TR_03] -RACE FOUR - -[TR_04] -RACE FIVE - -[TR_05] -RACE SIX - -[TR_06] -RACE SEVEN - -[TR_07] -RACE EIGHT - -[CHSE] -CHASE - -[NOCHANG] -You can't change outfits while on this mission. - -[OUTF_12] -Antonio - -[OUTF_13] -Sweats - -[OUTF_14] -Goodfella - -[OUTF_15] -Wiseguy - -[BENZ_AN] -~w~The ~h~Antonio outfit~w~ is now available at the safehouse. - -[BENZ_SW] -~w~The ~h~Sweats outfit~w~ is now available at the safehouse. - -[BENZ_GD] -~w~The ~h~Goodfella outfit~w~ is now available at the safehouse. - -[BENZ_WI] -~w~The ~h~Wiseguy outfit~w~ is now available at the safehouse. - -[RAMPAGE] -RAMPAGE - -[GS_TTGT] -TANK TIME: - -[GS_O5] -Survive the longest while in the Tank to win. Damage the Tank to steal it from another player. - -[HELP28] -~w~To throw an ~h~explosive weapon~w~ press~h~ ~k~ ~PDFW~. ~w~The longer you hold~h~ ~k~ ~PDFW~ ~w~the further the weapon will go. - -[RATNG53] -Dishonorable - -[RATNG54] -Cheating Rat - -[RATNG55] -Shark - -[RATNG56] -Con Artist - -[RATNG57] -The Don of all Liars - -[RATNG11] -LEECH - -[CHASE6] -Liberty Tree Page 2 - -[CHASE7] -Liberty Tree Front page - -[AUTOLD] -Loading from Memory Stick™, do not remove Memory Stick™ or switch off the power. - -[LDFAIL] -Load failed. Save data is corrupted. - -[MEMCHKA] -Memory Stick™ is not found. At least - -[MEMCHKB] -is needed to save this game data. - -[MEMCHKC] -There is insufficient space on the Memory Stick™. At least - -[MEMCHKD] -is needed to save this game data. - -[M_FAIL] -MISSION FAILED! - -[M_OVER] -MISSION OVER! - -[M_PASS] -~Y~MISSION PASSED! ~n~$~1~ - -[M_PASSN] -~Y~MISSION PASSED! - -[MRACE11] -~w~Get back in a vehicle to finish the race - -[FEI_LE1] -Legend On - -[FEI_LE2] -Legend Off - -[FEI_TA1] -Target On - -[FEI_TA2] -Target Off - -[C1FREE2] -left analog stick - -[C3FREE2] -left analog stick - -[FEA_MP3] -CUSTOM TRACKS: - -[FEA_NA] -UNAVAILABLE - -[MPC_060] -Antonio - -[MPC_061] -Sweats - -[MPC_062] -Goodfella - -[MPC_063] -Wiseguy - -[MPC_064] -Kazuki - -[NUMDBL1] -DEBUG 1 (~1~) (~1~) - -[SVRMBRS] -PLAYER LIST: - -[RAMP_P] -RAMPAGE PASSED! - -[RAMP_F] -RAMPAGE FAILED! - -[MPWLPAC] -picked up a target car. - -[MPWLDAC] -delivered a target car. - -[LDWAIT] -Press ~X~ to continue. - -[LOADING] -Loading... Please wait - -[RACEP1] -1st - -[RACEP2] -2nd - -[RACEP3] -3rd - -[RACEP4] -4th - -[RACEP5] -5th - -[RACEP6] -6th - -[FEA_UT] -UNKNOWN TRACK - -[LOADIN2] -Loading... - -[DNH5_X2] -~r~You didn't set all the bombs. - -[MRACE12] -YOU HAVE - -[MRACE13] -SECONDS TO FIND SOME WHEELS - -[MRACE14] -SECOND TO FIND SOME WHEELS - -[DTB_03] -~w~The team who defends their cars the longest, wins. - -[PUPCOL] -collected a powerup - -[TNKCSE] -Damage the Tank to steal it from another player. - -[TNKTM] -Stay alive the longest in the Tank to win. - -[MPFAIL] -FAILED - -[GS_LOC2] -LOCATION: - -[DTBSWPA] -You held off the Sindaccos for - -[DTBSWPB] -Now trash their cars in less time. - -[DTBSWPC] -You trashed the Forelli cars in - -[DTBSWPD] -Now protect your cars for longer. - -[CHANOP] -Change Option - -[MPSSCT] -CASH TARGET: - -[F_RANG2] -~r~The fire truck radio doesn't work in the subway! - -[T_RANG2] -~r~There's no trash to collect in the subway! - -[T_RANGE] -~r~There's no trash to collect here! - -[FEU_YES] -YES - -[FEU_NO] -NO - -[HELP43] -~w~Using the handbrake will allow you to turn the boat more quickly. - -[RACE_T6] -~r~One of the cars was wrecked - the race has been called off! - -[FED_POS] -SCREEN POSITION - -[FES_DSS] -Select save game to delete: - -[FES_LSS] -Select save game to load: - -[FES_DSC] -Delete Successful. Select OK to continue. - -[FES_DEL] -Delete game - -[FES_DGM] -DELETE GAME - -[ITBEG] -In the beginning... - -[FET_LG] -LOAD GAME - -[FES_SCG] -Save the current game? - -[FESZ_QZ] -Are you sure you want to save this game? - -[FES_SSC] -Save Successful. Select OK to continue. - -[FEM_NTF] -The memory card (8MB)(for PlayStation®2) in MEMORY CARD slot 1 is unformatted. - -[FES_CFM] -Formatting memory card (8MB)(for PlayStation®2) in MEMORY CARD slot 1. Do not remove memory card (8MB)(for PlayStation®2), controller, or reset/switch off the console. - -[FES_LOQ] -Load failed! The save game on the memory card (8MB)(for PlayStation®2) in MEMORY CARD slot 1 is not compatible with the game. Please try loading a different save game. Now restarting game. - -[FEM_NTH] -No memory card (8MB)(for PlayStation®2) inserted in MEMORY CARD slot 1. - -[FES_CMP] -Save failed! Check the memory card (8MB)(for PlayStation®2) in MEMORY CARD slot 1 and please try again. - -[FESZ_FO] -The memory card (8MB)(for PlayStation®2) in MEMORY CARD slot 1 is unformatted. Do you wish to format it now? - -[FES_NOC] -No memory card (8MB)(for PlayStation®2) inserted in MEMORY CARD slot 1. - -[FES_LOE] -Load failed! Check memory card (8MB)(for PlayStation®2) in MEMORY CARD slot 1 and please try again. Now restarting game. - -[FES_DEE] -Delete failed! Please check memory card (8MB)(for PlayStation®2) in MEMORY CARD slot 1 and try again. - -[SLONFM] -Format failed! Please check memory card (8MB)(for PlayStation®2) in MEMORY CARD slot 1 and try again. - -[SLONDR] -Insufficient free space on memory card (8MB)(for PlayStation®2) in MEMORY CARD slot 1. Please insert a memory card (8MB)(for PlayStation®2) in MEMORY CARD slot 1 with at least 330KB of free space in order to save this game data. - -[SLNSP] -Insufficient free space on memory card (8MB)(for PlayStation®2) in MEMORY CARD slot 1. At least an additional 101KB of free space is needed on the memory card (8MB)(for PlayStation®2) in MEMORY CARD slot 1 to save this game data. - -[SLONNF] -The memory card (8MB)(for PlayStation®2) in MEMORY CARD slot 1 is unformatted. Do you wish to format it now? - -[FESZ_FF] -Format failed! Please check memory card (8MB)(for PlayStation®2) in MEMORY CARD slot 1 and try again. - -[MCDNSP] -No memory card (8MB)(for PlayStation®2) inserted in MEMORY CARD slot 1. If you wish to save your game data, insert a memory card (8MB)(for PlayStation®2) with at least 330KB of free space. Do you wish to start the game anyway? - -[MCGNDP] -There is insufficient free space on the memory card (8MB)(for PlayStation®2) in MEMORY CARD slot 1. At least 330KB of free space is needed to save this game data. Do you wish to start the game anyway? - -[MCGNSP] -There is insufficient free space on the memory card (8MB)(for PlayStation®2) in MEMORY CARD slot 1. At least an additional 101KB of free space is needed on the memory card (8MB)(for PlayStation®2) in MEMORY CARD slot 1 to save this game data. Do you wish to start the game anyway? - -[FESZ_WR] -Saving data. Do not remove memory card (8MB)(for PlayStation®2) in MEMORY CARD slot 1, controller, or reset/switch off the console. - -[FELD_WR] -Loading data. Do not remove memory card (8MB)(for PlayStation®2) in MEMORY CARD slot 1, controller, or reset/switch off the console. - -[FEDL_WR] -Deleting data. Do not remove memory card (8MB)(for PlayStation®2) in MEMORY CARD slot 1, controller, or reset/switch off the console. - -[C0VEWEA] -right analog stick - -[C1VEWEA] -right analog stick - -[C2VEWEA] -right analog stick - -[C3VEWEA] -directional buttons - -[C0PDLOO] -right analog stick - -[C1PDLOO] -right analog stick - -[C2PDLOO] -right analog stick - -[C3PDLOO] -right analog stick - -[C0AMMOV] -left analog stick, or directional buttons - -[C1AMMOV] -left analog stick, or directional buttons - -[C2AMMOV] -left analog stick, or directional buttons - -[C3AMMOV] -left analog stick, or directional buttons - -[FEC_ACB] -Accelerate/Brake - -[FEM_SL8] -Save File 8 Not Present - -[FES_SAV] -SAVE GAME - -[FES_FMS] -Format Successful. - -[MCDNCK] -Checking Memory Card (8MB)(for PlayStation®2) in MEMORY CARD slot 1. Do not remove memory card (8MB)(for PlayStation®2), controller, or reset/switch off the console. - -[FESZ_QC] -Proceed with overwriting this corrupted save game? - -[NOCONT] -Please connect a DUALSHOCK® analog controller or DUALSHOCK®2 analog controller to controller port 1 to continue. - -[FES_LCF] -Load failed! Check memory card (8MB)(for PlayStation®2) in MEMORY CARD slot 1 and please try again. - -[DBGHELP] -~h~DEBUG MENU~w~ Select Item with ~h~left button & right button. ~w~Press ~h~X button ~w~to launch. Press ~h~TRIANGLE button ~w~to quit menu. - -[DBGSEL1] -Level Skip Menu - -[DBGSEL2] -Car Viewer - -[DBGSEL3] -Character Viewer - -[DBGSEL4] -Building Viewer - -[DBGSEL5] -Weapon Cheat - -[DBGSEL6] -Player Cheat - -[DBGSEL7] -Weather and Time Changer - -[DBGSEL8] -Marketing Camera - -[DBGSEL9] -MoCap Menu - -[DBGSE10] -USJ Editor - -[DBGSE11] -Toggle Player Coordinates - -[DBGFIL0] -Ped Selector - -[DBGFIL1] -Car Selector - -[PLCHLD] -Placeholder: mission will complete in 5 seconds - -[PLCHLD2] -Placeholder Cutscene - -[PLCHLD3] -Placeholder (MOCAP) Cutscene - -[LS_MAC] -Ma Cipriani stream - -[LS_JDT] -J.D. O'Toole stream - -[LS_SAL] -Salvatore stream - -[LS_COMP] -Completed all Missions in this stream - -[TEMP1] -Number: ~1~ - -[LS2_H1] -Use ~h~analog up & down ~w~to select story stream. Use ~h~analog left & right ~w~to select mission. Use ~h~L button & R button ~w~to select an island. Press ~h~X button ~w~to start mission. Press ~h~TRIANGLE button ~w~to exit. - -[LS2_H2] -You cannot use levelskip when you are ~h~on a mission. - -[LS2_VIC] -~y~Vincenzo Cilli -~g~ ~a~ - -[LS2_MAC] -~y~Ma Cipriani -~g~ ~a~ - -[LS2_JDT] -~y~J.D. O'Toole -~g~ ~a~ - -[LS2_SAL] -~y~Salvatore -~g~ ~a~ - -[LS2_MAR] -~y~Maria -~g~ ~a~ - -[LS2_NED] -~y~Ned Burner -~g~ ~a~ - -[LS2_DON] -~y~Donald Love -~g~ ~a~ - -[LS2_RAY] -~y~Ray Machowski -~g~ ~a~ - -[LS2_TOS] -~y~Toshiko Kasen -~g~ ~a~ - -[FREEON] -Time Frozen - -[FREEOFF] -Time Unfrozen - -[WTC_INS] -Use ~h~analog up & down ~w~to change weather. Use ~h~analog left & right ~w~to change hour. Press ~h~TRIANGLE button ~w~to exit. Press ~h~SQUARE button ~w~to freeze time. - -[WTC_TIM] -TIME: ~1~:00 - -[WTC_WE0] -WEATHER: CLOUDY - -[WTC_WE1] -WEATHER: EXTRA COLOURS - -[WTC_WE2] -WEATHER: EXTRA SUNNY - -[WTC_WE3] -WEATHER: FOGGY - -[WTC_WE4] -WEATHER: HURRICANE - -[WTC_WE5] -WEATHER: RAINY - -[WTC_WE6] -WEATHER: SNOW - -[WTC_WE7] -WEATHER: SUNNY - -[CVHELP] -Use ~h~up button and down button ~w~to change character. Use ~h~left button and right button ~w~to rotate camera. HOLD ~h~SQUARE ~w~to zoom in (toggles upper and lower body). Press ~h~TRIANGLE ~w~to quit character viewer. - -[VMENU1] ---------- Select a Viewer --------- --- ~h~Car~w~ - Character - Building -- - -[VMENU2] ---------- Select a Viewer --------- --- Car - ~h~Character~w~ - Building -- - -[VMENU3] ---------- Select a Viewer --------- --- Car - Character - ~h~Building~w~ -- - -[CV_C] -COMPARISON MODEL - -[CV_0] -ROW: -- MODEL: player - -[CV_1] -ROW: 114 MODEL: cop - -[CV_2] -ROW: 115 MODEL: swat - -[CV_3] -ROW: 116 MODEL: fbi - -[CV_4] -ROW: 117 MODEL: army - -[CV_5] -ROW: 118 MODEL: medic - -[CV_6] -ROW: 119 MODEL: fireman - -[CV_7] -ROW: 71 MODEL: male01 - -[CV_9] -ROW: 120 MODEL: taxi_d - -[CV_10] -ROW: 2 MODEL: pimp - -[CV_11] -ROW: 13 MODEL: criminal01 - -[CV_12] -ROW: 14 MODEL: criminal02 - -[CV_13] -ROW: 15 MODEL: male02 - -[CV_14] -ROW: 16 MODEL: male03 - -[CV_15] -ROW: 121 MODEL: fatmale01 - -[CV_16] -ROW: 17 MODEL: fatmale02 - -[CV_17] -ROW: 18 MODEL: female01 - -[CV_18] -ROW: 19 MODEL: female02 - -[CV_19] -ROW: 20 MODEL: female03 - -[CV_20] -ROW: 21 MODEL: fatfemale01 - -[CV_21] -ROW: 22 MODEL: fatfemale02 - -[CV_22] -ROW: 23 MODEL: prostitute - -[CV_23] -ROW: 24 MODEL: prostitute2 - -[CV_24] -ROW: 25 MODEL: p_man1 - -[CV_25] -ROW: 26 MODEL: p_man2 - -[CV_26] -ROW: 27 MODEL: p_wom1 - -[CV_27] -ROW: 28 MODEL: p_wom2 - -[CV_28] -ROW: 29 MODEL: ct_man1 - -[CV_29] -ROW: 30 MODEL: ct_man2 - -[CV_30] -ROW: 31 MODEL: ct_wom1 - -[CV_31] -ROW: 32 MODEL: ct_wom2 - -[CV_32] -ROW: 33 MODEL: li_man1 - -[CV_33] -ROW: 34 MODEL: li_man2 - -[CV_34] -ROW: 35 MODEL: li_wom1 - -[CV_35] -ROW: 36 MODEL: li_wom2 - -[CV_36] -ROW: 37 MODEL: docker1 - -[CV_37] -ROW: 38 MODEL: docker2 - -[CV_38] -ROW: 39 MODEL: scum_man - -[CV_39] -ROW: 40 MODEL: scum_wom - -[CV_40] -ROW: 41 MODEL: worker1 - -[CV_41] -ROW: 42 MODEL: worker2 - -[CV_42] -ROW: 43 MODEL: b_man1 - -[CV_43] -ROW: 44 MODEL: b_man2 - -[CV_44] -ROW: 67 MODEL: b_man3 - -[CV_45] -ROW: 45 MODEL: b_wom1 - -[CV_46] -ROW: 46 MODEL: b_wom2 - -[CV_47] -ROW: 70 MODEL: b_wom3 - -[CV_48] -ROW: 47 MODEL: mod_man - -[CV_49] -ROW: 48 MODEL: mod_wom - -[CV_50] -ROW: 49 MODEL: st_man - -[CV_51] -ROW: 50 MODEL: st_wom - -[CV_52] -ROW: 51 MODEL: fan_man1 - -[CV_53] -ROW: 52 MODEL: fan_man2 - -[CV_54] -ROW: 53 MODEL: fan_wom - -[CV_55] -ROW: 54 MODEL: hos_man - -[CV_56] -ROW: 55 MODEL: hos_wom - -[CV_57] -ROW: 56 MODEL: const1 - -[CV_58] -ROW: 57 MODEL: const2 - -[CV_59] -ROW: 58 MODEL: shopper1 - -[CV_60] -ROW: 59 MODEL: shopper2 - -[CV_61] -ROW: 60 MODEL: shopper3 - -[CV_62] -ROW: 61 MODEL: stud_man - -[CV_63] -ROW: 62 MODEL: stud_wom - -[CV_64] -ROW: 63 MODEL: cas_man - -[CV_65] -ROW: 64 MODEL: cas_wom - -[CV_79] -ROW: 123 MODEL: gang01 LEONE_A - -[CV_80] -ROW: 124 MODEL: gang02 LEONE_B - -[CV_81] -ROW: 69 MODEL: gang03 TRIAD_A - -[CV_82] -ROW: 3 MODEL: gang04 TRIAD_B - -[CV_83] -ROW: 4 MODEL: gang05 DIABLO_A - -[CV_84] -ROW: 5 MODEL: gang06 DIABLO_B - -[CV_85] -ROW: 68 MODEL: gang07 YAKUZA_A - -[CV_86] -ROW: 6 MODEL: gang08 YAKUZA_B - -[CV_87] -ROW: 7 MODEL: gang09 YARDIE_A - -[CV_88] -ROW: 8 MODEL: gang10 YARDIE_B - -[CV_89] -ROW: 9 MODEL: gang11 COLOMBIAN_A - -[CV_90] -ROW: 10 MODEL: gang12 COLOMBIAN_B - -[CV_91] -ROW: 11 MODEL: gang13 HOOD_A - -[CV_92] -ROW: 12 MODEL: gang14 HOOD_B - -[CV_93] -ROW: 89 MODEL: gang15 Forelli thug1 - -[CV_94] -ROW: 90 MODEL: gang16 Forelli thug2 - -[CV_95] -ROW: 88 MODEL: gang17 Sindacco thug1 - -[CV_96] -ROW: 89 MODEL: gang18 Sindacco thug2 - -[CV_109] -ROW: 65 MODEL: SAL_01 Salvatore (Mob Don) - -[CV_110] -ROW: 66 MODEL: RAY_01 Ray (Bad Cop) - -[CV_111] -ROW: 72 MODEL: VINC_01 Vincenzo Cilli - -[CV_112] -ROW: 73 MODEL: GRDANG1 Avenging Angel - -[CV_113] -ROW: 74 MODEL: NED_01 Ned Burner (Reporter) - -[CV_114] -ROW: 75 MODEL: MASTOR Massimo Torrini (Assassin) - -[CV_115] -ROW: 76 MODEL: TOOL_01 JD O'Toole - -[CV_116] -ROW: 77 MODEL: Not used Fthr Kenny - -[CV_117] -ROW: 78 MODEL: GRDANG2 Avenging Angel 2 - -[CV_118] -ROW: 79 MODEL: M_HOLE Mayor RC Hole - -[CV_119] -ROW: 80 MODEL: FRANFOR Franco Forelli - -[CV_120] -ROW: 81 MODEL: KAZUKI Kazuki Kasen - -[CV_121] -ROW: 82 MODEL: PAULIE Paulie Sindacco - -[CV_122] -ROW: 83 MODEL: HOPPER Jane Hopper - -[CV_123] -ROW: 84 MODEL: AVERY Avery Carrington - -[CV_124] -ROW: 85 MODEL: CASA Giovanni Casa - -[CV_125] -ROW: 86 MODEL: BABY Giovanni Casa (baby) - -[CV_126] -ROW: 87 MODEL: MCAFFRY Det. Leon McAffrey - -[CV_127] -ROW: 92 MODEL: EIGHT 8Ball - -[CV_128] -ROW: 93 MODEL: MAR_01 Maria - -[CV_129] -ROW: 94 MODEL: LOVE_01 Donald Love - -[CV_130] -ROW: 95 MODEL: MICKEYH Mickey H - -[CV_131] -ROW: 96 MODEL: WAYNE Wayne (Biker Dude) - -[CV_132] -ROW: 97 MODEL: BIKER1 Biker Dude 1 - -[CV_133] -ROW: 98 MODEL: BIKER2 Biker Dude 2 - -[CV_134] -ROW: 99 MODEL: DONOVAN O'Donovan - -[CV_135] -ROW: 100 MODEL: KAS_01 Toshiko Kasen (kimono) - -[CV_136] -ROW: 101 MODEL: WKAS_01 Toshiko Kasen (western) - -[CV_137] -ROW: 104 MODEL: JDMADE JD O'Toole - Made Man - -[CV_138] -ROW: 106 MODEL: THUG_01 Sicilian Thug 1 - -[CV_139] -ROW: 107 MODEL: THUG_02 Sicilian Thug 2 - -[CV_140] -ROW: 109 MODEL: CAMP_MAN Campaign Worker - -[CV_141] -ROW: 110 MODEL: CAMP_WOM Campaign Worker 2 - -[CV_142] -ROW: 111 MODEL: MIGUEL Miguel - -[CV_143] -ROW: 112 MODEL: DELIASS Deli Assistant - -[CV_144] -ROW: 113 MODEL: HOBO_01 Donald Love 2 - -[CV_68] -ROW: 122 MODEL: HITMAN Hitman - -[CV_146] -ROW: 125 MODEL: HOLEJOG Mayor RC Hole (Jogging outfit) - -[CV_147] -ROW: 126 MODEL: Chauff Chauffeur - -[CV_148] -ROW: 128 MODEL: plr2 (Lawyer) - -[CV_149] -ROW: 129 MODEL: plr3 (Travel clothes) - -[CV_150] -ROW: 130 MODEL: plr4 (Chauffeur) - -[CV_151] -ROW: 131 MODEL: plr5 (Hockey mask) - -[CV_152] -ROW: 132 MODEL: plr6 (Tuxedo) - -[CV_153] -ROW: 133 MODEL: plr7 (Avenging Angel) - -[CV_154] -ROW: 134 MODEL: plr8 (The King of Rock'n Roll) - -[CV_155] -ROW: 135 MODEL: plr9 (Cock's Mascot) - -[CV_156] -ROW: 136 MODEL: plr10 (Boxer Shorts) - -[CV_157] -ROW: 137 MODEL: plr11 (Bad Super Hero) - -[CV_158] -ROW: 138 MODEL: plr12 (Dragon) - -[CV_159] -ROW: 139 MODEL: PHILC Phil Cassidy - -[CV_160] -ROW: 140 MODEL: GREASE Grease Zuko - -[CV_161] -ROW: 141 MODEL: GUN_ASS Gun assistant - -[CV_162] -ROW: -- MODEL: JD_shot JD shot dead - -[CV_163] -ROW: -- MODEL: BODYBAG bodybag - -[CV_164] -ROW: 142 MODEL: SAL_CON Sal Convict - -[VV_131] -ID:131 MODEL: Landstalker (TBC) - -[VV_135] -ID:135 MODEL: Perenial (TBC) - -[VV_138] -ID:138 MODEL: Firetruck - -[VV_141] -ID:141 MODEL: Manana (TBC) - -[VV_148] -ID:148 MODEL: FBI Car (TBC) - -[VV_152] -ID:152 MODEL: Kuruma (TBC) - -[VV_164] -ID:164 MODEL: Dodo (TBC) - -[VV_169] -ID:169 MODELL: Rc Bandit - -[VV_170] -ID:170 MODEL: BellyUp (Triad) (TBC) - -[VV_172] -ID:172 MODEL: Leone Sentinel (TBC) - -[VV_174] -ID: 174 MODEL: Yakuza (TBC) - -[VV_179] -ID:179 MODEL: Flatbed (TBC) - -[VV_181] -ID:181 MODEL: Borgnine Taxi (TBC) - -[VV_188] -ID: 188 MODEL: Sindacco Argento (TBC) - -[VV_189] -ID: 189 MODEL: Forelli Lexcess (TBC) - -[VV_192] -ID:192 MODEL: Speeder (TBC) - -[BV_H1] -Press CIRCLE to swap building model. - -[BV_0A] -ROW: 2 - Portland. Safehouse Exterior. Press CIRCLE to swap. - -[BV_0B] -ROW:24 - Portland. Safehouse Interior. Press CIRCLE to swap. - -[BV_1] -ROW: 3 - Portland. Ferry Terminal. - -[BV_2A] -ROW: 4 - Portland. Callahan Bridge 1. Press CIRCLE to swap. - -[BV_2B] -ROW: 4 - Portland. Callahan Bridge 2. Press CIRCLE to swap. - -[BV_3] -ROW: 5 - Portland. Les Cargo Freighter. - -[BV_4A] -ROW: 6 - Portland. Doll's House Brothel 1. Press CIRCLE to swap. - -[BV_4B] -ROW: 6 - Portland. Doll's House Brothel 2. Press CIRCLE to swap. - -[BV_5] -ROW: 7 - Portland. Tower Block. - -[BV_6] -ROW: 8 - Portland. Eddie's Garage. - -[BV_7] -ROW: 9 - Portland. Bowler's Fist Pub. - -[BV_8] -ROW:10 - Portland. Hepburn Heights. - -[BV_9] -ROW:11 - Portland. Short Stay Hotel. - -[BV_10] -ROW:12 - Portland. Car Dealership. - -[BV_11] -ROW:13 - Portland. Bus Graveyard. - -[BV_12A] -ROW:14 - Portland. Drugs Warehouse 1 (awaiting approval). Press CIRCLE to swap. - -[BV_12B] -ROW:14 - Portland. Drugs Warehouse 2 (awaiting approval). Press CIRCLE to swap. - -[BV_13] -ROW:15 - Portland. Ma Cipriani's Restaurant. - -[BV_14] -ROW:17 - Portland. Basketball Court, Callahan. - -[BV_15] -ROW:18 - Portland. Bike Shop. - -[BV_16] -ROW:19 - Portland. Building near Basketball Court. - -[BV_17A] -ROW:20 - Portland. Luigi's Nightclub 1. - -[BV_17B] -ROW:20 - Portland. Luigi's Nightclub 2. - -[BV_17C] -ROW:20 - Portland. Luigi's Nightclub 3. - -[BV_18] -ROW:21 - Portland. Casa's Gourmet Deli. - -[BV_19] -ROW:22 - Portland. Rusty Ship. - -[BV_20] -ROW:23 - Portland. Door for Shopfront. - -[BV_21] -ROW:25 - Staunton. Casino. - -[BV_22] -ROW:26 - Staunton. Phil Cassidy's Store. - -[BV_23] -ROW:27 - Staunton. Zip store. - -[BV_24] -ROW:28 - Staunton. Container Park. - -[BV_25] -ROW:29 - Staunton. Ferry Terminal. - -[BV_26A] -ROW:30 - Staunton. Fort Staunton 1 NORTH. - -[BV_26B] -ROW:30 - Staunton. Fort Staunton 2 NORTH. - -[BV_27A] -ROW:30 - Staunton. Fort Staunton 1 SOUTH. - -[BV_27B] -ROW:30 - Staunton. Fort Staunton 2 SOUTH. - -[BV_28] -ROW:31 - Ferry - Not Visible At Present. - -[BV_29A] -ROW:32 - Staunton. Safehouse Exterior (unchanged). Press CIRCLE to swap. - -[BV_29B] -ROW:32 - Staunton. Safehouse Interior. Press CIRCLE to swap. - -[BV_30] -ROW:33 - Staunton. Steps Added To Building. - -[BV_31] -ROW:34 - Portland. Outbuilding. - -[BV_32A] -ROW:34 - Shoreside. Safehouse Exterior (unchanged). Press CIRCLE to swap. - -[BV_32B] -ROW:34 - Shoreside. Safehouse Interior. Press CIRCLE to swap. - -[BV_33] -Not in Doc - Staunton - Warehouse Interior (not internally approved). - -[BV_34A] -Not in Doc - Staunton - Church Exterior. Press CIRCLE to swap. - -[BV_34B] -Not in Doc - Staunton - Church Interior for scripted cutscene. Press CIRCLE to swap. - -[MODWOR] -Modify World Speed - -[MODTIT] -Changing World Speed - -[NEDS2] -The Passion Of The Heist - -[NEDS3] -Karmageddon - -[NEDS4] -False Idols - -[DONS1] -The Morgue Party Candidate - -[GAR_WIL] -Drive the car into the garage. - -[DONS2] -Steering The Vote - -[DONS3] -Cam-Pain - -[DONS4] -Friggin' The Riggin' - -[DONS5] -Love & Bullets - -[DONS6] -Counterfeit Count - -[DONS7] -Love On The Rocks - -[DONS7AA] -Toni, you gotta help me! - -[DONS7AB] -O'Donovan's got evidence linking me to Salvatore, we're sunk! - -[DONS7AC] -Calm down, evidence goes missing every day. - -[DONS7AD] -Not to mention judges, witnesses, jurors... - -[DONS7AE] -I'd hoped you'd see it that way. - -[DONS7AF] -One of my men has been following the guy with the evidence. - -[DONS7AG] -He'll meet you under the overpass in Newport. - -[SALS1] -A Walk In The Park - -[SALS2] -Making Toni - -[SALS3] -Caught In The Act - -[SALS4] -Search And Rescue - -[SALS5] -Taking The Peace - -[SALS6] -Shoot The Messenger - -[RAYS1] -Sayonara Sindaccos - -[RAYS2] -The Whole 9 Yardies - -[RAYS3] -Crazy '69' - -[RAYS4] -Night Of The Livid Dreads - -[RAYS5] -Munitions Dump - -[MC_01] -MOCAP Scenes - -[MC_02] -You cannot be on a mission when using the cutscene selector. - -[MC_04] -Select the scene you want and press CROSS. Press TRIANGLE to exit. - -[MC_03] -~g~scene name - script name~w~ - -[MC_S01] -1. Biker - mar4 - -[MC_S02] -2. Bonevoy - jdt1 - -[MC_S03] -3. Campain - dons3 - -[MC_S04] -4. Cashchp - tosh4 - -[MC_S05] -5. Contban - sal5 - -[MC_S06] -6. Crazy69 - rays3 - -[MC_S07] -7. Cuttest - none - -[MC_S08] -8. Deadly - tosh1 - -[MC_S09] -9. Donprob - donh6 - -[MC_S10] -10. Drivnmr - sal8 - -[MC_S11] -11. Electon - dons7 - -[MC_S12] -12. Homswet - vic1 - -[MC_S13] -13. Hotwhel - vic6 - -[MC_S14] -14. Kidnapp - jdt5 - -[MC_S15] -15. Landgrb - donh1 - -[MC_S16] -16. Morgue - dons1 - -[MC_S17] -17. Overdos - mar5 - -[MC_S18] -18. Rufjust - salh1 - -[MC_S19] -19. Sayonar - rays1 - -[MC_S20] -20. sicilan - salh5 - -[MC_S21] -21. Theofer - sal1 - -[MC_S22] -22. Intro - -[MC_S23] -23. Final - -[MC_S24] -24. Final_2 - -[NEDS1] -L.C. Confidential - -[WILGAR2] -Leave the car and get outside. - -{=================================== MISSION TABLE SAL1 ===================================} - -[SAL1_M1:SAL1] -~w~Salvatore wants to talk. - -[SAL1_M2:SAL1] -~w~I'm not playing Salvatore's game. - -[SAL1_M3:SAL1] -~w~Thanks for the donation, kid... see you around. - -[SAL1_M5:SAL1] -~w~Hey! - -[SAL1_D1:SAL1] -~w~Hey! Strike breaker! - -[SAL1_D2:SAL1] -~w~Get him! - -[SAL1_D3:SAL1] -~w~There he is! - -[SAL1_D4:SAL1] -~w~He's over there! - -[SAL1_E1:SAL1] -~w~Escape from the docks! - -[SAL1_A1:SAL1] -~w~Meet the Union boss, Jane Hopper, at ~y~Portland Docks. - -[THEO_01:SAL1] -Eh, boss, you okay? - -[THEO_02:SAL1] -Do I look okay? - -[THEO_03:SAL1] -No. - -[THEO_04:SAL1] -Then what are you? A fuckin' moron? - -[THEO_05:SAL1] -You're always saying the obvious. - -[THEO_06:SAL1] -I can't believe I'm surrounded by people like you. - -[THEO_07:SAL1] -Sorry. - -[THEO_08:SAL1] -Listen, I'm sorry. Toni, you're one of my most trusted allies. - -[THEO_09:SAL1] -After what you did, you're like a son to me - better than my son, - -[THEO_10:SAL1] -better than any son. - -[THEO_11:SAL1] -Your mother's a lucky woman. - -[THEO_12:SAL1] -So I hear. - -[THEO_13:SAL1] -Anthony, its over for guys like us. - -[THEO_14:SAL1] -We're dinosaurs. Or dodos. Or dildos. Or something. - -[THEO_15:SAL1] -I tell you, even in my own family I feel like Jesus surrounded by twelve Judases. - -[THEO_16:SAL1] -I mean, listen to this; - -[THEO_17:SAL1] -I got a union boss - a broad no less - that I need to do me a favor, - -[THEO_18:SAL1] -and she asks me for money? - -[THEO_19:SAL1] -All I wanted was 24 hour access to the docks, while the strike was going on, - -[THEO_20:SAL1] -strikes that I helped organize, so my boys could offload some drugs, - -[THEO_21:SAL1] -and now I get this horse shit! - -[THEO_22:SAL1] -I mean these are people that I personally fought for, - -[THEO_23:SAL1] -people I've killed for, honest people. - -[THEO_26:SAL1] -It's a disgrace. We're finished, men of honor like you and me. - -[THEO_27:SAL1] -Listen, Toni, I want you to take something to her. - -[THEO_28:SAL1] -You're gonna take this crap off a broad? - -[THEO_29:SAL1] -For now what choice do I have? - -[THEO_30:SAL1] -Look, go down there, pay her off - and tell her I'd like to have a word with her. - -[THEO_31:SAL1] -Go. - -[THEO_24:SAL1] -- And this is how they repay me? ~n~ - It's insulting. - -{=================================== MISSION TABLE SAL2 ===================================} - -[SAL2_N:SAL2] -Girls - -[SAL2_A0:SAL2] -~w~Is this one of your new doggies, Sal? - -[SAL2_A1:SAL2] -~w~Mr. Leone? - -[SAL2_A2:SAL2] -~w~Toni! Come sta? - -[SAL2_A3:SAL2] -~w~I'm glad you showed up. I want you to do something for me... - -[SAL2_A4:SAL2] -~w~If I can't get that bitch of a union boss on my side, I can sure as shit get her guys to play along. You capiche? - -[SAL2_A:SAL2] -~w~Collect six ~b~hookers~w~ and take them to the picket line at Portland Docks. - -[SAL2_B0:SAL2] -~w~Honey! I don't dig on that two girl - one guy shit! - -[SAL2_B1:SAL2] -~w~When you get more room, we'll get a room! I ain't traveling on no roof rack, Sugar! - -[SAL2_D0:SAL2] -~w~Are you all alone, Sweetie? - -[SAL2_D1:SAL2] -~w~Hey, good-lookin'! You wanna have some fun? - -[SAL2_D2:SAL2] -~w~Honey... you and me are gonna party! - -[SAL2_D3:SAL2] -~w~So, where's the party, Sugar? - -[SAL2_D4:SAL2] -~w~Hey, baby! Looking for a good time? - -[SAL2_D5:SAL2] -~w~Hi, Sugar! ...I'm Candy! - -[SAL2_F0:SAL2] -~w~Hey! I'm coming too! - -[SAL2_F1:SAL2] -~w~So it's just you and me now huh? - -[SAL2_F2:SAL2] -~w~Are we gonna get it on or what? - -[SAL2_F3:SAL2] -~w~So, where's the party? - -[SAL2_F4:SAL2] -~w~Aw, gee! Don't be like that. - -[SAL2_F5:SAL2] -~w~I just wanna party with ya! - -[SAL2_G0:SAL2] -~w~Take her to the ~y~picket line! - -[SAL2_G1:SAL2] -~w~Take the girls to the ~y~picket line! - -[SAL2_G2:SAL2] -~w~Deal with the ~r~client! - -[SAL2_G3:SAL2] -~w~Deal with the ~r~clients! - -[SAL2_G4:SAL2] -~w~Pick up more ~b~girls! - -[SAL2_H:SAL2] -~w~So, where's the party, Sugar? - -[SAL2_P:SAL2] -~w~Have fun guys! Compliments of Salvatore Leone! - -[SAL2_I0:SAL2] -~w~Get your own girl! Butt-head! This one's mine! - -[SAL2_I1:SAL2] -~w~Hey! What are you, some kind of peeping tom! - -[SAL2_I3:SAL2] -~w~Hey! Who the Hell is that! Let's get him! - -[SAL2_I5:SAL2] -~w~Hey, Buddy! Get in line! We were here first. - -[SAL2_I7:SAL2] -~w~You're the best! Don't stop... oh yeah, daddy! - -[SAL2_I9:SAL2] -~w~So get busy... - -[SAL2_K0:SAL2] -~w~Never mess with Toni Cipriani! - -[SAL2_K1:SAL2] -~w~Come on! Let's go! - -[SAL2_K2:SAL2] -~w~Let's go girl! Move your ass! - -[SAL2_C0:SAL2] -~w~Hey! Come back, Baby! ...I ain't gonna bite! - -[SAL2_C1:SAL2] -~w~Hey! Baby! Where you goin'? - -[SAL2_L0:SAL2] -~w~I ain't waiting around here all day asshole! - -[SAL2_L1:SAL2] -~w~Honey, I'm running a meter here! - -[SAL2_X0:SAL2] -~r~Out of time! - -[SAL2_X1:SAL2] -~r~You've killed too many hookers! - -[SAL2_X2:SAL2] -~r~You attacked the dockers. They'll never trust you now! - -[SAL2_X3:SAL2] -~r~You attacked the dockers' girls. They'll never trust you now! - -[SAL2_G5:SAL2] -~w~Looks like you've got an admirer. - -[SAL2_I8:SAL2] -~w~Honey, you don't want to go to jail do you? - -[SAL2_I6:SAL2] -~w~Yes! Yes! ... - -[SAL2_M:SAL2] -~w~Try not to kill them! Find another ~b~girl. - -[SAL2_W1:SAL2] -~w~You only have until 0~1~:~1~ before the picket line changes shift! - -[SAL2_W2:SAL2] -~w~You only have until ~1~:~1~ before the picket line changes shift! - -[SAL2_G6:SAL2] -~w~Stop in the ~y~yellow marker~w~ to drop the girls off. - -[SAL2_G7:SAL2] -~w~Disturb the client to get the ~b~girl~w~ out of the car. - -[SAL2_B:SAL2] -~w~You can't fit any more girls in your car. - -{=================================== MISSION TABLE SAL3 ===================================} - -[SAL3_A0:SAL3] -~w~Toni! How are you my boy? - -[SAL3_A1:SAL3] -~w~You look a little thin. Isn't your mamma feeding you right? - -[SAL3_A2:SAL3] -~w~I'm good Mr. Leone. - -[SAL3_A3:SAL3] -~w~Listen, these union guys - they're getting me pissed. - -[SAL3_A5:SAL3] -~w~...but we just need to turn up the heat on some of the 'less than receptive' union big shots. - -[SAL3_B0:SAL3] -~w~Scare the ~r~union big shots.~w~ Make sure they get the picture! - -[SAL3_B3:SAL3] -~w~They should do as they're told from now on. - -[SAL3_BA:SAL3] -~w~You're crazy man! I don't want no more trouble! - -[SAL3_CA:SAL3] -~w~What are you doing? Are you crazy?! - -[SAL3_DA:SAL3] -~w~I only had two more payments on that car! You son of a bitch! - -[SAL3_BB:SAL3] -~w~From now on you do as you're told! - -[SAL3_CB:SAL3] -~w~Stay out of Leone business! - -[SAL3_A4:SAL3] -~w~It looks like some of them are starting to see things my way - -[SAL3_A6:SAL3] -~w~You know what I'm talking about? - -[SAL3_B1:SAL3] -~w~You can't make your point if they're all dead. Don't kill any more ~r~union bosses! - -[SAL3_B2:SAL3] -~r~You're supposed to scare 'em, not kill 'em! - -[SAL3_B4:SAL3] -~w~Find another ~r~union boss~w~ to set straight. - -{=================================== MISSION TABLE SAL5 ===================================} - -[SAL5_D3:SAL5] -~w~Drive the ~h~vehicle ~w~into the garage. - -[SAL5_D4:SAL5] -~w~Get out of the vehicle and leave the ~h~garage. - -[SAL5_B:SAL5] -~w~Get a vehicle with four seats and pick up some ~b~backup. - -[SAL5_C:SAL5] -~w~You'll need a vehicle with four seats. - -[SAL5_C0:SAL5] -~w~Pick up your ~b~backup. - -[SAL5_C1:SAL5] -~w~You will need a vehicle with more seats to carry more ~b~backup. - -[SAL5_C2:SAL5] -~w~Head down to ~y~Portland Docks. - -[SAL5_AA:SAL5] -~w~Heeey... Ese... you were supposed to be here hours ago! - -[SAL5_AB:SAL5] -~w~Quit whining Miguel. You got the stuff? - -[SAL5_AG:SAL5] -~w~...you got our money? - -[SAL5_AH:SAL5] -~w~Sure... - -[SAL5_AI:SAL5] -~w~What? - -[SAL5_AJ:SAL5] -~w~You greaseball fuck! - -[SAL5_C8:SAL5] -~w~Get in the drugs ~b~vehicle~w~ and get the hell out of there! - -[SAL5_C9:SAL5] -~w~Take the vehicle to ~y~Salvatore's lockup. - -[SAL5_D1:SAL5] -~w~Get back into the ~b~vehicle! - -[SAL5_D2:SAL5] -~r~The drugs were destroyed! - -[SAL5_AF:SAL5] -~w~Heh heh ha! I like you Toni. You got big balls - like a bull! - -[SAL5_C3:SAL5] -~w~Lose the cops! - -[SAL5_D5:SAL5] -~r~The drugs have been seized! - -[SAL5_AD:SAL5] -~w~Hey, I'm a busy man Toni. Next time I'll find another buyer! - -[SAL5_AE:SAL5] -~w~Yeah, I doubt you'd find anyone else who pays what we do. - -[SAL5_D6:SAL5] -~w~Take out the ~r~drug dealers. - -[CONT_01:SAL5] -Shut up, you ungrateful bitch. - -[CONT_06:SAL5] -That's the only time you touch me these days. - -[CONT_07:SAL5] -Why the fuck would I wanna touch you? - -[CONT_08:SAL5] -I don't like used goods. - -[CONT_09:SAL5] -You revolt me. - -[CONT_12:SAL5] -Oh please. You know what? - -[CONT_15:SAL5] -Hi, Toni... - -[CONT_16:SAL5] -I want my money, old man! - -[CONT_17:SAL5] -Get outta here, you tramp. - -[CONT_18:SAL5] -Hey, Anthony, you're an angel of mercy. - -[CONT_19:SAL5] -Women, what are you gonna do about them, huh? - -[CONT_20:SAL5] -Luckily, I can trust someone in my life - you, Toni. - -[CONT_21:SAL5] -You're very important to me. Did I ever tell you that? - -[CONT_22:SAL5] -You can't even get it up you old bastard. - -[CONT_23:SAL5] -Not for you. I don't like using public toilets, you slut! - -[CONT_24:SAL5] -Very important. So listen - it's you and me now. We're in charge. - -[CONT_25:SAL5] -We've got those fools on the run. - -[CONT_26:SAL5] -How would you know? You're more interested in hanging out with men! - -[CONT_27:SAL5] -And you're only happy when you've got your drawers around your ankles - -[CONT_28:SAL5] -and your back against a wall! - -[CONT_29:SAL5] -Christ - I've met rabbits who like to fuck less than you! - -[CONT_33:SAL5] -Anyway, I got a shipment of you know what coming in. - -[CONT_34:SAL5] -This is going to put us - you and me - on the map big time. - -[CONT_35:SAL5] -Everything should run smooth. - -[CONT_36:SAL5] -I just need someone - someone I trust - to take care of things for me. - -[CONT_37:SAL5] -Alright Toni, I'll talk to you later. - -[CONT_38:SAL5] -And another thing - I never met a girl with hydraulic underwear. - -[CONT_39:SAL5] -It amazes me! Christ! Why did I marry her? - -[CONT_40:SAL5] -I was looking for a tramp, I married a slut! - -[CONT_41:SAL5] -I must have really pissed someone off in my past life, - -[CONT_42:SAL5] -I'll tell you that much. - -[CONT_02:SAL5] -- I'll knock you into next week if I hear another word from you. ~n~ - Oh, that's right, big dick. - -[CONT_04:SAL5] -- What are you gonna do? Hit me? ~n~ - Why I oughta... - -[CONT_10:SAL5] -- Me? Revolt you? What? ~n~ - Yeah! Revolt! - -[CONT_13:SAL5] -- My daddy was right when he said you were nothing but a fat slob... ~n~ - Yeah yeah yeah yeah... - -[CONT_43:SAL5] -- So listen, this is important... ~n~ - Fuck you, Salvatore Leone, - -[CONT_31:SAL5] -- you no dick bullying wife beating piece of Italian shit. ~n~ - Fuck me? Fuck you! In fact, everyone has! - -{=================================== MISSION TABLE SAL4 ===================================} - -[SAL4_I1:SAL4] -~w~This strike will continue until I get some assurances from this city! - -[SAL4_I2:SAL4] -~w~Mafiosi, thinking they can run the union, can think again! - -[SAL4_I3:SAL4] -~w~They don't scare me! - -[SAL4_I4:SAL4] -~w~I've got bigger balls than all of them! - -[SAL4_I5:SAL4] -~w~Listen to this shit. - -[SAL4_I6:SAL4] -~w~I should call a hit on this bitch. She's taking me for a ride! - -[SAL4_I7:SAL4] -~w~...well two can play at that game. - -[SAL4_I8:SAL4] -~w~Toni, you're gonna deliver a message for me! - -[SAL4_A2:SAL4] -~w~Now remove the ~r~Chauffeur~w~ from the equation. - -[SAL4_A3:SAL4] -~w~Hey! - -[SAL4_A4:SAL4] -~w~Get in the ~b~Limo. - -[SAL4_A5:SAL4] -~w~Get the Limo back to the ~y~Radio Station! - -[SAL4_A6:SAL4] -~w~Now, wait for Hopper. - -[SAL4_A7:SAL4] -~w~Put the Limo back in the correct position. Hopper must not suspect anything is wrong. - -[SAL4_B1:SAL4] -~w~Harwood Ferry Station, and step on it! - -[SAL4_B2:SAL4] -~w~You said it! - -[SAL4_C1:SAL4] -~w~Scare the hell out of Hopper! - -[SAL4_C2:SAL4] -Scare - -[SAL4S1:SAL4] -~w~Hey, take it easy, we're not in a race! - -[SAL4S2:SAL4] -~w~Are we going the right way? - -[SAL4S3:SAL4] -~w~Hey, you're not my regular driver! - -[SAL4S4:SAL4] -~w~Who the hell are you?! - -[SAL4S5:SAL4] -~w~Shut up! - -[SAL4S6:SAL4] -~w~From now on you do exactly what Salvatore Leone tells you to! - -[SAL4S7:SAL4] -~w~Capiche? - -[SAL4S8:SAL4] -~w~I... I refuse to be scared by this! - -[SAL4S9:SAL4] -~w~We'll see! - -[SAL4S10:SAL4] -~w~Let me out right now! - -[SAL4S11:SAL4] -~w~Please! You'll kill us both! - -[SAL4S12:SAL4] -~w~Noooooo! - -[SAL4S13:SAL4] -~w~What did I do to deserve this? - -[SAL4_F1:SAL4] -~w~Where's my limo? - -[SAL4_F2:SAL4] -~w~You're not my driver, I'm calling the police! - -[SAL4_F3:SAL4] -~r~Too late, Hopper is on to you! - -[SAL4_F4:SAL4] -~w~Salvatore can get screwed! - -[SAL4_F5:SAL4] -~r~The Limo's been destroyed! - -[SAL4_F6:SAL4] -~r~Hopper is dead! - -[SAL4_F7:SAL4] -~r~Hopper got away! - -[SAL4_F8:SAL4] -~r~The beat up Limo spooked Hopper. - -[SAL4_F9:SAL4] -~r~Hopper was spooked. - -[SAL4_P1:SAL4] -~w~OK! OK! I've had enough! - -[SAL4P1A:SAL4] -~w~I'll do whatever you want. - -[SAL4_P2:SAL4] -~w~Take Hopper to the ~y~ferry station picket line. - -[SAL4_P3:SAL4] -~w~And don't forget our little agreement, Lady! - -[SAL4_H1:SAL4] -~w~A variety of speed, collisions, and stunt jumps should scare Hopper into submission. - -[SAL4_F0:SAL4] -~r~Too late! Hopper has left the radio station! - -[SAL4_A:SAL4] -~w~Make it to the ~y~Radio Station~w~ before Hopper leaves at 0~1~:00. - -[SAL4_A1:SAL4] -~w~Make it to the ~y~Radio Station~w~ before Hopper leaves at ~1~:00. - -{=================================== MISSION TABLE SAL6 ===================================} - -[SAL6_A0:SAL6] -~w~Toni, we got trouble. Big trouble! - -[SAL6_A1:SAL6] -~w~What is it Sal? - -[SAL6_A3:SAL6] -~w~They're kicking our asses! - -[SAL6_A4:SAL6] -~w~We just finish one God-damn war and BANG! We're right in the middle of another! - -[SAL6_A5:SAL6] -~w~I swear - just when things were looking up - I'm cursed! I'm fucking cursed! - -[SAL6_A6:SAL6] -~w~Hey! Don't worry about a thing boss! I'll deal with this. - -[SAL6_AA:SAL6] -~w~Sal has left the weapons you'll need in the garage. - -[SAL6_B:SAL6] -~w~Stop the ~r~Diablo~w~ onslaught before all the Leone wise-guys are killed! - -[SAL6_1:SAL6] -~w~Only ~1~ Leones are left alive! - -[SAL6_2:SAL6] -~w~Only 1 Leone is left alive! - -[SAL6_C1:SAL6] -~w~We're getting massacred here, Toni! - -[SAL6_C2:SAL6] -~w~I don't get paid enough for this shit, man! - -[SAL6_C3:SAL6] -~w~You're crazy Toni! We're all gonna die! - -[SAL6_E1:SAL6] -~w~Sal? - -[SAL6_E2:SAL6] -~w~Toni! Is it over? How'd it go? - -[SAL6_E3:SAL6] -~w~It's not good Sal. - -[SAL6_E4:SAL6] -~w~I saved a few guys, but we'd lost too many before I got here. - -[SAL6_E5:SAL6] -~w~I think we're gonna lose this part of town. - -[SAL6_E6:SAL6] -~w~Over my dead body! This ain't done yet! - -[SAL6_E7:SAL6] -~w~I ain't losing shit! The Leones don't retreat from nothing! - -[SAL6_E8:SAL6] -~w~Are you hearing me, Toni? - -[SAL6_E9:SAL6] -~w~You said it Sal. - -[SAL6_G0:SAL6] -~r~All of the Leone men are dead. - -[SAL6_Z1:SAL6] -Leones - -[SAL6_Z2:SAL6] -Diablos - -[SAL6_X0:SAL6] -Got threat - -[SAL6_X1:SAL6] -Had threat - -[SAL6_X2:SAL6] -Find threat - -[SAL6_X3:SAL6] -Complain - -[SAL6_C0:SAL6] -~w~Screw them! Let's get the fuck outta here! - -[SAL6_A2:SAL6] -~w~What's the world coming to? We got the Diablos crawling all over us in Hepburn! - -{=================================== MISSION TABLE SAL7 ===================================} - -[SAL7_01:SAL7] -~w~Hey, Sal! - -[SAL7_02:SAL7] -~w~Toni! What do you think of the new car? - -[SAL7_05:SAL7] -~w~She's a beauty, huh? Fully loaded, top of the line. - -[SAL7_A6:SAL7] -~w~...oh, yeah, Mid-Life Crisis! - -[SAL7_07:SAL7] -~w~Shut up! Toni listen. - -[SAL7_08:SAL7] -~w~I got a shit load of money that needs to be picked up from my warehouse down at Callahan Point. - -[SAL7_10:SAL7] -~w~I don't trust anyone else to do this. - -[SAL7_11:SAL7] -~w~Are you girls gonna talk all day, or are we driving? - -[SAL7_12:SAL7] -~w~God-damn it woman! Did I tell you you could speak? - -[SAL7_20:SAL7] -~w~Come on! Hurry up! - -[SAL7_21:SAL7] -~w~Okay... - -[SAL7_22:SAL7] -~w~Let's go! - -[SAL7_23:SAL7] -~w~Hey, Toni! Come sta? - -[SAL7_30:SAL7] -~w~Go to the ~y~warehouse. - -[SAL7_40:SAL7] -~w~Collect all of Salvatore's money before it goes up in flames! - -[SAL7_50:SAL7] -~w~Take the loot back to ~y~Salvatore's. - -[SAL7_NM:SAL7] -~w~Get back in there! You haven't got all of the ~g~money. - -[SAL7_E1:SAL7] -~w~Kill him! - -[SAL7_E2:SAL7] -~w~Die! - -[SAL7_E3:SAL7] -~w~There's one! - -[SAL7_E4:SAL7] -~w~I can see him! - -[SAL7_T1:SAL7] -~w~Back off! - -[SAL7_T2:SAL7] -~w~How you feeling now! - -[SAL7_T3:SAL7] -~w~Come on! - -[SAL7_T4:SAL7] -~w~Eat this! - -[SAL7_F1:SAL7] -~r~You didn't collect Salvatore's money in time! - -[SAL7_06:SAL7] -~w~What's that smell? - -[SAL7_42:SAL7] -~w~Collect the ~g~money~w~ before it goes up in flames! - -{=================================== MISSION TABLE SAL8 ===================================} - -[SAL8_VE:SAL8] -~r~v1.2 - -[SAL8_11:SAL8] -~w~Get a car Toni and let's get moving... - -[SAL8_12:SAL8] -~w~Head towards the ferry terminal. - -[SAL812A:SAL8] -~w~But the strike's still on... there won't be any ferries. - -[SAL812B:SAL8] -~w~Just drive. I'll do the thinking. - -[SAL8_14:SAL8] -~w~Jesus Christ! The cops are crawling all over this place! Get us the fuck out of here! - -[SAL8_15:SAL8] -~w~Where're we going? - -[SAL8_16:SAL8] -~w~Callahan Bridge! - -[SAL816A:SAL8] -~w~...Callahan Bridge ain't finished yet! - -[SAL816B:SAL8] -~w~We're both gonna be finished if you don't drive! Now move it! - -[SAL816C:SAL8] -~w~Head for ~y~Callahan Bridge. - -[SAL8_17:SAL8] -~w~What the Hell are you doing? - -[SAL8_18:SAL8] -~w~Toni! We're gonna need a car! - -[SAL818A:SAL8] -~w~I ain't planning on walking outta here! - -[SAL8_19:SAL8] -~w~You left ~b~Salvatore~w~ behind. Go back and get him! - -[SAL8_20:SAL8] -~w~Get us out of here! - -[SAL8_22:SAL8] -~w~Toni, you did it! I knew I could trust you! - -[SAL822B:SAL8] -Now listen, I know a safe place where we can both lie low for a while. - -[SAL822C:SAL8] -Come on let's go. - -[SAL8_25:SAL8] -~w~We're gonna need everything this piece of shit's got! Punch it Toni! - -[SAL825A:SAL8] -~w~OH, SHIIIIIIIIIIIIIT! - -[SAL8_26:SAL8] -Jump Speed - -[SAL8_27:SAL8] -~w~Yeah. This is the place. - -[SAL8_28:SAL8] -~w~I'm gonna take a look around. See what's what. - -[SAL828A:SAL8] -~w~I might see you here later. - -[SAL8_29:SAL8] -~r~Sal was killed! - -[SAL829A:SAL8] -~w~The cops have spotted you! - -[SAL831:SAL8] -~w~Staunton safehouse now available! - -[SAL833:SAL8] -~w~Get away from the cops! - -[SAL823A:SAL8] -~w~Or has it? - -[SAL8_24:SAL8] -~w~Although all the Subway and Ferry routes are now officially open, - -[SAL824A:SAL8] -~w~militant workers are continuing with their blockade in parts of the city. - -[SAL824B:SAL8] -~w~The Elevator Bridge connecting Staunton Island and Shoreside Vale has been shut down. - -[SAL824C:SAL8] -~w~The strikers refuse to believe assurances made by city officials over the future of the ferries. - -[SAL824D:SAL8] -~w~On a more positive note, the new Callahan bridge is nearing completion. - -[SAL824E:SAL8] -~w~But, this Liberty City commuter couldn't face further delays. - -[SAL8_23:SAL8] -~w~The industrial action that had cut off Portland from the rest of the city has finally come to an end. - -[SAL812C:SAL8] -~w~Get to the ~y~ferry terminal. - -[SAL8WAN:SAL8] -The cops REALLY want Salvatore! Re-spraying the vehicle will only put them off the scent for a short time. - -[SAL8_21:SAL8] -~w~Head for the ~y~Bridge! - -[SAL830:SAL8] -~w~Head over to the ~y~Safe House. - -[SAL822A:SAL8] -~w~I could kiss you if you'd shaved! - -[SAL832:SAL8] -~w~You need to get some wheels! - -[DRIV_01:SAL8] -Well? - -[DRIV_02:SAL8] -Well what? - -[DRIV_03:SAL8] -Don't play dumb with me, kid. - -[DRIV_06:SAL8] -I know what you've been saying about me. - -[DRIV_07:SAL8] -You think I'm an idiot? Huh? - -[DRIV_08:SAL8] -Is that what you think? - -[DRIV_09:SAL8] -Boss, I ain't been saying nothin' about you. - -[DRIV_10:SAL8] -What the fuck. I don't know what's happening to me. - -[DRIV_11:SAL8] -Jesus. - -[DRIV_12:SAL8] -I'm getting paranoid Toni. Really fucking paranoid. - -[DRIV_13:SAL8] -Just because I think everyone hates me doesn't mean they don't, know what I mean? - -[DRIV_14:SAL8] -Someone is out to get me. It's that fucking mayor! - -[DRIV_15:SAL8] -He's gonna blame me for all the shit that's been going down in the neighborhood. - -[DRIV_16:SAL8] -All of it! Not just the crap that I did but all of it. - -[DRIV_17:SAL8] -Come on, let's go take care of this. - -[DRIV_04:SAL8] -- I was playing dumb when your mother was still turning tricks. ~n~ - What's your problem? - -{=================================== MISSION TABLE JDT1 ===================================} - -[JDT1_CA:JDT1] -~w~I'm sure the girls are ripping me off. - -[JDT1_CB:JDT1] -~w~We'd better trawl the neighborhood and see what's up. - -[JDT1_DA:JDT1] -~w~That's one of my girls! - -[JDT1_DB:JDT1] -~w~Hey! I recognize that girl. - -[JDT1_DC:JDT1] -~w~She's one of my girls. - -[JDT1_DD:JDT1] -~w~That girl's one of ours. - -[JDT1_DE:JDT1] -~w~That girl right there... - -[JDT1_DF:JDT1] -~w~Stop near her. - -[JDT1_DG:JDT1] -~w~Pull up next to her. - -[JDT1_DH:JDT1] -~w~Let's pick her up. - -[JDT1_DI:JDT1] -~w~Park right by her. - -[JDT1_DJ:JDT1] -~w~Drive over to her. - -[JDT1_MA:JDT1] -~w~Hi JD. I was just about to bring this to you, honest! - -[JDT1_MB:JDT1] -~w~Jeez! Don't you trust me no-more JD? - -[JDT1_MC:JDT1] -~w~Hey JD. It's been a slow day... this is all I got. - -[JDT1_MD:JDT1] -~w~Talk about big brother! Here's your stinking money! - -[JDT1_ME:JDT1] -~w~Hey JD. I got your money right here. - -[JDT1_MF:JDT1] -~w~Did you think I wasn't gonna bring this to you or something? - -[JDT1_MG:JDT1] -~w~Are you checking up on us girls JD. - -[JDT1_MH:JDT1] -~w~It's all there... count it if you want! - -[JDT1_EA:JDT1] -~w~Hey! That pimp is ripping off one of my girls! - -[JDT1_EB:JDT1] -~w~Get the money back Toni! - -[JDT1_EC:JDT1] -~w~What the hell is that pimp doing? - -[JDT1_ED:JDT1] -~w~He's taking my money! - -[JDT1_EE:JDT1] -~w~Get him Toni! - -[JDT1_45:JDT1] -~w~Get the pimp's ~g~money. - -[JDT1_46:JDT1] -~w~The pimp got away! - -[JDT1_FA:JDT1] -~w~That's one of my girls in that car! - -[JDT1_FB:JDT1] -~w~Reverse up to the ~b~car~w~, nice and close so I can get a look-see. - -[JDT1_FC:JDT1] -~w~...nice and easy now, we don't want to disturb them! - -[JDT1_FD:JDT1] -~w~Closer... - -[JDT1_FE:JDT1] -~w~Closer... - -[JDT1_FF:JDT1] -~w~Easy... - -[JDT1_IA:JDT1] -~w~For crying out loud, Toni! You scared 'em off! - -[JDT1_GA:JDT1] -~w~Jeez Toni! I can't see a God-damn thing! - -[JDT1_75:JDT1] -~w~Wait for the ~b~girl~w~ to give JD her money! - -[JDT1_HA:JDT1] -~w~...oh yeah! - -[JDT1_HB:JDT1] -~w~Go on baby! - -[JDT1_HC:JDT1] -~w~That's it. That's it. - -[JDT1_HD:JDT1] -~w~...oh YEAH! - -[JDT1_HE:JDT1] -~w~This is just beautiful! - -[JDT1_HF:JDT1] -~w~Are we done here yet? - -[JDT1_JA:JDT1] -~w~Nice work Toni! - -[JDT1_JB:JDT1] -~w~I don't think the girls are gonna give me any more trouble on this shift. - -[JDT1_LA:JDT1] -~w~Toni! You screwed this up big time! - -[JDT1_LB:JDT1] -~w~I'm going back to the club! - -[JDT1_ML:JDT1] -~w~$~1~ left to collect! - -[JDT1O01:JDT1] -~w~Get in JD's ~b~van. - -[JDT1O02:JDT1] -~w~You've left ~b~JD~w~ behind. Go back and get him! - -[JDT1O03:JDT1] -~w~Wait for ~b~JD~w~ to get in. - -[JDT1O04:JDT1] -~w~Search for JD's girls in the Red Light District. - -[JDT1O05:JDT1] -~w~Go back to ~y~JD's club. - -[JDT1O07:JDT1] -~w~Stop near the ~b~girl. - -[JDT1O08:JDT1] -~w~Kill the ~r~pimp. - -[JDT1O09:JDT1] -~w~Collect money from one of JD's ~b~girls. - -[JDT1_F1:JDT1] -~r~JD's van has been destroyed! - -[JDT1_F2:JDT1] -~r~JD's dead! - -[JDT1_F3:JDT1] -~r~You didn't collect enough money during the shift! - -[JDT1_D1:JDT1] -~w~JD's girls work in the ~y~Red Light District.~w~ Get back there! - -[JDT1_F4:JDT1] -~r~Too many of JD's girls died! - -[JDT1_KA:JDT1] -~w~What the hell was that? - -[JDT1_KB:JDT1] -~w~Did we hit something? - -[JDT1_KC:JDT1] -~w~Careful with the ride, Toni! - -[JDT1_81:JDT1] -~w~You scared the John! He doesn't want an audience! - -[JDT1O10:JDT1] -~w~Approach the ~b~car~w~ in the alleyway. - -[JDT1O11:JDT1] -~w~Honk your horn to get their attention! - -[JDT1O12:JDT1] -~w~The longer you leave the girl working, the more money she will make. - -[JDT1_MO:JDT1] -Owed - -[JDT1_H1:JDT1] -~w~Use the ~k~ ~VEHN~ to honk your horn. - -[JDT1_WA:JDT1] -~w~Hurry up!~b~The girls'~w~ shift finishes at ~1~:~1~! - -[JDT1_WB:JDT1] -~w~Hurry up! The girls' shift finishes at ~1~:~1~! - -[JDT1O06:JDT1] -~w~Collect JD's money from his hookers. Be quick, their shift finishes at ~1~:~1~. - -[JDT1_WC:JDT1] -~w~Hurry up!~b~The girls'~w~ shift finishes at ~1~:0~1~! - -[JDT1_WD:JDT1] -~w~Hurry up! The girls' shift finishes at ~1~:0~1~! - -[JDT1P06:JDT1] -~w~Collect JD's money from his hookers. Be quick, their shift finishes at ~1~:0~1~. - -[BONE_01:JDT1] -Hey! JD get out here! - -[BONE_02:JDT1] -Hey JD, you little sicko, get the fuck out here, - -[BONE_03:JDT1] -before I come in there and break your legs! - -[BONE_04:JDT1] -I'm coming... but not like that, ha ha ha! - -[BONE_05:JDT1] -Hey, Toni, que pasa? Give us a hug. - -[BONE_06:JDT1] -Woah, you're sticky! - -[BONE_07:JDT1] -Oh, it's the stripper stuff they put all over me, you know. - -[BONE_08:JDT1] -They like it, you know. They put it anywhere and uh... so, how you doing? - -[BONE_09:JDT1] -What the fuck are you wearing? - -[BONE_10:JDT1] -What, this? I'm an adventurous lover. - -[BONE_11:JDT1] -You know I like... an experimental side, y'know? - -[BONE_16:JDT1] -See, that's the problem. We are getting ripped off. - -[BONE_17:JDT1] -Alright, now you wait here. - -[BONE_18:JDT1] -I gotta go change out of, uh... this thing, you know. - -[BONE_19:JDT1] -Hey Raven - time to put away the double ender. - -[BONE_20:JDT1] -Hey Toni, let's you and me go for a drive. - -[BONE_21:JDT1] -We got some things we gotta check out... Okay! Okay! - -[BONE_12:JDT1] -- Nothing wrong with that, huh? You can watch if you like. ~n~- Oh, you're sick. You better shut the fuck up, right now. - -[BONE_14:JDT1] -- Okay, relax Toni... ~n~ - Where's my money? - -{=================================== MISSION TABLE JDT2 ===================================} - -[JDT2_I1:JDT2] -~w~Thank God you're here Toni! - -[JDT2_I2:JDT2] -~w~I just had a tip off that the cops are gonna raid us! - -[JDT2_I3:JDT2] -~w~So? You've got a license. - -[JDT2_I4:JDT2] -~w~Not for some of the shit that goes on here! - -[JDT2_I5:JDT2] -~w~Salvatore is here, paying my girls a... 'Special' visit... you know? - -[JDT2_I6:JDT2] -~w~We gotta get him out of here before the cops arrive! - -[JDT2_I7:JDT2] -~w~Meet him out front! - -[JDT2_I8:JDT2] -~w~Never a dull moment. - -[JDT2_05:JDT2] -~w~Get me the hell out of here! - -[JDT2_06:JDT2] -~w~Toni? Lose the cops! I ain't taking these idiots home with me! - -[JDT2_A1:JDT2] -~w~Get in the ~b~car. - -[JDT2_A2:JDT2] -~w~Don't lose ~b~Salvatore!~w~ Go back and get him! - -[JDT2_A3:JDT2] -~w~Take Salvatore ~y~home. - -[JDT2_A5:JDT2] -~r~Salvatore is dead! - -[JDT2_C1:JDT2] -~w~You did well today son. I like your style. I always have. - -[JDT2_C2:JDT2] -~w~Thank you Mr. Leone. - -[JDT2_C3:JDT2] -~w~You know, I think Vincenzo is taking up too much of your time. - -[JDT2_C4:JDT2] -~w~I could use a good fella like you. - -[JDT2_C5:JDT2] -~w~Gimme a call some time. Uncle Sal will take care of you. - -[JDT2_A9:JDT2] -~r~Salvatore got busted! - -[JDT2_B2:JDT2] -~w~Lose the cops! - -[JDT2_A6:JDT2] -~w~Return to Salvatore's ~b~car~w~ before the cops bust him! - -[JDT2_F1:JDT2] -~r~You lost Salvatore! - -[JDT2_A4:JDT2] -~w~Drive Salvatore away from the club and lose the cops! - -{=================================== MISSION TABLE JDT3 ===================================} - -[JDT3_AA:JDT3] -~w~Hey Toni, I can't come out right now, I'm busy... you know? - -[JDT3_AB:JDT3] -~w~Why? What's going on in there? ...and what the hell is that smell? - -[JDT3_AC:JDT3] -~w~Look, Toni, we're catering for some real ah... specialists today. - -[JDT3_AD:JDT3] -~w~This stuff is internet gold-dust! - -[JDT3_AE:JDT3] -~w~What you should be concerning yourself with is that Leone gaming house, up in Saint Mark's. - -[JDT3_AG:JDT3] -~w~The Sindaccos are going nuts about it. - -[JDT3_AH:JDT3] -~w~I heard they're gonna blow the place off the map. - -[JDT3_B:JDT3] -~w~Take out the ~r~Sindacco saboteurs! - -[JDT3_C:JDT3] -~r~They've~w~ planted a bomb outside the ~y~casino! - -[JDT3_D:JDT3] -Bomb Explodes - -[JDT3_E:JDT3] -~w~Another couple like that and the ~y~Casino's~w~ out of business! - -[JDT3_F:JDT3] -~w~One more and the ~y~Casino's~w~ gone! - -[JDT3_H:JDT3] -~w~More ~r~Sindaccos~w~ are on the way! Stop them! - -[JDT3_I:JDT3] -~w~The truck-bomb's armed! - -[JDT3_J:JDT3] -~w~The ~y~Casino~w~ is safe. Get out of there! - -[JDT3_K:JDT3] -~w~They must have crippled the truck - it's stuck in low gear! - -[JDT3_L:JDT3] -~r~Sindacco reinforcements~w~ are heading for the ~y~Casino! - -[JDT3_M:JDT3] -~w~The ~r~Sindaccos~w~ haven't given up yet, more on the way! - -[JDT3_N:JDT3] -~w~They're getting out. Don't let any ~r~Sindaccos~w~ escape! - -[JDT3_O:JDT3] -Safe Distance - -[JDT3_P:JDT3] -~w~The Sindaccos have rigged a huge truck bomb! They're going to take out the Casino in one go! - -[JDT3_Q:JDT3] -~w~Defend the ~y~Casino. - -[JDT3_R:JDT3] -~w~Check out the ~y~Casino. - -[JDT3_S:JDT3] -~w~Stop the ~r~truck-bomb~w~ destroying the ~y~Casino! - -[JDT3_T:JDT3] -~w~Get the ~r~truck~w~ away from the ~y~Casino~w~ before it blows! - -[JDT3_BA:JDT3] -~w~Toni? It's JD. - -[JDT3_BB:JDT3] -~w~Look, I just heard there's a bunch of Sindacco goons coming your way. - -[JDT3_BC:JDT3] -~w~And they're packing, big-time! - -[JDT3_BD:JDT3] -~w~Watch yourself! - -[JDT3_BE:JDT3] -~w~Thanks JD! - -[JDT3_BF:JDT3] -~w~Appreciate it. - -[JDT3_G:JDT3] -~r~The Casino was destroyed! - -{=================================== MISSION TABLE JDT4 ===================================} - -[JDT4_3:JDT4] -~w~The Sindaccos guarding the Doll's House will only trust ~h~Sindacco cars. - -[JDT4_A1:JDT4] -~w~Classy, so you might lose at the tables, but you can bank on the ass! - -[JDT4_B0:JDT4] -~w~Get a suitable vehicle and fit it with a bomb. - -[JDT4_B1:JDT4] -~w~Get back in the ~b~vehicle~w~ with the bomb. - -[JDT4_B3:JDT4] -~w~Now, leave the vehicle and get out of there. - -[JDT4_B4:JDT4] -~w~Detonate the bomb! - -[JDT4_B5:JDT4] -~w~Take the vehicle to the ~h~Bomb Shop~w~ and have it fitted with a bomb. - -[JDT4_B6:JDT4] -~w~Don't get too close! - -[JDT4_C0:JDT4] -~r~You were too close to the explosion. - -[JDT4_C1:JDT4] -~w~This one is on JD! - -[JDT4_D0:JDT4] -~w~Who is that? - -[JDT4_D2:JDT4] -~w~Must be a new guy. - -[JDT4_0:JDT4] -COUNTDOWN - -[JDT4_1:JDT4] -~w~You can't fit a bomb to that! - -[JDT4_2:JDT4] -~w~Follow the ~h~Bomb blip~w~ on the radar to find ~h~8-Ball's Bomb Shop. - -[JDT4_A0:JDT4] -~w~So Toni, the Sindaccos' got this place - 'The Dolls House'. - -[JDT4_AA:JDT4] -~w~It's a casino AND bordello in one. - -[JDT4_A2:JDT4] -~w~Heh heh! Well, the place is key to their setup over here. - -[JDT4_A3:JDT4] -~w~If you were to, uh... put it out of business, you know, uh... blow it up or something. - -[JDT4_A4:JDT4] -~w~I'm telling you, we'll be golden with Salvatore! - -[JDT4_D1:JDT4] -~w~I don't recognize him... - -[JDT4_B2:JDT4] -~w~Take the vehicle and park it in the ~y~garage~w~ at 'The Doll's House'. - -[JDT4_B7:JDT4] -~w~Drive carefully, if it gets too damaged it will explode! - -[JDT4_B8:JDT4] -~w~Park the vehicle in the 'The Doll's House' ~y~garage. - -[JDT4_4:JDT4] -~w~Press~h~ ~k~ ~PDFW~ ~w~to ~h~detonate~w~ the bomb. - -[JDT4_B9:JDT4] -~w~The Sindaccos have defused the bomb! - -{=================================== MISSION TABLE JDT5 ===================================} - -[JDT5_B0:JDT5] -~w~That's one of the guys that took Salvatore! - -[JDT5_D0:JDT5] -~w~Where is he? In the trunk? - -[JDT5_D1:JDT5] -~w~Good. We're taking him to the crusher. The boss wants him flatter than pizza. - -[JDT5_E0:JDT5] -~w~They're onto you! - -[JDT5_E1:JDT5] -~w~The ~b~car~w~ is unattended! Take it! - -[JDT5_E2:JDT5] -~w~Take the car to ~y~Salvatore's. - -[JDT5_E3:JDT5] -~w~Get back in the ~b~car. - -[JDT5_F0:JDT5] -~w~Mmmphhh - mmmphhh - mpphh - -[JDT5_F3:JDT5] -~w~Mmpphh - arrgghh - mmpphh - -[JDT5_F4:JDT5] -~w~Mmpphh - arrgghh - arrggghh - arrg - -[JDT5_F5:JDT5] -~w~Yarrgghh - yarragh - mmpphh - -[JDT5_G0:JDT5] -~w~What kind of driving was that? You trying to kill me? - -[JDT5_G1:JDT5] -~w~Mr. Leone. Boss. I'm sorry. - -[JDT5_G2:JDT5] -~w~What can I tell ya? - -[JDT5_G4:JDT5] -~w~I'll tear their fucking hearts out! This doesn't end here! - -[JDT5_G5:JDT5] -~w~...for Christ sake Toni - you saved my ass - call me Sal! - -[JDT5_X0:JDT5] -~r~It's hard to follow a dead man. - -[JDT5_X1:JDT5] -~r~You lost him! - -[JDT5_F1:JDT5] -~w~Is that you Mr. Leone? It's me, Toni. - -[JDT5_F2:JDT5] -~w~Don't worry about a thing. I'm getting you out of there! - -[JDT5_G3:JDT5] -~w~Sons of Bitches! They think they can do that to me! - -[JDT5_X2:JDT5] -~r~Sal didn't make it! - -[JDT5_X4:JDT5] -~r~He's onto you. You'll never find Sal now! - -[JDT5_X3:JDT5] -~r~Salvatore was crushed! - -[JDT5_C:JDT5] -~w~Follow the ~r~car~w~, but keep a low profile. - -[JDT5_E:JDT5] -~w~Rescue Salvatore from the ~b~car~w~ before they crush it! - -[JDT5_0:JDT5] -~w~If you shoot at the car you might hit Salvatore! - -[JDT5_H0:JDT5] -~w~Follow the ~r~car,~w~ but don't get too close. - -[JDT5_H1:JDT5] -~w~You're too close! - -[JDT5_H2:JDT5] -~w~Don't get too far away and lose the ~r~car. - -[JDT5_H3:JDT5] -~w~You're too far behind! - -[KIDN_01:JDT5] -JD! - -[KIDN_02:JDT5] -Toni, thank god you're here. - -[KIDN_03:JDT5] -I'm sweating like my uncle in a school yard - my mind's going crazy. - -[KIDN_06:JDT5] -Oh God I can't believe it, he is gonna cut my balls off. - -[KIDN_07:JDT5] -He's gonna put them in a vice! Not necessarily in that order. - -[KIDN_08:JDT5] -Oh God! I feel like the day the FBI searched my hard drive! - -[KIDN_13:JDT5] -Oh God I can't believe this... - -[KIDN_14:JDT5] -Why am I to blame?! It's not my fault. - -[KIDN_15:JDT5] -But you know Salvatore, he's gonna get the vice squad on my ass. - -[KIDN_16:JDT5] -Oh my God, it's gonna be like those statutory rape charges. - -[KIDN_17:JDT5] -Have you ever been in prison on statutory rape charges, man? - -[KIDN_18:JDT5] -They come in at you at the showers! - -[KIDN_19:JDT5] -Oh God, and she was 18! Oh my God! This is gonna be worse! - -[KIDN_20:JDT5] -Listen you babbling cock sucker. What in god's name is wrong? - -[KIDN_04:JDT5] -- What are we gonna do? ~n~ - About what? - -[KIDN_11:JDT5] -- No, no... See I got too many of those... ~n~ - What's going on? - -[KIDN_09:JDT5] -Oh, my heart's racing. Have you got any vallion? - -[KIDN_10:JDT5] -Or rohapnin? What about... - -[KIDN_21:JDT5] -It's Salvatore. He was kidnapped while leaving the club. - -[KIDN_23:JDT5] -Well why didn't you say so? Instead of making me listen to that crap. Come on. - -{=================================== MISSION TABLE JDT6 ===================================} - -[JDT6_A0:JDT6] -~w~Thank God! Toni. - -[JDT6_A1:JDT6] -~w~JD? Hey, I'm at the back of... - -[JDT6_A2:JDT6] -~w~I know. I saw you go in. I've been praying you'd turn up! - -[JDT6_A3:JDT6] -~w~Salvatore's gone ape-shit! - -[JDT6_A6:JDT6] -~w~Make sure no harm comes to Salvatore. - -[JDT6_0:JDT6] -Sal's Health - -[JDT6_1:JDT6] -~r~Salvatore didn't make it. - -[JDT6_3:JDT6] -~w~Salvatore will be here in ~1~ seconds. - -[JDT6_5:JDT6] -~w~Protect ~b~Salvatore~w~ from the ~r~Sindaccos. - -[JDT6_6:JDT6] -~w~One of ~b~Salvatore's guards~w~ is dead! - -[JDT6_7:JDT6] -~w~Both of ~b~Salvatore's guards~w~ have been killed! - -[JDT6_8:JDT6] -~w~It's the cops! - -[JDT6_10:JDT6] -~w~Find a good vantage point before Salvatore gets here. - -[JDT6_11:JDT6] -~w~Where are you going? Salvatore needs protection in the Red Light District. - -[JDT6_12:JDT6] -Salvatore arrives - -[JDT6_D1:JDT6] -~w~Hey... - -[JDT6_D4:JDT6] -~w~Someone dropped a dollar! - -[JDT6_C0:JDT6] -~w~Is that the best you got? - -[JDT6_C1:JDT6] -~w~Come on! - -[JDT6_C2:JDT6] -~w~You fight like pussies! - -[JDT6_C3:JDT6] -~w~Oh, you want some! - -[JDT6_C4:JDT6] -~w~Eat this! - -[JDT6_C5:JDT6] -~w~You dirty rat bastards! - -[JDT6_C6:JDT6] -~w~Top of the world Ma! - -[JDT6_A4:JDT6] -~w~He's coming down here personally, to kill every Sindacco he can find... - -[JDT6_A5:JDT6] -~w~...so I took a hike. Look, I've put a rifle on the roof across the street. - -[JDT6_9:JDT6] -~w~Collect the ~g~sniper rifle~w~ on the roof. - -{=================================== MISSION TABLE JDT7 ===================================} - -[JDT7_VE:JDT7] -~r~v1.00 - -[JDT7_02:JDT7] -~w~So, Salvatore cleaned house, huh... and now he's fixing up yours! - -[JDT7_03:JDT7] -~w~It's all mine now, Toni! - -[JDT703A:JDT7] -~w~Those cock-sucking Sindaccos all been kicked out. - -[JDT7_04:JDT7] -~w~Listen, I hear the Sicilians are trying to broker peace between the families. - -[JDT7_4A:JDT7] -~w~Sal's got some heavy up at his place right now. - -[JDT7_4B:JDT7] -~w~The thing is; he smells a rat. - -[JDT7_4C:JDT7] -~w~He wants someone to get up there and follow this guy, see where he goes. - -[JDT7_06:JDT7] -~r~You failed to reach the helicopter in time, Massimo's already left! - -[JDT7_07:JDT7] -~w~Follow ~r~Massimo.~w~ Don't lose him! - -[JDT7_08:JDT7] -~r~He's~w~ going to get away! - -[JDT7_09:JDT7] -~r~You let Massimo get away! - -[JDT7_10:JDT7] -~w~The helicopter appears to be landing - don't get too close or you'll spook them.. - -[JDT7_11:JDT7] -~r~You got too close. You've been spotted! - -[JDT7_14:JDT7] -~r~He's~w~ moving off... follow ~r~him~w~ again... - -[JDT7_15:JDT7] -~w~Massimo~w~ looks to be landing up there... - -[JDT7_16:JDT7] -~w~You'll need to get in ~y~closer... - -[JDT7_17:JDT7] -~r~You've blown your cover! - -[JDT7_21:JDT7] -~w~You've been spotted! Take out the ~r~Triads! - -[JDT7_12:JDT7] -~w~Come siamo rimasti d'accordo, - -[JDT712A:JDT7] -~w~if you do my associates work for them, you'll be well rewarded. - -[JDT7_13:JDT7] -~w~...Hepburn Heights will belong to the Diablos. - -[JDT7_18:JDT7] -~w~...so, keep quei bastardi dei Leone tied down in Portland, - -[JDT718A:JDT7] -and when my associates control this city, you'll be taken care of. - -[JDT718B:JDT7] -Ci pensiamo noi. - -[JDT7_20:JDT7] -~w~Over there! It's a Leone! - -[JDT7_22:JDT7] -Distance - -[JD_FIN:JDT7] -~w~Finish off the ~r~Triads! - -[JDT7_05:JDT7] -~w~Reach ~y~Salvatore's mansion~w~ before Massimo leaves! - -[JDT7O07:JDT7] -~w~Reach ~y~Salvatore's mansion.~w~ Massimo is leaving at ~1~:~1~. - -[JDT7O08:JDT7] -~w~It's nearly ~1~:~1~. Massimo is about leave! - -{=================================== MISSION TABLE JDT8 ===================================} - -[JDT8_A0:JDT8] -~w~Toni... it's all happening today! I'm gonna be a 'Made Man', me! - -[JDT8_A1:JDT8] -~w~JD the untouchable? God help us all! - -[JDT8_A2:JDT8] -~w~I've waited a long time for this... it never woulda' happened without you Toni. - -[JDT8_A3:JDT8] -~w~Hey! I'm crying over here! Come on! - -[JDT8_A4:JDT8] -~w~Hey Mickey! How you doing? - -[JDT8_A5:JDT8] -~w~I'm getting in the back... okay. - -[JDT8_C:JDT8] -~w~Get in the ~b~car~w~ and drive JD to be 'Made'. - -[JDT8_C2:JDT8] -~w~Get back in the ~b~car. - -[JDT8_C3:JDT8] -~w~Drive to the ~y~ceremony. - -[JDT8_B0:JDT8] -~w~Ah, Toni, I tell ya! I can't believe this is happening. - -[JDT8_B1:JDT8] -~w~I've waited so long. - -[JDT8_B2:JDT8] -~w~I slaved for the Sindaccos for years and nothing! - -[JDT8_B3:JDT8] -~w~Those bastards kept me down - -[JDT8_B5:JDT8] -~w~But Salvatore, god bless him, he don't let a little thing like that get in the way. - -[JDT8_B6:JDT8] -~w~I tell ya! - -[JDT8_B7:JDT8] -~w~This is great! - -[JDT8_B8:JDT8] -~w~Toni, I'm so excited! - -[JDT8_B9:JDT8] -~w~Toni, I don't even know what do to with myself I'm so excited! - -[JDT8_BA:JDT8] -~w~Look at me, I can't believe this is happening! - -[JDT8_BB:JDT8] -~w~Finally, huh Toni? To be a 'made man'! - -[JDT8_D1:JDT8] -~w~Where's Salvatore? - -[JDT8_D2:JDT8] -~w~Toni, the first drink's on me... - -[JDT8_D3:JDT8] -~w~(PLACEHOLDER SFX) BANG! - -[JDT8_H0:JDT8] -~w~Hey, the guy was a fucking rat. - -[JDT8_H1:JDT8] -~w~He screwed over his own boss! Disgrazia'. - -[JDT8_H2:JDT8] -~w~Salvatore could never have trusted that mother fucker. - -[JDT8_H3:JDT8] -~w~Dump the fucking car in the river. - -[JDT8_H4:JDT8] -~w~You can drop me off on the way. - -[JDT8_J:JDT8] -~w~Get in the ~b~car~w~ and drive Mickey home. - -[JDT8_J1:JDT8] -~w~The cops have spotted you with the car! - -[JDT8_J2:JDT8] -~w~The cops have spotted you with the ~b~car! - -[JDT8_J3:JDT8] -~w~Get back in the ~b~car! - -[JDT8_J4:JDT8] -~w~Drop Mickey back at his ~y~place. - -[JDT8_K0:JDT8] -~w~I'm getting the hell outta here! - -[JDT8_K1:JDT8] -~w~Remember. Dump the car in the river. - -[JDT8_F:JDT8] -~w~Dump the car in the river. - -[JDT8_F1:JDT8] -~w~Dump the ~b~car~w~ in the river. - -[JDT8_G5:JDT8] -~r~JD's dead! - -[JDT8_G6:JDT8] -~r~Mickey's dead! - -[JDT8_G8:JDT8] -~r~You were supposed to drive the car into the river. - -[JDT8_X0:JDT8] -~w~Where are you going Toni? - -[JDT8_X3:JDT8] -~w~We're gonna be late. - -[JDT8_X1:JDT8] -~w~If the cops see the car like this, they'll pull us over for sure! - -[JDT8_X2:JDT8] -~w~The ceremony's in Harwood. - -[JDT8_A6:JDT8] -~w~Toni... it's all happening today! - -[JDT8_A7:JDT8] -~w~I'm gonna be a 'Made Man', me! - -[JDT8_A8:JDT8] -~w~JD the untouchable? - -[JDT8__1:JDT8] -~w~I've waited a long time for this... - -[JDT8__2:JDT8] -~w~It never woulda' happened without you Toni. - -[JDT8_A9:JDT8] -~w~God help us all! - -[JDT8_D0:JDT8] -~w~Hey, are we there? - -[JDT8_B4:JDT8] -~w~just 'cause of a little Irish blood in my veins. - -[JDT8_G7:JDT8] -~r~Your passengers are dead! - -[JDT8_C4:JDT8] -~w~Take out the ~r~Sindacco hitmen~w~ before they whack JD! - -[JDT8_0:JDT8] -~w~Re-spraying the car will buy you some time, but as soon as the cops see the stiff in the passenger seat, they'll be back on your tail. - -[JDT8_K:JDT8] -~w~Oh daddy, no! - -[JDT8_BC:JDT8] -~w~Toni, man, you've got to chill out. - -[JDT8_C5:JDT8] -~w~Finish off the ~r~Sindacco hitmen. - -{=================================== MISSION TABLE MAC1 ===================================} - -[MAC1_AA:MAC1] -~w~Ma? - -[MAC1_AB:MAC1] -~w~It's me! I'm back! - -[MAC1_AC:MAC1] -~w~Toni?... Where the hell have you been? - -[MAC1_AM:MAC1] -~w~Not one phone call all the time you were away! - -[MAC1_AD:MAC1] -~w~They don't have phones where you were? - -[MAC1_AE:MAC1] -~w~Aw! Come on Ma! You know I couldn't call! - -[MAC1_AF:MAC1] -~w~A real man would have called his mother. - -[MAC1_AG:MAC1] -~w~You could learn a thing or two from Giovanni Casa. - -[MAC1_AN:MAC1] -~w~He calls his mother every day, - -[MAC1_AH:MAC1] -~w~Now, he's a good man. - -[MAC1_AO:MAC1] -~w~and his Sicilian sausage is the best in town! - -[MAC1_AI:MAC1] -~w~Casa! But Ma, Casa ain't no good man. He's a pervert! - -[MAC1_AJ:MAC1] -~w~That's just a foul mouthed rumor! What kind of man are you, Toni? - -[MAC1_AK:MAC1] -~w~Alright Ma, whatever you say. - -[MAC1_AL:MAC1] -~w~Maybe I'll go give Giovanni a call... see what he's up to. - -[MAC1_HA:MAC1] -~w~I think I'm in the mood for some luvin' - -[MAC1_17:MAC1] -~w~Prove to your Ma that Giovanni Casa is no damn good! - -[MAC1_B:MAC1] -~w~Head for your ~y~apartment ~w~to pick up your camera. - -[MAC1_B0:MAC1] -~w~Go to ~y~Casa's deli. - -[MAC1B2:MAC1] -~w~Nice shot! Now take the photo to ~y~Ma's place. - -[MAC1_B3:MAC1] -~w~Sneak-up on ~r~Casa, ~w~then take the photo that will shame him! - -[MAC1_B5:MAC1] -~w~Don't spook ~r~him. - -[MAC1_B6:MAC1] -~r~You ran out of film! You didn't even get the shameful photo of Casa to take back to your Ma. - -[MAC1_B7:MAC1] -~w~Pick up your ~g~camera. - -[MAC1_C0:MAC1] -~w~Don't get too close or ~r~Casa~w~ will suspect something! - -[MAC1_C1:MAC1] -~r~You've spooked him! Now you'll never get that photo! - -[MAC1_C2:MAC1] -~r~Something's spooked Casa! - -[MAC1_C3:MAC1] -~r~You've lost Casa! - -[MAC1_C4:MAC1] -~r~Casa got wasted! - -[MAC1_C5:MAC1] -~w~You're too close to ~r~Casa! - -[MAC1_C6:MAC1] -~w~Don't lose ~r~Casa! - -[MAC1_D0:MAC1] -~w~Looks like Casa's found some action. - -[MAC1_JA:MAC1] -~w~Okay ladies! It's milk time! - -[MAC1_JB:MAC1] -~w~Who's gonna be momma? - -[MAC1_JC:MAC1] -~w~Oh my! - -[MAC1_IA:MAC1] -~w~Okay ladies. Give me a minute here will ya. - -[MAC1_IB:MAC1] -~w~I'm gonna change into something that's a little more... me. - -[MAC1_CA:MAC1] -~w~Baby needs hug! - -[MAC1_CB:MAC1] -~w~I made choc-choc! - -[MAC1_DA:MAC1] -~w~Suck my dummy! Suck it! - -[MAC1_EA:MAC1] -~w~Aw, come on girls! Get with the program! - -[MAC1_FA:MAC1] -~w~SHIT! Someone's here! - -[MAC1_FB:MAC1] -~w~Quick! Get in the van! - -[MAC1_GA:MAC1] -~w~Oh God! Oh God! - -[MAC1_GB:MAC1] -~w~DON'T - LOOK - AT - ME! - -[MAC1_BA:MAC1] -~w~Hey Ma! - -[MAC1_BB:MAC1] -~w~Take a look at my photo! It's of your 'good man' Giovanni Casa... wearing a goddamn diaper! - -[MAC1_BC:MAC1] -~w~Is this how you spend your time? - -[MAC1_BD:MAC1] -~w~Sneaking around in the woods taking pictures of men? - -[MAC1_BE:MAC1] -~w~What's wrong with you Antonio? You shame me! - -[MAC1_BF:MAC1] -~w~But! - -[MAC1_BG:MAC1] -~w~And, diaper or no diaper, he's still a better man than you! - -[MAC1_B8:MAC1] -~w~Now head outside. - -[MAC1_B1:MAC1] -~w~Tail ~r~Casa~w~, but don't get too close. - -[MAC1_C7:MAC1] -~w~Zoom in on ~r~Casa ~w~to take the photograph that will shame ~r~him. - -[MAC1_D1:MAC1] -~w~Stay on ~r~Casa's~w~ tail. This could be a great photo opportunity. - -{=================================== MISSION TABLE MAC2 ===================================} - -[MAC2_AA:MAC2] -~w~Ma!... Ma!... come on Ma... speak to me. - -[MAC2_AB:MAC2] -~w~There's no 'Ma' here for you no more, you coward! - -[MAC2_AC:MAC2] -~w~You can't fool me... I know why you don't move back in here. - -[MAC2_AD:MAC2] -~w~You're running scared of some Triads! - -[MAC2_AE:MAC2] -~w~Your father, God rest his soul, wouldn't let no one run him out of his own home. - -[MAC2_AF:MAC2] -~w~But Ma! - -[MAC2_AG:MAC2] -~w~But unlike you, your father wasn't yellow! - -[MAC2_AH:MAC2] -~w~Until the Triads show you some respect, you're no son of mine! - -[MAC2_AI:MAC2] -~w~A daughter maybe, but not a son. - -[MAC2_B1:MAC2] -~w~Show Ma you're not scared of the Triads. Deal with the ~r~two Triad gangs~w~ in Chinatown! - -[MAC2_I1:MAC2] -~w~A Triad gang leader's in that bulletproof ~r~fish van.~w~ Ram him off the road! - -[MAC2_I2:MAC2] -~w~The ~r~van's ~w~running - and shedding its load! Watch out! - -[MAC2_I3:MAC2] -~w~They're getting out! Take down the ~r~Triad ~w~scum! - -[MAC2_I4:MAC2] -~w~You've been spotted! Waste all the ~r~Triad gang members! - -[MAC2_I5:MAC2] -~w~You're in ~r~Triad~w~ territory. Be careful! - -[MAC2_I6:MAC2] -~w~One down, one more to go. Take out the other ~r~gang! - -[MAC2_BA:MAC2] -~w~Yeah! Are you watchin' Ma! - -[MAC2_BB:MAC2] -~w~This is Toni Cipriani kicking your asses! - -[MAC2_BC:MAC2] -~w~Remember that name fish heads! - -{=================================== MISSION TABLE MAC3 ===================================} - -[MAC3_A0:MAC3] -~w~Ma? I'm back... - -[MAC3_A1:MAC3] -~w~Look at you! You look so thin! - -[MAC3_A2:MAC3] -~w~If you were still living here, with your mother, like a son should, you'd be eating right! - -[MAC3_A3:MAC3] -~w~And look at those cars you drive! - -[MAC3_A4:MAC3] -~w~You shame me, Antonio, really you do. - -[MAC3_A5:MAC3] -~w~People will think I brought you up wrong! - -[MAC3_A6:MAC3] -~w~What can I do Ma? You know I'd do anything for you. - -[MAC3_A7:MAC3] -~w~That Sucho boy's racing downtown today. - -[MAC3_A8:MAC3] -~w~If only you were more like him! - -[MAC3_A9:MAC3] -~w~He treats his mother with real respect. - -[MAC3_AA:MAC3] -~w~Of course, if your father was here, he'd win the race, - -[MAC3_AB:MAC3] -~w~AND take the smug grin off that Sucho boy's face! - -[MAC3_AC:MAC3] -~w~Yeah, he'd make him eat lead! - -[MAC3_AD:MAC3] -~w~Ah! Your father was a real man! Big balls! - -[MAC3_B0:MAC3] -~w~Prove you're more than a match for Sucho. Win the race, then take him out. - -[MAC3_C0:MAC3] -~w~You beat ~r~Sucho~w~, now take him out! - -[MAC3_C1:MAC3] -~r~He's~w~ making a run for it! - -[MAC3_X0:MAC3] -~r~You let Sucho get away! - -[MAC3_C2:MAC3] -~r~Sucho's~w~ getting away! - -{=================================== MISSION TABLE MAC4 ===================================} - -[MAC4_A0:MAC4] -~w~Ma!... Ma!... are you there? - -[MAC4_A1:MAC4] -~w~I ain't talking to you no more, Toni! - -[MAC4_A2:MAC4] -~w~You shame your Sicilian roots! - -[MAC4_A3:MAC4] -~w~After you took that photo of Casa, he stopped paying his protection money. - -[MAC4_A4:MAC4] -~w~And what are you doing about it? - -[MAC4_A5:MAC4] -~w~NOTHING! - -[MAC4_A6:MAC4] -~w~Your father would have turned him into meatballs by now! - -[MAC4_A8:MAC4] -~w~but it takes guts to snub a Cipriani! - -[MAC4_A9:MAC4] -~w~I only wish you had his guts! - -[MAC4_AA:MAC4] -~w~You wish I had Casa's guts? - -[MAC4_AB:MAC4] -~w~Okay, Ma! You asked for 'em! - -[MAC4_B:MAC4] -~w~Swing by ~y~Giovanni Casa's deli~w~ and 'persuade' him to take a little road trip with you. - -[MAC4_B0:MAC4] -~w~Hi, Toni... how you doing? - -[MAC4_B1:MAC4] -~w~What's up? - -[MAC4_B2:MAC4] -~w~Cat got your tongue? - -[MAC4_B3:MAC4] -~w~You and me are gonna talk, Casa... - -[MAC4_B4:MAC4] -~w~Just somewhere more private. - -[MAC4_C:MAC4] -~w~Don't let ~r~Casa~w~ get out alive. - -[MAC4_C1:MAC4] -~w~I'll pay the protection money, Toni! I swear I will! - -[MAC4_C2:MAC4] -~w~Aw! Come on, Toni! I'll give you anything you want! - -[MAC4_C3:MAC4] -~w~I'll do anything Toni! Anything! Just don't hurt me! - -[MAC4_D1:MAC4] -~w~Okay! Okay! You got me! - -[MAC4_D2:MAC4] -~w~Okay! Okay! I give! I give! Just don't hurt me no more! - -[MAC4_D3:MAC4] -~w~Come with me, ass-Head! - -[MAC4_E0:MAC4] -~w~Take Casa to the ~y~sawmill. - -[MAC4_E1:MAC4] -~w~Don't leave ~b~Casa! - -[MAC4_F0:MAC4] -~w~So... er... where are we going? - -[MAC4_F1:MAC4] -~w~We're still cool ain't we, Toni? - -[MAC4_F2:MAC4] -~w~...I'll get you the money I owe... honest! - -[MAC4_F3:MAC4] -I just need some time! - -[MAC4_F4:MAC4] -~w~Does your Ma still like a spicy sausage? - -[MAC4_F5:MAC4] -I can get her some, no problem! - -[MAC4_G0:MAC4] -~w~So... erm... what do you wanna talk about, Toni? - -[MAC4_G1:MAC4] -~w~Is it the protection money? - -[MAC4_G2:MAC4] -~w~It is isn't it? - -[MAC4_G3:MAC4] -~w~...Toni? - -[MAC4_G4:MAC4] -~w~We can talk about this. Right, Toni? - -[MAC4_G6:MAC4] -~w~People just don't talk enough these days, Toni. - -[MAC4_G7:MAC4] -~w~Stand there and shut your yap, Casa. - -[MAC4_G8:MAC4] -~w~Okay Toni! But I... I... don't feel comfortable. - -[MAC4_G9:MAC4] -~w~Hey! Easy with that Toni! It's the on switch for the... - -[MAC4_GA:MAC4] -~w~AAARRRGGGHHHHHHHH! - -[MAC4_GB:MAC4] -~w~Get the hell out of here! - -[MAC4_H:MAC4] -~w~Sicilian style 'Sausage meat a la Casa' is in the ~b~van~w~ waiting to be delivered back to Casa's own deli. - -[MAC4_H1:MAC4] -~w~Take the delivery to ~y~Casa's deli. - -[MAC4_H2:MAC4] -~w~Don't leave the ~b~van~w~ there! - -[MAC4_H3:MAC4] -~w~Lose the cops! - -[MAC4_I0:MAC4] -~w~Special sausage meat delivery? - -[MAC4_I1:MAC4] -~w~No one told me about this! - -[MAC4_I2:MAC4] -~w~Woah! Which zoo did we knock-off this time? - -[MAC4_I3:MAC4] -~w~There's loads of meat back here! - -[MAC4_I4:MAC4] -~w~...Mmmm! Tasty! Okay, I'll take them. - -[MAC4_I6:MAC4] -~w~If he finds out about this, he'll go crazy! - -[MAC4_I7:MAC4] -~w~Then I'd be screwed! - -[MAC4_X0:MAC4] -~r~That was too quick and painless to be a Sicilian hit! - -[MAC4_X1:MAC4] -~r~You were supposed to deliver the van! - -[MAC4_X2:MAC4] -~r~You lost Casa! - -[MAC4_E2:MAC4] -~w~Don't leave the ~y~sawmill! - -[MAC4_I5:MAC4] -~w~It's a good thing Casa ain't here. - -[MAC4_G5:MAC4] -~w~Yeah! Yeah! Talking is good. - -[MAC4_CN:MAC4] -~w~Call the cops! - -[MAC4_CO:MAC4] -~w~Get help! - -[MAC4_CP:MAC4] -~w~Someone get help! - -[MAC4_CQ:MAC4] -~w~Help! - -[MAC4_CR:MAC4] -~w~Someone help me! - -[MAC4_CS:MAC4] -~w~Get me outta here! - -[MAC4_A7:MAC4] -~w~Casa might be a bit funny, - -[MAC4_C0:MAC4] -~w~Can't we be civilized about this, Toni? - -[MAC4_1:MAC4] -~w~Get closer to ~r~Casa ~w~by sneaking up behind ~r~him. - -{=================================== MISSION TABLE MAC5 ===================================} - -[MAC5_AA:MAC5] -~w~Ma? You there? - -[MAC5_AB:MAC5] -~w~Toni? ...I'm just on the phone... - -[MAC5_AC:MAC5] -~w~...yeah he's here now... ok... ok... I'll stall him... bye. - -[MAC5_AD:MAC5] -~w~Toni? Come to upset your mother again, huh? - -[MAC5_AE:MAC5] -~w~You spend all day playing the tough guy. - -[MAC5_AF:MAC5] -~w~You never come see me, or bring home any nice girls. - -[MAC5_AG:MAC5] -~w~But, who'd want you anyway? You look so pasty and thin! - -[MAC5_AH:MAC5] -~w~You're trying to kill me with the shame and the worry. ~w~Well no more. - -[MAC5_AI:MAC5] -~w~From this point on... we're through. - -[MAC5_AJ:MAC5] -~w~I've called a hit on you. It's really the only way, Antonio... - -[MAC5_AK:MAC5] -~w~...you were always a disobedient boy. - -[MAC5_AL:MAC5] -~w~What!? Ma! - -[MAC5_AM:MAC5] -~w~It's for the best son... at least try to die like a real man! - -[MAC5_AN:MAC5] -~w~Try to stop shaming me! - -[MAC5_B1:MAC5] -~w~Ma's hitmen are here! - -[MAC5_B2:MAC5] -~w~Show Ma you're more than a match for her ~r~hitmen.~w~ Kill them all! - -[MAC5_B3:MAC5] -~w~They're really mad now! Eliminate ~r~them. - -[MAC5_B4:MAC5] -~w~The ~r~hitmen~w~ know you're here. You must get far away from Saint Mark's! - -[MAC4_B6:MAC5] -~w~More ~r~hitmen~w~ incoming! Get away from Saint Mark's. They know where you are! - -[MAC4_B7:MAC5] -~w~GRENADE! RUN! - -[MAC5_C1:MAC5] -~w~That's got rid of them... but now they've been paid, they'll see the job through, no matter how long it takes. - -[MAC5_C2:MAC5] -~w~Be warned... they WILL be back! - -[HM1:MAC5] -~w~They're not giving up! More ~r~hitmen~w~ are heading your way. Wipe them out! - -[HM2:MAC5] -~w~Look out! ~r~Hitmen~w~ are closing on you. Waste them! - -[HM3:MAC5] -~w~More ~r~hitmen~w~ are approaching. Blow them away! - -[HM4:MAC5] -~w~More ~r~hitmen~w~ are on the way! Take them out! - -[MAC5_B5:MAC5] -~w~Deal with the remaining ~r~hitmen~w~, but stay out of Saint Mark's! - -{=================================== MISSION TABLE MAR1 ===================================} - -[MAR1M1:MAR1] -~w~You're late! Typical man. - -[MAR1M2:MAR1] -~w~I want to go shopping, and you're driving. - -[MAR1M3:MAR1] -~w~So help me, I'm gonna have some fun today. Even if it kills you! - -[MAR1M4:MAR1] -~w~I just need to finish getting ready. - -[MAR1M5:MAR1] -~w~Ah screw it! I'm gorgeous. Come on Toni! - -[MAR1_B:MAR1] -~w~Take Maria to the ~y~shop. - -[MAR1_D:MAR1] -~w~Wait here sexy, I won't be long... - -[MAR1_D2:MAR1] -~w~But I just wanted to see what it looked like in the daylight! - -[MAR1_E:MAR1] -~w~Let's get out of here! - -[MAR1_E3:MAR1] -~w~Go back and get ~b~Maria. - -[MAR1_F:MAR1] -~W~That was fun! But, I'm gonna need to pick up some more stuff. - -[MAR1_G:MAR1] -~w~Keep the engine running... - -[MAR1_GB:MAR1] -~w~Come on Maria! No more stealing! - -[MAR1_GC:MAR1] -~w~Aw, hush Toni baby! That was all a misunderstanding back there! - -[MAR1_G2:MAR1] -~w~I'm telling you, I don't have anything hidden up there! - -[MAR1_H:MAR1] -~w~Get me back to my place! - -[MAR1_I:MAR1] -~w~If you leave me here, I'll have Salvatore cut your balls off! - -[MAR1_J:MAR1] -~r~Maria's dead! Oh, the humanity! - -[MAR1_K:MAR1] -~w~Toni, honey, I had a great time today. - -[MAR1_K2:MAR1] -~w~Maybe you can drop by later and we can have some more fun. - -[MAR1_K3:MAR1] -~w~See ya later handsome! - -[MAR1_L:MAR1] -~w~The cops are onto us! You'd better lose them! - -[MAR1_L2:MAR1] -~w~I think you lost them! Lets go shopping! - -[MAR1_M:MAR1] -~w~STOP THIEF! - -[MAR1EXT:MAR1] -~w~Take Maria back to her ~y~apartment. - -[MAR1_1:MAR1] -NONE - -[MAR1_D3:MAR1] -~w~Take your God-damn hands off me! - -[MAR1_G3:MAR1] -~w~Get the hell off me! - -[MAR1_E2:MAR1] -~w~Lose the heat! - -{=================================== MISSION TABLE MAR2 ===================================} - -[MAR2_AA:MAR2] -~w~Stop it! One of Salvatore's dogs is bringing me right over... - -[MAR2_AB:MAR2] -~w~...oh, he's a charmer - -[MAR2_AC:MAR2] -~w~Maybe too thin though. - -[MAR2_AE:MAR2] -~w~So, listen, I wanna party, but the cupboard is bare. - -[MAR2_AF:MAR2] -~w~You got some sugar? Pure cane huh? - -[MAR2_AG:MAR2] -~w~Great. Ciao! - -[MAR2_AH:MAR2] -~w~Come on Toni. I've got places I need to be. - -[MAR2_BA:MAR2] -~w~Don't you have any wheels? - -[MAR2_BB:MAR2] -~w~Let's move it. My dealer won't hang around all day. - -[MAR2_3F:MAR2] -~w~Take Maria to see her ~y~dealer. - -[MAR2_BC:MAR2] -~w~There they are. Just pull in behind them, there's a good boy. - -[MAR2_GA:MAR2] -~w~You just wait here. - -[MAR2_GB:MAR2] -~w~I'm not sure I like this. - -[MAR2_GC:MAR2] -~w~It's sweet you're worried. But, I'm Salvatore's girl, I'll be fine. - -[MAR2_GE:MAR2] -~w~I ain't going anywhere with you! Who the hell do you think you are? - -[MAR2_GF:MAR2] -~w~Drive! - -[MAR2_GG:MAR2] -~w~Toni! - -[MAR2_GH:MAR2] -~w~Oh shit! - -[MAR2_19:MAR2] -~w~Kill the ~r~Sindaccos! - -[MAR2_EA:MAR2] -~w~Happy now? - -[MAR2_EB:MAR2] -~w~Toni Cipriani. My Hero! - -[MAR2_EC:MAR2] -~w~You know what? I'm all partied out. Take me home stud. - -[MAR2_HA:MAR2] -~w~So uh, you wanna come up... for a... uh... coffee or somethin'? - -[MAR2_HB:MAR2] -~w~I'll pass. - -[MAR2_HC:MAR2] -~w~You sure? Well, call me. - -[MAR2_O2:MAR2] -~w~Take Maria back to her ~y~apartment. - -[MAR2_CA:MAR2] -~w~Come on, Toni! - -[MAR2_CB:MAR2] -~w~For Christ-sake Toni, come on! - -[MAR2_CC:MAR2] -~w~Save me, Toni! - -[MAR2_CD:MAR2] -~w~Help! - -[MAR2_CE:MAR2] -~w~Come ooonnnnnnn! - -[MAR2_FA:MAR2] -~w~Who am I supposed to get my shit from now? - -[MAR2_FB:MAR2] -~w~You suck, Toni! - -[MAR2_LM:MAR2] -~w~You left ~b~Maria~w~ behind. Go back for her. - -[MAR2_MD:MAR2] -~r~Maria died. - -[MAR2_WA:MAR2] -~w~The ~r~dealers~w~ are getting away! - -[MAR2_DM:MAR2] -~r~You lost the dealers! - -[MAR2_DA:MAR2] -~w~Some hero you are! - -[MAR2_DF:MAR2] -~r~You scared off Maria's dealers! - -[MAR2_18:MAR2] -~w~Ram the ~r~Sindacco car~w~ to rescue Maria! - -[MAR2_AD:MAR2] -~w~...yeah. - -{=================================== MISSION TABLE MAR3 ===================================} - -[MAR3_A0:MAR3] -~w~Dear Toni, I've put myself up as the first prize in a street-race. - -[MAR3_A1:MAR3] -~w~If Salvatore finds out about this we're both going to be in big trouble. - -[MAR3_A2:MAR3] -~w~So you'd better come and save my ass... then maybe it'll belong to you! - -[MAR3_A3:MAR3] -~w~Forever yours, Maria. - -[MAR3_E0:MAR3] -~w~Come on Maria. Let's go. - -[MAR3_E1:MAR3] -~w~Well, finally! Mr. Tough guy makes his move. - -[MAR3_E2:MAR3] -~w~Look Maria. You're Salvatore's girl... - -[MAR3_E3:MAR3] -~w~I'm my own girl! - -[MAR3_E4:MAR3] -~w~...you're such a God-damn square! - -[MAR3_E5:MAR3] -~w~Come on Wayne! Let's party! - -{=================================== MISSION TABLE MAR4 ===================================} - -[MAR4_B1:MAR4] -~w~Wayne can be found with his gang in ~y~Chinatown. - -[MAR4_B2:MAR4] -~w~Get over there and rub him out! - -[MAR4_C1:MAR4] -~r~Wayne's~w~ escaping! Grab a bike and kill him! - -[MAR4_C3:MAR4] -~w~You're losing him! Don't let ~r~Wayne ~w~get away! - -[MAR4_D1:MAR4] -~w~Are you Wayne? - -[MAR4_D2:MAR4] -~w~Who wants to know? - -[MAR4_D3:MAR4] -~w~I'm a friend of Maria's. - -[MAR4_D4:MAR4] -~w~...beating up on women get your motor running, huh? - -[MAR4_D5:MAR4] -~w~That bitch had it coming! - -[MAR4_D6:MAR4] -~w~Yeah? Well, now so do you! - -[MAR4_D7:MAR4] -~w~Get him! - -[MAR4_T1:MAR4] -~w~Come on tough guy! - -[MAR4_T2:MAR4] -~w~You ain't got nothin'! - -[MAR4_T3:MAR4] -~w~You can't ride a bike for shit! - -[MAR4_T4:MAR4] -~w~If you ride close enough, you can kiss my ass! - -[MAR4_F1:MAR4] -~r~You let Wayne get away! - -[MAR4_P1:MAR4] -~w~You got the deadbeat! - -[MAR4_H1:MAR4] -Wayne's Health - -[MAR4_C4:MAR4] -~w~Don't lose ~r~Wayne. ~w~Chase him down and waste him! - -[BIK_01:MAR4] -What have you taken now? - -[BIK_02:MAR4] -Nothing. - -[BIK_03:MAR4] -What was it this time, huh? - -[BIK_04:MAR4] -Smack? Downers? Ludes? A little too much trumpet? - -[BIK_08:MAR4] -Who did this to you? - -[BIK_09:MAR4] -No one. - -[BIK_10:MAR4] -Who was it? - -[BIK_11:MAR4] -This guy I'm seeing, Wayne. - -[BIK_12:MAR4] -Some guy you're seeing, you're my boss's girl! - -[BIK_13:MAR4] -C'mon Toni, don't be so square, besides, he gets me this great speed, you know? - -[BIK_14:MAR4] -A girl needs a lift. - -[BIK_15:MAR4] -Plus it makes you really wild in bed. - -[BIK_16:MAR4] -Shut up. Why did he do this to you, - -[BIK_17:MAR4] -this dead prick Wayne? - -[BIK_18:MAR4] -I told him I was in love with somebody else. - -[BIK_19:MAR4] -I told him about me and you, Toni. - -[BIK_22:MAR4] -Where is this Wayne? - -[BIK_23:MAR4] -He deals at a bar down in Chinatown. - -[BIK_24:MAR4] -I love you, Toni Cipriani. - -[BIK_06:MAR4] -- A little too much sideways not enough up? ~n~ - Shut up Toni! - -[BIK_05:MAR4] -Not enough Diceypam? - -[BIK_20:MAR4] -- And then he hit me! ~n~ - There is no you and me! Christ, you're killing me. - -{=================================== MISSION TABLE MAR5 ===================================} - -[MAR5_EA:MAR5] -~w~Why have you brought me here? - -[MAR5_EB:MAR5] -~w~My stuff isn't here... this is where Wayne used to hang out. - -[MAR5_EC:MAR5] -~w~... I remember! I've got some zap stashed in Hepburn Heights! - -[MAR5_ED:MAR5] -~w~Hey, it's that bitch Maria! And that's the fuck who killed Wayne! - -[MAR5_AA:MAR5] -~w~I hid the zap behind the trashcan! - -[MAR5_AB:MAR5] -~w~Shit! The trash's been taken! - -[MAR5_AC:MAR5] -~w~Wait! I remember! I've still got a stash at my apartment! - -[MAR5_AD:MAR5] -~w~You're sure this time? - -[MAR5_AE:MAR5] -~w~Of course I'm sure! - -[MAR5_BA:MAR5] -~w~I meant Salvatore's place! I meant Salvatore's! - -[MAR5_BB:MAR5] -~w~For crying out loud, Maria! - -[MAR5_FA:MAR5] -~w~What kind of driver are you? That took ages! I could have OD'ed! - -[MAR5_FB:MAR5] -~w~I'm a mess! I'm gonna need a new wardrobe, a little nip-and-tuck, the works! - -[MAR5_FC:MAR5] -~w~Honey ...have you got some money? - -[MAR5_FD:MAR5] -~w~Er... not really... - -[MAR5_FE:MAR5] -~w~Well, what the hell have you been coming onto me for? I'm Salvatore's girl! - -[MAR5_FF:MAR5] -~w~He's loaded! Don't you ever hit on me again! - -[MAR5_CA:MAR5] -~w~(groan) - -[MAR5_CB:MAR5] -~w~Oh shit, I think I'm gonna puke. - -[MAR5_CC:MAR5] -~w~I'm really fucking high, Toni! - -[MAR5_CD:MAR5] -~w~I don't feel too good. - -[MAR5_CE:MAR5] -~w~You're driving too fast! And too slow! - -[MAR5_NC:MAR5] -~b~Maria~w~ can barely walk. Get a ride! - -[MAR5_ND:MAR5] -~w~Maria can barely walk. Get a ride! - -[MAR5_DA:MAR5] -~w~We'll fuckin' kill you man! - -[MAR5_DB:MAR5] -~w~You and the bitch die tonight! - -[MAR5_DC:MAR5] -~w~You made a big mistake screwing with us! - -[MAR5_LM:MAR5] -~w~You left ~b~Maria~w~ behind. Go back for her. - -[MAR5_O1:MAR5] -~w~Take Maria to the diner at ~y~Callahan Point. - -[MAR5_O2:MAR5] -~w~Take Maria to ~y~Hepburn Heights. - -[MAR5_O3:MAR5] -~w~Take Maria to ~y~her apartment. - -[MAR5_O4:MAR5] -~w~Take Maria to ~y~Salvatore's mansion. - -[MAR5_O5:MAR5] -~w~Go back for ~b~Maria. - -[MAR5_MD:MAR5] -~r~Maria died! - -[MAR5_O6:MAR5] -~w~Pick ~b~Maria~w~ up. - -[OVER_01:MAR5] -Oh hey baby... Oh I thought you'd never make it. - -[OVER_02:MAR5] -What is wrong with you? - -[OVER_03:MAR5] -Oops! Nothing, baby it's all good. - -[OVER_04:MAR5] -Get up you crazy bitch. What have you taken now? - -[OVER_05:MAR5] -Taken now? Nothing much. - -[OVER_06:MAR5] -You know, a couple of, a couple of greens, a couple of heavy reds. - -[OVER_07:MAR5] -Oh and these great pills I'm getting from Holland now. - -[OVER_08:MAR5] -Pure as hell! I feel great. - -[OVER_09:MAR5] -No, I don't. - -[OVER_10:MAR5] -I need a zap, and I'll be fine! - -[OVER_11:MAR5] -They're here somewhere. - -[OVER_12:MAR5] -What's a zap? - -[OVER_13:MAR5] -A zap? You don't know what a zap is? - -[OVER_14:MAR5] -Ah, Toni, you are so square! - -[OVER_17:MAR5] -I need a zap Toni! I'm gonna die! - -[OVER_18:MAR5] -I felt like this before, I've OD'd. - -[OVER_19:MAR5] -Get me a zap, Toni! - -[OVER_20:MAR5] -I left them at the diner at Callahan Point. - -[OVER_21:MAR5] -Don't just sit there then come on! - -[OVER_15:MAR5] -- Toni, I love you. ~n~ - Come on, make sense. - -{=================================== MISSION TABLE VIC1 ===================================} - -[VIC1I11:VIC1] -~w~I've got you a nice little place to stay, Toni. - -[VIC1I12:VIC1] -~w~It's got you written all over it. - -[VIC1I13:VIC1] -~w~We'll head there first. - -[VIC1I14:VIC1] -~w~You're all heart. - -[VIC1_3:VIC1] -~w~Drive Vincenzo to his ~y~warehouse. - -[VIC1_4:VIC1] -~w~Get back in the ~b~car. - -[VIC1_5:VIC1] -~w~Drive Vincenzo to the ~y~safehouse. - -[VIC1_6:VIC1] -~w~Walk into the yellow marker in the ~y~doorway. - -[VIC1_7:VIC1] -~w~Walk into the clothes icon to get a change of clothes. - -[VIC1_8:VIC1] -~w~Rejoin Vincenzo outside. - -[VIC1_9:VIC1] -~w~Take Vincenzo to ~y~Atlantic Quays. - -[VIC1_9A:VIC1] -~w~Now take me to my place. - -[VIC1_10:VIC1] -~w~Get in the ~b~car. - -[VIC1_D1:VIC1] -~w~Jeezus Toni! You drive like a bitch! - -[VIC1_D2:VIC1] -~w~Watch the God damn car! - -[VIC1_D3:VIC1] -~w~Toni, stop disrespecting me, and drive like a man, marron! - -[VIC1_C1:VIC1] -~w~This is it, Toni. 'Home sweet home'. Beautiful, ain't she? - -[VIC1_C2:VIC1] -~w~This shit hole is supposed to be my home? - -[VIC1_C3:VIC1] -~w~Oh! I think it's very you. - -[VIC1_C4:VIC1] -~w~Now you're disrespecting old Vincenzo. - -[VIC1_C5:VIC1] -~w~Now, tough guy, get your ass upstairs and go put on some decent clothes. - -[VIC1_C6:VIC1] -~w~ I don't got all day, so move. - -[VIC1_C7:VIC1] -~w~Hey, apartments cost money Toni. - -[VIC1_C8:VIC1] -~w~Just you remember who pays the bills around here. - -[VIC1_C9:VIC1] -~w~ME! Daddy Vincenzo over here. - -[VIC1C10:VIC1] -~w~So, from now on, you work for me. - -[VIC1C11:VIC1] -~w~So, I better see you back here real soon. - -[VIC1_F:VIC1] -~r~Vincenzo is dead. - -[HOMS_01:VIC1] -Hey... so there he is, huh? - -[HOMS_02:VIC1] -So listen, Toni, I know you did a good thing for us, - -[HOMS_03:VIC1] -and I know you've been lying low for a long time, - -[HOMS_04:VIC1] -so I want you to take it easy for a while, huh? - -[HOMS_05:VIC1] -Vincenzo will look after you. - -[HOMS_06:VIC1] -You need some money, ask him. - -[HOMS_07:VIC1] -You need a job - Lucky'll take care of you. - -[HOMS_08:VIC1] -What more could a family guy ask for? - -[HOMS_09:VIC1] -Even my son don't got it so good. - -[HOMS_10:VIC1] -But, Mr. Leone, I thought we got history, - -[HOMS_11:VIC1] -I mean I've done a lot for this family. - -[HOMS_12:VIC1] -And now, you're expecting me to take orders from this... this... this... - -[HOMS_13:VIC1] -Well it just doesn't seem... right. - -[HOMS_14:VIC1] -Toni, I know what you did, and no one is more grateful than me, honestly, - -[HOMS_15:VIC1] -but the idea that you walk in here - -[HOMS_16:VIC1] -and start to question my leadership right away is, quite frankly, - -[HOMS_17:VIC1] -out of order. Capiche? - -[HOMS_18:VIC1] -I understand, boss. - -[HOMS_19:VIC1] -So, when you need something, give Vincenzo a call down at Atlantic Quay. - -[HOMS_20:VIC1] -He'll take care of you. Won't you, Lucky? - -[HOMS_21:VIC1] -Of course, boss. Anything you say. - -[HOMS_22:VIC1] -Tell you what; we can go there now. - -{=================================== MISSION TABLE VIC2 ===================================} - -[VIC2M2:VIC2] -The lazy bastard ain't brought any cash in, in days. - -[VIC2M3:VIC2] -Maybe he needs some encouragement to get off his ass and do some work. - -[VIC2M4:VIC2] -Acting like a bitch... he kinda reminds me of you. - -[VIC2M5:VIC2] -~w~What are you trying to say? - -[VIC2M6:VIC2] -I ain't TRYING to say nothing! - -[VIC2M7:VIC2] -I'm telling you to get over there and make sure this asshole starts bringing in some god damn money! - -[VIC2_B:VIC2] -~W~Get some wheels. - -[VIC2OB1:VIC2] -~w~Take the dealer to ~y~work. - -[VIC2_C:VIC2] -~w~You're going to need wheels to get him to his regular patch! - -[VIC2_D:VIC2] -~w~Pick up Vincenzo's dealer from ~y~St. Mark's district. - -[VIC2_E:VIC2] -~w~So, Vincenzo tells me you're too chicken-shit to work your patch? - -[VIC2_E2:VIC2] -~w~Hey man! I'm no chicken-shit! - -[VIC2_EX:VIC2] -~w~I... er... I've been ill is all! - -[VIC2_E3:VIC2] -~w~I'll go back to work tomorrow... or, maybe, the day after. - -[VIC2_E4:VIC2] -~w~Oh, I think you're going to work today... like it or not! - -[VIC2_F:VIC2] -~w~Hey! Don't leave me here! This is a bad neighborhood dude! - -[VIC2_F2:VIC2] -~w~You left ~b~Vincenzo's dealer ~w~behind, go back and get him. - -[VIC2_G:VIC2] -~w~Listen man! I told Vinnie already... Chinatown's no go for the Leones now! - -[VIC2_G2:VIC2] -~w~The Sindaccos are moving in! If I go back there, I'm a dead man! - -[VIC2_G3:VIC2] -~w~Sure... sure... - -[VIC2_G4:VIC2] -~w~I'm telling you man! The Sindaccos are dealing. - -[VIC2_G5:VIC2] -~w~I don't feel too good... I think I might have a fever or something. - -[VIC2_H:VIC2] -~w~Stop near ~b~the dealer. - -[VIC2_I:VIC2] -~w~Oh, man... - -[VIC2_J:VIC2] -~r~Vincenzo's dealer got wasted! - -[VIC2_K:VIC2] -~w~Take Vincenzo's dealer to ~y~Chinatown. - -[VIC2_1:VIC2] -NONE - -[VIC2M1:VIC2] -We've got a dealer, working our North Chinatown patch. - -{=================================== MISSION TABLE VIC3 ===================================} - -[VIC3_H1:VIC3] -~w~Hold~h~ ~k~ ~PDLT~ ~w~to ~h~lock on to a target~w~, and press~h~ ~k~ ~PDFW~ ~w~to attack! - -[VIC3_H2:VIC3] -~w~Press~h~ ~k~ ~PDFW~ ~w~to attack the ~h~dealer. - -[VIC3O2:VIC3] -~w~Head over to ~y~Chinatown. - -[VIC3O3:VIC3] -~w~Take out the ~r~dealer. - -[VIC3_1:VIC3] -~w~Vincenzo's left you a present that might help. - -[VIC3_BA:VIC3] -~w~Stay off Leone turf asshole! - -[VIC3_BB:VIC3] -~w~You want some more, ass-head? - -[VIC3_BC:VIC3] -~w~The Leone's deal in this city! Nobody else! You hear me, you Sindacco fucks? - -[VIC3_6:VIC3] -~w~Sindaccos are dealing all over Chinatown. - -[VIC3_AA:VIC3] -~w~Vinnie? - -[VIC3_AB:VIC3] -~w~For crying out loud, Toni! Don't I get any peace? - -[VIC3_AD:VIC3] -~w~I'm already all blocked up, last thing I need is you on my case - -[VIC3_AE:VIC3] -~w~but as you're still here, you know, I'm still not seeing any money - -[VIC3_AF:VIC3] -~w~coming in from that dealer. You know why? - -[VIC3_AG:VIC3] -~w~Enlighten me. - -[VIC3_AJ:VIC3] -~w~The Sindaccos have started dealing, and on Leone turf too! - -[VIC3_AK:VIC3] -~w~You gonna accept that Toni? - -[VIC3_AL:VIC3] -~w~I want you to get over to Chinatown! - -[VIC3_AM:VIC3] -~w~Alright, 'Boss', I'm on it. - -[VIC3_AN:VIC3] -~w~Aw God! Why's there never any God-damn paper in here? - -[VIC3_AH:VIC3] -~w~'Cause he's dead, Idiot! Some chump whacked him. - -[VIC3O4:VIC3] -~r~Sindaccos~w~ are dealing all over Chinatown. Teach them a lesson they won't forget! - -{=================================== MISSION TABLE VIC4 ===================================} - -[VIC4_H2:VIC4] -~w~Follow the ~h~Spray Can blip~w~ on the radar to find the ~h~Pay 'n' Spray. - -[VIC4_A2:VIC4] -~w~Stand in the ~h~marker~w~ to view the available weapons. - -[VIC4_A3:VIC4] -~w~Select different weapons by using~h~ ~k~ ~AMMOV~. - -[VIC4_A4:VIC4] -~w~Buy the current weapon by pressing~h~ ~k~ ~AMBUY~ ~w~- but only if you have enough cash! - -[VIC4_A6:VIC4] -~w~There are eight types of weapon that you can use. - -[VIC4_A7:VIC4] -~w~You can only carry one of each type at a time: one type of pistol, one type of shotgun, etc. - -[VIC4_H1:VIC4] -~w~Follow the ~h~Gun blip~w~ on the radar to find ~h~Ammu-Nation. - -[VIC4_H3:VIC4] -~w~Follow the ~h~Gun blip~w~ on the radar to find ~h~Ammu-Nation~w~ again. - -[VIC4_AB:VIC4] -~w~Difficult to forget... - -[VIC4_AD:VIC4] -~w~The interesting thing is, he wants to be a Leone now. - -[VIC4_AE:VIC4] -~w~Fuck him! He made his choice. - -[VIC4_AG:VIC4] -~w~Hello Brain-cell! Jeez, Toni, Sal said you was dumb muscle, - -[VIC4_AH:VIC4] -~w~but I didn't think anyone was that dumb. - -[VIC4_AJ:VIC4] -~w~He's gonna be our boy on the inside. - -[VIC4_AK:VIC4] -~w~There's just one thing. - -[VIC4_AL:VIC4] -~w~He's being sat on by some Sindacco ape. - -[VIC4_AM:VIC4] -~w~I want you to remove this little obstacle - -[VIC4_AN:VIC4] -~w~and get JD on our side. Capiche? - -[VIC4_2:VIC4] -~w~Take the ~g~cell phone~w~ as proof you've done the job. - -[VIC4_BA:VIC4] -~w~Toni... oh you just gave me some great snuff footage! - -[VIC4_BB:VIC4] -~w~JD? You saw that? YOU'RE FILMING ME?! - -[VIC4_BC:VIC4] -~w~Aw, I was just... it's for my own use! - -[VIC4_BD:VIC4] -~w~I can't wait 'till we're on the same team! - -[VIC4_BE:VIC4] -~w~Don't get too excited. You still owe me money. - -[VIC4_BF:VIC4] -~w~Take that Sindacco chump's car as a deposit, uh? - -[VIC4_BG:VIC4] -~w~Just re-spray it so no one recognizes it. - -[VIC4_BH:VIC4] -~w~I'll take care of his body. - -[VIC4_CA:VIC4] -~w~Hey! Get outta here! - -[VIC4_CB:VIC4] -~w~You ain't got no business here! - -[VIC4_61:VIC4] -~w~Get in the ~b~car. - -[VIC4_62:VIC4] -~w~Drive to the Pay 'n' Spray. - -[VIC4_DC:VIC4] -~r~JD told you to have the car resprayed! - -[VIC4_PR:VIC4] ---ring ring-- - -[VIC4O1A:VIC4] -~w~Go ~y~inside. - -[VIC4_O2:VIC4] -~w~Buy a pistol. - -[VIC4_O4:VIC4] -~w~Kill the ~r~Sindacco ape. - -[VIC4_FA:VIC4] -~r~He isn't going to sell you a gun now! - -[VIC4_O3:VIC4] -~w~Head for the ~y~construction site. - -[VIC4_AC:VIC4] -~w~He's currently running a Sindacco-controlled titty-bar, I mean gentleman's club. - -[VIC4_AA:VIC4] -~w~Hey, remember JD O'Toole? - -[VIC4_AI:VIC4] -~w~We can use JD to get the drop on Sindacco plans. - -[HELP42:VIC4] -~w~While targeting, tap~h~ ~k~ ~FREE1~ ~w~to enter ~h~Free Aim mode~w~, then use the~h~ ~k~ ~FREE2~ ~w~to adjust your aim. - -[VIC4_A1:VIC4] -~w~Go to the local ~y~Ammu-Nation~w~ to get a gun. - -[VIC4_O1:VIC4] -~w~Go back to ~y~Ammu-Nation~w~ and get a gun. - -[VIC4_1:VIC4] -~w~The ~r~Sindacco heavy~w~ is at the rear of the construction site. Kill him! - -{=================================== MISSION TABLE VIC5 ===================================} - -[VIC5_H:VIC5] -Leone - -[VIC5_I0:VIC5] -~w~Oh, it's you. - -[VIC5_I1:VIC5] -~w~Yeah, how 'bout that. It's me. What-do-ya-know! - -[VIC5_I2:VIC5] -~w~I'll tell you what I know tough guy. - -[VIC5_I3:VIC5] -~w~Some of our boys have screwed up a simple, no brain, fucking job. - -[VIC5_I4:VIC5] -~w~Lousy bastards can't even pull off a simple raid. - -[VIC5_I5:VIC5] -~w~Now the cops have got them pinned down in Chinatown. - -[VIC5_I6:VIC5] -~w~Marron! Why am I surrounded by so many fucking idiots? - -[VIC5_I7:VIC5] -~w~I don't know... 'birds of a feather'? - -[VIC5_I8:VIC5] -~w~Oh, you're a fucking comedian! - -[VIC5_I9:VIC5] -~w~Well laugh this off wise-guy. - -[VIC5I10:VIC5] -~w~You're the one who's gonna clean this shit up for me! - -[VIC5I11:VIC5] -~w~Now, get over there and drag those morons back here! - -[VIC5_F1:VIC5] -~r~One of the gang is dead. - -[VIC5_G0:VIC5] -~w~Get a four seater car. - -[VIC5_O1:VIC5] -~w~Go and rescue ~b~Vincenzo's men. - -[VIC5_O2:VIC5] -~w~Get ~b~the gang~w~ out of there! - -[VIC5_O3:VIC5] -~w~Lose the cops! - -[VIC5_O4:VIC5] -~w~Take the gang to ~y~Vincenzo's. - -[VIC5_O5:VIC5] -~w~Keep ~b~the gang~w~ together! - -[VIC5_O6:VIC5] -~w~You need a vehicle with more room! - -[VIC5_G1:VIC5] -~w~What are we gonna do? - -[VIC5_G2:VIC5] -~w~We're screwed! - -[VIC5_G3:VIC5] -~w~I ain't doing time for that bastard Vincenzo! - -[VIC5_G4:VIC5] -~w~Let's get the fuck out of here! - -[VIC5_G5:VIC5] -~w~Wait for me! - -[VIC5_G6:VIC5] -~w~Floor it Toni! - -[VIC5_E1:VIC5] -~w~So, did you get the money? - -[VIC5_E2:VIC5] -~w~We got it all boss... - -[VIC5_E3:VIC5] -~w~Hey, listen, there was nothing we could do... - -[VIC5_E4:VIC5] -~w~...there was nothing you could do. - -[VIC5_E5:VIC5] -~w~Things got fucked up... it couldn't have been worse. - -[VIC5_E6:VIC5] -~w~What do you think... are things better now, or worse? - -[VIC5_E7:VIC5] -~w~If you fuck it up for me, ever again, things will get worse for you too! - -[VIC5_E8:VIC5] -~w~Now clear that shit up, and get outta my sight. - -[VIC5_E9:VIC5] -~w~I've got a call to make. - -[VIC5E10:VIC5] -~w~I swear to God Toni, the day you came back my luck turned to shit. - -[VIC5E11:VIC5] -~w~You're like a bad fucking penny. - -{=================================== MISSION TABLE VIC6 ===================================} - -[VIC6_BA:VIC6] -~w~Freeze! - -[VIC6_BB:VIC6] -~w~Don't move asshole! - -[VIC6_P0:VIC6] -~w~Collect Vincenzo's ~b~car. - -[VIC6_P1:VIC6] -~w~It's a police trap! Get the car out of there! - -[VIC6_P2:VIC6] -~w~Lose the cops! - -[VIC6_P3:VIC6] -~w~You lost the cops! Now ~w~deliver the car to Vincenzo's ~y~lock-up. - -[VIC6_P4:VIC6] -~w~Teach Vincenzo never to mess around with you again - crush his ~b~car! - -[VIC6_P5:VIC6] -~w~Get back in Vincenzo's ~b~car! - -[VIC6_P6:VIC6] -~w~Deliver the car to Vincenzo's ~y~lock-up. - -[VIC6_PA:VIC6] -~r~You destroyed the car! - -[VIC6_D1:VIC6] -~w~Get in the ~b~car. - -[VIC6_D3:VIC6] -~w~Drive to the ~y~car crusher. - -[VIC6_D4:VIC6] -~w~Get out and wait for the crusher to do its thing. - -[VIC6_D5:VIC6] -~r~You should have crushed the car! - -[VIC6_AA:VIC6] -~w~Hey! Toni, how's the car? - -[VIC6_AB:VIC6] -~w~You son of a bitch, Vinnie! You set me up! - -[VIC6_AC:VIC6] -~w~Set you up? SET YOU UP? - -[VIC6_AD:VIC6] -~w~When you came back to the city you had nothing! NOTHING! - -[VIC6_AE:VIC6] -~w~I set you up alright, you ungrateful bastard! - -[VIC6_AF:VIC6] -~w~With an apartment and a job! - -[VIC6_AG:VIC6] -~w~And for that generosity I expect you to take a few risks now and then. - -[VIC6_AH:VIC6] -~w~I ain't a charity, pal, okay? And I ain't your sugar daddy. - -[VIC6_AI:VIC6] -~w~So the police were watching the car! Screw the police! - -[VIC6_AJ:VIC6] -~w~When I tell you to do something, you do it. Capiche? - -[VIC6_AK:VIC6] -~w~Oh, yeah, I understand Vinnie. - -[VIC6_AL:VIC6] -~w~I understand that as long as I work for you, I get treated like a bitch. - -[VIC6_AM:VIC6] -~w~I was making scores while you were looking up girl's skirts. - -[VIC6_AN:VIC6] -~w~Have your bitch job back, 'boss'. I quit. - -[VIC6_AO:VIC6] -~w~Toni, you're making a big... - -[VIC6_D2:VIC6] -~w~Stop in the ~y~marker. - -[HOTW_01:VIC6] -Sure, momma. I'll call you later. - -[HOTW_28:VIC6] -Vincenzo! - -[HOTW_02:VIC6] -Yeah of course, of course I'm being a good boy. - -[HOTW_03:VIC6] -Love you. - -[HOTW_04:VIC6] -Hey, Cheryl, hey sweetheart, give it a rest now. - -[HOTW_05:VIC6] -Here now get out of here. - -[HOTW_06:VIC6] -A little trumpetto for you. - -[HOTW_11:VIC6] -You're disgusting. Where's your respect? - -[HOTW_12:VIC6] -Respect? I call it multi tasking, Antonio. - -[HOTW_15:VIC6] -Cause if it's a problem, I can get Ray to help you out. - -[HOTW_16:VIC6] -Fuck you. - -[HOTW_17:VIC6] -I'm just busting your balls, relax. - -[HOTW_18:VIC6] -Listen, tough guy - I need you to do me a favor. - -[HOTW_19:VIC6] -I got girls crazy for blow; I got a car full of it parked in Trenton. - -[HOTW_20:VIC6] -Go pick it up... give me a call. - -[HOTW_21:VIC6] -What am I? Your driver? Screw you. - -[HOTW_22:VIC6] -Listen, listen, listen, listen.... - -[HOTW_23:VIC6] -I'd do it myself, but I'm being watched by the feds. - -[HOTW_24:VIC6] -You know I'll look out for you. Trust me. - -[HOTW_25:VIC6] -Besides, remember there's a hierarchy here, Capiche? Now be a good kid! - -[HOTW_07:VIC6] -- Hey who loves you, angel? ~n~ - You do, Vinnie. - -[HOTW_09:VIC6] -- Was that your mother on the phone? ~n~ - Sure. - -[HOTW_13:VIC6] -- What, don't you like getting a hot broad to suck you off? ~n~ - What? - -{=================================== MISSION TABLE VIC7 ===================================} - -[VIC7_VE:VIC7] -~r~v1.01 - -[VIC7_1:VIC7] -~w~Vinnie, I'm here! Where the hell are you? What is this? - -[VIC7_2:VIC7] -~w~Toni? Com esta? ....I knew you'd call. - -[VIC7_3:VIC7] -~w~Listen, I'm down at the Portland docks - -[VIC7_3A:VIC7] -~w~We got a big shipment just come in. Get yourself down here. I'm onboard the big freighter. - -[VIC7_3B:VIC7] -~w~I don't know Vinnie... I got stuff to do. - -[VIC7_3D:VIC7] -~w~But, from now on we'll be like partners.. okay. Better than partners... brothers! - -[VIC7_3E:VIC7] -~w~So, come on. What do you say? It's what Salvatore wants. - -[VIC7_3F:VIC7] -~w~Okay. For Salvatore. - -[VIC7_3G:VIC7] -~w~But if you pull any of that daddy bullshit, you're a dead man. - -[VIC7_4:VIC7] -~w~Wahaahha! I'm gonna cut you up little man! - -[VIC7_4A:VIC7] -~w~Meet Vincenzo at the ~y~Freighter. - -[VIC7_5:VIC7] -~w~Diiiiiiiiieee! - -[VIC7_6:VIC7] -~w~Hahahahahaha! - -[VIC7_7:VIC7] -~w~Is that dumb-ass gimp dead yet? - -[VIC7_8:VIC7] -~w~Hate to disappoint you Vinnie. - -[VIC7_9:VIC7] -~w~You son of a bitch! Why can't you just die already? - -[VIC7_10:VIC7] -~w~You should have never come back Toni. - -[VIC710A:VIC7] -~w~I've worked my fingers to the bone for Salvatore. - -[VIC710B:VIC7] -~w~And you just come wandering back to town and he's all, Toni this, and Toni that! - -[VIC7_11:VIC7] -~w~This is my town Toni! MY TOWN! - -[VIC711A:VIC7] -~w~You ain't taking it away from me! - -[VIC7_12:VIC7] -~w~I'm gonna enjoy this. - -[VIC7_4B:VIC7] -~w~The place looks deserted. Board the ~y~ship. - -[VIC7_13:VIC7] -~w~Head for the ~y~exit. - -[VIC7_3C:VIC7] -~w~Look, I know I've been an asshole to you Toni. And for that, I'm truly sorry. - -[VIC7HUL:VIC7] -~w~Head down to the ~y~hull. - -{=================================== MISSION TABLE SALS1 ===================================} - -[SALS1_1:SALS1] -NONE - -[SALS1_6:SALS1] -Kill ~r~Mayor R.C. Hole! - -[SALS1_7:SALS1] -Retrieve the mayor's ~g~mobile phone! - -[SALS1_8:SALS1] -~r~The mayor has finished his run. - -[SALS1_9:SALS1] -~r~The mayor has escaped. - -[SALS110:SALS1] -Take the phone to ~y~Salvatore. - -[SALS111:SALS1] -Drop the weapon or I'll shoot! - -[SALS112:SALS1] -They're on to you! The ~r~mayor~w~ is making a run for it! - -[SS1_AA:SALS1] -Yeah, its Toni. - -[SS1_AB:SALS1] -That bastard mayor is screwing with me and I don't take that kinda shit! - -[SS1_AC:SALS1] -Calm down, Sal. I'll see if I can take him out of the equation for you. - -[SS1_AD:SALS1] -You're a good boy, Toni, you do your father's memory proud. - -[SS1_AE:SALS1] -Listen, that fat fuck mayor should be taking his daily run in the park. - -[SS1_AF:SALS1] -You make sure he's out of breath... permanently! - -[SS1_AG:SALS1] -And get his phone! - -[SS1_AH:SALS1] -We can see who he's been talking to - -[SALS1AA:SALS1] -Yeah, it's Toni - -[SALS1AB:SALS1] -That bastard mayor is fucking with me. - -[SALS1AC:SALS1] -I don't take that shit! - -[SALS1AD:SALS1] -Relax. I'll take him out of the equation. - -[SALS1AE:SALS1] -You're a good boy, Toni. - -[SALS1AF:SALS1] -That fat fuck should be taking his daily run in the park. - -[SALS1AG:SALS1] -Make sure he's out of breath. Permanently! - -[SALS1AH:SALS1] -Oh yeah, get his phone! - -[SALS1AI:SALS1] -We can see who he's been talking to... - -[SALS1C1:SALS1] -Put down the weapon, sir! - -[SALS1C2:SALS1] -Stop or I'll shoot! - -[SALS1C3:SALS1] -Freeze! - -[SALS1C4:SALS1] -Don't be a fool! - -[SALS113:SALS1] -~r~The mayor's phone has been destroyed. - -[SALS114:SALS1] -Watch out! They'll shoot you if you enter the park armed. - -{=================================== MISSION TABLE SALS2 ===================================} - -[SALS2_1:SALS2] -~w~Get to the ~b~car. - -[SALS2_2:SALS2] -~w~Drive to the ~y~meeting place. - -[SALS2_3:SALS2] -~w~Get back in the ~b~car. - -[SALS2_4:SALS2] -~r~Mickey has been killed! - -[SALS2_5:SALS2] -~r~One of Salvatore's men has been killed! - -[SALS2AA:SALS2] -Toni, - -[SALS2AB:SALS2] -A few of the guys will be calling you later. - -[SALS2AC:SALS2] -Make sure you're around when they arrive. - -[SALS2AD:SALS2] -Ciao, Salvatore. - -[SALS2CA:SALS2] -Hey Toni? - -[SALS2CC:SALS2] -C'mon, get in, you're driving. - -[SALS2CD:SALS2] -Mickey, what, eerr, what's up? - -[SALS2CE:SALS2] -C'mon, Cipriani, what, you think I'm here to whack you? - -[SALS2BA:SALS2] -Salvatore's just down there... - -[SALS2BC:SALS2] -Toni, my boy, - -[SALS2BD:SALS2] -today's the day you're being made! - -[SALS2BE:SALS2] -Oh, Salvatore. Mr. Leone. - -[SALS2BF:SALS2] -Momma has been waiting for this day. - -[SALS2CB:SALS2] -Get in, c'mon we're going for a ride. - -[SALS2BB:SALS2] -Madonn' mia, what are you waiting for? - -[SALS2AF:SALS2] -Hey Toni thanks, I'll be in touch. - -{=================================== MISSION TABLE SALS3 ===================================} - -[SALS3_1:SALS3] -NONE - -[SALS3_2:SALS3] -Damage - -[SALS313:SALS3] -~r~The mayor's advisor is history! - -[SALS314:SALS3] -~r~Salvatore is history! - -[SALS3AA:SALS3] -Toni, hop in! - -[SALS3AB:SALS3] -Where we going? - -[SALS3AC:SALS3] -We're going to have a little chat with the mayor's assistant about Franco Forelli. - -[SALS3BA:SALS3] -Hey, get off my boat! - -[SALS3BB:SALS3] -You're coming with me. - -[SALS3BC:SALS3] -You can't do this! - -[SALS3BD:SALS3] -Hurry it up, the secret service will be watching! - -[SALS3CA:SALS3] -Toni, look out, gun men on those rocks! - -[SALS3CB:SALS3] -Gunmen up ahead! - -[SALS3CC:SALS3] -Watch the right, Toni! - -[SALS3CD:SALS3] -On the left, Toni, left! - -[SALS3CE:SALS3] -Gunmen on that jetty! - -[SALS3CF:SALS3] -Holy shit, secret service coming in by helicopter! - -[SALS3DA:SALS3] -The mayor wouldn't take a shit without Franco's say so! - -[SALS3DB:SALS3] -Nobody owned the mayor! - -[SALS3DC:SALS3] -Aargh! Wait, wait, you're right! - -[SALS3DE:SALS3] -The Sicilians? Why? - -[SALS3DF:SALS3] -They own Franco and they want a war between the Liberty Families. - -[SALS3DG:SALS3] -When the dust settles they're coming to take over. - -[SALS3DH:SALS3] -Toni, I'll call you later. - -[SALS3DI:SALS3] -Right now, I'm gonna flush this turd into the bay! - -[SALS3DD:SALS3] -It's those Sicilians... they pushed Franco into it. - -{=================================== MISSION TABLE SALS4 ===================================} - -[SALS4_1:SALS4] -NONE - -[SALS4BA:SALS4] -Yeah. - -[SALS4BB:SALS4] -Thank God you picked up! - -[SALS4BC:SALS4] -What's up, Sal? - -[SALS4BD:SALS4] -I went spying on the Forellis in Fort Staunton when all hell broke loose! - -[SALS4BE:SALS4] -The Sindaccos have gone to war with the Forellis, - -[SALS4BF:SALS4] -and I'm stuck here in the middle of a hit! - -[SALS4BG:SALS4] -I'll be right there. - -[SALS4BH:SALS4] -Bring my limo, it's bullet proof. We're gonna need it! - -[SALS4AA:SALS4] -Toni, let's get outta here! - -[SALS4AB:SALS4] -Get me back to the limo! - -[SALS4AE:SALS4] -OK, I got a place in Newport. Take me there! - -[SALS4AF:SALS4] -Hey Toni thanks, I'll be in touch. - -[SAL4_1:SALS4] -Go and pick up Mr. Leone's ~b~limo. - -[SAL4_2:SALS4] -~r~You have destroyed the car! - -[SAL4_3:SALS4] -Take the car to ~y~Fort Staunton. - -[SAL4_4:SALS4] -~r~You let Salvatore die! - -[SAL4_6:SALS4] -~b~Salvatore~w~ is down the alleyway. - -[SAL4_9:SALS4] -Get to the ~y~garage. - -[SAL4_11:SALS4] -You have left ~b~Salvatore ~w~behind! - -[SAL4_12:SALS4] -It's blocked, leave the limo here and go in on foot. - -[SAL4_13:SALS4] -Get back in the ~b~limo. - -[SAL4_14:SALS4] -Take Salvatore and the limo to the ~y~garage~w~ in Newport. - -[SAL4_15:SALS4] -Find ~b~Salvatore! - -[SAL4_16:SALS4] -Get Salvatore to the ~b~limo. - -[SAL4_17:SALS4] -Wait for ~b~Salvatore~w~ to get in the limo! - -{=================================== MISSION TABLE SALS5 ===================================} - -[SALS5_1:SALS5] -~w~Press~h~ ~k~ ~VEACC~ ~w~to take control of Paul Sindacco's car. - -[SALS5_2:SALS5] -~w~Take out the ~r~Forellis~w~ at the meet before Sindacco finds the control system. - -[SALS5_3:SALS5] -~r~Paul Sindacco has been killed! - -[SALS5_4:SALS5] -~r~Salvatore's van has been destroyed! - -[SALS5_5:SALS5] -~r~Sindacco has reached the meet! - -[SALS5_6:SALS5] -~w~Get to the ~b~van. - -[SALS5_7:SALS5] -~w~Time Left - -[SALS5_8:SALS5] -~r~Sindacco found the control system! - -[SALS5_9:SALS5] -~w~The satellite controls for Sindacco's car will be slow to respond to you. - -[SALS510:SALS5] -Damage - -[SALS5AA:SALS5] -Hey! - -[SALS5AB:SALS5] -Toni, it's me, I got something for you - - -[SALS5AC:SALS5] -You're gonna love it, it should be fun. - -[SALS5AD:SALS5] -What do you want done, Sal? - -[SALS5AE:SALS5] -There's a van nearby. - -[SALS5AF:SALS5] -Gimme a call when you find it. - -[SALS5BA:SALS5] -Ok Sal, I'm in the van. - -[SALS5BB:SALS5] -Good. We've messed around with Paulie Sindacco's car. - -[SALS5BC:SALS5] -So what do you want me to do? - -[SALS5BD:SALS5] -Paulie's going to a meet with the Forellis - - -[SALS5BE:SALS5] -he's trying to broker a truce. - -[SALS5BF:SALS5] -Use the gear in the van to take control of Paulie's car. - -[SALS5BG:SALS5] -and mess up the meet. - -[SALS5CA:SALS5] -What the-? - -[SALS5CC:SALS5] -Oh god, help! - -[SALS5CD:SALS5] -Get out of the way! - -[SALS5CF:SALS5] -Somebody help me! - -[SALS5CG:SALS5] -My car's possessed! - -[SALS5CE:SALS5] -This car's trying to kill me! - -[SALS5CB:SALS5] -Hey, what's happening here? - -{=================================== MISSION TABLE SALS6 ===================================} - -[SALS601:SALS6] -~w~Sal has left you a ~b~boat ~w~at the south west pier, stop the wise-guy. - -[SALS602:SALS6] -~w~He's heading along the coast. Go get ~r~him! - -[SALS603:SALS6] -~r~He's ~w~heading back to Franco Forelli! - -[SALS604:SALS6] -~r~The wise-guy made it back to Fort Staunton. - -[SALS605:SALS6] -~r~He got away! - -[SALS606:SALS6] -~r~He's ~w~getting away on foot! - -[SALS607:SALS6] -~w~He's getting away in a ~r~stolen car! - -[SALS608:SALS6] -~r~You can't chase him if you don't have a boat! - -[SALS6AA:SALS6] -Hello. - -[SALS6AC:SALS6] -Forelli-Sindacco feud. - -[SALS6AD:SALS6] -He's headed over to meet Franco Forelli right now. - -[SALS6AE:SALS6] -It works very much to our advantage that Franco knows nothing, - -[SALS6AF:SALS6] -and this war keeps on going. - -[SALS6AG:SALS6] -Take that blabbermouth out. - -[SALS6AH:SALS6] -You got it, Sal. - -[SALS6AB:SALS6] -Toni, some wiseguy's found out that the Sicilian Mob are behind the Forelli-Sindacco feud. - -[SLS6_20:SALS6] -~w~He's heading back to Franco Forelli, take ~r~him ~w~out! - -[SLS6_21:SALS6] -~w~Take ~r~him ~w~out! - -{=================================== MISSION TABLE NEDS1 ===================================} - -[NEDS1_1:NEDS1] -The FBI are on their way to pick up a corrupt report concerning today's sports stars. - -[NEDS1_2:NEDS1] -If the report is delivered to the FBI, innocent people will get prosecuted. - -[NEDS1_3:NEDS1] -I want you to intercept this report and deliver it to me, and I'll keep it safe. - -[NEDS1_4:NEDS1] -You will need an FBI vehicle. - -[NEDS1_5:NEDS1] -There was a botched armed robbery on the highway. The FBI are at the crime scene. - -[NEDS1_6:NEDS1] -Steal their car and get to the meeting place before it's too late. - -[NEDS1_8:NEDS1] -Get back in the ~b~FBI car! - -[NEDS1_9:NEDS1] -Go to the ~y~meeting place. - -[NEDS111:NEDS1] -Lose the cops! - -[NEDS113:NEDS1] -I have the report I promised here... - -[NEDS114:NEDS1] -What the... There's already an agent here!? - -[NEDS115:NEDS1] -Another FBI car? Wait! You're an impostor! - -[NEDS116:NEDS1] -Stop the ~r~informant! - -[NEDS117:NEDS1] -Retrieve the ~g~report. - -[NEDS118:NEDS1] -Deliver the report to ~y~Liberty Tree. - -[NEDS119:NEDS1] -~r~The FBI car you needed is history. - -[NEDS120:NEDS1] -~r~You were too late! The informant has delivered the report to the FBI! - -[NEDS121:NEDS1] -Good job Toni, God will be very happy with you. - -[NEDS122:NEDS1] -I'll make sure this stays in safe hands. - -[NEDS123:NEDS1] -Cheerio. - -[NEDS124:NEDS1] -~r~The report is ruined! - -[NEDS1AA:NEDS1] -Forgive me, Father, for I have sinned... - -[NEDS1AB:NEDS1] -Shit, the Devil's hit pay dirt with you, Antonio. - -[NEDS1AE:NEDS1] -Some poor sinner confessed to fabricating a report on doping our country's finest athletes. - -[NEDS1AF:NEDS1] -If you were to stop him giving this to the FBI, innocent careers would be saved. - -[NEDS1AG:NEDS1] -Consider it done, Father. - -[NEDS1BA:NEDS1] -You're early. - -[NEDS1BB:NEDS1] -Hey, I don't know you, where's John-O? - -[NEDS1BC:NEDS1] -John-O? He couldn't make it. - -[NEDS1BD:NEDS1] -Hey, that's John-O! - -[NEDS1BE:NEDS1] -Gimme that! - -[NEDS1BF:NEDS1] -Screw this! - -[NEDS1AD:NEDS1] -Ah, the second option's more my bag... - -[NEDS1AC:NEDS1] -Now either you can go off and say Hail Marys, or you can do the Lord's dirty work. - -[NEDS1_7:NEDS1] -Go to the crime scene and steal an ~b~FBI car~w~, then get to the meeting point before ~1~:~1~ hours. - -[NEDS125:NEDS1] -Go to the crime scene and steal an ~b~FBI car~w~, then get to the meeting point before 0~1~:~1~ hours. - -[NEDS126:NEDS1] -Go to the crime scene and steal an ~b~FBI car~w~, then get to the meeting point before 0~1~:0~1~ hours. - -[NEDS127:NEDS1] -Go to the crime scene and steal an ~b~FBI car~w~, then get to the meeting point before ~1~:0~1~ hours. - -{=================================== MISSION TABLE NEDS2 ===================================} - -[NEDS2_1:NEDS2] -NONE - -[NEDS2AA:NEDS2] -Forgive me, Father, for I have sinned... - -[NEDS2AB:NEDS2] -Holy crap Toni, what have you done now? - -[NEDS2AC:NEDS2] -Whoa! Language, Father. - -[NEDS2AD:NEDS2] -Oh yeah, Hail Mary full of whatever. - -[NEDS2AE:NEDS2] -A wayward soul has confessed to fencing diamonds. - -[NEDS2AF:NEDS2] -Help this pilgrim on the path to redemption, take the loot and I'll see the diamonds are returned... - -[NB2_2:NEDS2] -Get the ~g~briefcase~w~ and kill all the gang members. - -[NB2_3:NEDS2] -Take the case to the ~y~Liberty Tree offices. - -[NB2_4:NEDS2] -Get the ~g~briefcase! - -[NB2_1:NEDS2] -This is a setup! - -[NB2_6:NEDS2] -Kill all of the ~r~guards! - -[NB2_7:NEDS2] -Destroy the ~r~helicopter! - -[NB2_5:NEDS2] -Take out the ~r~helicopter~w~, the ~r~guards~w~ and get the ~g~briefcase. - -{=================================== MISSION TABLE NEDS3 ===================================} - -[NEDS3AA:NEDS3] -Forgive me, Father, for I have sinned... - -[NEDS3AB:NEDS3] -Toni, my son, compared to the degenerates in this town you're a saint! - -[NEDS3AC:NEDS3] -Their cars pump the Devil's bum gas into our children's lungs! They are defiling Eden! - -[NEDS3AD:NEDS3] -Go and show these sinners the error of their ways! - -[NEDS3_1:NEDS3] -Drive the firetruck around town causing as many pile-ups, crashes and acts of mayhem as possible. - -[NEDS3_2:NEDS3] -~w~Steal the ~b~Firetruck. - -[NEDS3_3:NEDS3] -~w~You have ~1~ seconds to return to the ~b~Firetruck. - -[NEDS3_4:NEDS3] -Rating - -[NEDS3_5:NEDS3] -Now go and cause as many pile-ups, crashes and as much general mayhem as possible! - -[NEDS3_6:NEDS3] -Pedestrian Splatted! - -[NEDS3_7:NEDS3] -Vehicle Sunk! - -[NEDS3_8:NEDS3] -Vehicle Destroyed! - -[NEDS3_9:NEDS3] -Vehicle Flipped! - -[NEDS310:NEDS3] -~r~The Firetruck has been destroyed. - -[NEDS311:NEDS3] -360° Spin Out! - -[NEDS312:NEDS3] -720° Spin Out! - -[NEDS313:NEDS3] -1080° Spin Out! - -[NEDS314:NEDS3] -~r~You left the Firetruck. - -[NEDS315:NEDS3] -Rolled Vehicle! - -[NEDS316:NEDS3] -Three smashes in a row! - -[NEDS317:NEDS3] -Four smashes in a row! - -[NEDS318:NEDS3] -Five smashes in a row! - -[NEDS319:NEDS3] -Massive pileup bonus! - -[NEDS320:NEDS3] -~r~You didn't get a high enough rating in time. - -[NEDS321:NEDS3] -Dismount Bonus! - -[NEDS322:NEDS3] -Dismount & Splat Bonus! - -[NEDS323:NEDS3] -Highflier Bonus! - -[NEDS324:NEDS3] -Massive Highflier Bonus! - -[NEDS325:NEDS3] -~w~You have less than 1 second to return to the ~b~Firetruck. - -[NEDS326:NEDS3] -Congratulations! You did it with ~1~ seconds left. - -[NEDS327:NEDS3] -~w~Now destroy the ~r~Firetruck.~w~ Don't leave any evidence. - -[NEDS328:NEDS3] -Bonus points are awarded for causing spectacular crashes, spinning, flipping or destroying vehicles. - -[NEDS329:NEDS3] -Flipped Vehicle x ~1~ - -[NEDS330:NEDS3] -Rolled Vehicle x ~1~ - -[NEDS332:NEDS3] -~w~You have 1 second to return to the ~b~Firetruck. - -[NEDS333:NEDS3] -Congratulations! NEW BEST TIME with ~1~ seconds left. - -[NEDS334:NEDS3] -~w~Now destroy the Firetruck. Don't leave any evidence. - -[NEDS335:NEDS3] -180° Spin Out! - -[NEDS337:NEDS3] -Drive the firetruck around town causing as many pile-ups, crashes and acts of mayhem as possible before ~1~:~1~ - -[NEDS338:NEDS3] -Drive the firetruck around town causing as many pile-ups, crashes and acts of mayhem as possible before ~1~:0~1~ - -[NEDS339:NEDS3] -Drive the firetruck around town causing as many pile-ups, crashes and acts of mayhem as possible before 0~1~:~1~ - -[NEDS340:NEDS3] -Drive the firetruck around town causing as many pile-ups, crashes and acts of mayhem as possible before 0~1~:0~1~ - -[NEDS341:NEDS3] -Cause as many pile-ups, crashes and acts of mayhem as possible before ~1~:~1~ - -[NEDS342:NEDS3] -Cause as many pile-ups, crashes and acts of mayhem as possible before ~1~:0~1~ - -[NEDS343:NEDS3] -Cause as many pile-ups, crashes and acts of mayhem as possible before 0~1~:~1~ - -[NEDS344:NEDS3] -Cause as many pile-ups, crashes and acts of mayhem as possible before 0~1~:0~1~ - -[NEDS331:NEDS3] -Cause as many pile-ups, crashes and acts of mayhem as possible! - -{=================================== MISSION TABLE NEDS4 ===================================} - -[NEDS4_1:NEDS4] -NONE - -[NEDS4_2:NEDS4] -~w~The three celebrities are heading to a radio station downtown for an interview before tonight's premiere. - -[NEDS4_3:NEDS4] -~w~The actress, Faith W, is flying in from Francis Airport in her private helicopter. - -[NEDS4_4:NEDS4] -~w~The gangster turned actor, DB-P, is coming by boat from Portland. - -[NEDS4_5:NEDS4] -~w~The aging alcoholic actor, Black Lightman, will be checking out from rehab and arriving in a limo. - -[NEDS4_8:NEDS4] -~w~Faith is down. - -[NEDS4_9:NEDS4] -~w~DB-P is down. - -[NEDS410:NEDS4] -~w~Black Lightman is down. - -[NEDS411:NEDS4] -~w~All three celebrities have been taken out. Get back to the ~y~church~w~ and let Father know. - -[NEDS412:NEDS4] -~r~Faith has arrived at the radio station! - -[NEDS413:NEDS4] -~r~DB-P has arrived at the radio station! - -[NEDS414:NEDS4] -~r~Black Lightman has arrived at the radio station! - -[NEDS415:NEDS4] -~w~He will switch to a bullet-proof patriot. - -[NEDS417:NEDS4] -~w~The patriot is bullet-proof. - -[NEDS418:NEDS4] -~w~Watch for the shooter. - -[NEDS421:NEDS4] -~w~Phil Cassidy's gun shop is represented by a flag icon on the radar. - -[NEDS4AA:NEDS4] -Forgive me, Father, for I have sinned again. - -[NEDS4AB:NEDS4] -And you shall be redeemed once more, my son. - -[NEDS4AC:NEDS4] -The cult of celebrity has gone too far! - -[NEDS4AD:NEDS4] -What kind of whore gives a radio interview instead of giving a hardworking newspaper journalist an exclusive? - -[NEDS4AF:NEDS4] -Destroy these false idols! - -[NEDS4BA:NEDS4] -I have done what you asked, father. - -[NEDS4BB:NEDS4] -Great! The paper's circulation has tripled since you found your soul. - -[NEDS4BC:NEDS4] -What? - -[NEDS4BD:NEDS4] -Thanks again for all your help, Toni! - -[NEDS4BE:NEDS4] -Hey, what the fuck? - -[NEDS4BF:NEDS4] -WHO ARE YOU? - -[NEDS422:NEDS4] -Get a Rocket Launcher from Phil Cassidy's Fully Cocked Gun Shop. - -[NEDS4_7:NEDS4] -~w~Don't allow any of the ~r~celebrities~w~ to reach the LCFR radio station! - -[NEDS416:NEDS4] -~w~Don't allow any of the ~r~celebrities~w~ to reach the LCFR radio station! - -[NEDS419:NEDS4] -~w~You will find heavy weaponry at Phil Cassidy's Fully Cocked Gun Shop. - -[NEDS420:NEDS4] -~w~Father Ned has paid for a Rocket Launcher. Pick it up at Phil Cassidy's gun shop. - -[NEDS4_6:NEDS4] -~w~If you need heavy weapons, get over to Phil Cassidy's gun shop. - -{=================================== MISSION TABLE DONS1 ===================================} - -[MORG_01:DONS1] -2-2-3, 3-2-3, 4-2-3, 5-2-3-... - -[MORG_02:DONS1] -Antonio! How wonderful to see you! - -[MORG_03:DONS1] -What's going on? - -[MORG_04:DONS1] -We're having a party, dear boy, a party. - -[MORG_05:DONS1] -Yes, a morgue party! - -[MORG_08:DONS1] -What the fuck you talking about, a morgue party? - -[MORG_09:DONS1] -We're going have quite a night tonight. - -[MORG_10:DONS1] -But first, we need to go and pick up the guests... - -[MORG_11:DONS1] -Come, before our guests get bored to death. - -[MORG_12:DONS1] -No pun intended! - -[MORG_13:DONS1] -'Cuz they're dead, you know... - -[MORG_14:DONS1] -Our guest of honor is taking a little trip to the pathology labs. - -[MORG_15:DONS1] -Let's not keep him waiting. - -[MORG_06:DONS1] -- The first of the season! ~n~ - Woah, woah, woah, woah... - -[DONS1_1:DONS1] -None - -[DL1_A:DONS1] -I am holding a morgue party and I want you to collect the 'guests'. - -[DL1_2:DONS1] -~r~You destroyed the car. - -[DL1_3:DONS1] -The cops have been alerted, lose your wanted level! - -[DL1_4:DONS1] -Take the car to Donald's ~y~garage. - -[DL1_6:DONS1] -~r~The hearse made it to the police station. - -[DL1_9:DONS1] -Drive the car into the respray shop. - -[DL1_5:DONS1] -Steal the ~b~hearse~w~ before it reaches it's destination. - -{=================================== MISSION TABLE DONS2 ===================================} - -[DONS2AA:DONS2] -DL? - -[DONS2AB:DONS2] -Toni! - -[DONS2AC:DONS2] -How's the campaign? - -[DONS2AD:DONS2] -It's down to the wire and every last vote's gonna count! - -[DONS2AE:DONS2] -O'Donovan's campaigners are working those marginal seats hard. - -[DONS2AF:DONS2] -Well we've got our own bandwagon, so get out there and spread the word! - -[DONS2BA:DONS2] -Vote O'Donovan for mayor! - -[DONS2BB:DONS2] -Vote O'Donovan for an end to corruption! - -[DONS2BC:DONS2] -Put your trust in O'Donovan as mayor! - -[DONS2BD:DONS2] -An end to crime! Vote O'Donovan! - -[DONS2BE:DONS2] -Vote for justice! Vote O'Donovan! - -[DONS2CA:DONS2] -O'Donovan has three wives! - -[DONS2CB:DONS2] -Who ate all the pies? O'Donovan! - -[DONS2CC:DONS2] -O'Donovan is a junky! - -[DONS2CD:DONS2] -O'Donovan believes in compulsory buggery! - -[DONS2CE:DONS2] -O'Donovan's a Communist! - -[DONS2CF:DONS2] -O'Donovan dresses in his daughter's underwear! - -[DONS2CG:DONS2] -O'Donovan gets naked with hogs! - -[DONS2CH:DONS2] -O'Donovan hates America! - -[DONS2CI:DONS2] -Love won't tax the wealthy! - -[DONS2CJ:DONS2] -Vote Love for pathology classes in schools! - -[DONS2CK:DONS2] -Donald Love believes in morgue access for all! - -[DONS2CL:DONS2] -Donald Love is a war hero! - -[DONS2CM:DONS2] -A vote for Love is a vote for happiness! - -[DONS2CN:DONS2] -Donald Love: tough on vegetarians! - -[DONS2_1:DONS2] -~w~Get in the ~b~van. - -[DONS2_3:DONS2] -~w~O'Donovan has put his ~r~vans~w~ out to win back the votes! - -[DONS2_4:DONS2] -~r~You failed to win enough votes! - -[DONS2_6:DONS2] -~w~Time Left - -[DONS2_7:DONS2] -~w~Get back in the ~b~van~w~ and continue with the mission. - -[DONS2_9:DONS2] -~w~O'Donovan has put another ~r~van~w~ out! - -[DONS210:DONS2] -~w~Areas Held - -[DONS211:DONS2] -~r~You lost all the voting areas! - -[DONS212:DONS2] -~r~You failed to take out the opposition! - -[DONS2_2:DONS2] -~w~Drive through the ~y~marginal voting area checkpoints~w~ to win their vote. - -[DONS215:DONS2] -~w~You lost an ~y~area~w~ to O'Donovan! - -[DONS216:DONS2] -~w~Don't let O'Donovan get all the ~y~areas~w~ back! - -[DONS213:DONS2] -~w~Now you have enough areas, take out the ~r~opposition vans~w~ to stop O'Donovan getting any more. - -[DONS2_8:DONS2] -~w~Get at least 5 of the ~y~voting areas. - -[DONS214:DONS2] -~w~You have less than 5 ~y~areas~w~, get them back! - -[DONS217:DONS2] -~w~Take extra areas to increase your completion bonus. - -[DONS2_5:DONS2] -~r~The Public Address Van has been destroyed. - -[DONS218:DONS2] -~w~Get at least 5 of the ~y~voting areas~w~ before ~1~:~1~ hours. - -[DONS219:DONS2] -~w~Get at least 5 of the ~y~voting areas~w~ before 0~1~:~1~ hours. - -[DONS220:DONS2] -~w~Get at least 5 of the ~y~voting areas~w~ before 0~1~:0~1~ hours. - -[DONS221:DONS2] -~w~Get at least 5 of the ~y~voting areas~w~ before ~1~:0~1~ hours. - -[DONS230:DONS2] -~w~Now you have enough areas, take out the ~r~opposition van~w~ to stop O'Donovan getting any more. - -{=================================== MISSION TABLE DONS3 ===================================} - -[CAMP_01:DONS3] -Antonio! Que pasa, amigo? - -[CAMP_02:DONS3] -You do know I'm Italian, don't you, Don, not Spanish. - -[CAMP_03:DONS3] -Of course, how silly of me - I just love all the romance languages. - -[CAMP_04:DONS3] -My God, this is good. - -[CAMP_05:DONS3] -It tastes just like chicken, but some how, more, err, sentient. - -[CAMP_06:DONS3] -You want some? - -[CAMP_07:DONS3] -I already ate, thanks. - -[CAMP_08:DONS3] -Too bad. It's fantastic. - -[CAMP_09:DONS3] -I have some more delicacies about to be served... - -[CAMP_10:DONS3] -the liberals would have a field day, of course, - -[CAMP_11:DONS3] -but how little they know of life's real pleasures! - -[CAMP_12:DONS3] -Sophistication and democracy have always been such uneasy bedfellows. - -[CAMP_13:DONS3] -Listen, Don, we need to win this election. - -[CAMP_14:DONS3] -Okay, we need to make sure that there's no skeletons in the closet, - -[CAMP_15:DONS3] -if you know what I mean... - -[CAMP_16:DONS3] -Right. - -[CAMP_17:DONS3] -What I mean is... - -[CAMP_18:DONS3] -how do we take care of this O'Donovan guy who is covering for... - -[CAMP_19:DONS3] -standing in for the Forelli's? - -[CAMP_20:DONS3] -The guy has a lot of people canvassing for him, - -[CAMP_21:DONS3] -all kinds of deluded 'people' people, if you know what I mean. - -[CAMP_22:DONS3] -I think we need to have their faith in democracy shaken, if you understand me. - -[CAMP_23:DONS3] -What you mean is that I gotta go beat the crap out of them? - -[CAMP_24:DONS3] -Oh, your passion, Antonio, it's it's... magnificent. - -[CAMP_25:DONS3] -It's so um... um...um... Wagnerian! You know?! Arriverdici, amigo. - -[CAMP_26:DONS3] -Humphries, bring out the offal! - -[DONS3_1:DONS3] -Toni must get rid of the opposition's campaign workers, thereby weakening the Forelli candidate, O'Donovan's, electoral campaign efficiency. - -[DONS3_2:DONS3] -~w~Kill the opposition's ~r~campaign workers. - -[DONS3_3:DONS3] -~r~You have run out of time. - -[DONS3_4:DONS3] -These ~r~campaigners ~w~are dealt with. Take out the next set. - -[DONS3_5:DONS3] -~w~Kill the opposition's ~r~campaign workers ~w~before ~1~:~1~ - -[DONS3_6:DONS3] -~w~Kill the opposition's ~r~campaign workers ~w~before ~1~:0~1~ - -[DONS3_7:DONS3] -~w~Kill the opposition's ~r~campaign workers ~w~before 0~1~:~1~ - -[DONS3_8:DONS3] -~w~Kill the opposition's ~r~campaign workers ~w~before 0~1~:0~1~ - -{=================================== MISSION TABLE DONS4 ===================================} - -[DONS410:DONS4] -Go to the ~y~Forelli Warehouse~w~ and torch their ballot papers! - -[DONS411:DONS4] -Torch the ~r~ballot papers~w~ and destroy the ~r~printing machines! - -[DONS412:DONS4] -Destroy the ~r~printing machine! - -[DONS413:DONS4] -Torch ALL the ~r~ballot papers! - -[DONS414:DONS4] -Destroy the remaining ~r~Forelli vans! - -[DONS416:DONS4] -~r~You lost a Forelli van! The Forellis can now rig the election! - -[DONS418:DONS4] -There are ~r~~1~ pallets~w~ of fake ballots remaining. - -[DONS419:DONS4] -There is only ~r~1 pallet~w~ of fake ballots remaining. - -[DONS420:DONS4] -Destroy the remaining ~r~Forelli van! - -[DONS421:DONS4] -The printing machine is destroyed! Now destroy the other ~r~printing machine! - -[DONS422:DONS4] -The printing machine is destroyed! - -[DONS423:DONS4] -Now get out of here! - -[DONS424:DONS4] -Destroy the ~r~printing machines! - -[DS4_AA:DONS4] -So many people, so much money, just waiting to be taken. - -[DS4_AB:DONS4] -I don't pretend to understand politics. - -[DS4_AC:DONS4] -Nobody really does. It's all bluff and corruption. - -[DS4_AD:DONS4] -The Forellis own a silent share of the company making the new voting machines. - -[DS4_AE:DONS4] -That's bad, right? - -[DS4_AF:DONS4] -Well, we certainly can't trust them. - -[DS4_AG:DONS4] -No, it's best if they all have a MAJOR malfunction, if you catch my drift. - -[DONS4H1:DONS4] -You will find heavy weaponry at Phil Cassidy's Fully Cocked Gun Shop. - -[DONS4AA:DONS4] -Antonio, good to see you! - -[DONS4AB:DONS4] -Now, I'm no Democrat, but even I draw the line at vote rigging. - -[DONS4AC:DONS4] -Did you know the Forellis own a silent share in a company making the new voting machines? - -[DONS4AD:DONS4] -That's bad, right? - -[DONS4AE:DONS4] -Well, we certainly can't trust them. - -[DONS4AF:DONS4] -No, it's best if they all have a MAJOR malfunction, if you catch my drift. - -[DONS4_8:DONS4] -Go to Phil Cassidy's Fully Cocked Gun Shop. - -[DONS4H2:DONS4] -Phil Cassidy's Fully Cocked Gun Shop is represented by a flag icon on the radar. - -[DONS427:DONS4] -Now get out of Fort Staunton! - -[DONS4_9:DONS4] -Phil Cassidy's gun shop will provide you with equipment to disrupt the Forelli campaign. - -[DONS417:DONS4] -There is another flamethrower at Phil Cassidy's gun shop. - -[DONS425:DONS4] -Get the flamethrower from Phil Cassidy's gun shop. - -[DONS426:DONS4] -~r~The shop worker is history! - -[DONS4H3:DONS4] -Donald Love has paid for a flamethrower. Go to the counter to pick it up. - -{=================================== MISSION TABLE DONS5 ===================================} - -[DONS5_7:DONS5] -Protect Donald's Limo! - -[DONS5_9:DONS5] -~r~Donald Love is history! - -[DONS513:DONS5] -Limo Damage - -[DONS516:DONS5] -Get in the ~b~Limo. - -[DONS517:DONS5] -You've left ~b~Donald Love~w~ behind! - -[DONS519:DONS5] -Get Donald to the ~y~safe house! - -[DONS520:DONS5] -Kill the ~r~attackers! - -[DONS521:DONS5] -Get in the ~b~limo! - -[DS5_AA:DONS5] -How I hate publicity, but its all part of the game, right? - -[DS5_AB:DONS5] -'Fraid so. - -[DS5_AC:DONS5] -The Forellis are going to try and take me out, aren't they? - -[DS5_AD:DONS5] -Don't worry, I'm going to be riding shotgun. - -[DS5_AE:DONS5] -Oh well, here goes everything. - -[DS5_BA:DONS5] -Shit! This is ridiculous! - -[DS5_BB:DONS5] -Don't panic, I'll deal with these assholes! - -[DS5_BC:DONS5] -There's a rifle in the trunk! - -[DS5_BD:DONS5] -Lock the doors - this won't take long! - -[DS5_CA:DONS5] -Ok, we're good to go. - -[DS5_CB:DONS5] -There's another hitman after us! - -[DS5_DA:DONS5] -I can't fight an election as a virtual recluse. - -[DS5_DB:DONS5] -We'll have to think about using different tactics. - -[DONS522:DONS5] -Take Donald back to his ~y~building! - -{=================================== MISSION TABLE DONS6 ===================================} - -[DONS6_1:DONS6] -NONE - -[DS6_00:DONS6] -Go and follow the ~b~ballot van. - -[DS6_01:DONS6] -Wait until the ~b~courier ~w~makes the exchange. - -[DS6_02:DONS6] -Get the ballots from the ~r~courier. - -[DS6_03:DONS6] -Kill the ~r~courier. - -[DS6_04:DONS6] -Take the ~g~package. - -[DS6_05:DONS6] -Go and follow the ~b~ballot van~w~ again. - -[DS6_06:DONS6] -~r~You killed a courier before the exchange! - -[DS6_07:DONS6] -You've missed one of the exchanges, you can't miss another! - -[DS6_08:DONS6] -~r~You missed two exchanges, the vote can't be fixed! - -[DS6_09:DONS6] -~r~You spooked him! - -[DS6_10:DONS6] -~r~The van was destroyed! - -[DS6_11:DONS6] -You ran out of time! - -[DS6_12:DONS6] -~r~You didn't catch the van! - -[DS6_13:DONS6] -~r~The van can't run without its driver! - -[DS6_15:DONS6] -~r~You've spooked the driver, you'll never catch him now! - -[DS6_16:DONS6] -~1~ - -[DS6_17:DONS6] -~w~The chase driver is dead, take the van to ~y~Donald's garage. - -[DONS6AA:DONS6] -Bad news Toni! - -[DONS6AB:DONS6] -What? - -[DONS6AC:DONS6] -The exit polls are neck and neck. - -[DONS6AD:DONS6] -Time for plan B. - -[DONS6AE:DONS6] -We steal some of the uncounted votes, and replace them with some of our own. - -[DONS6AF:DONS6] -What was that you said about vote rigging? - -[DONS6AG:DONS6] -Oh, shut up! - -[DS6_14:DONS6] -Go back for the ~g~ballots~w~, you can't leave them behind! - -[DS6_66:DONS6] -~r~You destroyed a courier's car before the exchange! - -[DS6_18:DONS6] -You killed a courier before the exchange! Don’t kill any more! - -[DS6_21:DONS6] -Hurry! There is another exchange taking place! - -[DS6_22:DONS6] -You missed the first exchange, you can't miss another! - -[DS6_23:DONS6] -You missed the second exchange, you can't miss another! - -[DS6_24:DONS6] -You missed the third exchange, you can't miss another! - -[DS6_25:DONS6] -You missed the fourth exchange, you can't miss another! - -[DS6_26:DONS6] -You scared off a courier before the exchange! Don’t scare off any more! - -[DS6_28:DONS6] -~r~You messed up! The vote can no longer be fixed! - -{=================================== MISSION TABLE DONS7 ===================================} - -[ELEC_01:DONS7] -Hey Don - I took care of that mess for you. - -[ELEC_02:DONS7] -Everything should be cool now. - -[ELEC_03:DONS7] -Really. - -[ELEC_04:DONS7] -You got no more links to organized crime. - -[ELEC_05:DONS7] -You're whiter than white. You could be the pope. - -[ELEC_07:DONS7] -Although no links can be proved between Donald Love - -[ELEC_08:DONS7] -and Liberty City's organized crime, - -[ELEC_09:DONS7] -it seems his friendship with mobsters including Toni Cipriani, - -[ELEC_11:DONS7] -have counted heavily against him in voters' eyes. - -[ELEC_12:DONS7] -The past few hours have seen his popularity plummet. - -[ELEC_13:DONS7] -He is deemed, it seems, unfit for office... - -[ELEC_14:DONS7] -Unfit! Because of you... - -[ELEC_15:DONS7] -Yeah. And it's all your fault. - -[ELEC_16:DONS7] -My fault? - -[ELEC_17:DONS7] -Oh yeah. - -[ELEC_18:DONS7] -My fault? - -[ELEC_19:DONS7] -I can't believe the sacrifices I've made for this town, - -[ELEC_20:DONS7] -and do you know what my weakness has been the entire time...? - -[ELEC_21:DONS7] -Humility! And now I'm ruined. - -[ELEC_22:DONS7] -BANKRUPT! $20 million in the hole. - -[ELEC_23:DONS7] -Gone... bankrupt... done... Arriverderci! BANKRUPT! - -[ELEC_06:DONS7] -The Pope! watch this. - -[DONS7_1:DONS7] -O'Donovan links Donald Love to Salvatore Leone. Donald Love's political career stands on a knife's edge. Toni must destroy the evidence. - -[DONS7_2:DONS7] -~w~Go and steal the ~b~van~w~ containing the evidence. - -[DONS7_3:DONS7] -~r~You killed the contact. - -[DONS7_4:DONS7] -~w~Take the van to the ~y~drop off point. - -[DONS7_5:DONS7] -~w~Get back into the ~b~van. - -[DONS7_7:DONS7] -Get into the ~b~contact's car. - -[DONS7CA:DONS7] -Ah, Toni. - -[DONS7CB:DONS7] -The evidence is in that van up ahead. - -[DONS7CC:DONS7] -You'll have to fight your way in. - -[DONS7CD:DONS7] -Get the van back to DL's. - -[DONS7CE:DONS7] -Good luck! - -[DONS713:DONS7] -~w~Park the van inside the ~y~garage. - -[DONS714:DONS7] -~r~You destroyed the van! - -[RMN_AA:DONS7] -There'll be much celebrating tonight as the industrial action that brought Liberty City to a stand-still, - -[RMN_AB:DONS7] -has finally come to a close. - -[RMN_AC:DONS7] -Normal service has been resumed on all subway and ferry routes. - -[RMN_AD:DONS7] -Even the Elevator Bridge linking Staunton Island to Shoreside Vale has reopened for business. - -[RMN_AE:DONS7] -Militant strikers have finally dropped their placards and taken up their usual posts of employment - -[RMN_AF:DONS7] -after the freshly inaugurated Mayor O'Donovan made them this promise at a local rally. - -[RMN_AG:DONS7] -As your mayor I can guarantee there will ALWAYS be a ferry service in Liberty City. - -[RMN_AH:DONS7] -But, some may find his promise has a somewhat hollow ring, - -[RMN_AI:DONS7] -as work on the new Porter Road Tunnel continues unabated. - -[DONS7_6:DONS7] -~w~Meet Donald Love's ~b~man ~w~under the overpass in Newport. - -{=================================== MISSION TABLE RAYS1 ===================================} - -[SAYO_01:RAYS1] -So you're the pain in the neck, huh? - -[SAYO_02:RAYS1] -Excuse me? - -[SAYO_03:RAYS1] -Got all kinds of important people very pissed off at you. - -[SAYO_04:RAYS1] -Leon McAffrey, LCPD. - -[SAYO_05:RAYS1] -I don't know what you're talking about. - -[SAYO_06:RAYS1] -I'm in the restaurant business. - -[SAYO_07:RAYS1] -Whatever you say tough guy. - -[SAYO_08:RAYS1] -You greaseballs wanna put holes in each other, I don't give a shit. - -[SAYO_09:RAYS1] -All I care about is my cut. - -[SAYO_12:RAYS1] -My cut! Where is it? - -[SAYO_13:RAYS1] -Up your ass, buddy. Don't make me laugh. - -[SAYO_14:RAYS1] -You keep fucking with me, I'll put you, your friends, your friend's families, - -[SAYO_15:RAYS1] -your whole fucking home town under the sword. - -[SAYO_16:RAYS1] -Relax. Go get laid or something. - -[SAYO_17:RAYS1] -This is business - a partnership - equals. - -[SAYO_18:RAYS1] -I keep the law off your back - the feds, Rico - - -[SAYO_19:RAYS1] -and you keep me in the shit that I like. - -[SAYO_20:RAYS1] -Well how do I know I ain't about to be shaken down - -[SAYO_21:RAYS1] -by every dirty cop from here to Vice City? - -[SAYO_22:RAYS1] -I'm gonna help you take over this town. - -[SAYO_23:RAYS1] -In return I want some cash and a few favors. - -[SAYO_24:RAYS1] -Now c'mon, Toni, take a drive with me... - -[SAYO_25:RAYS1] -we're gonna meet your old friends, the Sindaccos. - -[SAYO_10:RAYS1] -- I love a man of principle. ~n~ - Well me too. I go to all their memorial services in fast cars with hot broads. - -[RS1_YK:RAYS1] -Damage - -[RS1_01:RAYS1] -Wipe out the ~r~Sindaccos. - -[RS1_02:RAYS1] -~r~The car was destroyed! - -[RS1_03:RAYS1] -~r~The Yakuza were massacred! - -[RS1_04:RAYS1] -~w~Kill some ~r~Sindaccos ~w~to get their attention. - -[RS1_05:RAYS1] -~w~Get in Leon's ~b~car. - -[RS1_06:RAYS1] -~w~Head out to ~y~Sindacco territory. - -[RS1_07:RAYS1] -~w~Head back to the ~b~car. - -[RS1_10:RAYS1] -~r~You killed Leon! - -[RAYS1AA:RAYS1] -Okay, I'll take the wheel, you start blasting! - -[RAYS1AB:RAYS1] -I thought you said Yakuza would do the heavy work! - -[RAYS1AC:RAYS1] -Adapt and survive, Cipriani. Adapt and survive. - -[RAYS1BA:RAYS1] -Shit, this is getting too high profile. - -[RAYS1BB:RAYS1] -I gotta make myself scarce, see you around Toni. - -[RAYS1CA:RAYS1] -Eyes front, Toni! - -[RAYS1CB:RAYS1] -Behind us Toni, behind us! - -[RAYS1CC:RAYS1] -Watch out on the left! - -[RAYS1CD:RAYS1] -On the right, Toni, the right! - -[RAYS1CE:RAYS1] -Get back in the car! - -[RAYS1CF:RAYS1] -Watch what you're doing! - -[RAYS1OS:RAYS1] -Oh shit! - -{=================================== MISSION TABLE RAYS2 ===================================} - -[RS2_02:RAYS2] -~w~Quickly, get on a ~b~bike! - -[RS2_03:RAYS2] -~w~Lure the bikers to the ~y~kill zone! - -[RS2_04:RAYS2] -~w~Go back, you can't leave any ~r~Forellis ~w~behind! - -[RS2_05:RAYS2] -~w~Get back on the ~b~bike! - -[RS2_06:RAYS2] -~r~You need a bike to lure the Forellis. - -[RS2_07:RAYS2] -~r~The Yardies want to spill Forelli blood themselves. - -[RS2_08:RAYS2] -~r~None of the Yardies survived! - -[RS2_09:RAYS2] -~1~ - -[RS2_10:RAYS2] -~r~They can't chase you if they don't have any bikes! - -[RAYS2AA:RAYS2] -You took your time, Toni. - -[RAYS2AB:RAYS2] -You say jump, I say screw you. - -[RAYS2AD:RAYS2] -Cute. Now listen. - -[RAYS2AE:RAYS2] -The Yardies have their greedy eyes on Forelli turf in Newport. - -[RAYS2AF:RAYS2] -Get over there and lure the Forelli soldiers down to the hospital in Rockford. - -[RAYS2AG:RAYS2] -The Yardies will be waiting for them. - -[RAYS2AH:RAYS2] -What's in this for you? - -[RAYS2AI:RAYS2] -I owe them. Catch you later. - -[RS2_11:RAYS2] -Don't kill any of the Forellis! - -[RS2_12:RAYS2] -Take ~r~them ~w~out! - -[RS2_01:RAYS2] -~w~Go and steal one of the Forellis' ~b~bikes~w~, but don't kill any of them. - -[RAYS2DB:RAYS2] -Yeah. C'mon, let's take it to 'em! - -[RS2_13:RAYS2] -~r~Too many Yardies were killed! - -{=================================== MISSION TABLE RAYS3 ===================================} - -[CRAZ_01:RAYS3] -I don't know what I did wrong in my past life to deserve you. - -[CRAZ_02:RAYS3] -Ray, you're 40 years old, and you have no idea what's really going on. - -[CRAZ_03:RAYS3] -I don't know how you've gotten this far. - -[CRAZ_04:RAYS3] -I don't know how somebody hasn't put a bullet in your mother Theresa head yet. - -[CRAZ_05:RAYS3] -Hey watch your mouth, Leon. - -[CRAZ_06:RAYS3] -I can't believe we're having this fucking conversation. - -[CRAZ_07:RAYS3] -What, are you gonna run to mommy? - -[CRAZ_08:RAYS3] -Are you gonna jump on daddy's knee? - -[CRAZ_09:RAYS3] -Ask for a wet kiss? - -[CRAZ_10:RAYS3] -Hey Toni! - -[CRAZ_14:RAYS3] -He's gonna make sure I do everything by the book! - -[CRAZ_15:RAYS3] -Toni Cipriani, Ray Machowski. - -[CRAZ_16:RAYS3] -He's with us. Hey we're gonna go fight organized crime now. - -[CRAZ_17:RAYS3] -You run along to the precinct, fill out a report. - -[CRAZ_18:RAYS3] -You're a good kid... Let's go, Toni. - -[CRAZ_19:RAYS3] -You piece of shit, Leon. - -[CRAZ_11:RAYS3] -- Freeze, asshole. ~n~ - WOAH! Woah! Woah! Easy! Meet my new partner. Mr. Hip! - -[RAYS3_1:RAYS3] -Help the Yakuza take over the Forelli held territory of Belleville Park. The player must kill ~1~ Forellis using only a katana. - -[RAYS3_2:RAYS3] -~w~Kill ~1~ ~r~Forellis~w~ using only the supplied katana. - -[RAYS3_3:RAYS3] -Kills - -[RAYS3_4:RAYS3] -~w~You have to kill the ~r~Forellis~w~ using the katana. - -[RAYS3_5:RAYS3] -~w~You don't have a katana. Collect a ~g~replacement. - -[RAYS3_6:RAYS3] -~r~You ran out of time. - -[RAYS3_7:RAYS3] -~w~Kill ~1~ ~r~Forellis~w~ using only the supplied katana before ~1~:~1~ - -[RAYS3_8:RAYS3] -~w~Kill ~1~ ~r~Forellis~w~ using only the supplied katana before ~1~:0~1~ - -[RAYS3_9:RAYS3] -~w~Kill ~1~ ~r~Forellis~w~ using only the supplied katana before 0~1~:~1~ - -[RAYS310:RAYS3] -~w~Kill ~1~ ~r~Forellis~w~ using only the supplied katana before 0~1~:0~1~ - -{=================================== MISSION TABLE RAYS4 ===================================} - -[RAYS4_1:RAYS4] -~w~The Yardies are under attack in Newport. Take out the attacking ~r~Sindaccos. - -[RAYS4_2:RAYS4] -~w~Go speak to the ~b~Yardie Gang Leader. - -[RAYS4_3:RAYS4] -~w~Follow the ~b~Yardie Gang Leader. - -[RAYS4_4:RAYS4] -~r~One of the Yardies has been killed! - -[RAYS4_5:RAYS4] -~w~Protect the Yardies until the ambulance arrives. - -[RAYS4_6:RAYS4] -~w~Get back and protect the Yardies. - -[RAYS4_7:RAYS4] -~w~Clear a path for the Yardies to reach the ambulance. - -[RAYS4_8:RAYS4] -~w~Go and meet the ~y~ambulance. - -[RAYS4AA:RAYS4] -Cipriani, we must stop meeting like this. - -[RAYS4AB:RAYS4] -Fine by me. - -[RAYS4AC:RAYS4] -C'mon, lighten up a little. - -[RAYS4AD:RAYS4] -What you got for me, McAffrey? - -[RAYS4AE:RAYS4] -Those Yardie boys are having a little trouble holding onto their newly acquired turf in Newport. - -[RAYS4AF:RAYS4] -Seems now the Sindaccos want it back. - -[RAYS4BA:RAYS4] -Me Boy Rudyard got himsel' capped! - -[RAYS4BB:RAYS4] -Come on, we got to get him a bone wagon! - -[RAYS4BC:RAYS4] -Shit, more Sindacco boo boos! - -[RAYS4BD:RAYS4] -I'll get the ambulance, you go help my boys! - -[RAYS4BE:RAYS4] -Let's get out of here! - -[RAYS4BF:RAYS4] -Here comes the ambulance! - -[RAYS4BG:RAYS4] -Thanks, Mr. Cipriani, we owe you one! - -{=================================== MISSION TABLE RAYS5 ===================================} - -[RAYS5_1:RAYS5] -NONE - -[RAYS5AA:RAYS5] -What, no flowers? - -[RAYS5AB:RAYS5] -I didn't know it was your funeral. - -[RAYS5AC:RAYS5] -You're a regular comedian, Toni, real funny guy. - -[RAYS5AD:RAYS5] -The Forellis are getting serious. - -[RAYS5AE:RAYS5] -They're running arms and taking a cut of the merchandise themselves, - -[RAYS5AF:RAYS5] -tooling up for trouble. - -[RAYS5AG:RAYS5] -They're moving the guns to Fort Staunton in trucks. - -[RAYS5AH:RAYS5] -It's been a gas. - -[RAYS5AI:RAYS5] -Likewise. - -[RAY5_2:RAYS5] -They've called in backup. - -[RAY5_3:RAYS5] -~r~The Forellis got the munitions! - -[RAY5_4:RAYS5] -Hey, it's Cipriani! - -[RAY5_5:RAYS5] -Waste him! - -[RAY5_6:RAYS5] -That's one down, now destroy the other ~r~truck. - -[RAY5_1:RAYS5] -Destroy the ~r~trucks~w~ before they reach their destination! - -[RAY5_7:RAYS5] -Destroy the ~r~truck~w~ before they get enough ammo from it. - -[RAY5_8:RAYS5] -~r~You did not destroy the truck in time! - -{=================================== MISSION TABLE SALH1 ===================================} - -[SLH1_F1:SALH1] -~r~You killed one of the Hoods. - -[SLH1_F2:SALH1] -~w~Lure out the Forellis by smashing up their ~r~cars. - -[SLH1_F3:SALH1] -~w~Exact revenge on the ~r~Forellis. - -[SLH1_F4:SALH1] -~w~Lure out more Forellis by smashing up another ~r~car. - -[SLH1_F5:SALH1] -~w~Don't leave the ~b~Hoods~w~ behind. - -[SLH1_B0:SALH1] -~w~Ok, Cuz. Let's smoke this town. - -[SLH1_B1:SALH1] -~w~Hey! Get back here, fool! - -[SLH1_B2:SALH1] -~w~Come on, you cracker! I ain't never gonna fit my ass in there! - -[SLH1_B3:SALH1] -~w~Damn right! You don't wanna go nowhere without me. - -[SLH1_B4:SALH1] -~w~Damn! That was intense, man! - -[SLH1_B6:SALH1] -~w~...no offence Toni. - -[SLH1_B7:SALH1] -~w~It's time for Hoods to rise up and do the right thing! - -[SLH1_B8:SALH1] -~w~Come on! Let's smoke 'em! - -[SLH1_C0:SALH1] -~w~My brother! - -[SLH1_C1:SALH1] -~w~Yo! Fool! Where you goin'? - -[SLH1_C2:SALH1] -~w~Just where in the hell am I supposed to sit my ass? - -[SLH1_C3:SALH1] -~w~Damn right! You don't wanna go nowhere without me. - -[SLH1_C4:SALH1] -~w~Sheee-it! I seen some shit right there! - -[SLH1_D0:SALH1] -~w~Hey! That's my car! - -[SLH1_D1:SALH1] -~w~I like it better this way! - -[SLH1_E0:SALH1] -~w~What the hell's going on? - -[SLH1_E1:SALH1] -~w~We're kicking your asses outta here! That's what's going on! - -[SLH1_X0:SALH1] -Got threat - -[SLH1_X1:SALH1] -Had threat - -[SLH1_X2:SALH1] -Find threat - -[SLH1_F0:SALH1] -~w~Pick up the ~b~Hoods~w~ then get the ~r~Forellis~w~ attention. - -[RUFJ_01:SALH1] -Here's your lawyer, Mr. Leone. - -[RUFJ_02:SALH1] -I know who the hell he is, pal... - -[RUFJ_03:SALH1] -Come on, gimme a break here. - -[RUFJ_04:SALH1] -Go on, kid, run along, and say hello to your mother for me, capiche? - -[RUFJ_05:SALH1] -Alright... You got five minutes. - -[RUFJ_06:SALH1] -Listen, uh, Lionel, you're looking good. - -[RUFJ_07:SALH1] -Look at me! - -[RUFJ_08:SALH1] -A fine member of the community, and suddenly I'm banged up. - -[RUFJ_09:SALH1] -It really challenges my philanthropic nature! - -[RUFJ_10:SALH1] -Of course, Mr. Leone. - -[RUFJ_11:SALH1] -We're doing everything we can to get you out of here and uh... - -[RUFJ_12:SALH1] -back to helping your community as soon as possible. - -[RUFJ_13:SALH1] -Of course. - -[RUFJ_14:SALH1] -I hope we can sue someone for this outrage. - -[RUFJ_15:SALH1] -Those cunts the Sindaccos, or those cocksuckers, the Forellis - who was it? - -[RUFJ_16:SALH1] -Who ratted me out? - -[RUFJ_18:SALH1] -Let's hit 'em both hard. - -[RUFJ_19:SALH1] -Way I see it, they both could use a good beating for this outrage. - -[RUFJ_22:SALH1] -Thank you - Toni - you really mean a lot to me, - you know that. - -[RUFJ_23:SALH1] -Listen, you might need some back up. - -[RUFJ_24:SALH1] -Use the hoods. Okay? - -[RUFJ_25:SALH1] -Whatever you think is best, Mr. Leone. - -[RUFJ_26:SALH1] -Alright... Get outta here... Lionel. - -[RUFJ_20:SALH1] -- Motherfuckers. ~n~ - It will be my pleasure. - -{=================================== MISSION TABLE SALH2 ===================================} - -[SALH2AA:SALH2] -~w~Hey Sal! It's me... Toni. - -[SALH2AB:SALH2] -~w~Toni! It's good to hear your voice kid. - -[SALH2AC:SALH2] -~w~These chumps won't let me see nobody! - -[SALH2AD:SALH2] -~w~Listen, I got plenty of business to take care of. - -[SALH2AE:SALH2] -~w~Take Paulie Sindacco. His family's finished in this town. - -[SALH2AF:SALH2] -~w~But he thinks he can just run away, like he's got no dues to pay. - -[SALH2AG:SALH2] -~w~I'm in jail because of that bastard! - -[SALH2AH:SALH2] -~w~Make that son of a bitch pay. - -[SALH2O1:SALH2] -~w~Intercept Paulie Sindacco at the ~y~Cochrane Dam Power House. - -[SALH2F1:SALH2] -~r~He got away! Salvatore will not be happy! - -[SALH2CA:SALH2] -~w~You idiots! That's Toni Cipriani! Get him! - -[SALH2BA:SALH2] -~w~Hey Toni! Why don't you swim over here and kiss my ass! - -[SALH2BB:SALH2] -~w~Hey over here, asshole! - -[SALH2BI:SALH2] -~w~Give my regards to Salvatore. I'll send him a postcard! - -[SALH2BC:SALH2] -~w~What you gonna do now jerk? - -[SALH2BE:SALH2] -~w~You're dead meat! - -[SALH2BF:SALH2] -~w~You ain't nothing! - -[SALH2BG:SALH2] -~w~Surprise! Dirtbag! - -[SALH2BH:SALH2] -~w~Ladies and gentlemen, Paulie Sindacco has left the building! - -[SALH2BD:SALH2] -~w~You ain't got a chance of catching me, asshead! - -[SALH2O2:SALH2] -~w~Kill ~r~Paulie Sindacco~w~. Don't let him get away! - -[SALH2O3:SALH2] -Get some wheels and ambush ~r~Paulie~w~ from the shore. - -{=================================== MISSION TABLE SALH3 ===================================} - -[SALH3_1:SALH3] -~w~Sal? How's it going? - -[SALH3_2:SALH3] -~w~Fuckin' bene! Just great! - -[SALH3_3:SALH3] -~w~Number one, the new mayor is fixing it so I don't get bail. - -[SALH3_4:SALH3] -~w~Number two, we're stuck fighting the God-damn Triads and Diablos. - -[SALH3_5:SALH3] -~w~Number three, I hear that the fuckin' Yakuza are gonna make a play to take over the city. - -[SALH3_6:SALH3] -~w~Other than that, everything is just peachy! - -[SALH3_7:SALH3] -~w~After all these years of mob control, we've finally flushed it all down the crapper! - -[SALH38:SALH3] -~w~Boss, I can take care of everything. - -[SALH39:SALH3] -~w~The Yakuza have got a load of weapons in Aspatria. - -[SALH310:SALH3] -~w~Nothing can stop them now! - -[SALH311:SALH3] -~w~We'll see about that. - -[SALH3_A:SALH3] -~w~Check out the ~y~Yakuza Compound. - -[SALH3C1:SALH3] -~w~Find a way inside the ~y~Compound. - -[SALH3C2:SALH3] -~w~Holy Shit! I don't fucking believe it! - -[SALH3C3:SALH3] -~w~Destroy the ~r~Tank! - -[SALH3C4:SALH3] -~w~What the fuck?! - -[SALH3C5:SALH3] -~w~Kill him! - -[SALH3C6:SALH3] -~w~The ~r~Tank ~w~is well armored. Normal weapons won't wreck this heavy piece of hardware! - -[SALH3G1:SALH3] -~w~Hey 'buddy', there is nothing in there for you! - -[SALH3G2:SALH3] -~w~Seems like this yard is for Yakuza only. - -[SALH3G3:SALH3] -~w~Move your ass away from there! - -[SALH3_B:SALH3] -~w~The Yakuza car fooled them! - -[SALH3_C:SALH3] -~w~Drive into the ~y~Compound~w~ and take a look around. - -{=================================== MISSION TABLE SALH4 ===================================} - -[SALH4_1:SALH4] -~w~Sal? You there? - -[SALH4_2:SALH4] -~w~Anthony! I'm getting out! - -[SALH42A:SALH4] -~w~My arraignment's today! - -[SALH4_3:SALH4] -~w~Great! - -[SALH44C:SALH4] -~w~Yeah, Toni. Whatever. - -[SALH44E:SALH4] -~w~Hey, the guards are coming now... I'll see you round the front. - -[SALH4_5:SALH4] -~w~Go get a police car! - -[SALH45A:SALH4] -~w~You need a cop car or you'll spook the convoy! - -[SALH4_6:SALH4] -~w~Get into position at the ~y~station. - -[SALH4_7:SALH4] -~w~Holy Shit! - -[SALH4_8:SALH4] -~w~Protect the ~b~transport van~w~ and make sure it arrives in one piece! - -[SALH4_9:SALH4] -~w~Don't get too far from the ~b~transport van! - -[SALH410:SALH4] -~w~You're going to lose the ~b~transport van! - -[SALH411:SALH4] -~r~You lost the transport van! Sal has been executed! - -[SALH412:SALH4] -~r~The transport van was destroyed! - -[SALH413:SALH4] -~w~Don't piss the cops off - you'll ruin Sal's plans for bail! - -[SALH416:SALH4] -~w~Escort the ~b~convoy~w~ to its destination. - -[SALH417:SALH4] -~r~You blew it! The cops have called off the court hearing! - -[SALH420:SALH4] -~r~Sal was killed! - -[SALH421:SALH4] -~r~You lost the transport van! - -[SALH422:SALH4] -~w~Lose the heat or you'll draw too much attention to the convoy! - -[SALH424:SALH4] -~w~Take out the ~y~blockade! - -[SALH415:SALH4] -~w~It's good to be a free man again. - -[SALH418:SALH4] -~w~But listen. I'm gonna head up to the house and get out of these stinking rags, okay? - -[SALH419:SALH4] -~w~I'll meet you up there. - -[SALH414:SALH4] -~w~Illegal roadblock reported in the area... - -[SALH44A:SALH4] -~w~With me in here, who's stopping them from taking over? - -[SALH4_4:SALH4] -~w~Yeah, but I got this notion that the Sicilians don't want me to make it to court. - -[SALH44B:SALH4] -~w~Hey, they'd have to get by me first Sal. - -[SALH44D:SALH4] -~w~Just make sure I get my day in court! - -{=================================== MISSION TABLE SALH5 ===================================} - -[SALH51A:SALH5] -~w~Step on it, Toni. - -[SALH51B:SALH5] -~w~If I'm right, then the Sicilians will be going after the mayor. - -[SALH51C:SALH5] -~w~We gotta get to him before they do. - -[SALH511:SALH5] -~w~This don't look good. - -[SALH554:SALH5] -~w~Step on it Toni! - -[SALH512:SALH5] -~w~You left ~b~Sal~w~ behind - go back and get him. - -[SALH513:SALH5] -~w~God-damnit! They're here already! - -[SALH560:SALH5] -~w~Burn 'em down Toni! - -[SALH561:SALH5] -~w~I'm gonna get the mayor! - -[SALH514:SALH5] -~w~Lousy bastards have taken him already! - -[SALH555:SALH5] -~w~Come on Toni! This way! - -[SALH515:SALH5] -~w~There they are! - -[SALH517:SALH5] -~w~Where did those bastards come from? - -[SALH556:SALH5] -~w~Behind us Toni! - -[SALH562:SALH5] -~w~Toni, up ahead! - -[SALH519:SALH5] -~w~Toni! Take out the chopper! - -[SALH522:SALH5] -~w~They think they can hide at the lighthouse! - -[SALH557:SALH5] -~w~Take those bastards out! - -[SALH558:SALH5] -~w~Great shooting Toni! - -[SALH559:SALH5] -~w~Now let's put this thing to bed. - -[SALH526:SALH5] -~w~I'll drive! You keep us covered! - -[SALH527:SALH5] -~w~Okay Toni... this is it. - -[SALH528:SALH5] -~w~How many bastards are on this rock? - -[SALH553:SALH5] -~w~Shoot one bastard, and another one bites you on the ass! - -[SALH523:SALH5] -~r~You left Salvatore to be murdered by the Sicilians! - -[SALH524:SALH5] -~r~Salvatore was killed! - -[SALH552:SALH5] -~r~The mayor was killed! - -[SALH573:SALH5] -~r~You destroyed your boat! You lost them! - -[SALH516:SALH5] -~w~Take out the guards and then let's get after them in that boat! - -[SALH518:SALH5] -~w~Another ~r~boat~w~ incoming... - -[SALH525:SALH5] -~w~Ha! They've left a rocket launcher on this thing! - -[SALH520:SALH5] -~y~I'll move closer to shore so we're more protected... Take it down! - -[SALH521:SALH5] -~w~Good work! Let's move out! - -[SALH53A:SALH5] -~w~Torini... it figures. - -[SALH53B:SALH5] -~w~Give him up! - -[SALH53C:SALH5] -~w~The mayor is mine! - -[SALH53D:SALH5] -~w~THIS CITY is mine! - -[SALH53E:SALH5] -~w~Salvatore... - -[SALH53F:SALH5] -~w~Sicily never wanted questo schifo di citta. - -[SALH53G:SALH5] -~w~But, when tribute dried up, what could we do...? - -[SALH53H:SALH5] -~w~It was nothing personal. - -[SALH53I:SALH5] -~w~Nothing personal? - -[SALH53J:SALH5] -~w~After what you put me through! - -[SALH53K:SALH5] -~w~I'm gonna tear your fuckin' heart out! - -[SALH5TD:SALH5] -~w~Take down ~r~Massimo's helicopter! - -[SALH5MO:SALH5] -~r~Massimo~w~ is moving off! - -[SALH5GO:SALH5] -~r~Massimo got away! - -[SALH571:SALH5] -~w~Head for the ~y~Pier. - -[SALH570:SALH5] -~w~Take out those ~r~Sicilian mobsters! - -[SALH572:SALH5] -~w~Take out that ~r~Sicilian wise guy! - -[SALH510:SALH5] -~w~Head over to ~y~City Hall.~w~ Watch out for any Sicilian wise guys! - -[SICI_01:SALH5] -No, I'll talk to you later... - -[SICI_04:SALH5] -Hey we're both back. You and me! - -[SICI_05:SALH5] -We did it, huh? - -[SICI_06:SALH5] -You know it. - -[SICI_07:SALH5] -We cleaned it up with the Forellis. - -[SICI_08:SALH5] -The Sindaccos we sent into the fucking sea. - -[SICI_09:SALH5] -Now, I got the Sicilians on the phone, wanting peace. - -[SICI_10:SALH5] -We all want peace! But my peace, not their fucking peace. - -[SICI_11:SALH5] -I'm the big man now. - -[SICI_12:SALH5] -No chump from the old country is gonna tell me what to do. - -[SICI_13:SALH5] -I told them to go fuck themselves. - -[SICI_14:SALH5] -You did? Was that wise? - -[SICI_15:SALH5] -Hey, I'm the boss now. ME! - -[SICI_16:SALH5] -Now let's go see the mayor about getting my charges dropped... - -[FIN1_01:SALH5] -Hey! Mr. Mayor! - -[FIN1_03:SALH5] -Yeah, thanks. - -[FIN1_04:SALH5] -And that means... - -[FIN1_05:SALH5] -Uh... the city is grateful to you? - -[FIN1_06:SALH5] -Try again. - -[FIN1_07:SALH5] -That you work for me, right? - -[FIN1_08:SALH5] -Oh yeah, that I work for you. - -[FIN1_09:SALH5] -Good. Now, don't call us. We'll call you. - -[FIN1_10:SALH5] -Get outta here, prick. - -[FIN1_11:SALH5] -Thank you, Mr. Leone. - -[FIN1_12:SALH5] -Toni. We did it. We run things now. You and me. - -[FIN1_13:SALH5] -We're a team, huh? - -[FIN1_14:SALH5] -Now, I just need you to do one small thing for me; - -[FIN1_15:SALH5] -I got some problems that I been dealing with... - -[FIN2_01:SALH5] -Hey Uncle! How ya doin' huh? - -[FIN2_02:SALH5] -You look good. - -[FIN2_03:SALH5] -Ahhhh Salvatore, all we really wanted was clarity. - -[FIN2_04:SALH5] -Yes, uncle. I appreciate that. - -[FIN2_07:SALH5] -Good, very good. - -[FIN2_08:SALH5] -Sneaky little bastard. - -[FIN2_09:SALH5] -I wouldn't trust him a fucking inch. - -[FIN2_23:SALH5] -Every dog has his day... - -[FIN2_10:SALH5] -Yeah, but we did it. - -[FIN2_11:SALH5] -Yeah. We cleaned up. You did good, Toni. You did real good. - -[FIN2_12:SALH5] -I always knew you was a good kid. You saved my ass a few times. - -[FIN2_13:SALH5] -And I appreciate that kind of loyalty. - -[FIN2_14:SALH5] -Thank you. - -[FIN2_15:SALH5] -A good worker. I like that. Respectful. - -[FIN2_19:SALH5] -You can put a price on friendship? - -[FIN2_20:SALH5] -The kind of friendship you and me have? - -[FIN2_21:SALH5] -Shame on you! Come here. - -[FIN2_22:SALH5] -You're a good kid, but shame on you. - -[SICI_02:SALH5] -- Hey Toni! ~n~ - Sal! You're back where you belong. - -[FIN2_05:SALH5] -- So, we are at peace now - you and the old country? ~n~ - Of course. Me and all my people. - -[FIN2_16:SALH5] -- So I got you that half million I promised you. ~n~ - Half? Woah! I thought you, uh, said a couple? - -[FIN2_18:SALH5] -I said one million dollars! But what? - -[FIN1_02:SALH5] -We just saved you from that bunch of crazed Sicilians. - -{=================================== MISSION TABLE DONH1 ===================================} - -[DONH1JA:DONH1] -~w~Toni, my ex-mentor, Avery Carrington, is flying into town today... - -[DONH1JB:DONH1] -~w~It's come to my attention that he's working for the Panlantic Corporation. - -[DONH1JC:DONH1] -~w~They'll do anything to get prime real estate. - -[DONH1JD:DONH1] -~w~We HAVE to get hold of his plans to acquire land. - -[DONH1JE:DONH1] -~w~Come on Toni! Get after him! - -[DONH1CA:DONH1] -~w~Uh Toni, transportation would be a boon. - -[DONH1DA:DONH1] -~w~Head for the Airport, Toni. - -[DONH1DB:DONH1] -~w~We don't have a minute to lose. - -[DONH1EA:DONH1] -~w~Oh yes. This is one of my better plans, for sure... - -[DONH1EB:DONH1] -~w~I never knew I had it in me... - -[DONH1EC:DONH1] -~w~This is going to make me a fortune... - -[DONH1ED:DONH1] -~w~Yes sir, a fortune... - -[DONH1EE:DONH1] -~w~Even Avery would be proud. - -[DONH1GA:DONH1] -~w~There he is! - -[DONH1GB:DONH1] -~w~Kill him Toni! - -[DONH1GC:DONH1] -~w~I need those plans! - -[DONH1HA:DONH1] -~w~Please, Toni... he's getting away! - -[DONH1IA:DONH1] -~w~Oh, capital, Toni! ...quite literally! - -[DONH1IB:DONH1] -~w~Now lets get this back to the safety of my, erm, 'place of abode'. - -[DONH1O0:DONH1] -~w~Take Donald Love to the ~y~Airport. - -[DONH1O1:DONH1] -~w~Kill ~r~Avery Carrington~w~ and get his plans! - -[DONH1O2:DONH1] -~r~Avery~w~ is making a run for it! Stop him! - -[DONH1O3:DONH1] -~r~Avery~w~ has got another ride. Don't let him get away! - -[DONH1O4:DONH1] -~r~Avery~w~ is making a run for it! Get him! - -[DONH1O5:DONH1] -~w~Pick up ~b~Donald Love. - -[DONH1O6:DONH1] -~w~Good job! Pick up the ~g~plans. - -[DONH1O7:DONH1] -~w~Take Donald and the plans back to the ~y~Flop-House. - -[DONH1O8:DONH1] -~w~You've dropped the ~g~plans~w~! Go back and pick them up. - -[DONH1OA:DONH1] -~w~They're on to you! ~r~Avery's~w~ making a run for it! Kill him! - -[DONH1OB:DONH1] -~w~You need a vehicle. - -[DONH1OC:DONH1] -~w~Don't lose ~b~Donald! - -[DONH1OD:DONH1] -~w~Be careful! The plans will be lost if ~r~Avery's car~w~ is destroyed while he's in it! - -[DONH1OE:DONH1] -~r~Avery Carrington~w~ is escaping. Get after him! - -[DONH1F0:DONH1] -~r~The plans were destroyed! - -[DONH1F1:DONH1] -~r~Avery Carrington escaped! - -[DONH1F2:DONH1] -~r~Donald was killed! - -[DONH1OF:DONH1] -~r~Avery Carrington~w~ is nearly at his destination. Stop him! - -[DONH1O9:DONH1] -~w~Don't leave ~b~Donald~w~ behind! Those Colombians will kill him! - -[DONH1FA:DONH1] -~w~Hmmm, Panlantic must have employed the Cartel to protect Avery. - -[LAND_01:DONH1] -I know what you're thinking, Toni - how the mighty have fallen, - -[LAND_02:DONH1] -but this is just a temporary blip, my man. - -[LAND_03:DONH1] -Okay. - -[LAND_04:DONH1] -Oh, don't be all touchy. - -[LAND_05:DONH1] -I know I said some nasty things about this being your fault and all, - -[LAND_06:DONH1] -but hubris is a nasty, nasty bedfellow - almost as nasty as termites. - -[LAND_07:DONH1] -And trust me I've tried both recently. - -[LAND_08:DONH1] -Wait, you and me... are on our way back! - -[LAND_09:DONH1] -I never went away... - -[LAND_10:DONH1] -We're in this together, amigo. - -[LAND_11:DONH1] -No, we're not. - -[LAND_12:DONH1] -Please! - -[LAND_13:DONH1] -Please... please - forget about it, buddy. - -[LAND_18:DONH1] -Come - I'll tell you about it on the drive. - -[LAND_19:DONH1] -I hope you have your car. Mine's in the, err, shop... Yeah! - -[LAND_16:DONH1] -- 10% of what? This? Oh you're too kind. ~n~ - Not of this... of something really big. - -[LAND_14:DONH1] -- 'It's all your fault.' Pathetic. ~n~ - 10%? - -{=================================== MISSION TABLE DONH2 ===================================} - -[DONH2_1:DONH2] -~w~Go to the ~y~church~w~ on Staunton Island. - -[DONH2_2:DONH2] -~w~Beat up the ~r~reporter ~w~or target him with a gun to make him give you the photos. - -[DONH2_3:DONH2] -~w~You got some photos of me. Where are they? - -[DONH2_4:DONH2] -~w~Don't hurt me! - -[DONH2_5:DONH2] -~w~Where are the God-damn photos? - -[DONH2_6:DONH2] -~w~I don't know what you're talking about! - -[DONH2_7:DONH2] -~w~Where are they? - -[DONH2_8:DONH2] -~w~Please, no! - -[DONH2_9:DONH2] -~w~Come on you little pussy! Give 'em up! - -[DONH210:DONH2] -~w~Okay! Okay! - -[DONH2EX:DONH2] -~w~I'll get you the photos! - -[DONH211:DONH2] -~w~...I stashed the film in my lock-up! - -[DONH212:DONH2] -~w~Go to the ~y~reporter's lock-up. - -[DONH213:DONH2] -~w~Help! Help! I'm being kidnapped! - -[DONH214:DONH2] -~w~Help! He's going to kill me! - -[DONH215:DONH2] -~w~...I'm too gifted to die! - -[DONH216:DONH2] -~w~...I can't die, I'm still working on my novel! - -[DONH217:DONH2] -~w~My editor never said anything about this shit! - -[DONH218:DONH2] -~w~Don't move a muscle, assweed! - -[DONH219:DONH2] -~w~Stop right there, dickhead! - -[DONH220:DONH2] -~w~For crying out loud, will you stop running away! - -[DONH221:DONH2] -~w~Toni! At last! - -[DONH222:DONH2] -~w~A reporter witnessed us killing Avery! - -[DONH223:DONH2] -~w~He has photos! Oh, God! I'm finished! - -[DONH224:DONH2] -~w~Calm down will you! Where is this reporter? - -[DONH225:DONH2] -~w~Oh, Toni, you're wonderful! - -[DONH226:DONH2] -~w~Apparently he's been working on an undercover job at the church on Staunton Island. - -[DONH227:DONH2] -~w~Get the photos and bury him! - -[DONH228:DONH2] -~r~Ned escaped! - -[DONH230:DONH2] -~w~Kill ~r~Ned Burner. - -[DONH231:DONH2] -~r~Ned died before you got the photos! - -[DONH229:DONH2] -BULLSHIT - -[DONCUTA:DONH2] -~w~Here they are... take them! I didn't get them processed yet. - -[DONCUTB:DONH2] -~w~You piece of shit! - -[DONH2SM:DONH2] -Scare - -[DONH233:DONH2] -Keep intimidating the reporter. If his scare meter gets too low, he may try to escape. - -[DONH2LB:DONH2] -~w~You left ~b~the reporter ~w~behind. Go back and get him. - -[DONH2LC:DONH2] -~r~You lost the reporter. - -{=================================== MISSION TABLE DONH3 ===================================} - -[DONH3I1:DONH3] -~w~I'm back! - -[DONH3I2:DONH3] -~w~Back from the dead, Toni! Risen anew, like a phoenix from the ashes. - -[DONH3I3:DONH3] -~w~Like Lazarus... yes... Lazarus Love! - -[DONH3I4:DONH3] -~w~Ah, I'm going to be rich again! - -[DONH3I5:DONH3] -~w~Panlantic are going to pay me a fortune to see this deal through! - -[DONH3I6:DONH3] -~w~We did it Toni! - -[DONH3I7:DONH3] -~w~Whatever. - -[DONH3I8:DONH3] -~w~It's time for a little soiree with a very exclusive guest list. - -[DONH3I9:DONH3] -~w~Come on! - -[DONH3C1:DONH3] -~w~We're going to need some transportation, Toni. We don't have much time. - -[DONH3L1:DONH3] -~w~You need ~b~Donald.~w~ Go back and get him! - -[DONH3L2:DONH3] -~w~Come on Toni! We haven't got long! - -[DONH3L3:DONH3] -~w~Put the corpse back! - -[DONH3_5:DONH3] -~w~Toni, I've been dying for this party. - -[DONH35D:DONH3] -~w~Just like my guests. - -[DONH35A:DONH3] -~w~Find a ~b~corpse. - -[DONH35B:DONH3] -~w~Get ~b~Avery's corpse. - -[DONH35C:DONH3] -~w~Get ~b~Ned's corpse. - -[DONH3_6:DONH3] -~w~Take Donald and Avery to the ~y~Airport. - -[DONH36A:DONH3] -~w~Hey! Bring that ambulance back! - -[DONH36B:DONH3] -~w~Avery. - -[DONH36C:DONH3] -~w~Oh, Avery! How you've aged since we last met. - -[DONH36D:DONH3] -~w~...you used to feed me such pearls of wisdom. - -[DONH36E:DONH3] -~w~...and soon I shall dine again! - -[DONH36F:DONH3] -~w~...My God! He's wearing a wig! - -[DONH36G:DONH3] -~w~Toni. Take me and Avery over to his private jet at the airport. - -[DONH3_7:DONH3] -~w~Take Donald and Ned to the ~y~Airport. - -[DONH37F:DONH3] -~w~Toni. Take me and Ned here to the Airport. - -[DONH37A:DONH3] -~w~Hey! That guy's stealing the stiff! - -[DONH37B:DONH3] -~w~Ah, Ned Burner, ace reporter. - -[DONH37C:DONH3] -~w~Ah, Ned. I'm going to give you exclusive rights to - -[DONH37D:DONH3] -~w~cover my wonderful party. - -[DONH37E:DONH3] -~w~I wouldn't invite just anyone to my little bash you know. - -[DONH37G:DONH3] -~w~Invitations are to die for. - -[DONH3_8:DONH3] -~w~Take Avery's body to the ~y~Airport. - -[DONH3_9:DONH3] -~w~Take Ned's body to the ~y~Airport. - -[DONH3A1:DONH3] -~w~Be sure to get Avery's gamey old remains here before security discovers us. - -[DONH3A2:DONH3] -~w~His autopsy is scheduled anytime now. - -[DONH3N1:DONH3] -~w~Be sure to get Ned Burner's corpse here before security discover us. They'll be interring him anytime now. - -[DONH3F1:DONH3] -~r~Love is dead. - -[DONH3F2:DONH3] -~r~You lost Avery's body! - -[DONH3F3:DONH3] -~r~You lost Ned's body! - -[DONH3C2:DONH3] -~w~Airport Security will lock Avery Carrington's Hangar at 22:00. - -[DONH3F4:DONH3] -~r~Too late - airport security have locked the hanger! - -[DONH3F5:DONH3] -~r~Too late - airport security have found Donald with Avery's corpse! - -[DONH3W1:DONH3] -~w~Hurry up! Airport Security will lock Avery Carrington's Hangar at 22:00. - -[DONH3F6:DONH3] -~r~Too late - airport security have found Donald with Ned's corpse! - -{=================================== MISSION TABLE DONH4 ===================================} - -[DONH4A:DONH4] -~w~Donald sent me to pick up some... er... hardware. - -[DONH4B:DONH4] -~w~A'ight. - -[DON4EX1:DONH4] -~w~I got what you boys need. But it's gonna cost. - -[DON4EX2:DONH4] -~w~Don said you'd pay me up front and he'd 'reimburse' you later. - -[DONH4C:DONH4] -~w~...I bet he did. - -[DONH4D:DONH4] -~w~Yeah, yeah right! Why don't you make it out to, 'Kiss My Ass'? - -[DONH4E:DONH4] -~w~Now, where's the hardware? - -[DONH4F:DONH4] -~w~Shit son! Hardware like this takes time to put together. - -[DON4EX4:DONH4] -~w~I'll be in touch. - -[DONH4G:DONH4] -Mission Passed! - -[DONH4_1:DONH4] -NONE - -[DONH4PS:DONH4] -~w~8-ball will let you know when the hardware is ready. - -{=================================== MISSION TABLE DONH5 ===================================} - -[DONH5_0:DONH5] -Van - -[DNH5_A0:DONH5] -~w~Look man, this truck is loaded. Know what I'm saying? Drive cool. - -[DNH5_A1:DONH5] -~w~Yeah? It's all good. - -[DNH5_A2:DONH5] -~w~Sure. I'll put him on. - -[DNH5_A3:DONH5] -~w~Toni, we're one little job away from being fabulously rich. - -[DNH5_A4:DONH5] -~w~We've scoured plans of Fort Staunton. Its weakest points are along the old subway that runs underneath the area. - -[DNH5_A5:DONH5] -~w~Great Don! All I gotta do is dodge a hundred wacko Italians. - -[DNH5_A6:DONH5] -~w~Just head along the Porter Tunnel and you'll find your way in just fine. - -[DNH5_B0:DONH5] -~w~Hey! You're not supposed to be down here! - -[DNH5_B1:DONH5] -~w~Get the hell out of here! - -[DNH5_C0:DONH5] -~w~Get in the ~b~van. - -[DNH5_C4:DONH5] -~w~Place the ~y~explosives! - -[DNH5_C5:DONH5] -~w~Place the remaining ~y~explosives! - -[DNH5_C6:DONH5] -~w~Escape through the ~y~subway entrance! - -[DNH5_D0:DONH5] -~w~The Forellis? What are they doing here? - -[DNH5_D1:DONH5] -~w~Don't let the Forellis wreck the van! - -[DNH5_1:DONH5] -~w~Use a vehicle to smash through the gates - -[DONH5_2:DONH5] -~w~Ram the gates harder! - -[DNH5_X0:DONH5] -~r~You wrecked the van! - -[DNH5_C1:DONH5] -~w~Get back in the ~b~van. - -[DNH5_C2:DONH5] -~w~Head for one of the Porter Road Tunnel ~y~entrances. - -[DNH5_C3:DONH5] -~w~Follow the ~y~tunnel. - -[DNH5_E0:DONH5] -~w~Kill those ~r~construction workers. - -[DNH5_E1:DONH5] -~w~Kill that ~r~construction worker. - -[DNH5_E2:DONH5] -~w~The Forellis have blocked the way back. Find another ~y~exit. - -[DNH5_E3:DONH5] -~w~Use a vehicle to smash through the gates and reach the ~y~exit. - -[DNH5_X1:DONH5] -~r~The Forellis wrecked the van! - -[DNH5_W1:DONH5] -~w~Don't get too far from the ~b~van! - -[DNH5_E4:DONH5] -~w~Don't leave any ~r~witnesses. - -{=================================== MISSION TABLE DONH6 ===================================} - -[DONH6_V:DONH6] -~r~v1.00 - -[DONH6_1:DONH6] -~w~Head up to the ~y~house. - -[DONH6_5:DONH6] -~w~Oh, my God! Toni! Do something! - -[DONH6_6:DONH6] -~w~You have ~1~ seconds to return to the grounds! - -[DONH6_7:DONH6] -Return Time - -[DONH6_8:DONH6] -~r~You failed to return to the mansion... Donald has been executed! - -[DONH610:DONH6] -~w~Get a car! - -[DONH611:DONH6] -~w~Oh good lord! There's more of them! - -[DONH624:DONH6] -~W~Floor it Toni! - -[DONH612:DONH6] -~w~We made it! - -[DONH623:DONH6] -~w~Take me to Avery's jet. He and Ned are still onboard, so I won't be travelling alone. - -[DONH622:DONH6] -~w~Head to ~y~Avery's jet. - -[DONH613:DONH6] -~w~Let's get to the airport. - -[DONH625:DONH6] -~w~Head to the ~y~airport. - -[DONH615:DONH6] -~w~You left ~b~Donald~w~ behind! Go back and get him! - -[DONH619:DONH6] -~r~Donald was killed! - -[DONH6_9:DONH6] -~w~D? Come on! Let's go! - -[DONH614:DONH6] -~w~Are you sure it's safe, Toni? - -[DONH616:DONH6] -~w~Oh... my... GARDEN! - -[DOH616A:DONH6] -~w~Look what you've done to my beautiful garden! - -[DONH617:DONH6] -~w~D... we can do some landscaping or escaping. It's up to you. - -[DONH618:DONH6] -~w~Get me to the airport! - -[DONH620:DONH6] -~w~I do so hate goodbyes my friend. - -[DOH620A:DONH6] -~w~Let's just say 'adieu'. - -[DONH621:DONH6] -~w~D... it's been an education. - -[DONH66S:DONH6] -~w~You have ~1~ second to return to the grounds! - -[DONH66A:DONH6] -~w~Take out those ~r~Colombian gangsters! - -[DONP_01:DONH6] -Caterpillars... cater... cater... cater... cat... No that's no good. - -[DONP_02:DONH6] -Ohmmmmmmmm. Dammit. - -[DONP_03:DONH6] -It's just so... Oh, shit if I just had something cold to cuddle up to, - -[DONP_06:DONH6] -Antonio! Oh, I'm just seeking spiritual enlightenment, - -[DONP_07:DONH6] -if you must ask, but not today. - -[DONP_08:DONH6] -Maybe tomorrow. - -[DONP_09:DONH6] -Your message seemed kinda anxious. - -[DONP_10:DONH6] -Anxious? I'm meditating. Anxious, moi? - -[DONP_11:DONH6] -I'm at one with the universe. That's just impossible. - -[DONP_12:DONH6] -Oh, shit, that's right. - -[DONP_13:DONH6] -Um, there is a load of Colombians coming up here - -[DONP_14:DONH6] -to potentially kill me if I don't keep my mouth shut and pay them all off. - -[DONP_15:DONH6] -Oh! I guess that would explain all the Colombians hovering around outside. - -[DONP_16:DONH6] -Oh shit! Please, Antonio, you have to get me out of here! - -[DONP_17:DONH6] -I don't want to... Please! I don't wanna die! I don't... - -[DONP_18:DONH6] -So much for being at one with the universe, huh? - -[DONP_19:DONH6] -Thank you, Toni! I'll make it... I'll make it worth your while, I promise. - -[DONP_04:DONH6] -- it'd be so easy... ~n~ - What's going on, D? - -{=================================== MISSION TABLE TOSH1 ===================================} - -[TOSH1AB:TOSH1] -~w~Stop him! - -[TOSH1AC:TOSH1] -~w~Get him! - -[TOSH1AD:TOSH1] -~w~Shoot him! - -[TOSH1AA:TOSH1] -~w~There he is! - -[TOSH120:TOSH1] -~w~Steal the Yakuza ~b~arms shipment~w~ from Bedford Point. - -[TOSH121:TOSH1] -~w~You'll have to get past the ~r~Yakuza guards. - -[TOSH122:TOSH1] -~w~Look out for more ~r~Yakuza boats. - -[TOSH130:TOSH1] -~w~Take the weapons to ~y~Toshiko's contact. - -[TOSH131:TOSH1] -~w~Get back to the ~b~arms shipment. - -[TOSH1BA:TOSH1] -~w~That's some damn fine artillery you've got there boy! - -[TOSH1BB:TOSH1] -~w~You know, I do so much business at these docks I should've set myself up here, - -[TOSH1BC:TOSH1] -~w~not half way down the God-damn island! - -[TOSH1BD:TOSH1] -~w~Well, it's been a blast! - -[TOSH1DB:TOSH1] -~r~The weapons have been destroyed! - -[TOSH1PH:TOSH1] -~w~The Yakuza will be guarding their shipment. You may need to call in at Phil Cassidy's on the way. - -[DEAD_01:TOSH1] -So this is the big tough gangster? - -[DEAD_02:TOSH1] -You don't look so tough. - -[DEAD_03:TOSH1] -... Thanks. - -[DEAD_04:TOSH1] -Do you know what it is to live without love, Mr Toni? - -[DEAD_05:TOSH1] -It is to live with hate... - -[DEAD_06:TOSH1] -I'll take your word for it. - -[DEAD_07:TOSH1] -It is my earnest wish to destroy a man, Mr. Cipriani. - -[DEAD_08:TOSH1] -Destroy... not merely kill. - -[DEAD_09:TOSH1] -I want him, and his whole organization, weakened and humiliated before he dies. - -[DEAD_10:TOSH1] -I want him to suffer. - -[DEAD_11:TOSH1] -Okay. - -[DEAD_12:TOSH1] -This man I want you to destroy is my husband: Kazuki Kasen. - -[DEAD_13:TOSH1] -Don't worry. - -[DEAD_14:TOSH1] -For your services you will be handsomely rewarded. - -[DEAD_15:TOSH1] -Well what if I say no? - -[DEAD_16:TOSH1] -You won't... because while I merely want him dead, you need him dead. - -[DEAD_17:TOSH1] -In truth, you have already dealt him a severe blow, Mr. Cipriani. - -[DEAD_18:TOSH1] -However, he is taking delivery of more munitions today. - -[DEAD_19:TOSH1] -I want you to steal those weapons from right under his ignorant nose. - -{=================================== MISSION TABLE TOSH2 ===================================} - -[TOSH2AA:TOSH2] -~w~Mr. Toni. - -[TOSH2AL:TOSH2] -~w~My husband was greatly infuriated by your actions. - -[TOSH2AB:TOSH2] -~w~You have made him, and his men, - -[TOSH2AM:TOSH2] -~w~look like the fools they are. - -[TOSH2AC:TOSH2] -~w~I aim to please. What's next princess? - -[TOSH2AE:TOSH2] -~w~My husband is moving a great quantity of cash from his Casino. - -[TOSH2AF:TOSH2] -~w~I want you to destroy all of that money. - -[TOSH2AG:TOSH2] -~w~I can find a damn good use for that money, sweetheart. - -[TOSH2AH:TOSH2] -~w~I want his money burning in the street for all to see. - -[TOSH2AI:TOSH2] -~w~Okay... okay... when's this move gonna happen? - -[TOSH2AJ:TOSH2] -~w~It has already begun. - -[TOSH2AK:TOSH2] -~w~They're leaving the casino right now, so please, you don't have much time. - -[TOSH2O0:TOSH2] -~w~Destroy ALL the ~r~security vans.~w~ Don't let any reach the ~y~Yakuza compound! - -[TOSH2O1:TOSH2] -~w~They're running! Don't let any ~r~vans~w~ escape! - -[TOSH2O2:TOSH2] -~w~You've spooked them! Don't let the ~r~vans ~w~escape! - -[TOSH2E1:TOSH2] -~w~The ~r~convoy~w~ is getting near the ~y~Yakuza compound! - -[TOSH2E2:TOSH2] -~w~A ~r~van~w~ is nearly at the ~y~Yakuza compound! - -{=================================== MISSION TABLE TOSH3 ===================================} - -[TOSH3M1:TOSH3] -~w~Anyone home? - -[TOSH3M2:TOSH3] -~w~Mr. Toni? A moment please... - -[TOSH3M3:TOSH3] -~w~My husband is furious. - -[TOSH3EA:TOSH3] -~w~He wonders how you come to know when and where to attack him so precisely. - -[TOSH3M4:TOSH3] -~w~Unless he's a fool, he'll work it out soon enough. - -[TOSH3M5:TOSH3] -~w~Perhaps, we should help him. His men gossip like old women. - -[TOSH3EB:TOSH3] -~w~Let's give them something to talk about. - -[TOSH3M6:TOSH3] -~w~Where are we going? - -[TOSH3M7:TOSH3] -~w~The opera. - -[TOSH3M8:TOSH3] -~w~The opera? Me? You kidding? - -[TOSH3M9:TOSH3] -~w~Don't be ridiculous Mr. Toni. Everyone loves the opera. - -[TOSH3A:TOSH3] -~w~If you bring my car around we can collect your tuxedo. - -[TOSH3EC:TOSH3] -~w~We don't have long, the show starts very soon. - -[TOSH3B:TOSH3] -~w~Bring ~b~Toshiko's car~w~ round. - -[TOSH3C:TOSH3] -~w~Pick up ~b~Toshiko. - -[TOSH3C2:TOSH3] -~w~Get a Tuxedo from ~y~Mr. Benz. - -[TOSH3B3:TOSH3] -~w~Take Toshiko back to her ~y~apartment. - -[TOSH3B4:TOSH3] -~r~You left Toshiko behind. - -[TOSH3B2:TOSH3] -Get back in ~b~Toshiko's car. - -[TOSH3C3:TOSH3] -~w~Go to the ~y~Opera. - -[TOSH3D:TOSH3] -~w~Where are you going? We're going to be late! - -[TOSH3D2:TOSH3] -~w~Please don't leave me here Toni san! - -[TOSH3Z1:TOSH3] -~w~Do you think I am a bad person Mr. Toni? - -[TOSH3Z2:TOSH3] -~w~Well, princess, I ain't exactly a saint. - -[TOSH3Z3:TOSH3] -~w~No... A saint wouldn't be much use to me. - -[TOSH3Z4:TOSH3] -~w~My husband is Samurai, Mr. Toni. - -[TOSH3Z5:TOSH3] -~w~He is very strong... but very, very bad. - -[TOSH3Z6:TOSH3] -~w~He only married me to become waka-gashira in Liberty City. - -[TOSH3Z7:TOSH3] -~w~He has never loved me... he prefers the company of his men. - -[TOSH3Z8:TOSH3] -~w~Do you understand? - -[TOSH3Z9:TOSH3] -~w~When he finds out what you're doing, you know he's going to kill you. - -[TOSH3Z0:TOSH3] -~w~I do not care for life or death anymore, only freedom. - -[TOSH3ZB:TOSH3] -~w~What a relaxing world view. - -[TOSH3E:TOSH3] -~w~Italian blood don't mix with no Japo blood. - -[TOSH3F:TOSH3] -~w~But, it'll mix just fine on the sidewalk! - -[TOSH3G:TOSH3] -~w~Protect Toshiko and escape in ~b~her car. - -[TOSH3H:TOSH3] -~w~Protect ~b~Toshiko~w~ and take her back to her ~y~apartment. - -[TOSH3S1:TOSH3] -~w~My car! - -[TOSH3S2:TOSH3] -~w~Save us Toni! - -[TOSH3S3:TOSH3] -~w~Come on Toni! - -[TOSH3S4:TOSH3] -~w~Get us out of here! - -[TOSH3S5:TOSH3] -~w~SAVE ME! - -[TOSH3S6:TOSH3] -~w~HELP! - -[TOSH3S7:TOSH3] -~w~We're not going to make it! - -[TOSH3S8:TOSH3] -~w~HELP! - -[TOSH3S9:TOSH3] -~r~Toshiko is dead! - -[TOSH310:TOSH3] -~r~Toshiko's car has been destroyed! - -[TOSH311:TOSH3] -~r~You ran out of time! - -[TOSH3_1:TOSH3] -NONE - -[TOS3NE1:TOSH3] -~w~Protect Toshiko and kill the ~r~Forelli gangsters. - -[TOS3NE2:TOSH3] -~w~Escape in ~b~Toshiko's car. - -[TOSH3EI:TOSH3] -~w~The opera begins at 20:00. Don't be late! - -{=================================== MISSION TABLE TOSH4 ===================================} - -[TOSH4O2:TOSH4] -~w~Kazuki's chopper is heading for the ~y~Casino! - -[TOSH4O4:TOSH4] -~w~Kill ~r~Kazuki! - -[TOSH4O5:TOSH4] -~w~Go to ~y~Toshiko's apartment. - -[TOSH4_3:TOSH4] -~w~Kazuki is arriving in that chopper! Make your way to the helipad and kill him. - -[TOSH4Y1:TOSH4] -~w~Get him! - -[TOSH4Y2:TOSH4] -~w~Kill him! - -[TOSH4CA:TOSH4] -~w~My men dishonor me... - -[TOSH4CB:TOSH4] -~w~but it is fitting that I kill you myself. - -[TOSH4CC:TOSH4] -~w~You two! Leave us! - -[TOSH4CD:TOSH4] -~w~I am going to enjoy thrusting my sword into you. - -[TOSH4CE:TOSH4] -~w~Yeah, I heard that about you. - -[TOSH4K1:TOSH4] -~w~Shoot him! - -[TOSH4K2:TOSH4] -~w~Kill him! - -[TOSH4_7:TOSH4] -~w~Take Kazuki's sword to Toshiko as proof that he is dead. - -[TOSH4_8:TOSH4] -~w~You spooked Kazuki! He's escaping! ...you've lost your chance to kill him! - -[TOSH4_C:TOSH4] -Kazuki - -[TOSH4AA:TOSH4] -~w~Hello? - -[TOSH4AB:TOSH4] -~w~I'm bathing, Toni san. - -[TOSH4AC:TOSH4] -~w~We have little time left. - -[TOSH4AD:TOSH4] -~w~My husband knows now who is truly behind his losses. - -[TOSH4AE:TOSH4] -~w~He's coming to kill me... and you. - -[TOSH4AF:TOSH4] -~w~Well, I ain't waiting here for him. Where is he? - -[TOSH4AG:TOSH4] -~w~He's in Belleville, gathering his men. - -[TOSH4AJ:TOSH4] -~w~But soon, he will come here. - -[TOSH4AH:TOSH4] -~w~Sayonara, sweetheart. - -[TOSH4AI:TOSH4] -~w~My prayers go with you, Toni san. Good luck. - -[TOSH4F1:TOSH4] -~r~Kazuki is laughing at you! - -[TOSH4OA:TOSH4] -~w~Kill Kazuki's ~r~Guards! - -[TOSH4OB:TOSH4] -~w~Get back to ~y~Kazuki's! - -[TOSH4OC:TOSH4] -~w~Look out - here come more ~r~Yakuza! - -[TOSH4DA:TOSH4] -~w~Shoot him! - -[TOSH4DB:TOSH4] -~w~Kill him! - -[TOSH4DC:TOSH4] -~w~Kill him, you assholes! - -[TOSH4O1:TOSH4] -~w~Head over to ~y~Kazuki's place~w~ and kill him! - -[TOSH4O3:TOSH4] -~w~Head for the ~y~helipad! - -[CASH_01:TOSH4] -So, uh... Toshiko. It's over now. - -[CASH_02:TOSH4] -Yes, yes, I knew that... hello, Mister Toni. - -[CASH_03:TOSH4] -Hey. So, uuuh... you won. - -[CASH_04:TOSH4] -You got what you wanted. Everything worked out great. - -[CASH_06:TOSH4] -Great, yes, great. Really great. - -[CASH_07:TOSH4] -So... its payment time sweetheart... - -[CASH_08:TOSH4] -We're both of us fools and killers, Mister Toni. - -[CASH_09:TOSH4] -I guess we are. - -[CASH_10:TOSH4] -The world takes such a terrible toll on your spirit wouldn't you agree, Mister Toni? - -[CASH_11:TOSH4] -I guess. - -[CASH_12:TOSH4] -But you're free now. I mean you can go to Costa Rica, or Aruba or some-shit. - -[CASH_13:TOSH4] -Start over new, that's what you always wanted. - -[CASH_14:TOSH4] -I don't think I'm ready for a beach holiday, Mister Toni. - -[CASH_15:TOSH4] -I've lost everything, and I have done so deliberately. - -[CASH_16:TOSH4] -I've been granted everything I asked for. - -[CASH_17:TOSH4] -Now, I just ask to be truly free. - -[CASH_18:TOSH4] -Good bye, Toni-san. - -{=================================== MISSION TABLE COPCAR ===================================} - -[C_COMP1:COPCAR] -~w~Vigilante mission: level 12 complete! Body Armor gives increased protection! - -[C_BREIF:COPCAR] -~r~Suspect~w~ last seen in the ~a~ area. - -[C_BREIG:COPCAR] -~r~Suspects~w~ last seen in the ~a~ area. - -[C_RANGE:COPCAR] -~r~The police radio is out of range, get closer to a police station! - -[C_TIMEA:COPCAR] -~w~Time bonus! +~1~ seconds - -[COPCART:COPCAR] -~w~You have ~1~ seconds to return to a police vehicle before the mission ends. - -[COPCARU:COPCAR] -~w~You have ~1~ second to return to a police vehicle before the mission ends. - -[C_CANC:COPCAR] -~r~Vigilante mission cancelled! - -[C_TIME:COPCAR] -~r~Your time as a law enforcer is over! - -[C_PASS3:COPCAR] -~w~THREAT ELIMINATED! Reward: $~1~ - -[C_LEVEL:COPCAR] -~r~You let the criminals get away! - -[C_RANG2:COPCAR] -~r~The police radio doesn't work in the subway! - -{=================================== MISSION TABLE CARS ===================================} - -[CARS_10:CARS] -~w~Step into a car to start the test drive, or leave the lot to cancel the mission. - -[CARS_12:CARS] -~w~If you leave the car you will fail the mission. - -[CARS_1:CARS] -~w~Take one of the customers on a test drive. - -[CARS_2:CARS] -~w~You'll have to work out what each customer is looking for in car performance. - -[CARS_3:CARS] -~w~Then, use your driving skills to show them that the car delivers exactly what they want. - -[CARS_5:CARS] -~w~Impress the customer. - -[CARS_6:CARS] -~w~Customer down! Choose a different car! - -[CARS_30:CARS] -~w~Get back to the ~y~car lot~w~ to close the deal! - -[CARS_C1:CARS] -~w~Alright man, you're shaking the cops huh? - -[CARS_C2:CARS] -~w~Yeah! That punk was asking for it! - -[CARS_P1:CARS] -~w~Woah! This ride is supersonic! - -[CARS_P2:CARS] -~w~Woohoo! - -[CARS_P3:CARS] -~w~My aunt drives this speed! - -[CARS_P4:CARS] -~w~Does this thing have airbags? - -[CARS_M1:CARS] -~w~Ah, a nice relaxing drive. - -[CARS_M2:CARS] -~w~Do you know what the speed limit is here? - -[CARS_M3:CARS] -~w~Oh my God! You're going to kill us! - -[CARS_O1:CARS] -~w~Oh yeah! No asphalt to contain us! - -[CARS_O2:CARS] -~w~Reach for the sky, dude! - -[CARS_O3:CARS] -~w~Radical flip, man! - -[CARS_SC:CARS] -~w~Sale completed. Commission: $~1~ Time bonus: ~1~ seconds. - -[CARS_SD:CARS] -~w~Level ~1~ completed. Commission: $~1~ Time bonus: ~1~ seconds. - -[CARS_IR:CARS] -~1~ IN A ROW! Bonus! $~1~. - -[CARS_RE:CARS] -~w~A little perk for our top salesman! - -[CARSIC1:CARS] -~w~I need something that's tough to chase, man. - -[CARSIC2:CARS] -~w~I need a ride that takes it to those sidewalk suckers. - -[CARSIP1:CARS] -~w~This baby looks fast! - -[CARSIP2:CARS] -~w~Oh man! I bet this bad-boy can fly! - -[CARSIM1:CARS] -~w~I heard these things give a nice steady ride. - -[CARSIM2:CARS] -~w~Ever since my operation I need a slower car. - -[CARSIO1:CARS] -~w~It's gripped! Let's offroad! - -[CARSIO2:CARS] -~w~My buddy can do gnarly rolls in his ride - I love that shit! - -[CARS_N1:CARS] -~w~I ain't buying this trash! - -[CARS_N2:CARS] -~w~I can't believe you thought I'd buy this wreck! - -[CARS_N3:CARS] -~w~You used car salesmen are all the same! - -[CARS_Y1:CARS] -~w~I'll take it! - -[CARS_Y2:CARS] -~w~This is the perfect car for me! - -[CARS_Y3:CARS] -~w~You've got yourself a deal! - -[CARS_R1:CARS] -~w~I like the car, but I don't like the color. - -[CARS_R2:CARS] -~w~Get the car resprayed! - -[CARS_D1:CARS] -~w~I like it, but it's pretty beaten up! - -[CARS_D2:CARS] -~w~Get the car repaired! - -[CARS_F1:CARS] -~r~You destroyed the car! - -[CARS_F2:CARS] -~r~You killed the customer! - -[CARS_F3:CARS] -~r~You took too long! The customer got bored! - -[CARS_F4:CARS] -~r~The customer hates the car! - -[CARS_F5:CARS] -~r~Your time as a car salesman is over. - -[CARS_F6:CARS] -~r~The customer hates the car - you crashed it! - -[CARS_F7:CARS] -~r~The customer hates the car - you went too fast! - -[CARS_F8:CARS] -~r~The customer hates the car - you went too slow! - -[CARS_SA:CARS] -Sale - -[CARS_7:CARS] -~w~Get into a ~b~car! - -[CARS_RF:CARS] -~w~Capital Autos is now under your 'protection'. Make sure you collect their payments regularly. - -{=================================== MISSION TABLE BIKE ===================================} - -[BIKE_10:BIKE] -~w~Get onto a bike to start the test ride, or leave the alley to cancel the mission. - -[BIKE_12:BIKE] -~w~If you leave the bike you will fail the mission. - -[BIKE_1:BIKE] -~w~Take one of the customers on a test ride. - -[BIKE_2:BIKE] -~w~You'll have to work out what each customer is looking for in bike performance. - -[BIKE_3:BIKE] -~w~Then, use your riding skills to show them that the bike delivers exactly what they want. - -[BIKE_5:BIKE] -~w~Impress the customer. - -[BIKE_30:BIKE] -~w~Get back to the ~y~bike shop~w~ to close the deal! - -[BIKE_C1:BIKE] -~w~Alright man, you're shaking the cops huh? - -[BIKE_C2:BIKE] -~w~Yeah! That punk was asking for it! - -[BIKE_P1:BIKE] -~w~Yes! This bike is amazing! - -[BIKE_P2:BIKE] -~w~Alright! - -[BIKE_P3:BIKE] -~w~Come on, can't you go faster than this? - -[BIKE_P4:BIKE] -~w~Look out! - -[BIKE_M1:BIKE] -~w~Ah, a nice relaxing ride. - -[BIKE_M2:BIKE] -~w~Do you know what the speed limit is here? - -[BIKE_M3:BIKE] -~w~Oh my God! You're going to kill us! - -[BIKE_O1:BIKE] -~w~Oh yeah! No asphalt to contain us! - -[BIKE_O2:BIKE] -~w~Reach for the sky, dude! - -[BIKE_O3:BIKE] -~w~Wicked stunts, dude! - -[BIKE_SC:BIKE] -~w~Sale completed. Commission: $~1~ Time bonus: ~1~ seconds. - -[BIKE_IR:BIKE] -~1~ IN A ROW! Bonus! $~1~. - -[BIKE_RE:BIKE] -~w~A little perk for our top salesman! - -[BIKE_RF:BIKE] -~w~Hogs & Cogs is now under your 'protection'. Make sure you collect their payments regularly. - -[BIKEIC1:BIKE] -~w~I need something that's tough to chase, man. - -[BIKEIC2:BIKE] -~w~I need a ride that takes it to those sidewalk suckers. - -[BIKEIP1:BIKE] -~w~This crotch-rocket looks fast! - -[BIKEIP2:BIKE] -~w~I want something that'll impress the chicks! - -[BIKEIM1:BIKE] -~w~I heard these things give a nice steady ride. - -[BIKEIM2:BIKE] -~w~I'm still a bit wobbly, so I need a slower bike. - -[BIKEIO1:BIKE] -~w~It's gripped! Let's offroad! - -[BIKEIO2:BIKE] -~w~These things can do cool stunts, right? - -[BIKE_N1:BIKE] -~w~I ain't buying this trash! - -[BIKE_N2:BIKE] -~w~I can't believe you thought I'd buy this wreck! - -[BIKE_N3:BIKE] -~w~You used bike salesmen are all the same! - -[BIKE_Y1:BIKE] -~w~I'll take it! - -[BIKE_Y2:BIKE] -~w~This is the perfect bike for me! - -[BIKE_Y3:BIKE] -~w~You've got yourself a deal! - -[BIKE_R1:BIKE] -~w~I like the bike, but I don't like the color. - -[BIKE_R2:BIKE] -~w~Get the bike resprayed! - -[BIKE_D1:BIKE] -~w~I like it, but it's pretty beaten up! - -[BIKE_D2:BIKE] -~w~Get the bike repaired! - -[BIKE_F1:BIKE] -~r~You destroyed the bike! - -[BIKE_F2:BIKE] -~r~You killed the customer! - -[BIKE_F3:BIKE] -~r~You took too long! The customer got bored! - -[BIKE_F4:BIKE] -~r~The customer hates the bike! - -[BIKE_F5:BIKE] -~r~Your time as a bike salesman is over. - -[BIKE_F6:BIKE] -~r~The customer hates the bike - you crashed it! - -[BIKE_F7:BIKE] -~r~The customer hates the bike - you went too fast! - -[BIKE_F8:BIKE] -~r~The customer hates the bike - you went too slow! - -[BIKE_B1:BIKE] -~w~You have ~1~ seconds to get back on the ~b~bike! - -[BIKE_B2:BIKE] -~w~Get the ~b~customer~w~ back on the bike! - -[BIKE_B3:BIKE] -~w~Let the ~b~customer~w~ get on the bike! - -[BIKE_SA:BIKE] -Sale - -[BIKE_7:BIKE] -~w~Get onto a ~b~bike! - -[BIKE_S1:BIKE] -~w~You've sold every Freeway we have in stock! - -[BIKE_S2:BIKE] -~w~You've sold every PCJ 600 we have in stock! - -[BIKE_S3:BIKE] -~w~You've sold every Faggio we have in stock! - -[BIKE_S4:BIKE] -~w~You've sold every Sanchez we have in stock! - -[BIKE_SN:BIKE] -~w~New stock has been delivered! - -{=================================== MISSION TABLE RAC1 ===================================} - -[RAC1_A0:RAC1] -~w~If you wanna prove your ride ain't no bitch, get down the start line of the next street race. - -{=================================== MISSION TABLE RAC2 ===================================} - -[RAC2_A0:RAC2] -~w~Hey, words out, there's gonna be a street race. Get your wheels over to the start line. - -{=================================== MISSION TABLE RAC3 ===================================} - -[RAC3_A0:RAC3] -~w~Ain't no car faster. Ain't no driver sharper. - -[RAC3_A1:RAC3] -~w~I'll see you at the next street race... in my rear view mirror. - -{=================================== MISSION TABLE BIK1 ===================================} - -[BIK1_A0:BIK1] -~w~Think you can out ride me? I own your ass! - -[BIK1_A1:BIK1] -~w~Bring your bike to the starting grid and let's get it on! - -{=================================== MISSION TABLE BIK2 ===================================} - -[BIK2_A0:BIK2] -~w~If you think you can take me in a race, let your wheels do the talking! - -[BIK2_A1:BIK2] -~w~I'll see you at the start line. - -{=================================== MISSION TABLE BIK3 ===================================} - -[BIK3_A0:BIK3] -~w~It's this simple. On two wheels, I can't be beat. Let's take it to the street. - -{=================================== MISSION TABLE TT1 ===================================} - -[TT1_A0:TT1] -~w~~k~ ~AMBUY~ ~w~to race. ~n~~k~ ~AMEXI~ ~w~to exit. - -[TT1_0:TT1] -Time - -[TT1_1:TT1] -~w~New Lap Record: ~1~:~1~ - -[TT1_1A:TT1] -~w~New Lap Record: ~1~:0~1~ - -[TT1_C1:TT1] -~w~3 - -[TT1_C2:TT1] -~w~2 - -[TT1_C3:TT1] -~w~1 - -[TT1_C4:TT1] -~w~GO! - -[TT1_D1A:TT1] -~w~Air: ~1~ Feet - -[TT1_D2:TT1] -~w~Lap ~1~ Time ~1~:~1~ - -[TT1_D3:TT1] -~w~Lap ~1~ Time ~1~:0~1~ - -[TT1_D4:TT1] -~w~Lap - -[TT1_F2:TT1] -~r~You left the course! - -[TT1_F3:TT1] -~r~You destroyed the bike! - -[TT1_D5A:TT1] -~w~Air: ~1~ Feet - $10 bonus! - -[TT1_D1:TT1] -~w~Air: ~1~ Meters - -[TT1_D5:TT1] -~w~Air: ~1~ Meters - $10 bonus! - -[TT1_2:TT1] -~w~You beat the target time! Next course unlocked - $100 bonus! - -[TT1_3:TT1] -~w~You beat the target time - $100 bonus! - -[TTDONE:TT1] -~w~All courses completed! You have unlocked the 'Manchez'. - -[TT1_2A:TT1] -~r~You failed to beat the target time. - -[TT1_2B:TT1] -~r~You failed to beat the Course Record. - -{=================================== MISSION TABLE RCR ===================================} - -[RCRACE3:RCR] -~w~Beat the other RC vehicles in a ~1~ lap race around the park! - -[RCRACE4:RCR] -~w~Beat the other RC vehicles in a ~1~ lap race around the airport! - -[RCRACE7:RCR] -~w~Get ready... - -[RCRLAP5:RCR] -~w~New Lap Record of ~1~ seconds! - -[RCRLAP6:RCR] -~w~~1~ laps to go! - -[RCRLAP7:RCR] -~w~Final lap! - -[RCRLTME:RCR] -Lap Time - -[RCRLOSE:RCR] -~r~You lost! You'll always be small-time! - -[RCRLOS2:RCR] -~r~You'll never win a race if you can't keep to the course! - -[RCRTIME:RCR] -~w~You have ~h~~1~ ~w~seconds to return to the course! - -[RCRWIN1:RCR] -~w~Congratulations you WON! But you did not beat the lap record. - -[RCRWIN2:RCR] -~w~Your next race will be ~1~ laps! - -[RCRWIN3:RCR] -~w~RC Race in Belleville Park, Staunton is now available. - -[RCRWIN4:RCR] -~w~RC Race in Shoreside Airport is now available. - -[RCRWIN5:RCR] -~w~You have beaten all the levels! Now go back and beat your best lap times! - -[RCR1:RCR] -~w~1 - -[RCR2:RCR] -~w~2 - -[RCR3:RCR] -~w~3 - -[RCRGO:RCR] -~w~GO! - -[RCBLAP:RCR] -Best lap time so far is ~1~:~1~ - -[RCBLAP1:RCR] -Best lap time so far ~1~:0~1~ - -[RCBLA2:RCR] -Record Lap Time of ~1~:~1~ - -[RCBLA3:RCR] -Record Lap Time of ~1~:0~1~ - -[RCRRLA1:RCR] -~w~New Lap Record of ~1~:~1~ - -[RCRRLA2:RCR] -~w~New Lap Record of ~1~:0~1~ - -[RCRACEA:RCR] -Thrashin' RC - -[RCRACEB:RCR] -Ragin' RC - -[RCRACEC:RCR] -Chasin' RC - -[RCLE11:RCR] -Thrashin' RC LEVEL ONE - -[RCLE12:RCR] -Thrashin' RC LEVEL TWO - -[RCLE13:RCR] -Thrashin' RC LEVEL THREE - -[RCLE21:RCR] -Ragin' RC LEVEL ONE - -[RCLE22:RCR] -Ragin' RC LEVEL TWO - -[RCLE23:RCR] -Ragin' RC LEVEL THREE - -[RCLE31:RCR] -Chasin' RC LEVEL ONE - -[RCLE32:RCR] -Chasin' RC LEVEL TWO - -[RCLE33:RCR] -Chasin' RC LEVEL THREE - -[RCRACE2:RCR] -~w~Beat the other RC vehicles in a ~1~ lap race around the construction site! - -[RCRWIN6:RCR] -~w~Race again to try and beat your best lap time! - -[RCQUIT:RCR] -~r~Batteries running low? - -[RCRFAIL:RCR] -~r~You failed to come first! - -[RCRLAP1:RCR] -~c~1ST ~w~LAP - -[RCRLAP2:RCR] -~c~2ND ~w~- LAP - -[RCRLAP3:RCR] -~c~3RD ~w~LAP - -[RCRLAP4:RCR] -~c~4TH ~w~LAP - -[RCRWIN:RCR] -~w~Congratulations you WON with a best lap time of ~1~:~1~! $500 Bonus! - -[RCRWINB:RCR] -~w~Congratulations you WON with a best lap time of ~1~:0~1~! $500 Bonus! - -{=================================== MISSION TABLE TOUR ===================================} - -[TOUR_H1:TOUR] -~w~Photo Tips: stand ~h~in front~w~ of the tourist, ~h~not too far away.~w~ Make sure both the ~h~tourist and background scenery~w~ are in the picture. - -[TOUR_I2:TOUR] -~w~Extra cash bonuses are awarded for high quality photos! - -[TOUR_S0:TOUR] -~w~You have ~h~~1~~w~ shots remaining. - -[TOUR_S1:TOUR] -~w~You only have one shot left. Make sure it's a good one! - -[TOUR_S2:TOUR] -~w~Don't waste your shots! You have ~h~~1~~w~ shots remaining. - -[TOUR_S4:TOUR] -~w~You must frame the ~b~tourist~w~ properly in the picture! You have ~h~~1~~w~ shots remaining. - -[TOUR_F1:TOUR] -~r~The tourist is dead! - -[TOUR_F2:TOUR] -~r~You lost the tourist! - -[TOUR_F3:TOUR] -~r~You didn't get a photo of the tourist! - -[TOUR_F4:TOUR] -~r~You ran out of time! - -[TOUR_F5:TOUR] -~r~Tourist mission cancelled. - -[TOUR_F6:TOUR] -~r~The mugger got away with the tourist's camera! - -[TOUR_O1:TOUR] -~w~Take the tourist to the ~y~tourist spot. - -[TOUR_O2:TOUR] -~w~Don't leave the ~b~tourist~w~ behind! - -[TOUR_O3:TOUR] -~w~Follow the ~b~tourist~w~ on foot to the photo location. - -[TOUR_O4:TOUR] -~w~Use the ~b~tourist's~w~ own camera to take the photo. - -[TOUR_O5:TOUR] -~w~Take the tourist back to the ~y~airport. - -[TOUR_O6:TOUR] -~w~Quickly! Time is running out! - -[TOUR_O7:TOUR] -~w~Pick up the ~b~tourist. - -[TOUR_O8:TOUR] -~w~Pick up the next ~b~tourist~w~ before the time expires. - -[TOUR_O9:TOUR] -~w~You really should be following the ~b~tourist!~w~ You're wasting time. - -[TOUR_OA:TOUR] -~w~The ~b~tourist~w~ is waiting for you to take a photo. Get a move on, time is running out! - -[TOUR_W1:TOUR] -~w~Fee awarded: ~h~$~1~~w~ Sorry, No bonus this time. - -[TOUR_W2:TOUR] -~w~Fee awarded: ~h~$~1~~w~ plus ~h~$~1~~w~ bonus for a good photo! - -[TOUR_W3:TOUR] -~w~Fee awarded: ~h~$~1~~w~ plus ~h~$~1~~w~ bonus for a great photo! - -[TOUR_W4:TOUR] -~w~Fee awarded: ~h~$~1~~w~ plus ~h~$~1~~w~ bonus for an excellent photo! - -[TOUR_W5:TOUR] -~w~Well done! All 'Sights before Flights' missions completed. $~1~ completion bonus awarded! - -[TOURDAM:TOUR] -~w~SIGHT ~1~: ~w~Take this tourist to the Cochrane Dam and take a photo to prove he's been there! - -[TOURBRI:TOUR] -~w~SIGHT ~1~: ~w~This lady wants to see the Callahan Bridge, from the Portland side. - -[TOURDRK:TOUR] -~w~SIGHT ~1~: ~w~Take a picture of this film fan outside, the actor, Black Lightman's House, on Cedar Grove, Shoreside Vale. - -[TOURSTA:TOUR] -~w~SIGHT ~1~: ~w~Take a photo of this sports fanatic outside the Liberty Memorial Coliseum on Staunton. - -[TOURCHU:TOUR] -~w~SIGHT ~1~: ~w~Shepherd this pilgrim to historic Liberty Cathedral on Staunton. - -[TOURBCH:TOUR] -~w~SIGHT ~1~: ~w~Show this tourist the beautiful view of Portland Rock and Lighthouse, from Portland beach. - -[TOURCHI:TOUR] -~w~SIGHT ~1~: ~w~The oriental ambience of Chinatown Plaza in Portland is the exotic destination for this tourist. - -[TOURSHO:TOUR] -~w~SIGHT ~1~: ~w~This tourist wants her friends to think she shopped at the exclusive Staunton Shopping Mall. Take her there and snap her picture. - -[TOURCAS:TOUR] -~w~SIGHT ~1~: ~w~Here's a gambler who wants his photo taken outside the world famous Casino in Staunton. - -[TOURMUS:TOUR] -~w~SIGHT ~1~: ~w~This scholar wants to visit the Liberty City Museum on Staunton and get a photo that shows the impressive scale of the building. - -[TOURHAL:TOUR] -~w~SIGHT ~1~: ~w~This tourist wants to visit City Hall on Staunton, one more time before he leaves. - -[TOURRED:TOUR] -~w~SIGHT ~1~: ~w~This guy's friends say he isn't man enough to visit a Strip Club in Portland's Red Light district. Show them otherwise! - -[TOURMU0:TOUR] -~w~The ~r~mugger~w~ stole the tourist's camera! Get it back! - -[TOURMU1:TOUR] -~w~That's one less criminal to worry about! Pick up the ~g~camera. - -[TOUR00:TOUR] -~w~Take the tourist to the ~y~Cochrane Dam~w~ in Shoreside Vale. - -[TOUR01:TOUR] -~w~Take the tourist to the ~y~Liberty Memorial Coliseum~w~ on Staunton. - -[TOUR02:TOUR] -~w~Take the tourist to ~y~Chinatown Plaza~w~ in Portland. - -[TOUR03:TOUR] -~w~Take the tourist to ~y~Liberty Cathedral~w~ on Staunton. - -[TOUR06:TOUR] -~w~Take the tourist to the ~y~Strip Club~w~ in Portland's Red Light district. - -[TOUR07:TOUR] -~w~Take the tourist to the ~y~Liberty City Museum~w~ on Staunton. - -[TOUR08:TOUR] -~w~Take the tourist to the ~y~Casino~w~ on Staunton. - -[TOUR10:TOUR] -~w~Take the tourist to the ~y~City Hall~w~ on Staunton. - -[TOUR11:TOUR] -~w~Take the tourist to ~y~Portland beach. - -[TOUR04:TOUR] -~w~Take the tourist to the ~y~Callahan Bridge~w~, Portland side. - -[TOUR09:TOUR] -~w~Take the tourist to the actor, ~y~Black Lightman's House~w~, on Cedar Grove, Shoreside Vale. - -[TOUR_I1:TOUR] -~w~Escort tourists to famous Liberty City Landmarks. - -[TOUR_IA:TOUR] -~w~Take souvenir photographs of them when you get there. - -[TOUR_IB:TOUR] -~w~Then bring them back before their plane departs. - -[TOURMEM:TOUR] -~w~SIGHT ~1~: ~w~This veteran wants to pay homage to his lost comrades at the Liberty City War Memorial in Belleville Park, Staunton. - -[TOUR05:TOUR] -~w~Take the tourist to the ~y~Liberty City War Memorial~w~ in Belleville Park, Staunton. - -{=================================== MISSION TABLE PIZZA ===================================} - -[PIZ1_06:PIZZA] -~w~Press~h~ ~k~ ~TGSUB~ ~w~when on the bike to cancel the mission. - -[PIZ1_02:PIZZA] -~w~You're out of pizza! Return to ~y~Joe's Pizza Restaurant~w~ to get some more. - -[PIZ1_07:PIZZA] -~r~You killed the customer! You're fired! - -[PIZ1_08:PIZZA] -~r~You're out of time and out of a job! - -[PIZ1_09:PIZZA] -~r~You wrecked our bike! Get out of here! - -[PIZ1_11:PIZZA] -~w~You need the Pizza ~b~bike~w~ to deliver the orders! - -[PIZ1_12:PIZZA] -Pizzas - -[PIZ1_13:PIZZA] -~w~Pizza! Hot and ready to go! I love 'em! - -[PIZ1_14:PIZZA] -~w~These are to go! ...So go! - -[PIZ1_15:PIZZA] -~w~This one's extra spicy! - -[PIZ1_16:PIZZA] -~w~Get your finger out of your ass and deliver these, pronto! - -[PIZ1_17:PIZZA] -~w~These pizzas need delivering today, not next year! - -[PIZ1_18:PIZZA] -~w~Pizza delivery beneath you? Well, excuse me professor! - -[PIZ1_19:PIZZA] -~w~Are you gonna drop these off or what? - -[PIZ1_20:PIZZA] -~w~You're fired! ...only joking. But I won't be if these aren't delivered on time! - -[PIZ1_21:PIZZA] -~w~Pizzas! Come on! We got fat people waiting! - -[PIZ1_22:PIZZA] -~w~Have you been spitting on the pizzas? ...you should! It all adds to the taste! - -[PIZ1_23:PIZZA] -~w~Do you think these are gonna deliver themselves? - -[PIZ1_24:PIZZA] -~w~If these are cold when you drop them off, there'll be hell to pay! - -[PIZ1_25:PIZZA] -~w~Move your ass this time! - -[PIZ1_26:PIZZA] -~w~Hey, get these delivered! - -[PIZ1_27:PIZZA] -~w~Okay, drop these off and come back for some more. - -[PIZ1_28:PIZZA] -~w~Our pizzas kick ass! Drop these off on time or I'll kick yours! - -[PIZ1_29:PIZZA] -~w~Back for more? I'm fresh out of abuse for you buddy. - -[PIZ1_30:PIZZA] -~w~I think I sneezed on one of those! But never mind. Take 'em anyway! - -[PIZ1_31:PIZZA] -~w~I hate this job! But, at least I get to push you around. - -[PIZ1_3A:PIZZA] -~w~If these don't make it on time, pizza dough's the only dough you'll see today! - -[PIZ1_32:PIZZA] -~r~Can't stomach our pizzas? - -[PIZ1_33:PIZZA] -~w~Go back to ~y~Joe's Pizza Restaurant~w~ for fresh orders. - -[PIZ1_34:PIZZA] -~w~Delivery made, money paid! - -[PIZ_WON:PIZZA] -~w~Pizza odd-job completed, well done! Your maximum health has been increased! - -[PIZ_WO1:PIZZA] -~w~Joe's Pizza Restaurant is now under your 'protection'. Make sure you collect their payments regularly. - -[PIZ1_01:PIZZA] -~w~Deliver these pizzas to our ~b~customers~w~ as quick as you can. - -[PIZ1_05:PIZZA] -~w~Perform a drive-by to toss the pizza to a customer. - -{=================================== MISSION TABLE TAXI ===================================} - -[TAXI1:TAXI] -~w~Look for a ~b~fare. - -[TAXI1A:TAXI] -~w~There aren't any fares around here - keep looking! - -[TAXI2:TAXI] -~r~You're out of time! - -[TAXI3:TAXI] -~w~Your passenger fled in terror! - -[TAXI4:TAXI] -~w~Fare complete: $~1~ - -[TAXI4A:TAXI] -~w~Fare complete: $~1~ + ~1~ IN A ROW bonus! $~1~ - -[TAXI5:TAXI] -~w~SPEED BONUS: $~1~ - -[TAXI5A:TAXI] -~w~SPEED BONUS: $~1~ + ~1~ IN A ROW bonus! $~1~ - -[TAXI7:TAXI] -~w~Your car is trashed, get it repaired! - -[TAXI8:TAXI] -~r~Taxi mission cancelled. - -[TAXI9:TAXI] -~r~Your taxi has been destroyed! - -[FARES:TAXI] -Fares - -[TIP:TAXI] -Tip - -[FARE9:TAXI] -~w~Destination ~y~'Portland docks'. - -[FARE20:TAXI] -~w~Destination ~y~'The Park' ~w~in Belleville. - -[FARE22:TAXI] -~w~Destination ~y~'Cochrane Dam'. - -[FARE2:TAXI] -~w~Destination ~y~'Head Radio'~w~, Harwood. - -[FARE3:TAXI] -~w~Destination ~y~'The Ferry Port'~w~, Harwood. - -[FARE4:TAXI] -~w~Destination ~y~'The Hospital'~w~, Portland View. - -[FARE7:TAXI] -~w~Destination ~y~'The Construction Site'~w~, Hepburn Heights. - -[FARE8:TAXI] -~w~Destination ~y~'Cipriani Restaurant'~w~, Saint Mark's. - -[FARE10:TAXI] -~w~Destination ~y~'Punk Noodles'~w~, Chinatown. - -[FARE12:TAXI] -~w~Destination ~y~'The Ferry Port'~w~, Rockford. - -[FARE13:TAXI] -~w~Destination ~y~'The Church'~w~, Bedford Point. - -[FARE14:TAXI] -~w~Destination ~y~'Liberty Tree Offices'~w~, Bedford Point. - -[FARE15:TAXI] -~w~Destination ~y~'Liberty University'~w~, Liberty Campus. - -[FARE16:TAXI] -~w~Destination ~y~'Hogs 'n' Cogs'~w~, Belleville Park Area. - -[FARE17:TAXI] -~w~Destination ~y~'Courthouse'~w~, Belleville Park Area. - -[FARE18:TAXI] -~w~Destination ~y~'Mr. Benz'~w~, Bedford Point. - -[FARE19:TAXI] -~w~Destination ~y~'Joe's Pizza'~w~, Bedford Point. - -[FARE21:TAXI] -~w~Destination ~y~'Terminal A'~w~, Francis International Airport. - -[FARE23:TAXI] -~w~Destination ~y~'The Mansion'~w~, Cedar Grove. - -[FARE24:TAXI] -~w~Destination ~y~'The Hospital'~w~, Pike Creek. - -[FARE25:TAXI] -~w~Destination ~y~'The Park'~w~, Shoreside Vale. - -[FARE26:TAXI] -~w~Destination ~y~'North West Towers'~w~, Wichita Gardens. - -[FARE27:TAXI] -~w~Destination ~y~'The Coach Depot'~w~, Trenton. - -[FARE28:TAXI] -~w~Destination ~y~'Mr. Benz'~w~, Chinatown. - -[FARE29:TAXI] -~w~Destination ~y~'Mr. Benz'~w~, Pike Creek. - -[FARE30:TAXI] -~w~Destination ~y~'Terminal C'~w~, Francis International Airport. - -[FARE31:TAXI] -~w~Destination ~y~'AM Petroleum'~w~, Pike Creek. - -[FARE32:TAXI] -~w~Destination ~y~'Liberty Pharmaceuticals'~w~, Pike Creek. - -[FARE11:TAXI] -~w~Destination ~y~'Phil Cassidy's Fully Cocked Gun Shop'~w~, Bedford Point. - -[FARE1A:TAXI] -~w~Destination ~y~'Paulie's Revue Bar'~w~, Red Light District. - -[FARE1C:TAXI] -~w~Destination ~y~'Sex Club Seven'~w~, Red Light District. - -[FARE5:TAXI] -~w~Destination ~y~'Ammu-Nation'~w~, Red Light District. - -[FARE6:TAXI] -~w~Destination ~y~'Capital Autos'~w~, Saint Mark's. - -{=================================== MISSION TABLE AMBU ===================================} - -[A_FAIL2:AMBU] -~r~Your lack of urgency has been fatal to the patient! - -[A_FAIL3:AMBU] -~r~The patient is dead! - -[ATUTOR4:AMBU] -~w~Each bump reduces the chances of patient survival! - -[A_TIME:AMBU] -~w~Pickup! +~1~ seconds - -[A_TIME2:AMBU] -~w~Bonus! +~1~ seconds - -[AREWARD:AMBU] -~w~Level ~1~ completed! Reward: $~1~ - -[A_RANGE:AMBU] -~r~The ambulance radio is out of range, get closer to a hospital! - -[ATUTOR5:AMBU] -~w~Pick up a ~b~patient. - -[ATUTOR6:AMBU] -~w~Take them to the ~y~hospital! - -[ATUTOR7:AMBU] -~w~Pick up more ~b~patients~w~, or take this one to the ~y~hospital. - -[A_FULL:AMBU] -~w~Your ambulance is full! Drop your patients off at the ~y~hospital. - -[A_RANG2:AMBU] -~r~The ambulance radio doesn't work in the subway! - -{=================================== MISSION TABLE TV ===================================} - -[TV_01:TV] -Slash TV - -[TV_02:TV] -~w~Kill all the deranged psychopaths... they just keep on coming! - -[TV_03:TV] -~w~Each level gets harder with more enemies to dispatch... and more prizes to be won! - -[TV_04:TV] -~w~LEVEL ~1~ - -[TV_10:TV] -~w~You won an extra prize! - -[TV_09:TV] -Total prize money won this game: $~1~! - -[TV_05:TV] -~w~LEVEL CLEAR! - -[TV_06:TV] -~w~You won $~1~ in prize money! - -[TV_07:TV] -~w~GET READY... - -[TV_08:TV] -~w~GO! - -{=================================== MISSION TABLE NOODLE ===================================} - -[NDL1_02:NOODLE] -~w~Uh-oh - no more noodles! Go back to ~y~Punk Noodles~w~ and get some more. - -[NDL1_06:NOODLE] -~w~Press~h~ ~k~ ~TGSUB~ ~w~when on the bike to cancel the mission. - -[NDL1_07:NOODLE] -~r~You killed the customer! You're fired! - -[NDL1_08:NOODLE] -~r~You ran out of time. You're fired! - -[NDL1_09:NOODLE] -~r~You wrecked our moped! You're fired! - -[NDL1_11:NOODLE] -~w~Get back on the ~b~bike! - -[NDL1_12:NOODLE] -Noodles - -[NDL1_13:NOODLE] -~w~Noodles! Kaboodles of noodles for delivery! - -[NDL1_14:NOODLE] -~w~Our customers can't get enough of my noodles. - -[NDL1_15:NOODLE] -~w~I got noodles need delivering! - -[NDL1_16:NOODLE] -~w~Let's try to get these noodles delivered on time! - -[NDL1_17:NOODLE] -~w~Hey punk! These noodles are to go! - -[NDL1_18:NOODLE] -~w~Get these noodles delivered, chop-chop! - -[NDL1_19:NOODLE] -~w~Our customers want hot noodles, not cold noodles! - -[NDL1_20:NOODLE] -~w~Can't stand heat in the kitchen? Confucius say - turn down cooker. - -[NDL1_21:NOODLE] -~w~Drop these noodles off will you? - -[NDL1_22:NOODLE] -~w~More noodles for delivery. - -[NDL1_23:NOODLE] -~w~Noodles, noodles, noodles! Ship 'em out good and hot! - -[NDL1_24:NOODLE] -~w~We have people waiting! ...Oh the humanity! - -[NDL1_25:NOODLE] -~w~Hasn't this order been taken out already? - -[NDL1_26:NOODLE] -~w~What are you waiting for? Chinese New Year? - -[NDL1_27:NOODLE] -~w~These noodles are getting cold. Hurry it up! - -[NDL1_28:NOODLE] -~w~I wanted to be an astronaut. But my dad owns this place, so what could I do? - -[NDL1_29:NOODLE] -~w~If you want to keep your job, move your butt and deliver these. - -[NDL1_30:NOODLE] -~w~Crispy fried noodles... I don't understand 'em, but I love 'em. - -[NDL1_31:NOODLE] -~w~I'd have thought delivering pizza was more your style. - -[NDL1_3A:NOODLE] -~w~They always want more. So come back when you're done. - -[NDL1_32:NOODLE] -~r~What's the matter? Don't you like noodles? - -[NDL1_33:NOODLE] -~w~Return to ~y~Punk Noodles~w~ for more orders. - -[NDL1_34:NOODLE] -~w~Noodles delivered, cash paid! - -[NDL_WON:NOODLE] -~w~Congratulations, Noodle odd-job completed! Your maximum health has been increased! - -[NDL_WO1:NOODLE] -~w~Punk Noodles is now under your 'protection'. Make sure you collect their payments regularly. - -[NDL1_01:NOODLE] -~w~Deliver these noodles to our ~b~customers~w~ - chop-chop! - -[NDL1_05:NOODLE] -~w~Perform a drive-by to toss the noodles to a customer. - -{=================================== MISSION TABLE MPSURV ===================================} - -[SAL01:MPSURV] -~w~Maria, I'm going up to the hospital to get 'you-know-what' fixed. - -[SAL02:MPSURV] -~w~When I get out, the pork stallion will be galloping just like it used to... - -[SAL04:MPSURV] -~w~PS: Get ready to saddle up when I get out, baby! - -[SAL05:MPSURV] -~w~PPS: ...Don't leave this note just lying around! - -[SAL03:MPSURV] -~w~You just stay out of trouble while I'm in 'cause there's gonna be wise-guys dying to take over. - -[SAL03A:MPSURV] -~w~Literally! - -{=================================== MISSION TABLE JDREF ===================================} - -[JDT1_BA:JDREF] -~w~I ain't got no work for no Leone! - -[JDT1_BB:JDREF] -~w~...hey Toni, come back when you're less conspicuous. - -[CHNGOUT:JDREF] -~w~Change out of your Leone suit. JD can't be seen speaking to you otherwise. - -{=================================== MISSION TABLE CRED01 ===================================} - -[CR01_01:CRED01] -~n~ ~n~ ~n~ ~n~CREDITS - -[CR01_02:CRED01] -~n~ ~n~ ~n~ ~n~ROCKSTAR NORTH - -[CR01_03:CRED01] -~n~ ~n~ ~n~ ~n~Producer ~n~Leslie Benzies - -[CR01_04:CRED01] -~n~ ~n~ ~n~ ~n~Art Director ~n~Aaron Garbut - -[CR01_05:CRED01] -~n~ ~n~ ~n~ ~n~Technical Direction ~n~Obbe Vermeij, Adam Fowler - -[CR01_06:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~Written By ~n~Dan Houser, James Worrall ~n~ & David Bland - -[CR01_07:CRED01] -~n~ ~n~ ~n~ ~n~Programming ~n~Alexander Roger, Alexander Illes, ~n~Andrzej Madajczyk, Barane Chan, ~n~Derek Payne, Derek Ward, - -[CR01_08:CRED01] -~n~ ~n~Gordon Yeoman, Graeme Williamson, ~n~Greg Smith, James Broad, ~n~John Gurney, John Whyte, - -[CR01_09:CRED01] -~n~ ~n~Keith McLeman, Mark Nicholson, ~n~Shaun McKillop - -[CR01_10:CRED01] -~n~ ~n~ ~n~ ~n~Audio Programmer ~n~Matthew Smith - -[CR01_11:CRED01] -~n~ ~n~ ~n~ ~n~Sound Design and Mastering ~n~Allan Walker - -[CR01_12:CRED01] -~n~ ~n~ ~n~ ~n~Lead Cut Scene Animator ~n~Mondo Ghulam - -[CR01_13:CRED01] -~n~ ~n~ ~n~ ~n~Cut Scene Animator ~n~Dermot Bailie - -[CR01_14:CRED01] -~n~ ~n~ ~n~ ~n~Character Animator ~n~Felipe Busquets - -[CR01_15:CRED01] -~n~ ~n~ ~n~ ~n~In-Game Animation ~n~Gus Braid, Terry Kenny - -[CR01_16:CRED01] -~n~ ~n~ ~n~ ~n~Characters Artist ~n~Ian McQue - -[CR01_17:CRED01] -~n~ ~n~ ~n~ ~n~Vehicle Artist ~n~Joylon Orme - -[CR01_18:CRED01] -~n~ ~n~ ~n~ ~n~Additional Art ~n~Rick Stirling, Alisdair Wood - -[CR01_19:CRED01] -~n~ ~n~ ~n~ ~n~Music Producer ~n~Craig Conner - -[CR01_20:CRED01] -~n~ ~n~ ~n~ ~n~Audio Design and Dialogue Editor ~n~Will Morton - -[CR01_21:CRED01] -~n~ ~n~ ~n~ ~n~Additional Dialogue Editor ~n~Jon McCavish - -[CR01_22:CRED01] -~n~ ~n~ ~n~ ~n~Development Support ~n~Milly Cottam - -[CR01_23:CRED01] -~n~ ~n~ ~n~ ~n~Graphic Designers ~n~Stuart Petri, Steve Walsh - -[CR01_24:CRED01] -~n~ ~n~ ~n~ ~n~Lead Level Design ~n~William Mills - -[CR01_25:CRED01] -~n~ ~n~ ~n~ ~n~Level Design ~n~Chris Rothwell, Andy Duthie, ~n~Chris McMahon, Neil Ferguson - -[CR01_26:CRED01] -~n~ ~n~ ~n~ ~n~QA Manager ~n~Craig Arbuthnott - -[CR01_27:CRED01] -~n~ ~n~ ~n~ ~n~Senior Lead Test ~n~Neil Corbett - -[CR01_28:CRED01] -~n~ ~n~ ~n~ ~n~Lead Test ~n~David Murdoch, Neil Meikle, ~n~Alex Bazlinton, Brenda Carey - -[CR01_29:CRED01] -~n~ ~n~ ~n~ ~n~Build Engineer / Lead Test ~n~Neil Walker - -[CR01_30:CRED01] -~n~ ~n~ ~n~ ~n~Audio Test ~n~George Williamson - -[CR01_31:CRED01] -~n~ ~n~ ~n~ ~n~Test ~n~Brian Kelly, Lindsay Robertson, ~n~Sundram Soosay, Eugene Kuczerepa, ~n~Christopher Soosay, Ben Abbott, - -[CR01_32:CRED01] -~n~ ~n~Oliver Elliott, Louis Dinan, ~n~Bobby Wright, Thomas Philips, ~n~Nick Rees, Ivor Williams - -[CR01_33:CRED01] -~n~ ~n~ ~n~ ~n~Test Tools Programming ~n~James Whitcroft, Alex Carter - -[CR01_34:CRED01] -~n~ ~n~ ~n~ ~n~IT Manager ~n~Lorraine Roy - -[CR01_35:CRED01] -~n~ ~n~ ~n~ ~n~IT Support ~n~Christine Chalmers, Dave Bruce - -[CR01_36:CRED01] -~n~ ~n~ ~n~ ~n~Studio Director ~n~Andrew Semple - -[CR01_37:CRED01] -~n~ ~n~ ~n~ ~n~Office Administration ~n~Kim Gurney - -[CR01_38:CRED01] -~n~ ~n~ ~n~ ~n~Administration Support ~n~Charlene Maguire, Kim Wilson - -[CR02_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ROCKSTAR LEEDS - -[CR02_02:CRED01] -~n~ ~n~ ~n~ ~n~Studio Director ~n~Gordon Hall - -[CR02_03:CRED01] -~n~ ~n~ ~n~ ~n~Head of Development ~n~David Box - -[CR02_04:CRED01] -~n~ ~n~ ~n~ ~n~Lead Programming ~n~Andrew Greensmith, Matthew Shepcar ~n~ ~n~ ~n~ ~n~Console Programming ~n~Nigel Conroy, Richard Frankish, ~n~Andrew Greensmith, Robin Mangham, ~n~Damian McKenna, Finlay Munro, ~n~Stuart Roskell, Matthew Shepcar - -[CR02_05:CRED01] -~n~ ~n~ ~n~ ~n~Programming ~n~Jon Bellamy, Ross Childs, ~n~Nigel Conroy, Neil Dodwell, ~n~Alastair Dukes, David Huebner, - -[CR02_06:CRED01] -~n~ ~n~Robin Mangham, Jason McGann, ~n~Warren Merrifield, Stephen McGreal - -[CR02_07:CRED01] -~n~ ~n~ ~n~ ~n~Sound Programming ~n~Finlay Munro, Charles Waddington - -[CR02_08:CRED01] -~n~ ~n~ ~n~ ~n~Art Director ~n~Ian Bowden - -[CR02_09:CRED01] -~n~ ~n~ ~n~ ~n~Art Department Director ~n~Chris Smart - -[CR02_10:CRED01] -~n~ ~n~ ~n~ ~n~Lead Character Artist ~n~Paul Smith - -[CR02_11:CRED01] -~n~ ~n~ ~n~ ~n~Character Artist ~n~Chris Allison - -[CR02_12:CRED01] -~n~ ~n~ ~n~ ~n~Lead City Artist ~n~Dan Roberts - -[CR02_13:CRED01] -~n~ ~n~ ~n~ ~n~City Artists ~n~Paul McKee, James McHale, ~n~Siu Lee - -[CR02_14:CRED01] -~n~ ~n~ ~n~ ~n~Cutscene Interiors ~n~Izzy Stewart - -[CR02_15:CRED01] -~n~ ~n~ ~n~ ~n~Concept Artist ~n~John Wigley - -[CR02_16:CRED01] -~n~ ~n~ ~n~ ~n~Additional Character Animation ~n~Alan Bowker - -[CR02_17:CRED01] -~n~ ~n~ ~n~ ~n~Additional Artists ~n~Andy Walker, Jason Gee, ~n~Chris Edwards, Lee Clark - -[CR02_18:CRED01] -~n~ ~n~ ~n~ ~n~Design Director ~n~David Bland - -[CR02_19:CRED01] -~n~ ~n~ ~n~ ~n~Lead Level Design ~n~John Li - -[CR02_20:CRED01] -~n~ ~n~ ~n~ ~n~Senior Level Design ~n~Tony Gowland, Martyn Bramall - -[CR02_21:CRED01] -~n~ ~n~ ~n~ ~n~Level Design ~n~Sam Hackett, Stephen Robertson, ~n~Tom Kingsley, Chris Edwards, ~n~Kris Gormley - -[CR02_22:CRED01] -~n~ ~n~ ~n~ ~n~Associate Designer ~n~Mark McGinley - -[CR02_23:CRED01] -~n~ ~n~ ~n~ ~n~QA Manager ~n~Paul Colls - -[CR02_24:CRED01] -~n~ ~n~ ~n~ ~n~QA ~n~Jody Cobb, ~n~ ~n~Luke Brown, Nick Robey, ~n~Matthew Haven - -[CR02_25:CRED01] -~n~ ~n~ ~n~ ~n~Company Secretary ~n~Naomi Martin - -[CR02_26:CRED01] -~n~ ~n~ ~n~ ~n~IT Manager ~n~Chris Waring - -[CR03_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ROCKSTAR NYC - -[CR03_02:CRED01] -~n~ ~n~ ~n~ ~n~Executive Producer ~n~Sam Houser - -[CR03_03:CRED01] -~n~ ~n~ ~n~ ~n~VP of Creative ~n~Dan Houser - -[CR03_04:CRED01] -~n~ ~n~ ~n~ ~n~VP of Development ~n~Jamie King - -[CR03_05:CRED01] -~n~ ~n~ ~n~ ~n~Art Director ~n~Alex Horton - -[CR03_06:CRED01] -~n~ ~n~ ~n~ ~n~Chief Technology Officer ~n~Gary J. Foreman - -[CR03_07:CRED01] -~n~ ~n~ ~n~ ~n~Associate Producer ~n~Rich Rosado - -[CR03_08:CRED01] -~n~ ~n~ ~n~ ~n~Director of Quality Assurance ~n~Jeff Rosa - -[CR03_09:CRED01] -~n~ ~n~ ~n~ ~n~Senior Lead Analyst ~n~Lance Williams - -[CR03_10:CRED01] -~n~ ~n~ ~n~ ~n~Project Lead ~n~Jameel Vega - -[CR03_11:CRED01] -~n~ ~n~ ~n~ ~n~Rockstar Test Team ~n~Ethan Abeles, William Rompf, ~n~Christopher Mansfield, Chris Choi, ~n~Mike Hong, Tamara Carrion, - -[CR03_12:CRED01] -~n~ ~n~Rich Huie, Mike Nathan, ~n~Vance Wallace, Marc Rodriguez, ~n~Adam Tetzloff - -[CR03_13:CRED01] -~n~ ~n~ ~n~ ~n~Business Development Director ~n~Sean Macaluso - -[CR03_14:CRED01] -~n~ ~n~ ~n~ ~n~Soundtrack Supervision ~n~Heinz Henn, Ivan Pavlovich, ~n~Tim Sweeney - -[CR04_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~CUT SCENES & DIALOGUE - -[CR04_02:CRED01] -~n~ ~n~ ~n~ ~n~Motion Capture Director ~n~Navid Khonsari - -[CR04_03:CRED01] -~n~ ~n~ ~n~ ~n~Motion Capture Performed by ~n~Danny Mastrogiorgio, Jeffrey C. Hawkins, ~n~Bruce MacVittie, David Zayas, ~n~Peter Appel, Hannah Moon, ~n~Alyssa Truppelli, Joe Lotruglio - -[CR04_04:CRED01] -~n~ ~n~ ~n~ ~n~Voices Performed by ~n~Salvatore Leone - Frank Vincent ~n~Toni Cipriani - Danny Mastrogiorgio ~n~Donald Love - Will Janowitz - -[CR04_05:CRED01] -~n~ ~n~ Vincenzo Cilli - Joe Lotruglio ~n~Maria Latore - Fiona Gallagher ~n~JD O'Toole - Greg Wilson - -[CR04_06:CRED01] -~n~ ~n~Leon McAffrey - Ron Orbach ~n~Ray Machowski - Peter Appel ~n~Toshiko Kasen - Hannah Moon - -[CR04_07:CRED01] -~n~ ~n~ Ned Burner - Peter Bradbury ~n~Ma Cipriani - Sondra James ~n~Giovanni Casa - Joel Jones - -[CR04_08:CRED01] -~n~ ~n~Kazuki Kasen - Keenan Shimizu, ~n~Massimo Torini - Duccio Faggella ~n~Mickey Hamfists - Chris Tardio - -[CR04_09:CRED01] -~n~ ~n~Jane Hopper - Gordana Rashovich ~n~Mayor O'Donovan - John Braden ~n~8 Ball - Guru - -[CR04_10:CRED01] -~n~ ~n~Radio Newscaster - Sharon Washington ~n~TV Reporter - Brooke Alexander - -[CR04_11:CRED01] -~n~ ~n~ ~n~ ~n~Pedestrian Dialogue ~n~Una Cruickshank, Gregory Johnson, ~n~Sanford Santacroce, Ayana Osada - -[CR04_12:CRED01] -~n~ ~n~ ~n~ ~n~Pedestrian Voices ~n~Jamie Hector, Jackson Loo, ~n~Bruce MacVittie, Jeff Gurner, ~n~Jamie Hector, Andrea Kessler, - -[CR04_13:CRED01] -~n~ ~n~Lynne Horton, Phil Mikkelson, ~n~Koji Nonoyama, Devin Bennett, ~n~Jay Capozello, Mike Nathan, - -[CR04_14:CRED01] -~n~ ~n~Ethan Abeles, Lance Williams, ~n~Natalya Wilson, Jay Gladstone, ~n~Craig Blair, Dave Edwards, - -[CR04_15:CRED01] -~n~ ~n~Gregory Johnson, John Zurhellen, ~n~Blair Sadler, Georgia Sadler, ~n~Nicole Sadler, Judy Henderson, - -[CR04_16:CRED01] -~n~ ~n~Kim Graham, Kerry Shaw, ~n~Tamara Carrion, Franceska Clemens, ~n~Navid Khonsari, Noelle Sadler, - -[CR04_17:CRED01] -~n~ ~n~Nicholas Mongomery, Anthony Macbain, ~n~Ryan Rayhill, Josh Slater, ~n~Carmelo Gaeta, Hikari Yokoyama, - -[CR04_18:CRED01] -~n~ ~n~Chris Jobin, Michael Rothstein, ~n~Stacey Rachels, Jennifer Koontz, ~n~Dan Merrill, Ali Khonsari, - -[CR04_19:CRED01] -~n~ ~n~Ellen Rose, Chris Standal, ~n~Lorie Goodman, Neal Johnston, ~n~Son Garth, James Larsen, - -[CR04_20:CRED01] -~n~ ~n~Karl Weibel, Ramin Khonsari, ~n~Ed. Thomas Jr., Stanton Sargent, ~n~Oswald Greene, Audrey Amey, - -[CR04_21:CRED01] -~n~ ~n~Sanford Santacroce, Jeff Madrick, ~n~Ben Weaver, Andrea Kessler, ~n~CS Lee, Yoshi Amao, - -[CR04_22:CRED01] -~n~ ~n~ Jackson Loo, Martha Morrison, ~n~Sarah Bloodsworth, Adam Deher, ~n~Billy Gonzalez - -[CR04_23:CRED01] -~n~ ~n~ ~n~ ~n~Additional Motion Graphics ~n~Maryam Parwana - -[CR04_24:CRED01] -~n~ ~n~ ~n~ ~n~Dialogue Recording & Mixing ~n~Nicholas Montgomery - -[CR04_25:CRED01] -~n~ ~n~ ~n~ ~n~Foley Recording ~n~Bryan Scibinico - -[CR04_26:CRED01] -~n~ ~n~ ~n~ ~n~Foley recorded at Dig It Studios - -[CR04_27:CRED01] -~n~ ~n~ ~n~ ~n~Production Team ~n~Noelle Sadler, Eli Weissman, ~n~Kerry Shaw, John Zurhellen, ~n~Peter Adler, Anthony Carvalho, - -[CR04_28:CRED01] -~n~ ~n~Phil Poli, Jaesun Celebre, ~n~Franceska Clemens, Anthony Litton - -[CR04_29:CRED01] -~n~ ~n~ ~n~ ~n~Casting ~n~Judy Henderson and Associates - -[CR04_30:CRED01] -~n~Motion Capture recorded at Perspective Studios - -[CR05_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~RADIO - -[CR05_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ Banter, Talk Radio, Commercials and Imaging written by ~n~Dan Houser and Lazlow - -[CR05_03:CRED01] -~n~ ~n~ ~n~ ~n~Production by ~n~Lazlow - -[CR05_04:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~LCFR - -[CR05_05:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voices ~n~Smith Harrison, Karen Saltus - -[CR05_06:CRED01] -~n~ ~n~ ~n~ ~n~Heartland Values with Nurse Bob ~n~Nurse Bob - Chuck Montgomery - -[CR05_07:CRED01] -~n~ ~n~ ~n~ ~n~Guests and Callers ~n~Ayana Osada, Nick Montgomery, ~n~Russell Lewis, Nick Born, ~n~Sean Macaluso, Kerry Shaw, - -[CR05_08:CRED01] -~n~ ~n~Chad Johnson, Craig Conner, ~n~Mary Elizabeth, Rob Cross, ~n~Josh Bitney - -[CR05_09:CRED01] -~n~ ~n~ ~n~ ~n~Electron Zone ~n~Steve - Ptolemy Slocum ~n~Bill - Michael Urichek - -[CR05_10:CRED01] -~n~ ~n~ ~n~ ~n~Callers ~n~Alice Saltzman, Jeremy Wheaton, ~n~Ryan Rayhill, Maine Anderson, ~n~Patton Oswalt, Wil Wheaton, ~n~Anthony Cumia, Madena Parwana - -[CR05_11:CRED01] -~n~ ~n~ ~n~ ~n~Breathing World ~n~Lee Chowder - Ashley Albert ~n~Crow - Gregg Martin - -[CR05_12:CRED01] -~n~ ~n~ ~n~ ~n~Coq 'O' Vin ~n~Richard Goblin - Mike Shapiro - -[CR05_13:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voice ~n~Ben Krech - -[CR05_14:CRED01] -~n~ ~n~ ~n~ ~n~Callers ~n~Franceska Clemins, Sarah Bloodsworth, ~n~Adam Deher, Martha Morrison, ~n~Carmelo Gaeta - -[CR05_15:CRED01] -~n~ ~n~ ~n~ ~n~Chatterbox ~n~Lazlow as himself - -[CR05_16:CRED01] -~n~ ~n~ ~n~ ~n~Callers ~n~Susan Lewis, Ben Weaver, ~n~Jacky Bam Bam, Ben Sparks, ~n~Deanna Moyer, Liezl Jacinto, - -[CR05_17:CRED01] -~n~ ~n~Joshua Batista, Gregg Opie Hughes, ~n~Sondra James, Elizabeth Satterwhite - -[CR06_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~HEAD RADIO - -[CR06_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Michael Hunt - Russ Mottla - -[CR06_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voices ~n~Jeff Berlin, Katelyn Hutchinson - -[CR06_04:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Production ~n~Jeff Berlin - -[CR06_05:CRED01] -~n~ ~n~ ~n~ ~n~"Train" ~n~Conor & Jay ~n~Written by Craig Conner & Julie Wemyss ~n~Produced by Craig Conner ~n~Guitars by Jon McCavish ~n~Vocals by Julie Wemyss and Craig Conner - -[CR06_06:CRED01] -~n~ ~n~ ~n~ ~n~"The One For Me" ~n~Cloud Nineteen ~n~Written & Produced by ~n~Will Morton ~n~Additional Lyrics by Paul Mackie ~n~Guitars by Allan Walker & Chris Morton ~n~Lead Vocals by Raff ~n~Backing Vocals by Paul Mackie & Raff - -[CR06_07:CRED01] -~n~ ~n~ ~n~ ~n~"Take The Pain" ~n~Purser ~n~Written & Produced by ~n~Will Morton, Chris Morton ~n~Additional Lyrics by Paul Mackie ~n~Lead Vocals by Paul Mackie ~n~Additional Vocals by Will Morton - -[CR06_08:CRED01] -~n~ ~n~ ~n~ ~n~"Free Yourself" ~n~L-Marie featuring Raff ~n~Written & Produced by Craig Conner ~n~Vocals by L-Marie and Raff ~n~Backing Vocals by Craig Conner - -[CR06_09:CRED01] -~n~ ~n~ ~n~ ~n~"Drive" ~n~15 Ways ~n~Written & Produced by Colin Entwistle ~n~Vocals by Paul Mackie - -[CR06_10:CRED01] -~n~ ~n~ ~n~ ~n~"Welcome To The Real World" ~n~Rosco Stow ~n~Written & Produced by Craig Conner ~n~Guitars Written, Produced and Performed by Allan Walker ~n~Lead Vocals by Andy Dorrat ~n~Backing Vocals by Craig Conner, ~n~Anna Stuart and Kim Gurney - -[CR06_11:CRED01] -~n~ ~n~ ~n~ ~n~"Keep Dreaming" ~n~Vanilla Smoothie ~n~Written & Produced by ~n~Alastair MacGregor ~n~Guitars by Allan Walker ~n~Vocals by Fiona Stoddart - -[CR07_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~LIPS 106 - -[CR07_02:CRED01] -~n~ ~n~ ~n~ ~n~DJs ~n~Cliff - Ed McMann ~n~Andee - Shelley Miller - -[CR07_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voice ~n~Jonathan Hanst - -[CR07_04:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Production ~n~Jonathan Hanst - -[CR07_05:CRED01] -~n~ ~n~ ~n~ ~n~"Funk In Time" ~n~Rudy La Fontaine ~n~Written & Produced by Jon McCavish ~n~Guitars by Julian Pais ~n~Vocals by Julian Pais - -[CR07_06:CRED01] -~n~ ~n~ ~n~ ~n~"Love Is The Feeling" ~n~Sawarr ~n~Written by Craig Conner & Julie Wemyss ~n~Produced by Craig Conner ~n~Vocals by Julie Wemyss - -[CR07_07:CRED01] -~n~ ~n~ ~n~ ~n~"Mine Until Monday" ~n~Sunshine Shine ~n~Written & Produced by Will Morton ~n~Additional Lyrics by Paul Mackie ~n~Vocals by Paul Mackie & Raff - -[CR07_08:CRED01] -~n~ ~n~ ~n~ ~n~"Get Down" ~n~Credit Check ~n~Written & Produced by ~n~Alastair MacGregor ~n~Guitars by Martyn Livingstone ~n~Bass by Andy Wilson ~n~Vocals by Louise Ferrier - -[CR07_09:CRED01] -~n~ ~n~ ~n~ ~n~"Tonight" ~n~Cool Timers ~n~Written & Produced by Craig Conner ~n~Vocals by Julie Wemyss - -[CR07_10:CRED01] -~n~ ~n~ ~n~ ~n~"Bassmatic" ~n~Nina Barry ~n~Written & Produced by Jon McCavish ~n~Vocals by Riz Maslen - -[CR07_11:CRED01] -~n~ ~n~ ~n~ ~n~"Into Something (C'mon Get Down)" ~n~The Jackstars ~n~Written & Produced By ~n~Craig Conner ~n~Vocals by Lucie Danti-Juan ~n~Backing vocals by ~n~Kevin Stacey & Craig Conner - -[CR08_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~DOUBLE CLEF FM - -[CR08_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Sergio Boccino - Robert Blumenfeld - -[CR08_03:CRED01] -~n~ ~n~ ~n~ ~n~Caller ~n~Gerald Cosgrove - -[CR08_04:CRED01] -~n~ ~n~ ~n~ ~n~"Il Trovatore: Anvil Chorus" ~n~Composed by Giuseppe Verdi ~n~Performed by ~n~Nuremberg Symphonic Orchestra ~n~& Munich State Opera Choir ~n~Courtesy of Point Classics, LLC - -[CR08_05:CRED01] -~n~ ~n~ ~n~ ~n~"Il Trovatore: Tacea la notte placida" ~n~Composed by Giuseppe Verdi ~n~Performed by ~n~Nuremberg Symphonic Orchestra & ~n~Munich State Opera Choir ~n~(Eva Illes, Soprano) ~n~Courtesy of Point Classics, LLC - -[CR08_06:CRED01] -~n~ ~n~ ~n~ ~n~"Nabucco: Chorus of the Hebrew Slaves" ~n~Composed by Giuseppe Verdi ~n~Performed by Philharmonia Slavonica ~n~Courtesy of Point Classics, LLC - -[CR08_07:CRED01] -~n~ ~n~ ~n~ ~n~"Così fan tutte: È amore un ladroncello" ~n~Composed by Wolfgang Amadeus Mozart ~n~Performed by ~n~Bratislava Opera Soloists, ~n~Choir and Orchestra ~n~(Ida Kirilova "Dorabella") ~n~Courtesy of Point Classics, LLC - -[CR08_08:CRED01] -~n~ ~n~ ~n~ ~n~"Marriage of Figaro: Overture" ~n~Composed by Wolfgang Amadeus Mozart ~n~Performed by ~n~London Philharmonic Orchestra ~n~Courtesy of Point Classics, LLC - -[CR08_09:CRED01] -~n~ ~n~ ~n~ ~n~"I Pagliacci: Vesti la giubba" ~n~Composed by Ruggiero Leoncavallo ~n~Performed by ~n~Nuremberg Symphonic Orchestra ~n~(José Maria Perez, Tenor) ~n~Courtesy of Point Classics, LLC - -[CR09_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~RISE FM - -[CR09_02:CRED01] -~n~ ~n~ ~n~ ~n~Engineered by Mike Callaghan - -[CR09_03:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Boy Sanchez - Oliver Vaquer - -[CR09_04:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voices ~n~DJ Andre, Lupus Thunder, ~n~Andi Hanley, Mat Ckillz, ~n~Couzin Ed, Lazlow, - -[CR09_05:CRED01] -~n~ ~n~Terry Donovan, Bill Brissette, ~n~Juan Aller, Ed Andrews, ~n~Xeni Jardin, Matthew Orr, ~n~Jeff Berlin - -[CR09_06:CRED01] -~n~ ~n~ ~n~ ~n~"Sing It Back ~n~(Boris Musical Mix)" ~n~Moloko ~n~Written by M. Brydon, R. Murphy ~n~Published by Chrysalis Music (ASCAP) ~n~Remix and Additional Production by ~n~Boris Dlugosch ~n~(p) + © 1998 The Echo Label ~n~Courtesy of Chrysalis Music Limited - -[CR09_07:CRED01] -~n~ ~n~ ~n~ ~n~"Free" ~n~Ultra Nate ~n~Written by U. Nate, L. Springsteen, ~n~J. Ciafone ~n~Published by Warner/ Chappell Music/ BMG Music ~n~(p) + © 1997 Strictly Rhythm Records LLC ~n~Courtesy of Warner Strategic Marketing - -[CR09_08:CRED01] -~n~ ~n~ ~n~ ~n~"I Believe" ~n~Happy Clappers ~n~Written by C. Scott, G. Ripley, M. Knotts, M. Topham ~n~Published by All Boys Music Ltd ~n~(p) + © 1994 C J Scott Productions ~n~Courtesy of C J Scott Productions - -[CR09_09:CRED01] -~n~ ~n~ ~n~ ~n~"House Music" ~n~Eddie Amador ~n~Written by Eddie Amador ~n~Published by ~n~Deep Dish Music ~n~(p) + © 1998 Yoshitoshi Records ~n~Courtesy of ~n~Deep Dish Recordings, Inc. ~n~by arrangement with ~n~Nasseri Music Business Solutions - -[CR09_10:CRED01] -~n~ ~n~ ~n~ ~n~"Feel What You Want" ~n~Kristine W ~n~Written by R. Dougan, R. Armstrong, ~n~K. Weitz ~n~Published by BMG Music/Weitz House Publishing (ASCAP)/ EMI Music Publishing ~n~(p) + © 1996 RCA/ BMG ~n~Courtesy of Sony BMG Entertainment - -[CR09_11:CRED01] -~n~ ~n~ ~n~ ~n~"Hideaway ~n~(Deep Dish Vocal Remix)" ~n~De'Lacy ~n~Written by K. Hedge, J. Milan ~n~Published by ~n~Warner-Tamerlane Publishing Corp ~n~Remix and Additional Production by ~n~Deep Dish ~n~(p) 1995 Easy Street Recordings Inc ~n~© 1998 Kickin Music Ltd ~n~Courtesy of Easy Street Recordings Inc. and Slip n' Slide Records - -[CR09_12:CRED01] -~n~ ~n~ ~n~ ~n~"Spin Spin Sugar ~n~(Armand's Dark Garage Mix)" ~n~Sneaker Pimps ~n~Written by I. Pickering, L. Coverdale Howe, C. Corner ~n~Remix and Additional Production by ~n~Armand Van Helden ~n~Published by BMG Songs, Inc ~n~(p) + © 1997 Clean Up Records Ltd ~n~Courtesy of EMI Music / ~n~One Little Indian, Ltd - -[CR09_13:CRED01] -~n~ ~n~ ~n~ ~n~"Plastic Dreams" ~n~Jaydee ~n~Written by R. Albers ~n~Published by TBM Holland ~n~(p) 1992 R & S Records ~n~© Robin Albers ~n~Courtesy of Robin "Jaydee" Albers - -[CR09_14:CRED01] -~n~ ~n~ ~n~ ~n~"Altered States" ~n~Ron Trent ~n~Written by R. Trent ~n~Published by ~n~High Fashion Music/ Nanada Music ~n~(p) + © 1993 Warehouse ~n~Djax-Up Beats ~n~Courtesy of High Fashion Music/ ~n~Djax-Up Beats - -[CR09_15:CRED01] -~n~ ~n~ ~n~ ~n~"There Will Come A Day (Half Tab Dub)" ~n~The Absolute featuring Suzanne Palmer ~n~Written by M. Pichiotti, C.J. Snider ~n~Published by Much Noyse Music/ ~n~Hoobini Music (ASCAP) ~n~(p) + © 1995 Mark Productions, Inc ~n~Courtesy of Mark Productions, Inc - -[CR09_16:CRED01] -~n~ ~n~ ~n~ ~n~"Positive Education" ~n~Slam ~n~Written by S. McMillan, O. Meikle, ~n~G. Gibbons, J. Muotone ~n~Published by EMI Music Publishing ~n~(p) + © 1997 Soma Recordings Ltd ~n~Courtesy of Soma Recordings Ltd - -[CR09_17:CRED01] -~n~ ~n~ ~n~ ~n~"Flash" ~n~Green Velvet ~n~Written by C. Jones ~n~Published by Curtis A. Jones Music (ASCAP) ~n~(p) 1995 Relief Records ~n~© 2000 Warner Bros. Records and N.E.W.S. Records and Relief Records ~n~Courtesy of Warner Strategic Marketing, N.E.W.S. Records, Relief Records - -[CR09_18:CRED01] -~n~ ~n~ ~n~ ~n~"Circus Bells (Hardfloor Remix)" ~n~Robert Armani ~n~Written by R. Armani ~n~Published by ~n~High Fashion Music/ Nanada Music ~n~(p) + © 1993 Warehouse/ ~n~Djax-Up Beats ~n~Courtesy of High Fashion Music/ ~n~Djax-Up Beats - -[CR09_19:CRED01] -~n~ ~n~ ~n~ ~n~"Higher State Of Consciousness" ~n~Wink ~n~Written by J. Wink ~n~Published by Strictly Rhythm Publishing, Inc. (ASCAP) / Warner/Chappell Music / Wink Inc. (ASCAP) / EMI Music Publishing ~n~(p) + © 1995 Strictly Rhythm Records LLC ~n~Courtesy of Warner Strategic Marketing - -[CR10_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~RADIO DEL MUNDO - -[CR10_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Panjit Gavaskar - Hajaz Akram - -[CR10_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voice ~n~Jessica Wachsman - -[CR10_04:CRED01] -~n~ ~n~ ~n~ ~n~"Raghupati (Folk Tune)" ~n~Ananda Shankar ~n~Arranged by A. Shankar, Lewinson, Hassilev ~n~Published by Warner Chappell Inc ~n~(p) + © 1970 Reprise Records for the U.S. and WEA International Inc ~n~Courtesy of Warner Strategic Marketing - -[CR10_05:CRED01] -~n~ ~n~ ~n~ ~n~"Dum Maro Dum" ~n~Asha Bhosle ~n~Written by RD Burman, Anand Bakshi ~n~Published by Saregama India Ltd ~n~(p) + © 1971 Saregama India Ltd ~n~Courtesy of Saregama India Ltd - -[CR10_06:CRED01] -~n~ ~n~ ~n~ ~n~"Neeve Nanna (Only You Were Mine)" ~n~Vijaya Anand ~n~Written by Vijaya Anand ~n~Published by Shake Boom! (ASCAP)/ ~n~Luaka Bop Inc ~n~(p) 1988 Lahari/Audiovision ~n~© 1992 Sire Records Company ~n~Courtesy of ~n~Luaka Bop Records - -[CR10_07:CRED01] -~n~ ~n~ ~n~ ~n~"Kidda" ~n~Natacha Atlas ~n~Written by N. Atlas, J. Reynolds, J. Adams ~n~Published by Warner Chappell Music Ltd ~n~(p) + © 1997 Nation Records Ltd/ ~n~Beggars Banquet Records Ltd ~n~Courtesy of Nation Records Ltd/ ~n~Beggars Banquet Records Ltd - -[CR10_08:CRED01] -~n~ ~n~ ~n~ ~n~"Hebeena Hebeena" ~n~Farid El Atrache ~n~Written by Barakat, Atrache ~n~Published by Voices Of Lebanon ~n~(p) + © 1974 Voices Of Lebanon ~n~Courtesy of EMI Music/ EMI Music Arabia - -[CR10_09:CRED01] -~n~ ~n~ ~n~ ~n~"Aini Bet Ref" ~n~Ahmed Mneimneh ~n~Written by A. Alishaan ~n~Published by D. Dersahakian (ASCAP) ~n~(p) + © Voice of Stars & ~n~Lys Records ~n~Courtesy of Voice of Stars & ~n~Lys Records - -[CR10_10:CRED01] -~n~ ~n~ ~n~ ~n~"Im Nin'Alu" ~n~Ofra Haza ~n~Traditional, Arranged by I. Ashdot, B. Nagari ~n~Published by Blue Lake Music ~n~ (p) + © 1988 Sire Records Company ~n~Courtesy of Warner Strategic Marketing - -[CR10_11:CRED01] -~n~ ~n~ ~n~ ~n~"Ballaa Tsoubou Hal Kahwa" ~n~Samira Tawfic ~n~Written by R. Al Khylani, J. Al A'ss ~n~Published by Copyright Control ~n~(p) + © Voices Of Lebanon ~n~Courtesy of EMI Music/ EMI Music Arabia - -[CR11_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~K-JAH - -[CR11_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Natalee Walsh Davis - Pascale Armand - -[CR11_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voices ~n~Karl Weibel, Pat McKay - -[CR11_04:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Production ~n~Jay Wright Productions - -[CR11_05:CRED01] -~n~ ~n~ ~n~ ~n~"Pick a Sound" ~n~Selah Collins, Ruddy Ranks, Redeye ~n~Written by S. Collins, H. Burke, ~n~E. Donaldson ~n~Published by Copyright Control/ MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records - -[CR11_06:CRED01] -~n~ ~n~ ~n~ ~n~"What a Wonderful Feeling" ~n~Errol Bellot, Ruddy Ranks, Redeye ~n~Written by E. Bellot, H. Burke, ~n~E. Donaldson ~n~Published by MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records - -[CR11_07:CRED01] -~n~ "Watch How the People Dancing" ~n~Kenny Knots, Ruddy Ranks, Redeye ~n~Written by K. Wright ~n~Published by Jetstar ~n~Courtesy of Honest Jons Records - -[CR11_08:CRED01] -~n~ ~n~ ~n~ ~n~"Lean Boot" ~n~Richie Davis, Ruddy Ranks, Redeye ~n~Written by R. Davis, H. Burke, ~n~E. Donaldson ~n~Published by Westbury Music/ MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records - -[CR11_09:CRED01] -~n~ ~n~ ~n~ ~n~"Ready For the Dancehall Tonight" ~n~Peter Bouncer, Ruddy Ranks, Redeye ~n~Written by Peter McKenzie, H. Burke, ~n~E. Donaldson ~n~Published by MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records - -[CR11_10:CRED01] -~n~ ~n~ ~n~ ~n~"You Ha Fe Cool" ~n~Richie Davis, Ruddy Ranks, Redeye ~n~Written by R. Davis, H. Burke, ~n~E. Donaldson. ~n~Published by Westbury Music/MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records - -[CR11_11:CRED01] -~n~ ~n~ ~n~ ~n~"Ring My Number" ~n~Kenny Knots, Ruddy Ranks, Redeye ~n~Written by Kenneth Wright, H. Burke, ~n~E. Donaldson. ~n~Published by MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records - -[CR11_12:CRED01] -~n~ ~n~ ~n~ ~n~"Run Come Call Me" ~n~Kenny Knots, Ruddy Ranks, Redeye ~n~Written by Kenneth Wright, H. Burke, ~n~E. Donaldson ~n~Published by MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records - -[CR12_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~THE LIBERTY JAM - -[CR12_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~DJ Clue as himself - -[CR12_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voices ~n~Jay Wright, Tom Yankowski, Chris Mercado, Vanessa Grullon - -[CR12_04:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Production ~n~Jay Wright Productions - -[CR12_05:CRED01] -~n~ ~n~ ~n~ ~n~"All I Need" ~n~Method Man ~n~Written by C. Smith, R. Diggs ~n~Published by Sony BMG Music ~n~(p) + © 1994 Def Jam Recordings ~n~Courtesy of Def Jam Recordings/ UME - -[CR12_06:CRED01] -~n~ ~n~ ~n~ ~n~"Shook Ones Pt. II" ~n~Mobb Deep ~n~Written by A. Johnson, K. Muchita ~n~Published by ~n~BMG Songs Inc. (ASCAP) ~n~(p) + © 1995 BMG Music ~n~Courtesy of RCA Records by arrangement with Sony BMG Ent - -[CR12_07:CRED01] -~n~ ~n~ ~n~ ~n~"Incarcerated Scarface" ~n~Raekwon ~n~Written by R. Diggs, C. Woods, A. Tilman ~n~Published by ~n~Careers-BMG Music Publishing Inc./ ~n~Wu Tang Publishing (BMI)/ ~n~Bridgeport Music ~n~(p) + © 1995 BMG Music - -[CR12_08:CRED01] -Courtesy of RCA Records by arrangement with Sony BMG Ent ~n~This track contains a sample of "You're Getting A Little Too Smart" as performed by The Detroit Emeralds. Courtesy of Westbound Records. Used by permission. All rights reserved - -[CR12_09:CRED01] -~n~ ~n~ ~n~ ~n~"N.O.R.E." ~n~Noreaga ~n~Written by V. Santiago, J. Olivier, ~n~S. Barnes ~n~Published by Suite 1202 Music/ Jose Luis Gotcha Music (BMI)/ Slamuwell Productions/ Jelly's Jam LLC (ASCAP)/ ~n~12 & Under Music/ - -[CR12_10:CRED01] -Jumping Bean Songs LLC (BMI) ~n~(p) + © 1998 Penalty Recordings ~n~Courtesy of Warner Strategic Marketing - -[CR12_11:CRED01] -~n~ ~n~ ~n~ ~n~"Shut 'Em Down (Remix)" ~n~Onyx featuring Noreaga & Big Pun ~n~Written by F. Scruggs, K. Jones, T. Taylor, E. Hinson, E. Simmons ~n~Published by Universal Music/ ~n~Let Me Show You Music/ ~n~Jelly Jams Music/ - -[CR12_12:CRED01] -III Posse Music/ Ill Hill Billy'z Music/ Warner-Tamerlane Music ~n~(p) + © 1998 Rush Associated Labels Recordings ~n~Courtesy of Universal Music Enterprises - -[CR12_13:CRED01] -~n~ ~n~ ~n~ ~n~"Beware" ~n~Big Pun ~n~Written by C. Rios, J. Tineo ~n~Published by Let Me Show You Music/ ~n~Joe Cartegena Music (ASCAP), ~n~Administered by Jelly Jams Music (BMI)/ ~n~P.H.D. Music (ASCAP) - -[CR12_14:CRED01] -(p) + © 1998 Loud Records LLC ~n~Courtesy of Columbia Records by arrangement with Sony BMG Ent - -[CR12_15:CRED01] -~n~ ~n~ ~n~ ~n~"Twinz (Deep Cover 98)" ~n~Big Pun ~n~Written by C. Rios, J. Cartegena, ~n~C. Brodus, A. Young, C. Wolfe ~n~Published by Let Me Show You Music/ ~n~Joe Cartegena Music (ASCAP)/ ~n~Jelly Jams Music (BMI)/ ~n~Sony Tunes Inc. (ASCAP) - -[CR12_16:CRED01] -~n~(p) + © 1998 Loud Records LLC ~n~Courtesy of Columbia Records by arrangement with Sony BMG Ent ~n~This track contains a sample of "Deep Cover" as performed by Dr. Dre. Courtesy of Solar Records. Used by permission. All rights reserved - -[CR12_17:CRED01] -~n~ ~n~ ~n~ ~n~"Get At Me Dog" ~n~DMX featuring Sheek of The Lox ~n~Written by E. Simmons, D. Blackman, ~n~A. Fields, S. Taylor ~n~Published by Universal Music Publishing/ EMI April Music/ ~n~Sony ATV Tunes - -[CR12_18:CRED01] -~n~(p) + © 1998 Rush Associated Labels Recordings ~n~Courtesy of Universal Music Enterprises - -[CR12_19:CRED01] -~n~ ~n~ ~n~ ~n~"Ruff Ryders Anthem (Remix)" ~n~DMX featuring DJ Clue, Jadakiss, Styles, Drag-On & Eve ~n~Written by J. Phillips, M.J. Smalls, E. Shaw, K. Ifill, E. Simmons, K. Dean, E. Jeffers ~n~Published by Universal Music Publishing/ EMI Music Publishing - -[CR12_20:CRED01] -(p) + © 1998 Roc-a-Fella Records ~n~Courtesy of Universal Music Enterprises - -[CR12_21:CRED01] -~n~ ~n~ ~n~ ~n~"Do What You Feel" ~n~Redman featuring Method Man ~n~Written by P. Michael, R. Noble, C. Smith ~n~Published by Careers BMG/ Sony ATV Tunes/ Famous Music ~n~(p) + © 1996 Def Jam ~n~Courtesy of Universal Music Enterprises - -[CR12_22:CRED01] -~n~ ~n~ ~n~ ~n~"Chain Gang Freestyle" ~n~The Lox & Black Rob ~n~Written by Frierson, Phillips, Styles, Jacobs, Ross, Shaw ~n~Published by EMI Music Publishing ~n~Courtesy of Bad Boy Records - -[CR12_23:CRED01] -~n~ ~n~ ~n~ ~n~"Chest2chest Freestyle" ~n~The Lox ~n~Written by Phillips, Styles, Jacobs, Shaw, Barnes, Lemay, Montgomery ~n~Published by Taggie Music (BMI)/ ~n~Universal Polygram Int'l. (ASCAP)/ ~n~EMI Music Publishing ~n~Courtesy of Bad Boy Records - -[CR12_24:CRED01] -This track contains a sample of "Next Level" as performed by Showbiz & AG. Courtesy of Universal Music Enterprises. Used by permission. All rights reserved - -[CR13_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~MSX 98 - -[CR13_02:CRED01] -~n~ ~n~ ~n~ ~n~MC ~n~Codebreaker as himself - -[CR13_03:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Timecode - -[CR13_04:CRED01] -~n~ ~n~ ~n~ ~n~Station Production ~n~Timecode - -[CR13_05:CRED01] -~n~ ~n~ ~n~ ~n~"Renegade Snares" ~n~Omni Trio ~n~Written, Produced & Engineered by ~n~R. Haigh ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1993 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd - -[CR13_06:CRED01] -~n~ ~n~ ~n~ ~n~"Terrorist" ~n~Renegade ~n~Written, Produced & Engineered by ~n~A. Dookith ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd - -[CR13_07:CRED01] -~n~ ~n~ ~n~ ~n~"Finest Illusion (Legal Mix)" ~n~Foul Play ~n~Written, Produced & Engineered by ~n~J. Morrow, S. Bradshaw, ~n~S. Gurley ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1993 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd - -[CR13_08:CRED01] -~n~ ~n~ ~n~ ~n~"Living For the Future (FBD Project Remix)" ~n~Omni Trio ~n~Written, Produced & Engineered by ~n~R. Haigh ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd - -[CR13_09:CRED01] -~n~ ~n~ ~n~ ~n~"Stay Calm (Foul Play Remix)" ~n~DJ Pulse ~n~Written, Produced & Engineered by ~n~A. Brown ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd - -[CR13_10:CRED01] -~n~ ~n~ ~n~ ~n~"Disturbance (Tango Remix)" ~n~Hyper-On Experience ~n~Written, Produced & Engineered by ~n~A. Banks, D. Demierre ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd - -[CR13_11:CRED01] -~n~ ~n~ ~n~ ~n~"Cold Fresh Air" ~n~Higher Sense ~n~Written, Produced & Engineered by ~n~A. Miles, DJ Rhythm ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd - -[CR13_12:CRED01] -~n~ ~n~ ~n~ ~n~"Living For the Future" ~n~Omni Trio ~n~Written, Produced & Engineered by ~n~R. Haigh ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd - -[CR13_13:CRED01] -~n~ ~n~ ~n~ ~n~"Thru The Vibe (2 on 1 Mix)" ~n~Omni Trio ~n~Written, Produced & Engineered by ~n~R. Haigh ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd - -[CR13_14:CRED01] -~n~ ~n~ ~n~ ~n~"The Helicopter Tune" ~n~Deep Blue ~n~Written, Produced & Engineered by ~n~S. O'Keefe ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd - -[CR13_15:CRED01] -~n~ ~n~ ~n~ ~n~"Dred Bass" ~n~Dead Dred ~n~Written, Produced & Engineered by ~n~W. Smith, L. Smith ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd - -[CR14_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~FLASHBACK FM - -[CR14_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Reni Wassulmaier - Barbara Rosenblatt - -[CR14_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voice ~n~Mike Shapiro - -[CR14_04:CRED01] -~n~ ~n~ ~n~ ~n~"First Hand Experience ~n~In Second Hand Love" ~n~Giorgio ~n~Written by G. Moroder, P. Bellotte ~n~Published by WB Music Corp. (ASCAP) ~n~(p) + © 1977 Giorgio Moroder ~n~Courtesy of Giorgio Moroder - -[CR14_05:CRED01] -~n~ ~n~ ~n~ ~n~"I Wanna Rock You" ~n~Giorgio ~n~Written by G. Moroder, H. Faltermeyer, ~n~K. Forsey ~n~Published by WB Music Corp. (ASCAP) ~n~(p) + © 1979 Giorgio Moroder ~n~Courtesy of Giorgio Moroder - -[CR14_06:CRED01] -~n~ ~n~ ~n~ ~n~"E=MC2" ~n~Giorgio ~n~Written by G. Moroder, H. Faltermeyer, ~n~P. Bellotte ~n~Published by WB Music Corp. (ASCAP) ~n~(p) + © 1979 Giorgio Moroder ~n~Courtesy of Giorgio Moroder - -[CR14_07:CRED01] -~n~ ~n~ ~n~ ~n~"Chase" ~n~Giorgio Moroder ~n~Written by G. Moroder ~n~Published by Warner/ Chappell Music ~n~(p) + © 1978 Casablanca Films/ ~n~Columbia Pictures ~n~Courtesy of Sony Pictures Entertainment - -[CR14_08:CRED01] -~n~ ~n~ ~n~ ~n~"I'm Left, You're Right, She's Gone" ~n~Giorgio ~n~Written by G. Moroder, P. Bellotte ~n~Published by WB Music Corp. (ASCAP) ~n~(p) + © 1977 Giorgio Moroder ~n~Courtesy of Giorgio Moroder - -[CR14_09:CRED01] -~n~ ~n~ ~n~ ~n~"From Here To Eternity" ~n~Giorgio ~n~Written by G. Moroder, P. Bellotte ~n~Published by WB Music Corp. (ASCAP) ~n~(p) + © 1977 Casablanca Records ~n~Courtesy of Universal Music Enterprises - -[CR15_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~COMMERCIAL VOICES - -[CR15_02:CRED01] -~n~ ~n~ ~n~ ~n~Alex Anthony, Anouchka Benson, ~n~Audrey Amey, Bill Smith, ~n~Billy Gonzalez, Brian Thomas, - -[CR15_03:CRED01] -~n~ ~n~Chris Jobin, Chris Silvestro, ~n~Craig Blair, Dan Houser, ~n~Dan Merrill, Ed Thomas, - -[CR15_04:CRED01] -~n~ ~n~Ethan Abeles, Garth Johnston, ~n~Gregg Martin, Gregory Johnson, ~n~Hikari Yokoyama, James Ferrante, - -[CR15_05:CRED01] -~n~ ~n~James Larson, Jay Capozello, ~n~Jayson Gladstone, Jeff Berlin, ~n~Jen Sweeney, Jessica Wachsman, - -[CR15_06:CRED01] -~n~ ~n~ JJ Adler, Jonathan Hanst, ~n~Joshua Batista, Karen Saltus, ~n~Koji Nonoyami, Lance Williams, - -[CR15_07:CRED01] -~n~ ~n~Lazlow, Lynne Horton, ~n~Michael Nathan, Mike Ferrante Jr., ~n~Chris Ferrante, Mike Shapiro, - -[CR15_08:CRED01] -~n~ ~n~Natalya Wilson, Noelle Sadler, ~n~Phil Mikkelson, Ron Reeve, ~n~Smith Harrison, Stacy Rachels, - -[CR15_09:CRED01] -~n~ ~n~ Steve Carlesi, Julie Wemyss, ~n~Kim Gurney - -[CR16_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~CUTSCENE MUSIC - -[CR16_02:CRED01] -~n~ ~n~ ~n~ ~n~"Japanese Geisha" ~n~Sonia Slany ~n~Written by Sonia Slany ~n~Published by West One Music ~n~Courtesy of APM Music, LLC - -[CR16_03:CRED01] -~n~ ~n~ ~n~ ~n~"The Heist" ~n~Bugz in the Attic ~n~Written by K. Tatham ~n~Published by Copyright Control ~n~(p) 2005 Bugz In The Attic ~n~Courtesy of Bugz In The Attic ~n~www.bugzintheattic.co.uk - -[CR16_04:CRED01] -~n~ ~n~ ~n~ ~n~"A Dark March" ~n~Danger Mouse ~n~Written by Danger Mouse ~n~Published by ~n~Underground Animals (ASCAP) - -[CR17_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ROCKSTAR NYC PUBLISHING TEAM - -[CR17_02:CRED01] -~n~ ~n~ ~n~ ~n~Terry Donovan, Jenefer Gross, ~n~Jennifer Kolbe, Devin Winterbottom, ~n~Adam Tedman, Michael Elkind, - -[CR17_03:CRED01] -~n~ ~n~Paul Yeates, Hosi Simon, ~n~Daniel Einzig, Marlene Yamaguchi, ~n~Gauri Khindaria, Stanton Sarjeant, - -[CR17_04:CRED01] -~n~ ~n~Jordan Chew, Ryan Rayhill, ~n~Devin Bennett, Todd Zuniga, ~n~Thomas O'Donnell, Maria Tabia, - -[CR17_05:CRED01] -~n~ ~n~Anthony Carvalho, Lyonel Tollemache, ~n~John Notarfrancesco, Jerry Luna, ~n~Stuart Petri, Stephen Walsh, - -[CR17_06:CRED01] -~n~ ~n~Michael Carnevale, Andrea Borzuku, ~n~John Schuhmann, Alice Chuang, ~n~Mike Torok, Mayumi Kobayashi, - -[CR17_07:CRED01] -~n~ ~n~Elizabeth Satterwhite, Bruce Dugan, ~n~Eli Weissman, Phil Poli, ~n~Jaesun Celebre, Russell Lewis, - -[CR17_08:CRED01] -~n~ ~n~Sean Mackenzie, Megan Henretta, ~n~Angus Wong, Kristine Severson - -[CR17_09:CRED01] -~n~ ~n~ ~n~ ~n~Cover Art ~n~Steven Olds, Stephen Bliss, ~n~Anthony Macbain - -[CR17_10:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ROCKSTAR LONDON PD - -[CR17_11:CRED01] -~n~ ~n~ ~n~ ~n~ Chris Madgwick, Chris Wood, ~n~Daimion Pinnock, David McCarthy, ~n~Graham Ainsley, Jurgen Mol, - -[CR17_12:CRED01] -~n~ ~n~ Laura Battistuzzi, Maike Köhler, ~n~Shino Hori, Lucien King - -[CR18_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ROCKSTAR LINCOLN - -[CR18_02:CRED01] -~n~ ~n~ ~n~ ~n~QA Manager ~n~Mark Lloyd - -[CR18_03:CRED01] -~n~ ~n~ ~n~ ~n~Deputy QA Manager ~n~Tim Bates - -[CR18_04:CRED01] -~n~ ~n~ ~n~ ~n~QA Supervisor ~n~Kevin Hobson - -[CR18_05:CRED01] -~n~ ~n~ ~n~ ~n~Lead Tester ~n~Eddie Gibson ~n~ ~n~ ~n~ ~n~Secondary Lead Tester ~n~Mike Bennett - -[CR18_06:CRED01] -~n~ ~n~ ~n~ ~n~Testers ~n~Jonathan Stones, Mike Emeny, ~n~Andy Mason, Lee Johnson, ~n~Carl Young, Matthew Lunnon, ~n~Dan Goddard, Steve McGagh, ~n~Craig Reeve, Joby Luckett - -[CR18_07:CRED01] -~n~ ~n~ ~n~ ~n~Localization Team ~n~ ~n~ ~n~ ~n~Localization Supervisor ~n~Chris Welsh - -[CR18_08:CRED01] -~n~ ~n~ ~n~ ~n~Testers ~n~Antoine Cabrol, Dominic Garcia, ~n~Paolo Ceccotti, Ferruccio Cinquemani, ~n~Nicolas Klimoff, Jesús Pérez Rosales ~n~ ~n~ ~n~ ~n~IT Support ~n~Nick McVey - -[CR19_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~SPECIAL THANKS - -[CR19_02:CRED01] -~n~ ~n~ ~n~ ~n~Scooter, Ross Wallace, ~n~Steve Taylor, Kevin Wong, ~n~Kevin Bolt, John Haime, - -[CR19_03:CRED01] -~n~ ~n~Dave Watson, Thomas French, ~n~James Arthur, Martin Connor, ~n~Brendon McDonald, Julie Wemyss, - -[CR19_04:CRED01] -~n~ ~n~Raff Crolla, James Duffy, ~n~Kim Gurney, Andrew Ness, ~n~Andy Brooks (Gearbox), Alan Mcgregor, - -[CR19_05:CRED01] -~n~ ~n~Chris McCallum, Fred, Narns, ~n~Alan, Taruki, Red, ~n~Big Foot, Rita Liberator, ~n~Elliot Torres - -[CR19_06:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~THANKS - -[CR19_07:CRED01] -~n~ ~n~ ~n~ ~n~Deborah Mannis-Gardner ~n~and Mark Schwartz. ~n~Randy Acker, Karen Adams, ~n~Mark Ainley, Robin Albers, - -[CR19_08:CRED01] -~n~ ~n~Duncan Baker, Armen Boladian, ~n~Tanya Bridges, Richard Brown, ~n~Matt Brookman, Elena Byington, - -[CR19_09:CRED01] -~n~ ~n~Ed Butts, Rob Cairns, ~n~Mike Callaghan, Joseph Carlone, ~n~Kevin Carson, Jason Chin, - -[CR19_10:CRED01] -~n~ ~n~Allison Cipris, Alimah Deen, ~n~James Ellis, Helen English, ~n~Nasko Fejza, Scott Gardner, - -[CR19_11:CRED01] -~n~ ~n~Jochem Gerrits, ~n~Laurie Goldstein Thomas Golubic, ~n~Nick Guarino, Jon Handle, ~n~Millie Hysu, Robert Jo, - -[CR19_12:CRED01] -~n~ ~n~Paul Johannes, Gavin Johnson, ~n~Curtis A. Jones, Jennifer Justice, ~n~Rod Kotler, Diana La Pointe, - -[CR19_13:CRED01] -~n~ ~n~Michael Lau, Jim Long, ~n~Alex De Maegd, John Massa, ~n~Kendall Minter, Steve Morgan, - -[CR19_14:CRED01] -~n~ ~n~Giorgio Moroder, Suzanne Moss, ~n~Melissa Munana, Kirin Murphy, ~n~Kurosh Nasseri, - -[CR19_15:CRED01] -~n~ ~n~Gwen Niles Sean Ogden ~n~aka DJ Nightshade, ~n~Robin Orlowski, Jonathan Palmer, ~n~Tanvi Patel, Jane Peterer, - -[CR19_16:CRED01] -~n~ ~n~Mark Picchiotti, Rob Playford, ~n~Dan Quan, R. Ramnarayan, ~n~Mary Beth Roberts, ~n~Virgil Roberts, Lindsay Rodman, - -[CR19_17:CRED01] -~n~ ~n~Jim Romano, Craig Roseberry, ~n~Gerry Rosenblatt, RZA, ~n~Ali Samii, Alan Scholefield, - -[CR19_18:CRED01] -~n~ ~n~Christopher Scott, Suzi Scott, ~n~Fredro Scruggs, Jennefer Showalter, ~n~Alan Skiena, Saskia Slegers, - -[CR19_19:CRED01] -~n~ ~n~Fran Spero, Lem Springsteen, ~n~David Steel, Jane Ventom, ~n~Christian Wiseman, Debi Wylde, - -[CR19_20:CRED01] -~n~ ~n~Donna Young, Richie Zito - -{ reLCS - original but modified (were all CAPS) } - -[FEH_SGA] -Start New Game - -[FEH_STA] -Stats - -[FEP_STA] -Stats - -[FEH_BRI] -Brief - -[FEH_MAP] -Map - -[FET_OPT] -Options - -[FEL_ENG] -English - -[FEL_FRE] -French - -[FEL_GER] -German - -[FEL_ITA] -Italian - -[FEL_SPA] -Spanish - -[FES_NGA] -New game - -[FES_LOA] -Load game - -{ reLCS - PC lines } -[FEC_PED] -Controls On Foot - -[FEC_VEH] -Controls In Vehicle - -[FEC_FPR] -Controls For First Person - -[FEC_CMM] -Common Controls - -[FEC_PWL] -Go Left - -[FEC_PWR] -Go Right - -[FEC_PWF] -Walk Forward - -[FEC_PWT] -Walk towards camera - -[FEC_PLB] -Look Behind. - -[FEC_PFR] -Fire Weapon - -[FEC_CLE] -Cycle Weapon Left - -[FEC_CRI] -Cycle Weapon Right - -[FEC_LKT] -Lock Target - -[FEC_PJP] -Ped Jump - -[FEC_PSP] -Ped Sprint - -[FEC_PSH] -Ped Shoot - -[FEC_TLF] -Next Target To Left - -[FEC_TRG] -Next Target to Right - -[FEC_CCM] -Center Camera Behind player. - -[FEC_SZI] -Sniper Rifle Zoom In - -[FEC_SZO] -Sniper Rifle Zoom Out - -[FEC_LKL] -First Person Look Left - -[FEC_LRT] -First Person Look Right - -[FEC_LUP] -1st Person Look Up - -[FEC_LDN] -1st Person Look Down - -[FEC_LBH] -Look Behind Vehicle - -[FEC_LLF] -Look Left of Vehicle - -[FEC_LRG] -Look Right of Vehicle - -[FEC_HRN] -Horn - -[FEC_HBR] -Vehicle Handbrake - -[FEC_ACL] -Vehicle Accelerate - -[FEC_BRK] -Vehicle Brake - -[FEC_TSM] -Toggle SubMissions - -[FEC_CRD] -Change Radio Station - -[FEC_ENT] -Enter/Exit Vehicle - -[FEC_WPN] -Fire Weapon - -[FEC_PAS] -Pause - -[FEC_FPO] -1st Person Weapons - -[FEC_SMS] -Show mouse pointer - -[FEC_CMS] -Change camera mode all situations. - -[FEC_TSS] -Take Screen Shot - -[FEC_DBG] -DEBUG MENU - -[FEC_TGD] -Toggle Pad Game/Debug - -[FEC_TDO] -Turn Debug Camera Off - -[FEC_IVH] -Invert Mouse Horizontally: - -[FEC_MSL] -LMB - -[FEC_MSM] -MMB - -[FEC_MSR] -RMB - -[FEC_QUE] -??? - -[FEC_TWO] -Only Two Keyboard Keys Allowed - -[FEC_UMS] -Unique Mouse Keys only please. - -[FEC_OMS] -Only One Mouse Keys Allowed - -[FEC_UJS] -Unique Joystick buttons only please. - -[FEC_OJS] -Only One Joystick Buttons per action allowed - -[FEC_PTL] -Use LockTarget with Weapon Switch Left. - -[FEC_PTR] -Use LockTarget with Weapon Switch Right. - -[FEC_LBC] -Use Look Left With Look Right. - -[FEC_JBO] -JOY ~1~ - -[FEC_WAR] -Warning - -[FEC_OKK] -O.K. - -[FEC_DLF] -Delete Failed. - -[FEC_SVU] -Save Unsuccessful. - -[FEC_LUN] -Load Unsuccessful. File Corrupted, Please delete. - -[FEC_PAD] -Gamepad - -[FEC_JOY] -Joystick - -[FES_CSA] -Select a skin from the list below: - -[FET_HRD] -DEFAULT SETTINGS RESTORED - -[FET_MST] -MOUSE CONTROLLED STEERING: - -[FEC_STR] -NUM STAR - -[FET_MIG] -LEFT, RIGHT, MOUSEWHEEL TO ADJUST - -[FET_CIG] -BACKSPACE TO CLEAR - LMB, RETURN TO CHANGE - -[FET_DSN] -Default Player Skin.bmp - -[FET_RSO] -ORIGINAL SETTING RESTORED - -[FET_RSC] -HARDWARE NOT AVAILABLE - ORIGINAL SETTING RESTORED - -[FEA_3DH] -AUDIO HARDWARE: - -[FEA_SPK] -SPEAKERS CONFIGURATION: - -[FEM_LOD] -DRAW DISTANCE: - -[FEM_VSC] -FRAME SYNC: - -[FEM_FRM] -FRAME LIMITER: - -[FEM_MM] -MAIN MENU - -[FED_RES] -SCREEN RESOLUTION: - -[FET_CTL] -CONTROLLER SETUP - -[FEC_MSH] -MOUSE SENSITIVITY: - -[FEC_IVV] -INVERT MOUSE VERTICALLY: - -[FEC_FNC] -F~1~ - -[FEC_IRT] -INS - -[FEC_DLL] -DEL - -[FEC_HME] -HOME - -[FEC_END] -END - -[FEC_PGU] -PGUP - -[FEC_PGD] -PGDN - -[FEC_UPA] -UP - -[FEC_DWA] -DOWN - -[FEC_LFA] -LEFT - -[FEC_RFA] -RIGHT - -[FEC_NUM] -NUM - -[FEC_NMN] -NUM~1~ - -[FEC_FWS] -NUM / - -[FEC_PLS] -NUM + - -[FEC_MIN] -NUM - - -[FEC_DOT] -NUM . - -[FEC_NLK] -NUMLOCK - -[FEC_ETR] -ENT - -[FEC_SLK] -SCROLL LOCK - -[FEC_PSB] -BREAK - -[FEC_BSP] -BSPACE - -[FEC_TAB] -TAB - -[FEC_CLK] -CAPSLOCK - -[FEC_RTN] -RET - -[FEC_LSF] -LSHIFT - -[FEC_RSF] -RSHIFT - -[FEC_LCT] -LCTRL - -[FEC_RCT] -RCTRL - -[FEC_LAL] -LALT - -[FEC_RAL] -RALT - -[FEC_LWD] -LWIN - -[FEC_RWD] -RWIN - -[FEC_WRC] -WINCLICK - -[FEC_SPC] -SPC - -[WIN_TTL] -Grand Theft Auto LCS - -[WIN_95] -Grand Theft Auto LCS cannot run on Windows 95 - -[WIN_DX] -Grand Theft Auto LCS requires at least DirectX version 8.1 - -[FET_EIG] -CANNOT SET A CONTROL FOR THIS ACTION - -[FET_DAM] -DYNAMIC ACOUSTIC MODELING: - -[FEQ_SRE] -Are you sure you want to quit? All progress since the last save game will be lost. Proceed? - -[FEQ_SRW] -Are you sure you want to quit the game? - -[FET_QG] -QUIT GAME - -[FEN_STA] -START GAME - -[FET_PAU] -PAUSE MENU - -[REPLAY] -REPLAY - -[FEC_ANS] -Action - -[CVT_MSG] -Converting textures to optimal format for your video card - -[FEC_SFT] -SHIFT - -[FEH_VMP] -VIEW MAP - -[FES_DEE] -Delete Failed! Please try again. - -[FES_CMP] -Save failed! Please try again. - -[FESZ_WR] -Saving current game. Please wait... - -[FELD_WR] -Loading game. Please wait... - -[FEDL_WR] -Deleting saved game. Please wait... - -[PCRESRT] -Starting new game. Please wait... - -[FET_STI] -Standard Controls - -[FET_CTI] -Classic Controls - -[FET_PS] -Player Skin Setup - -[FEH_NA] -OPTION NOT AVAILABLE - -[FEH_MPH] -MOUSE, CURSORS TO MOVE - PGUP, PGDN, MSWHEEL TO ZOOM, L - LEGEND - -[NO_PCCD] -Please insert your GTA Liberty City Stories CD, or press ESC to cancel - -[FEH_SSA] -CURSORS TO MOVE - S TO SAVE TO FILE - -[FES_CMI] -LAST MISSION PASSED - -[FET_STS] -STATS SAVED TO 'STATS.HTML' + 'STATS.TXT' - -[WIN_VDM] -Grand Theft Auto LCS cannot find enough available video memory - -[FEC_ERI] -Error! One or more control actions are not bound to a key or button. Please check all control actions are set - -[FEC_TFU] -Turret + Lean Up - -[FEC_TFD] -Turret + Lean Down - -[FET_RIG] -SELECT A NEW CONTROL FOR THIS ACTION - -[FEA_NM3] -NO MP3 FILES FOUND - -[FEA_MPB] -MP3 VOLUME BOOST: - -[CVT_ERR] -You have run out of disk space. Please make some space on your harddisk before continuing. Press ESC to cancel. - -[FEA_ADP] -AUTO-DETECT HARDWARE - -[FEP_STG] -Start Game - -[FEP_OPT] -Options - -[FEP_QUI] -Quit Game - -[FEA_2SP] -2 Speakers - -[FEA_4SP] -More than 2 speakers - -[FEA_EAR] -Headphones - -[FEA_NAH] -NO AUDIO HARDWARE - -[FET_APP] -APPLY - -[FES_SKN] -SKIN NAME - -[FES_DAT] -DATE - -[FES_SET] -Use Skin - -[FET_DEF] -Restore Defaults - -[FESZ_QZ] -Are you sure you want to save this game? - -[FES_SCG] -Save the current game? - -[FES_LCG] -Load the game and continue playing? - -[FEC_FIR] -Fire - -[FEC_NWE] -Next weapon - -[FEC_PWE] -Previous weapon - -[FEC_FOR] -Forward - -[FEC_BAC] -Backwards - -[FEC_LEF] -Left - -[FEC_RIG] -Right - -[FEC_ZIN] -Zoom in - -[FEC_ZOT] -Zoom out - -[FEC_EEX] -Enter+exit - -[FEC_RAD] -Radio - -[FEC_SUB] -Sub-mission - -[FEC_CMR] -Change camera - -[FEC_JMP] -Jump - -[FEC_SPN] -Sprint - -[FEC_HND] -Handbrake - -[FEC_LOL] -Look left - -[FEC_LOR] -Look right - -[FEC_NTR] -Next target - -[FEC_PTT] -Previous target - -[FEC_LBA] -Look behind - -[FEC_CEN] -Center camera - -[FET_CFT] -ON FOOT - -[FET_CCR] -IN CAR - -[FET_CAC] -ACTION - -[FEC_IBT] -- - -[FEC_MXO] -MXB1 - -[FEC_MXT] -MXB2 - -[FEC_UNB] -UNBOUND - -[FEC_TFL] -Look left+Turret L - -[FEC_TFR] -Look right+Turret R - -[FEC_MWF] -MS WHEEL UP - -[FEC_MWB] -MS WHEEL DN - -[FEC_ORR] -or - -[FEC_NUS] -NOT USED - -[FEC_LUD] -Look Up - -[FEC_LDU] -Look Down - -[FEC_CMP] -COMBO: LOOK L+R - -[FEC_RED] -Redefine Controls - -[FEC_MOU] -Mouse Settings - -[FEP_RES] -Resume - -{ reLCS updates } -{ new languages } -[FEL_JAP] -JAPANESE - -[FEL_POL] -POLISH - -[FEL_RUS] -RUSSIAN - -{ new display menus } -[FET_GRA] -Graphics Setup - -[FED_MIP] -MIP MAPPING: - -[FED_AAS] -ANTI ALIASING: - -[FED_FIL] -TEXTURE FILTERING: - -[FED_BIL] -BILINEAR - -[FED_TRL] -TRILINEAR - -[FED_WND] -WINDOWED - -[FED_FLS] -FULLSCREEN - -[FEM_CSB] -CUTSCENE BORDERS: - -[FEM_SCF] -SCREEN FORMAT: - -[FEM_ISL] -MAP MEMORY USAGE: - -[FEM_LOW] -LOW - -[FEM_MED] -MEDIUM - -[FEM_HIG] -HIGH - -[FEM_2PR] -PS2 ALPHA TEST: - -[FEC_FRC] -FREE CAM: - -{ Linux joy detection } -[FEC_JOD] -DETECT JOYSTICK - -[FEC_JPR] -Press any key on the joystick of your choice that you want to use on the game, and it will be selected. - -[FEC_JDE] -Detected joystick - -{ mission restart } -[FET_RMS] -REPLAY MISSION - -[FESZ_RM] -RETRY? - -[FED_VPL] -VEHICLE PIPELINE: - -[FED_PRM] -PED RIM LIGHT: - -[FED_RGL] -ROAD GLOSS: - -[FED_CLF] -COLOUR FILTER: - -[FED_WLM] -WORLD LIGHTMAPS: - -[FED_MBL] -MOTION BLUR: - -[FEM_SIM] -SIMPLE - -[FEM_NRM] -NORMAL - -[FEM_MOB] -MOBILE - -[FED_MFX] -MATFX - -[FED_NEO] -NEO - -[FEM_PS2] -PS2 - -[FEM_XBX] -XBOX - -[FEC_IVP] -INVERT PAD VERTICALLY - -[FEM_NON] -NONE - -[DUMMY] -THIS LABEL NEEDS TO BE HERE !!! -AS THE LAST LABEL DOES NOT GET COMPILED \ No newline at end of file diff --git a/utils/gxt/american.txt b/utils/gxt/american.txt new file mode 100644 index 0000000..2507d38 --- /dev/null +++ b/utils/gxt/american.txt @@ -0,0 +1,14429 @@ +[IN_VEH] +~g~Hey! Get back in the vehicle! + +[HEY] +~g~Don't go solo, keep your posse together! + +[HELP3] +You can only sprint for short periods before becoming tired. + +[HELP4_D] +Push the right analog stick up to ~h~accelerate. + +[HELP5_D] +Pull the right analog stick back to brake, or to reverse if the vehicle has stopped. + +[HELP7_A] +Press and hold the~h~ ~k~~PED_LOCK_TARGET~ button ~w~to ~h~target~w~ with the sniper rifle. + +[HELP7_D] +Press and hold the~h~ ~k~~PED_LOCK_TARGET~ button ~w~to ~h~target ~w~with the sniper rifle. + +[HELP10] +This badge indicates you have a police wanted level. + +[HELP11] +The more badges the higher your wanted level. + +[HELP13] +Sometimes you may need to use pathways not shown on the radar. + +[TIMER] +This is a timed mission, you must complete it before the timer counts down to zero. + +[HORN] +~g~Sound the horn. + +[NOMONEY] +~g~You need more cash! + +[REWARD] +REWARD $~1~ + +[M_FAIL] +MISSION FAILED! + +[M_PASS] +MISSION PASSED! $~1~ + +[DEAD] +WASTED! + +[BUSTED] +BUSTED! + +[WEATHE1] +FORCE WEATHER SUNNY + +[WEATHE2] +FORCE WEATHER EXTRA SUNNY + +[WEATHE3] +FORCE WEATHER CLOUDY + +[WEATHE4] +FORCE WEATHER RAINY + +[WEATHE5] +FORCE WEATHER FOGGY + +[WEATHE6] +WEATHER NORMAL + +[NUMBER] +~1~ + +[LOADCAR] +LOADING VEHICLE... (PRESS L1 TO CANCEL) + +[CARSOFF] +Cars turned off. + +[CARS_ON] +Cars turned on. + +[TEXTXYZ] +Writing coordinates to file... + +[CHEATON] +Cheat mode ON + +[CHEATOF] +Cheat mode OFF + +[IMPORT1] +Go outside and wait for your vehicle. + +[PAGEB11] +Flamethrower delivered to hideout. + +[WANT_A] +You will only be arrested if you have a ~h~wanted level. + +[WANT_B] +Your ~h~wanted level~w~ is represented by the row of stars in the top right of the screen. + +[WANT_C] +You now have a ~h~wanted level~w~ of one... + +[WANT_D] +two... + +[WANT_E] +three... + +[WANT_F] +As your ~h~wanted level~w~ increases you will attract more powerful forms of law enforcement. + +[WANT_G] +When you are ~h~'busted'~w~ you are returned to the nearest police station. + +[WANT_H] +The cops will take all your weapons and some of your cash as a bribe. + +[WANT_I] +Any mission you were on will be failed. + +[WANT_J] +You will find ways of reducing your wanted level the more you play. + +[WANT_K] +If you are in a car, ~h~SPRAY SHOPS~w~ will ~h~clear your wanted level. + +[HEAL_B] +When you are ~h~'wasted'~w~ you are returned to the nearest hospital. + +[HEAL_C] +You will lose your weapons and the doctors will take some cash for patching you up. + +[HEAL_E] +You will find ways of healing or protecting yourself the more you play the game. + +[SAVE1] +Walk into the corona to ~h~Save the game~w~. You cannot save during a mission. + +[SAVE2] +Any vehicle left in this garage will be stored when the game is saved. + +[AMMU] +Go inside Ammu-Nation to buy a weapon. + +[R_TIME] +RACE TIME: + +[PROP_1] +You don't have enough cash for this property + +[PROP_2] +You cannot buy property whilst on a mission + +[IND_ZON] +Vice City Beach + +[COM_ZON] +Vice City Mainland + +[BEACH1] +Ocean Beach + +[BEACH2] +Washington Beach + +[BEACH3] +Vice Point + +[GOLFC] +Leaf Links + +[STARI] +Starfish Island + +[DOCKS] +Viceport + +[HAVANA] +Little Havana + +[HAITI] +Little Haiti + +[PORNI] +Prawn Island + +[DTOWN] +Downtown + +[VICE_C] +Vice City + +[A_PORT] +Escobar International + +[JUNKY] +Junk Yard + +[PISTOL] +Pistol + +[PYTHON] +.357 + +[UZI] +Uz-1 + +[TEC9] +Tec 9 + +[M4] +M4 + +[INGRAM] +Mac + +[MP5] +MP + +[RUGER] +Kruger + +[SNIPE] +Sniper rifle + +[GRENADE] +Grenades + +[SHOTGN1] +Shotgun + +[SHOTGN2] +S.P.A.S. 12 + +[SHOTGN3] +Stubby shotgun + +[ARMOUR] +Body Armor + +[LASER] +.308 Sniper + +[BASEBAT] +Baseball bat + +[HAMMER] +Hammer + +[SCREWD] +Screwdriver + +[CLEVER] +Meat Cleaver + +[MACHETE] +Machete + +[KNIFE] +Knife + +[KATANA] +Katana + +[CHAINSA] +Chainsaw + +[G_COST] +Cost: $~1~ + +[CAR_1] +Ambulance + +[MALIBU] +The Malibu Club + +[MANSION] +Diaz's Mansion + +[TMANS] +Vercetti Estate + +[STRIP] +The 'Pole Position Club' + +[MALL1] +North Point Mall + +[BANKINT] +El Banco Corrupto Grande + +[RANGE] +Rifle Range + +[POL_HQ] +VCPD HQ + +[INT_B] +An Old Friend + +[INTB_1] +~g~Go to the Lawyer's office. + +[LAW_1] +The Party + +[LAW_2] +Back Alley Brawl + +[LAW_3] +Jury Fury + +[LAW_4] +Riot + +[COL_1] +Treacherous Swine + +[COL_2] +Mall Shootout + +[COL_3] +Guardian Angels + +[COL_4] +Sir, Yes Sir! + +[COL_5] +All Hands On Deck! + +[COK_1] +The Chase + +[COK_2] +Phnom Penh '86 + +[COK_3] +The Fastest Boat + +[COK_4] +Supply & Demand + +[KENT_1] +Death Row + +[ASS_1] +Rub Out + +[BUD_1] +Shakedown + +[BUD_2] +Bar Brawl + +[BUD_3] +Cop Land + +[CAP_1] +Cap the Collector + +[FIN_1] +Keep your Friends Close... + +[BANK_1] +No Escape? + +[BANK_2] +The Shootist + +[BANK_3] +The Driver + +[BANK_4] +The Job + +[CNT_1] +Spilling the Beans + +[CNT_2] +Hit the Courier + +[PORN_1] +Recruitment Drive + +[PORN_2] +Dildo Dodo + +[PORN_3] +Martha's Mug Shot + +[PORN_4] +G-spotlight + +[TAX_1] +Kaufman Cabs + +[TAXI_1] +V.I.P. + +[TAXI_2] +Friendly Rivalry + +[TAXI_3] +Cabmaggedon + +[ICE_1] +Distribution + +[TEX_1] +Four Iron + +[TEX_2] +Two Bit Hit + +[TEX_3] +Demolition Man + +[PHIL_1] +Gun Runner + +[PHIL_2] +Boomshine Saigon + +[BIKE_1] +Alloy Wheels of Steel + +[BIKE_2] +Messing with the Man + +[BIKE_3] +Hog Tied + +[ROCK_1] +Love Juice + +[ROCK_2] +Psycho Killer + +[ROCK_3] +Publicity Tour + +[ROCK_4] +Love Fist!! + +[HAT_1] +Juju Scramble + +[HAT_2] +Bombs Away! + +[HAT_3] +Dirty Lickin's + +[CUB_1] +Stunt Boat Challenge + +[CUB_2] +Cannon Fodder + +[CUB_3] +Naval Engagement + +[CUB_4] +Trojan Voodoo + +[JOB_1] +Road Kill + +[JOB_2] +Waste the Wife + +[JOB_3] +Autocide + +[JOB_4] +Check Out at the Check In + +[JOB_5] +Loose Ends + +[ANSWER] +Press the ~h~~k~~PED_ANSWER_PHONE~~w~ to answer your cell phone. + +[MOB_01A] +Awright me ol'china! It's Paul. I might have a little result for you, but I need to speak to you in person. + +[MOB_01B] +I'm enjoying a little R&R at the Club Malibu. + +[MOB_01C] +Reckon you're gonna owe me a favor or two after this, sunshine. I'll see you later. + +[MOB_02A] +Ssssnniiiiffffff Hey! Hello, Tommy? Tommy! + +[MOB_02B] +We got a situation over at the Print Works. You better go and check it out. + +[MOB_02C] +Some kind of mess or other. Things are messed up. I gotta go. + +[MOB_03A] +Mr. Vercetti? I have here a signed piece of crap stating + +[MOB_03B] +that you have taken on all of BJ's Auto's debts. + +[MOB_03C] +With BJ's sudden disappearance I have no choice + +[MOB_03D] +but to hold you responsible for his financial insecurities. + +[MOB_03E] +Until this account is settled in full + +[MOB_03F] +you should consider Vice City's streets to be very unfriendly. + +[MOB_04A] +How you doin' mate? It's Paulo again. + +[MOB_04B] +Look Tommy, I forgot to mention we're going to need some extra muscle for the concert. A bit of security. + +[MOB_04C] +There's a biker gang led by Mitch Baker, it would be great publicity. Very rock and roll, baby. + +[MOB_04D] +Sort this out for me and I'll get you some back stage passes for the gig, awright? + +[MOB_05A] +Hey, it's Mitch. You did good Tommy, it's good to have the old girl back. + +[MOB_05B] +You tell Kent Paul he'll get his security for the gig. + +[MOB_05C] +You have my word on that. + +[MOB_05D] +Now keep yourself out of trouble. + +[MOB_06A] +Tommy, 'nuf dead man been chattin' about you, my dear. + +[MOB_06B] +Thought you might need something to make you feel better. So Auntie Poulet make you some stew, aye? + +[MOB_06C] +Come by me kitchen some time, ok Tommy? + +[MOB_08A] +Hey Tommy, I thought you might need some business advice. + +[MOB_08B] +Once you got an operation up and running, you'll need to drop by and take the week's cash. + +[MOB_08C] +Let the guys think they got the run of the place and they'll try shaving the profits - ok? + +[MOB_08D] +Hey, I know how to handle business, Ken, ok? + +[MOB_08E] +Ok, ok. I know, you know. I know. I was, + +[MOB_08F] +I was just, you know, telling you I know, that you know, that I know. + +[MOB_08G] +Just keeping it sharp baby! + +[MOB_08H] +Whatever, Ken, whatever... + +[MOB_09A] +Hey Leo! I got some work for you! + +[MOB_09B] +This ain't Leo. + +[MOB_09C] +Hey, if Leo knows you got his phone, he gonna kill you! + +[MOB_09E] +You killed Leo? You must have big cojones - wanna work for me?! + +[MOB_09F] +Drop by my father's cafe in Little Havana and we'll talk mano a mano. + +[MOB_10A] +Tommy! Look, I gotta ask you a favor. + +[MOB_10B] +Steve! How's filming going! + +[MOB_10C] +Fine, fine. I, heh, WE need a car chase scene, but our budget can't stretch to it. + +[MOB_10D] +I've left some wheels around town. You'll know what to do. + +[MOB_10E] +Ok Steve, I'll keep an eye out. Catch you later. + +[MOB_11A] +Howdy son, just thought I'd ring you up and give you some advice. + +[MOB_11B] +Hey, Avery. What's eating you? + +[MOB_11C] +There's a lot of opportunity in this town if you own the right real estate, you catch my drift? + +[MOB_11D] +I reckon so... + +[MOB_11E] +All I'm saying is keep your eyes open and you might find the perfect business opportunity. I'll catch y'later. + +[MOB_11F] +Later, Avery. + +[MOB12_A] +Hey Tommy, it's Avery! Now listen, I got me all tied up at the moment + +[MOB12_B] +and I have a representative of mine needs chaperoning out to the Gator Keys. + +[MOB12_C] +I'm after some land out that way, so I'm sending someone out to sweeten the deal. + +[MOB12_D] +Could you do me a favor and make sure he gets there ok? + +[MOB12_E] +Yeah, sure thing Avery. Where'd you want me to pick him up? + +[MOB12_F] +He's just finishing some business at the building site. I said you'd pick him up from there. + +[MOB12_G] +No problem. See you later, Avery. + +[MOB13_A] +Vercetti? VERCETTI!! Damn you man, you've got to help me! + +[MOB13_B] +Mr. Moffat? How's family life? + +[MOB13_C] +Damn you to hell, HELL, do hear me?! + +[MOB13_D] +Well it was nice chatting... + +[MOB13_E] +WAIT! Wait, Vercetti - Tommy, can I call you Tommy? + +[MOB13_F] +We're both businessmen, yeah? You know a good deal when you hear one, ok? + +[MOB13_G] +I don't have time to chat, get to the point. + +[MOB13_H] +MONEY. Money is the goddamned point. + +[MOB13_I] +I've escaped the coop again, but it's never long before they track me down - they think it's a damned game! + +[MOB13_J] +I'm at a pay phone somewhere in this god forsaken shit hole. + +[MOB13_K] +Get me out of here before they take me back and...and..oh go-o-od... + +[MOB13_L] +Well, I'm busy for the next - + +[MOB13_M] +No! Don't shit with me here, have a heart! No man should have to do such, such things. + +[MOB13_N] +I'm on my knees here Tommy, in the dirt begging you please... + +[MOB13_O] +I guess I could swing by that way, see if I can spot you... + +[MOB13_P] +Oh god, they're coming. For the love of Christ hurry, hurry! + +[MOB_14A] +Hey there Tommy, you're gonna love me mate. + +[MOB_14B] +A little birdy told me that Vice City SWAT Division has a deposit box at a certain rather large banking establishment, + +[MOB_14C] +where they keep all the bribes they've taken over the years, + +[MOB_14D] +like some kind of old boys' retirement fund. + +[MOB_14E] +Of course, if this information should ever help you acquire any of that cash, + +[MOB_14F] +I guess you'd feel obliged to push some of it my way? + +[MOB_14G] +I'll bear that in mind, thanks Kent. + +[MOB_14H] +It's Paul. I'm from Kent, near London, you prat. + +[MOB_14I] +My provincial English geography ain't what it was. + +[MOB15_A] +Tommy, mate, it's Paul, from Kent, + +[MOB15_B] +a couple of proper sorts have your name written all over them, down at the Malibu. + +[MOB15_C] +What are you talking about? + +[MOB15_D] +Sorts. Birds. You know. Girls. Tastey ones, don't think they're brasses or nothing. + +[MOB15_E] +You gotta come check them out. + +[MOB16_A] +Tommy, Paulo here, que pasa amigo? + +[MOB16_B] +What do you want Paul. I don't want any fake label clothes. + +[MOB16_C] +Very funny, mate, but you know I don't touch bent gear. + +[MOB16_D] +Nah, I was just calling to see if I get a part in one your movies, + +[MOB16_E] +back in England I did a lot of blue stuff, mate. + +[MOB16_F] +I'm packing more heat than you, my son. + +[MOB16_G] +Paul, thanks for the offer, I'll bear it in mind. + +[MOB16_H] +Seriously, don't forget about me, after all I done for you. + +[MOB16_I] +That's what I'm trying to forget about. + +[MOB19_A] +Tommy V, It's KP here. Kent Paul. Word on the street is people want to rip you off. + +[MOB19_B] +Keep your eye's peeled, my son. And remember, I didn't say nothing to you about this. + +[MOB_20A] +Alright, Tommy, it's Paul. I just heard from a mush that you've been a real naughty boy. + +[MOB_20B] +Somebody has taken offense to you acting like the big guy all of a sudden, giving it the big shot thing. + +[MOB_20C] +Well, don't say I never warned you or nothing. Boasting is a mug's game, son. + +[MOB_20D] +Anyway, I heard there's some price been put on your head and someone's going to have a crack at you, + +[MOB_20E] +so watch yourself, and remember me, mate. + +[MOB21_A] +Tommy, Thomas, it's Cortez. Que pasa? + +[MOB21_B] +Things are interesting. How are you, my friend? + +[MOB21_G] +I wanted to ask you about Mercedes. + +[MOB21_H] +Ok, what about her? + +[MOB21_I] +Oh Tommy, Tommy. I, I hear these stories, all these stories - I don't know what to think. + +[MOB21_K] +Maybe she thinks she can do what she likes, but Tommy, tell me, is it true? + +[MOB21_M] +Is what true? + +[MOB21_N] +These stories I hear. Is she really going to be a lawyer? + +[MOB21_O] +Oh Tommy, the shame, the shame! You know, we Cortez's are a proud family. + +[MOB21_P] +We would never allow a daughter of ours to become a lawyer. Please tell me it isn't so. I don't think I could take it. + +[MOB21_Q] +Oh Colonel, I can assure you Mercedes is never going to become a lawyer. Don't worry about it. + +[MOB21_R] +Oh thank you, Tommy. Tommy, thank you. The shame would be unbearable. She is a lady, not a parasite, you know. + +[MOB21_S] +I know, colonel. + +[MOB21_T] +Anyway, Tommy, you must excuse me, the new minister of the interior has arrived. + +[MOB21_U] +Many years ago, I killed his father in a failed coup so I must be polite. Good day, amigo. + +[MOB21_C] +Tommy, it is always a struggle here. Excuse the poor line, we have just had another failed coup. + +[MOB21_D] +The people are the most demanding mistress of all. + +[MOB21_E] +So far, we have had three revolutions and four coups since I return from Vice City. + +[MOB21_F] +Luckily, I have been promoted each time. + +[MOB21_J] +Maybe everyone is humiliating me. + +[MOB21_L] +but tell me Tommy, is it true? + +[MOB22_A] +Tommy, you are proving very useful, my friend. + +[MOB22_B] +Thanks, Cortez. What about my deal? + +[MOB22_C] +Tommy, I am working tirelessly on your behalf to ensue we get to the bottom of this trench of stinking lies and deceit, + +[MOB22_D] +you have my word on that, but in the meantime, + +[MOB22_E] +please accept the esteemed thanks of my people for your work on our behalf. + +[MOB_25A] +Tommy, Thomas it's Cortez. Look, the French are giving me all kinds of trouble, amigo. + +[MOB_25B] +Damn hypocrites. They spend a hundred years stealing from poor countries and they call me a thief! + +[MOB_25C] +I am going to need your help as soon as possible, amigo. + +[MOB_25D] +So please hurry, Tommy, I need you, all right? I hate the damn French. + +[MOB_26A] +Hello, Tommy? + +[MOB_26B] +Yeah? + +[MOB_26C] +It's Baker. I just wanted to say I really enjoyed the show. + +[MOB_26D] +Me and the boys want to thank you, and remind you, + +[MOB_26E] +you got our respect. Good day. Keep riding hard, son. + +[MOB_29A] +Hello, is this Mr. Tommy Vercetti? + +[MOB_29B] +Yes. + +[MOB_29C] +Well, I hear through the vine of grapes you the man when someone got a vermin infestation. + +[MOB_29D] +Maybe... + +[MOB_29E] +Well, I got a real vermin infestation. Haitians everywhere. + +[MOB_29F] +My name is Umberto Robina and I want you to meet me at the Cafe Robina as soon as you can, + +[MOB_29G] +'cause I tell you, these damn Haitians gone too far this time. + +[MOB_29H] +Test + +[MOB_30A] +Tommy, is Umberto Robina + +[MOB_30B] +Hey, how's the cafe? + +[MOB_30C] +Oh, wonderful. Incredible. Tommy, incredible. No wimps, Tommy, just real men, and the beautiful women! + +[MOB_30D] +Anyway, I wanted to tell you, me and Papi, to us, you Cuban. + +[MOB_30E] +You have proved yourself, man. You got big cojones. + +[MOB_30F] +Well thank you, Umberto. Nobody's said that to me since I left jail. I'll see you around. + +[MOB_33A] +Tommy, it's Phil, now cut out all the reminiscing crap and listen to me, you hear? + +[MOB_33B] +Good. I got me some extra strength boomshine nearing fermentation time and I was wondering if you'd fancy having a shot. + +[MOB_33C] +Seriously, Tommy, if you like a drink, or if you need to strip paint, this stuff'll make a man out of you. + +[MOB_33D] +Sure did out of me, even though I can't see out of one eye. I'll be waiting for you, y'hear. + +[MOB_34A] +Tommy, I really enjoyed working with you. Ain't had so much fun since the ridge in Nam, pal. + +[MOB_34B] +Anyhows, you need anything, you call on me, you hear? + +[MOB_34C] +I always remember those I served with, + +[MOB_34D] +and I am sure I can help you out, you hear? + +[MOB_35A] +Tommy, the wound is healing well. Funny thing is, + +[MOB_35B] +I have fought in 6 battle zones and always walked away without a scratch, and now this! + +[MOB_35C] +One armed Phil. Still, I got me a healthy selection of one handed fire power so I'll never be unarmed Phil, you hear. + +[MOB_35D] +Any way son, cut out the sentimental crap and go buy yourself a drink, you hear! + +[MOB_36A] +Tommy, it's Phil, I want to thank you for helping me out back there son, + +[MOB_36B] +Damn Charlie, he'll always ambush you somewhere or other, + +[MOB_36C] +Anyway the wound is healing well, and it means I'll no longer be defrauding the government on my disability check. + +[MOB_40A] +Hey Tommy, it's Sonny. How's the sun tan? + +[MOB_40B] +I ain't got no sun tan. + +[MOB_40C] +Well, you ain't got my money, either, so I'm wondering to myself, + +[MOB_40D] +what are you doing? So, tell me, Tommy, what are you doing? + +[MOB_40E] +I'm looking for the money, Sonny. Don't worry. + +[MOB_40F] +I am worrying, Tommy, that's my style, + +[MOB_40G] +because I seem to have this problem in my life with unreliable people. + +[MOB_40H] +Don't be an unreliable person, Tommy, please. + +[MOB_40I] +Do us both a favor. I'm looking forward to hearing from you. + +[MOB_41A] +Tommy, remember me? + +[MOB_41B] +Hello Sonny. + +[MOB_41C] +That's right, Sonny. We're old friends, + +[MOB_41D] +You never write me, you never call. Don't you want to be friends no more? + +[MOB_41E] +I've been busy trying to sort things out. You didn't give me a lot of support down here, Sonny. + +[MOB_41F] +Oh, my fault is it? We'll I've heard you been busy all right. + +[MOB_41G] +Busy killing drugs barons. Busy taking over. + +[MOB_41H] +Don't forget about us, Tommy, 'cause I can assure you, I ain't forgotten about you. + +[MOB_42A] +Tommy. + +[MOB_42B] +Sonny. + +[MOB_42C] +Obviously you are suffering from hearing problems, so I'll try again. + +[MOB_42D] +Where's the goddamned money, where's the goddamned stuff, and where's my cut of your new action? + +[MOB_42E] +You are making an idiot out of me, Tommy, and I'm not laughing yet. + +[MOB_43A] +Tommy, Tommy, Tommy, I had Sonny on the phone, ok, are you with me?. + +[MOB_43B] +I don't know about you, but there's something about a man threatening to murder my family + +[MOB_43C] +which really scares the crap out of me. What are you going to do? + +[MOB_43D] +Ken, take it easy. + +[MOB_43E] +I AM calm, calm as a man can be when he's fearing for his life! + +[MOB_43F] +Stay off the idiot fuel and look after yourself. + +[MOB_43G] +No one's gonna take us out. I'll see you later. + +[MOB_43H] +I am calm. Don't I sound calm? Must be impending death that is doing this to my voice. + +[MOB45_A] +Tommy We gotta talk about stuff. + +[MOB45_B] +What's the problem Lance? + +[MOB45_C] +It's you, my friend, I feel you're not giving me a fair slice. + +[MOB45_D] +And more than that, you been embarrassing me in front of the boys. I can't have that. + +[MOB45_E] +Lance, it ain't like that. You've been making mistakes. + +[MOB45_F] +Tommy, I'm not your message boy. I'm not your running boy. + +[MOB45_G] +Lance, don't screw up, and we won't have any problems. I screw up, you can lay into me any time. + +[MOB45_H] +Tommy, I've done everything for you, you treat me like a fool. Don't do that. + +[MOB45_I] +Lance, I won't rip you off or stab you in the back, okay? + +[MOB45_J] +Just take it easy. This is tough enough without you getting all emotional on me. + +[MOB45_K] +Trust me. Do you hear me, do you hear me? + +[MOB45_L] +I hear you, Tommy, but I can't take this much more. + +[MOB45_M] +Lance, don't be like this. Now I'm warning you. + +[MOB45_N] +Do you hear me? Just relax, take a few days off. Okay? I'll talk to you. + +[MOB46_A] +Yo, Tommy! It's Lance. + +[MOB46_B] +Yeah? + +[MOB46_C] +Oh, nice to hear from you, Lance. Come on, man, be cool, be cool. + +[MOB46_D] +I'm in the middle of something. What do you want? + +[MOB46_E] +Nothing. Just to say, you know. Look Tommy, we can do this thing. + +[MOB46_F] +You and me, no problem. You know what I mean? + +[MOB46_G] +We're going to have to do it, 'cause otherwise, we're going to be dead, Lance. + +[MOB46_H] +We're in too far now. But thanks for the call. I'll speak to you later. + +[MOB_47A] +Tommy, Lance, we got big problems. Come down here. Right away. + +[MOB52_A] +Hey Leo, I think we got a buyer for Diaz's merchandise. + +[MOB52_B] +You gotta give him a ring, man, set up the deal, you know? + +[MOB52_C] +Where are you now? + +[MOB52_D] +You ok Leo? You sound kinda different. + +[MOB52_E] +Just tell me where you are. + +[MOB52_F] +Who the hell is this? Put Leo on, man! + +[MOB52_G] +Leo's gone away for a while, he left me in charge. + +[MOB52_H] +Screw you, man! + +[MOB54_A] +Hiya Tommy! + +[MOB54_B] +Hi Mercedes, howyadoin'? + +[MOB54_C] +I got a new apartment up in Vice Point + +[MOB54_D] +- thought you might want to drop by sometime. + +[MOB54_E] +I'd love to. I'll catch you later. + +[MOB55_A] +Tommy, it's me. + +[MOB55_B] +Hi Mercedes. + +[MOB55_C] +Tommy, I so bored, when we going to have some fun? + +[MOB55_D] +What do you mean? + +[MOB55_E] +Well, I know you're busy fighting and killing and corrupting people, + +[MOB55_F] +but I just want to have some fun. So don't forget about me, you hear? + +[MOB56_A] +Tommy, I hear you kill Ricardo Diaz. + +[MOB56_B] +there was an unfortunate fire at his mansion. + +[MOB56_C] +I think he burnt to death in an acrylic shirt. + +[MOB56_D] +Tommy, I so proud of you. I knew you were a real man. + +[MOB56_E] +He awful trouser stain of a man, you make me so proud to be your friend. + +[MOB56_F] +No, I know you going to be busy trying to take over this town, + +[MOB56_G] +but don't forget about me, you hear? + +[MOB57_A] +It's merceedes. I no longer love you Tommy. + +[MOB57_B] +I no longer do. Honest. 'cause you no longer nice to Mercedes. + +[MOB57_C] +You no longer treat her like a lady. You ignore me and I hate you. + +[MOB57_D] +I insist you come to see me right away! + +[MOB58_A] +Tommy. + +[MOB58_B] +Hey Mercedes. + +[MOB58_C] +Hey indeed Mr. Tough Guy. I real angry with you Tommy. + +[MOB58_D] +Never make me hang out with Jezz Torrent again. + +[MOB58_E] +He is pathetic. Half way through he starts crying about his doggie + +[MOB58_F] +that died when he was 7 years old and that his mommy never loved him. + +[MOB58_G] +And Tommy. He wear a wig and a bra in private. + +[MOB58_H] +I not very happy with you! + +[MOB59_A] +Ooh Tommy, its Mercedes. + +[MOB59_B] +I just want to say, I have so much fun on that film set. + +[MOB59_C] +Anything else you have like that, you let me know. + +[MOB59_D] +I really mean that. I always wanted to be an actress. + +[MOB59_E] +I think I learn a lot about the dramatic process. + +[MOB59_F] +It so enlightening! Thank you. Thank you. I see you real soon. Adios. + +[MOB_99] +Get to the payphone at location. + +[MOB_98] +Get to the payphone at location. + +[MOB_97] +Get to the payphone at location. + +[MOB_96] +Get to the payphone at location. + +[MOB_95] +Get to the payphone at location. + +[A_TIME] ++~1~ seconds + +[DODO_FT] +You flew for ~1~ seconds! + +[GA_8] +Use the detonator to activate the bomb. + +[GA_10] +Nice one. Here's your $~1~ + +[GA_11] +We got these wheels already. It's worthless to us! + +[GA_12] +Bomb armed + +[GA_13] +Delivered like a pro. Complete the list and there'll be a bonus for you. + +[GA_14] +All the cars. NICE! Here's a little something. + +[GA_15] +Hope you like the new color. + +[GA_16] +Respray is complementary. + +[GA_19] +We're not interested in that model. + +[GA_20] +We got more of these than we can shift. Sorry man, no deal. + +[CHASE] +Highest media attention + +[CHASE1] +Ignored + +[CHASE2] +Boring + +[CHASE3] +Vaguely interesting + +[CHASE4] +Local paper Page 7 + +[CHASE5] +Front page of local paper + +[CHASE6] +Vice Courier Page 2 + +[CHASE7] +Vice Courier Front page + +[CHASE8] +Local TV 3am + +[CHASE9] +Local TV news + +[CHASE10] +Local TV Live coverage + +[CHASE11] +UFA Today page 12 + +[CHASE12] +UFA Today page 4 + +[CHASE13] +Picture in UFA Today + +[CHASE14] +National TV 4am + +[CHASE15] +National TV news + +[CHASE16] +National TV live coverage + +[CHASE17] +International news + +[CHASE18] +National crisis + +[CHASE19] +International crisis + +[CHASE20] +World event + +[CHASE21] +Stuff of legends + +[CR_1] +Crane cannot lift this vehicle. + +[PU_MONY] +You don't have enough cash. + +[CO_ALL] +You got all of them. Here's a little something... + +[FEM_ON] +ON + +[FEM_OFF] +OFF + +[FEM_YES] +Yes + +[FEM_NO] +No + +[FEC_NA] +NA + +[FEC_CWL] +Cycle Weapon left + +[FEC_CWR] +Cycle Weapon right + +[FEC_LOF] +Look forward + +[FEC_TAR] +Target + +[FEC_MOV] +Movement + +[FEC_CAM] +Camera modes + +[FEC_PAU] +Pause + +[FEC_ENV] +Enter vehicle + +[FEC_JUM] +Jump + +[FEC_ATT] +Attack or Fire weapon + +[FEC_RUN] +Run + +[FEC_FPC] +First person camera + +[FEC_LL] +Look left + +[FEC_LB] +Look behind + +[FEC_LR] +Look right + +[FEC_HOR] +Horn + +[FEC_VES] +Vehicle control + +[FEC_BRA] +Brake or Reverse + +[FEC_HAB] +Hand brake + +[FEC_CAW] +Car weapon + +[FEC_ACC] +Accelerate + +[FEC_CCF] +Configuration + +[FEC_CF1] +Setup 1 + +[FEC_CF2] +Setup 2 + +[FEC_CF3] +Setup 3 + +[FEC_CF4] +Setup 4 + +[FEC_CDP] +Controller Display + +[FEC_ONF] +On foot + +[FEC_INC] +In car + +[FEC_VIB] +Vibration + +[FEL_ENG] +English + +[FEL_FRE] +French + +[FEL_GER] +German + +[FEL_ITA] +Italian + +[FEL_SPA] +Spanish + +[FED_DBG] +Menu Debug + +[FED_RID] +Reload IDE + +[FED_RIP] +Reload IPL + +[FED_PAH] +Parse Heap + +[FED_DFL] +CTheScripts::DbgFlag + +[FED_DLS] +Big White Debug Light Switched + +[FED_SPR] +Show Ped Road Groups + +[FED_SCR] +Show Car Road Grups + +[FED_SCZ] +Show Cull Zones + +[FED_DSR] +Debug Streaming Requests + +[FED_SCP] +gbShowCollisionPolys + +[PL_STAT] +Player stats + +[PE_WAST] +People you've wasted + +[PE_WSOT] +People wasted by others + +[TM_BUST] +Times busted + +[GNG_WST] +Gang members wasted + +[DED_CRI] +Criminals wasted + +[PER_COM] +Percentage completed + +[KGS_EXP] +Kgs of explosives used + +[ACCURA] +Accuracy + +[ST_WEAP] +Weapon Budget + +[ST_PROP] +Property Budget + +[ST_AUTO] +Auto Repair and Painting Budget + +[ST_PHOT] +Photographs Taken + +[ST_LOAN] +Visits From Loan Sharks + +[ST_STOR] +Stores Knocked Off + +[ST_MOVI] +Movie Stunts + +[ST_PIZZ] +Pizza's Delivered + +[ST_GARB] +Garbage Pickups Made + +[TOP_SHO] +Top Shooting Range Score + +[SHO_RAN] +Shooting Range Rank + +[SEAGULL] +Seagulls Sniped + +[PROPOWN] +Property Owned + +[ST_TIME] +Playing Time + +[ST_FTIM] +Flight hours + +[ST_PRAN] +Pilot Ranking + +[ST_RAN0] +Learner + +[ST_RAN1] +Navigator + +[ST_RAN2] +Co Pilot + +[ST_RAN3] +Junior + +[ST_RAN4] +Competent + +[ST_RAN5] +Senior + +[ST_RAN6] +Ace + +[ST_RAN7] +Red baron + +[ST_DRWN] +Fishes Fed + +[ST_FASH] +Fashion Budget + +[ST_DAMA] +Property Destroyed + +[TM_DED] +Hospital visits + +[DAYSPS] +Days passed in game + +[NUMSHV] +Safehouse visits + +[MXCARD] +Max. INSANE Jump dist. (ft) + +[MXCARJ] +Max. INSANE Jump height (ft) + +[MXCARDM] +Max. INSANE Jump dist. (m) + +[MXCARJM] +Max. INSANE Jump height (m) + +[MXFLIP] +Max. INSANE Jump flips + +[MXJUMP] +Max. INSANE Jump rotation + +[BUL_FIR] +Bullets fired + +[BUL_HIT] +Bullets that hit + +[SPRAYIN] +Sprayings + +[BSTSTU] +Best INSANE stunt so far + +[INSTUN] +Insane stunt + +[PRINST] +Perfect insane stunt + +[DBINST] +Double insane stunt + +[DBPINS] +Perfect double insane stunt + +[TRINST] +Triple insane stunt + +[PRTRST] +Perfect triple insane stunt + +[QUINST] +Quadruple insane stunt + +[PQUINS] +Perfect quadruple insane stunt + +[NOSTUC] +No INSANE stunts completed + +[NOUNIF] +Unique Jumps completed + +[NMISON] +Mission attempts + +[PASDRO] +Passengers dropped off + +[MONTAX] +Cash made in taxi + +[DAYPLC] +Daily police spending + +[CRIMRA] +Criminal rating: + +[STPR_1] +The Malibu + +[STPR_2] +Print Works + +[STPR_3] +Film Studio + +[STPR_4] +Ice Cream Factory + +[STPR_5] +Car Showroom + +[STPR_6] +Taxi Company + +[STPR_7] +Boatyard + +[SET1EN] +SetUp 1. Enabled + +[GMSAVE] +Save Game + +[FEDS_TB] +Back + +[FEST_OO] +out of + +[FEC_TUC] +Turret control + +[FEC_RS3] +Radio station cycle (L3 button) + +[FEC_HO3] +Horn (L3 button) + +[C_FAIL] +Vigilante mission ended! + +[C_ESCP] +~r~The suspect has escaped! + +[C_VIGIL] +VIGILANTE BONUS!! + +[HEAL_A] +Your ~h~health~w~ is displayed in orange in the top right of the screen. + +[WRONGCD] +Incorrect disc. Please insert correct disc. + +[NOCD] +The disc tray is empty. Please insert disc. + +[OPENCD] +The disc tray is open. Please close the disc tray. + +[CDERROR] +Error reading the Grand Theft Auto: Vice City DVD + +[RESTART] +Starting new game + +[GA_3] +No more freebies. $100 to respray! + +[GA_1] +Whoa! I don't touch nothing THAT hot! + +[GA_1A] +Come back when you're not so busy... + +[HELP9_C] +Press the~h~ ~k~~PED_FIREWEAPON~ ~w~button to ~h~fire~w~ the sniper rifle. + +[TAXI2] +~r~You're out of time! + +[PAGEB13] +Health delivered to hideout + +[PAGEB14] +Adrenaline delivered to hideout + +[FESZ_CA] +Cancel + +[FES_NGA] +New Game + +[FES_CAN] +Cancel + +[FESZ_QL] +All unsaved progress in your current game will be lost. Proceed with loading? + +[FESZ_QD] +Proceed with deleting this save game? + +[FESZ_QO] +Proceed with overwriting this save game? + +[T4X4_1] +'PCJ Playground' + +[BMX_1] +'Trial by Dirt' + +[BMX_2] +'Test Track' + +[BMXFAIL] +~r~You failed to set a new record! + +[BMX_REC] +~g~New Record Set:~1~ !! + +[T4X4_3] +'GRIPPED!' + +[MM_1] +'CONE CRAZY' + +[T4X4_F] +~r~You bailed! Too tough for you?! + +[LANDSTK] +Landstalker + +[IDAHO] +Idaho + +[STINGER] +Stinger + +[LINERUN] +Linerunner + +[PEREN] +Perennial + +[SENTINL] +Sentinel + +[RIO] +Rio + +[PATRIOT] +Patriot + +[FIRETRK] +Firetruck + +[TRASHM] +Trashmaster + +[STRETCH] +Stretch + +[MANANA] +Manana + +[INFERNS] +Infernus + +[VOODOO] +Voodoo + +[PONY] +Pony + +[MULE] +Mule + +[CHEETAH] +Cheetah + +[AMBULAN] +Ambulance + +[FBICAR] +FBI Washington + +[MOONBM] +Moonbeam + +[ESPERAN] +Esperanto + +[TAXI] +Taxi + +[WASHING] +Washington + +[BOBCAT] +Bobcat + +[WHOOPEE] +Mr. Whoopee + +[BFINJC] +BF Injection + +[HUNTER] +Hunter + +[POLICAR] +Police + +[ENFORCR] +Enforcer + +[SECURI] +Securicar + +[BANSHEE] +Banshee + +[PREDATR] +Predator + +[BUS] +Bus + +[RHINO] +Rhino + +[BARRCKS] +Barracks OL + +[CUBAN] +Cuban Hermes + +[HELI] +Helicopter + +[DODO] +Dodo + +[COACH] +Coach + +[CABBIE] +Cabbie + +[STALION] +Stallion + +[RUMPO] +Rumpo + +[RCBANDT] +RC Bandit + +[ROMERO] +Romero's Hearse + +[PACKER] +Packer + +[ADMIRAL] +Admiral + +[SQUALO] +Squalo + +[SEASPAR] +Sea Sparrow + +[PIZZABO] +Pizza Boy + +[GANGBUR] +Gang Burrito + +[TROPIC] +Tropic + +[SPEEDER] +Speeder + +[REEFER] +Reefer + +[FLATBED] +Flatbed + +[YANKEE] +Yankee + +[CADDY] +Caddy + +[ZEBRA] +Zebra Cab + +[TOPFUN] +Top Fun + +[SKIMMER] +Skimmer + +[PCJ600] +PCJ 600 + +[PHOENIX] +Phoenix + +[FAGGIO] +Faggio + +[FREEWAY] +Freeway + +[RCBARON] +RC Baron + +[RCRAIDE] +RC Raider + +[GLENDAL] +Glendale + +[OCEANIC] +Oceanic + +[SANCHEZ] +Sanchez + +[SPARROW] +Sparrow + +[LOVEFIS] +Love Fist + +[COASTG] +Coast Guard + +[DINGHY] +Dinghy + +[HERMES] +Hermes + +[SABRE] +Sabre + +[SABRETU] +Sabre Turbo + +[WALTON] +Walton + +[REGINA] +Regina + +[COMET] +Comet + +[DELUXO] +Deluxo + +[BURRITO] +Burrito + +[SPAND] +Spand Express + +[MARQUIS] +Marquis + +[BAGGAGE] +Baggage Handler + +[KAUFMAN] +Kaufman Cab + +[COASTMA] +Coastguard Maverick + +[MAVERIC] +Maverick + +[RANCHER] +Rancher + +[FBIRANC] +FBI Rancher + +[VIRGO] +Virgo + +[GREENWO] +Greenwood + +[HOTRING] +Hotring Racer + +[BLISTAC] +Blista Compact + +[FEST_DF] +Dist. traveled on foot (miles) + +[FEST_DC] +Dist. traveled by car (miles) + +[FESTDFM] +Distance traveled on foot (m) + +[FESTDCM] +Distance traveled by car (m) + +[TOT_DIS] +Total distance traveled (miles) + +[TOTDISM] +Total distance traveled (m) + +[DISTHEL] +Dist. traveled by helicopter (miles) + +[DISTHEM] +Distance traveled by helicopter (m) + +[DISTBOA] +Dist. traveled by boat (miles) + +[DISTBOM] +Distance traveled by boat (m) + +[FEST_LS] +People saved in an Ambulance + +[FEST_CC] +Criminals killed on Vigilante Mission + +[FEST_FE] +Total fires extinguished + +[FEST_RP] +Rampages passed + +[FEST_MP] +Missions passed + +[FEST_BB] +Bling-bling Scramble: + +[FEST_H0] +Most checkpoints + +[FEST_GC] +Gang Cars Totaled: + +[FEST_H1] +Diablo destruction + +[FEST_H2] +Mafia Massacre + +[FEST_H3] +Casino Calamity + +[FEST_H4] +Rumpo Wrecker + +[USJ] +UNIQUE STUNT BONUS! + +[RATNG1] +Upstanding Citizen + +[RATNG2] +Nobody Special + +[RATNG3] +Litterer + +[RATNG4] +Shoplifter + +[RATNG5] +Vandal + +[RATNG6] +Do boy + +[RATNG7] +Pickpocket + +[RATNG8] +Clepto + +[RATNG9] +Snitch + +[RATNG10] +Rat + +[RATNG11] +Leece + +[RATNG12] +Scam Artist + +[RATNG13] +Trickster + +[RATNG14] +Numbers Runner + +[RATNG15] +Hustler + +[RATNG16] +Bully + +[RATNG17] +Riff-Raff + +[RATNG18] +Scalawag + +[RATNG19] +Ruffian + +[RATNG20] +Outlaw + +[RATNG21] +Thug + +[RATNG22] +Drop Man + +[RATNG23] +SA Goon + +[RATNG24] +Goon + +[RATNG25] +Jailbird + +[RATNG26] +Ex-Con + +[RATNG27] +Felon + +[RATNG28] +Bag Man + +[RATNG29] +Wiseguy + +[RATNG30] +Wheelman + +[RATNG31] +Hired Muscle + +[RATNG32] +Hatchetman + +[RATNG33] +Headhunter + +[RATNG34] +Enforcer + +[RATNG35] +Ronin + +[RATNG36] +Fixer + +[RATNG37] +Hitman + +[RATNG38] +Associate + +[RATNG39] +Butcher + +[RATNG40] +Cleaner + +[RATNG41] +Assassin + +[RATNG42] +Consigliere + +[RATNG43] +Made Man + +[RATNG44] +Right-Hand Man + +[RATNG45] +Executioner + +[RATNG46] +Lieutenant + +[RATNG47] +Underboss + +[RATNG48] +Capo + +[RATNG49] +Boss + +[RATNG50] +Kingpin + +[RATNG51] +Don + +[RATNG52] +Godfather + +[PAGE_00] +. + +[WELCOME] +WELCOME TO + +[TSCORE] +EARNINGS: $~1~ + +[PBOAT_2] { reVC update } +Press the ~h~~k~~VEHICLE_FIREWEAPON~ ~w~button to fire the boat cannons. + +[HJSTAT] +Distance: ~1~.~1~m Height: ~1~.~1~m Flips: ~1~ Rotation: ~1~_ + +[HJSTATW] +Distance: ~1~.~1~m Height: ~1~.~1~m Flips: ~1~ Rotation: ~1~_ And what a great landing! + +[ATUTOR] +Press the ~h~~k~~TOGGLE_SUBMISSIONS~ ~w~button to toggle Paramedic missions on or off. + +[FEST_HA] +Highest Paramedic Mission level + +[C_KILLS] +CRIMINALS KILLED: ~1~ + +[HJSTATF] +Distance: ~1~ft Height: ~1~ft Flips: ~1~ Rotation: ~1~_ + +[HJSTAWF] +Distance: ~1~ft Height: ~1~ft Flips: ~1~ Rotation: ~1~_ And what a great landing! + +[CINCAM] +Cinematic Camera + +[RC4] +'RUMPO RAMPAGE' + +[LEGAL] +~g~Eliminate the criminal threat! + +[GA_2] +New engine and paint job. The cops won't recognize you! + +[HELP15] +When on foot press the ~h~~k~~PED_LOOKBEHIND~ ~w~button to ~h~look behind~w~. + +[FEC_LB4] +Look behind (R3 button) + +[PERPIC] +Hidden Packages found + +[CO_ONE] +Hidden Package ~1~ of ~1~ + +[GA_21] +You cannot store any more cars in this garage. + +[CHEAT1] +Cheat activated + +[CHEAT2] +Weapon cheat + +[CHEAT3] +Health cheat + +[CHEAT4] +Armor cheat + +[CHEAT5] +Wanted level cheat + +[CHEAT6] +Money cheat + +[CHEAT7] +Weather cheat + +[USJ_ALL] +ALL UNIQUE STUNTS COMPLETED! + +[JAN] +Jan + +[FEB] +Feb + +[MAR] +Mar + +[APR] +Apr + +[MAY] +May + +[JUN] +Jun + +[JUL] +Jul + +[AUG] +Aug + +[SEP] +Sept + +[OCT] +Oct + +[NOV] +Nov + +[DEC] +Dec + +[DEFDT] +--:---:---- --:--:-- + +[BONUS] +~g~BONUS $~1~ + +[HORN1] +Press the ~h~~k~~VEHICLE_HORN~ ~w~button to activate the ~h~horn. + +[HORN2] +Press the ~h~~k~~VEHICLE_HORN~ ~w~button to activate the ~h~horn + +[HORN3] +Press the ~h~~k~~VEHICLE_HORN~ ~w~button to activate the ~h~horn + +[FEC_EXV] +Enter and exit vehicle + +[TAXI_M] +'TAXI DRIVER' + +[COP_M] +'VIGILANTE' + +[FIRE_M] +'FIREFIGHTER' + +[AMBUL_M] +'PARAMEDIC' + +[HJ_IS] +INSANE STUNT BONUS: $~1~ + +[HJ_PIS] +PERFECT INSANE STUNT BONUS: $~1~ + +[HJ_DIS] +DOUBLE INSANE STUNT BONUS: $~1~ + +[HJ_PDIS] +PERFECT DOUBLE INSANE STUNT BONUS: $~1~ + +[HJ_TIS] +TRIPLE INSANE STUNT BONUS: $~1~ + +[HJ_PTIS] +PERFECT TRIPLE INSANE STUNT BONUS: $~1~ + +[HJ_QIS] +QUADRUPLE INSANE STUNT BONUS: $~1~ + +[HJ_PQIS] +PERFECT QUADRUPLE INSANE STUNT BONUS: $~1~ + +[FESZ_LS] +Load Successful. + +[HELI_1A] +Test your skills with the Sparrow, see how quickly you can complete the course. + +[HELI_1B] +Course Complete! $ ~1~ + +[HELIODD] +Helicopter odd jobs + +[LAW] +THE LAWYER MISSIONS + +[LAW1_1] +~g~Go get some new threads from Rafael's clothes shop. + +[LAW4_6] +Burn the management! + +[LAW4_7] +Kill the bosses! + +[LAW4_8] +Fight, Fight, Fight, Fight. + +[LAW4_9] +More Holiday, Less Work! + +[LAW4_11] +Fight! Fight! Fight! Fight! + +[LAW4_12] +Viva la revolution! + +[GENERAL] +THE COLONEL MISSIONS + +[GEN3_4] +Tommy Vercetti. Let's go... + +[GEN3_13] +What's the matter with you man?! Get on the roof across the yard before they turn up! + +[GEN3_17] +Sheeit! You trying to kill me?! + +[GEN3_21] +~g~He got Diaz's money! Chase him down and get it back! + +[GEN3_24] +~r~Diaz died! You failed to protect him! + +[GEN3_26] +~r~You shot Diaz! + +[GEN3_27] +~r~You shot Diaz's bodyguards! + +[GEN3_31] +~g~Now go to the drop off and watch over Diaz. + +[GEN3_32] +~g~Get to your vantage point on the roof of the building opposite Lance. + +[COKE] +THE COKE BARON MISSIONS + +[COK1_3] +Hope you fall and break your neck! + +[COK1_6] +I'm sick of these pricks. + +[COK2_7] +See those marker boys? Try taking out the lights! + +[COK2_10] +You sure is better at shooting than talking. + +[COK2_11] +Thanks. You're a real charmer yourself. + +[COK2_12] +I Know, Tommy. + +[COK2_18] +You cool with Kenny Loggins + +[COK2_19] +Hell, I love this record + +[COK2_26] +~r~You killed Lance! + +[COK3_1] +Don't shoot, dude! + +[COK3_2] +What's in this stuff? + +[COK3_3] +He's taking the boat. Bummer. + +[COK3_4] +Help! Some square's stealing the boat, man! + +[COK4_W] +Uugghh! That's the last of them. + +[COK4_X] +I'm going to start her up. + +[COK4_Y] +I think we've got some new friends. + +[COK4_2] +Yeah. + +[COK4_6] +Do you know where we're going? + +[COK4_7] +Are we lost? + +[COK4_8] +We got some competition! + +[COK4_9] +Take 'em out! + +[COK4_9A] +It's time for the Lance Vance Dance! + +[COK4_10] +They're matchwood! And fish food. + +[COK4_11] +We made it! Those other boats ain't VIP class. + +[COK4_17] +They're getting desperate! + +[COK4_18] +My damn feet are wet! WE'RE TAKING ON WATER! + +[COK4_21] +Bridge coming up! + +[COK4_22] +Bail out, she's about to blow! + +[COK4_23] +Good shooting. + +[COK4_29] +~r~You killed Lance! + +[ASS1_6] +Go on Tommy, I'll be ok! + +[ASS1_7] +Eat this, you murdering bastards!! + +[ASS1_8] +I'm pinned down! + +[ASS1_9] +I got you covered Tommy! + +[ASS1_10] +Hey, this is a real nice herbaceous border + +[ASS1_11] +Hey Tommy, can my room have a view of the bay? + +[ASS1_12] +Beautiful high ceilings in here... + +[ASS1_3] +Lance! I need cover! + +[ASS1_4] +Diaz must be inside! + +[ASS1_5] +Lance! + +[TAXWAR] +TAXI WAR MISSIONS + +[NOTAXI] +~g~You need a Kaufman Cab to activate this mission. + +[TAXW1_5] +~g~You need to be in a Kaufman cab! + +[TAX2_4] +Go on, Tommy. + +[TAX2_5] +Beat the hell out of him. + +[TAX2_6] +He hasn't even got a license. + +[TAX2_7] +Damn limo services. + +[TAXW3_1] +~g~Go and pick up Mercedes. + +[RACE1] +~g~3..2..1.. GO GO GO! + +[RACE2] +~g~3 + +[RACE3] +~g~2 + +[RACE4] +~g~1 + +[RACE5] +~g~GO! + +[FIRST] +~b~1st + +[SECOND] +~b~2nd + +[THIRD] +~b~3rd + +[FOURTH] +~b~4th + +[RACETM] +~b~RACE TIME: ~1~:~1~ + +[RACETM2] +~b~RACE TIME: ~1~:0~1~ + +[RACEFA] +~r~You failed to win the race! + +[TEX1_5] +~r~He got away! + +[SEG3_2] +~g~Get to the van that contains the RC Raider and remote timed bombs. + +[SEG3_3] +~g~You must use the RC RAIDER to transport 4 bombs to 4 target zones on the building site. + +[SERG3_5] +~g~You can only carry one bomb at a time and cannot pick up successfully planted bombs. + +[SEG3_7] +~g~Once you have dropped the FIRST bomb successfully in a target zone the detonation timer will start; you must then drop all the bombs within this time period. + +[SEG3_8] +~g~All 4 bombs must be located at the 4 target zones to pass the mission and demolish the building. + +[SEG3_9] +~g~You hit the target! 3 more to go. + +[SEG3_10] +~g~You hit the target! 2 more to go. + +[SEG3_11] +~g~You hit the target! Just 1 more to go! + +[SEG3_12] +~r~You missed the target! Go get a bomb! + +[SEG3_13] +~g~Drop the bomb at a target zone. + +[SEG3_14] +~r~You ran out of time and failed to demolish the building. + +[SEG3_15] +~r~Your RC Raider has been destroyed! How you gonna transport the bombs now? + +[AVERY] +AVERY MISSIONS + +[ASM] +ASSASSIN MISSIONS + +[ASM_1] +ASSASSIN MISSION 1 + +[ASM1_1] +~g~Mr. Teal, your help in eradicating those out-of-towners was invaluable to business. I have more work for you with a more 'hands-on' approach. Your next job is taped under the phone. + +[ASM1_2] +~g~Get to the payphone outside the Mall in Washington. + +[ASM1_3] +~g~Carl Pearson, Pizza Delivery Man. He must not complete his deliveries. + +[ASM1_4] +~g~Kill the Pizza Delivery Man before he completes his deliveries. + +[ASM_2] +ASSASSIN MISSION 2 + +[ASM_3] +ASSASSIN MISSION 3 + +[ASM3_A] +TEXT NO LONGER NEEDED + +[ASM3_B] +TEXT NO LONGER NEEDED + +[ASM3_1] +~g~Go and get the weapon Mr. Black has left for you. + +[ASM3_2] +~g~Don't get too close to the target or he may spot you! + +[ASM3_3] +~g~For a quick safe kill find a secluded spot nearby with a clear view of your target. + +[ASM3_4] +~g~He's seen you! Better waste him any way you can! + +[ASM3_5] +~g~Marcus Hammond is working on an advertising board in Washington. + +[ASM3_6] +~g~Franco Carter is working for DBP Security off Ocean Drive. + +[ASM3_7] +~g~Dick Tanner is situated near the Jewelry shop in Vice Point. + +[ASM3_8] +~g~Nick Kong is situated near Washington Beach. + +[ASM3_9] +~g~Stuntman Driver is situated in Washington. + +[ASM3_10] +~r~You failed to kill them all. + +[ASM_4] +ASSASSIN MISSION 4 + +[ASM4_1] +~g~Go get the rifle left for you in the foliage outside the airport terminal. + +[ASM4_2] +~g~Don't miss your target or you may alert his bodyguards, and remember keep your distance so he does not spot you. + +[ASM4_3] +~g~Watch the woman on the balcony above the check-in desks inside the airport terminal. DO NOT KILL HER. + +[ASM4_4] +~g~Kill the man she hands the briefcase to but only AFTER HE PICKS IT UP. Then retrieve the briefcase and take it to Ammu-Nation in Downtown. + +[ASM4_5] +~g~Get the briefcase! + +[ASM4_6] +~g~Take the briefcase to Ammu-Nation in Downtown. + +[ASM4_7] +~r~You killed the woman, you fool! + +[ASM4_8] +~r~The target heard you firing your weapon! The deal is off! + +[ASM4_9] +~r~The target has boarded his flight! + +[ASM4_11] +~r~The target has seen you! The deal is off! + +[ASM4_13] +~g~He's spotted you and is making a run for it, nail him and get the briefcase! + +[ASM4_14] +~g~The distance bar in the upper right of the screen gives you an indication to how close you are to your target do not let it fill or he will see you. + +[ASM_5] +ASSASSIN MISSION 5 + +[KICK] +KICKSTART + +[KICK1_3] +~g~Number of times foot put down: ~1~ + +[KICK1_4] +~g~Time penalty: ~1~ seconds + +[BANK] +BANKJOB MISSIONS + +[BANK1] +BANKJOB MISSION 1 + +[BANK2] +BANKJOB MISSION 2 + +[BJM2_21] +~g~Hit as many targets as you can while your ammo lasts. + +[BANK3] +BANKJOB MISSION 3 + +[BJM3_1] +~g~Get a fast car and get to the starting grid. + +[BNK4_2A] +Boys at the car lot did a great job on this baby. + +[BNK4_3G] +Oh crap, now the cops are onto us! + +[BNK4_3H] +- and we're not even there yet. + +[BNK4_3K] +We'll have to lose the cops first... + +[BNK4_3L] +Christ Tommy, you trying to kill us all!? + +[BNK4_3N] +Everything I care about gets trashed! + +[BNK4_26] +Hot damn! Here they come! + +[BNK4_32] +Use explosives to open the deposit boxes! + +[BNK4_36] +Where's Cam? + +[BNK4_37] +History... + +[BNK4_38] +That's the last of them. GO! GO! GO! + +[BNK_39] +Shit! Where's Hilary? + +[BK4_40A] +I'll give him abandonment issues! + +[BNK4_42] +Hey guys! Get in! I got you covered! + +[BNK4_43] +I've got our asses covered, DRIVE! + +[BNK4_44] +We made it! We're rich! RICH! + +[BNK4_45] +Shame Cam didn't make it, he was a good guy! + +[BNK4_46] +Yeah. Still... more for us! + +[BNK4_47] +Damned straight! YEEEEHAAAH! + +[BNK4_48] +Tommy, would you like a massage? + +[BNK4_49] +Well, Hi there, Mercedes! Yeah, I'm a little tense... + +[BNK450A] +What'd I tell you Tommy? What'd I tell you? Bent SWAT better watch out when Kent Paul is in town. + +[BNK450B] +Come on, gimme a bigger slice, mate, c'mon. I gotta get some new threads. + +[BNK4_51] +You look fine to me. + +[KENT] +KENT PAULS MISSIONS + +[KENT1] +KENT PAUL MISSION1 + +[COUNT] +COUNTERFEITING MISSIONS + +[COUNT1] +COUNTERFEITING MISSION 1 + +[COUNT2] +COUNTERFEITING MISSION 2 + +[BIKE] +THE BIKER GANG MISSIONS + +[BIKE1] +BIKER MISSION 1 + +[BIKE2] +BIKER MISSION 2 + +[BIKE3] +BIKER MISSION 3 + +[GOAWAY1] +~g~Come back when you have finished the Haitian gang missions. + +[HAIT] +THE HAITIAN GANG MISSIONS + +[HAIT1] +HAITIAN MISSION 1 + +[HAIT2] +HAITIAN MISSION 2 + +[HAIT3] +HAITIAN MISSION 3 + +[HAM3_6] +~g~Use the sniper rifle I have left to accomplish your task. + +[ROCK] +THE ROCKBAND GANG MISSIONS + +[ROK1_4] +~g~Ok, I think this is what you were after... + +[ROK1_1E] +~g~It'll cost more than you've got! + +[ROK1_1F] +~g~Come back when you got the money. + +[RBM2_6] +~g~Wow! She's a bloke, stop him! + +[ROCK3] +ROCKBAND MISSION 3 + +[RBM3_5] +~g~Take Love Fist to the venue. + +[CUBANM] +THE CUBAN GANG MISSIONS + +[CUBAN1] +CUBAN MISSION 1 + +[CUBAN2] +CUBAN MISSION 2 + +[CUB2_10] +~r~You are supposed to be killing Haitians, not Cubans. + +[CUBAN3] +CUBAN MISSION 3 + +[CUBAN4] +CUBAN MISSION 4 + +[PROT] +PROTECTION MISSIONS + +[PORN] +PORN MISSIONS + +[PORN1] +PORN MISSION 1 + +[POR1_03] +~r~Candy is dead! + +[PORN2] +PORN MISSION 2 + +[PORN3] +PORN MISSION 3 + +[PORN4] +PORN MISSION 4 + +[PHIL] +PHIL MISSIONS + +[PHIL1] +PHIL MISSION 1 + +[PHIL2] +PHIL MISSION 2 + +[PIZ1_A] +PIZZA BOY MISSION + +[CNTBUY1] +Printworks purchased: $~1~ + +[CARBUY] +Car Showroom purchased: $~1~ + +[PORNBUY] +Film Studio purchased: $~1~ + +[ICEBUY] +Ice Cream Factory purchased: $~1~ + +[TAXIBUY] +Taxi Firm purchased: $~1~ + +[BANKBUY] +The Malibu purchased: $~1~ + +[BOATBUY] +Boatyard purchased: $~1~ + +[PRNT_NO] +You cannot buy the Print Works at this time, come back later. + +[CAR_NO] +You cannot buy the Car Showroom at this time, come back later. + +[PORN_NO] +You cannot buy the Film Studio at this time, come back later. + +[ICE_NO] +You cannot buy the Ice Cream Factory at this time, come back later. + +[TAXI_NO] +You cannot buy the Taxi Company at this time, come back later. + +[BANK_NO] +You cannot buy The Malibu at this time, come back later. + +[BOAT_NO] +You cannot buy the Boatyard at this time, come back later. + +[COL2_6] +Freeze, imperialist American pig! + +[COL2_6B] +Zat iz propertay of ze government Francais. + +[COL2_6C] +'And eet over! + +[COL3_A] +Thomas I appreciate you coming + +[COL3_B] +Forgive me for getting straight to business, + +[COL3_C] +Diaz has asked me to oversee a minor business transaction. + +[COL3_D] +Let's hope it goes better than last time. + +[COL3_E] +Which is why I thought of you, my friend. + +[COL3_F] +I've dropped some protection at the multistory carpark. + +[COL3_G] +Pick it up then go and watch over Diaz's men at the drop off. + +[COL4_2] +Don't know Sir! + +[COL4_5] +Sir, Yes Sir! + +[COL4_10] +Lets go eat some doughnuts. + +[COL4_16] +Sir! Moving vehicle Sir! + +[COL4_25] +Vehicle self destruct initiated! + +[COL5_6] +Mercedes, that girl will be the death of me. + +[COL5_8] +Damn cockroach! + +[COL5_5] +Die French peegs! + +[CNT2_1] +Kill him. + +[CNT2_2] +Get the Plates! + +[CNT2_3] +Protect the courier! + +[FINKILL] +Ok boys, kill him! + +[FIN_1A] +Come here you double-crossing piece of shit! + +[FIN_1B] +You're going down, you back stabbing prick! + +[FIN_1C] +This is the last dance for lance vance! + +[FIN_2B] +Oh you think so! + +[FIN_2C] +I said I had enough of that at school! + +[FIN_3] +No one to cover your ass now, eh Tommy? + +[FIN_4] +You're history, Tommy, history + +[FIN_5] +You picked the wrong side, Lance... + +[FIN_6] +Sonny's up with the safe and MY money... + +[FIN_10] +Sonny? SONNY! I'm coming for ya! + +[FIN_11A] +You took fifteen years from me Sonny... + +[FIN_11B] +And now I'm gonna make you pay! + +[FIN_12A] +You still don't get it do you! + +[FIN_12B] +I OWN you, Tommy. + +[FIN_12C] +Those fifteen years were mine to spend! + +[FIN_13] +Get him boys, he never understood a thing. + +[RACES_4] +3 + +[RACES_5] +2 + +[RACES_6] +1 + +[RACES_7] +GO! + +[RACES_9] +Time: ~1~:~1~ + +[RACES] +TIME: + +[RACES17] +New best time: ~1~:~1~ + +[RACES18] +YOU HAVE WON: $~1~ + +[RACES20] +New best time: ~1~:0~1~ + +[RACES21] +Time: ~1~:0~1~ + +[RCH1_1] +NO LONGER NEEDED NO LONGER NEEDED NO LONGER NEEDED NO LONGER NEEDED NO LONGER NEEDED + +[RCH1_2] +~g~The CHECKPOINTS are scattered throughout the airport. + +[RCH1_3] +NO LONGER NEEDED NO LONGER NEEDED NO LONGER NEEDED NO LONGER NEEDED NO LONGER NEEDED + +[RCH1_5] +Time: + +[RCRC1_2] +~g~Get to the starting grid now! + +[RCRC1_4] +~g~3 + +[RCRC1_5] +~g~2 + +[RCRC1_6] +~g~1 + +[RCRC1_7] +~g~GO! + +[RCRC1_8] +~g~Race time: ~1~ seconds + +[RCPL1_1] +~g~Compete in a CHECKPOINT RACE with 3 other RC Baron's + +[RCPL1_2] +~g~You must go through the ~o~CENTRE CORONA ~g~to successfully pass a checkpoint. + +[RCPL1_3] +~g~Get to the starting grid now! + +[ICC1_O] +What is wrong with you?? + +[FEA_2SP] +2 Speakers + +[FEA_4SP] +More than 2 speakers + +[FEA_EAR] +Headphones + +[FEA_NAH] +NO AUDIO HARDWARE + +[FET_APP] +APPLY + +[FES_SKN] +SKIN NAME + +[FES_DAT] +DATE + +[FES_SET] +Use Skin + +[FET_DEF] +Restore Defaults + +[FESZ_QZ] +Are you sure you want to save this game? + +[FES_SCG] +Save the current game? + +[FES_LCG] +Load the game and continue playing? + +[FEC_FIR] +Fire + +[FEC_NWE] +Next weapon + +[FEC_PWE] +Previous weapon + +[FEC_FOR] +Forward + +[FEC_BAC] +Backwards + +[FEC_LEF] +Left + +[FEC_RIG] +Right + +[FEC_ZIN] +Zoom in + +[FEC_ZOT] +Zoom out + +[FEC_EEX] +Enter+exit + +[FEC_RAD] +Radio + +[FEC_SUB] +Sub-mission + +[FEC_CMR] +Change camera + +[FEC_JMP] +Jump + +[FEC_SPN] +Sprint + +[FEC_HND] +Handbrake + +[FEC_LOL] +Look left + +[FEC_LOR] +Look right + +[FEC_NTR] +Next target + +[FEC_PTT] +Previous target + +[FEC_LBA] +Look behind + +[FEC_CEN] +Center camera + +[FET_CFT] +ON FOOT + +[FET_CCR] +IN CAR + +[FET_CAC] +ACTION + +[FEC_IBT] +- + +[FEC_MXO] +MXB1 + +[FEC_MXT] +MXB2 + +[FEC_UNB] +UNBOUND + +[FEC_TFL] +Look left+Turret L + +[FEC_TFR] +Look right+Turret R + +[FEC_MWF] +MS WHEEL UP + +[FEC_MWB] +MS WHEEL DN + +[FEC_ORR] +or + +[FEC_NUS] +NOT USED + +[FEC_LUD] +Look Up + +[FEC_LDU] +Look Down + +[FEC_CMP] +COMBO: LOOK L+R + +[LAW_1A] +law_1a + +[LAW_1B] +law_1b + +[LAW_2A] +law_2a + +[LAW_2B] +law_2b + +[FEH_STA] +STATS + +[FEH_LOA] +LOAD + +[FEH_CON] +CONTROLS + +[FEH_AUD] +AUDIO + +[FEH_LAN] +LANGUAGE + +[FEH_SGA] +START NEW GAME + +[FEO_CON] +Controller Setup + +[FEO_AUD] +Audio Setup + +[FEO_DIS] +Display Setup + +[FEO_LAN] +Language Setup + +[FEO_PLA] +Player Setup + +[FEA_OUT] +Output + +[FEA_ST] +Stereo + +[FEA_DTS] +DTS + +[FEA_RSS] +Radio station + +[FEA_NON] +RADIO OFF + +[FEA_FM0] +WILDSTYLE + +[FEA_FM1] +FLASH FM + +[FEA_FM2] +KCHAT + +[FEA_FM3] +FEVER 105 + +[FEA_FM4] +VROCK + +[FEA_FM5] +VCPR + +[FEA_FM7] +EMOTION 98.3 + +[FEA_FM8] +WAVE 103 + +[FED_BRI] +Brightness + +[FED_TRA] +Trails + +[FED_SUB] +Subtitles + +[FED_WIS] +Wide Screen + +[FED_POS] +Screen Position + +[FEP_RES] +Resume + +[FEP_STG] +Start Game + +[FEP_STA] +Stats + +[FEP_BRI] +Briefs + +[FEP_OPT] +Options + +[FEP_QUI] +Quit Game + +[FES_LOA] +Load game + +[FES_DEL] +Delete game + +[FEC_CSU] +Controller Setup + +[FEC_RED] +Redefine Controls + +[FEC_MOU] +Mouse Settings + +[DISTGOL] +Dist. traveled by golf cart (miles) + +[DISTGOM] +Distance traveled by golf cart (m) + +[ST_FAVR] +Favorite radio station + +[ST_WSTR] +least favorite radio station + +[ST_FAVV] +Favorite vehicle + +[ST_STAR] +Total number of wanted stars attained + +[ST_HEAD] +Number of headshots + +[ST_GANG] +Least favorite gang + +[ST_STGN] +Total number of wanted stars evaded + +[TYREPOP] +Tires popped with gunfire + +[TYRESLA] +Tires slashed with a blade + +[ST_BRK] +Number of bloodring kills + +[ST_LTBR] +Longest time in bloodring (secs) + +[ST_GNG1] +Cubans + +[ST_GNG2] +Haitians + +[ST_GNG3] +Streetwannabe's + +[ST_GNG4] +Diaz's gang + +[ST_GNG5] +Security guards + +[ST_GNG6] +Biker gang + +[ST_GNG7] +Vercetti gang + +[ST_GNG8] +Golfers + +[FEA_FM6] +ESPANTOSO + +[ST_ASSI] +Assassination Contracts Completed + +[DISTBIK] +Dist. traveled by bike (miles) + +[DISTBIM] +Distance traveled by bike (m) + +[HOTEL] +Ocean View + +[KICK1_9] +CHECKPOINTS: + +[FIN_B6] +You do not have enough money to start this mission. + +[TEX3_9] +~g~Pickup a bomb by maneuvering the RC helicopter next to it. + +[HELP22] +Go to the green house blip on the radar. + +[FES_FMS] +Format Successful. Select OK to continue. + +[FES_SSC] +Save Successful. Select OK to continue. + +[FES_DSC] +Delete Successful. Select OK to continue. + +[FESZ_QC] +Proceed with overwriting this corrupted save game? + +[FES_CHE] +Warning! One or more cheats have been activated. This may affect your save game. It is recommended that you do not save this game. + +[FET_SG] +SAVE GAME + +[FEH_BRI] +BRIEF + +[FEH_DIS] +DISPLAY + +[FEH_MAP] +MAP + +[FEM_OK] +OK + +[FEC_CRO] +Crouch + +[FEC_CR3] +Crouch (L3 button) + +[FEC_SMT] +Sub-mission + +[FEC_SM3] +Sub-mission (R3 button) + +[FEC_RSC] +Radio stations + +[ST_PR01] +Flyboy + +[ST_PR02] +Aircraftman + +[ST_PR03] +Pilot Officer + +[ST_PR04] +Corporal + +[ST_PR05] +Lieutenant + +[ST_PR06] +Sergeant + +[ST_PR07] +Captain + +[ST_PR08] +Biggs + +[ST_PR09] +Wedge + +[ST_PR10] +Red Baron + +[ST_PR11] +Goose + +[ST_PR12] +Viper + +[ST_PR13] +Jester + +[ST_PR14] +Chappy + +[ST_PR15] +Iceman + +[ST_PR16] +Maverick + +[ST_PR17] +Noops + +[ST_PR18] +Air Chief Marshal + +[ST_PR19] +Ace + +[FET_LG] +LOAD GAME + +[CAR_EXP] +Road Vehicles destroyed + +[BOA_EXP] +Boats destroyed + +[HEL_DST] +Planes & Helicopters destroyed + +[STFT_01] +Fastest time on 'Alloy Wheels Of Steel' + +[STFT_02] +Fastest time on 'The Driver' + +[STFT_03] +Fastest time in Dirt Ring + +[STFT_04] +Fastest time on RC Plane Race + +[STFT_05] +Fastest time on RC Car Race + +[STFT_06] +Fastest time on RC helicopter Pickup + +[STFT_07] +Fastest time on 'Terminal Velocity' + +[STFT_08] +Fastest time on 'Ocean Drive' + +[STFT_09] +Fastest time on 'Border Run' + +[STFT_10] +Fastest time on 'Capital Cruise' + +[STFT_11] +Fastest time on 'Tour!' + +[STFT_12] +Fastest time on 'V.C. Endurance' + +[STHC_01] +Highest score for Shooter + +[STHC_02] +Best Percentage of hits for Shooter + +[STHC_03] +Number of drug deals made + +[HELP24] +You can now take jobs from the Colonel. + +[HELP25] +You can now take jobs from Avery Carrington. + +[HELP29] +You can visit the clothes store when you're not on a mission. + +[HELP30] +When you buy new clothes your wanted level will be set to zero. + +[ASM4_24] +distance: + +[RBM1_6] +~g~Take Mercedes and the 'Love Juice' to the band at the recording studio. + +[RBM1_3] +NO LONGER NEEDED + +[HAM1_5] +NO LONGER NEEDED + +[RBM1_11] +NO LONGER NEEDED + +[HELP31] +To do a drive-by, first look left or right using the ~h~~k~~VEHICLE_LOOKLEFT~~w~ or the ~h~~k~~VEHICLE_LOOKRIGHT~. + +[HELP34] +You must have a sub machine gun to perform a drive-by. + +[STRIP_1] +~r~Not enough cash, you cheap sleazebag. + +[EXIT_1] +Press the ~h~~k~~PED_SPRINT~ ~w~button to exit. + +[ASM1_B] +Your next job is taped under the phone. + +[ASM1_C] +I have more work for you with a more 'hands-on' approach. + +[SCARF] +Apartment 3c + +[LAW4_10] +Rich management suck! + +[RCH1_6] +~g~Use the RC Helicopter to collect checkpoints scattered throughout the airport. + +[RCH1_9] +~b~TOTAL TIME: ~1~:~1~ + +[RCH1_10] +~b~TOTAL TIME: ~1~:0~1~ + +[WHEEL01] +TWO WHEELS DOUBLE BONUS: $ ~1~ Distance: ~1~.~1~m Time: ~1~ seconds + +[WHEEL02] +TWO WHEELS DOUBLE BONUS: $ ~1~ Distance: ~1~ feet Time: ~1~ seconds + +[WHEEL03] +TWO WHEELS BONUS: $ ~1~ Time: ~1~ seconds + +[WHEEL04] +TWO WHEELS BONUS: $ ~1~ Distance: ~1~.~1~m + +[WHEEL05] +TWO WHEELS BONUS: $ ~1~ Distance: ~1~ feet + +[WHEEL06] +WHEELIE BONUS: $ ~1~ Distance: ~1~.~1~m Time: ~1~ seconds + +[WHEEL07] +WHEELIE BONUS: $ ~1~ Distance: ~1~ feet Time: ~1~ seconds + +[WHEEL08] +WHEELIE BONUS: $ ~1~ Time: ~1~ seconds + +[WHEEL09] +WHEELIE BONUS: $ ~1~ Distance: ~1~.~1~m + +[WHEEL10] +WHEELIE BONUS: $ ~1~ Distance: ~1~ feet + +[WHEEL11] +STOPPIE BONUS: $ ~1~ Distance: ~1~.~1~m Time: ~1~ seconds + +[WHEEL12] +STOPPIE BONUS: $ ~1~ Distance: ~1~ feet Time: ~1~ seconds + +[WHEEL13] +STOPPIE BONUS: $ ~1~ Time: ~1~ seconds + +[WHEEL14] +STOPPIE BONUS: $ ~1~ Distance: ~1~.~1~m + +[WHEEL15] +STOPPIE BONUS: $ ~1~ Distance: ~1~ feet + +[ROK3_72] +Love Fist! + +[POR1_19] +Hey! + +[DESPERA] +Desperado + +[MOB_99A] +Get to the payphone next to the mall in Washington. + +[MOB_98A] +Get to the pay phone in Vice Point. + +[MOB_96A] +Get to the payphone at the airport terminal. + +[MOB_95A] +Get to the payphone in Little Havana. + +[BNK1_1] +Can I help you, sir? + +[BNK1_2] +There's an imposter! + +[BNK1_3] +He's gone insane! + +[BNK1_4] +Who the hell are you? + +[BNK1_5] +Where's your badge? + +[BNK1_6] +There they are! Shoot to kill! + +[MOB_24A] +Hola, is this Mr. Vercetti? + +[MOB_24B] +Yeah. + +[MOB_24C] +This is Cortez. You were at my party. + +[MOB_24D] +Yeah. I remember. + +[MOB_24E] +Mr. Vercetti, it was a most unfortunate incident that happened with your business deal. + +[MOB_24F] +I know. + +[MOB_24G] +I want you to know me and my people are doing their utmost to get to the bottom of it. + +[MOB_24H] +If you'd like to talk to me more privately, you can find me at the boat, eh? Okay? Good day, senor. + +[BNK2_6] +This guy's a lunatic! + +[ANGEL] +Angel + +[CUBJET] +Cuban Jetmax + +[SANDKIN] +Sandking + +[POLMAV] +Police Maverick + +[BOXVILL] +Boxville + +[BENSON] +Benson + +[HOTRINA] +Hotring Racer + +[HOTRINB] +Hotring Racer + +[BLOODRA] +Bloodring Banger + +[BLOODRB] +Bloodring Banger + +[MAFIACR] +Mafia Cruiser + +[COP_M2] +'VICE SQUAD' + +[COP_M3] +'BROWN THUNDER' + +[BNK3_2] +I'm not driving for you, no way, I'm sharing this at group. + +[FEM_SL1] +Save File 1 Not Present + +[FEM_SL2] +Save File 2 Not Present + +[FEM_SL3] +Save File 3 Not Present + +[FEM_SL4] +Save File 4 Not Present + +[FEM_SL5] +Save File 5 Not Present + +[FEM_SL6] +Save File 6 Not Present + +[FEM_SL7] +Save File 7 Not Present + +[FEM_SL8] +Save File 8 Not Present + +[FEA_CHA] +Changing audio output to STEREO. Please wait... + +[FEA_CHD] +Warning! You are changing from STEREO output to DTS. Please wait... + +[FEI_SEL] +Select + +[FEI_BAC] +Back + +[FEI_RES] +Resume + +[FEI_NAV] +Navigate + +[FEI_BTX] +/ button - + +[FEI_BTT] +" button - + +[FEI_STA] +START button - + +[FEI_BTD] +; = > < - + +[FEI_STO] +Stop + +[ST_ICEC] +'Ice Cream' Sold + +[MOB_68A] +Tommy son, have I got a surprise for you + +[MOB_68B] +I'm down at the recording studios with some major artists + +[MOB_68C] +Why don't you pay us a visit? + +[MOB_68D] +You know it makes sense, dontcha? See ya later. + +[OUTFT1] +Street + +[OUTFT2] +Soiree + +[OUTFT3] +Coveralls + +[OUTFT4] +Country Club + +[OUTFT5] +Havana + +[OUTFT6] +Cop + +[OUTFT7] +Bank Job + +[OUTFT8] +Casual + +[OUTFT9] +Mr Vercetti + +[OUTFT10] +Tracksuit + +[OUTFT13] +MC Tommy + +[CAR_AS1] +CAR SHOWROOM ASSET COMPLETED + +[CAR_AS2] +~g~Sunshine Auto's will now generate revenue up to a maximum of $~1~. Make sure you collect it regularly. + +[BUYSAVE] +~g~You can now save your game here when not on a mission. + +[BUYGARG] +~g~You can also store vehicles in this garage. + +[STRPBUY] +Pole Position Club purchased: $~1~ + +[GA_4] +Car bombs are $500 each + +[GA_5] +Your car is already fitted with a bomb. + +[GA_6] { reVC update } +Park it, prime it by pressing the ~h~~k~~VEHICLE_FIREWEAPON~ ~w~button and LEG IT! + +[GA_7] { reVC update } +Arm with the ~h~~k~~VEHICLE_FIREWEAPON~ ~w~button. Bomb will go off when engine is started. + +[GA_6B] { reVC update } +Park it, prime it by pressing the ~h~~k~~VEHICLE_FIREWEAPON~ ~w~button and LEG IT! + +[GA_7B] { reVC update } +Arm with the ~h~~k~~VEHICLE_FIREWEAPON~ ~w~button. Bomb will go off when engine is started. + +[MOB_70A] +Tommy, it's me, Colonel Cortez. Look senor, I believe you are a man who can get things done. So please help me. + +[MOB_70B] +You can find me at the boat. + +[PICK2] +.357 delivered to Ocean View Hotel! + +[PICK3] +Chainsaw delivered to Ocean View Hotel! + +[PICK4] +Flame Thrower delivered to Ocean View Hotel! + +[PICK5] +.308 Sniper delivered to Ocean View Hotel! + +[PICK6] +Minigun delivered to Ocean View Hotel! + +[PICK7] +Rocket Launcher delivered to Ocean View Hotel! + +[PICK8] +Sea Sparrow now available from the Mansion on Starfish Island! + +[PICK9] +Tank now available from the Army Barracks! + +[PICK10] +Hunter now available from the Army Barracks! + +[CLOTH1] +Soiree outfit delivered to Rafael's on Ocean Beach. + +[CLOTH2] +Street outfit delivered to Safehouses. + +[CLOTH3] +Coveralls outfit delivered to Tooled Up in The North Point Mall. + +[CLOTH4] +Country Club outfit delivered to The Golf Club in Leaf Links. + +[CLOTH5] +Havana outfit delivered to Little Havana Streetwear in Little Havana. + +[CLOTH6] +Cop outfit delivered to Police Station on Washington Beach. + +[CLOTH7] +Casual outfit delivered to Gash in The North Point Mall. + +[CLOTH8] +Mr Vercetti outfit delivered to Collar & Cuffs on Ocean Beach. + +[CLOTH9] +Tracksuit outfit delivered to Jocksport in Downtown. + +[CLOTH10] +Bank Job outfit delivered to Malibu Club in Vice Point. + +[MOB_62A] +Tommy, is Ricardo Diaz, I want to thank you for looking out for me my man. + +[MOB_62B] +I ask that prick Cortez, he say you the real deal, my friend, why you not come see me. + +[MOB_62C] +I need a guy like you. All I have now is dickheads, + +[MOB_62D] +dickheads everywhere, yo. I make you real rich. + +[GOAWAY2] +~g~Come back when you have finished the Biker gang missions. + +[COL2_9] +You American idiot! They followed you here! + +[LOADCOL] +Loading... + +[STFT_17] +Fastest time on 'PCJ Playground' + +[STFT_18] +Fastest time on 'Trial By Dirt' + +[STFT_19] +Fastest time on 'Test Track' + +[NEW_REC] +~g~New Record Set!! ~w~~1~ minutes ~g~and ~w~~1~ seconds. + +[BMX_HOW] +~g~Do two laps of the dirt track, ~y~passing through ~g~the ~y~CHECKPOINTS ~g~as you go! + +[BMXREW1] +~g~Each time you beat your previous record for the two laps + +[BMXREW2] +~g~a larger ~y~REWARD ~g~will be awarded! + +[BMXRAIN] +~g~Looks like rain... + +[ITBEG] +In the beginning... + +[NBMNBUY] +El Swanko Casa purchased: $~1~ + +[LNKVBUY] +Links View Apartment purchased: $~1~ + +[HYCOBUY] +Hyman Condo purchased: $~1~ + +[BUYGARS] +~g~You can also store vehicles in these garages. + +[OCHEBUY] +Ocean Heights Apartment purchased: $~1~ + +[WASHBUY] +1102 Washington Street purchased: $~1~ + +[VCPTBUY] +3321 Vice Point purchased: $~1~ + +[HELP6_C] +Press the ~h~~k~~VEHICLE_HANDBRAKE~ ~w~button to apply the vehicle's handbrake. + +[HELP2_A] +Press the ~h~~k~~PED_SPRINT~ ~w~button when running to ~h~sprint + +[HELP4_A] +Press the ~h~~k~~VEHICLE_ACCELERATE~ ~w~button to accelerate. + +[HELP5_A] +Press the ~h~~k~~VEHICLE_BRAKE~ ~w~button to brake, or to reverse if the vehicle has stopped. + +[HELP8_A] +Press the~h~ ~k~~PED_SNIPER_ZOOM_IN~ button ~w~to ~h~zoom in ~w~with the rifle and the~h~ ~k~~PED_SNIPER_ZOOM_OUT~ button ~w~to ~h~zoom out ~w~again. + +[PBOAT_1] { reVC update } +Press the ~h~~k~~VEHICLE_FIREWEAPON~ ~w~button to fire the boat cannons. + +[SEG3_4] { reVC update } +~g~You can pick up bombs by simply piloting your RC Raider adjacent to each one, to drop a bomb press the ~h~~k~~VEHICLE_FIREWEAPON~ ~g~button. + +[RCR1_3] { reVC update } +~g~If you wish to quit this mission press the ~h~~k~~VEHICLE_FIREWEAPON~ ~g~button to detonate your RC car. + +[HELP32] { reVC update } +Then fire using the ~h~~k~~VEHICLE_FIREWEAPON~ ~w~button. + +[HELP33] { reVC update } +Then fire using the ~h~~k~~VEHICLE_FIREWEAPON~ ~w~button. + +[TTUTOR] +Press the ~h~~k~~TOGGLE_SUBMISSIONS~ button~w~ to toggle taxi missions on or off. + +[TTUTOR2] +Press the ~h~~k~~TOGGLE_SUBMISSIONS~ button~w~ to toggle taxi missions on or off. + +[FTUTOR] +Press the ~h~~k~~TOGGLE_SUBMISSIONS~ button~w~ to toggle fire truck missions on or off. + +[FTUTOR2] +Press the ~h~~k~~TOGGLE_SUBMISSIONS~ button~w~ to toggle fire truck missions on or off. + +[CTUTOR] +Press the ~h~~k~~TOGGLE_SUBMISSIONS~ button~w~ to toggle Vigilante missions on or off. + +[CTUTOR2] +Press the ~h~~k~~TOGGLE_SUBMISSIONS~ button~w~ to toggle Vigilante missions on or off. + +[HELP8_B] +Press the ~h~~k~~PED_SNIPER_ZOOM_IN~ button ~w~to ~h~zoom in ~w~with the rifle and the~h~ ~k~~PED_SNIPER_ZOOM_OUT~ button ~w~to ~h~zoom out ~w~again. + +[ATUTOR3] +Press the ~h~~k~~TOGGLE_SUBMISSIONS~ button~w~ to toggle Paramedic missions on or off. + +[GUN_H1] +~w~Press the~h~ ~k~~PED_SPRINT~ ~w~button to buy. Press the~h~ ~k~~VEHICLE_ENTER_EXIT~ ~w~button to exit. + +[PU_CF3] { reVC update } +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to replace current weapon in this slot. + +[PU_CF4] { reVC update } +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to replace current weapon in this slot. + +[HELP9_B] +Press the~h~ ~k~~PED_FIREWEAPON~ button ~w~to ~h~fire~w~ the sniper rifle. + +[HELP37] +If you do not want to enter the vehicle while car jacking someone, press the ~h~~k~~PED_SPRINT~ ~w~button. + +[HELP6_A] +Press the~h~ ~k~~VEHICLE_HANDBRAKE~ button ~w~to apply the vehicle's ~h~handbrake. + +[HELP6_D] +Press the~h~ ~k~~VEHICLE_HANDBRAKE~ button ~w~to apply the vehicle's ~h~handbrake. + +[HELP26] +Press the ~h~~k~~VEHICLE_ENTER_EXIT~ ~w~button to enter or exit a vehicle. + +[HELP27] +Press the ~h~~k~~VEHICLE_TURRETUP~~w~ button and the ~h~~k~~VEHICLE_TURRETDOWN~~w~ button, to shift your weight on a bike. + +[HELP28] +Press the ~h~~k~~VEHICLE_TURRETUP~~w~ button and the ~h~~k~~VEHICLE_TURRETDOWN~~w~ button, to shift your weight on a bike. + +[HELP35] +Press the ~h~~k~~GO_LEFT~~w~, and the ~h~~k~~GO_RIGHT~~w~, to steer the vehicle. + +[HELP36] +Press the ~h~~k~~GO_LEFT~~w~, and the ~h~~k~~GO_RIGHT~~w~, to steer the vehicle. + +[HELP42] +Follow the ~q~pink blip~w~ to find the hotel. + +[HELP19] +Walk into the ~q~pink marker ~w~to continue. + +[HELP1] +Stop in the center of the ~q~pink marker. + +[HELP12] +Walk into the center of the ~q~pink marker~w~ to trigger a mission. + +[SEG3_6] +~g~To successfully hit a target zone, you must drop the bomb in the area represented by the ~q~pink marker~w~. You can drop the bombs in any order. + +[S_PROMP] +When not on a mission you can save your progress by collecting the ~h~cassette tape pickup. + +[HELP16] +Walk through the front door of the ~h~Ocean View~w~ Hotel to enter the building. + +[HELP43] +~g~Goto the ~h~Ocean View~g~ hotel on Ocean Drive. + +[HELI_F1] +~r~Heli Checkpoint mission cancelled! + +[AMMUHLP] +If you need any weapons visit ~h~Ammu-Nation~w~. Follow the ~h~Gun blip~w~ on the radar. + +[HELI_1] +Downtown Chopper Checkpoint + +[HELI_2] +Ocean Beach Chopper Checkpoint + +[HELI_3] +Vice Point Chopper Checkpoint + +[HELI_4] +Little Haiti Chopper Checkpoint + +[FST_MFR] +Most Favorite Radio Station + +[FST_LFR] +Least Favorite Radio Station + +[FEI_HOL] +Hold + +[FEI_ZOO] +Zoom + +[FEI_BTR] +> < - + +[FEI_NA] +N\A + +[MESA] +Mesa Grande + +[STRP_NO] +You cannot buy the Stripclub at this time, come back later. + +[CHSE] +CHASE + +[NBMN_L] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase El Swanko Casa for $~1~ + +[NBMN_T] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase El Swanko Casa for $~1~ + +[NBMN_C] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase El Swanko Casa for $~1~ + +[LNKV_L] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase Links View Apartment for $~1~ + +[LNKV_T] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase Links View Apartment for $~1~ + +[LNKV_C] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase Links View Apartment for $~1~ + +[HYCO_L] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase Hyman Condo for $~1~ + +[HYCO_T] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase Hyman Condo for $~1~ + +[HYCO_C] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase Hyman Condo for $~1~ + +[OCHE_L] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase Ocean Heights Apartment for $~1~ + +[OCHE_T] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase Ocean Heights Apartment for $~1~ + +[OCHE_C] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase Ocean Heights Apartment for $~1~ + +[WASH_L] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase 1102 Washington Street for $~1~ + +[WASH_T] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase 1102 Washington Street for $~1~ + +[WASH_C] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase 1102 Washington Street for $~1~ + +[VCPT_L] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase 3321 Vice Point for $~1~ + +[VCPT_T] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase 3321 Vice Point for $~1~ + +[VCPT_C] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase 3321 Vice Point for $~1~ + +[PRNT_L] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase the Print Works for $~1~ + +[PRNT_T] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase the Print Works for $~1~ + +[PRNT_C] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase the Print Works for $~1~ + +[CAR_L] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase the Car Showroom for $~1~ + +[CAR_T] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase the Car Showroom for $~1~ + +[CAR_C] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase the Car Showroom for $~1~ + +[PORN_L] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase the Film Studios for $~1~ + +[PORN_T] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase the Film Studios for $~1~ + +[PORN_C] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase the Film Studios for $~1~ + +[ICE_L] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase the Ice Cream Factory for $~1~ + +[ICE_T] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase the Ice Cream Factory for $~1~ + +[ICE_C] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase the Ice Cream Factory for $~1~ + +[TAXI_L] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase the Taxi Company for $~1~ + +[TAXI_T] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase the Taxi Company for $~1~ + +[TAXI_C] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase the Taxi Company for $~1~ + +[BANK_L] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase The Malibu for $~1~ + +[BANK_T] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase The Malibu for $~1~ + +[BANK_C] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase The Malibu for $~1~ + +[BOAT_L] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase the Boatyard for $~1~ + +[BOAT_T] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase the Boatyard for $~1~ + +[BOAT_C] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase the Boatyard for $~1~ + +[STRP_L] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase the Pole Position Club for $~1~ + +[STRP_T] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase the Pole Position Club for $~1~ + +[STRP_C] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase the Pole Position Club for $~1~ + +[STOCK] +~r~out of stock + +[HELP14] +To find the Lawyer's office, follow the ~h~L blip~w~ on the radar + +[RAMPAGE] +RAMPAGE!! + +[RAMP_F] +RAMPAGE FAILED!! + +[RAMP_P] +RAMPAGE PASSED!! + +[RAMP_A] +ALL RAMPAGES COMPLETED!! + +[PAGE_01] +Kill ~1~ Gang Members in 2 Minutes! + +[PAGE_02] +Destroy ~1~ Vehicles in 2 Minutes! + +[PAGE_03] +Drive-by and Waste ~1~ Gang Members in 2 Minutes! + +[PAGE_04] +Runover and Kill ~1~ Gang Members in 2 Minutes! + +[PAGE_05] +Gun Down ~1~ Gang Members in 2 Minutes! + +[SENTXS] +Sentinel XS + +[MAP_LEG] +Map Legend + +[VCNMAV] +VCN Maverick + +[LG_01] +Player position + +[LG_02] +Avery Carrington + +[LG_03] +Biker Contact + +[LG_04] +Colonel Cortez + +[LG_05] +Ricardo Diaz + +[LG_06] +Kent Paul + +[LG_07] +Lawyer + +[LG_08] +Phil Cassidy + +[LG_09] +Boatyard + +[LG_10] +Malibu Club + +[LG_11] +Cubans + +[LG_12] +Film Studio + +[LG_13] +Ammu-Nation + +[LG_14] +Haitians + +[LG_15] +Hardware Store + +[LG_16] +Safe House + +[LG_17] +Ice Cream + +[LG_18] +Kaufman Cabs + +[LG_19] +Love Fist + +[LG_20] +Print Works + +[LG_21] +Property + +[LG_22] +Pay 'n' Spray + +[LG_23] +Clothes Shop + +[LG_24] +Tommy's Mansion + +[LG_25] +Telephone + +[LG_26] +Wildstyle Radio Station + +[LG_27] +Flash FM Radio Station + +[LG_28] +KChat Radio Station + +[LG_29] +Fever 105 Radio Station + +[LG_30] +VROck Radio Station + +[LG_31] +VCPR Radio Station + +[LG_32] +Espantoso Radio Station + +[LG_33] +Emotion 98.3 Radio Station + +[LG_34] +Wave 103 Radio Station + +[LG_36] +Sun Yard + +[LG_37] +Strip Club + +[MAP_YAH] +YOU ARE HERE + +[TAXSHRT] +~g~You can use this Kaufman Cab to take you to destinations instead of driving. It will cost you $9. + +[MOB_09D] +Maybe Leo's already dead. Maybe I killed Leo and took his phone - you think of that prick? + +[FE_MLG] +MAP LEGEND + +[FED_RDR] +RADAR MODE + +[FED_HUD] +HUD MODE + +[FED_RDB] +BLIPS ONLY + +[FEST_HV] +Highest Vigilante Mission level + +[BRIBE1] +You have just picked up a police bribe, this will reduce your wanted level by one star. + +[CLOHELP] +Clean Clothes!! + +[CRED001] +ROCKSTAR NORTH + +[CRD001A] +STUDIO DIRECTOR + +[CRD001B] +ANDREW SEMPLE + +[CRED002] +PRODUCER + +[CRD002A] +DEVELOPMENT DIRECTOR + +[CRED003] +LESLIE BENZIES + +[CRED004] +ART DIRECTOR + +[CRED005] +AARON GARBUT + +[CRED006] +TECHNICAL DIRECTORS + +[CRED007] +OBBE VERMEIJ + +[CRED008] +ADAM FOWLER + +[CRED010] +ANDREW DUTHIE + +[CRED011] +CRAIG FILSHIE + +[CRED012] +WILLIAM MILLS + +[CRED013] +CHRIS ROTHWELL + +[CRD013A] +IMRAN SARWAR + +[CRD013B] +JAMES WORRALL + +[CRD013C] +JOHN HAIME + +[CRED014] +WRITTEN BY + +[CRED015] +JAMES WORRALL + +[CRED016] +PAUL KUROWSKI + +[CRED017] +DAN HOUSER + +[CRED018] +LEAD CHARACTER DESIGNER + +[CRD018A] +CHARACTER DESIGNER + +[CRED019] +IAN MCQUE + +[CRD019A] +TOKS SOLARIN + +[CRD019B] +ALAN DAVIDSON + +[CRED020] +LEAD ANIMATOR + +[CRED021] +ALEX HORTON + +[CRD022A] +ANIMATORS + +[CRED022] +LEE MONTGOMERY + +[CRD022B] +DUNCAN SHIELDS + +[CRD022C] +GUS BRAID + +[CRED023] +VEHICLE DESIGNERS + +[CRD023A] +JOLYON ORME + +[CRD023B] +ALAN DUNCAN + +[CRD024A] +LEAD VEHICLE DESIGNER + +[CRED024] +PAUL KUROWSKI + +[CRED025] +MAP DESIGNERS + +[CRED026] +ADAM COCHRANE + +[CRED027] +NIK TAYLOR + +[CRED028] +GARY MCADAM + +[CRED029] +KEIRAN BAILLIE + +[CRED030] +ALISDAIR WOOD + +[CRED031] +ANDREW SOOSAY + +[CRD031A] +STEVEN MULHOLLAND + +[CRD031B] +WAYLAND STANDING + +[CRD031C] +CAMPBELL J. DICK + +[CRD031D] +GRAPHIC DESIGNER + +[CRD031E] +STUART PETRI + +[CRED032] +LEAD PROGRAMMER + +[CRD032A] +PROGRAMMERS + +[CRED033] +ALEXANDER ROGER + +[CRED034] +GRAEME WILLIAMSON + +[CRED035] +BARANE CHAN + +[CRED036] +DEREK PAYNE + +[CRED037] +GORDON YEOMAN + +[CRD037A] +ALAN CAMPBELL + +[CRD037B] +MARK HANLON + +[CRD037C] +ANDRZEJ MADAJCZYK + +[CRED038] +LEAD MUSIC PRODUCER + +[CRED039] +CRAIG CONNER + +[CRED040] +STUART ROSS + +[CRED041] +LEAD AUDIO ENGINEER + +[CRED042] +ALLAN WALKER + +[CRD041A] +AUDIO ENGINEER + +[CRD041B] +AUDIO + +[CRD042A] +WILL MORTON + +[CRED043] +AUDIO PROGRAMMER + +[CRED044] +RAYMOND USHER + +[CRED045] +TEST MANAGER + +[CRED046] +CRAIG ARBUTHNOTT + +[CRED047] +LEAD QA + +[CRED048] +NEIL CORBETT + +[CRED049] +KEVIN WONG + +[CRED050] +QA + +[CRED051] +DAVID BEDDOES + +[CRED052] +DAVID WATSON + +[CRED053] +BARRY CLARK + +[CRED054] +ROSS SPARROW + +[CRED055] +JAMES ALLAN + +[CRED056] +NEIL MEIKLE + +[CRD056A] +GEORGE WILLIAMSON + +[CRD056B] +MATT JONES + +[CRD056C] +ROB HARBOUR + +[CRD056D] +TOM WHITTAKER + +[CRED057] +LEAD TECHNICAL SUPPORT + +[CRED058] +LORRAINE ROY + +[CRD057A] +TECHNICAL SUPPORT + +[CRED059] +CHRISTINE CHALMERS + +[CRD060A] +OFFICE SUPPORT + +[CRD060B] +KIM GURNEY + +[CRD060C] +CASSIE OLIVER + +[CRED060] +ROCKSTAR NEW YORK + +[CRED061] +EXECUTIVE PRODUCER + +[CRED062] +SAM HOUSER + +[CRED063] +PRODUCER + +[CRED064] +DAN HOUSER + +[CRED065] +VP OF DEVELOPMENT + +[CRED066] +JAMIE KING + +[CRED067] +CHIEF TECHNOLOGY OFFICER + +[CRED068] +GARY J. FOREMAN + +[CRED069] +ASSOCIATE PRODUCER + +[CRED070] +JEREMY POPE + +[CRD071A] +DIRECTOR OF QUALITY ASSURANCE + +[CRD072A] +JEFF ROSA + +[CRED071] +MUSIC SUPERVISOR + +[CRED072] +TERRY DONOVAN + +[CRED073] +PRODUCTION TEAM + +[CRED074] +TERRY DONOVAN + +[CRED075] +JENNIFER KOLBE + +[CRED076] +JENEFER GROSS + +[CRED077] +LAURA PATERSON + +[CRED078] +JEFF CASTANEDA + +[CRED079] +JERONIMO BARRERA + +[CRED080] +CARLY SLATER + +[CRED081] +JUNG KWAK + +[CRED082] +BRIAN WOOD + +[CRED083] +RENAUD SEBANNE + +[CRED084] +RICHARD KRUGER + +[CRD084A] +DANIEL EINZIG + +[CRD084B] +JACEN BURROWS + +[CRD084C] +LINN PR + +[CRD084D] +COVER ART + +[CRD084E] +STEPHEN BLISS + +[CRED085] +KENT PAUL'S 80 NOSTALGIA ZONE + +[CRED086] +WRITTEN BY DAN HOUSER + +[CRD086A] +PRODUCED BY ADAM TEDMAN + +[CRED087] +WWW.KENTPAUL.COM AND WWW.VICECITY.COM + +[CRED088] +CREATED BY + +[CRD088A] +ADAM TEDMAN + +[CRD088B] +DAVID YU + +[CRD088C] +JERRY LUNA + +[CRD088D] +STUART PETRI + +[CRD088E] +MICHAEL CARNEVALE + +[CRD088F] +GREG LAU + +[CRD088G] +FUTABA HAYASHI + +[CRED089] +QA MANAGER + +[CRED090] +CRAIG ARBUTHNOTT + +[CRED091] +LEAD ANALYST + +[CRED092] +ADAM DAVIDSON + +[CRD092A] +JOE HOWELL + +[CRD092B] +MARC FERNANDEZ + +[CRED093] +GAME ANALYST + +[CRED094] +RICHARD HUIE + +[CRED095] +ROCKSTAR TEST TEAM + +[CRED096] +LANCE WILLIAMS + +[CRED097] +JOE GREENE + +[CRED098] +BRIAN PLANER + +[CRD098A] +ELIZABETH SATTERWHITE + +[CRD098B] +JAMEEL VEGA + +[CRD098C] +MIKE HONG + +[CRED099] +LEE CUMMINGS + +[CRED100] +STORY + +[CRED101] +JAMES WORRALL + +[CRED102] +DAN HOUSER + +[CRED103] +ADAM TEDMAN + +[CRED104] +PAUL YEATES + +[CRED105] +JENEFER GROSS + +[CRED106] +LAURA PATERSON + +[CRED107] +CUT SCENES + +[CRED108] +WRITTEN BY DAN HOUSER AND JAMES WORRALL + +[CRED109] +AUDIO DIRECTED BY DAN HOUSER AND NAVID KHONSARI + +[CRED110] +PRODUCED BY JAMIE KING + +[CRD110A] +TALENT PROCUREMENT: JAMIE KING, SEAN MACALUSO + +[CRED111] +CAST + +[CRD111A] +SUPPORTING CHARACTERS + +[CRED112] +TOMMY VERCETTI - RAY LIOTTA + +[CRED113] +KEN ROSENBERG - WILLIAN FICHTNER + +[CRED114] +SONNY FORELLI - TOM SIZEMORE + +[CRED115] +STEVE SCOTT - DENNIS HOPPER + +[CRED116] +AVERY CARRINGTON - BURT REYNOLDS + +[CRED117] +RICARDO DIAZ - LUIS GUZMAN + +[CRED118] +LANCE VANCE - PHILIP MICHAEL THOMAS + +[CRED119] +COLONEL JUAN CORTEZ - ROBERT DAVI + +[CRED120] +UMBERTO ROBINA - DANNY TREJO + +[CRED121] +PHIL CASSIDY - GARY BUSEY + +[CRED122] +MITCH BAKER - LEE MAJORS + +[CRED123] +MERCEDES CORTEZ - FAIRUZA BALK + +[CRED124] +KENT PAUL - DANNY DYER + +[CRED125] +JEZZ TORRENT - KEVIN MCKIDD + +[CRED126] +TAXI CONTROLLER - DEBORAH HARRY + +[CRED127] +CANDY SUXXX - JENNA JAMESON + +[CRED128] +BJ SMITH - LAWRENCE TAYLOR + +[CRED129] +AUNTIE POULET - YOUREE CLEOMILI HARRIS + +[CRED130] +SUPPLIER - ARMANDO RIESCO + +[CRED131] +COUGAR - BLAYNE PERRY + +[CRED132] +HILARY - CHARLES TUCKER + +[CRED133] +CONGRESSMAN ALEX SHRUB - CHRIS LUCAS + +[CRED134] +OLD MAN KELLY - GEORGE DICENZO + +[CRD134A] +CAM JONES - GREG SIMS + +[CRD134B] +PSYCHO - HUNTER PLATIN + +[CRD134C] +MAUDE THE ICE CREAM LADY - JANE GENNARO + +[CRD134D] +JETHRO - JOHN ZURHELLEN + +[CRD134E] +GONZALES - JORGE PUPO + +[CRD134F] +DWAYNE - NAVID KHONSARI + +[CRD134G] +DICK - PETER MCKAY + +[CRD134H] +MIKE THE GOON & PORN GUY - ROBERT CIHRA + +[CRD134I] +PERCY - RUSSELL FOREMAN + +[CRED135] +MOTION CAPTURE + +[CRED136] +ANIMATED BY + +[CRD136A] +TECHNICAL DIRECTION BY ALEX HORTON + +[CRED137] +DIRECTED BY + +[CRD137A] +DIRECTED BY NAVID KHONSARI + +[CRED138] +PRODUCED BY + +[CRD138A] +PRODUCED BY JAMIE KING + +[CRD138B] +RENAUD SEBBANE + +[CRED139] +RECORDED AT PERSPECTIVE STUDIOS, BROOKLYN + +[CRED140] +MOTION CAPTURE ACTORS + +[CRD140A] +BLAYNE PERRY + +[CRD140B] +JONATHON SALE + +[CRD140C] +CHARLES TUCKER + +[CRD140D] +EDDIE MARRERO + +[CRD140E] +WILLIAM MCCALL + +[CRD140F] +JORGE PUPO + +[CRD140G] +ROBERT JACKSON + +[CRD140H] +TARA RADCLIFFE + +[CRD140I] +JENIFER GAMBETESE + +[CRD140J] +KRIS ACHEVARRIA + +[CRD140K] +ALI ORDOUBADI + +[CRD140L] +KAHLEEM POOLE + +[CRED141] +PEDESTRIAN DIALOGUE + +[CRD141A] +WRITTEN BY DAN HOUSER, MARC FERNANDEZ, GILLIAN TELLING AND NAVID KHONSARI + +[CRD141B] +WITH HELP FROM JEREMY POPE, LANCE WILLIAMS, AND JENNY JEMISON + +[CRED142] +WRITTEN BY + +[CRD142A] +DAN HOUSER AND JAMES WORRALL + +[CRED143] +DIRECTED BY DAN HOUSER, CRAIG CONNER, MARC FERNANDEZ, AND ALLAN WALKER + +[CRED144] +PRODUCED BY RENAUD SEBANNE + +[CRED145] +PEDESTRIANS + +[CRED146] +ADAM DAVIDSON, ADAM WATKINS, ALEJANDRO K. BROWN, ALEX ANTHONY SIOUKAS, ALEX GARCIA, + +[CRED147] +ALICE SALTZMAN, ALISON CIHRA, AMY SALIMA, AMY SALZMAN, ANDREA VIDELA, ANTHONY ATTI, + +[CRED148] +ANTHONY RIVERA, BIJAN SHAMS, BLAYNE PERRY, BRETT BISOGNO, BREYE MATA, BRIAN PANEN, + +[CRED149] +BROCK VODER, CAREY BERTINI, CHARISSE LAMBERT, CHRIS DIFAT, CHRIS REISENBERGER, + +[CRED150] +CHRISTOPHER BRODAY, CHRISTOPHER CARRO, CYNTHIA GREENE, DAMARIES LOPEZ, DAN LEE, + +[CRED151] +DAN SCHNEIDER, DAN TOYAMA, DAVID DEAN CHALTFIELD, JR., DAVID HARRISON, DAVID WILEY, + +[CRED152] +DEBORAH COLLINS, DEBRANDA CHANEY-GILES, DEMETRA KOUKOULAS, DENISE ROSADO, + +[CRED153] +DEVIN BENNETT, DEVIN WINTERBOTTOM, DORIS WOO, DOUGLAS HARRISON, DUNCAN COUTTS, + +[CRED154] +DUPE AJAYI, EDWIN AVELLANEDA, ELIZABETH HOWELL, ELIZABETH SATTERWHITE, ERIC NAGLE, + +[CRED155] +ESTEBAN KARPLUS, F. FONT, FUTABA HAYASHI, GENE HILGREEN, GERALD COSGROVE, + +[CRED156] +GERARD LUNA, GILLIAN TELLING, GREGG CARLUCCI, GREGORY CLERVOIX, GREGORY SCHWEIZER, + +[CRED157] +HADLEY TOMICKI, J. ROSSETT, JAMEEL VEGA, JASON JONES, JEFF ROSA, JENNIFER JEMISON, + +[CRED158] +JEREMY TAGGERT, JESSICA RIDER, JOSEPH GREENE,JOSEPH HOWELL, KATE DUKICH, + +[CRED159] +KEL O'NEILL, KEVIN HOPKINS, LADAWN JAMES, LANCE WILLIAMS, LAURA BUBBLES, + +[CRED160] +LAURA PATTERSON, LEE CUMMINGS, LETICIA L. YOUNG, LINDSAY KENNEDY, LISA ORITZ, + +[CRED161] +LORNA JORDAN, LUCIO AMADIO, MARCO FERNANDEZ, MARIKO TANAKA, MARLON MATTHEWS, + +[CRED162] +MARY TELLING, MASAYOSHI MITSUYAMA, MATTHEW CHUNG, MAX ALLSTADT, MAX BOGDANOV, + +[CRED163] +MELISSA ALVAREZ, MICHAEL MAY, MICHAEL ROTHSTEIN, MIGUEL VIDAL, MIKE FEDERLINE, + +[CRED164] +NATALIE DESCALZO, N'GAI MEMBERS, NICOLAS MALLO, NOELLE SADLER, NORBERT MORIVAN, + +[CRED165] +OSWALD GREENE, JR., PETER MCKAY, PETER APPEL, PRESTON SAVARESE, RAFAEL GONZALES, + +[CRED166] +RANDY JOHNSON, REY CONCEPCION, RICHARD KROGER, ROB TIBBS, ROBERT JACKSON, + +[CRED167] +ROBERT SCHULER, ROSS A. MCINTYRE, RUSSELL FOREMAN, RUTH NUNEZ, SALVADORE SUAZO, + +[CRED168] +SAM WHITE, SANTOS GONZALES, SCOTT SMITH, SEYMOUR FRAILMAN, SPELMAN BRAUMAN, + +[CRED169] +STEPHANIE TELLING, STEVE KNEZEVICH, STEVE ROBERT, SUMIKO YASUDA, SUSAN LEWIS, + +[CRED170] +SYLVIA COLACIOS, TOMOKO MIYAZAKI, TRON, VERDEL HALE, YVES MONDESIR, ZENO LEINFELDER, + +[CRED171] +DAVID BEDDOES, CHRISTINE CHALMERS, BARRY CLARK, NEIL CORBETT, KIM GURNEY, NEIL MEIKLE, + +[CRED172] +CASSIE OLIVER, LORRAINE ROY, DAVID WATSON, KEVIN WONG, WILL MORTON + +[CRED175] +ADAM DAVIDSON + +[CRED176] +LANCE WILLIAMS + +[CRED177] +NEIL MCCAFFREY + +[CRED178] +LAURA PATERSON + +[CRED179] +REY CONCEPCION + +[CRED180] +CHARLES HEROLD + +[CRED181] +ANDREW GREENWALD + +[CRED182] +JAMES MIELKE + +[CRED183] +PETER SUCIU + +[CRED184] +ALEX ODULIO + +[CRED185] +DON NKRUMAH + +[CRED186] +KENDALL PITTMAN + +[CRED187] +SAL SUAZO + +[CRED188] +EREK MATEO + +[CRED189] +CHRIS DIFATE + +[CRED190] +LEILA MILTON + +[CRED191] +DARREN ZOLTOWSKI + +[CRED192] +VIRGINIA SMITH + +[CRED193] +KEVIN CASSIN + +[CRED194] +JASON SHIGEMORI + +[CRED195] +KELLY KINSELLA + +[CRED196] +MOLLIE STICKNEY + +[CRED197] +STANTON SARJEANT + +[CRED198] +LAURA WALSH + +[CRED199] +MARK GARONE + +[CRED200] +JOANNA SLY + +[CRED201] +ELIZABETH HOWELL + +[CRED202] +ANA HERCULES + +[CRED203] +SHIRLEY IRICK + +[CRED204] +KASHONA FIELDS + +[CRED205] +JOEL M. LILJE + +[CRED206] +JOHN DIBENEDETTO + +[CRED207] +NANCY GILES + +[CRED208] +RYAN CROY + +[CRED209] +JENNIFER KOLBE + +[CRED210] +LIAM BURKE + +[CRED211] +SIGRID PREISSL + +[CRED212] +ANITA FITZSIMONS + +[CRED213] +PHILIPPA RASELLI + +[CRED214] +WIL QUESNEL + +[CRED215] +FALKO BURKERT + +[CRED216] +SARA SEWELL + +[CRED217] +RADIO STATIONS AND MUSIC + +[CRED218] +MUSIC CONSULTANCY + +[CRD218A] +HEINZ HENN + +[CRD218B] +STUART ROSS + +[CRED219] +SOUNDTRACK CO-ORDINATOR + +[CRED220] +TERRY DONOVAN + +[CRED221] +PRODUCER FOR ROCKSTAR GAMES + +[CRED222] +DAN HOUSER AND LAZLOW + +[CRED223] +PRODUCER FOR ROCKSTAR NORTH + +[CRED224] +CRAIG CONNER + +[CRED225] +ALLAN WALKER + +[CRED226] +LAZLOW + +[CRED227] +DJ BANTER AND IMAGING + +[CRED228] +WRITTEN BY DAN HOUSER AND LAZLOW + +[CRED229] +FLASH FM + +[CRD229A] +TONI-MARIA CHAMBERS + +[CRD229B] +IMAGING VOICE AND PRODUCTION-JEFF BERLIN + +[CRED230] +SPECIAL THANKS TO + +[CRED231] +TOMMY MOTTOLA, + +[CRED232] +MICHELLE ANTHONY, + +[CRED233] +STEVE BARNETT, + +[CRED234] +CHUCK FLECKENSTEIN, + +[CRED235] +RITA LIBERATOR + +[CRED236] +MARTIN & CLAIRE LOGAN + +[CRED237] +SANDRA HUTTON + +[CRED238] +CHRISTINE DAVIDSON + +[CRED239] +ALAN, RED & BIGFOOT + +[CRED240] +LE T + +[CRED241] +COLIN DONALD + +[CRED242] +KERRY STALLWOOD + +[CRED243] +ALAN MCGREGOR + +[CRED244] +CHRIS MORTON + +[CRED245] +EMIL BUSSE + +[CRED246] +EMILY BAILLIE + +[CRED247] +KEVIN ARCHIBALD + +[CRED248] +MORAG KERR + +[CRED249] +CATH WALKER + +[CRED250] +ISO BAR + +[CRED251] +WATERLINE + +[CRED252] +NEWS CAFE + +[CRD251A] +THE POND + +[CRD252A] +PIVO + +[CRED253] +BUDGET VIDEO RENTALS + +[CRED254] +LORNA'S SCOOTER + +[CRED255] +GARETH MURFIN + +[CRED256] +ADDITIONAL ART + +[CRED257] +TONY PORTER + +[CRED258] +CRAIG MOORE + +[CRED259] +CUT SCENE LIP-SYNC ANIMATION + +[CRED260] +COSGROVE HALL FILMS + +[CRED261] +PRODUCER - OWEN BALLHATCHET + +[CRED262] +SENIOR ANIMATOR - JON TURNER + +[CRED263] +ANIMATORS - RICHARD DRUMM + +[CRED264] +DAVE BROWN + +[CRED265] +MAIR THOMAS + +[CRED266] +PRASHANT PATEL + +[CRED267] +AUDIO TECHNOLOGY CONSULTANT + +[CRED268] +RIK EDE FOR GAMESOUND LTD. + +[CRED269] +DTS INTEGRATION SUPPORT + +[CRED270] +TED LAVERTY FOR DTS + +[CRED271] +CHRIS GREER FOR DTS + +[CRED272] +JASON PAGE FOR SCEE + +[CRED273] +RESEARCH AND ANALYSIS + +[CRED274] +VROCK + +[CRED275] +DJ: LAZLOW AS HIMSELF + +[CRED276] +IMAGING VOICE-JOE KELLY + +[CRED277] +IMAGING PRODUCTION-JONATHAN HANST + +[CRED278] +WAVE 103 + +[CRED279] +DJ: ADAM FIRST-JAMIE CANFIELD + +[CRED280] +IMAGING VOICE-JEN SWEENEY + +[CRED281] +IMAGING PRODUCTION-JONATHAN HANST + +[CRED282] +FEVER 105 + +[CRED283] +DJ: OLIVER 'LADYKILLER' BISCUIT-JULIUS DYSON + +[CRED284] +IMAGING VOICE MALE-ED MCMANN + +[CRED285] +IMAGING VOICE FEMALE-SHAWNEE SMITH + +[CRED286] +IMAGING PRODUCTION- LISTEN KITCHEN + +[CRED287] +EMOTION 98.3 + +[CRED288] +DJ: FERNANDO- FRANK CHAVEZ + +[CRED289] +IMAGING VOICE-JEN SWEENEY + +[CRED290] +IMAGING PRODUCTION-JONATHAN HANST + +[CRED291] +RADIO ESPANTOSO + +[CRED292] +DJ: PEPE-TONY CHILRODES + +[CRED293] +WILDSTYLE + +[CRED294] +DJ: MISTER MAGIC AS HIMSELF + +[CRED295] +IMAGING VOICE-FRANK SILVESTRO + +[CRED296] +IMAGING PRODUCTION-LAZLOW + +[CRED297] +KCHAT + +[CRED298] +WRITTEN BY DAN HOUSER AND LAZLOW + +[CRED299] +PRODUCED AND EDITED BY LAZLOW + +[CRED300] +DJ AMY SHECKENHAUSEN -LEYNA WEBER + +[CRED301] +JEZ TORRENT-KEVIN MCKIDD + +[CRED302] +MANDY -COLLEEN CORBETT + +[CRED303] +MICHELLE CARAPADIS-MARY BIRDSONG + +[CRED304] +MR.ZOO-CARL DOWLING + +[CRED305] +GETHSEMANEE-LYNN LIPTON + +[CRED306] +CLAUDE MAGINOT-JOHN MAUCERI + +[CRED307] +BJ SMITH-LAWRENCE TAYLOR + +[CRED308] +THOR-FRANK FAVA + +[CRED309] +RADIO CALLERS + +[CRED310] +COUZIN ED, JOSH CLARK, JASON BUHRMESTER, JUAN ALLER, WAYNE OLIVER, SUSAN LEWIS, GILLIAN TELLING, TOM MURRAY, MIKE FERRANTE SR., EMMANUEL GOLDSTEIN, DAN HOUSER, NICK MANDELOS, GERRY COSGROVE, MIKE PALERMO, PORKCHOP, KEITH BROADAS + +[CRED311] +LEWIS, GILLIAN TELLING, TOM MURRAY, MIKE FERRANTE SR., EMMANUEL GOLDSTEIN, + +[CRED312] +DAN HOUSER, NICK MANDELOS, GERRY COSGROVE, MIKE PALERMO, PORKCHOP, + +[CRED313] +KEITH BROADAS + +[CRED314] +VCPR + +[CRED315] +WRITTEN BY DAN HOUSER AND LAZLOW + +[CRED316] +PRODUCED BY LAZLOW + +[CRED317] +MAURICE CHAVEZ-PHILLIP ANTHONY RODRIGUEZ + +[CRED318] +JONATHAN FREELOADER- PATRICK OLSEN + +[CRED319] +MICHELLE MONTANIUS-KELLY GUEST + +[CRED320] +REP. ALEX SHRUB- CHRIS LUCAS + +[CRED321] +CALLUM CRAYSHAW- SEAN MODICA + +[CRED322] +JOHN F. HICKORY- LJ GANSEN + +[CRED323] +PASTOR RICHARDS- DAVID GREEN + +[CRED324] +JAN BROWN- MAUREEN SILLIMAN + +[CRED325] +BARRY STARK- RENAUD SEBBANE + +[CRED326] +JENNY LOUISE CRAB- MARY BIRDSONG + +[CRED327] +KONSTANTINOS SMITH- KONSTANTINOS.COM + +[CRED328] +JEREMY ROBARD-PETER SILVESTRO + +[CRED329] +RADIO COMMERCIALS + +[CRED330] +WRITTEN BY DAN HOUSER AND LAZLOW + +[CRED331] +PRODUCED BY LAZLOW + +[CRED332] +ADDITIONAL JINGLES PRODUCED BY CRAIG CONNER + +[CRED333] +COMMERCIAL VOICES: + +[CRED334] +ADAM DAVIDSON, ALEX ANTHONY, ALICE SALTZMAN, AMY SALZMAN, KATE DUKICH, + +[CRED335] +ARAN RONICLE, BARB JONES, BEN KRECH, BRIAN THOMAS, BROCK YODER, CHRIS + +[CRED336] +FERRANTE, CRAIG CONNER, DAVE RYAN, DAVID GREEN, DORIS WOO, DOUGLAS + +[CRED337] +HARRISON, ED MCMANN, FRANK CHAVEZ, FRANK FAVA, GENE HILGREEN, GREG + +[CRED338] +SCHWEIZER, HUNTER PLATIN, JAMES FERRANTE, JEFF BERLIN, JEFF ROSA, JOE KELLY, + +[CRED339] +JOHN MAUCERI, JOSH CLARK, JULIE WEMYSS, KEVIN STRALEY, KIM GURNEY, LANCE + +[CRED340] +WILLIAMS, LAURA PATERSON, LAZLOW, LISA ORTIZ, LORNA JORDAN, LUCIEN JONES, + +[CRED341] +MAUREEN SILLIMAN, MIKE FERRANTE JR., PETE GUSTIN, PETER SILVESTRO, RAFF + +[CRED342] +CROLLA, RANDY JOHNSON, RICHARD KRUGER, RON REEVE, SHELLEY MILLER, SKY, TJ ALLARD + +[CRD344A] +AUDIO RECORDED AT DIGITAL ARTS STUDIOS, + +[CRED344] +NYC, TRACK 9 STUDIOS, NYC, + +[CRED345] +WEDDINGTON MULTIMEDIA, LOS ANGELES, + +[CRD345A] +SYNC SOUND, NYC AND RADIO LAZLOW, LONG ISLAND. + +[CRED346] +THANKS TO AXEL ERICSON AND WON LEE AT DIGITAL ARTS, PAUL VASQUEZ AT TRACK 9 STUDIOS, JOHN BOWEN AND JOHN HASSLER AT SYNC SOUND + +[CRED347] +MARK LLOYD + +[CRED348] +TIM BATES + +[CRED349] +KIT BROWN + +[CRED350] +ANDY MASON + +[CRED351] +PHIL DEANE + +[CRED352] +PHIL ALEXANDER + +[CRED353] +MATT HEWITT + +[CRED354] +DENBY GRACE + +[CRED355] +ANTOINE CABROL + +[CRED356] +JONOTHAN STONES + +[CRED357] +MIKE BLACKBURN + +[CRED358] +TIM MCGAFF + +[SUNSHIN] +Sunshine Autos + +[CHERRYP] +Cherry Popper Icecreams + +[KAUFCAB] +Kaufman Cabs + +[BOATYAR] +The Boatyard + +[WANT_L] +Your wanted level has been suspended, if you commit a crime whilst the stars are flashing your full wanted level will be reinstated. + +[PICK1] +Body Armor delivered to Ocean View Hotel! + +[HOTRNG] +HOTRING + +[BLODRNG] +BLOODRING + +[DIRTRNG] +DIRTRING + +[FEC_ABR] +Accelerate, Brake or Reverse + +[FEI_BTU] +; = - + +[FEI_SCR] +Scroll + +[SKUMBUY] +Skumole Shack purchased: $~1~ + +[SKUM_L] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase Skumole Shack for $~1~ + +[SKUM_T] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase Skumole Shack for $~1~ + +[SKUM_C] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to purchase Skumole Shack for $~1~ + +[LG_35] +Destination + +[BOAT_AS] +~g~The Boatyard will now generate revenue up to a maximum of $~1~. Make sure you collect it regularly. + +[BOAT_A2] +BOATYARD ASSET COMPLETED + +[BOAT_N] +Checkpoint Charlie + +[BOAT_P] +~g~collect the packages before the time runs out. + +[FEI_R1B] +R1 \ R2 button - + +[HELP9_A] +Press the~h~ ~k~~PED_FIREWEAPON~ button ~w~to ~h~fire~w~ the sniper rifle. + +[HELP21] +Press the ~h~~k~~VEHICLE_ENTER_EXIT~ ~w~button to enter or exit a vehicle. + +[CREAM] +Distribution + +[UMBERTO] +Cafe Robina + +[PU_CF1] +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to pick up this weapon. It will replace any weapon you have of the same type. + +[FED_RDM] +MAP & BLIPS + +[FEC_ILU] +Invert Look in 1st Person + +[NITRO] +All taxi's now have a boost jump! Just press the horn button. + +[RATNG53] +Untrustworthy + +[RATNG54] +Embarrassment + +[RATNG55] +Hacker + +[RATNG56] +Cheater + +[RATNG57] +Total Liar + +[STHC_04] +Highest score with Keepie-Uppy beach ball + +[STHC_05] +Hotring Best Result + +[STFT_13] +Fastest time on Downtown Chopper Checkpoint + +[STFT_14] +Fastest time on Ocean Beach Chopper Checkpoint + +[STFT_15] +Fastest time on Vice Point Chopper Checkpoint + +[STFT_16] +Fastest time on Little Haiti Chopper Checkpoint + +[STFT_21] +Fastest time in Hotring + +[STFT_22] +Fastest lap time in Hotring + +[STFT_20] +Fastest time for 'Cone Crazy' + +[HELP44] +Stop in the ~q~pink marker. + +[HELP45] +Press the ~h~~k~~PED_DUCK~~w~ button to duck. This will increase the accuracy of guns you are holding. + +[RCR1_5] +RC Bandit Race + +[RCPL1_7] +RC Baron Race + +[RCH1_11] +RC Raider Pickup + +[FEA_CTD] +Warning! This feature requires DTS compatible hardware to be connected. Proceed? + +[FEM_STE] +USE STEREO + +[GREET] +Greetings from... + +[LANCE_1] +Come on man, drive more careful! + +[LANCE_2] +Hey watch what you're doin! + +[LANCE_3] +Hey where are we goin' now? + +[LANCE_4] +What are we doin' now? + +[LAW4_15] +More money! + +[MERC_5] +Nice car, Mr. Vercetti. + +[MERC_26] +FASTER, FASTER, FASTER! + +[MERC_27] +Careful, Tommy, I only have a nose job last month. + +[MERC_28] +Tommy, drive careful. + +[MERC_29] +Tommy, go slower. + +[MERC_30] +Tommy, please kill someone other than me. + +[MERC_31] +Tommy, baby, don't kill me! + +[MERC_32] +Tommy, I'm glad you stole this car! + +[MERC_40] +I had so much fun. + +[MERC_43] +Adios, angel. + +[MERC_44] +You keep working out, now, you hear. + +[MERC_45] +Ciao, beautiful. + +[COL5_17] +Oh my god they've got a helicopter! + +[COL5_18] +Shoot the helicopter! + +[COL5_19] +Tommy, take that chopper out! + +[COL5_20] +He's coming again! Blow that chopper! + +[COL5_21] +Look at the size of that chopper! + +[COL5_22] +Here he comes again! + +[FEA_DSM] +Warning! This savegame is set to use DTS. This requires DTS compatible hardware to be connected. Please select whether you want to proceed using DTS or STEREO output. + +[STFT_23] +Fastest time for Checkpoint Charlie + +[HELP50] +Press the ~h~~k~~PED_ANSWER_PHONE~~w~ button to set the camera behind you. + +[HELP51] +Press the ~h~~k~~PED_ANSWER_PHONE~~w~ button to set the camera behind you. + +[HELP52] +Press the ~h~~k~~PED_ANSWER_PHONE~~w~ button to set the camera behind you. + +[HELP53] +Press ~h~~k~~PED_CYCLE_WEAPON_LEFT~~w~ button or ~h~~k~~PED_CYCLE_WEAPON_RIGHT~~w~ button to cycle through your available weapons. + +[HELP46] +There are eight different types of weapon. + +[HELP47] +You can carry one of each type of weapon at a time - one type of pistol, one type of shotgun. + +[HELP54] +~w~Cost: $~1~ ~r~Buying this will replace your current weapon. + +[HELP2A2] +Press the ~h~~k~~PED_SPRINT~~w~ button when running to ~h~sprint + +[HLPSN_A] +The sniper rifle allows you to zoom in and fire accurately at targets from a distance. + +[HLPSN_B] +Press and hold the~h~ ~k~~PED_LOCK_TARGET~ ~w~button to ~h~target~w~ with the sniper rifle. + +[HLPSN_C] +Press and hold the~h~ ~k~~PED_LOCK_TARGET~ ~w~button to ~h~target~w~ with the sniper rifle. + +[HLPSN_D] +Press the ~h~~k~~PED_SNIPER_ZOOM_IN~~w~ button ~w~to ~h~zoom in ~w~with the rifle and the~h~ ~k~~PED_SNIPER_ZOOM_OUT~ button ~w~to ~h~zoom out ~w~again. + +[HLPSN_E] +Press the ~h~~k~~PED_FIREWEAPON~~w~ button ~w~to ~h~fire~w~ the sniper rifle. + +[HLPSN_F] +Press the ~h~~k~~PED_FIREWEAPON~~w~ button ~w~to ~h~fire~w~ the sniper rifle. + +[HLPSN_G] +Press the ~h~~k~~PED_FIREWEAPON~~w~ button to ~h~fire~w~ the sniper rifle. + +[PLANE_H] +Use the ~h~~k~~VEHICLE_ACCELERATE~~w~ button to accelerate, Left and right to turn. + +[PLANE_4] { reVC update } +{ Use the ~h~~k~~VEHICLE_ACCELERATE~~w~ button to accelerate, Left and right to turn. } +Use the right analog stick to accelerate, pull back on the left analog stick to climb, push forwards to descend. Left and right to turn. + +[HELP55] +Press the ~h~~k~~PED_FIREWEAPON~~w~ button to attack the chef. + +[STPR_8] +Pole Position Club + +[STPR_9] +3321 Vice Point + +[STPR_10] +Links View Apartment + +[STPR_11] +El Swanko Casa + +[STPR_12] +1102 Washington Street + +[STPR_13] +Ocean Heights Apartment + +[STPR_14] +Skumole Shack + +[STPR_15] +Hyman Condo + +[RCCANX] +~r~RC plane cancelled. + +[CLT_HL2] +When a Clothes Pickup is collected, a one star or two star wanted level will be cleared. + +[CRED009] +MISSION DESIGN + +[CRED359] +LEE JOHNSON + +[CRED360] +HENDRIK LESSER + +[CRED361] +PASQUALE STACCHIOTTI + +[CRED362] +ENRIQUE FERNANDEZ + +[CRED363] +PAUL BYERS + +[CRED364] +MIKE EMENY + +[CRED365] +ROB DUNKIN + +[CRED366] +CHARLIE KINLOCH + +[CRED367] +KEVIN HOBSON + +[CRED368] +JIM CREE + +[MOB_66A] +Tommy, Tommy why you coming back here for? + +[MOB_66B] +I tell you we don't want to see you around here no more. + +[MOB_67A] +Tommy, me thinks you should be staying away, you hear? + +[MOB_67B] +The Haitian boys not too 'appy with you. + +[MOB_18A] +Tommy, it's Paulo, how are you? Right mate, anyway, thought I had to drop you a line. + +[MOB_18B] +Oh my good lord, my son, you will not believe the quality of the brass I just encountered. + +[MOB_18C] +Street walker or something, just down in Little Havana, mate. + +[MOB_18D] +Said her name was Mercedes or something. + +[MOB_18E] +Oh my god, mate. You gotta check this bird out. + +[MOB_18F] +Could strip the lead out of a pencil. Said I was the best she ever had and all. + +[MOB_18G] +Keep you potatoes skinned for her. Be seeing you. + +[MOB_72A] +Tommy, it's me, Lance. Keep your mouth shut there Tommy, 'cause I ain't got time to talk. + +[MOB_72B] +I ain't interested in what you got to say. Why should I be? You don't care about me, do you? + +[MOB_72C] +You gotta look after me a bit better. Give me a fair slice. You know... + +[MOB_72D] +Tommy... oh, look, man, I'm sorry. It's just that... + +[MOB_72E] +People patronize me all my life, treat me like a little kid. + +[MOB_72F] +My brother would do that. Please, man, don't do that. + +[MOB_72G] +I gotta go. + +[MOB_63A] +Tommy, it's Earnest. Earnest Kelly. + +[MOB_63B] +How are you? + +[MOB_63C] +I'm doing okay. I'll need a stick to walk, but I should be back at work soon enough. + +[MOB_63D] +Good. + +[MOB_63E] +I heard about Lance. What a little prick, eh? + +[MOB_63F] +Yes. + +[MOB_63G] +Never trust a man who walks the streets in his pajamas. That's what I say. Glad you killed him. I hope it was painful for the prick. + +[MOB_63H] +I think it was. I just didn't think he was like that... + +[MOB_63I] +Tommy, for a raging lunatic, you're pretty naive. I'll be back at work soon, teach you a thing or two about life, you hear. + +[MOB_63J] +Take your time, Earnest. Look after yourself. + +[MOB_16A] +Tommy, Paulo here, que pasa amigo? + +[MOB_16B] +What do you want Paul? I don't want any fake label clothes. + +[MOB_16C] +Very funny, mate, but you know I don't touch bent gear. Nah, I was just calling to see if I get a part in one your movies. + +[MOB_16D] +Back in England I did a lot of blue stuff, mate. I'm packing more heat than you, my son. + +[MOB_16E] +Paul, thanks for the offer, I'll bear it in mind. + +[MOB_16F] +Seriously, don't forget about me, after all I done for you. + +[MOB_16G] +That's what I'm trying to forget about. + +[MOB_17A] +Tommy Vercetti, how's it going, Mr. big shot? I hear all these things about you, some kind of player in town, now eh... + +[MOB_17B] +Paul, you're drunk. + +[MOB_17C] +Nah, you stupid prat, I ain't drunk. I only had a couple and some treats, ain't been to bed for a couple of days, you know. + +[MOB_17D] +Anyway, don't give me that. I ain't a mug. Who set you up in this town? Who? Me. That's who. + +[MOB_17F] +Really? + +[MOB_17G] +Don't give me that. Don't! I introduced you to people. I showed you the ropes, did a lot of stuff for you, and this is how you repay me. + +[MOB_17H] +You ignore me. You won't give me a way in, after all I did for you! What do you think I am? A div or something? + +[MOB_17I] +Paul, take it easy. I've been busy, don't be an idiot. + +[MOB_17J] +I ain't no idiot, mush. That's what they said in borstal. Are you asking for trouble son, because you're going to get it! + +[MOB_17K] +Tommy, mate. Please. You was my big hope! Please, don't laugh at me! + +[MOB_17L] +Paul, get some sleep, seriously. + +[MOB_73A] +Tommy, it's Steve. + +[MOB_73B] +Hey, Steve. + +[MOB_73C] +Hey indeed, genius. You're a marvel! I'm a marvel! They love us. We are re-writing the record books, pal. + +[MOB_73D] +We are talking major awards here. Finally, I can put my dad in a home an tell him to shut up. + +[MOB_73E] +Eeer, that's cool, Steve. + +[MOB_73F] +Cool? It's hot, man. Hot. H. O. T. He never believed in me. Never thought I was an artist, and now I've made it. + +[MOB_73G] +I'm the best damn skin flick director of all time, my friend. I just wanted to say, it's a pleasure to have met you. + +[MOB_73H] +Thanks steve. + +[MOB_73I] +I love you, baby. Don't go changing on me, you hear. + +[MOB_73J] +I hear you. Good bye, Steve. + +[BOLLOX] +Press the ~h~~k~~VEHICLE_HANDBRAKE~ ~w~button to drop a bomb. Press the ~h~~k~~VEHICLE_ENTER_EXIT~ ~w~button to cancel. + +[BRID_OP] +Storm warning over, all bridges to the mainland are now open. + +[BRID_CL] +Storm warning: All bridges to the mainland are closed. + +[LG_38] +Target + +[ASSET_C] +POLE POSITION ASSET COMPLETED! + +[ASSET_D] +~g~The Pole Position Club will now generate revenue up to a maximum of $~1~ per day. Pick up your cash regularly! + +[ST_WHEE] +Longest Wheelie time (secs) + +[ST_STOP] +Longest Stoppie time (secs) + +[ST_2WHE] +Longest 2 wheels time (secs) + +[ST_WHED] +Longest Wheelie distance (m) + +[ST_STOD] +Longest Stoppie distance (m) + +[ST_2WHD] +Longest 2 wheels distance (m) + +[OUTFT11] +Tracksuit + +[OUTFT12] +Frankie + +[RELOAD] +~g~You have won the fast reload ability! + +[APACHE] +Hunter delivered to helipad in Ocean Beach. + +[CRED369] +JOHN MCCARDLE + +[CRED370] +DAVID MURDOCH + +[CRED371] +CHRIS BROWN + +[CRED372] +PAUL GREEN + +[CRED373] +KYLE MILNE + +[CRED374] +KEVIN YUN + +[CRED375] +ERICK COBBS + +[CRED376] +RANDY BLAKE + +[CRED377] +BRANDON LIM + +[CRED378] +BRANDON FENOL + +[CRED379] +MICHAEL MANOLE + +[CRED380] +ALETHEIA SIMONSON + +[CRED381] +JOHN JANSEN + +[CUNTY] +New clothes delivered to the Vercetti Estate! + +[GOODBOY] +$50 Good Citizen Bonus! + +[NEWCONT] +New ~h~Contact Point ~w~opened at the marina in Ocean Beach!! + +[FIRELVL] +Fire Truck Mission level ~1~ + +[FEM_RET] +RETRY + +[FESZ_QR] +Are you sure you want to start a new game? All progress will be lost. Proceed? + +[SEG3_1] +TIME: + +[HELP56] +Press the ~h~~k~~CAMERA_CHANGE_VIEW_ALL_SITUATIONS~~w~ button to change camera modes. + +[HELP57] +Press the ~h~~k~~CAMERA_CHANGE_VIEW_ALL_SITUATIONS~~w~ button to change camera modes. + +[HELP58] +While targeting you can press the ~h~~k~~PED_CYCLE_TARGET_LEFT~ button or ~k~~PED_CYCLE_TARGET_RIGHT~ ~w~button to cycle through targets. + +[HELP59] +While targeting you can press the ~h~~k~~PED_CYCLE_TARGET_LEFT~ button or ~k~~PED_CYCLE_TARGET_RIGHT~ ~w~button to cycle through targets. + +[HELP60] +If you press the ~w~~k~~PED_SPRINT~ ~w~button while car jacking, you will not enter that vehicle. + +[HELP61] +You now have limitless ammo and double health on all vehicles. + +[FEC_LB1] +Look + +[FEC_LB2] +behind + +[FEC_LB3] +Look behind + +[FEC_R3] +(R3 button) + +[FEC_PED] +Controls On Foot + +[FEC_VEH] +Controls In Vehicle + +[FEC_FPR] +Controls For First Person + +[FEC_CMM] +Common Controls + +[FEC_PWL] +Go Left + +[FEC_PWR] +Go Right + +[FEC_PWF] +Walk Forward + +[FEC_PWT] +Walk towards camera + +[FEC_PLB] +Look Behind. + +[FEC_PFR] +Fire Weapon + +[FEC_CLE] +Cycle Weapon Left + +[FEC_CRI] +Cycle Weapon Right + +[FEC_LKT] +Lock Target + +[FEC_PJP] +Ped Jump + +[FEC_PSP] +Ped Sprint + +[FEC_PSH] +Ped Shoot + +[FEC_TLF] +Next Target To Left + +[FEC_TRG] +Next Target to Right + +[FEC_CCM] +Center Camera Behind player. + +[FEC_SZI] +Sniper Rifle Zoom In + +[FEC_SZO] +Sniper Rifle Zoom Out + +[FEC_LKL] +First Person Look Left + +[FEC_LRT] +First Person Look Right + +[FEC_LUP] +1st Person Look Up + +[FEC_LDN] +1st Person Look Down + +[FEC_LBH] +Look Behind Vehicle + +[FEC_LLF] +Look Left of Vehicle + +[FEC_LRG] +Look Right of Vehicle + +[FEC_HRN] +Horn + +[FEC_HBR] +Vehicle Handbrake + +[FEC_ACL] +Vehicle Accelerate + +[FEC_BRK] +Vehicle Brake + +[FEC_TSM] +Toggle SubMissions + +[FEC_CRD] +Change Radio Station + +[FEC_ENT] +Enter/Exit Vehicle + +[FEC_WPN] +Fire Weapon + +[FEC_PAS] +Pause + +[FEC_FPO] +1st Person Weapons + +[FEC_SMS] +Show mouse pointer + +[FEC_CMS] +Change camera mode all situations. + +[FEC_TSS] +Take Screen Shot + +[FEC_DBG] +DEBUG MENU + +[FEC_TGD] +Toggle Pad Game/Debug + +[FEC_TDO] +Turn Debug Camera Off + +[FEC_IVH] +Invert Mouse Horizontally: + +[FEC_MSL] +LMB + +[FEC_MSM] +MMB + +[FEC_MSR] +RMB + +[FEC_QUE] +??? + +[FEC_TWO] +Only Two Keyboard Keys Allowed + +[FEC_UMS] +Unique Mouse Keys only please. + +[FEC_OMS] +Only One Mouse Keys Allowed + +[FEC_UJS] +Unique Joystick buttons only please. + +[FEC_OJS] +Only One Joystick Buttons per action allowed + +[FEC_PTL] +Use LockTarget with Weapon Switch Left. + +[FEC_PTR] +Use LockTarget with Weapon Switch Right. + +[FEC_LBC] +Use Look Left With Look Right. + +[FEC_JBO] +JOY ~1~ + +[FEC_WAR] +Warning + +[FEC_OKK] +O.K. + +[FEC_DLF] +Delete Failed. + +[FEC_SVU] +Save Unsuccessful. + +[FEC_LUN] +Load Unsuccessful. File Corrupted, Please delete. + +[FEC_PAD] +Gamepad + +[FEC_JOY] +Joystick + +[FES_CSA] +Select a skin from the list below: + +[FET_HRD] +DEFAULT SETTINGS RESTORED + +[FET_MST] +MOUSE CONTROLLED STEERING + +[FEC_STR] +NUM STAR + +[FET_MIG] +LEFT, RIGHT, MOUSEWHEEL TO ADJUST + +[FET_CIG] +BACKSPACE TO CLEAR - LMB, RETURN TO CHANGE + +[FET_DSN] +Default Player Skin.bmp + +[FET_RSO] +ORIGINAL SETTING RESTORED + +[FET_RSC] +HARDWARE NOT AVAILABLE - ORIGINAL SETTING RESTORED + +[FEA_3DH] +AUDIO HARDWARE + +[FEA_SPK] +SPEAKERS CONFIGURATION + +[FEM_LOD] +DRAW DISTANCE + +[FEM_VSC] +FRAME SYNC + +[FEM_FRM] +FRAME LIMITER + +[FEM_MM] +MAIN MENU + +[FED_RES] +SCREEN RESOLUTION + +[FET_CTL] +CONTROLLER SETUP + +[FET_OPT] +OPTIONS + +[FEC_MSH] +MOUSE SENSITIVITY + +[FEC_IVV] +INVERT MOUSE VERTICALLY + +[FEC_FNC] +F~1~ + +[FEC_IRT] +INS + +[FEC_DLL] +DEL + +[FEC_HME] +HOME + +[FEC_END] +END + +[FEC_PGU] +PGUP + +[FEC_PGD] +PGDN + +[FEC_UPA] +UP + +[FEC_DWA] +DOWN + +[FEC_LFA] +LEFT + +[FEC_RFA] +RIGHT + +[FEC_NUM] +NUM + +[FEC_NMN] +NUM~1~ + +[FEC_FWS] +NUM / + +[FEC_PLS] +NUM + + +[FEC_MIN] +NUM - + +[FEC_DOT] +NUM . + +[FEC_NLK] +NUMLOCK + +[FEC_ETR] +ENT + +[FEC_SLK] +SCROLL LOCK + +[FEC_PSB] +BREAK + +[FEC_BSP] +BSPACE + +[FEC_TAB] +TAB + +[FEC_CLK] +CAPSLOCK + +[FEC_RTN] +RET + +[FEC_LSF] +LSHIFT + +[FEC_RSF] +RSHIFT + +[FEC_LCT] +LCTRL + +[FEC_RCT] +RCTRL + +[FEC_LAL] +LALT + +[FEC_RAL] +RALT + +[FEC_LWD] +LWIN + +[FEC_RWD] +RWIN + +[FEC_WRC] +WINCLICK + +[FEC_SPC] +SPC + +[WIN_TTL] +Grand Theft Auto VC + +[WIN_95] +Grand Theft Auto VC cannot run on Windows 95 + +[WIN_DX] +Grand Theft Auto VC requires at least DirectX version 8.1 + +[FET_EIG] +CANNOT SET A CONTROL FOR THIS ACTION + +[FET_DAM] +DYNAMIC ACOUSTIC MODELING + +[FEQ_SRE] +Are you sure you want to quit? All progress since the last save game will be lost. Proceed? + +[FEQ_SRW] +Are you sure you want to quit the game? + +[FET_QG] +QUIT GAME + +[FEN_STA] +START GAME + +[FET_PAU] +PAUSE MENU + +[REPLAY] +REPLAY + +[FEC_ANS] +Action + +[CVT_MSG] +Converting textures to optimal format for your video card + +[FEC_SFT] +SHIFT + +[FEH_VMP] +VIEW MAP + +[FES_DEE] +Delete Failed! Please try again. + +[FES_CMP] +Save failed! Please try again. + +[FESZ_WR] +Saving current game. Please wait... + +[FELD_WR] +Loading game. Please wait... + +[FEDL_WR] +Deleting saved game. Please wait... + +[PCRESRT] +Starting new game. Please wait... + +[FET_STI] +Standard Controls + +[FET_CTI] +Classic Controls + +[FET_PS] +PLAYER SKIN SETUP + +[FEH_NA] +OPTION NOT AVAILABLE + +[FEH_MPH] +MOUSE, CURSORS TO MOVE - PGUP, PGDN, MSWHEEL TO ZOOM, L - LEGEND + +[FEA_MP3] +MP3 PLAYER + +[NO_PCCD] +Please insert your GTA Vice City CD, or press ESC to cancel + +[FEH_SSA] +CURSORS TO MOVE - S TO SAVE TO FILE + +[FES_CMI] +LAST MISSION PASSED + +[FET_STS] +STATS SAVED TO 'STATS.HTML' + 'STATS.TXT' + +[WIN_VDM] +Grand Theft Auto VC cannot find enough available video memory + +[FEC_ERI] +Error! One or more control actions are not bound to a key or button. Please check all control actions are set + +[FEC_TFU] +Turret + Lean Up + +[FEC_TFD] +Turret + Lean Down + +[FET_RIG] +SELECT A NEW CONTROL FOR THIS ACTION + +[FEA_NM3] +NO MP3 FILES FOUND + +[FEA_MPB] +MP3 VOLUME BOOST + +[FEA_MUS] +MUSIC VOLUME + +[FEA_SFX] +SFX VOLUME + +[CVT_ERR] +You have run out of disk space. Please make some space on your harddisk before continuing. Press ESC to cancel. + +[FEA_ADP] +AUTO-DETECT HARDWARE + +{=================================== MISSION TABLE AMBULAE ===================================} + +[ATUTOR2:AMBULAE] +~g~Drive the patients to Hospital CAREFULLY. Each bump reduces their chances of survival. + +[A_FULL:AMBULAE] +~r~Ambulance full!! + +[A_FAIL2:AMBULAE] +~r~Your lack of urgency has been fatal to the patient! + +[A_FAIL3:AMBULAE] +~r~The patient is dead!! + +[A_PASS:AMBULAE] +Rescued! + +[A_COMP2:AMBULAE] +You will never get tired! + +[A_CANC:AMBULAE] +~r~Paramedic mission cancelled! + +[A_COMP3:AMBULAE] +Paramedic missions complete! You will never get tired when running! + +[ALEVEL:AMBULAE] +Paramedic Mission Level ~1~ + +[A_FAIL1:AMBULAE] +Paramedic mission ended. + +[A_SAVES:AMBULAE] +PEOPLE SAVED: ~1~ + +[A_COMP1:AMBULAE] +Paramedic missions complete: $~1~ + +{=================================== MISSION TABLE ASSIN1 ===================================} + +[ASM1_5:ASSIN1] +~r~Your target completed his deliveries! + +[ASM1_6:ASSIN1] +Deliveries left: + +[ASM1_7:ASSIN1] +~g~Carl Pearson, Pizza Delivery Man. Kill him before he completes his deliveries. + +[ASM1_A:ASSIN1] +Mr. Teal, your help in eradicating those out-of-towners was invaluable to business. I have more work for you with a more 'hands-on' approach. + +[ASM1_D:ASSIN1] +Mr. Teal, your help in eradicating those out-of-towners was invaluable to business. + +{=================================== MISSION TABLE ASSIN2 ===================================} + +[ASM2_1:ASSIN2] +~g~Mrs. Dawson will be leaving the Jewelry shop in Vice Point soon. Kill her. It must look like a car accident. + +[ASM2_3:ASSIN2] +~g~She's gonna blow! Get out of there! + +[ASM2_4:ASSIN2] +~r~You smashed up her car when she wasn't in it! She won't touch it now! + +[ASM2_5:ASSIN2] +~r~She got away! + +[ASM2_6:ASSIN2] +~r~You were too near the scene of the 'accident'! + +[ASM2_7:ASSIN2] +~r~It's supposed to look like an accident! Try ramming her off the road instead! + +[ASM2_8:ASSIN2] +~g~You must make Mrs. Dawson's death look like an accident. Do not use any weapons. + +[ASM2_9:ASSIN2] +~g~You need some wheels for this job! + +[ASM2_10:ASSIN2] +~g~When her car bursts into flames make your self scarce! + +[ASM2_11:ASSIN2] +Help me! + +[ASM2_12:ASSIN2] +Somebody help me! + +[ASM2_13:ASSIN2] +Oh my god! + +[ASM2_A:ASSIN2] +My compliments on a job well done Mr. Teal. My client was very pleased. + +[ASM2_2:ASSIN2] +health: + +{=================================== MISSION TABLE ASSIN3 ===================================} + +[ASM3_11:ASSIN3] +TIME: + +[ASM3_C:ASSIN3] +A European gang plans to hit a bank in Vice City. My employers would rather this didn't happen. + +[ASM3_D:ASSIN3] +Each member of the gang has a cover while they are here in Vice City. Some have menial jobs, others are on vacation. + +[ASM3_E:ASSIN3] +Each target and their likely whereabouts are taped under the phone. + +[ASM3_14:ASSIN3] +~g~Dick Tanner is working for DBP Security in Ocean Drive. + +[ASM3_15:ASSIN3] +~g~Marcus Hammond and Franco Carter are located near the Jewelry shop in Vice Point. + +[ASM3_16:ASSIN3] +~g~Nick Kong is cruising off Washington Beach. + +[ASM3_18:ASSIN3] +~g~Don't get too close to the target or he may spot you! + +[ASM3_19:ASSIN3] +~g~He's seen you! Waste him! + +[ASM3_20:ASSIN3] +~g~They have seen you! Make sure you waste them both! + +[ASM3_21:ASSIN3] +~r~You did not kill all the gang members in time! + +[ASM3_22:ASSIN3] +~g~Don't get too close to the targets or they may spot you! + +[ASM3_12:ASSIN3] +~g~A selection of weapons have been left for you nearby if you require them. You have ~h~9 MINUTES ~g~to kill all members of the gang. + +[ASM3_13:ASSIN3] +~g~Mike Griffin is working on an advertising board in Washington. + +[ASM3_17:ASSIN3] +~g~Charlie Dilson is riding in Washington. + +{=================================== MISSION TABLE ASSIN4 ===================================} + +[ASM4_10:ASSIN4] +~g~Looks like you're not the only one after the briefcase! Get it to Ammu-Nation, quick time! + +[ASM4_12:ASSIN4] +Distance: + +[ASM4_15:ASSIN4] +~g~Get the sniper rifle to your right. + +[ASM4_16:ASSIN4] +~g~Watch the woman on the balcony, she will walk down the escalators and ask someone the time. + +[ASM4_17:ASSIN4] +~g~Once the conversation has finished kill the person she spoke to, but do not kill her. + +[ASM4_18:ASSIN4] +~g~Once the target is dead retrieve his briefcase and take it to Ammu-Nation in Downtown. + +[ASM4_19:ASSIN4] +~g~Keep your distance from the target! Use the distance bar in the upper right corner of the screen. + +[ASM4_20:ASSIN4] +~g~If it gets full he will see you. + +[ASM4_21:ASSIN4] +~g~Get the briefcase! + +[ASM4_22:ASSIN4] +~g~Take the briefcase to Ammu-Nation in Downtown. + +[ASM4_23:ASSIN4] +~g~He has spotted you! Nail him and get the briefcase! + +[ASM4_25:ASSIN4] +~r~You killed the woman you fool! + +[ASM4_26:ASSIN4] +~r~The target has boarded his flight! + +[ASM4_27:ASSIN4] +~r~The target has seen you! You should have kept your distance! + +[ASM4_28:ASSIN4] +~r~The target heard you firing your weapon! + +[ASM4_29:ASSIN4] +~r~Itchy trigger finger? You killed him too soon! + +[ASM4_A:ASSIN4] +Time to fry bigger fish, Mr. Teal. There's a rifle in the foliage to your right. + +[ASM4_B:ASSIN4] +Watch the woman standing on the balcony above the check-in desks. She will walk through the crowd and ask someone the time. + +[ASM4_C:ASSIN4] +You must kill that person, retrieve his case and take it to the location taped under the phone. + +{=================================== MISSION TABLE ASSIN5 ===================================} + +[ASM5_A:ASSIN5] +There is a valuable exchange taking place on the roof of the Cherry Popper Ice Cream Company. + +[ASM5_B:ASSIN5] +Kill everyone involved, steal the merchandise and take it to the helipad at the airport. + +[ASM5_C:ASSIN5] +There is a gate to your left that leads to the back of the factory. + +[ASM5_1:ASSIN5] +~g~Enter the compound behind the Cherry Popper Ice Cream Company The deal is taking place on the roof. + +[ASM5_2:ASSIN5] +~g~Get the merchandise and take it to the helipad at the airport! + +[ASM5_3:ASSIN5] +~g~Take the merchandise to the helipad at the airport! + +{=================================== MISSION TABLE BANKJ1 ===================================} + +[WANTED1:BANKJ1] +~g~Shake the cops and lose your wanted level! + +[BJM1_A:BANKJ1] +Tommy! Hey, Tommy, look at this, this is great! I've got us this minibar installed! + +[BJM1_B:BANKJ1] +We got a whole bar downstairs, Ken. + +[BJM1_C:BANKJ1] +Yeah, yeah, whatever. Well, I got the chalkboard you asked for. + +[BJM1_D:BANKJ1] +Ah, that's the benefit of a law school education: the ability to follow instructions. + +[BJM1_E:BANKJ1] +Now, I need a safe man. + +[BJM1_F:BANKJ1] +Oh, all right, well, let me think...safe, safe, safe, safe - I got it! This guy will blow you away! + +[BJM1_G:BANKJ1] +Ahh, nah, that schmuck. He's on the inside. + +[BJM1_H:BANKJ1] +Where inside? + +[BJM1_I:BANKJ1] +In a police headquarter cell awaiting transfer. + +[BJM1_J:BANKJ1] +I think he's about to get paroled.... + +[BJM1_1:BANKJ1] +~g~Break Cam Jones out of police custody! + +[BJM1_3:BANKJ1] +~g~You will find something useful in the station's locker room. + +[BJM1_21:BANKJ1] +~g~The key card to the cells can be found upstairs in the station. + +[BNK1_7:BANKJ1] +Cam Jones? + +[BNK1_8:BANKJ1] +I'm busting you out! + +[BNK1_10:BANKJ1] +Yeah, that's me.. + +[BNK1_11:BANKJ1] +Whatever you say! + +[BNK1_13:BANKJ1] +I'm gonna be doing a job and you're my safe cracker. + +[BNK1_14:BANKJ1] +Beats losing my ass in a cell! + +[BJM1_22:BANKJ1] +~g~Get Cam back to his house! + +[BJM1_23:BANKJ1] +~g~You need to get the key card first! + +[BNK1_12:BANKJ1] +Lose the heat and get me back to my place! + +[BJM1_20:BANKJ1] +Put the weapon away or face the consequences! + +[BJM1_5:BANKJ1] +Only authorized personnel beyond this point! + +[BJM1_2:BANKJ1] +~r~You were supposed to bust Cam out, not get him killed! + +[BJM1_4:BANKJ1] +He's armed! Kill him! + +{=================================== MISSION TABLE BANKJ2 ===================================} + +[BJM2_A:BANKJ2] +We need a stick up man. You know one? + +[BJM2_B:BANKJ2] +Hey, Tommy, Tommy, Tommy, this stuff keeps you sharp, man. + +[BJM2_C:BANKJ2] +WoooOOOooo! + +[BJM2_D:BANKJ2] +I could be your stick up man! Stick 'em up! Stick 'em up! + +[BJM2_E:BANKJ2] +You ain't a stick up man, you're an idiot. + +[BJM2_F:BANKJ2] +Now get yourself a drink and shut up. + +[BJM2_G:BANKJ2] +Hey, get outta my way! Yeh yeh yeh - ow ow ow! + +[BJM2_H:BANKJ2] +Cam, what do you think? + +[BJM2_I:BANKJ2] +Well, the best shooter in this town is a guy named Cassidy. + +[BJM2_J:BANKJ2] +Is that so? + +[BJM2_K:BANKJ2] +Yeah. A military guy, or he thinks he is. + +[BJM2_L:BANKJ2] +I doubt he was ever in the army, but he certainly knows how to get a hold of guns. + +[BJM2_M:BANKJ2] +He'll be down at the shooting range. + +[BJM2_2A:BANKJ2] +You Phil Cassidy? + +[BJM2_2B:BANKJ2] +Why? + +[BJM2_2C:BANKJ2] +I'm looking for a man who can handle a gun. From this setup, I'm not too convinced. + +[BJM2_2D:BANKJ2] +Son, I could shoot a fly off your head at 80 feet. + +[BJM2_2E:BANKJ2] +Oh really? + +[BJM2_2F:BANKJ2] +Yeah. I learnt in the army. + +[BJM2_2G:BANKJ2] +Fly shooting real popular in the army? Glad I don't pay tax. + +[BJM2_2H:BANKJ2] +You tryin' to be funny kid? + +[BJM2_2I:BANKJ2] +Ha ha ha ha ha! + +[BJM2_2J:BANKJ2] +Let's shoot. + +[BJM2_1:BANKJ2] +~g~Go to Ammu-Nation in Downtown and talk to Phil Cassidy. + +[BJM2_3:BANKJ2] +HIT RATE: ~1~% + +[BJM2_4:BANKJ2] +SCORE ROUND ONE: ~1~ + +[BJM2_6:BANKJ2] +SCORE ROUND TWO: ~1~ + +[BJM2_7:BANKJ2] +TOTAL SCORE FOR SHOOT: ~1~ + +[BJM2_9:BANKJ2] +~g~Get to round two's starting point. + +[BJM2_11:BANKJ2] +~r~Phil's dead! + +[BJM2_12:BANKJ2] +~r~One of the shooters is dead! + +[BJM2_14:BANKJ2] +~g~Move on to the next area! + +[BJM2_15:BANKJ2] +SCORE: + +[BJM2_17:BANKJ2] +~g~Go and talk to Phil. + +[BJM2_18:BANKJ2] +SCORE TO BEAT: + +[BJM2_19:BANKJ2] +~g~Hit as many targets as you can in the time limit! + +[BJM2_22:BANKJ2] +~r~You have left the shooting range! + +[BJM2_23:BANKJ2] +~g~If you leave the shooting range during the competition, you will fail the mission. + +[BJM2_24:BANKJ2] +~g~The closest target is worth one point. + +[BJM2_25:BANKJ2] +~g~The middle target is worth two points. + +[BJM2_27:BANKJ2] +~g~All targets this round are worth one point. + +[BNK2_2:BANKJ2] +AIM 3-2-1 FIRE! + +[BNK2_3:BANKJ2] +AREA CLEAR! + +[BNK2_4:BANKJ2] +Hoooeee! + +[BNK2_5:BANKJ2] +Couldn't hit a barn door! + +[BNK2_7:BANKJ2] +So you wanna do me a favor, and help me put together a job? + +[BNK2_8:BANKJ2] +Son, after shooting like that, if you asked me to be your wife, I'd say yes. + +[BNK2_9A:BANKJ2] +Son, you better get your fancy talking and big ideas and shove 'em where there ain't no sun. You can't shoot nothin'! + +[BNK2_9B:BANKJ2] +You can't shoot nothin'. + +[BJM2_28:BANKJ2] +SCORE ROUND THREE: ~1~ + +[BJM2_20:BANKJ2] +~g~When you run out of ~w~time ~g~or ~w~ammunition ~g~the round is over! + +[BJM2_26:BANKJ2] +~g~The far target is worth three points. + +[BNK2_1:BANKJ2] +LIVE AMMUNITION + +[RANGE_1:BANKJ2] +SCORE FOR SHOOT: ~1~ + +[BJM2_2:BANKJ2] +~g~To exit the round press the ~h~~k~~PED_JUMPING~ ~g~button. + +[BJM2_N:BANKJ2] +Relax + +{=================================== MISSION TABLE BANKJ3 ===================================} + +[BJM3_A:BANKJ3] +Things are starting to come together nicely here. + +[BJM3_B:BANKJ3] +What's the plan, Tommy? Que pasa, amigo? + +[BJM3_C:BANKJ3] +The plan is you keep doing that like a moron. Anyhow, we need a driver. + +[BJM3_D:BANKJ3] +Tommy, I'll do it. I can drive. + +[BJM3_E:BANKJ3] +You want Hilary, mister. Not some smart-talking law school chump. + +[BJM3_F:BANKJ3] +Hilary's the real deal. You ain't never seen anyone drive so fast. I'll give him a call here. + +[BJM3_G:BANKJ3] +Hey Hil, it's Phil. How's it going? No. don't talk. We'll reminisce later. You want to do me a favor? + +[BJM3_H:BANKJ3] +I got me a guy from up north. No, no, I don't think he was in the service, but he wants a driver. + +[BJM3_I:BANKJ3] +For a bit of action. Okay, I understand. + +[BJM3_J:BANKJ3] +What'd he say? + +[BJM3_K:BANKJ3] +Well, he'll do it, no problem. Well, there might be a little problem - see, he has abandonment issues. + +[BJM3_L:BANKJ3] +Seems he won't work for anyone who can't beat him. Something to do with his momma. + +[BJM3_M:BANKJ3] +Anyway, he wants to race you first, said he'd meet you outside.. + +[BJM3_2A:BANKJ3] +You Tommy? Of course you're Tommy, I mean, + +[BJM3_2B:BANKJ3] +Why else would anyone want to speak to me? + +[BJM3_2C:BANKJ3] +OK. Consider it this way - + +[BJM3_2D:BANKJ3] +I'll drive for you IF, and only IF, you can drive properly. + +[BJM3_2E:BANKJ3] +Leave me alone - and I'll never forgive you. + +[BJM3_2:BANKJ3] +~r~Hilary is dead! + +[BJM3_4:BANKJ3] +~g~You need a car to take part! + +[BNK3_1:BANKJ3] +Ok. I'll drive for you, but please, treat me bad. + +[BNK3_3A:BANKJ3] +Illegal street race in progress at Vice Point. + +[BNK3_3B:BANKJ3] +Calling all officers. + +[BNK3_3C:BANKJ3] +Street racers, this is illegal and forbidden! + +{=================================== MISSION TABLE BANKJ4 ===================================} + +[BNK4_A:BANKJ4] +~w~As you can see, gentlemen, this is going to be the easiest buck we ever made. + +[BNK4_B:BANKJ4] +~w~Tommy, seriously, you gotta consider going into law. + +[BNK4_C:BANKJ4] +~w~What the hell are you smoking, man? This ain't no simple plan! + +[BNK4_D:BANKJ4] +~w~Well, who needs a simple plan anyway? + +[BNK4_E:BANKJ4] +~w~Take communism, now that was a simple plan. Didn't do Russia any favors, huh? + +[BNK4_F:BANKJ4] +~w~Calm down, all right? With a team like this it's going to be no problem. + +[BNK4_G:BANKJ4] +~w~We got Cam on safe. Phil? You and me will handle security, and Hilary'll drive the getaway car. + +[BNK4_H:BANKJ4] +~w~Uh, heh heh, aren't you forgetting somebody? Somebody who helped you to no end in this town? Somebody who... + +[BNK4_I:BANKJ4] +~w~Ken... Ken, that's right. Ken here, he washes the money for us and he keeps the drinks on ice. + +[BNK4_J:BANKJ4] +~w~I don't understand what I am supposed to be doing here. + +[BNK4_K:BANKJ4] +~w~Look, it's easy. Haven't you ever seen a movie? + +[BNK4_L:BANKJ4] +~w~We walk into the bank, we wave the gun around, and leave very rich men. + +[P_DEAD:BANKJ4] +~r~Phil's dead!! + +[C_DEAD:BANKJ4] +~r~Cam's dead!! + +[H_DEAD:BANKJ4] +~r~Hilary's dead!! + +[P_HIND:BANKJ4] +~r~You've lost Phil! + +[C_HIND:BANKJ4] +~r~Cam's been left behind! + +[H_HIND:BANKJ4] +~r~Hilary's been abandoned! + +[GETCAR:BANKJ4] +~g~Get in the getaway car to do the bank job! + +[TRASHED:BANKJ4] +~r~YOU TRASHED THE GETAWAY CAR!! + +[BNK4_1:BANKJ4] +I'll drive. + +[BNK4_2:BANKJ4] +Great. A passenger. Wait 'til I tell the group about this. + +[BNK4_3A:BANKJ4] +Hey, watch the wheels, Tommy! + +[BNK4_3B:BANKJ4] +Tommy, Hilary's taking up too much room! + +[BNK4_3C:BANKJ4] +I am not! + +[BNK4_3D:BANKJ4] +Are too! + +[BNK4_3E:BANKJ4] +Hey, shut up you two, or you can get out and walk. + +[BNK4_3F:BANKJ4] +Yeah - HILARY. + +[BNK4_3I:BANKJ4] +For god's sake, Phil, stop waving that thing around! + +[BNK4_3J:BANKJ4] +Yeah, you'll have somebody's eye out! + +[BNK4_3M:BANKJ4] +The car's ruined. RUINED! + +[BNK4_3O:BANKJ4] +You cling to an illusion of permanence. + +[BNK4_3P:BANKJ4] +What? + +[BNK4_3Q:BANKJ4] +You think all things will last. + +[BNK4_3R:BANKJ4] +Youth, loved ones, pizza, + +[BNK4_3S:BANKJ4] +All will pass or end and you must accept that. + +[BNK4_3T:BANKJ4] +You're right. Thanks, Cam. + +[BNK4_3U:BANKJ4] +Don't mention it. + +[BNK4_3V:BANKJ4] +Hey Tommy, why have we stopped? + +[BNK4_4A:BANKJ4] +~w~Keep driving around the block, OK? + +[BNK4_5:BANKJ4] +~w~Okay, Tommy, Okay. + +[BNK4_6:BANKJ4] +~w~THIS IS A RAID! + +[BNK4_7:BANKJ4] +~w~NOBODY MOVE! + +[BNK4_8:BANKJ4] +~w~EVERYBODY UP AGAINST THAT WALL! + +[BNK4_9:BANKJ4] +Phil, hold down the fort! + +[BNK4_10:BANKJ4] +Wilco roger that! + +[BNK4_11:BANKJ4] +Come on Cam, the vault's upstairs... + +[BK4_12A:BANKJ4] +Damn! It's a Flange 9000! + +[BK4_12B:BANKJ4] +This could take hours to crack, + +[BK4_12C:BANKJ4] +Or five minutes if you could find the manager. + +[BNK4_13:BANKJ4] +I'll go find where he's holed up. + +[BK4_14A:BANKJ4] +Phil, things still sweet? + +[BNK4_15:BANKJ4] +Sure. Everything's reeaal quiet. + +[BNK4_16:BANKJ4] +You - you're coming with me! + +[BNK4_17:BANKJ4] +Ok! Ok! Just don't shoot! + +[BNK4_18:BANKJ4] +I SAID NOBODY MOVE! + +[BK4_19A:BANKJ4] +It's on a time lock, + +[BK4_19B:BANKJ4] +You might as well give up now! + +[BK4_20A:BANKJ4] +Hell, I can bypass the time lock, + +[BK4_20B:BANKJ4] +Then we just need your key code and we're good! + +[BNK4_21:BANKJ4] +Stay here. You try anything and you're dead. + +[BNK422A:BANKJ4] +Cam, how long? + +[BK4_23A:BANKJ4] +Give me 5 minutes! + +[BK4_24A:BANKJ4] +I'm gonna check on Phil, I'll be right back. + +[BK4_24B:BANKJ4] +I told you not to touch that alarm! + +[BNK4_25:BANKJ4] +The SWAT team will be here any minute! + +[BNK4_27:BANKJ4] +I could do with some help here, Tommy! + +[BNK4_28:BANKJ4] +Vice City S.W.A.T! You are completely surrounded! + +[BNK4_29:BANKJ4] +Surrounded? HA HA HA HAAAAAaaa! + +[BNK4_30:BANKJ4] +They're crapping themselves, corrupt bastards! + +[BK4_31A:BANKJ4] +Tommy! The vault's open! + +[BK4_34A:BANKJ4] +Ok, we got the SWAT retirement fund. Let's get out of here! + +[BK4_34B:BANKJ4] +Ok, you asked for it! You've had your last chance! + +[BK4_35A:BANKJ4] +They're storming the place! + +[BK4_35B:BANKJ4] +Take cover! + +[BNK4_94:BANKJ4] +~w~Ok, guys. Nice an easy just as we planned. + +[BM_DEAD:BANKJ4] +~r~You needed the bank manager alive!! + +[ASSET_A:BANKJ4] +BANK HEIST ASSET COMPLETED! + +[ASSET_B:BANKJ4] +~g~The Malibu Club will now generate revenue up to a maximum of $~1~ per day. Pick up your cash regularly! + +[IDIOT:BANKJ4] +~r~ That's right, just wander about dressed like a lunatic and draw attention to yourself, IDIOT! + +{=================================== MISSION TABLE BARON1 ===================================} + +[COK1_A:BARON1] +Come on, baby, go! Yeah! Yeah! Arrrrr! + +[COK1_B:BARON1] +Stupid horse! I'll chop your head off! Grrrrr... + +[COK1_C:BARON1] +Who is this dickhead? + +[COK1_D:BARON1] +Tommy Vercetti. You remember me. + +[COK1_E:BARON1] +Excuse me. I'm a little anxious. Never trust a goddamn horse! + +[COK1_F:BARON1] +You do a good job - you work for me now. + +[COK1_H:BARON1] +As I said, amigo, you work for me now. Shut up. Some Judas has betrayed me. + +[COK1_I:BARON1] +He thinks I don't know how much money I should be making, but stealing 3% is as good as stealing 100%. + +[COK1_J:BARON1] +No one does this to me. NO ONE!! + +[COK1_K:BARON1] +You follow him from his apartment and you see where he goes! Later, we will kill him. + +[COK1_1:BARON1] +Ooh shit! + +[COK1_2:BARON1] +Too slow grandad! + +[COK1_4:BARON1] +Loser. + +[COK1_5:BARON1] +You better keep on running, asshole! + +[COK1_8:BARON1] +~g~Quick! Grab some wheels and follow him! + +[COK1_9:BARON1] +~r~You're supposed to follow him, not kill him! + +[COK1_10:BARON1] +~g~Go to the thief's house and find out where he's stashing the money. + +[COK1_11:BARON1] +~g~Have a look through his window. + +[COK1_7:BARON1] +~g~He's escaped to the roof, keep on his tail but don't kill him! + +[COK1_G:BARON1] +I work for money. + +{=================================== MISSION TABLE BARON2 ===================================} + +[COK2_A:BARON2] +What kind of incompetent fool are you? + +[COK2_B:BARON2] +FOOL! FOOL! FOOL! FOOL! + +[COK2_C:BARON2] +Tommy! + +[COK2_D:BARON2] +What, Ricardo? + +[COK2_E:BARON2] +These idiots - they always trying to screw you. + +[COK2_F:BARON2] +That's the problem with this business. + +[COK2_G:BARON2] +What do you think you're doing? + +[COK2_H:BARON2] +These pricks have failed me miserably, + +[COK2_I:BARON2] +Soon any mom and pop will think they can sell gallo in Vice City. + +[COK2_J:BARON2] +What next, huh? The stinking Mafia?! + +[COK2_K:BARON2] +That gang place is a fortress at ground level, + +[COK2_L:BARON2] +so Quentin here - Quentin! QUENTIN! + +[COK2_M:BARON2] +He'll fly you over the area! + +[COK2_N:BARON2] +Eradicate them! + +[COK2_O:BARON2] +What do you think you're doing? + +[COK2_P:BARON2] +What are you doing here? + +[COK2_Q:BARON2] +Hey, I've been asking around and it's obvious + +[COK2_R:BARON2] +that Diaz jumped the deal and iced my brother. + +[COK2_S:BARON2] +And he'll kill you, too! + +[COK2_T:BARON2] +I can take Diaz! + +[COK2_U:BARON2] +No - listen to me! I'll handle Diaz - + +[COK2_1:BARON2] +One thing puzzling me, What's with 'Quentin!? + +[COK2_2:BARON2] +I dunno, I always kinda liked it...Quentin Vance... + +[COK2_3:BARON2] +Vance? Your name's Lance Vance? + +[COK2_4:BARON2] +Hey! I got enough of that at school! + +[COK2_5:BARON2] +You ever fired one of those from a whirly? + +[COK2_8:BARON2] +Where the hell are we headed anyway? + +[COK2_9:BARON2] +Prawn Island. + +[COK2_13:BARON2] +Lance Vance. Poor bastard. + +[COK2_14:BARON2] +Ok, we're almost there. + +[COK2_15:BARON2] +We'll make a couple of passes. + +[COK2_16:BARON2] +So take out as many guns as you can. + +[COK2_17:BARON2] +Then I'll set you down and you're on your way. + +[COK2_20:BARON2] +Damn! This is a war zone! Take out some of those gunmen! + +[COK2_21:BARON2] +We're taking hits here, man! + +[COK2_22:BARON2] +This thing ain't cheap to fix! Take them out! + +[COK2_23:BARON2] +Ok, you're on your own from here! Good luck, brother! + +[COK2_24:BARON2] +Heli Health: + +[COK2_25:BARON2] +~g~Go and collect the money on the roof. + +[COK2_27:BARON2] +You're on MY turf asshole! + +[COK2_28:BARON2] +You're going down! + +[COK2_6:BARON2] +No. I'll get a bit of practice on the way though. + +[OPEN_B:BARON2] +The road blocks to the mainland have now been removed + +[COK2_V:BARON2] +- he's beginning to trust me. + +{=================================== MISSION TABLE BARON3 ===================================} + +[COK3_A:BARON3] +Not so pleased with your selves NOW, huh! + +[COK3_B:BARON3] +Ahahahahaa, Ahahahahaa. + +[COK3_C:BARON3] +Whoa! Watch where you're waving that thing! + +[COK3_D:BARON3] +No more pigeon shit on MY car, eh Tommy! + +[COK3_E:BARON3] +Guess not. + +[COK3_F:BARON3] +You're damn right. Now listen, + +[COK3_G:BARON3] +you know who owns the fastest boat on the east coast? + +[COK3_H:BARON3] +Not off hand, no. + +[COK3_I:BARON3] +ME. And I want it to stay that way. + +[COK3_J:BARON3] +Every smuggler from here to Caracas has one dream, a faster boat. + +[COK3_K:BARON3] +Rumor has it the boatyard has just completed such a vessel. + +[COK3_L:BARON3] +for some Costa Rican dickhead. + +[COK3_M:BARON3] +And Tommy...I WANT THAT BOAT!!! + +[COK3_N:BARON3] +I think your pigeons are back. + +[COK3_O:BARON3] +Ah! I thought I got you. Where'd you come from? + +[COK3_P:BARON3] +Pigeons! Boom! Aaaaah! + +[COK3_5:BARON3] +~g~Find the switch to lower the boat. + +[COK3_6:BARON3] +~g~Get the boat to the mansion. + +[COK3_7:BARON3] +~r~You destroyed the boat! + +[COK3_8:BARON3] +~g~Go to the boatyard at the docks and steal the fastest boat. + +[COK3_9:BARON3] +~g~Now get into the boat. + +{=================================== MISSION TABLE BARON4 ===================================} + +[COK4_A:BARON4] +Eject! PLASTIC CRAP! + +[COK4_B:BARON4] +You doing this to me? + +[COK4_C:BARON4] +Who do you think you are, you piece of plastic SHIT? Aaarrgh! + +[COK4_D:BARON4] +SCREW YOU! + +[COK4_E:BARON4] +It eats my favorite El burro movie, it die! + +[COK4_F:BARON4] +What else could I do? + +[COK4_G:BARON4] +It's probably not plugged in. + +[COK4_H:BARON4] +What? + +[COK4_I:BARON4] +Damn - no matter, I can buy a hundred more. + +[COK4_J:BARON4] +Now Tommy, + +[COK4_K:BARON4] +each month a freelancer sails into Vice City and moors his yacht. + +[COK4_L:BARON4] +He sells his cargo to the first boat. + +[COK4_M:BARON4] +I want you to take the speedboat + +[COK4_N:BARON4] +and beat all the other shitheads to it, + +[COK4_O:BARON4] +then you bring the cargo here, ok!? + +[COK4_P:BARON4] +Let me guess, you thought I could use a guardian angel. + +[COK4_Q:BARON4] +I'm just saying you need to let me in there, my man. + +[COK4_T:BARON4] +and you're probably gonna wanna kiss me! + +[COK4_U:BARON4] +Wacko. + +[COK4_V:BARON4] +Hahahahahaha! + +[COK4_1:BARON4] +So Tommy, we know it was Diaz busted our deal.. + +[COK4_3:BARON4] +So why the hell are we running errands for him? + +[COK4_4:BARON4] +The more we learn now, the less we have to learn when we take this town over! + +[COK4_5:BARON4] +I like your style, man. Real fresh. + +[COK4_12:BARON4] +Watch yourself, they're coming from all over! + +[COK4_13:BARON4] +Got 'em. Head for Diaz's as fast as you can! + +[COK4_14:BARON4] +You want some of this?! + +[COK4_15:BARON4] +Sleep with the fish! + +[COK4_16:BARON4] +Eat it! EAT IT! + +[COK4_19:BARON4] +More trouble up ahead! + +[COK4_20:BARON4] +There are gunmen on that jetty! + +[COK4_24:BARON4] +Good shooting, my friend. You're a real, proper, grade A lunatic. + +[COK4_25:BARON4] +Well, thank you. + +[COK4_26:BARON4] +See you around, Tommy. + +[COK4_27:BARON4] +Okay, Mr. Lance Vance Dance. + +[COK4_28:BARON4] +~g~Get to the yacht before the other boats do! + +[COK4_31:BARON4] +~g~Go to the fastest boat at the jetty! + +[COK4_32:BARON4] +~r~Too slow! + +[COK4_33:BARON4] +~r~You destroyed the boat! + +[COK4_34:BARON4] +~g~Take those boats out! + +[COK4_35:BARON4] +Boat health: + +[COK4_R:BARON4] +Now you can feed me all this 'lonely tough guy' crap, + +[COK4_S:BARON4] +but I know one day I'm gonna save your ass, + +{=================================== MISSION TABLE BARON5 ===================================} + +[PROP_A:BARON5] +PROPERTY ACQUIRED! + +[COK4_30:BARON5] +~r~Lance is dead! + +[ASS1_A:BARON5] +I got us some cannons in the trunk. + +[ASS1_B:BARON5] +Holy shit! Where'd you get all this stuff? + +[ASS1_C:BARON5] +Been saving it for a rainy day. + +[ASS1_D:BARON5] +You like? + +[ASS1_E:BARON5] +Yeah, I like. + +[ASS1_F:BARON5] +You stupid pricks... + +[ASS1_G:BARON5] +my beautiful house + +[ASS1_H:BARON5] +look what you've done to it! + +[ASS1_I:BARON5] +This is for my brother! + +[ASS1_J:BARON5] +I trusted you, Tommy. + +[ASS1_K:BARON5] +I woulda had you made... + +[ASS1_L:BARON5] +Say goodnight, Mr. Diaz. + +[ASS1_1:BARON5] +This place is going to be crawling with assholes...be careful... + +[ASS1_2:BARON5] +Don't worry Tommy, I'll cover you. + +[ASS1_13:BARON5] +DIAZ?! I've come to take over your business! + +[ASS1_15:BARON5] +~g~Storm the mansion and kill Diaz! + +[ASS1_16:BARON5] +~g~Kill Diaz! + +[ASS1_17:BARON5] +~g~There are multiple routes into the mansion. + +[BUD1:BARON5] +Lances Health: + +[ASS1_18:BARON5] +~g~The door is locked, try another route. + +[ASS1_19:BARON5] +This way! + +[ASS1_14:BARON5] +TOMMY! You betrayed me, you idiot! I'm gonna kill you real soon.. + +[ASS1_20:BARON5] +Tommy, my problem with Quentin, not wit you, man! + +{=================================== MISSION TABLE BIKE1 ===================================} + +[BM1_A:BIKE1] +Where's Baker? + +[BM1_B:BIKE1] +I'm looking for Big Mitch Baker... + +[BM1_C:BIKE1] +Who's lookin'? + +[BM1_D:BIKE1] +Tommy Vercetti. + +[BM1_E:BIKE1] +Vercetti + +[BM1_F:BIKE1] +You don't look like the law, so that's bought you a minute. + +[BM1_G:BIKE1] +You better talk fast. + +[BM1_H:BIKE1] +Kent Paul said you might be interested in pulling security for a gig he's got set up. + +[BM1_I:BIKE1] +Kent Paul? Sheesh! No wonder he sent ya. + +[BM1_J:BIKE1] +The last time he was here he left through the window in nothing but his limey birthday suit. + +[BM1_K:BIKE1] +Are you interested or not? + +[BM1_L:BIKE1] +We only do favors for our own. + +[BM1_M:BIKE1] +How do I join? + +[BM1_N:BIKE1] +This ain't no country club, boy. Can you handle a bike? + +[BM1_O:BIKE1] +Can you sit on a stool and drink? + +[BM1_P:BIKE1] +Cougar, Zeppelin, go see how this girl handles a bike... + +[BM1_3:BIKE1] +~r~The racers have been attacked! + +[BIKE1_1:BIKE1] +All right, fancy clothes. Let's see what you can do. + +[BM1_1:BIKE1] +~g~Get a Freeway or an Angel and get to the starting grid. + +[BM1_2:BIKE1] +~g~You need a Freeway or an Angel to compete! + +{=================================== MISSION TABLE BIKE2 ===================================} + +[BM2_1:BIKE2] +CHAOSMETER: + +[BM2_A:BIKE2] +Ah, got ya again. + +[BM2_B:BIKE2] +Hey Vercetti. + +[BM2_C:BIKE2] +Cougar says you can handle a bike pretty good. + +[BM2_D:BIKE2] +Yeah, how many more errands am I gonna to have to run? + +[BM2_E:BIKE2] +I'm a very busy man. + +[BM2_F:BIKE2] +If it's a fight that's gonna settle this then bring it on. + +[BM2_G:BIKE2] +Being one of us ain't just about brawlin'. It's about being part of a family. + +[BM2_H:BIKE2] +Yeah, I've been part of a family before alright. It didn't work out. + +[BM2_I:BIKE2] +Yeah, right, but this family takes care of its own. + +[BM2_J:BIKE2] +We don't ask a man to do the dirty work and then let him do fifteen years hard time. + +[BM2_K:BIKE2] +Yeah, that's right. I've done my homework. + +[BM2_L:BIKE2] +This here's the biggest family of misfits, outcasts and badasses. + +[BM2_M:BIKE2] +Hell, some of us has even been betrayed by our own country. + +[BM2_N:BIKE2] +I was locked up during 'Nam. Ugly business. + +[BM2_O:BIKE2] +Which is why I'm gonna ask you to go mess with the man. + +[BM2_Q:BIKE2] +So get out there, grab a bike and show this city how pissed you are! + +[BM2_R:BIKE2] +Alright, alright. + +[BM2_3:BIKE2] +~g~This sound indicates that you have filled a part of the meter, continue to do so. + +[BM2_2:BIKE2] +~g~You must fill the Chaos Meter in the time given to show us how much of a badass you are! + +[BM2_4:BIKE2] +~r~You failed to fill the Chaos Meter in time! + +[BM2_P:BIKE2] +This whole damn country needs a kick in the ass, and we're the ones to deliver it. + +{=================================== MISSION TABLE BIKE3 ===================================} + +[BM3_A:BIKE3] +Hey there, Mitch. + +[BM3_B:BIKE3] +Well, if it ain't 'bad ass' Vercetti. + +[BM3_C:BIKE3] +Now I wanna see how good you can fight for your patch. + +[BM3_D:BIKE3] +A local street gang made the mistake of stealing my hog... + +[BM3_E:BIKE3] +probably because of some machismo thing or somethin'. + +[BM3_F:BIKE3] +Me and the boys would go over there and teach them a lesson in respect an'all. + +[BM3_G:BIKE3] +Anyways. + +[BM3_H:BIKE3] +Then I got to thinking - this would make a good initiation for you. + +[BM3_I:BIKE3] +You get my bike back, you can tell Paul he's got his security. + +[BM3_2:BIKE3] +~r~You were supposed to bring the bike back, not destroy it! + +[BM3_3:BIKE3] +~g~Get the bike back to the bar! + +[BM3_4:BIKE3] +~g~Get on the bike! + +[INTRUDE:BIKE3] +~g~You've been spotted! + +[BM3_6:BIKE3] +~g~They are holed up behind Ammu-Nation in the Downtown area. + +[BM3_7:BIKE3] +~g~You will need a fast bike to gain access to the roof. + +[BM3_8:BIKE3] +~g~Use the bike to jump from these stairs to the roof on the far side of the road. + +[BM3_1:BIKE3] +~g~A local gang has stolen Mitch Baker's Angel. Get it back! + +[BM3_9:BIKE3] +~g~Get Mitch's Angel and get out of there! + +{=================================== MISSION TABLE BMX_1 ===================================} + +[GETBIK2:BMX_1] +~r~You have ~w~~1~ seconds ~g~to get on a Dirt Bike! + +{=================================== MISSION TABLE BOATBUY ===================================} + +[DRUG_2:BOATBUY] +Put it out. There's a dude here. + +[DRUG_3:BOATBUY] +Hey suit dude! I guess you're the new owner? + +[DRUG_4:BOATBUY] +Yeah. Which one of the boats is the fastest? + +[DRUG_5:BOATBUY] +It's already in the water, dude, + +[DRUG_6:BOATBUY] +I though you might want to try her out. + +[DRUG_7:BOATBUY] +Dude, she's already running with a 300 horse power engine... + +[DRUG_8:BOATBUY] +...and the fiberglass hull, she just shoots through the waves.! + +[DRUG_9:BOATBUY] +She can do like zero to sixty in four seconds flat dude... + +[DRUG_10:BOATBUY] +and she can hold like twenty bales of the best Jamaican smoke right in the hull! + +[DRUG_11:BOATBUY] +So go ahead dude, she's ready to fly! + +[DRUG_12:BOATBUY] +Yo yo, uh, suit dude, you gotta light? + +[DRUG_1:BOATBUY] +Hello? Hel-lo?! Hello? + +[DRUG_13:BOATBUY] +Dude? + +{=================================== MISSION TABLE CAP_1 ===================================} + +[CAP1_B1:CAP_1] +~g~The Mafia is taxing your businesses. Find them and kill them. + +[CAP1_B2:CAP_1] +~g~The Mafia has taxed the Boatyard! + +[CAP1_B3:CAP_1] +~g~The Mafia has taxed the Ice Cream Factory! + +[CAP1_B4:CAP_1] +~g~The Mafia has taxed the Car Showroom! + +[CAP1_B5:CAP_1] +~g~The Mafia has taxed the Taxi Firm! + +[CAP_01:CAP_1] +Ok, what's the emergency? + +[CAP_02:CAP_1] +WHO? + +[CAP_03:CAP_1] +Tommy...some mob thugs ...said they'd come to take their cut... + +[CAP_04:CAP_1] +...said it was a Mr. Forello's money...I feel like crap. + +[CAP_05:CAP_1] +Forelli? SONNY Forelli? + +[CAP_06:CAP_1] +Yeah, that's the guy...I think...they were very insistent... + +[CAP_07:CAP_1] +Don't you worry, pop, I'm not angry with you. + +[CAP_08:CAP_1] +Get him to the hospital. + +[CAP_09:CAP_1] +Tommy...rip that guy a new asshole for me... + +[CAP_10:CAP_1] +I'm gonna rip him two! + +[CAP1_2:CAP_1] +You know the rules, Vercetti! + +[CAP1_3:CAP_1] +Mr. Forelli sends his regards! + +[CAP1_4:CAP_1] +It's the Harwood Butcher! + +[CAP1_5:CAP_1] +You tell Sonny - stay away! + +[CAP1_6:CAP_1] +Vice City is MINE now, NOT his. + +[CAP1_7:CAP_1] +You think you can take me down, Vercetti? + +[CAP1_8:CAP_1] +We'll keep coming after you until you die, Vercetti. + +[CAP1_9:CAP_1] +You don't stand a chance, you psychotic prick. + +[CAP1_10:CAP_1] +I'll murder you Vercetti. + +[CAP1_11:CAP_1] +You always were a jerk. + +[CAP1_12:CAP_1] +You're going to die, Vercetti. + +[CAP1_B6:CAP_1] +~g~You have found the collector, kill him. + +[CAP1_B7:CAP_1] +~g~You've lost the collector. + +[CAP1_B8:CAP_1] +~r~The collector has taxed all of your businesses. + +[CAP1_B9:CAP_1] +~g~The mafia has taxed The Malibu! + +[CAP1_B0:CAP_1] +~g~The mafia has taxed the film studio! + +[CAP1_C2:CAP_1] +~g~The Mafia has arrived at the Boatyard! + +[CAP1_C3:CAP_1] +~g~The Mafia has arrived at the Ice Cream Factory! + +[CAP1_C4:CAP_1] +~g~The Mafia has arrived at the Car Showroom! + +[CAP1_C5:CAP_1] +~g~The Mafia has arrived at the Taxi Firm! + +[CAP1_C9:CAP_1] +~g~The Mafia has arrived at The Malibu! + +[CAP1_C0:CAP_1] +~g~The Mafia has arrived at the film studio! + +[CAP1_D2:CAP_1] +~g~The Mafia is leaving the Boatyard! + +[CAP1_D3:CAP_1] +~g~The Mafia is leaving the Ice Cream Factory! + +[CAP1_D4:CAP_1] +~g~The Mafia is leaving the Car Showroom! + +[CAP1_D5:CAP_1] +~g~The Mafia is leaving the Taxi Firm! + +[CAP1_D9:CAP_1] +~g~The Mafia is leaving The Malibu! + +[CAP1_D0:CAP_1] +~g~The Mafia is leaving the film studio! + +[CAP1B10:CAP_1] +You've capped the Collectors. More are on their way. + +{=================================== MISSION TABLE CARBUY ===================================} + +[CAR1_1:CARBUY] +B.J. Smith. And you must be Mr. Vercetti. + +[CAR1_2:CARBUY] +Would you like the tour? + +[CAR1_3:CARBUY] +Might as well. + +[CAR1_4:CARBUY] +Well, I'm very sad to be selling the dealership to y'all. + +[CAR1_5:CARBUY] +This was my first investment after I turned pro. + +[CAR1_6:CARBUY] +But now it's time for me to move on. + +[CAR1_7:CARBUY] +You're leaving town? + +[CAR1_8:CARBUY] +Not in too much of a hurry, I hope? + +[CAR1_9:CARBUY] +No. I'm just coming out of retirement, and preparing for my future comeback. + +[CAR1_10:CARBUY] +The business wasn't too strong, + +[CAR1_11:CARBUY] +and my staff took it upon themselves to get a bit more + +[CAR1_12:CARBUY] +creative with the generation of wealth. + +[CAR1_13:CARBUY] +Obviously, I could wind down the business before I hand it over. + +[CAR1_14:CARBUY] +Hell, I could burn the place down if I wanted to. + +[CAR1_15:CARBUY] +This is prime development land. + +[CAR1_16:CARBUY] +Oh, I wouldn't worry about any of that. + +[CAR1_17:CARBUY] +This place seems perfect. + +[CAR1_18:CARBUY] +Yeh it does, So I take it we have a deal? + +{=================================== MISSION TABLE CARPAR1 ===================================} + +[MM_1_A:CARPAR1] +~g~Collect ~y~5 checkpoints~r~ WITHOUT ~g~smashing any ~r~CONES! ~g~You may collect checkpoints in ~y~ANY ORDER. + +[CONE_1:CARPAR1] +~r~You smashed a cone!! + +[MM_1_C:CARPAR1] +~y~PASS THROUGH~g~ a checkpoint to start the timer. ~g~Each checkpoint will credit you with ~y~~1~ SECONDS~g~. + +{=================================== MISSION TABLE COPCAR ===================================} + +[KILLS:COPCAR] +KILLS: + +[C_BREIF:COPCAR] +~g~Suspect last seen in the ~a~ area. + +[COPCART:COPCAR] +~g~You have ~1~ seconds to return to a police vehicle before the mission ends. + +[C_CANC:COPCAR] +~r~Vigilante mission cancelled! + +[C_TIME:COPCAR] +~r~Your time as a law enforcer is over! + +[C_COMP1:COPCAR] +Vigilante mission level 12 complete: Your max Body Armor increased to 150 + +[CLEVEL:COPCAR] +Vigilante Mission Level ~1~ + +[C_PASS:COPCAR] +THREAT ELIMINATED: $ ~1~ + +{=================================== MISSION TABLE COUNT1 ===================================} + +[CM1_A:COUNT1] +Mr. Vercetti? Hey. You bought the old print works? + +[CM1_B:COUNT1] +Yeah, my old man used to work on these. + +[CM1_C:COUNT1] +I was going to follow him in his trade, but...I lived a different life. + +[CM1_D:COUNT1] +You planning on selling the old machinery, breaking it down? + +[CM1_E:COUNT1] +I'm thinking we might print something - a newspaper, a magazine... + +[CM1_F:COUNT1] +Oh, crap, sonny, low grade crap. I've always fancied printing money. It ain't too hard. + +[CM1_G:COUNT1] +You know, I've been doing it on a small scale for years. + +[CM1_H:COUNT1] +Really? + +[CM1_I:COUNT1] +Sure. But we'd need some good quality plates. + +[CM1_J:COUNT1] +Of course! There's a counterfeiting syndicate already operating in Florida. + +[CM1_K:COUNT1] +A syndicate? + +[CM1_L:COUNT1] +Yeah. Just rumors is all I've heard. + +[CM1_M:COUNT1] +I know a man who's good with rumors... + +[CM1_N:COUNT1] +I used to spend the evenings with him, cleaning the rollers... + +[CM1_2A:COUNT1] +Look at the arse on that! + +[CM1_2B:COUNT1] +Awright girl, it's your loss mate init! + +[CM1_2C:COUNT1] +Awright me ol'china, how's it hangin'? + +[CM1_2D:COUNT1] +What do you know about counterfeiting? + +[CM1_2E:COUNT1] +Oh I'm fine Paul, how 'bout you? + +[CM1_2F:COUNT1] +Come 'ere! + +[CM1_2G:COUNT1] +Awright! Awright! Awright!! You're obviously a busy man. + +[CM1_2H:COUNT1] +All I know about dodgy readys is the Triads supply the plates. + +[CM1_2I:COUNT1] +They've got a shipping company down the docks, + +[CM1_2J:COUNT1] +the boss man would know when the plates are coming in next! + +[CM1_2K:COUNT1] +Thanks Paul. + +[CM1_2L:COUNT1] +What's the matter with you, you maniac! + +[CM1_2M:COUNT1] +Give me another drink, lively! + +[CM1_3:COUNT1] +~g~You've been spotted! + +[CM1_5:COUNT1] +~g~Go and meet Kent Paul at the Malibu Club! + +[CNT1_1:COUNT1] +Who are you? Oooof! Aaiieee! Not the face! Not the face! + +[CM1_1:COUNT1] +~g~Go to the Chartered Libertine Lines boat at the docks. + +[CM1_2:COUNT1] +~g~The Shipping Officer will have the information that is required. + +[CNT1_2:COUNT1] +Ok, I talk! I talk! + +[CM1_6:COUNT1] +~g~Get the information back to the Print Works! + +{=================================== MISSION TABLE COUNT2 ===================================} + +[CNT2_B1:COUNT2] +Alright, the courier's moving the plates from the docks today. + +[CNT2_B2:COUNT2] +I'm gonna go intercept them, grab the plates, lose any heat, and make my way back here. + +[CNT2_B3:COUNT2] +Now. Depending how well this goes, + +[CNT2_B4:COUNT2] +we may have five minutes to print the money before the counterfeit syndicate finds us, or we may have all year. + +[CNT2_B5:COUNT2] +Either way, I want green rolling off the presses five minutes after I get back. Got it? + +[CNT2_B6:COUNT2] +Don't you worry Tommy. We'll be ready. + +[CNT2_B7:COUNT2] +Me an'the boys will be around in the neighborhood case you need any heat taken care of. + +[CNT2_B8:COUNT2] +All right, everybody cool? All right. I'll catch you later... + +[CNT2_01:COUNT2] +~g~The counterfeit plates ~y~courier~g~ is arriving at the ~r~docks~g~ in a helicopter any second now. + +[CNT2_02:COUNT2] +~r~The plates courier has fled in the helicopter. + +[CNT2_03:COUNT2] +~r~The courier has arrived at his destination safely, you're too late! + +[CNT2_04:COUNT2] +~r~You destroyed the plates in the explosion! + +[CNT2_05:COUNT2] +~g~You have the counterfeit plates. Take them to the print works. + +[CNT2_06:COUNT2] +~g~The courier has died and dropped the plates, get to them before anyone else. + +[CNT2_07:COUNT2] +~g~One of the guards has picked up the plates, don't let 'em get away. + +[CNT2_08:COUNT2] +~g~The ~r~courier~g~ with the plates has arrived at the docks. + +[CNT2_4:COUNT2] +Private business. You're not welcome! + +[CNT2_09:COUNT2] +PRINT WORKS ASSET COMPLETED + +[CNT2_10:COUNT2] +~g~The print works will now generate revenue up to a maximum of $~1~. Make sure you collect it regularly. + +[CNT2_11:COUNT2] +~r~The plates are at the bottom of the sea! + +{=================================== MISSION TABLE CUBAN1 ===================================} + +[CUB1_A:CUBAN1] +Si, men? + +[CUB1_B:CUBAN1] +Hey, easy Papi, this man's for me. You, you the boy? + +[CUB1_C:CUBAN1] +Oh yeh. You the boy. I think so, you know? + +[CUB1_D:CUBAN1] +No. I don't think I do. + +[CUB1_E:CUBAN1] +Oh yeah? You come here, tough guy. + +[CUB1_F:CUBAN1] +You think you can take me on? + +[CUB1_G:CUBAN1] +You think you can play stupid with me? + +[CUB1_H:CUBAN1] +No, I think you're playing plenty stupid enough for both of us. + +[CUB1_I:CUBAN1] +Hey, he call you dumb, son. + +[CUB1_J:CUBAN1] +And I call him a little girl, Papi. + +[CUB1_K:CUBAN1] +Look at him, all dressed up like that. + +[CUB1_L:CUBAN1] +What is this, ladies night? + +[CUB1_M:CUBAN1] +You some kind of tough guy, you dress like a woman? + +[CUB1_N:CUBAN1] +You got on panties like a woman too, huh? + +[CUB1_O:CUBAN1] +What you got against women? You prefer men, big boy? + +[CUB1_P:CUBAN1] +I like women! I like all women! I love my mother, chico! + +[CUB1_Q:CUBAN1] +Alright, alright, I'll take your word for it. Relax. + +[CUB1_R:CUBAN1] +Can you drive, amigo? + +[CUB1_S:CUBAN1] +Yeah... like a woman. + +[CUB1_T:CUBAN1] +Very funny. I like you, big boy. Maybe you can help. + +[CUB1_U:CUBAN1] +Maybe you can prove you a man. Huh? + +[CUB1_V:CUBAN1] +Take out the boat. + +[CUB1_W:CUBAN1] +Show me you got some big cojones, + +[CUB1_X:CUBAN1] +and not some little bitty chiquita ones. + +[CUB1_02:CUBAN1] +Ok man, treat her like a woman. + +[CUB1_03:CUBAN1] +Not bad, you're a real man. + +[CUB1_04:CUBAN1] +You got real big cojones, amigo. + +[CUB1_05:CUBAN1] +Amigo, you a man, man. + +[CUB1_06:CUBAN1] +Call yourself a man, man? + +[CUB1_07:CUBAN1] +You a little scaredy kitten, baby boy, go cry to your mommy! + +[CUB1_09:CUBAN1] +Man, you the man, man. I like you, man. I like you a lot. + +[CUB1_10:CUBAN1] +Any time, man. 'cause you got cojones. And all my friends have big cojones. + +[CUB1_11:CUBAN1] +~r~You Killed Rico! + +[CUB1_12:CUBAN1] +Go through the first checkpoint to begin the test. + +[CUB1_14:CUBAN1] +Get back in the boat! + +[CUB1_15:CUBAN1] +~r~You are too slow, man. + +[CUB1_01:CUBAN1] +Hey, I'm Rico. You the man with the big cojones? + +[CUB1_13:CUBAN1] +~g~You have three minutes to get round the course. + +[CUB1_08:CUBAN1] +You a big waste of space. Walk like a man, talk like a man, but you drive like an idiot. + +{=================================== MISSION TABLE CUBAN2 ===================================} + +[CUB2_A:CUBAN2] +Un cafecito, por favor, Alberto.. + +[CUB2_N:CUBAN2] +No problema, Tommy. + +[CUB2_B:CUBAN2] +Papi! Una grande problema! + +[CUB2_O:CUBAN2] +Umberto my son, what happened? + +[CUB2_C:CUBAN2] +The Haitians! I hate these Haitians! + +[CUB2_D:CUBAN2] +They mess with me for the last time! + +[CUB2_E:CUBAN2] +These Hai - these Haitians! We take 'em out! + +[CUB2_F:CUBAN2] +Only we need some backup. + +[CUB2_H:CUBAN2] +Amigo, you drive good! + +[CUB2_I:CUBAN2] +For a woman. Right? + +[CUB2_J:CUBAN2] +This is no time for joking! + +[CUB2_K:CUBAN2] +Come on, drive for me again! + +[CUB2_L:CUBAN2] +Take my boys over there, and then we'll take these Haitians down! + +[CUB2_01:CUBAN2] +Not enough room, man, you need a bigger car. + +[CUB2_02:CUBAN2] +We need reinforcements from the cafe! + +[CUB2_03:CUBAN2] +~g~Get a car and pick up the Cubans from outside Robina's Cafe. + +[CUB2_04:CUBAN2] +~g~Go and drop the Cubans off at the fight. + +[CUB2_05:CUBAN2] +Take out that cowardly sniper! + +[CUB2_07:CUBAN2] +They fight like girls! Take cover! + +[CUB2_09:CUBAN2] +Sniper on the roof! + +[CUB2_11:CUBAN2] +~r~You fool, we needed that car. + +[CUB2_12:CUBAN2] +Hey amigo! Good to see you could make it! + +[CUB2_13:CUBAN2] +Stinking nest of Haitians, we gonna kill 'em all! + +[CUB2_14:CUBAN2] +CHAAAAAARGE! + +[CUB2_15:CUBAN2] +Now, my brothers, CHAAARRRGGEE!! + +[CUB2_16:CUBAN2] +Tommy, we have proved our manful bravery! + +[CUB2_17:CUBAN2] +Let us steal the van full of drugs and make good our escape! + +[CUB2_18:CUBAN2] +~g~Get a car and pick up the Cubans + +[CUB2_19:CUBAN2] +We gonna fight like men! + +[CUB2_21:CUBAN2] +Fight like men with huge cojones! + +[CUB2_22:CUBAN2] +~g~ Finish off the rest of the Haitians so the Cubans can move forward. + +[CUB2_23:CUBAN2] +~g~ Little Haiti will be swarming with Haitians trying to even the score with the Cubans. Watch your back. + +[CUB2_24:CUBAN2] +~g~Return to Robina's Cafe with the Van and park it round the back. + +[CUB2_25:CUBAN2] +KILL ALL THE HAITIANS!! + +[CUB2_G:CUBAN2] +I lost a few hermanos already out there. + +[CUB2_M:CUBAN2] +They mess with me, they mess with the biggest boy in town! + +{=================================== MISSION TABLE CUBAN3 ===================================} + +[CUB3_B:CUBAN3] +Poppa, don't serve this snake in the straw. + +[CUB3_C:CUBAN3] +You're two-faced, Tommy! + +[CUB3_E:CUBAN3] +The Haitians, man. They're laughing at me! + +[CUB3_G:CUBAN3] +They're laughing at me, Tommy. At me! + +[CUB3_I:CUBAN3] +Nobody does whatever they like, Umberto, they do what you let them do. + +[CUB3_J:CUBAN3] +What? + +[CUB3_K:CUBAN3] +You want somebody taken care of? + +[CUB3_L:CUBAN3] +I can handle it, but it's gonna cost you. + +[CUB3_M:CUBAN3] +I know we're brothers and all, but this is business. + +[CUB3_N:CUBAN3] +Tommy. You a real man. Businessman, a gentleman. + +[CUB3_O:CUBAN3] +These Haitians. They have a load of product coming in off shore, really good stuff. + +[CUB3_P:CUBAN3] +We take it, and we finish them. + +[CUB3_Q:CUBAN3] +You take it, and I look after you. Like my brother. Like my son. + +[CUB3_R:CUBAN3] +I think I prefer the cash to being bounced on your knee, amigo. + +[CUB3_01:CUBAN3] +Hey Rico. Nice boat, you ready? + +[CUB3_03:CUBAN3] +~g~Collect all the briefcases filled with the drugs and cash. + +[CUB3_04:CUBAN3] +~g~Get the drugs and cash back to Umberto. + +[CUB3_05:CUBAN3] +Si Tommy. Now you be a good shot today, + +[CUB3_06:CUBAN3] +My boat, she no good full of holes, ok? + +[CUB3_07:CUBAN3] +~g~ Go meet Rico. He'll drive you to the meet location. + +[CUB3_02:CUBAN3] +~g~KILL ALL THE HAITIANS ON THE BOATS!! + +[CUB3_08:CUBAN3] +Uh oh.. Pack of Cubans. We under attack! + +[CUB3_A:CUBAN3] +Alberto. Una cafe, senor. + +[CUB3_D:CUBAN3] +You're either two-faced, or you're a wimp, baby boy! + +[CUB3_F:CUBAN3] +Easy, easy. What's your problem? + +[CUB3_H:CUBAN3] +Umberto Robina! They're doing whatever they like! + +{=================================== MISSION TABLE CUBAN4 ===================================} + +[CUB4_A:CUBAN4] +Hey, ladies. You know what I'm gonna do? + +[CUB4_B:CUBAN4] +I'm gonna kill me a Haitian. And then? + +[CUB4_C:CUBAN4] +And then I'm going to make love like a man. + +[CUB4_D:CUBAN4] +You know that, chica? Something like this. + +[CUB4_E:CUBAN4] +Loser! + +[CUB4_F:CUBAN4] +Prick. + +[CUB4_G:CUBAN4] +Hey, baby, I wouldn't touch you with a ten foot pole! + +[CUB4_H:CUBAN4] +Umberto Robina, he likes the ladies! Not some goat in a skirt! + +[CUB4_I:CUBAN4] +Tommy!! Tommy, I love you, I love you! Let's go! + +[CUB4_J:CUBAN4] +Go where? Can't I get a cup of coffee first? + +[CUB4_K:CUBAN4] +No time for coffee! Besides, I just had one. + +[CUB4_L:CUBAN4] +We gonna take out the Haitians. + +[CUB4_M:CUBAN4] +Tommy, how do you take out a snake? + +[CUB4_N:CUBAN4] +You bite him in the ass! Hahaha! + +[CUB4_O:CUBAN4] +Whatever you say, Umberto. + +[CUB4_P:CUBAN4] +Tommy, you go and get us a little Haitian car. + +[CUB4_Q:CUBAN4] +When you get it, come back and pick up my boy. + +[CUB4_R:CUBAN4] +Pepe, and take him out to the Haitians. + +[CUB4_S:CUBAN4] +Then, you go around to the Haitians processing plant, and you use their solvent as an explosive. + +[CUB4_T:CUBAN4] +Boom! Bye bye! + +[CUB4_U:CUBAN4] +Umberto, what about you? + +[CUB4_V:CUBAN4] +Uhh... I'm going to stay behind, and watch over the cafe with Poppa. + +[CUB4_W:CUBAN4] +He not feeling so good. You know? + +[CUB4_02:CUBAN4] +~g~The bombs will be set with a 45 second timer. + +[CUB4_04:CUBAN4] +~r~You've alerted the base, there is no way we will get in now! + +[CUB4_07:CUBAN4] +Oy - the solvent is round the back, amigo. + +[CUB4_08:CUBAN4] +Hola, amigos. + +[CUB4_09:CUBAN4] +Bueno. Haitian Putas. Muerte. + +[CUB4_10:CUBAN4] +Vamos. + +[CUB4_11:CUBAN4] +Vamos indeed. + +[CUB4_12:CUBAN4] +Hey, we need a Haitian gang car! + +[CUB4_13:CUBAN4] +Oye, let's go find our muchachos! + +[CUB4_14:CUBAN4] +Follow my compadres. + +[CUB4_15:CUBAN4] +Ok, in you go... + +[CUB4_16:CUBAN4] +I'm going to plant the bomb, cover me! + +[CUB4_17:CUBAN4] +RUN!! + +[CUB4_18:CUBAN4] +Man, this a nice part of town... + +[CUB4_19:CUBAN4] +This place is a dump, man. + +[CUB4_20:CUBAN4] +I had a beautiful woman... lived around this neighborhood. + +[CUB4_21:CUBAN4] +You know, they do nice pizzas here. + +[CUB4_22:CUBAN4] +Whoah, man. You drive like a crazy bitch! + +[CUB4_23:CUBAN4] +You lost, man? + +[CUB4_24:CUBAN4] +You've left Pepe behind, go and get him. + +[CUB4_03:CUBAN4] +~g~Stay in the car until safely parked inside the compound. + +[CUB4_26:CUBAN4] +~g~Take Pepe, head North into Little Haiti and steal a Voodoo car. + +[CUB4_27:CUBAN4] +~g~Go and meet up with Rico and the other Cubans. + +[CUB4_28:CUBAN4] +~g~Join the other Cubans at the Haitian Drugs Factory. + +[CUB4_29:CUBAN4] +~g~Walk into each of the markers to plant a bomb at that location. + +[CUB4_30:CUBAN4] +~g~After all three bombs are planted, get clear of the factory before it blows. + +[CUB4_31:CUBAN4] +~g~Get clear of the factory!! + +[CUB4_32:CUBAN4] +~g~Park the car at the blip and get out. + +[CUB4_06:CUBAN4] +~r~You did not get far enough away from the base and we had to abort the explosion! + +{=================================== MISSION TABLE FINALE ===================================} + +[FIN1_01:FINALE] +What's going on? + +[FIN1_02:FINALE] +Tommy! Oh good, good. Listen, listen. Uh, listen, + +[FIN1_03:FINALE] +I like fish. I love fish. + +[FIN1_04:FINALE] +I love them as pets in bowls, or as food on a plate, + +[FIN1_05:FINALE] +but as much as I love em, I don't want to sleep with them. + +[FIN1_06:FINALE] +Okay, but right now your Italian brothers are coming from up there to fit me with some cement shoes, and I... + +[FIN1_07:FINALE] +Shut up Ken. Sit down. + +[FIN1_08:FINALE] +Lance, what the hell's going on? + +[FIN1_09:FINALE] +It's your friends up north Tommy. They ain't too happy you capped their man. + +[FIN1_10:FINALE] +They're coming down to see the business today. + +[FIN1_11:FINALE] +They took longer than I thought... + +[FIN1_12:FINALE] +Guys, we gotta make this final we gotta leave no doubt that this is my operation. Mine! + +[FIN1_13:FINALE] +Ken, you get the first run of counterfeit cash and put three mil in briefcases. + +[FIN1_14:FINALE] +Lance, you get the guys together... + +[FIN2_01:FINALE] +Tommy! + +[FIN2_02:FINALE] +What? No big hugs for your old buddy? + +[FIN2_03:FINALE] +I've had fifteen years out of the loop, + +[FIN2_04:FINALE] +I'm a bit rusty on family etiquette. + +[FIN2_05:FINALE] +Always angry, eh Tommy. + +[FIN2_06:FINALE] +Didn't I say your temper would get you into trouble, huh? + +[FIN2_07:FINALE] +There's three mil in the cases... + +[FIN2_08:FINALE] +How many was it? Ten? No, eleven men. + +[FIN2_09:FINALE] +That's how you get to be called the Harwood Butcher! Heh-heh-heh! + +[FIN2_10:FINALE] +You sent me to kill one man, ONE MAN. They knew I was coming Sonny... + +[FIN2_11:FINALE] +Tommy, Tommy, watch your tone. + +[FIN2_12:FINALE] +Anyone would think you blame me for that unfortunate set of circumstances. + +[FIN2_13:FINALE] +Just take the money... + +[FIN2_14:FINALE] +Get the damn cash. + +[FIN2_15:FINALE] +You know, Tommy? I did what I could for you, I pulled strings, called in favors. + +[FIN2_16:FINALE] +I was your friend, Tommy. I hoped you'd see sense, see what's good for business. + +[FIN2_17:FINALE] +I trusted you, Tommy, and you disappointed me. + +[FIN2_18:FINALE] +But at least someone in your chicken shit organization knows how to do business, + +[FIN2_19:FINALE] +Isn't that right, Lance? + +[FIN2_20:FINALE] +I'm sorry Tommy. This is Vice City. This is business. + +[FIN2_21:FINALE] +You sold us out... + +[FIN2_22:FINALE] +No. I sold YOU out, Tommy, I sold YOU out. + +[FIN2_23:FINALE] +The real cash is upstairs in the safe. + +[FIN2_24:FINALE] +Tommy, what was the big plan? + +[FIN2_25:FINALE] +You think I'd just take the fake cash? + +[FIN2_26:FINALE] +Save face and run away with my tail between my legs?! + +[FIN2_27:FINALE] +No. + +[FIN2_28:FINALE] +I just wanted to piss you off before I kill you. + +[FIN3_01:FINALE] +Tommy? + +[FIN3_02:FINALE] +Oh my god, Tommy! What happened? + +[FIN3_03:FINALE] +What does it look like? + +[FIN3_04:FINALE] +It looks like you ruined your suit! + +[FIN3_05:FINALE] +and Tommy, that was a beautiful suit! Tommy, what on earth happened? + +[FIN3_06:FINALE] +I had a disagreement with a business associate, you know how it is. + +[FIN3_07:FINALE] +Tommy, I have a disagreement, I send them an angry letter. + +[FIN3_08:FINALE] +Maybe I pee in their mailbox. I don't start World War III. + +[FIN3_09:FINALE] +You know, maybe you should speak to my shrink... + +[FIN3_10:FINALE] +That stupid prick, Lance... + +[FIN3_11:FINALE] +Tommy. I never liked that guy, okay? + +[FIN3_12:FINALE] +He's neurotic, he's insecure, he's self-centered - the guy's an asshole! + +[FIN3_13:FINALE] +I'm glad you took him out! + +[FIN3_14:FINALE] +I don't think we're gonna be getting any more heat from up north either... + +[FIN3_15:FINALE] +...'cause there ain't no 'up north', anymore. + +[FIN3_16:FINALE] +It's all down south now. + +[FIN3_17:FINALE] +Wait, does that mean what I think it means..? Tommy, baby! + +[FIN3_18:FINALE] +What do you think it means? + +[FIN3_19:FINALE] +That we're in charge... I mean, that you're in charge. Oh, Tommy! + +[FIN3_20:FINALE] +You know, Ken. I think this could be the beginning of a beautiful business relationship.... + +[FIN3_21:FINALE] +After all, you're a conniving, backstabbing, two-bit thief + +[FIN3_22:FINALE] +and I'm a convicted psychotic killer and drug dealer. + +[FIN3_23:FINALE] +I know. Ain't it just beautiful? + +[FIN_B1:FINALE] +~g~Go and kill ~y~Lance Vance~g~ the backstabber. + +[FIN_B2:FINALE] +~g~Kill ~p~Sonny~g~ and finish this once and for all. + +[FIN_B3:FINALE] +~g~The Mafia are trying to steal your money. Defend the safe. + +[FIN_B4:FINALE] +~g~You are close to death, get some ~w~health~g~ from downstairs. + +[FIN_B5:FINALE] +~g~The Mafia is stealing your money, defend the ~c~safe + +[FIN_B7:FINALE] +~r~The mafia has stolen all your money. + +[DEFSAFE:FINALE] +~g~Get back to the safe and defend it. + +{=================================== MISSION TABLE FIRETRK ===================================} + +[F_PASS1:FIRETRK] +Fire extinguished! + +[F_FAIL2:FIRETRK] +~r~You're too late! + +[F_CANC:FIRETRK] +~r~Fire Fighter mission cancelled! + +[F_EXTIN:FIRETRK] +FIRES: + +[F_START:FIRETRK] +~g~Burning vehicle reported in the ~a~ area. Go and extinguish the fire. + +[SIREN_1:FIRETRK] +To turn on this vehicle's sirens tap the ~h~~k~~VEHICLE_HORN~ ~w~button. + +[SIREN_2:FIRETRK] +To turn on this vehicle's sirens tap the ~h~~k~~VEHICLE_HORN~ ~w~button. + +[FIREPRO:FIRETRK] +Fire Truck Mission level 12 complete. You are now completely fireproof!! + +[F_FAIL1:FIRETRK] +Fire Fighter mission ended. + +[F_STAR1:FIRETRK] +~g~Burning vehicles reported in the ~a~ area. Go and extinguish the fire. + +[SPRAY_4:FIRETRK] { reVC update } +Use the ~h~~k~~VEHICLE_FIREWEAPON~ ~w~button to fire the water cannon. Aim using ~h~~k~~VEHICLE_TURRETLEFT~~w~ and ~h~~k~~VEHICLE_TURRETRIGHT~~w~. + +[SPRAY_1:FIRETRK] { reVC update } +Use the ~h~~k~~VEHICLE_FIREWEAPON~ ~w~button to fire the water cannon. Aim using ~h~~k~~VEHICLE_TURRETLEFT~~w~ and ~h~~k~~VEHICLE_TURRETRIGHT~~w~. + +{=================================== MISSION TABLE GENERA1 ===================================} + +[GEN1_A:GENERA1] +Mr. Vercetti! + +[GEN1_B:GENERA1] +Colonel. + +[GEN1_D:GENERA1] +No - thanks. + +[GEN1_E:GENERA1] +I'm ashamed to admit that one of the causes of our mutual problem appears to have been the loose tongue of a man I used to trust. + +[GEN1_F:GENERA1] +I've been carrying Gonzalez for years, but now his incompetence reaches new heights! + +[GEN1_G:GENERA1] +It is only right that you kill Gonzalez... + +[GEN1_H:GENERA1] +Did he do it? It's the money that's important to me. + +[GEN1_J:GENERA1] +He will be at his Penthouse, half drunk probably. Use this... + +[GEN1_06:GENERA1] +Eh! He's got a blade! + +[GEN1_07:GENERA1] +Go away from me, you cheap bastard! + +[GEN1_08:GENERA1] +Oh sweet Jesus, I've wasted my life and my looks! + +[GEN1_10:GENERA1] +I'm going to shut that big mouth of yours! + +[GEN1_11:GENERA1] +Stop running you fat slimeball! + +[GEN1_12:GENERA1] +Stand still and I'll make it quick! + +[GEN1_13:GENERA1] +Quit your squealing, no one cares, fatso! + +[GEN1_C:GENERA1] +Thank you for coming. Please sit. Lobster? + +[GEN1_05:GENERA1] +~g~Go and kill Gonzalez! + +[GEN1_09:GENERA1] +I pay you double, Tommy, DOUBLE! + +[GEN1_18:GENERA1] +~r~Gonzalez has made it safely to the Police Station! + +[GEN1_19:GENERA1] +~g~The Vice City Police are on to you! + +[GEN1_20:GENERA1] +~g~Get into a vehicle. + +[GEN1_21:GENERA1] +~g~Get to the~h~ Pay 'N' Spray~g~ in~h~ Vice Point~g~. + +[GEN1_22:GENERA1] +Drive your vehicle into the spray shop to lose your ~h~wanted level, ~h~repair and ~h~respray your vehicle. Cost - ~h~$100. This time it's free. + +[GEN1_01:GENERA1] +When jogging, press and hold the~h~ ~k~~PED_FIREWEAPON~ ~w~button to prepare a melee attack. + +[GEN1_02:GENERA1] +When jogging, press and hold the~h~ ~k~~PED_FIREWEAPON~ ~w~button to prepare a melee attack. + +[GEN1_03:GENERA1] +When jogging, press and hold the~h~ ~k~~PED_FIREWEAPON~ ~w~button to prepare a melee attack. + +[GEN1_14:GENERA1] +Release the~h~ ~k~~PED_FIREWEAPON~ ~w~button to make the attack. + +[GEN1_15:GENERA1] +Release the~h~ ~k~~PED_FIREWEAPON~ ~w~button to make the attack. + +[GEN1_16:GENERA1] +Release the~h~ ~k~~PED_FIREWEAPON~ ~w~button to make the attack. + +[GEN1_I:GENERA1] +For this kindness I'll reward you, and then we will find your money together. + +[GEN1_23:GENERA1] +~g~Go back through the doors to return to the ground floor. + +{=================================== MISSION TABLE GENERA2 ===================================} + +[COL2_B:GENERA2] +This looks delicious, huh? Tapir snout? + +[COL2_C:GENERA2] +Uhhh... no, no. No, thanks. + +[COL2_D:GENERA2] +Tommy, you are like a pampas breeze that has freed me from the stench of corruption, + +[COL2_E:GENERA2] +although, I must appear to mourn his passing and carry on with business as usual. + +[COL2_F:GENERA2] +This isn't getting me any closer to my money... + +[COL2_G:GENERA2] +Tommy, my friend, you are not in Liberty now. Here we do things differently. + +[COL2_H:GENERA2] +I will continue with my enquiries but in the meantime I have a valuable deal to close. + +[COL2_I:GENERA2] +A favor for a friend, Cortez? + +[COL2_J:GENERA2] +You're a good friend, Tommy. I knew you would not let me down. + +[COL2_K:GENERA2] +I need you to meet a courier who has obtained some valuable technology for me... + +[COL2_1:GENERA2] +Ze rain, she is tres wet zis time of the year... + +[COL2_2:GENERA2] +What? + +[COL2_3:GENERA2] +Ah, comment? + +[COL2_4:GENERA2] +Look, Cortez sent me. Just give me the damn chips. + +[COL2_5:GENERA2] +Oh...d'accord. + +[COL2_B1:GENERA2] +~g~Meet the courier at the mall. + +[COL2_B2:GENERA2] +~g~The courier is fleeing with the guidance chips! Don't let him get away! + +[COL2_B3:GENERA2] +~g~Take the guidance chips back to the Colonel. + +[COL2_F1:GENERA2] +~r~You killed the contact! + +[COL2_F2:GENERA2] +~g~The courier is dead. Grab the guidance chips. + +[COL2_6A:GENERA2] +Freeze, imperialist American pig! Zat iz propertay of ze government Francais. 'And eet over! + +[BLIPHLP:GENERA2] +The blip on the radar is a triangle pointing up, this shows that the target is higher than the player. + +[COL2_F3:GENERA2] +~r~The guidance chips are at the bottom of the sea. + +[COL2_F4:GENERA2] +~r~The courier has escaped! You failed to get the guidance chips. + +[COL2_A:GENERA2] +Tommy! Come, join me. + +{=================================== MISSION TABLE GENERA3 ===================================} + +[GEN3_A:GENERA3] +Thomas, I appreciate your coming. + +[GEN3_B:GENERA3] +Forgive me for getting straight to business. + +[GEN3_C:GENERA3] +Diaz has asked me to oversee a minor business transaction. + +[GEN3_D:GENERA3] +Let's hope it goes better than last time, huh? + +[GEN3_E:GENERA3] +Which is why I thought of you, my friend. + +[GEN3_F:GENERA3] +I've dropped some protection at the multistory carpark. + +[GEN3_G:GENERA3] +Pick it up - then go and watch over Diaz's men at the drop off. + +[GEN3_H:GENERA3] +Gracias, amigo. + +[GEN3_1:GENERA3] +Hogging all the action, I see... + +[GEN3_2:GENERA3] +Look, you wanna do something other than just shadowing me everywhere? Why don't you come along and show me if you're any use. + +[GEN3_3:GENERA3] +I might just do that. The name's Lance, by the way. + +[GEN3_5:GENERA3] +You must be Cortez's new gun. + +[GEN3_6:GENERA3] +Until more gainful opportunities arise. + +[GEN3_7:GENERA3] +They'll be here any minute - we both better get a good vantage point... + +[GEN3_8:GENERA3] +OK! I'll take the balcony, you get the roof across the yard. + +[GEN3_9:GENERA3] +I live! Dickheads! And it's all down to you! What is your name? + +[GEN3_10:GENERA3] +Tommy. + +[GEN3_11:GENERA3] +I see you soon, amigo, I think! + +[GEN3_12:GENERA3] +Shit. Where's that guy Lance? + +[GEN3_14:GENERA3] +Tommy! I need some help here! + +[GEN3_15:GENERA3] +Don't worry, I got you covered! + +[GEN3_16:GENERA3] +Diaz's men are getting cut down! + +[GEN3_19:GENERA3] +~g~Haitians! They're busting the deal! Protect Diaz! + +[GEN3_20:GENERA3] +~g~The Colonel has arranged some firepower for you at the multistory carpark. + +[GEN3_22:GENERA3] +Diaz's Health: + +[GEN3_23:GENERA3] +~g~You've left Lance behind! Go and get him! + +[GEN3_25:GENERA3] +~r~Lance died! + +[GEN3_28:GENERA3] +~g~Take the briefcase back to Diaz. + +[GEN3_29:GENERA3] +~g~Collect the briefcase and take it back to Diaz. + +[GEN3_30:GENERA3] +~r~He got away with the money! Diaz will have your balls for this! + +[GEN3_33:GENERA3] +~r~Check your fire!! You're supposed to be watching over Diaz and his men, not shooting them! + +[GEN3_34:GENERA3] +~r~There ain't gonna be a deal if you shoot the Cubans! + +[GEN3_35:GENERA3] +~g~He's stolen Diaz's money! + +[GEN3_36:GENERA3] +~g~Grab the bike, chase him down and get Diaz's money back! + +[GEN3_37:GENERA3] +~g~Here come the Cubans. Watch over the deal making sure Diaz and Lance are safe. + +[GEN3_38:GENERA3] +~r~Diaz died! You failed to protect him! + +[GEN3_39:GENERA3] +~g~Get to your vantage point up the stairs. + +[GEN3_44:GENERA3] +~g~Go with Lance to the drop off and watch over Diaz. + +[GEN3_45:GENERA3] +They'll be here any minute, we both better get a good vantage point. + +[GEN3_40:GENERA3] { reVC update } +To ~h~shoot straight ahead ~w~on a ~h~motorbike ~w~press the ~h~~k~~VEHICLE_FIREWEAPON~ ~w~button. + +[GEN3_41:GENERA3] { reVC update } +To ~h~shoot straight ahead ~w~on a ~h~motorbike ~w~press the ~h~~k~~VEHICLE_FIREWEAPON~ ~w~button. + +[GEN3_46:GENERA3] +Sheeit! + +[GEN3_47:GENERA3] +Tommy! + +[GEN3_48:GENERA3] +Damn! + +[GEN3_49:GENERA3] +lance's health: + +[GEN3_50:GENERA3] +~r~You lost Diaz's money! Next time try not to reduce the money to ashes! + +[GEN3_51:GENERA3] +More damned Haitians in a shitty van! + +[GEN3_54:GENERA3] +Don't just stand there, you pricks, chase that Haitian dickhead down! + +[GEN3_55:GENERA3] +Tommy! I'll stay here and watch over Diaz! + +[GEN3_18:GENERA3] +~g~Here come the Cubans, keep close to Diaz. Watch over the deal making Diaz and Lance are safe. + +[GEN3_56:GENERA3] +~r~Diaz was ambushed and died! Next time keep him in your sights! + +[GEN3_57:GENERA3] +The Kruger is an assault rifle, which allows you to manually aim in 1st person. + +[GEN3_58:GENERA3] +Press and hold the~h~ ~k~~PED_LOCK_TARGET~~w~ button to ~h~aim~w~ with an assault rifle. + +[GEN3_59:GENERA3] +Press and hold the~h~ ~k~~PED_LOCK_TARGET~~w~ button to ~h~aim~w~ with an assault rifle. + +[GEN3_60:GENERA3] +Press the ~h~~k~~PED_FIREWEAPON~~w~ button to ~h~fire~w~ an assault rifle. + +[GEN3_61:GENERA3] +Press the ~h~~k~~PED_FIREWEAPON~~w~ button to ~h~fire~w~ an assault rifle. + +[GEN3_62:GENERA3] +Press the ~h~~k~~PED_FIREWEAPON~~w~ button to ~h~fire~w~ an assault rifle. + +[GEN3_63:GENERA3] +As well as performing drive-by's,~h~ motorbikes ~w~allow you to ~h~shoot forwards~w~. + +[GEN3_64:GENERA3] { reVC update } +To shoot forwards while on a bike press the ~h~~k~~VEHICLE_FIREWEAPON~~w~ button. + +[GEN3_65:GENERA3] { reVC update } +To shoot forwards while on a bike press the ~h~~k~~VEHICLE_FIREWEAPON~~w~ button. + +[GEN3_66:GENERA3] { reVC update } +To shoot forwards while on a bike press the ~h~~k~~VEHICLE_FIREWEAPON~~w~ button. + +[GEN3_67:GENERA3] +You must have a sub machine gun to shoot forwards on a motorbike. + +[GEN3_53:GENERA3] +MY MONEY! + +[GEN3_52:GENERA3] +These Haitians think they can take RICARDO DIAZ!?! + +{=================================== MISSION TABLE GENERA4 ===================================} + +[DETON:GENERA4] +DETONATION: + +[COL4_3:GENERA4] +CONVOY HALT! + +[COL4_6:GENERA4] +WE'RE TAKING ENEMY FIRE! + +[COL4_7:GENERA4] +Civilian, move away from the tank! + +[COL4_8:GENERA4] +I SAID, move away, IMMEDIATELY! + +[COL4_9:GENERA4] +DEFENSIVE POSITIONS! + +[COL4_11:GENERA4] +Get that civilian out of our way soldier! - Sir, Yes Sir! + +[COL4_12:GENERA4] +Civilian in the TANK! STOP HIM! + +[COL4_13:GENERA4] +This is a military convoy, do not obstruct our route. + +[COL4_14:GENERA4] +Drop him soldier. + +[COL4_15:GENERA4] +Get that civilian vehicle out of our way! - Sir! Moving vehicle Sir! + +[COL4_17:GENERA4] +Ok, PLATOON MOVE IT OUT! + +[COL4_18:GENERA4] +Someone's on the tank Sir! + +[COL4_19:GENERA4] +Go get some doughnuts, soldier! - Sir, Yes Sir! + +[COL4_20:GENERA4] +Target acquired, Sir + +[COL4_21:GENERA4] +SNIPER! + +[COL4_22:GENERA4] +I'm getting out of here. + +[COL4_23:GENERA4] +Objective completed! Platoon dismissed! - Lets go eat some doughnuts. + +[COL4_24:GENERA4] +Security protocol Delta India Echo triggered! Vehicle self destruct initiated! + +[COL4_26:GENERA4] +Prepare to die Communist scum! + +[COL4_B2:GENERA4] +~r~The tank arrived at its destination safely! + +[COL4_B5:GENERA4] +~r~The tank has been destroyed! + +[COL4_01:GENERA4] +Diaz was pleased, and would like to meet you again. + +[COL4_02:GENERA4] +Is that a good thing? + +[COL4_03:GENERA4] +Of course! Although I'm starting to think that Diaz was responsible for our unfortunate loss... + +[COL4_04:GENERA4] +What makes you say that? + +[COL4_05:GENERA4] +One does not wave accusations at a man like Diaz - I'm merely thinking out loud... + +[COL4_06:GENERA4] +No matter. I have a proposal that you could profit from... + +[COL4_07:GENERA4] +I don't have time to run more errands, Cortez. + +[COL4_08:GENERA4] +I would have thought a man with such dangerous debts would be hungry for opportunities. Please, Tommy, at least hear me out. + +[COL4_09:GENERA4] +Go on... + +[COL410:GENERA4] +I have a buyer for a piece of military hardware that is being taken through town. Pick it up for me... + +[COL411:GENERA4] +and once you get it, I want you to call me immediately, then... + +[COL4_B4:GENERA4] +~g~The tank is locked. Find a way to lure out the occupants. + +[COL4_1:GENERA4] +What's up with the Gunner? - Don't know Sir! + +[COL4_4:GENERA4] +Get topside soldier. - Sir, Yes Sir! + +[COL4_B1:GENERA4] +~g~Go and acquire the piece of military hardware that is being taken through town. + +[COL4_B3:GENERA4] +~g~Drop the tank off in the Colonels lockup before it self destructs. + +[COL4_B6:GENERA4] +~g~Find a way to steal the tank! + +[COL4_B7:GENERA4] +~g~Drive the tank into the garage. + +[COL4_B8:GENERA4] +~g~Get out of the tank and walk out of the garage. + +{=================================== MISSION TABLE GENERA5 ===================================} + +[COL5A_1:GENERA5] +Circumstances force a hasty departure, amigo. + +[COL5A_2:GENERA5] +What's the problem? + +[COL5A_3:GENERA5] +Ehh, the French want their missile technology back and after that last incident, + +[COL5A_4:GENERA5] +I feel it is time to find safer harbors. + +[COL5A_5:GENERA5] +Wouldn't it be safer to fly? + +[COL5A_6:GENERA5] +I'd be dead before I reached check-in. Besides, I need to get my merchandise out of the country. + +[COL5A_7:GENERA5] +Need another gun? + +[COL5A_8:GENERA5] +You, my friend, are worth ten guns... + +[COL5B_1:GENERA5] +Thomas, you have protected and served me well. + +[COL5B_2:GENERA5] +But now you must leave us before we reach the open seas. + +[COL5B_4:GENERA5] +Thank you, Colonel. + +[COL5B_5:GENERA5] +One more request. While I'm away, could you keep an eye on Mercedes for me? + +[COL5B_6:GENERA5] +I think she could look after herself, but sure, I'll keep an eye out. + +[COL5B_7:GENERA5] +Gracias, amigo. Hasta luego. + +[COL5B_8:GENERA5] +Adios, amigo. + +[COL5_7:GENERA5] +Stop shooting at me! + +[COL5_9:GENERA5] +Tommy, stop them shooting at me! + +[COL5_10:GENERA5] +I have diplomatic immunity! + +[COL5_11:GENERA5] +Don't shoot, I am a Colonel! + +[COL5_12:GENERA5] +Thomas, kill them, my country will love you. + +[COL5_13:GENERA5] +Tommy, we are being overrun by the French! + +[COL5_14:GENERA5] +Tommy, everywhere I look, there are French men, I hate it! + +[COL5_15:GENERA5] +Tommy, how are you? + +[COL5_16:GENERA5] +This is for Piaf and Gainesbourg and your stupid french bread! + +[COL5_1:GENERA5] +Port side! Port side! + +[COL5_2:GENERA5] +They're attacking from starboard! + +[COL5_3:GENERA5] +The bridge up ahead! + +[COL5_4:GENERA5] +They've got a helicopter! + +[COL5_B1:GENERA5] +~g~Defend the Colonel and his yacht at all costs. + +[COL5_B2:GENERA5] +~g~Get up front and clear the route for the Colonel's yacht. + +[COL5_B3:GENERA5] +~r~The Colonel is dead! + +[COL5_B4:GENERA5] +~g~Shoot the attacking helicopter out of the sky. + +[COL5B_3:GENERA5] +I will lower my personal launch. Keep it, my friend, a token of my gratitude. + +[COL5_B5:GENERA5] +~g~Shoot down the helicopters, do not endanger the yacht. + +[COL5_B6:GENERA5] +~g~You have run out of ammo, get more from the stairs on the top deck. + +[COL5_B7:GENERA5] +~g~You are running low on health, get more from the stairs on the top deck. + +{=================================== MISSION TABLE HAIT1 ===================================} + +[HAM1_A:HAIT1] +Hello? Hello? + +[HAM1_C:HAIT1] +You must be the big bad man me grandaddy been chattin' 'bout. + +[HAM1_D:HAIT1] +Tells me tings about you, you know, when he visits, + +[HAM1_E:HAIT1] +and about the others who wait for you. + +[HAM1_F:HAIT1] +Now, we all dead for long time, but you, + +[HAM1_G:HAIT1] +I wouldn't want to be in your shoes, ha ha ha ha ha! + +[HAM1_H:HAIT1] +I got a message to come here. + +[HAM1_I:HAIT1] +Can you hear dem? + +[HAM1_J:HAIT1] +Dem callin' your name, boy, must want you pretty bad, don't ya tink? + +[HAM1_K:HAIT1] +Now you do old Auntie Poulet a turn, huh, maybe she help you. + +[HAM1_L:HAIT1] +Maybe she can give you a little juju after all of dis. + +[HAM1_M:HAIT1] +Give you some magic to give the law man the stink eye, hmmmmm? + +[HAM1_N:HAIT1] +Look, this is all very, um... give me what? + +[HAM1_O:HAIT1] +I,I, I think I've got the wrong address... + +[HAM1_P:HAIT1] +Do me these tings, Tommy...... + +[HAM1_Q:HAIT1] +The Cubans, nasty proud foofoos, mmm, + +[HAM1_R:HAIT1] +been making my lovely Haitian boys shake de heads. + +[HAM1_S:HAIT1] +Now they told the policeman where me been stashing my powders. + +[HAM1_T:HAIT1] +Dey tink it drugs, them stupid. + +[HAM1_U:HAIT1] +Now be a good boy Tommy and go and get the powders for Auntie Poulet. + +[HAM1_V:HAIT1] +Yeah, yeah, sure, sure. + +[HAM1_1:HAIT1] +~g~The cops are closing in on our stashes. BE quick, and beat dem to it! + +[HAM1_2:HAIT1] +~r~The cops got to the stash first! + +[HAM1_3:HAIT1] +~g~Get this stuff back to the hideout! + +[HAM1_4:HAIT1] +~g~Good! Now get the next one! + +[HAM1_6:HAIT1] +~r~The Stash was destroyed, you idiot! + +[HAM1_7:HAIT1] +~g~The cops have got our stash! Retrieve it before they get away! + +[HAM1_8:HAIT1] +~g~The cops are on the way to pick up the stash, get a move on! + +[HAT_1A:HAIT1] +~g~Don't move a muscle, chump! + +[HAM1_B:HAIT1] +Come in, my dear, and rest your soul. + +{=================================== MISSION TABLE HAIT2 ===================================} + +[HAT2_B1:HAIT2] +~g~Get to the van that contains the flying bombs. + +[HAT2_B2:HAIT2] +Kill the Cubans... + +[HAT2_B4:HAIT2] +...and destroy their boats! + +[HAT2_B5:HAIT2] +~g~The Cubans are making a run for it. Don't let them get away! + +[HAT2_B6:HAIT2] +~r~The RC plane is getting too far out of range! + +[HAT2_B7:HAIT2] +~g~One of the Cubans in escaping in a car. Don't leave any witnesses! + +[HAT2_B8:HAIT2] +~r~You have no RC planes left! + +[HAT2_B9:HAIT2] +RC Planes: + +[HAT2_1:HAIT2] +Oh, sorry, I - I must have the wrong address... + +[HAT2_2:HAIT2] +Well, you might as well come in and rest your soles and have some tea. + +[HAT2_3:HAIT2] +Do you have something there for me, Tommy? + +[HAT2_4:HAIT2] +Yeah... + +[HAT2_5:HAIT2] +This place feels familiar to me, uh - it's - a smell from childhood - a deja vu... + +[HAT2_6:HAIT2] +Now Tommy, I'm going to whisper a lickle errand for you. Hear me well, aye? + +[HAT2_7:HAIT2] +You look like someone I, I... + +[HAT2_8:HAIT2] +The Cubans have fast boats they use to cross the seas with drugs. + +[HAT2_9:HAIT2] +It is their livelihood. + +[HAT2_10:HAIT2] +Me nephew bin making lickle flying bombs to take dem out. + +[HAT2_11:HAIT2] +Blow de boats to coffin wood. + +[HAT2_12:HAIT2] +Thanks for the tea. + +[HAT2_B3:HAIT2] { reVC update } +Press the ~h~~k~~VEHICLE_FIREWEAPON~ ~w~button to drop a bomb. Press the ~h~~k~~VEHICLE_ENTER_EXIT~ ~w~button to cancel. + +{=================================== MISSION TABLE HAIT3 ===================================} + +[HAM3_A:HAIT3] +Hello? Hello - uh..I'm looking for somebody around here... + +[HAM3_B:HAIT3] +You looking hungry, Tommy. + +[HAM3_C:HAIT3] +Do I know you? + +[HAM3_D:HAIT3] +Hush now. + +[HAM3_E:HAIT3] +One more ting an I can let you go, Tommy. + +[HAM3_F:HAIT3] +My boys gone war wit dem Cuban boys. + +[HAM3_G:HAIT3] +But no guns. + +[HAM3_H:HAIT3] +Hmm, but de Cubans have a surprise comin'. + +[HAM3_I:HAIT3] +While they fight in de streets, you take this rifle and kill dem in de hubbub. + +[HAM3_J:HAIT3] +No one sees you, no one hear you. + +[HAM3_K:HAIT3] +Now, Tommy, you do this for me, and you no longer tied to my apron strings. + +[HAM3_1:HAIT3] +~g~We must win this battle. If all the Haitians die we lose. + +[HAM3_3:HAIT3] +~g~I expect the Cubans to cheat so be on your guard. + +[HAM3_4:HAIT3] +~r~You have been spotted! The mission is a failure! + +[HAM3_5:HAIT3] +~g~You must kill the Cubans from a distance. You must not be seen. + +[HAM3_8:HAIT3] +~g~Haitians are dying! Improve your aim. + +[HAM3_7:HAIT3] +~g~Look Out! The Cubans have brought reinforcements. Kill them all!! + +[HAM3_2:HAIT3] +~r~The Haitians have died! + +[HAM3_L:HAIT3] +Kay auntie.. + +{=================================== MISSION TABLE HOTEL ===================================} + +[INTB_A:HOTEL] +Tommy! Tommy, it's been too long. + +[INTB_B:HOTEL] +Hello Sonny. + +[INTB_C:HOTEL] +I know, I know. You're just overwhelmed with emotion. + +[INTB_D:HOTEL] +Fifteen years - seems like only yesterday. + +[INTB_E:HOTEL] +I guess that's a perspective thing. + +[INTB_F:HOTEL] +Hey, doing time for the family is no piece of cake, + +[INTB_G:HOTEL] +but the family looks after its own, ok? + +[INTB_H:HOTEL] +So, how'd the deal go down - you sitting on some white gold? + +[INTB_I:HOTEL] +Look Sonny, we were set up. The deal was an ambush. Harry and Lee are dead. + +[INTB_J:HOTEL] +You better be kidding me Tommy. Tell me you still got the money. + +[INTB_K:HOTEL] +...no Sonny...I don't have the money. + +[INTB_L:HOTEL] +That was my money, Tommy, MY MONEY! + +[INTB_M:HOTEL] +You better not be screwing me Tommy because you know I'm not a man to be screwed with! + +[INTB_N:HOTEL] +Wait Sonny. + +[INTB_O:HOTEL] +You have my personal assurance that I'm going to get your money back and the drugs. + +[INTB_P:HOTEL] +And I'm gonna mail you the dicks of those responsible. + +[INTB_Q:HOTEL] +Hey, I already know that. You're not a fool Tommy, but I warn you, neither am I. + +[INTB_R:HOTEL] +If it was anybody else you'd be DEAD already. + +[INTB_S:HOTEL] +But because it's you, because we got history, I'm gonna let you handle this. + +[INTB_T:HOTEL] +Look, Sonny, you got my word. + +[INTB_U:HOTEL] +I'll be in touch. + +{=================================== MISSION TABLE ICECRE1 ===================================} + +[ICC1_1:ICECRE1] +~g~Use your Ice Cream van distribute drugs around Vice City. + +[ICC1_3:ICECRE1] +~g~You receive money for each transaction you make, but the more transactions you make the more police attention you get. + +[ICC1_4:ICECRE1] +~g~There aren't any customers in this area try another one. + +[ICC1_5:ICECRE1] +Deals done: + +[ICC1_6:ICECRE1] +~g~Use the Mr. Whoopee van to distribute Cherry Poppers product around Vice City. + +[ICC1_7:ICECRE1] +~g~You receive money for each transaction you make, but the more transactions you make the more police attention you get. + +[ICC1_9:ICECRE1] +~g~Local gangs will not appreciate you doing business on their turf so expect hostility if you do so. + +[ICC1_10:ICECRE1] +~g~You made ~1~ deals! + +[ICC1_11:ICECRE1] +~g~You made ~1~ deal! + +[ICC1_12:ICECRE1] +PROPERTY ACQUIRED! + +[ICC1_13:ICECRE1] +~r~You didn't make any deals! + +[ICC1_14:ICECRE1] +ICECREAM ASSET COMPLETED + +[ICC1_15:ICECRE1] +~g~The icecream factory will now generate revenue up to a maximum of $~1~. Make sure you collect it regularly. + +[ICC1_2:ICECRE1] +~g~Park your van and press the ~h~~k~~VEHICLE_HORN~~w~ to play your ice cream jingle to notify customers that your ready for business. + +[ICC1_16:ICECRE1] +~g~Use your Mr. Whoopee van to distribute Cherry Poppers product around Vice City. + +[ICC1_8:ICECRE1] +~g~To make a transaction, ~h~park your van ~g~and press the ~h~~k~~VEHICLE_HORN~ ~g~button to play the ice cream jingle to attract customers. + +[ICE_AT1:ICECRE1] +ICECREAM FACTORY ASSET COMPLETED + +[ICE_AT2:ICECRE1] +~g~The Cherry Popper factory will now generate revenue up to a maximum of $~1~. Make sure you collect it regularly. + +[ICC1_17:ICECRE1] +Distribution mission over + +[ICC1_18:ICECRE1] +Total ice cream sales: $~1~ + +[ICC1_19:ICECRE1] +Total deals done: ~1~ + +{=================================== MISSION TABLE ICECUT ===================================} + +[ICC1_A:ICECUT] +Who are you? + +[ICC1_B:ICECUT] +Your new owner. + +[ICC1_C:ICECUT] +Were you now, or at any time, a child? + +[ICC1_D:ICECUT] +What are you talking about? + +[ICC1_E:ICECUT] +Were you a child? + +[ICC1_F:ICECUT] +Yes! Calm down! What's wrong with you? + +[ICC1_G:ICECUT] +I knew it. A child. + +[ICC1_H:ICECUT] +A dirty, stinking, sniveling, snotting, vile, puking, crying little baby! + +[ICC1_K:ICECUT] +Ow! Calm down. + +[ICC1_L:ICECUT] +I HATE babies, and I hate children. + +[ICC1_N:ICECUT] +Enough already! + +[ICC1_P:ICECUT] +You make soft ice cream, okay? It's purely for kids. + +[ICC1_Q:ICECUT] +What kind of psycho are you? + +[ICC1_R:ICECUT] +Just so I understand this, why make children happy if you hate them? + +[ICC1_S:ICECUT] +Oh, you stupid, sniveling, snotty- + +[ICC1_T:ICECUT] +Shut up! + +[ICC1_U:ICECUT] +- Brat! + +[ICC1_V:ICECUT] +The ice cream is a front. + +[ICC1_W:ICECUT] +We distribute other, non-dairy products. + +[ICC1_X:ICECUT] +And if I see a kid, I put him to good use. + +[ICC1_Y:ICECUT] +Don't I, kiddies? Yes - yes, I do. Mummy doesn't love you. + +[ICC1_Z:ICECUT] +She HATES you! + +[ICC1_ZA:ICECUT] +PROPERTY ACQUIRED! + +[ICC1_M:ICECUT] +They're dirty, sniveling, snotting, vile, puking little.. + +[ICC1_I:ICECUT] +A baby.. an awful, horrible, disgusting little boo hoo. + +[ICC1_J:ICECUT] +Mommy doesn't love you. You little shit! + +{=================================== MISSION TABLE INTRO ===================================} + +[INT1_A:INTRO] +Tommy Vercetti...Huh! shit. + +[INT1_B:INTRO] +Didn't think they'd ever let him out. + +[INT1_C:INTRO] +He kept his head down, helps people forget. + +[INT1_D:INTRO] +People will remember soon enough. + +[INT1_E:INTRO] +When they see him walking down the streets of their neighborhoods. + +[INT1_F:INTRO] +It will be bad for business. + +[INT1_G:INTRO] +Well, what are we gonna do, Sonny? + +[INT1_H:INTRO] +We treat him like an old friend and keep him busy out of town. OK? + +[INT1_I:INTRO] +We been talking about expanding down South, right? + +[INT1_J:INTRO] +Vice City is twenty-four carat gold these days. + +[INT1_K:INTRO] +The Colombians, the Mexicans, hell, + +[INT1_L:INTRO] +even those Cuban refugees are cutting themselves a piece of some nice action. + +[INT1_M:INTRO] +But it's all drugs, Sonny, + +[INT1_N:INTRO] +None of the families will touch that shit! + +[INT1_O:INTRO] +Times are changing. + +[INT1_P:INTRO] +The families can't keep their backs turned while our enemies reap the rewards. + +[INT1_Q:INTRO] +So, we send someone down to do the dirty work for us... + +[INT1_R:INTRO] +and cut ourselves a nice quiet slice. OK? + +[INT1_S:INTRO] +Who's our contact down there? + +[INT1_T:INTRO] +Ken Rosenberg, schmuck of a lawyer. + +[INT1_U:INTRO] +How's he gonna hold Vercetti's leash? + +[INT1_V:INTRO] +We don't need him to. + +[INT1_W:INTRO] +We just set him loose in Vice City, + +[INT1_X:INTRO] +we give him a little cash to get started. OK? + +[INT1_Y:INTRO] +Give it a few months. + +[INT1_Z:INTRO] +Then we go down, + +[INT1_A1:INTRO] +pay him a little visit, right? + +[INT1_A2:INTRO] +see how he's doing. + +[INT2_A:INTRO] +Hey, hey, guys! It's, uh, Ken Rosenberg here! Hey! Heh, heh, hey, great, hey! + +[INT2_B:INTRO] +Well, uh, I'm gonna drive you guys to the meet, okay? + +[INT2_C:INTRO] +Now, I've talked to the suppliers and they are very, huh-ha, + +[INT2_D:INTRO] +keen to start a business relationship, so, uh, + +[INT2_E:INTRO] +if all goes well, we should, uh, + +[INT2_F:INTRO] +be doing very nicely for ourselves, which is, y'know... + +[INT2_G:INTRO] +good.. + +[INT2_H:INTRO] +Okay, so. They're brothers, okay. + +[INT2_I:INTRO] +One operates the uh, the business, + +[INT2_J:INTRO] +and the other one does the flying. + +[INT2_K:INTRO] +Now they operate out of Mexico, + +[INT2_M:INTRO] +They own a farm in Panama. + +[INT2_N:INTRO] +Okay, all right, listen - + +[INT2_O:INTRO] +you guys, when we get there should I stay in the car, + +[INT2_P:INTRO] +or do you guys want me to come in with you guys? + +[INT2_Q:INTRO] +No. Stay in the car. + +[INT2_R:INTRO] +You know what, I thought about it, + +[INT2_S:INTRO] +I'm gonna watch the car. + +[INT3_A:INTRO] +Ok, that's them in the chopper. + +[INT3_B:INTRO] +All right, here's the deal. + +[INT3_C:INTRO] +They want a straight exchange on open ground. + +[INT3_D:INTRO] +All right? Ok. Stay tight, let's go. + +[INT3_E:INTRO] +All right. Take it easy, now. + +[INT3_F:INTRO] +I'm right here. The cars running, baby! + +[INT3_G:INTRO] +Got it? + +[INT3_H:INTRO] +100% pure grade-A Colombian, my friend. + +[INT3_I:INTRO] +The greens? + +[INT3_J:INTRO] +Tens and twenties...used. + +[INT3_L:INTRO] +Go on, get out of here! Drive! + +[INT4_A:INTRO] +Screwed! We're screwed! + +[INT4_B:INTRO] +This is soo typical, + +[INT4_C:INTRO] +I poke my head out of the gutter for one freakin' second, + +[INT4_D:INTRO] +and fate shovels shit in my face! + +[INT4_E:INTRO] +Well, screw you! + +[INT4_F:INTRO] +Shut your face and quit complaining! You're alive, aren't ya'? + +[INT4_G:INTRO] +Drop me right up here. + +[INT4_H:INTRO] +Go dump the car, then go get some sleep. + +[INT4_I:INTRO] +I'll drop by your office tomorrow and we can start sorting this mess out. + +[INT4_J:INTRO] +OK, that's a good idea, I'll get some sleep. + +[INT4_K:INTRO] +What are you gonna do? + +[INT4_L:INTRO] +Make my way back to my hotel, + +[INT4_M:INTRO] +clear my head, and figure this crap out. + +[INT4_N:INTRO] +OK. + +[INTRO1:INTRO] +I poke my head out of the gutter for one freakin' second and fate shovels shit in my face! + +[INTRO2:INTRO] +Go get some sleep. + +[INTRO3:INTRO] +What are you gonna do? + +[INTRO4:INTRO] +I'll drop by your office tomorrow and we can start sorting this mess out. + +[INT3_K:INTRO] +I think we have a deal, my friend. HA HA! + +[INT3_M:INTRO] +Let me see it. + +[INT2_L:INTRO] +no, no, no, wait... + +[INT3_N:INTRO] +Oh Shit! + +{=================================== MISSION TABLE KENT1 ===================================} + +[KPM1_A:KENT1] +Awright mush, I'm gonna save your Vera, mate. + +[KPM1_B:KENT1] +What the hell are you talking about? + +[KPM1_C:KENT1] +You know that wanker Diaz, the Bugle Master. + +[KPM1_D:KENT1] +He's got your boy, Lance. Word is your mate tried to jump him... + +[KPM1_E:KENT1] +didn't jump high enough if you know what I mean. + +[KPM1_F:KENT1] +Where did he take him? In plain English? + +[KPM1_G:KENT1] +Keep your barnet on! They got him across town at the junkyard. + +[KPM1_H:KENT1] +Bloody hell....you nutter! + +[KPM1_2:KENT1] +~r~You were supposed to get Lance out alive! + +[KPM1_3:KENT1] +LANCE'S HEALTH: + +[RESC_1:KENT1] +You ok to use a gun? + +[RESC_2:KENT1] +Sure...I guess...nice to see you, too. + +[RESC_3:KENT1] +Let's get out of here. + +[RESC_4:KENT1] +There goes my careful planning blown to shit, thanks to you. You screwed up real good, Lance! + +[RESC_5:KENT1] +He killed my brother. What do you expect me to do, mow his lawns? + +[RESC_6:KENT1] +We're gonna have to take out that prick Diaz before he takes us out. + +[RESC_7:KENT1] +Get patched up and meet me on the bridge to Star Island, ok? + +[RESC_8:KENT1] +Ok, I got you. + +[KPM1_1:KENT1] +~g~Lance is being held at the junk yard, Go and rescue him! + +[KPM1_4:KENT1] +~g~Get Lance to the hospital! + +[M_PASSN:KENT1] +MISSION PASSED! + +[KPM1_5:KENT1] +~g~Diaz's guys are after you! Get Lance to the hospital. + +{=================================== MISSION TABLE KICKSTT ===================================} + +[KICK1_2:KICKSTT] +~r~You did not get back to the bike quickly enough! + +[KICK1_7:KICKSTT] +~r~You have wrecked the bike! + +[KICK1_8:KICKSTT] +~g~Get on the bike! + +[KICK1_T:KICKSTT] +TIME TAKEN: + +[KICKTM:KICKSTT] +~b~EVENT TIME: ~1~:~1~ + +[KICKTM2:KICKSTT] +~b~EVENT TIME: ~1~:0~1~ + +[GETBIKE:KICKSTT] +~g~You have ~1~ seconds to return to a dirtbike before the mission ends. + +[KICK1_1:KICKSTT] +~g~Complete the course as quickly as possible. + +[KICK1_6:KICKSTT] +~g~Well done! + +[KICK_10:KICKSTT] +~g~Use the Sanchez to complete the course by passing through all of the checkpoints. + +[KICK_12:KICKSTT] +~r~You bottled it! + +[KICK_13:KICKSTT] +~r~You have taken too long! + +[KICK_11:KICKSTT] +~g~To leave the mission stand in the ~q~pink marker~g~ on foot. + +{=================================== MISSION TABLE LAWYER1 ===================================} + +[LAW1_A:LAWYER1] +Go get some sleep, he says - + +[LAW1_B:LAWYER1] +- I have been sitting in this chair all night with the lights off drinking coffee! + +[LAW1_C:LAWYER1] +This is a disaster. We are so screwed, man! + +[LAW1_D:LAWYER1] +These gorillas, listen to me, are gonna come down here and rip my head off. It's ridiculous! + +[LAW1_E:LAWYER1] +I did NOT go to law school for this! Ok, now what the hell are we gonna do? + +[LAW1_F:LAWYER1] +Shut up, sit down, relax. I'll tell you what we're gonna do. + +[LAW1_G:LAWYER1] +You're gonna find out who took our cocaine - and then, I'm gonna kill them. + +[LAW1_H:LAWYER1] +That's a good idea. That's a GREAT idea. Let me think, let me think, let me think. + +[LAW1_I:LAWYER1] +- OH! There's this retired Colonel, Colonel Juan Garcia Cortez. + +[LAW1_J:LAWYER1] +He's the one that helped me set up this deal + +[LAW1_K:LAWYER1] +well away from Vice City's established thugs. Ok? + +[LAW1_L:LAWYER1] +Now, listen. He's holding his party out in the bay on his expensive yacht + +[LAW1_M:LAWYER1] +and all of Vice City's big players are gonna be there. OK? + +[LAW1_N:LAWYER1] +I have an invite, of course I have an invite, + +[LAW1_O:LAWYER1] +but there's no way that I'm going out there, sticking my head out the door - no way! Not gonna happen. + +[LAW1_P:LAWYER1] +I told you, shut up! I'll go myself... + +[LAW1_Q:LAWYER1] +Ho - whoa, whoa! Hey, I like 1978 too, but, y'know, this isn't gonna be a beer and strippers do. + +[LAW1_R:LAWYER1] +I mean, no offense, but I think that you might turn heads on the runway for the wrong reasons. + +[LAW1_S:LAWYER1] +What's wrong with the way I'm dressed? + +[LAW1_T:LAWYER1] +Ok, look, here. Stop by Rafael's, tell him I sent 'ya. He'll make you look respectable. + +[LAW1_U:LAWYER1] +OK, go, c'mon... + +[LAWP_1:LAWYER1] +Buenas noches. + +[LAWP_2:LAWYER1] +I understand you are here on the behalf of Mr. Rosenberg, + +[LAWP_3:LAWYER1] +I hope any recent problems have not affected his health, or uh, + +[LAWP_4:LAWYER1] +mental well being, Mr...uh? + +[LAWP_5:LAWYER1] +Vercetti. He's just got a touch of...agoraphobia. + +[LAWP_6:LAWYER1] +Excellent, excellent. And you? + +[LAWP_7:LAWYER1] +I just want my merchandise. + +[LAWP_8:LAWYER1] +Ah. It's an unfortunate set of circumstances for all involved. + +[LAWP_9:LAWYER1] +Of course I have initiated my own lines of inquiry, + +[LAWP_10:LAWYER1] +but such a delicate matter will take time. + +[LAWP_11:LAWYER1] +Perhaps we will talk later. + +[LAWP_12:LAWYER1] +Meanwhile, let me introduce you to my daughter, + +[LAWP_13:LAWYER1] +Mercedes! + +[LAWP_14:LAWYER1] +Caramia, could you look after our guest while I attend to my necessary obligations? + +[LAWP_15:LAWYER1] +Of course, daddy. + +[LAWP_16:LAWYER1] +Please excuse me. + +[LAWP_17:LAWYER1] +Mercedes!? + +[LAWP_18:LAWYER1] +You try living with it. + +[LAWP_19:LAWYER1] +Anyway, let me point out some of our more distinguished guests... + +[LAWP_20:LAWYER1] +That's our congressman Alex Shrub with rising silicone star Candy Suxxx... + +[LAWP_21:LAWYER1] +And have you met my lovely wife Laura? No? + +[LAWP_22:LAWYER1] +Well, unfortunately she's in Alabama. This is Candy. + +[LAWP_23:LAWYER1] +And over there we have the Vice City Mambas' star tight end, BJ - + +[LAWP_24:LAWYER1] +always the charmer. + +[LAWP_25:LAWYER1] +I blocked down on him and then I put him in a wheelchair! + +[LAWP_26:LAWYER1] +Haha, that is good! + +[LAWP_27:LAWYER1] +Well now, I'm looking at some prime real estate property. + +[LAWP_28:LAWYER1] +And that poolside amphibian is Jezz Torrent, + +[LAWP_29:LAWYER1] +lead singer with Love Fist. + +[LAWP_30:LAWYER1] +Can I tell yous - do you know how they play ping-pong in Thailand? + +[LAWP_31:LAWYER1] +Let me tell you's, + +[LAWP_32:LAWYER1] +it does not involve a paddle, if you know what I mean! + +[LAWP_33:LAWYER1] +Impotent. + +[LAWP_34:LAWYER1] +And the chatty trio. + +[LAWP_35:LAWYER1] +That sleeping sweat gland is Papa's right hand gimp, Gonzalez + +[LAWP_36:LAWYER1] +and the other two are Pastor Richards + +[LAWP_37:LAWYER1] +and pseudo intellectual film director, Steve Scott. + +[LAWP_38:LAWYER1] +...passion with the nympho invaders, + +[LAWP_39:LAWYER1] +when the giant shark comes in and + +[LAWP_40:LAWYER1] +just bites their dicks off! + +[LAWP_41:LAWYER1] +Ha now, you never saw anything like that before, have you? + +[LAWP_42:LAWYER1] +Colonel! + +[LAWP_43:LAWYER1] +your parties as ever are a triumph, hahahaha! + +[LAWP_44:LAWYER1] +I can only apologize for my late arrival. + +[LAWP_45:LAWYER1] +Ah, de nada amigo. How do we find you? + +[LAWP_46:LAWYER1] +Our business is very trying - barbarians at the gates. + +[LAWP_47:LAWYER1] +A time for rewarding one's friends and liquidating one's enemies, amigo. + +[LAWP_48:LAWYER1] +Who's the loudmouth? + +[LAWP_49:LAWYER1] +Ricardo Diaz. He's Mr. Coke. + +[LAWP_50:LAWYER1] +Mercedes! + +[LAWP_51:LAWYER1] +Oh, I was just taking my friend back into town. + +[LAWP_52:LAWYER1] +Another time, Ricardo! + +[LAWP_53:LAWYER1] +Let's get out of here. + +[LAWP_54:LAWYER1] +Actually, take me to the Pole Position club. + +[LAW1_2:LAWYER1] +~g~Get to the Colonel's boat. + +[LAW1_4:LAWYER1] +~r~You killed the Colonel's daughter! + +[LAW1_5:LAWYER1] +Will you be working for my father? + +[LAW1_6:LAWYER1] +Maybe. + +[LAW1_7:LAWYER1] +Do you mind me resting my hand in your lap? + +[LAW1_8:LAWYER1] +Maybe... + +[LAW1_9:LAWYER1] +It's so difficult having a rich and powerful father. Vamos. + +[LAW1_10:LAWYER1] +See you around, handsome! + +[LAW1_11:LAWYER1] +I'm sure you will. + +[LAW1_12:LAWYER1] +Hmmmm...nice bike. + +[LAW1_13:LAWYER1] +No! My Bike! + +[LAW1_3:LAWYER1] +~g~Take the Colonel's daughter to the Pole Position club. + +[HELP20:LAWYER1] +Follow the ~h~T-shirt~w~ blip on the radar to find Rafael's. + +[LAW1_14:LAWYER1] +Wow, I like, really dig your motorcycle. + +[LAW1_15:LAWYER1] +Yeah babe, just picked it up from Howlin' Pete's + +{=================================== MISSION TABLE LAWYER2 ===================================} + +[LAW2_A:LAWYER2] +Ah! Well, I hope you're having a good time. Because I'm going out of my mind with worry here. What did you find out? + +[LAW2_B:LAWYER2] +That there are more criminals in this town than in prison. We need a lead from the streets... + +[LAW2_C:LAWYER2] +Ok, let me think, let me think, let me think - + +[LAW2_D:LAWYER2] +- AH! I've got it! + +[LAW2_E:LAWYER2] +Ok, There's this limey, some music industry slimeball, + +[LAW2_F:LAWYER2] +goes by the name of Kent Paul. + +[LAW2_G:LAWYER2] +Anyway, he's got his nose so far up most of Vice City's ass + +[LAW2_I:LAWYER2] +it's this guy, all right? He's always at The Malibu. + +[LAW2_J:LAWYER2] +I'll go pay him a visit. + +[LAW2B_A:LAWYER2] +Where'd you pop up from? + +[LAW2B_B:LAWYER2] +I've been looking for a bird like you for ages, mate... + +[LAW2B_C:LAWYER2] +Kent Paul, mate. Yeah, I'm the guvnor 'round here. + +[LAW2B_D:LAWYER2] +I'm looking for some English guy... + +[LAW2B_E:LAWYER2] +I sort things out, you know what I mean? + +[LAW2B_F:LAWYER2] +I'll treat you. Whatever you want, I'll get you, girl. + +[LAW2B_G:LAWYER2] +Don't you worry about a thing, mate. + +[LAW2B_H:LAWYER2] +Get lost, honey. + +[LAW2B_I:LAWYER2] +Oi oi oi oi oi! + +[LAW2B_J:LAWYER2] +You Kent Paul? I'm a friend of Rosenberg's... + +[LAW2B_K:LAWYER2] +Rosenberg...Rosenberg...Oh, that bonkers ambulance chaser! + +[LAW2B_L:LAWYER2] +That guy could defend an innocent man all the way to death row! + +[LAW2B_M:LAWYER2] +Give us another drink, bruv. + +[LAW2B_N:LAWYER2] +Everybody's a comedian. + +[LAW2B_O:LAWYER2] +Listen to me, I'm missing twenty keys and a lot of cash... + +[LAW2B_P:LAWYER2] +Drugs, mate? It's a mug's game. + +[LAW2B_Q:LAWYER2] +What do you know about it? + +[LAW2B_R:LAWYER2] +Oi oi! What I was coming to was, + +[LAW2B_S:LAWYER2] +there's some chef-cum-trumpetshifter who deals out kitchen of a hotel on Ocean Drive. + +[LAW2B_T:LAWYER2] +He's been looking real pleased with himself lately. You could go and check him out...?! + +[LAW2B_U:LAWYER2] +I will - and I'll be seeing you around. + +[LAW2B_V:LAWYER2] +Yeah, that's right. Go on - walk away, you mug. I'll knock you spark out! + +[LAW2B_W:LAWYER2] +Give me a drink - and where's that slut! + +[LAW2C_A:LAWYER2] +Oh, way to go, tough guy. Beat him to a pulp. That should make him real chatty. + +[LAW2C_B:LAWYER2] +You want some, too? + +[LAW2C_C:LAWYER2] +Hey, chill. I want what you want, brother. + +[LAW2C_D:LAWYER2] +Oh, yeah? And what's that? + +[LAW2C_E:LAWYER2] +Your green - and my dead brother's white lady. Unfortunately, you just silenced our lead. + +[LAW2C_F:LAWYER2] +Accidents happen. Get lost. + +[LAW2C_G:LAWYER2] +Hey, hey, whoa. No need to go all 'Lone Ranger' on my ass. + +[LAW2C_H:LAWYER2] +The way I see it - we two hombres in a strange town. We need to watch each other's back. + +[LAW2C_I:LAWYER2] +My back's just fine, brother... + +[LAW2C_J:LAWYER2] +You sure about that? Here, take this. + +[LAW2C_K:LAWYER2] +Follow me! + +[LAW2_1:LAWYER2] +Hey, whatchoo lookin' at? + +[LAW2_2:LAWYER2] +You better start talking.. + +[LAW2_3:LAWYER2] +Hey, make me, you prick! + +[LAW2_4:LAWYER2] +This way! + +[LAW2_5:LAWYER2] +I'm going to go see what I can dig up. I'll be watching you, Tommy. + +[LAW2_6:LAWYER2] +~g~Go to the Malibu Club and find Kent Paul. + +[LAW2_7:LAWYER2] +~g~Go and find the chef on Ocean Drive. + +[LAW2_10:LAWYER2] +~g~Drive back to the hotel. + +[LAW2_11:LAWYER2] +~g~Pick up his cell phone. + +[LAW2_12:LAWYER2] +Cell phone acquired! You can now receive phone calls. + +[LAW2_13:LAWYER2] +~g~You've left Lance behind! Go and get him! + +[LAW2_14:LAWYER2] +We gotta get the hell outta here! + +[GUN_2A:LAWYER2] +Hold the ~h~~k~~PED_LOCK_TARGET~ ~w~button to ~h~auto-target~w~, press the ~h~~k~~PED_FIREWEAPON~ ~w~button to ~h~fire! + +[GUN_2C:LAWYER2] +Hold the ~h~~k~~PED_LOCK_TARGET~ ~w~button to ~h~auto-target~w~, press the ~h~~k~~PED_FIREWEAPON~ ~w~button to ~h~fire! + +[GUN_2D:LAWYER2] +Hold the ~h~~k~~PED_LOCK_TARGET~ ~w~button to ~h~auto-target~w~, press the ~h~~k~~PED_FIREWEAPON~ ~w~button to ~h~fire! + +[HELP17:LAWYER2] +Press the ~h~~k~~PED_FIREWEAPON~ ~w~button to attack the chef. + +[HELP18:LAWYER2] +Press the~h~ ~k~~PED_FIREWEAPON~ ~w~button to attack the chef. + +[LAW3_11:LAWYER2] +Stand in the ~q~pink marker~w~ to view the weapons on offer. + +[LAW3_12:LAWYER2] +You can select weapons by pressing ~h~left~w~ or ~h~right~w~ on the ~h~directional button. + +[LAW3_13:LAWYER2] +If you have enough cash you can buy weapons by pressing the ~h~~k~~PED_SPRINT~ ~w~button. + +[LAW3_14:LAWYER2] +You can exit the shop by pressing the ~h~~k~~VEHICLE_ENTER_EXIT~ ~w~button. + +[LAW3_15:LAWYER2] +Follow the ~h~Gun blip~w~ on the radar to find ~h~Ammu-Nation. + +[LAW2_15:LAWYER2] +~g~Go to Ammu-Nation. + +[LAW2_H:LAWYER2] +that if anybody knows the whereabouts of 20 k's of coke, + +[LAW2_K:LAWYER2] +Take it easy now. + +[LAW2_16:LAWYER2] +One thing you gotta realize about this town. You gotta pack some heat. + +[LAW2_17:LAWYER2] +C'mon, the local gun shop's a couple of blocks away. + +[LAW2_18:LAWYER2] +Tommy, every man needs a little R&R once in a while. + +[LAW2_19:LAWYER2] +This here's the Pole Position Strip Club. You might want to drop in some time. + +{=================================== MISSION TABLE LAWYER3 ===================================} + +[LAW3_A:LAWYER3] +Aaah! Oh, for god's sake, it's you! Oh, Jeez - I'm gonna need new pants! + +[LAW3_B:LAWYER3] +Hey, those psychos from up north - they've been on the horn, and they're coming down here soon. + +[LAW3_C:LAWYER3] +Now where is the goddamn money?! + +[LAW3_D:LAWYER3] +Relax, relax. We're not at that part yet. + +[LAW3_E:LAWYER3] +Ohhh... I thought that you were taking care of this, I really did! + +[LAW3_F:LAWYER3] +And now those guidos say we gotta do them a favor. + +[LAW3_G:LAWYER3] +You mean I gotta do 'em a favor. + +[LAW3_H:LAWYER3] +Oh, of course that's what I mean. Do I look like I can intimidate a jury? + +[LAW3_I:LAWYER3] +I couldn't intimidate a child - and believe me, I've tried. + +[LAW3_J:LAWYER3] +Now, look. It's either that, or Forelli's cousin, Giorgio, gets five years for fraud. + +[LAW3_K:LAWYER3] +You gotta take these guys OUT! + +[LAW3_L:LAWYER3] +I understand. Help the jury change their minds. Don't worry about it. + +[LAW3_M:LAWYER3] +No no no no no - NO! I tried that. The jury case didn't go so well, + +[LAW3_N:LAWYER3] +so MAKE them change their minds. + +[LAW3_1:LAWYER3] +Giorgio sends his regards. + +[LAW3_2:LAWYER3] +Remember, guilty is a dirty word. + +[LAW3_3:LAWYER3] +Innocent until I say otherwise. + +[LAW3_4:LAWYER3] +You know he's not guilty. + +[LAW3_5:LAWYER3] +You remember Giorgio? You remember he's innocent. + +[LAW3_6:LAWYER3] +Not guilty, understand? Good. + +[LAW3_8:LAWYER3] +~r~You killed a Juror! + +[LAW3_9:LAWYER3] +~g~Smash up the Juror's car to get him out! + +[HELP40:LAWYER3] +You can smash cars up by using the hammer or a similar weapon. + +[HELP41:LAWYER3] +or you can ram them with a vehicle + +[LAW3_20:LAWYER3] +~g~Smash up the Juror's car! + +[LAW3_21:LAWYER3] +I can't believe this is happening! + +[LAW3_22:LAWYER3] +Unbelievable! + +[LAW3_23:LAWYER3] +Ok! Ok, man! I get the message! + +[LAW3_24:LAWYER3] +~g~That hammer would be useful. + +[LAW3_7:LAWYER3] +~g~Go and intimidate the two jurors, but DON'T kill them! + +[HELP23:LAWYER3] +You can follow the ~h~hammer blip~w~ on the radar if you want to buy melee weapons from the hardware store. + +[LAW3_16:LAWYER3] +Dumb Florida Moron. + +[LAW3_17:LAWYER3] +Get out of the way! + +{=================================== MISSION TABLE LAWYER4 ===================================} + +[LAW4_A:LAWYER4] +Avery, it goes without saying... Tommy! Tommy! Any progress? No, no, no - tell me later, tell me later. + +[LAW4_B:LAWYER4] +Tommy, this is Avery Carrington - I believe you met at the party? + +[LAW4_C:LAWYER4] +Not in person. + +[LAW4_D:LAWYER4] +Howdy. + +[LAW4_E:LAWYER4] +Avery here has a proposition. + +[LAW4_F:LAWYER4] +Haven't we got other things on our mind? + +[LAW4_G:LAWYER4] +I'm trying to keep the wolves from the door, so could you please cut me some slack? + +[LAW4_H:LAWYER4] +I'm stretched like a wire and even if I'm dead by the end of the week, I'd like to think that I didn't die poor. + +[LAW4_I:LAWYER4] +Now just calm down, both of you. + +[LAW4_J:LAWYER4] +Son, you help me and any greaseballs giving you a hard time, I'll see to it they take a long dirt nap. + +[LAW4_K:LAWYER4] +Ok. What could I do for ya'? + +[LAW4_L:LAWYER4] +This delivery company's got its depot on some prime land. They won't sell. + +[LAW4_M:LAWYER4] +They're hanging on like a big old prairie rat, so we gotta go in there and smoke that vermin out. + +[LAW4_N:LAWYER4] +Head on down there and stir up a hornet's nest + +[LAW4_O:LAWYER4] +- the security will have their hands full and then you can sneak in and put 'em out of business. + +[LAW4_P:LAWYER4] +And you could drop by Rafael's for a change of clothes. You might be there a while, but yeah, go for it. + +[LAW4_Q:LAWYER4] +Should be a riot. + +[LAW4_R:LAWYER4] +If the balls drop like they should, stop by my office sometime... + +[LAW4_1:LAWYER4] +Please disperse. The management will discuss any grievances in the appropriate manner! + +[LAW4_2:LAWYER4] +Please disperse. Go back to your homes! + +[LAW4_3:LAWYER4] +Please disperse! This is inappropriate! + +[LAW4_4:LAWYER4] +Please disperse. You will all end up on the streets. + +[LAW4_5:LAWYER4] +Sticks out, boys! Let's crack some commie skulls! + +[LAW4_13:LAWYER4] +~g~Start fighting with at least 4 workers to get a riot started. + +[LAW4_14:LAWYER4] +~g~Destroy the vans in the compound! + +[HELP38:LAWYER4] +If you take out someone who's holding a weapon, they will drop it. + +[HELP39:LAWYER4] +You can target and shoot explosive barrels but keep your distance. + +{=================================== MISSION TABLE MIAMI_1 ===================================} + +[T4X4_1A:MIAMI_1] +~g~You have ~1~ seconds to collect ~y~24~g~ checkpoints. ~g~You may collect them in ~y~ANY ORDER. + +[T4X4_1B:MIAMI_1] +~y~PASS THROUGH~g~ the first checkpoint to start the ~r~TIMER. + +[T4X4_1C:MIAMI_1] +~1~ of 24! + +[GETBIK1:MIAMI_1] +You have ~1~ seconds to get on a PCJ 600! + +[GETBIK3:MIAMI_1] +~r~You need a PCJ 600 to attempt this mission! + +{=================================== MISSION TABLE MM ===================================} + +[BLOD_04:MM] +CAR HEALTH: + +[BLOD_05:MM] +~g~TARGET TIME: ~1~ Minute + +[BLOD_06:MM] +~g~TARGET TIME: ~1~ Minutes + +[BLOD_07:MM] +NEW Best Time: ~1~ Seconds + +[BLOD_08:MM] +Cars Destroyed: ~1~ + +[BLOD_09:MM] +$~1~ + +[BLOD_10:MM] +WINNER!! + +[BLOD_01:MM] +Drive through the checkpoints to increase your overall time. + +[BLOD_02:MM] +You will fail if your overall time reaches zero. + +[BLOD_03:MM] +Get your overall time above the Target Time to win! + +{=================================== MISSION TABLE OVALRIG ===================================} + +[HOTR_01:OVALRIG] +~g~The Race lasts for 12 laps. Only 1st, 2nd and 3rd places qualify for winnings. + +[HOTR_02:OVALRIG] +~g~If your car is destroyed you will be disqualified. + +[HOTR_03:OVALRIG] +~g~When your car is damaged you can get it repaired at the pitstop. + +[HOTR_04:OVALRIG] +~g~This is the way to leave the stadium. + +[HOTR_05:OVALRIG] +Car Health: + +[HOTR_06:OVALRIG] +Laps: + +[HOTR_07:OVALRIG] +New best time: ~1~:0~1~ + +[HOTR_08:OVALRIG] +Time: ~1~:~1~ + +[HOTR_10:OVALRIG] +Race Time: + +[HOTR_09:OVALRIG] +Position: + +[HOTR_12:OVALRIG] +~r~Your car has been destroyed! + +[HOTR_13:OVALRIG] +~r~You didn't win the race! + +[HOTR_14:OVALRIG] +~r~You have been disqualified! + +[HOTR_15:OVALRIG] +Time: ~1~:~1~ + +[HOTR_16:OVALRIG] +Time: ~1~:0~1~ + +[HOTR_17:OVALRIG] +Best Time: ~1~:~1~ + +[HOTR_18:OVALRIG] +Best Time: ~1~:0~1~ + +[HOTR_19:OVALRIG] +Best Time: NA + +[HOTR_20:OVALRIG] +New Best Time: ~1~:~1~ + +[HOTR_21:OVALRIG] +New Best Time: ~1~:0~1~ + +[HOTR_22:OVALRIG] +Best Result: NA + +[HOTR_23:OVALRIG] +Best Result: 1st + +[HOTR_24:OVALRIG] +Best Result: 2nd + +[HOTR_25:OVALRIG] +Best Result: 3rd + +[HOTR_26:OVALRIG] +Best Result: ~1~th + +[HOTR_27:OVALRIG] +Best Lap Time: ~1~.~1~ seconds + +[HOTR_28:OVALRIG] +Best Lap Time: ~1~.0~1~ seconds + +[HOTR_29:OVALRIG] +$~1~ + +[HOTR_30:OVALRIG] +1ST PLACE + +[HOTR_31:OVALRIG] +2ND PLACE + +[HOTR_32:OVALRIG] +3RD PLACE + +[HOTR_33:OVALRIG] +Best Lap Time: NA + +[HOTR_11:OVALRIG] +New best lap time: ~1~.~1~ seconds + +[HOTR_34:OVALRIG] +New best lap time: ~1~.0~1~ seconds + +{=================================== MISSION TABLE PHIL1 ===================================} + +[PHIL1_A:PHIL1] +Phil? + +[PHIL1_B:PHIL1] +RUN! + +[PHIL1_C:PHIL1] +Run + +[PHIL1_E:PHIL1] +Shit Phil, you drink that stuff? + +[PHIL1_F:PHIL1] +Hell, you don't have to drink it + +[PHIL1_G:PHIL1] +- just a good whiff will set you off. Hoowwee! + +[PHIL1_H:PHIL1] +Listen Phil, you said you could fix me up with some firepower... + +[PHIL1_I:PHIL1] +Sure thing. + +[PHIL1_J:PHIL1] +There's some Mexican gun-runner been doing me for business of late. + +[PHIL1_K:PHIL1] +He does his weekly run about now. + +[PHIL1_L:PHIL1] +Ram his hardware off the back of his trucks before he goes to ground. + +[PHIL1_M:PHIL1] +And you'd be doing me a favor while you're at it. + +[PHIL1_N:PHIL1] +Then finish him off. + +[PHI1_01:PHIL1] +~g~Go and knock the arms off the back of the dealers' trucks. + +[PHI1_02:PHIL1] +~g~The arms dealer dropped his load. Smash the crate and pick up the weapon. + +[PHI1_03:PHIL1] +~g~Looks like they have called for back up. + +[PHI1_04:PHIL1] +~g~Now go and finish off the remaining arms dealers. + +[PHI1_HP:PHIL1] +When using Detonator Grenades, throw a grenade then trigger the explosion at any time. + +[PHIL1_O:PHIL1] +Hoooooweeeeee! + +[PHIL1_D:PHIL1] +Never get a naked flame too close to one of Phil Cassidy's Boomshine stills! + +{=================================== MISSION TABLE PHIL2 ===================================} + +[PHIL2_A:PHIL2] +Hey Phil, how's it goin? + +[PHIL2_B:PHIL2] +Heeyyyy, Tommy. Howyadoin'? Ish been too long... + +[PHIL2_C:PHIL2] +I swear you should lay off that boomshine, man - + +[PHIL2_D:PHIL2] +smells like paint stripper. Making my eyes burn... + +[PHIL2_E:PHIL2] +Shshs shhh youshelf Tommy, + +[PHIL2_F:PHIL2] +and come over here because there's someshin' I wanna show you.. someshin. + +[PHIL2_G:PHIL2] +Woof! God! Should I be able to smell that from way over here? I'm feeling woozy. + +[PHIL2_H:PHIL2] +Don'tchaworry about the shmell Tommy, you jush wash thish. + +[PHIL2_I:PHIL2] +Shittycheapbatteriesh or shumin'. There'sh shum more on the bench. + +[PHIL2_J:PHIL2] +TA-DAAA! + +[PHIL2_K:PHIL2] +Aww Damn! + +[PHI2_01:PHIL2] +~g~Quick, get Phil to the hospital. + +[PHI2_03:PHIL2] +~r~Phil Cassidy is dead!!! Now who's gonna supply arms in Vice City? + +[PHI2_05:PHIL2] +Not the hospital, man! Too many cops and Viet Cong! + +[PHI2_06:PHIL2] +There's an ex-army surgeon owes me a few favors and a lawnmower. + +[PHI2_07:PHIL2] +He's got a place down Little Havana - ooo look, a giant fish. + +[PHI2_08:PHIL2] +Watch out! Charlie in the tree line! + +[PHI2_09:PHIL2] +Is it me or are the roads made of jelly? + +[PHI2_10:PHIL2] +Broken Spoon to Mother Hen, you copy? + +[PHI2_11:PHIL2] +Spooney Wooney Woo Woo Woooo! + +[PHI2_12:PHIL2] +He's come for me boy! + +[PHI2_13:PHIL2] +Black feathered wings beating all around... + +[PHI2_14:PHIL2] +It's beautiful, man ... it's beautiful ... but so cold ... + +[PHI2_15:PHIL2] +10-4 we've got a drunk driver. + +[PHI2_04:PHIL2] +PHIL'S HEALTH: + +[PHI_AS1:PHIL2] +PHILS PLACE ASSET COMPLETED + +[PHI_AS2:PHIL2] +~g~New Weapons available to purchase from Phils Place. + +{=================================== MISSION TABLE PIZZA ===================================} + +[PIZ1_01:PIZZA] +~g~Go deliver these pizzas, you must throw the pizza to the customers. Do a drive-by to throw the pizzas. + +[PIZ1_02:PIZZA] +~g~You have thrown all your pizzas, go back and get some more. + +[PIZ1_05:PIZZA] +~g~You have five minutes to deliver the orders before the customers phone another pizza shop. + +[PIZ1_07:PIZZA] +~r~You killed the customer! You're fired. + +[PIZ1_08:PIZZA] +~r~You are out of time. You're fired. + +[PIZ1_09:PIZZA] +~r~You destroyed our bike! You're fired. + +[PIZ1_11:PIZZA] +Hey! Get back on the bike! + +[PIZ1_12:PIZZA] +Pizzas left: + +[PIZ1_06:PIZZA] +Press the~h~ ~k~~TOGGLE_SUBMISSIONS~~w~ when on the bike to cancel the mission. + +[PIZ1_13:PIZZA] +Get these delivered nice and hot. + +[PIZ1_14:PIZZA] +Pal, pizza's for you. + +[PIZ1_15:PIZZA] +Hey, come on Mister, deliver these quick. + +[PIZ1_16:PIZZA] +What are you waiting around for Mister? You got pizza to deliver. + +[PIZ1_17:PIZZA] +I know you didn't want to be a pizza boy, well I don't give a damn. + +[PIZ1_18:PIZZA] +Deliver these. + +[PIZ1_19:PIZZA] +These need delivering. + +[PIZ1_20:PIZZA] +Come on Mister, deliver these things or you're sacked. + +[PIZ1_21:PIZZA] +We got people waiting pal. + +[PIZ1_22:PIZZA] +What are you waiting around for? These need delivering! + +[PIZ1_23:PIZZA] +Deliver the damn food Mister. + +[PIZ1_24:PIZZA] +These need delivering pal. + +[PIZ1_25:PIZZA] +Man, can you take these? + +[PIZ1_26:PIZZA] +Mister, deliver these pronto, avamos amigo. + +[PIZ1_27:PIZZA] +Come on, we're in a rush, deliver these. + +[PIZ1_28:PIZZA] +You again? well deliver these quick pal. + +[PIZ1_29:PIZZA] +No wasting time this time pal. + +[PIZ1_30:PIZZA] +Come on you lazy bastard, deliver this crap on time. + +[PIZ1_31:PIZZA] +You'll never get a promotion unless you move faster this time. + +[PIZ1_32:PIZZA] +~r~Pizza's too hot to handle? + +[PIZ1_33:PIZZA] +~g~Return to the restaurant for more orders. + +[PIZ1_34:PIZZA] +~g~Pizza delivered, here's your cash. + +[PIZ_WON:PIZZA] +Pizza Mission Complete. Your max Health increased to 150. + +{=================================== MISSION TABLE PORN1 ===================================} + +[POR1_A:PORN1] +Action. + +[POR1_B:PORN1] +Whoa! Now that's big. + +[POR1_C:PORN1] +12 inches. That is regulation baby. + +[POR1_D:PORN1] +CUT!! Who IS this idiot? You! YOU! Why are you in my space? WHY? + +[POR1_E:PORN1] +What is all this crap? + +[POR1_F:PORN1] +Aliens? Fishing poles? + +[POR1_G:PORN1] +Who's ever seen a shark that big? + +[POR1_H:PORN1] +All this stuff's gotta go. + +[POR1_I:PORN1] +Why'd you get in this business, ya prick? + +[POR1_J:PORN1] +Huh? + +[POR1_K:PORN1] +For the pussy, that's why! What is this?? + +[POR1_L:PORN1] +This is my art - SECURITY! + +[POR1_M:PORN1] +Look, you pompous asshole, I own you now. I own all of this. + +[POR1_N:PORN1] +We're gonna turn this place around... + +[POR1_O:PORN1] +I'm gonna make you rich. + +[POR1_P:PORN1] +Uh. You're - You - you're Tommy Vercetti? But I thought that you were... + +[POR1_Q:PORN1] +That's right. + +[POR1_R:PORN1] +We're gonna be making some changes around here and start making some real money. + +[POR1_S:PORN1] +Actually, have you ever thought about, umm... + +[POR1_T:PORN1] +But first we're going to need some good-looking broads. + +[POR1_U:PORN1] +Yeh, girls are fine but you... whew! + +[POR1_02:PORN1] +~g~ Go and take out Candy's pimp, then return and pick up Candy. + +[POR1_04:PORN1] +Yo, Candy. I'm looking for movie talent - you interested? + +[POR1_05:PORN1] +Sure! But, you'd have to talk to my agent... + +[POR1_06:PORN1] +The HELL are you doin'? + +[POR1_07:PORN1] +You should have stayed at home today! + +[POR1_7B:PORN1] +Can you believe this asshole? + +[POR1_08:PORN1] +Hey Mercedes! + +[POR1_09:PORN1] +Hey Tommy! You wanna party? + +[POR1_10:PORN1] +Not now sweets. You interested in doing some movies? + +[POR1_11:PORN1] +Of course. As long as it's cheap and sleazy. + +[POR1_13:PORN1] +~g~Take the girls back to the Studio to meet Steve. + +[POR1_17:PORN1] +Whoa, cool shark! + +[POR1_18:PORN1] +~r~Mercedes is dead! + +[POR1_20:PORN1] +Tommy where are you going? Get back here! + +[POR1_21:PORN1] +Where are you going? + +[POR1_22:PORN1] +Tommy, when are we going to spend some time alone together? + +[POR1_01:PORN1] +~g~Candy Suxxx would be perfect for a starring role! + +[POR1_12:PORN1] +~g~Take Candy with you to meet up with Mercedes. + +[POR1_16:PORN1] +Maybe later, babe... + +[POR1_24:PORN1] +~g~Go back and collect Candy. + +[POR1_25:PORN1] +~g~You have left Candy behind, go and get her. + +[POR1_23:PORN1] +~g~Candy will be taking care of business ~h~Downtown~g~. + +[POR1_26:PORN1] +~g~Here's Candy, looks like she has been with Congressman Shrub again. + +[POR1_15:PORN1] +Tommy, you coming in for a warm-up? + +[POR1_14:PORN1] +Heh heh - you're hired! + +[POR1_27:PORN1] +Come on, let's go. + +[POR1_28:PORN1] +Tommy be careful! My implants aren't insured yet! + +[POR1_29:PORN1] +You call that driving? + +[POR1_30:PORN1] +I can't do porno after this! + +[POR1_31:PORN1] +What? Are you trying to kill me? I thought I was the star! + +{=================================== MISSION TABLE PORN2 ===================================} + +[POR2_A:PORN2] +How's filming going, Steve? + +[POR2_B:PORN2] +Well, Candy is a natural and that new girl - she's insatiable! + +[POR2_C:PORN2] +She went through half the cast and crew before I even took a light reading. + +[POR2_D:PORN2] +Anyway, hey, tomorrow we're going on location to shoot the boat scenes - + +[POR2_E:PORN2] +Boat scenes?! What boat scenes? + +[POR2_F:PORN2] +The fishermen are in the throes of passion when this giant shark comes in - + +[POR2_G:PORN2] +What'd I say about the giant shark? + +[POR2_H:PORN2] +I said, 'NO GIANT SHARK', alright? + +[POR2_I:PORN2] +Just keep the cameras pointed at the poontang! + +[POR2_J:PORN2] +Ok ok, hey Tommy, a guy's gotta try, right? + +[POR2_K:PORN2] +Get those flyers printed up? + +[POR2_L:PORN2] +Yeah, but nobody's gonna let us distribute those things, I mean + +[POR2_M:PORN2] +They're just too, uh, they're unimaginative. + +[POR2_N:PORN2] +You don't worry about that. + +[POR2_O:PORN2] +I've got my own ideas for distribution. + +[POR2_P:PORN2] +O.K. Hey, Candy, uh - in my trailer. + +[POR2_01:PORN2] +~g~There is a seaplane that was used as a prop in some old indie film round the back of the studios. + +[POR2_02:PORN2] +~g~Pick one of the checkpoints to start dropping the flyers from. + +[POR2_03:PORN2] +~g~Drop the flyers all the way to the end checkpoint. + +[POR2_04:PORN2] +~r~LOW FUEL!!! + +[POR2_05:PORN2] +~g~Use it to distribute the flyers around town. + +[DILDO:PORN2] +Skimmer Fuel: + +[POR2_Q:PORN2] +Oh, boy. + +[PORN2_9:PORN2] +~g~You have ~1~ seconds to return to a Skimmer before the mission ends. + +{=================================== MISSION TABLE PORN3 ===================================} + +[POR3_A:PORN3] +Ok, what's the problem now? + +[POR3_B:PORN3] +SSShhhh! + +[POR3_C:PORN3] +Well, after his close encounter with the nympho-invaders, + +[POR3_D:PORN3] +our hero finds himself unable to think of anything but this huge phallic mountain - + +[POR3_E:PORN3] +and that's when I want to do the scene with the vat of mashed potatoes, but then we, uh - + +[POR3_F:PORN3] +I don't give a crap about that! + +[POR3_G:PORN3] +J - Just keep going, keep going! + +[POR3_H:PORN3] +Hey Tommy... + +[POR3_I:PORN3] +You mentioned something about some legal problem on the phone? + +[POR3_J:PORN3] +Congressman Alex Shrub has jumped on the pre-election bandwagon, he's going after the puritan vote. + +[POR3_K:PORN3] +Rumors are he's gonna support measures to restrict, shall we say, + +[POR3_L:PORN3] +the more fleshy aspects of this nation's great entertainment industry. + +[POR3_M:PORN3] +Great. + +[POR3_N:PORN3] +Candy! You know Shrub, + +[POR3_O:PORN3] +you guys get up to anything kinky? + +[POR3_P:PORN3] +Oh yeah, oh yeah, oh yeah! Yes yes yes YES OOOoooh! + +[POR3_Q:PORN3] +Please - tell me you got that. + +[POR3_R:PORN3] +Was that part of the, uh... or was she talking to..? + +[POR3_S:PORN3] +Hey, I can never tell. Anyway... + +[POR3_T:PORN3] +You're probably best following her after the shoot, + +[POR3_U:PORN3] +see if she'll lead you to their new love nest. + +[POR3_V:PORN3] +You got a camera? + +[POR3_X:PORN3] +Yeah. Get him a camera. + +[POR3_02:PORN3] +~r~You've killed the Congressman! There's no way you can blackmail him now. + +[POR3_03:PORN3] +~r~You've alerted the Congressman's protection, they will get him out of there immediately. + +[POR3_04:PORN3] +Uh, Candy, could you call me Martha? + +[POR3_05:PORN3] +Oh Alex - I mean Martha. Whatever you say... + +[POR3_06:PORN3] +Martha, someone's watching.. how kinky. + +[POR3_07:PORN3] +You! Give me that camera! + +[POR3_01:PORN3] +~g~Follow Candy's ~h~Stretch~g~. + +[POR3_15:PORN3] +~r~You trashed Candy's Stretch! + +[POR3_17:PORN3] +~g~Get back to the Porn Studios with the film. + +[POR3_19:PORN3] +~r~You ran out of film! + +[POR3_21:PORN3] +~g~You lost Candy's Stretch! + +[POR3_22:PORN3] +~g~The WK Chariot Hotel across from his balcony should provide an ideal photo-grabbing location. + +[POR3_23:PORN3] +~g~There is a side door that will allow you access to the hotel. + +[POR3_08:PORN3] +Press and hold the~h~ ~k~~PED_LOCK_TARGET~ ~w~button to ~h~target~w~ with the camera. + +[POR3_09:PORN3] +Press and hold the~h~ ~k~~PED_LOCK_TARGET~ ~w~button to ~h~target ~w~with the camera. + +[POR3_10:PORN3] +Press the~h~ ~k~~PED_SNIPER_ZOOM_IN~ ~w~button to ~h~zoom in ~w~with the camera and the~h~ ~k~~PED_SNIPER_ZOOM_OUT~ ~w~button to ~h~zoom out ~w~again. + +[POR3_11:PORN3] +Press the~h~ ~k~~PED_SNIPER_ZOOM_IN~ ~w~button to ~h~zoom in ~w~with the camera and the~h~ ~k~~PED_SNIPER_ZOOM_OUT~ ~w~button to ~h~zoom out ~w~again. + +[POR3_12:PORN3] +Press the~h~ ~k~~PED_FIREWEAPON~ ~w~button to take a picture. + +[POR3_13:PORN3] +Press the~h~ ~k~~PED_FIREWEAPON~ ~w~button to take a picture. + +[POR3_14:PORN3] +Press the~h~ ~k~~PED_FIREWEAPON~ ~w~button to take a picture. + +[POR3_20:PORN3] +~g~If you need transport, use the ~h~Sparrow~g~ round the back. + +[POR3_16:PORN3] +~g~You need three good blackmail photographs of Alex Shrub with Candy. + +[POR3_24:PORN3] +PHOTOS TAKEN: + +{=================================== MISSION TABLE PORN4 ===================================} + +[POR4_A:PORN4] +I'm sorry, but I just can't swallow this right now. + +[POR4_B:PORN4] +Oh COME ON darling! + +[POR4_C:PORN4] +He's hung like a sperm whale for pity's sake, + +[POR4_D:PORN4] +how can you not feel the part?! + +[POR4_E:PORN4] +But Stevie... + +[POR4_F:PORN4] +How's my star director? + +[POR4_G:PORN4] +Oh, man. The struggle between the artistic integrity and + +[POR4_H:PORN4] +the humping, pumping action continues unabated. + +[POR4_I:PORN4] +And before you ask, yes, all four videos will be released by their... + +[POR4_J:PORN4] +Honey, can you PLEASE keep the anaconda in the shot, + +[POR4_K:PORN4] +he costs more per hour than you do! + +[POR4_L:PORN4] +Oh, sorry Steve. + +[POR4_M:PORN4] +I was thinking, we need some kind of big stunt to really promote the launch. + +[POR4_N:PORN4] +Something that will make a real impact on the City - you got any ideas? + +[POR4_O:PORN4] +Well, in the old days they used to have gala events, + +[POR4_P:PORN4] +stars, limos, the night sky crisscrossed with searchlights... + +[POR4_Q:PORN4] +Searchlights! I've got an idea... + +[POR4_R:PORN4] +...yeah, yeah, yeah. The little sequined numbers, and the limos, oh, premieres + +[POR4_S:PORN4] +Oh, yes ma'am, of course ma'am, + +[POR4_T:PORN4] +and the press, and the barrage of lights... + +[POR4_01:PORN4] +~g~Go ~y~Downtown~g~ and adjust the spotlight on top of the building. + +[POR4_02:PORN4] +~g~A fast bike will be needed to jump from roof to roof. The Security Guard usually drives a ~y~PCJ 600~g~ to work... + +[POR4_03:PORN4] +~g~You will need to get onto the roofs of the buildings. There should be a lift into one of the upper offices... + +[POR4_06:PORN4] +~g~Return to the lower office if you need access to the rooftops again. + +[POR4_07:PORN4] +~g~You will need a bike so you can jump from building to building. + +[POR4_08:PORN4] +~g~Smash through the window to start the course. You have until 07:00 before it gets too light to get up there unseen. + +[POR4_09:PORN4] +~g~The pickups will show you which building to jump to next. + +[POR4_10:PORN4] +~r~It's too light to get up there unseen. + +[POR4_11:PORN4] +~g~Return to the ladder if you need access to the rooftops again. + +[POR4_05:PORN4] +~g~These stairs will lead round to a lower office. + +[POR_AS1:PORN4] +FILM STUDIO ASSET COMPLETED + +[POR_AS2:PORN4] +~g~Inter Global Films will now generate revenue up to a maximum of $~1~. Make sure you collect it regularly. + +{=================================== MISSION TABLE PROT1 ===================================} + +[PRO1_B:PROT1] +I can't stand this look. Tommy, whadaya say? Whadaya say we put a bar in... + +[PRO1_D:PROT1] +Listen to me, + +[PRO1_E:PROT1] +The time to take over this town is now. It's all out there waiting for us. + +[PRO1_F:PROT1] +We need to start seizing territory, + +[PRO1_G:PROT1] +let Vice City know we're the new players in town, know what I'm saying? + +[PRO1_I:PROT1] +What you need is a legitimate front Tommy, real estate. It's never done me no harm. + +[PRO1_J:PROT1] +We need to start using some muscle or we can kiss all that hard work goodbye. + +[PRO1_K:PROT1] +Local businesses know Diaz is dead, and they're refusing to pay protection! + +[PRO1_L:PROT1] +Ooh! We could try bribery... + +[PRO1_M:PROT1] +Bribery? Screw bribery! I'll show you how to make 'em scared! + +[PRO1_01:PROT1] +~g~Do a hit and run on the shop fronts and the owners will be begging for protection. + +[PRO1_03:PROT1] +~r~This was supposed to be a hit and run, not a 'hit and have coffee'. + +[PRO1_04:PROT1] +My livelihood, destroyed! + +[PRO1_05:PROT1] +Ruined...RUINED!! + +[PRO1_06:PROT1] +I pay through the ass for protection! + +[PRO1_07:PROT1] +My beautiful window display! + +[PRO1_08:PROT1] +My store. My wonderful store. + +[PRO1_09:PROT1] +Vercetti. Remember the name. + +[PRO1_10:PROT1] +I run this town now. ME! + +[BUYP1:PROT1] +You can now buy property in certain areas of the map. + +[BUYP2:PROT1] +If you see a green house pickup, you can buy that property. + +[PRO1_N:PROT1] +I'll be back here in five minutes... + +[PRO1_11:PROT1] +~g~Get to ~y~The North Point Mall~g~ in ~y~Vice Point~g~. + +[PRO1_12:PROT1] +~g~Smash the panes of glass in each shop front and the owners will be begging for new protection. + +[PRO1_A:PROT1] +Oh, we gotta redecorate this place. We gotta make it look older. + +[PRO1_C:PROT1] +You're my lawyer, Rosenberg, not my interior decorator. Got it? + +[BUYP3:PROT1] +Stand inside the pickup, then press the ~h~~k~~PED_ANSWER_PHONE~~w~ button to purchase that property. + +[PRO1_13:PROT1] +~g~You have five minutes to smash them all. + +{=================================== MISSION TABLE PROT2 ===================================} + +[PRO2_A:PROT2] +What's the problem? + +[PRO2_B:PROT2] +Some bar is refusing to pay. + +[PRO2_C:PROT2] +They reckon they're protected by a local gang of thugs. + +[PRO2_D:PROT2] +But don't worry Tommy, I can handle it. + +[PRO2_E:PROT2] +You call this handling it? + +[PRO2_F:PROT2] +You two, off your asses... + +[PRO2_G:PROT2] +Let's go. + +[PRO2_10:PROT2] +~g~Two more have made a run for it. Track them down and finish this. + +[PRO2_11:PROT2] +Get in the car, useless. + +[PRO2_02:PROT2] +Your protection needs a little more protection. + +[PRO2_03:PROT2] +Aw hell, not again! I don't need this crap! + +[PRO2_04:PROT2] +These idiots operate out of DBP Security around the block. + +[PRO2_05:PROT2] +You guys just sort it out amongst yourselves. + +[PRO2_06:PROT2] +I'll be seeing you later. + +[PRO2_07:PROT2] +Yeah, yeah, whatever. + +[PRO2_09:PROT2] +~g~Go and speak to the Front Page Bar Owner. + +[PRO2_01:PROT2] +~g~Take out the guards protecting the Front Page Bar and find out who supplied them. + +[PRO2_08:PROT2] +~g~DBP Security will know you are on your way, go and get them before they clear out. + +{=================================== MISSION TABLE PROT3 ===================================} + +[PRO3_A:PROT3] +You moron! What were you thinking?! + +[PRO3_B:PROT3] +Do you realize what this means?! + +[PRO3_C:PROT3] +We could all be sunk! + +[PRO3_D:PROT3] +The timer must have got screwed. + +[PRO3_E:PROT3] +That place was wired to go up like a firework factory. + +[PRO3_F:PROT3] +Then somebody tipped off the cops... + +[PRO3_G:PROT3] +What's the problem, fellas? + +[PRO3_H:PROT3] +Mike was supposed to torch some place in the mall, + +[PRO3_I:PROT3] +but he screwed the fuses and now the cops are crawling all over it. + +[PRO3_J:PROT3] +We gotta get our stuff and get out of here! + +[PRO3_K:PROT3] +Relax, both of you, let me think for a second! + +[PRO3_L:PROT3] +Tommy Vercetti just doesn't cut and run. + +[PRO3_M:PROT3] +The cops are gonna be going over that building with a fine toothed comb, right? + +[PRO3_N:PROT3] +But that takes time. + +[PRO3_O:PROT3] +We gotta go in and torch that place ourselves. + +[PRO3_P:PROT3] +Yeah, but... + +[PRO3_Q:PROT3] +No one but a cop could get within a mile of that place! + +[PRO3_R:PROT3] +So we go as cops. + +[PRO3_S:PROT3] +We gotta get uniforms - and we're gonna need a squad car. + +[PRO3_T:PROT3] +All thanks to you Mike. + +[PRO3_U:PROT3] +I'm sorry. + +[PRO3_V:PROT3] +I got it. + +[PRO3_W:PROT3] +What we got to do is lure the cops in with the finger, + +[PRO3_X:PROT3] +put them in a lock-up + +[PRO3_Y:PROT3] +and jump 'em. + +[PRO3_Z:PROT3] +Good plan. Let's go! + +[PRO3_A1:PROT3] +Alright. + +[PRO3_01:PROT3] +Ok Lance, let's get the cops' attention! + +[PRO3_02:PROT3] +~g~ Take a cop car and go and plant the bomb at the Tarbrush Coffee Shop in the Mall. + +[PRO3_03:PROT3] +~g~ You've left Lance behind, go and get him. + +[PRO3_04:PROT3] +~g~ Let's go. + +[PRO3_05:PROT3] +~r~You killed Lance! + +[PRO3_07:PROT3] +~g~ You have blown your cover. Hurry up and plant the bomb! + +[PRO3_09:PROT3] +Tie 'em up and gag 'em! + +[PRO3_10:PROT3] +Ooo. Fits perfectly! + +[PRO3_11:PROT3] +Bit tight around the crotch though... + +[PRO3_12:PROT3] +Oh yeah yeah, mine too. Mine too. + +[PRO3_13:PROT3] +Easy brother! No cop drives this bad! + +[PRO3_14:PROT3] +Remember - smile at the other cops + +[PRO3_15:PROT3] +Hey there officer. Nice badge, nice badge. + +[PRO3_16:PROT3] +Real smooth, Lance. + +[PRO3_17:PROT3] +Ok, timers are set, 5 seconds and ticking. + +[PRO3_18:PROT3] +5 seconds?!! We got to get the hell out of here! + +[PRO3_19:PROT3] +Now that got them really irritated. + +[PRO3_20:PROT3] +~g~ Get two cops to follow you into the garage. + +[PRO3_21:PROT3] +~g~Get a wanted level so the cops will follow you into the lock-up. + +[PRO3_22:PROT3] +~g~The lock-up door is blocked! You need to clear the door so it can close. + +[PRO3_23:PROT3] +~g~Walk into the marker to plant the bomb. + +[PRO3_24:PROT3] +~g~Get clear of the Cafe! + +[PRO_AS1:PROT3] +PROTECTION RING ASSET COMPLETED + +[PRO_AS2:PROT3] +~g~Vercetti Estate will now generate revenue up to a maximum of $~1~. Make sure you collect it regularly. + +[PRO3_08:PROT3] +~g~ Get back to ~h~Vercetti Estate~g~ on ~h~Starfish Island~g~. + +{=================================== MISSION TABLE RACES ===================================} + +[RACES_2:RACES] +~g~You need a vehicle to race, this is not a foot race! + +[RACES_3:RACES] +3..2..1.. GO GO GO! + +[RACES_8:RACES] +~r~You didn't win the race! + +[RACES00:RACES] +Race ~1~: + +[RACES01:RACES] +Terminal Velocity + +[RACES02:RACES] +Ocean Drive + +[RACES03:RACES] +Border Run + +[RACES04:RACES] +Capital Cruise + +[RACES05:RACES] +Tour! + +[RACES06:RACES] +V.C. Endurance + +[RACES07:RACES] +Entrance Fee: $~1~ + +[RACES08:RACES] +Best Time: ~1~:~1~ + +[RACES09:RACES] +Best Result: 1st + +[RACES10:RACES] +Best Result: 2nd + +[RACES11:RACES] +Best Result: 3rd + +[RACES12:RACES] +Best Result: 4th + +[RACES13:RACES] +Track Length: ~1~.~1~ km + +[RACES15:RACES] +Best Time: NA + +[RACES16:RACES] +Best Result: NA + +[RACES19:RACES] +You cannot afford to enter this race. + +[RACES22:RACES] +Best Time: ~1~:0~1~ + +[RACES23:RACES] +Track Length: ~1~.~1~ miles + +[RACES_1:RACES] +~g~Get a fast vehicle and get to the starting grid. + +[RACEHLP:RACES] +~w~Press the~h~ ~k~~PED_SPRINT~ ~w~button to start the selected race. Press the~h~ ~k~~VEHICLE_ENTER_EXIT~ ~w~button to exit. + +{=================================== MISSION TABLE RCHELI1 ===================================} + +[WRECKED:RCHELI1] +~r~The vehicle is wrecked! + +[RCH1_4:RCHELI1] +Checkpoints: + +[RCH1_7:RCHELI1] +~g~There are 20 checkpoints in total. + +[RCH1_12:RCHELI1] +~g~The RC helicopter is getting too far out of range! + +[RCH1_13:RCHELI1] +~r~The RC helicopter went out of range! + +[RCH1_8:RCHELI1] { reVC update } +~g~If you wish to quit this mission press the ~h~~k~~VEHICLE_FIREWEAPON~ ~g~button to detonate your RC Helicopter. + +{=================================== MISSION TABLE RCPLNE1 ===================================} + +[RCPL1_4:RCPLNE1] +~g~Compete in a CHECKPOINT RACE with 3 other RC Plane's + +[RCPL1_5:RCPLNE1] +~g~Fly through the checkpoints scattered throughout Vice City. + +[RCPL1_6:RCPLNE1] { reVC update } +~g~If you wish to quit this mission press the ~h~~k~~VEHICLE_FIREWEAPON~ ~g~button to detonate your RC Plane. + +[RCPL1_8:RCPLNE1] +~g~Your RC Plane is going out of range! + +[RCPL1_9:RCPLNE1] +~r~Your RC Plane went out of range! + +{=================================== MISSION TABLE RCRACE1 ===================================} + +[RCRC1_1:RCRACE1] +~g~Compete in a CHECKPOINT RACE with 3 other RC Bandits over 2 LAPS + +[RCRC1_3:RCRACE1] +~g~Final lap! + +[RCR1_4:RCRACE1] +laps left: + +[RCR1_1:RCRACE1] +~g~Compete in a checkpoint race with 3 other RC Cars. + +[RCR1_2:RCRACE1] +~g~Be the first to complete two laps of the track to win! + +[RCR1_6:RCRACE1] +~g~Your RC Car is going out of range! + +[RCR1_7:RCRACE1] +~r~Your RC Car went out of range! + +{=================================== MISSION TABLE ROCK1 ===================================} + +[RBM1_A:ROCK1] +AllllllllRrrighttt! + +[RBM1_B:ROCK1] +Yessss! Brilliant, bloody brilliant! + +[RBM1_D:ROCK1] +Hey, you ever met Love Fist before? + +[RBM1_E:ROCK1] +No, I haven't but I've always loved your music. + +[RBM1_F:ROCK1] +Let me introduce you to the band. + +[RBM1_G:ROCK1] +This is Percy, Dick, and Willy's in the kaze, and that was Jezz in the booth earlier, + +[RBM1_H:ROCK1] +and guys, I want you to meet a good friend of mine. + +[RBM1_I:ROCK1] +This is Tommy. We go way back. + +[RBM1_J:ROCK1] +All right, pal. + +[RBM1_K:ROCK1] +And eh, what was your name again? + +[RBM1_L:ROCK1] +Leave it out, Jezz you, remember - + +[RBM1_M:ROCK1] +don't be playing them games with me, mate, + +[RBM1_N:ROCK1] +I'm too crafty for that, sunshine! + +[RBM1_O:ROCK1] +You see, the thing is, Tom, the boys need some help. + +[RBM1_P:ROCK1] +They ain't too connected here, they don't have the old 'how's your father?' + +[RBM1_Q:ROCK1] +We need some drugs, pal! + +[RBM1_R:ROCK1] +Gonna get on the old Love Fist fury, you know?! + +[RBM1_S:ROCK1] +Well, this is Vice City, man. What's the problem? + +[RBM1_U:ROCK1] +Love Juice, man! + +[RBM1_V:ROCK1] +Love Juice? + +[RBM1_W:ROCK1] +Aye, two parts boomshine, 1 part trumpet, 5 fizz bombs and a liter of petrol. + +[RBM1_X:ROCK1] +Can you help us out, pal? + +[RBM1_Y:ROCK1] +Aw, it would really mean a lot to the boys. + +[RBM1_Z:ROCK1] +You can do that for the boys, right? + +[RBM1_7:ROCK1] +~r~You did not get the Love Juice in time! + +[RBM1_8:ROCK1] +~r~Mercedes is dead! + +[RBM1_10:ROCK1] +~r~You idiot! You have destroyed the merchandise! + +[RBM1_13:ROCK1] +~g~Get the 'Love Juice' and Mercedes to the band before they are needed on stage. + +[RBM1_15:ROCK1] +~r~You have lost the dealer, our cash and the drugs! + +[RBM1_17:ROCK1] +~g~Kill the dealer and get the drugs! + +[MOB_07A:ROCK1] +Hey mate, the guys could do with some company, if you know what I mean... + +[MOB_07B:ROCK1] +I know just the girl. + +[ROK1_5:ROCK1] +Hey, Mercedes! + +[ROK1_6:ROCK1] +Hiya, Tommy. And how are you? + +[ROK1_7:ROCK1] +Just fine. Listen, you fancy having Love Fist? + +[ROK1_8:ROCK1] +Ok, but just as a favor I expect returned.. + +[RBM1_14:ROCK1] +~g~You need a car or a motorcycle! + +[RBM1_1:ROCK1] +~g~Go and collect Mercedes from her apartment. + +[RBM1_12:ROCK1] +~g~Go and collect the 'Love Juice' ingredients from the dealer. + +[ROK1_2:ROCK1] +NO LONGER NEEDED + +[ROK1_3:ROCK1] +NO LONGER NEEDED + +[MERC_39:ROCK1] +I'll see you later, big boy. + +[RBM1_C:ROCK1] +Hey, Tommy! Glad you could make it. + +[RBM1_9:ROCK1] +~g~Go and collect some love juice from the dealer for Love Fist! + +[ROK1_1A:ROCK1] +Looking for something special? I got what you need! + +[ROK1_9:ROCK1] +Thanks for the money, sucker! + +[RBM1_T:ROCK1] +We need Love Juice, man, you know? + +{=================================== MISSION TABLE ROCK2 ===================================} + +[RBM2_A:ROCK2] +Tommy, man. Am I glad to see you! + +[RBM2_B:ROCK2] +What's going on? + +[RBM2_C:ROCK2] +Bad vibes, Tommy.... + +[RBM2_E:ROCK2] +There's this cat, we hardly know him, but he knows us. + +[RBM2_F:ROCK2] +Like this cat. Knows all about us. + +[RBM2_G:ROCK2] +Knows that Willy likes his ladies' underwear, eh! + +[RBM2_H:ROCK2] +Or that Percy likes Duran Duran! + +[RBM2_K:ROCK2] +Yeah, the love rocket thing, right. But listen, this cat... + +[RBM2_L:ROCK2] +yeh, yeh, the guy, he wants Love Fist dead. + +[RBM2_M:ROCK2] +Dead Tommy. + +[RBM2_N:ROCK2] +Love Fist gone. You know what they say, the good die young. + +[RBM2_O:ROCK2] +but Tommy, you gotta save Love Fist! + +[RBM2_P:ROCK2] +We got a signing in two hours and I think... + +[RBM2_Q:ROCK2] +And the boys think the stalker's gonna try some monkey business there. + +[RBM2_1:ROCK2] +~g~Drive the limo to the signing event and try to draw the psycho out. + +[RBM2_2:ROCK2] +~r~You've wrecked the band's car! + +[RBM2_3:ROCK2] +~g~Get to the signing! + +[RBM2_4:ROCK2] +~g~Get the Psycho! Don't let him escape! + +[RBM2_5:ROCK2] +~r~You lost him, you idiot! + +[RBM2_7:ROCK2] +~r~The fans have been attacked, the psycho won't show! + +[RBM2_8:ROCK2] +~r~The security guards have been attacked, the psycho won't show! + +[PSYCH_1:ROCK2] +I'll see Love Fist burn! + +[PSYCH_2:ROCK2] +Love Fist ruined my life! + +[RBM2_I:ROCK2] +Shut up ye fool. Just 'cause Jezz bangs sheep. + +[RBM2_R:ROCK2] +Oi shut it! + +[RBM2_D:ROCK2] +Aye, I'm not joking, it's heavy stuff man, heavy you know? + +[RBM2_J:ROCK2] +It's a love rocket thing, you know? + +{=================================== MISSION TABLE ROCK3 ===================================} + +[RBM3_A:ROCK3] +Tommy! Tommy! Tommy, man, that psycho's back! + +[RBM3_B:ROCK3] +What's going on? + +[RBM3_C:ROCK3] +That psycho won't leave Love Fist alone! + +[RBM3_D:ROCK3] +You didnae kill him man. And now he's back. + +[RBM3_E:ROCK3] +Yeah, yeah, yeah, and the thing is... + +[RBM3_F:ROCK3] +The thing is, we need someone to drive the limo we can trust, + +[RBM3_G:ROCK3] +cause that nutter keeps making threats! + +[RBM3_I:ROCK3] +We're all bricking ourselves, man. + +[RBM3_J:ROCK3] +Okay guys, calm down, I'll handle this. + +[RBM3_K:ROCK3] +Normally I wouldn't busy myself with driving around a bunch of drunken Scottish bisexuals, + +[RBM3_L:ROCK3] +but, in your case I'll make an exception. + +[RBM3_4:ROCK3] +~r~You've killed Love Fist! + +[RBM3_6:ROCK3] +DETONATION: + +[RBM3_1:ROCK3] +~g~Drive Love Fist to the venue. + +[RBM3_2:ROCK3] +While the bomb is armed if you try to leave the car it will explode... + +[RBM3_3:ROCK3] +If the detonation bar completely fills the bomb will explode. + +[RBM3_8:ROCK3] +The faster you drive the lower the detonation bar will go. + +[RBM3_7:ROCK3] +~g~BOMB DEFUSED! + +[ROK3_62:ROCK3] +so we thought we'd show you our Temple of Rock - + +[ROK3_63:ROCK3] +Get a feel for that Love Fist fury! + +[ROK3_64:ROCK3] +Listen to yourself, man. It's papier-mache and gaffa tape. + +[ROK3_65:ROCK3] +Hey, to the kids, it's a temple and we are the priests! + +[ROK3_66:ROCK3] +Aye, well, if the kids like their priests half cut and tone deaf, + +[ROK3_67:ROCK3] +who am I to argue? + +[ROK3_68:ROCK3] +Oh geez, the tape's getting chewed again. + +[ROK3_69:ROCK3] +At this rate, we'll never get to play live. + +[ROK3_70:ROCK3] +Oohh shite! My bowels... + +[ROK3_73:ROCK3] +Jezz is running the tape, + +[RBM3_9:ROCK3] +If you are stopped or drive slowly the detonation bar will increase. + +[RBM3_H:ROCK3] +I'm shitin' masel' man. I need ma ma! + +[ROK3_71:ROCK3] +We gotta get on with it - thanks again Tommy, Know what I am saying, nice one, bye! + +[ROK3_1:ROCK3] +At last man, time for a well earned drink. The venue's just a hundred yards down the road. + +[ROK3_2:ROCK3] +Better make it a large one then. Hey Tommy, change the tunes, man. + +[ROK3_3:ROCK3] +I get confused if my head ain't banging. Ah look, what's this? Hey Tommy, stick this tape on. + +[ROK3_4:ROCK3] +Love Fist. Your time polluting the airwaves is over. I gave you the chance to be friends. + +[ROK3_5:ROCK3] +Now, I'm giving you the chance to die. Try to slow down and your limousine will explode, along with your BIG, HAIRY ARSES! + +[ROK3_6:ROCK3] +Tommy pal, you gotta save the band! I'm getting bored of this. Just keep the pedal to the metal!! + +[ROK3_7:ROCK3] +We gotta find the bomb! Can't we just drive around all day? Aye, we've got plenty to drink.. + +[ROK3_8:ROCK3] +Won't the bomb not be in the engine? We'll have to stop to get it. We're all going to die! I'm gonna get drunk! + +[ROK3_9:ROCK3] +Hey, there's a queue here pal! The answer ain't in the drinks cabinet! Get out of my way! + +[ROK3_10:ROCK3] +Hey, the vodka bottle's got wires coming out of it! That's not vodka, that's BOOMSHINE! + +[ROK3_11:ROCK3] +WAAAAAAGGGHHHH!!!! And it's wired to blow!! WAAAAAAAAAAAAGGGHHHHHHHH!!!! + +[ROK3_12:ROCK3] +They always said the drink would kill me. I've seen this on the telly. you gotta pull out one of the wires. Which wire? I don't know, man. + +[ROK3_13:ROCK3] +I don't have a clue. Willy, say something. I'm gonna play bass in hell. + +[ROK3_14:ROCK3] +Tommy man, keep driving fast, pal. Somebody do something. Aye, clever! + +[ROK3_15:ROCK3] +'Somebody do something', what kind of crap is that, I've seen braver girls. Okay tough guy, you do something. + +[ROK3_16:ROCK3] +Look, man, I play a musical instrument I don't have a clue about bomb disposal. Willy could just suck the boomshine out with a straw. + +[ROK3_17:ROCK3] +Aye, I've heard that your good at that kind of thing. Hey, I was off my tits that night, as well you know! + +[ROK3_18:ROCK3] +Just pass Willy a straw! A straw?!?! This is the Love Fist Tour Bus! + +[ROK3_19:ROCK3] +Where am I gonna get a straw from, know wot I mean? Which wire, Tommy? The green one. There isn't a green one. + +[ROK3_20:ROCK3] +Or is this one green? Any of these wires look green to you? + +[ROK3_21:ROCK3] +Oh no! Death's on the cards! Everything looks green! I should have dumped you lot when I had the chance man. + +[ROK3_22:ROCK3] +Glory seeker. Capitalist. I've been carrying you for years. Shut up. You're a muppit. + +[ROK3_23:ROCK3] +A big screaming girl. Yeah. Shut up and pull a wire. Which wire? This one.. + +[ROK3_24:ROCK3] +NO! Man, we're okay. We ain't been blown up, pal. + +[ROK3_25:ROCK3] +Tommy, man, nice one. Rock and roll, man. Ain't we got a gig to go to? + +[ROK3_26:ROCK3] +A racket to make? Groupies to abuse? LOVE FIST! + +[ROK3_27:ROCK3] +Have you finished with that bottle? + +{=================================== MISSION TABLE SERG1 ===================================} + +[TEX1_A:SERG1] +Come in and park yourself on the hide, son. + +[TEX1_B:SERG1] +Hell, my daddy used to say, never look a gift horse in the mouth, and by golly, he never did. + +[TEX1_C:SERG1] +Would you like a drop of the old Kentucky? + +[TEX1_D:SERG1] +No thanks. + +[TEX1_E:SERG1] +A clean thinker! I like that. + +[TEX1_F:SERG1] +Now, the property business isn't all about high-falootin' paper pushing. + +[TEX1_G:SERG1] +It's about dirt! And the will to claim that dirt! You with me, son? + +[TEX1_H:SERG1] +Oh yeah. + +[TEX1_K:SERG1] +Persuasion's my forte. + +[TEX1_L:SERG1] +Yeh, he'll be down at the country club, down on the golf course. + +[TEX1_M:SERG1] +They don't allow guns, so his bodyguards won't be packing lawgivers. + +[TEX1_N:SERG1] +Go beat eight tons of crap out of him. + +[TEX1_O:SERG1] +Here now - I got you a membership, and boy you're going to need more appropriate clothing. + +[TEX1_2:SERG1] +~g~Now head to the Leaf Links Golf Club. + +[TEX1_3:SERG1] +Who's this guy? Boys, deal with him. + +[TEX1_6:SERG1] +Nice ass baby! + +[TEX1_7:SERG1] +Is this me? + +[TEX1_I:SERG1] +Well, I need some tenacious bastard to let go of some dirt, + +[TEX1_J:SERG1] +and you look to me like the kind of guy to persuade him. + +[TEX1_0:SERG1] +~g~The target is at the driving range enjoying a game of golf. Make sure it's his last. + +[TEX1_8:SERG1] +Each time you enter a caddy you automatically receive a golf club, providing your melee weapon slot is empty. + +[TEX1_9:SERG1] +Get him! + +[TEX1_10:SERG1] +Kill that Psycho! + +[TEX1_1:SERG1] +~g~Go and pick up some golfing clothes from Jocksports. + +{=================================== MISSION TABLE SERG2 ===================================} + +[TEX_2A:SERG2] +~g~Excellent! They've spotted you! + +[TEX_2B:SERG2] +~r~Fool! People have to WITNESS a Cuban doing the hit! + +[TEX_2C:SERG2] +~g~Go get yourself some Cuban gang colors in Little Havana! + +[TEX_2D:SERG2] +~g~Take out the Haitian Gang Lord at Romero's Funeral Parlor! + +[TEX2_A:SERG2] +Tommy, this is Donald Love. Donald, this here is Tommy Vercetti, + +[TEX2_B:SERG2] +the latest gunslinger to come to these parts. + +[TEX2_C:SERG2] +Yeh...uh... + +[TEX2_D:SERG2] +Donald, you just shut up and listen, and you might learn something. + +[TEX2_E:SERG2] +Now, nothing brings down real estate prices quicker than a good old-fashioned gang war - + +[TEX2_F:SERG2] +'cept maybe a disaster, like a biblical plague or something, + +[TEX2_G:SERG2] +but, that may be going too far in this case. + +[TEX2_H:SERG2] +You getting this down, you four-eyed prick? + +[TEX2_I:SERG2] +Now recently a Haitian gang lord died. Apparently the Cubans did it, nobody's certain. + +[TEX2_J:SERG2] +But let's make them certain! You disguise yourself as a Cuban hombre, + +[TEX2_K:SERG2] +and head on down to crash that funeral. Mix it up, and then high tail it. + +[TEX2_L:SERG2] +You getting this down, Donald? + +[TEX2_M:SERG2] +Well, that ought to put the coyote in the chicken coop, huh? + +[TEX2_N:SERG2] +And then we'll just sit back, and watch the prices tumble. + +[TEXEXIT:SERG2] +~g~Now get out of Little Haiti! + +{=================================== MISSION TABLE SERG3 ===================================} + +[TEX3_A:SERG3] +Now look here, son. I got a problem and I reckon you could help me with it. + +[TEX3_B:SERG3] +I'm no builder. + +[TEX3_C:SERG3] +No, I was thinking more of your demolition skills. + +[TEX3_D:SERG3] +Now this here, this is the development as planned and this, + +[TEX3_E:SERG3] +this is the property that we're looking at. + +[TEX3_F:SERG3] +You're trying to say this new office block is kind of in the way. + +[TEX3_G:SERG3] +You catch on quick. + +[TEX3_H:SERG3] +Now I'm going to head out of town for a while + +[TEX3_I:SERG3] +and if that office development were to face sudden and insurmountable structural problems, then I.. + +[TEX3_J:SERG3] +As a civil minded individual you'd feel obliged to step in and + +[TEX3_K:SERG3] +save the rejuvenation of an important area of the city? + +[TEX3_L:SERG3] +Where can I get more guys like you? + +[TEX3_1:SERG3] +~g~Use the RC helicopter to transport bombs to four demolition points on the building site. + +[TEX3_2:SERG3] +~g~You must place one bomb at each target. You can place bombs in any order. + +[TEX3_3:SERG3] +~g~Maneuver the RC helicopter next to a bomb to pick it up. it can carry one bomb at a time.. + +[TEX3_5:SERG3] +~g~If you place a bomb unsuccessfully you can pick it up and try again. + +[TEX3_7:SERG3] +~g~You must then place the remaining bombs in 7 minutes! + +[TEX3_8:SERG3] +~g~You missed the target! Pick up a bomb and try again! + +[TEX3_10:SERG3] +~g~Drop the bomb at a target. + +[TEX3_11:SERG3] +targets left: + +[TEX3_17:SERG3] +~r~You ran out of time! + +[TEX3_18:SERG3] +~r~Your RC Helicopter has been destroyed! + +[TEX3_19:SERG3] +~r~You dropped your bomb in the water! That ain't no way to fish! + +[TEX3_20:SERG3] +~r~The RC Helicopter is nearly out of range! + +[TEX3_21:SERG3] +~r~The RC Helicopter went out of range! + +[TEX3_24:SERG3] +Press the ~h~~k~~VEHICLE_LOOKLEFT~ ~w~button to rotate the helicopter counter-clockwise. + +[TEX3_25:SERG3] +Press the ~h~~k~~VEHICLE_LOOKRIGHT~ ~w~button to rotate the helicopter clockwise. + +[TEX3_27:SERG3] +~g~A central stairway allows access to all the floors in the building. + +[TEX3_31:SERG3] +~r~You destroyed the TOPFUN van that contained the bombs and RC helicopter! + +[TEX3_32:SERG3] +You can ~h~look behind~w~ by simultaneously pressing the ~h~~k~~VEHICLE_LOOKLEFT~~w~ and the ~h~~k~~VEHICLE_LOOKRIGHT~~w~ buttons. + +[TEX3_4:SERG3] { reVC update } +~g~To drop a bomb press the~h~ ~k~~VEHICLE_FIREWEAPON~ ~g~button. + +[TEX3_29:SERG3] { reVC update } +To drop a bomb press the~h~ ~k~~VEHICLE_FIREWEAPON~ ~w~button. + +[TEX3_26:SERG3] +Pressing the ~h~~k~~VEHICLE_BRAKE~ ~w~button ~w~decreases the rotor speed, causing the helicopter to~h~ descend. + +[TEX3_22:SERG3] +Pressing the ~h~~k~~VEHICLE_ACCELERATE~ ~w~button increases the rotor speed, causing the helicopter to ~h~ascend. + +[TEX3_16:SERG3] +~g~Get to the ~w~TOPFUN ~g~van near the building site to be demolished. + +[TEX3_33:SERG3] +Once you pick up a bomb the radar will show you the position of the target relative to the RC helicopter. + +[TEX3_34:SERG3] +An ~h~upwards pointing triangular blip ~w~indicates the target is ~h~above ~w~the RC helicopter. + +[TEX3_35:SERG3] +A ~h~downward pointing triangular blip ~w~indicates the target is ~h~below ~w~the RC helicopter. + +[TEX3_36:SERG3] +A ~h~square blip ~w~indicates the target is on the ~h~same level ~w~as the RC helicopter + +[TEX3_6:SERG3] +~g~Once you have picked up a bomb for the first time, the detonation timer will start. + +[TEX3_28:SERG3] +To ~h~pick up a bomb~w~, simply maneuver the RC helicopter next to it. The RC Helicopter can carry one bomb at a time. + +[TEX3_30:SERG3] +~g~To pick up a bomb, simply maneuver the RC helicopter next to it. The RC Helicopter can carry one bomb at a time. + +[TEX3_12:SERG3] +~g~Bomb planted! Only 3 more targets to go! Go back and get another bomb. + +[TEX3_13:SERG3] +~g~Bomb planted! Only 2 more targets to go! Go back and get another bomb. + +[TEX3_14:SERG3] +~g~Bomb planted! Only 1 more target to go! Go back and get another bomb. + +[TEX3_15:SERG3] +~r~Detonation timer initiated! ~g~You must plant the ~w~4 bombs ~g~in the remaining time! + +[TEX3_37:SERG3] +Pushing ~h~back on the analog stick ~w~decreases the rotor speed, causing the helicopter to~h~ descend. + +[TEX3_38:SERG3] { reVC update } +{ Pressing the ~h~~k~~VEHICLE_ACCELERATE~ ~w~button increases the rotor speed, causing the helicopter to ~h~ascend. } +Pushing ~h~forward on the analog stick ~w~increases the rotor speed, causing the helicopter to ~h~ascend. + +[TEX3_39:SERG3] +~g~To drop a bomb press the ~h~~k~~VEHICLE_HANDBRAKE~ ~g~button. + +[TEX3_40:SERG3] +To drop a bomb press the ~h~~k~~VEHICLE_HANDBRAKE~ ~w~button. + +[TEX3_23:SERG3] +Press the ~h~~k~~VEHICLE_TURRETUP~~w~ and ~h~~k~~VEHICLE_TURRETDOWN~~w~ buttons to tilt the helicopter in the direction you wish to maneuver it. + +{=================================== MISSION TABLE TAXI1 ===================================} + +[FARES:TAXI1] +FARES: + +[TAXI1:TAXI1] +~g~Look for a fare. + +[TSCORE2:TAXI1] +$~1~ + +[IN_ROW:TAXI1] +~1~ IN A ROW bonus! $~1~ + +[TAXI3:TAXI1] +~r~Your passenger fled in terror! + +[TAXI7:TAXI1] +~r~Your car is trashed, get it repaired. + +[TAXI4:TAXI1] +Fare complete! + +[TAXI5:TAXI1] +SPEED BONUS!! + +[TAXI6:TAXI1] +Taxi mission over + +[TAXIH1:TAXI1] +Stop near a highlighted pedestrian to pick them up then drive them to their destination before the time runs out. + +[FARE1:TAXI1] +~g~Destination ~w~'The Pole Position Club' ~g~in Ocean Beach. + +[FARE3:TAXI1] +~g~Destination ~w~'The Marina' ~g~in Ocean Beach. + +[FARE4:TAXI1] +~g~Destination ~w~'Ammu-Nation' ~g~in Ocean Beach. + +[FARE5:TAXI1] +~g~Destination ~w~'The Hardware store' ~g~in Washington Beach. + +[FARE6:TAXI1] +~g~Destination ~w~'The North Point Mall' ~g~in Vice Point. + +[MFARE1:TAXI1] +~g~Destination ~w~'Ammu-Nation' ~g~in Downtown. + +[MFARE2:TAXI1] +~g~Destination ~w~'the Terminal' ~g~at Escobar International Airport. + +[WFARE3:TAXI1] +~g~Destination ~w~'Sunshine Autos' ~g~in Little Havana. + +[WFARE4:TAXI1] +~g~Destination ~w~'Kaufman Cabs' ~g~in Little Haiti. + +[WFARE5:TAXI1] +~g~Destination ~w~'The Hardware store' ~g~in Little Havana. + +[WFARE6:TAXI1] +~g~Destination ~w~'Howlin Petes Bike Emporium' ~g~in Downtown. + +[FARE7:TAXI1] +~g~Destination ~w~'The Jewelers' ~g~in Vice Point. + +[FARE8:TAXI1] +~g~Destination ~w~'The Beach' ~g~in Ocean Beach. + +[FARE9:TAXI1] +~g~Destination ~w~'The Beach' ~g~in Washington Beach. + +[FARE10:TAXI1] +~g~Destination ~w~'The Beach' ~g~in Vice Point. + +[FARE11:TAXI1] +~g~Destination ~w~'Hospital' ~g~in Ocean Beach. + +[FARE12:TAXI1] +~g~Destination ~w~'Hospital' ~g~in Vice Point. + +[FARE13:TAXI1] +~g~Destination ~w~'Police Station' ~g~in Washington Beach. + +[FARE14:TAXI1] +~g~Destination ~w~'Police Station' ~g~in Vice Point. + +[FARE15:TAXI1] +~g~Destination ~w~'Pizza Restaurant' ~g~in Vice Point. + +[WFARE7:TAXI1] +~g~Destination ~w~'Police Station' ~g~in Little Havana. + +[WFARE8:TAXI1] +~g~Destination ~w~'Police Station' ~g~in Downtown. + +[WFARE9:TAXI1] +~g~Destination ~w~'Hospital' ~g~in Downtown. + +[WFARE10:TAXI1] +~g~Destination ~w~'Hospital' ~g~in Little Havana. + +[WFARE11:TAXI1] +~g~Destination ~w~'The Stadium' ~g~in Downtown. + +[WFARE12:TAXI1] +~g~Destination ~w~'Pizza Restaurant' ~g~in Little Haiti. + +[WFARE13:TAXI1] +~g~Destination ~w~'Pizza Restaurant' ~g~in Downtown. + +[WFARE14:TAXI1] +~g~Destination ~w~'Docks' ~g~in Viceport. + +[WFARE15:TAXI1] +~g~Destination ~w~'Chemist' ~g~in Little Haiti. + +[FARE2:TAXI1] +~g~Destination ~w~'The Malibu club' ~g~in Vice Point. + +{=================================== MISSION TABLE TAXICUT ===================================} + +[TAXC_A:TAXICUT] +Guess you're the new owner. + +[TAXC_B:TAXICUT] +What are you, mob? Cartel? You don't look Mexican... + +[TAXC_C:TAXICUT] +Anyhoo, I guess you better get on with the 'things are gonna change around here' crap, + +[TAXC_D:TAXICUT] +maybe threaten one of the drivers - + +[TAXC_E:TAXICUT] +go steady on Ted over there, he's just had his hernia fixed. + +[TAXC_F:TAXICUT] +Well, yeah. Things are going to change around here, lady. + +[TAXC_G:TAXICUT] +Oh crap, sonny. Might as well leave this to me - + +[TAXC_H:TAXICUT] +I've been doing this for years. + +[TAXC_I:TAXICUT] +Now hear this. + +[TAXC_J:TAXICUT] +We are now under new management and things are going to change around here again. + +[TAXC_K:TAXICUT] +Our new management, the + +[TAXC_L:TAXICUT] +- Which gang are you? + +[TAXC_M:TAXICUT] +Well, I'm not part of any gang actually. + +[TAXC_N:TAXICUT] +What's your goddamned name, kid? + +[TAXC_O:TAXICUT] +Vercetti, Tommy Vercetti. + +[TAXC_P:TAXICUT] +Our new management, the Vercetti Gang, + +[TAXC_Q:TAXICUT] +is gonna make sure we get no trouble. + +[TAXC_R:TAXICUT] +Capiche? Out! + +[TAXC_S:TAXICUT] +Did you like the 'capiche'? I liked the 'capiche'. + +[TAXC_T:TAXICUT] +So this is how it's worked in the past, + +[TAXC_U:TAXICUT] +We run the firm as usual. + +[TAXC_V:TAXICUT] +If we get any trouble from rival firms, you beat the crap out of them. + +[TAXC_W:TAXICUT] +Then they beat the crap out of us, + +[TAXC_X:TAXICUT] +then you beat the crap out of them, + +[TAXC_Y:TAXICUT] +etcetera, etcetera. You got it? + +[TAXC_Z:TAXICUT] +Uh, yeah, I guess... + +[TAXC_A1:TAXICUT] +Just grab a taxi from the garage if you feel like jumping in. + +{=================================== MISSION TABLE TAXIWA1 ===================================} + +[OUTTIME:TAXIWA1] +~r~Too slow, man, too slow! + +[TAX1_1:TAXIWA1] +Ok, we got a high class fare needs picking up from Starfish island - any takers? + +[TAX1_2:TAXIWA1] +Tommy here, I'll take it! + +[TAX1_3:TAXIWA1] +This is my fare, back off asshole! + +[TAX1_4:TAXIWA1] +Come on come on, Get in, quick! + +[TAX1_5:TAXIWA1] +Ok, ok! Just don't hurt me! + +[TAXW1_1:TAXIWA1] +~g~Pick up the V.I.P. on Starfish Island. + +[TAXW1_2:TAXIWA1] +~g~Get the V.I.P back! Take the other car out! + +[TAXW1_3:TAXIWA1] +~r~The V.I.P. is dead! + +[TAXW1_4:TAXIWA1] +~r~The V.I.P. has been dropped off! + +[TAXW1_6:TAXIWA1] +~g~Take the V.I.P. to the airport! + +{=================================== MISSION TABLE TAXIWA2 ===================================} + +[TAX2_1:TAXIWA2] +Calling all cars, we're losing fares all over town. What's with you guys? + +[TAX2_2:TAXIWA2] +VC Cabs keep beating us to it. They've just got too many cars - we can't compete! + +[TAX2_3:TAXIWA2] +Mr. Vercetti, if you're out there listening in, you gotta put some VC Cabs out of action before we go bust! + +[TAXW2_1:TAXIWA2] +~g~Destroy 3 of the rival taxis! + +{=================================== MISSION TABLE TAXIWA3 ===================================} + +[TAX3_1:TAXIWA3] +Car 13, We got a Miss Cortez, asked for you especially. + +[TAX3_2:TAXIWA3] +Ok, I got it. Car 13 out! + +[TAX3_3:TAXIWA3] +Hmmmm, no sign of Mercedes... + +[TAXW3_3:TAXIWA3] +~g~Take out the leader cab! + +[TAXW3_2:TAXIWA3] +~g~Stay alive until the timer runs out. + +[TAX_AS1:TAXIWA3] +TAXI FIRM ASSET COMPLETED + +[TAX_AS2:TAXIWA3] +~g~Kaufman Cabs will now generate revenue up to a maximum of $~1~. Make sure you collect it regularly. + +[TAX3_4:TAXIWA3] +It's time for Kaufman Cab's guardian angel to eat some fender! + +[TAX3_5:TAXIWA3] +Hey boy I'm gonna tan your hide! + +{ reVC updates } +{ new languages } +[FEL_JAP] +JAPANESE + +[FEL_POL] +POLISH + +[FEL_RUS] +RUSSIAN + +{ new display menus } +[FET_GFX] +GRAPHICS SETUP + +[FED_MIP] +MIP MAPPING + +[FED_AAS] +ANTI ALIASING + +[FED_FIL] +TEXTURE FILTERING + +[FED_BIL] +BILINEAR + +[FED_TRL] +TRILINEAR + +[FED_WND] +WINDOWED + +[FED_FLS] +FULLSCREEN + +[FEM_CSB] +CUTSCENE BORDERS + +[FEM_SCF] +SCREEN FORMAT + +[FEM_ISL] +MAP MEMORY USAGE + +[FEM_LOW] +LOW + +[FEM_MED] +MEDIUM + +[FEM_HIG] +HIGH + +[FEM_2PR] +PS2 ALPHA TEST + +[FEC_FRC] +FREE CAM + +{ Linux joy detection } +[FEC_JOD] +DETECT JOYSTICK + +[FEC_JPR] +Press any key on the joystick of your choice that you want to use on the game, and it will be selected. + +[FEC_JDE] +Detected joystick + +{ mission restart } +[FET_RMS] +REPLAY MISSION + +[FESZ_RM] +RETRY? + +[FED_VPL] +VEHICLE PIPELINE + +[FED_PRM] +PED RIM LIGHT + +[FED_RGL] +ROAD GLOSS + +[FED_CLF] +COLOUR FILTER + +[FED_WLM] +WORLD LIGHTMAPS + +[FED_MBL] +MOTION BLUR + +[FEM_SIM] +SIMPLE + +[FEM_NRM] +NORMAL + +[FEM_MOB] +MOBILE + +[FED_MFX] +MATFX + +[FED_NEO] +NEO + +[FEM_PS2] +PS2 + +[FEM_XBX] +XBOX + +[FEC_IVP] +INVERT PAD VERTICALLY + +[FEM_NON] +NONE + +[FEC_DS2] +DUALSHOCK 2 + +[FEC_DS3] +DUALSHOCK 3 + +[FEC_DS4] +DUALSHOCK 4 + +[FEC_360] +XBOX 360 CONTROLLER + +[FEC_ONE] +XBOX ONE CONTROLLER + +[FEC_TYP] +GAMEPAD TYPE + +[FET_AGS] +GAMEPAD SETTINGS + +[FEM_AUT] { aspect ratio related } +AUTO + +{ end of file } +[DUMMY] +THIS LABEL NEEDS TO BE HERE !!! +AS THE LAST LABEL DOES NOT GET COMPILED \ No newline at end of file diff --git a/utils/gxt/build.bat b/utils/gxt/build.bat index d57fa0a..7327497 100644 --- a/utils/gxt/build.bat +++ b/utils/gxt/build.bat @@ -1,5 +1,5 @@ -gxt -g LCS -i "ENGLISH.txt" -o "../../gamefiles/TEXT/ENGLISH.gxt" -gxt -g LCS -i "french.txt" -o "../../gamefiles/TEXT/french.gxt" -gxt -g LCS -i "german.txt" -o "../../gamefiles/TEXT/german.gxt" -gxt -g LCS -i "italian.txt" -o "../../gamefiles/TEXT/italian.gxt" -gxt -g LCS -i "spanish.txt" -o "../../gamefiles/TEXT/spanish.gxt" \ No newline at end of file +gxt -g VC -i "american.txt" -o "../../gamefiles/TEXT/american.gxt" +gxt -g VC -i "french.txt" -o "../../gamefiles/TEXT/french.gxt" +gxt -g VC -i "german.txt" -o "../../gamefiles/TEXT/german.gxt" +gxt -g VC -i "italian.txt" -o "../../gamefiles/TEXT/italian.gxt" +gxt -g VC -i "spanish.txt" -o "../../gamefiles/TEXT/spanish.gxt" \ No newline at end of file diff --git a/utils/gxt/french.txt b/utils/gxt/french.txt index 6644a10..d5983e9 100644 --- a/utils/gxt/french.txt +++ b/utils/gxt/french.txt @@ -1,728 +1,2166 @@ -[LETTER1] -abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789"$,.'-?!!SDBF +{ + New strings are at the bottom of file. + Do not change the order of strings. + You can fix the typos of existing translation but please refrain from + unnecessary edits like rephasing because you think it suits better for your taste. +} -[DEFNAM] -Claude---------------------- +[RAMPAGE] +RODEO! + +[RAMP_F] +ECHEC DU RODEO! + +[RAMP_P] +RODEO REUSSI! + +[RAMP_A] +TOUS LES RODEOS REUSSIS! + +[PAGE_01] +Tue ~1~ membres de gang en 2 minutes! + +[PAGE_02] +Détruis ~1~ véhicules en 2 minutes! + +[PAGE_03] +Roule à côte des membres de gang et tue-en ~1~ en 2 minutes! + +[PAGE_04] +Ecrase ~1~ membres de gang en 2 minutes! + +[PAGE_05] +Eclate la tête de ~1~ membres de gang en 2 minutes! + +[FEC_ABR] +Accélérer, freiner ou marche arrière + +[CLOHELP] +Vêtements changés! + +[FE_MLG] +LEGENDE DE LA CARTE + +[FED_RDR] +RADAR + +[FED_HUD] +L'INTERFACE + +[FED_RDL] +GRAND + +[FED_RDB] +BIPS UNIQUEMENT + +[FED_HUF] +FONDU + +[FEI_BTU] +; = - + +[FEI_SCR] +Fait défiler + +[FEST_HV] +Missions d'Autodéfense, niveau maximum + +[LG_01] +Position du joueur + +[LG_02] +Avery Carrington + +[LG_03] +Motards + +[LG_04] +Colonel Cortez + +[LG_05] +Ricardo Diaz + +[LG_06] +Kent Paul + +[LG_07] +Avocat + +[LG_08] +Phil Cassidy + +[LG_09] +Chantier naval + +[LG_10] +Club Malibu + +[LG_11] +Cubains + +[LG_12] +Studio de Cinéma + +[LG_13] +Ammu-Nation + +[LG_14] +Haïtiens + +[LG_15] +Quincaillerie + +[LG_16] +Planque + +[LG_17] +Crèmes glacées + +[LG_18] +Taxi Kaufman + +[LG_19] +Love Fist + +[LG_20] +Imprimerie + +[LG_21] +Propriété + +[LG_22] +Pay 'n' Spray + +[LG_23] +Boutique de fringues + +[LG_24] +Manoir de Tommy + +[LG_25] +Téléphone + +[LG_26] +Station de radio Wildstyle + +[LG_27] +Station de radio Flash FM + +[LG_28] +Station de radio KChat + +[LG_29] +Station de radio Fever 105 + +[LG_30] +Station de radio VRock + +[LG_31] +Station de radio VCPR + +[LG_32] +Station de radio Espantoso + +[LG_33] +Station de radio Emotion 98.3 + +[LG_34] +Station de radio Onde 103 + +[LG_35] +Destination + +[LG_36] +Sun Yard + +[LG_37] +Boîte de striptease + +[MAP_YAH] +VOUS ETES ICI + +[MAP_LEG] +Légende + +[SENTXS] +Sentinelle XS + +[VCNMAV] +VCN Maverick + +[TAXSHRT] +~g~Au lieu de conduire, tu peux te servir de ce taxi Kaufman pour te déplacer. Cela te coûtera $9. + +[BRIBE1] +Tu viens de récupérer un pot-de-vin de la police. Cela réduira ton indice de recherche d'une étoile. + +[SUNSHIN] +Sunshine Autos + +[KAUFCAB] +Taxis Kaufman + +[BOATYAR] +Le chantier naval + +[WANT_L] +Tu as perdu ton indice de recherche. Ne commets pas de délit tant que les étoiles brillent ou tu seras de nouveau très recherché. + +[HOTRNG] +HOTRING + +[BLODRNG] +BLOODRING + +[DIRTRNG] +DIRTRING [IN_VEH] -~w~Hé ! Remonte dans le ~b~véhicule ! - -[IN_VEH2] -~w~Il te faut un véhicule pour ce job ! - -[IN_BOAT] -~w~Il te faut un bateau pour ce job ! +~g~Eh! Remonte dans ta caisse! [HEY] -~w~Reste avec tes potes ! - -[HEY2] -~w~Vous séparez pas, toi et tes potes ! - -[HEY7] -~w~Un flingue de plus, ce serait pas du luxe ! Fais demi-tour et va chercher ton contact ! - -[HEY9] -~w~Tu veux dominer la rue ? Va voir ton contact ! - -[GATE_1] -~w~Les Sindacco n'ouvriront la porte qu'aux voitures Sindacco. - -[HELPA] -~w~Voici ta ~h~planque. - -[HELPB] -~w~En dehors des missions, tu peux sauvegarder ta partie en récupérant des ~h~icones de sauvegarde~w~. Le temps avance alors de 6 heures. - -[HELPC] -~w~Les véhicules restant dans le ~h~garage d'à côté~w~ seront stockés quand tu sauvegarderas ta partie. - -[HELPD] -Pour quitter la planque, place-toi sur le ~h~repère. - -[HELP0] -~w~Appuie sur~h~ ~k~ ~VEEE~ ~w~pour monter ou descendre d'un véhicule. - -[HELP1] -~w~Arrête-toi au centre du ~h~repère jaune. +~g~Te la joue pas perso, reste avec tes potes! [HELP3] -~w~Tu ne peux sprinter que pendant un bref instant avant d'être à bout de souffle. +T'es vite crevé, ton sprint ne dure donc pas longtemps. -[HELP4] -~w~Utilise~h~ ~k~ ~VEACC~ ~w~pour ~h~accélérer et~h~ ~k~ ~VESTR~ ~w~pour te diriger. +[HELP4_D] +Pousse le ~h~joystick analogique droit ~w~ vers le haut pour ~h~accélérer. -[HELP5] -~w~Appuie sur~h~ ~k~ ~VEBRK~ ~w~pour ~h~freiner~w~, ou faire ~h~marche arrière~w~ si le véhicule est à l'arrêt. +[HELP5_D] +Tire le ~h~joystick analogique droit~w~ vers toi pour ~h~freiner~w~ ou pour ~h~reculer~w~ si le véhicule est à l'arrêt. -[HELP6] -~w~Appuie sur~h~ ~k~ ~VEHB~ ~w~pour utiliser le ~h~frein à main. +[HELP7_A] +Maintiens la ~h~ ~k~~PED_LOCK_TARGET~ ~w~ enfoncée pour ~h~viser~w~ avec le fusil à lunette. -[HELP7] -~w~Maintiens~h~ ~k~ ~PDLT~ ~w~pour viser avec le fusil de précision. - -[HELP8] -~w~Utilise~h~ ~k~ ~SNZI~ ~w~et~h~ ~k~ ~SNZO~ ~w~pour faire des ~h~zooms avant et arrière~w~ quand tu vises. +[HELP7_D] +Maintiens la ~h~ ~k~~PED_LOCK_TARGET~ ~w~ enfoncée pour ~h~viser~w~ avec le fusil à lunette. [HELP10] -~w~Le ~h~badge jaune~w~ t'indique que tu es ~h~recherché~w~. Les flics essaieront alors de t'arrêter ! +Ce badge t'indique que t'es recherché par la police. [HELP11] -~w~Plus il y a de badges à l'écran, plus les flics te recherchent activement. - -[HELP12] -~w~Avance sur le ~h~repère jaune~w~ pour lancer une mission. +Plus t'as de badges, plus ton indice de recherche est important. [HELP13] -~w~Sois à l'affût des chemins qui n'apparaissent pas sur le ~h~radar~w~ et utilise-les à ton avantage ! - -[HELP14] -~w~Utilise le ~h~radar~w~ pour te repérer dans la ville. Suis le ~h~spot jaune~w~ pour trouver ta ~h~planque. - -[HELP16] -~w~Utilise~h~ ~k~ ~VESTR~ ~w~pour te diriger. - -[HELP17] -~w~Phil Cassidy : pour une marchandise calibrée ! Nouvel arrivage très bientôt ! - -[HELP18] -~w~Un nouvel arrivage vient d'être livré à l'armurerie de Phil Cassidy ! - -[HELP18B] -~w~Phil Cassidy a maintenant le ~h~minigun~w~ en stock ! - -[HELP19A] -~w~Pour ~h~tirer en roulant~w~, maintiens~h~ ~k~ ~VELL~ ~w~ou~h~ ~k~ ~VELR~ ~w~et tire avec~h~ ~k~ ~VEWEP~. - -[HELP19C] -~w~Tu peux tirer en roulant que si t'as une ~h~mitraillette. - -[HELP19D] -En ~h~moto~w~, tu peux ~h~tirer vers l'avant~w~ en appuyant sur~h~ ~k~ ~VEWEP~. - -[HELP19F] -~w~Tu peux tirer vers l'avant que si t'as une ~h~mitraillette. - -[HELP20] -~w~T'as trouvé un ~h~pot-de-vin~w~ ! Récupère-le pour faire baisser ton ~h~indice de recherche~w~ d'une étoile ! - -[HELP21] -~w~Utilise~h~ ~k~ ~PDCWE~ ~w~pour changer d'arme quand t'es à pied. - -[HELP22] -~w~Pour trouver l'~h~entrepôt de Vincenzo~w~, suis le ~h~V~w~ sur le radar. - -[HELP23] -~w~Le spot est un ~h~triangle orienté vers le bas~w~, ce qui t'indique que la ~h~cible se situe plus bas~w~ par rapport à ta position. - -[HELP24] -~w~Maintiens~h~ ~k~ ~VELL~ ~w~ou~h~ ~k~ ~VELR~ ~w~pour regarder ~h~à gauche ou à droite~w~ dans un véhicule. Maintiens les deux pour regarder ~h~vers l'arrière. - -[HELP25] -~w~Appuie sur~h~ ~k~ ~CVEIW~ ~w~pour changer de ~h~mode de caméra. - -[HELP26] -~w~Saute dans un bateau et appuie sur ~h~ ~k~ ~VEEE~ ~w~pour grimper à bord. - -[HELP27] -~w~Si t'es à côté d'un bateau, appuie sur~h~ ~k~ ~VEEE~ ~w~pour monter à bord. - -[HELP29] -~w~Appuie sur~h~ ~k~ ~VEHN~ ~w~pour ~h~klaxonner. - -[HELP30] -~w~Utilise~h~ ~k~ ~VECRS~ ~w~pour changer de ~h~station de radio. - -[HELP33] -~w~Maintenant que les tueurs ont été payés, ils feront leur job, peu importe le temps que ça prendra. - -[HELP34] -~w~Maintiens~h~ ~k~ ~VELB~ ~w~pour regarder derrière quand tu conduis. - -[HELP38] -~w~Si tu butes quelqu'un qui est armé, tu peux récupérer son arme. - -[HELP40] -~w~A pied, utilise~h~ ~k~ ~PDLOO~ ~w~pour regarder autour de toi. - -[HELP58] -~w~Maintiens~h~ ~k~ ~PDLT~ ~w~pour ~h~verrouiller une cible~w~ et appuie sur~h~ ~k~ ~PDFW~ ~w~pour tirer ! - -[HELP59] -~w~Une fois ta cible verrouillée, appuie sur ~h~~k~ ~PDCTL~ ~w~pour en changer. - -[HELP60] -~w~Certains barils explosent si tu tires dessus. Mais garde tes distances, ça vaut mieux ! - -[TANK] -~w~Utilise~h~ ~k~ ~VEWEA~ ~w~pour viser le canon du Rhino et~h~ ~k~ ~VEWEP~ ~w~pour tirer. - -[ANSWER] -~w~Appuie sur~h~ ~k~ ~ANS~ ~w~pour répondre à ton portable et sur~h~ ~k~ ~VEEE~ ~w~pour raccrocher. - -[BOMB] -~w~Si tu conduis une caisse à l'atelier, 8-Ball te demandera ~h~500$~w~ pour y poser une ~h~bombe~w~. - -[BRIDGE1] -~w~Callahan Bridge : en construction. Fin des travaux : mai 1998 - -[STRIK_1] -~w~Tu pourras prendre le ~h~ferry~w~ jusqu'à Staunton Island quand la grève sera terminée. - -[SPRAY] -~w~Va au ~h~Pay 'n' Spray~w~ pour supprimer ton ~h~indice de recherche~w~, ~h~réparer ~w~et ~h~repeindre ~w~ton véhicule pour ~h~100$. - -[S_TRN_1] -~w~Prends le ~h~métro~w~ pour te déplacer dans Liberty City. Appuie sur~h~ ~k~ ~VEEE~ ~w~pour ~h~monter ~w~ou ~h~descendre~w~ d'une rame. - -[TUBE1] -~w~Quand la station sera ouverte, tu pourras prendre le ~h~métro~w~ jusqu'à Staunton Island. - -[TUBE2] -~w~Dès que cette station sera ouverte, tu pourras te rendre au ~h~Francis International Airport~w~. - -[TUBE_2] -~w~Pour monter à bord d'une ~h~rame de métro~w~, appuie sur~h~ ~k~ ~VEEE~. - -[SPRAY1] -~w~Gare-toi au ~h~Pay 'n' Spray~w~ pour te débarrasser de ton ~h~indice de recherche~w~, et faire ~h~réparer ~w~et ~h~repeindre ~w~ton véhicule. D'habitude, c'est ~h~100$~w~ mais pour cette fois, c'est cadeau. - -[HELPE31] -~w~A mesure que tu progresses dans le jeu, tu peux récupérer de nouvelles tenues auprès de M. Benz. - -[HELPE32] -~w~Pendant le jeu, rends-toi chez Ammu-Nation pour t'approvisionner en armes ultra puissantes. - -[HELPCOM] -~w~De nouvelles tenues sont dispos à la planque ! - -[HELP41] -~w~Gare-toi au ~h~Pay 'n' Spray~w~ pour faire repeindre et réparer ton véhicule. Suis la ~h~bombe de peinture~w~ sur le radar pour trouver le ~h~Pay 'n' Spray. - -[PAGEB1] -~w~Le ~h~pistolet~w~ est dispo dans ta planque ! - -[PAGEB10] -~w~T'as retrouvé tous les paquets ! Voici un bonus de ~h~50000$ ! - -[EXPO_W] -~w~Love Media en a besoin d'un comme ça ! - -[FERRY_2] -~w~Reviens quand un ferry sera à quai. - -[FERRY_3] -~w~Ton véhicule tient pas dans le ferry ! - -[FERRY_4] -~w~Les types recherchés par les flics sont pas autorisés à bord du ferry ! - -[FERRY_5] -~w~Un billet de ferry coûte ~h~25$~w~. Reviens quand t'auras assez d'argent ! - -[FERRY_6] -~w~En mission, tu peux pas prendre le ferry. - -[FERR_SK] -~w~Appuie sur~h~ ~k~ ~TRSK~ ~w~pour passer directement à la fin du voyage. - -[FERR_C1] -~w~Ferry pour Staunton. Prix : ~h~25$~w~. Appuie sur~h~ ~k~ ~TGSUB~ ~w~pour acheter un billet. - -[FERR_C2] -~w~Ferry pour Portland. Prix : ~h~25$~w~. Appuie sur~h~ ~k~ ~TGSUB~ ~w~pour acheter un billet. - -[A_H1] -~w~~k~ ~AMBUY~ ~w~pour acheter. ~n~~k~ ~AMEXI~ ~w~pour quitter. - -[A_UZI_A] -~w~Ammu-Nation a maintenant des pistolets-mitrailleurs en stock ! - -[AMMU] -~w~Des armes seront disponibles chez ~h~Ammu-Nation~w~ dès l'arrivée d'un nouveau stock. Désolé pour la gêne occasionnée. - -[WANT_A] -~w~Quand tu te fais ~h~'arrêter'~w~, tu es emmené au poste de police le plus proche. - -[WANT_B] -~w~La mission en cours est alors un échec et les flics te piquent toutes tes armes et un pot-de-vin. - -[WANT_C] -~w~Tu ne te fais ~h~'arrêter'~w~ que si t'as un ~h~indice de recherche~w~, représenté par une rangée d'étoiles dans le coin supérieur de l'écran. - -[WANT_D] -~w~Plus il y a d'étoiles, plus les flics te collent au train. - -[WANT_E] -~w~Il existe plusieurs moyens de faire baisser ton indice de recherche, alors reste à l'affût ! - -[WANT_F] -~w~Quand tu conduis, arrête-toi à un ~h~Pay 'n' Spray~w~ pour supprimer ton indice de recherche. - -[HEAL_A] -~w~Quand tu te fais ~h~'buter'~w~, t'es conduit à l'hosto le plus proche. - -[HEAL_B] -~w~Tu perds alors toutes tes armes et ta mission est un échec. Et en plus, tu dois payer pour te faire soigner. - -[HEAL_C] -~w~Ta ~h~santé~w~ est représentée par la barre rouge en haut à droite de l'écran. - -[HEAL_D] -~w~Il existe plusieurs moyens de te soigner ou de te protéger, alors ouvre l'oeil ! - -[H_WE_01] -~w~Marche sur une arme pour la ramasser. Tu peux la récupérer que si t'es à pied. - -[H_WE_02] -~w~Si t'as déjà une arme de ce type, appuie sur~h~ ~k~ ~PUCF~ ~w~pour la remplacer par la nouvelle. - -[PU_CF] -~w~Appuie sur~h~ ~k~ ~PUCF~ ~w~pour prendre cette arme. Si t'as déjà une arme de ce type, tu la perdras. - -[CLOTHA] -~h~~k~ ~AMMOV~ ~w~pour voir les tenues. ~h~~k~ ~AMBUY~ ~w~pour changer de tenue. ~h~~k~ ~AMEXI~ ~w~pour annuler. - -[CLOTHB] -~w~Tu peux changer de fringues ici à tout moment. - -[SIREN_1] -~w~Pour allumer ou couper la ~h~sirène d'un véhicule de secours~w~, appuie brièvement sur~h~ ~k~ ~VEHN~. - -[FHOSE_1] -~w~Maintiens~h~ ~k~ ~VEWEP~ ~w~pour utiliser le canon à eau. - -[PHOTO1] -~w~Maintiens~h~ ~k~ ~PDLT~ ~w~pour viser avec l'appareil photo. - -[PHOTO2] -~w~Tout en visant avec l'appareil photo, utilise~h~ ~k~ ~SNZI~ ~w~et~h~ ~k~ ~SNZO~ ~w~pour faire des ~h~zooms~w~ avant et arrière. - -[PHOTO3] -~w~Appuie sur~h~ ~k~ ~PDFW~ ~w~pour prendre une photo tout en visant avec l'appareil photo. - -[BENZ_H1] -~w~Suis la ~h~chemise~w~ sur le radar pour trouver le ~h~magasin de fringues de M. Benz. - -[BENZ_LE] -~w~Ton ~h~costume Leone~w~ est dispo dans ta planque. - -[BENZ_GU] -~w~La ~h~tenue des Avenging Angels~w~ est dispo dans ta planque. - -[BENZ_CH] -~w~L'~h~uniforme de chauffeur~w~ est dispo dans ta planque. - -[BENZ_TU] -~w~Le ~h~smoking~w~ est dispo dans ta planque. - -[ATUTOR] -~w~Pour activer ou désactiver les missions Ambulance, appuie sur~h~ ~k~ ~TGSUB~. - -[CTUTOR] -~w~Pour activer ou désactiver les missions Autodéfense, appuie sur~h~ ~k~ ~TGSUB~. - -[FTUTOR] -~w~Pour activer ou désactiver les missions Pompiers, appuie sur~h~ ~k~ ~TGSUB~. - -[TRATUT1] -~w~Pour activer ou désactiver les missions Eboueurs, appuie sur~h~ ~k~ ~TGSUB~. - -[TTUTOR] -~w~Pour activer ou désactiver les missions Taxi, appuie sur~h~ ~k~ ~TGSUB~. - -[A_COMP2] -~w~Mission Ambulance : niveau 12 terminé ! Sprinter ne te fatiguera jamais ! - -[FIREPRO] -~w~Mission Pompiers : niveau 12 terminé ! Les flammes n'osent plus te toucher ! - -[RCHELP] -~w~Pour faire ~h~exploser~w~ ta voiture radiocommandée, appuie sur~h~ ~k~ ~VEWEP~. - -[TAXIH1] -~w~Arrête-toi près d'~h~un piéton qui cherche un taxi~w~ pour le faire monter et conduis-le vite à bon port. - -[TIPHLP] -~w~La ~h~barre de pourboires~w~ diminue avec le ~h~temps~w~ et quand ton taxi se fait ~h~endommager. - -[ANG_E3] -~w~Pars à la recherche d'autres Avenging Angels à Chinatown. - -[ANGOUT] -~w~Reviens quand tu porteras une tenue des ~h~Avenging Angels ! - -[ANGCOM2] -~w~Missions Avenging Angel Staunton : niveau 15 terminé ! Maintenant, tu gardes ton fric quand tu te fais arrêter. - -[ANGCOM3] -~w~Missions Avenging Angel Shoreside : niveau 15 terminé ! Un véhicule "spécial" t'attend dans ta planque ! - -[TVOHELP] -~w~Reviens quand tu porteras un ~h~masque de hockey ! +Tu as parfois intérêt à emprunter des chemins non indiqués sur le radar. [TIMER] -C'est une mission limitée dans le temps. Accomplis-la avant la fin du chrono ! +Cette mission est en temps limité. Tu dois donc la réussir avant que le compteur n'atteigne zéro. -[GARAGE] -Conduis le véhicule dans le garage et ressors à pied. +[HORN] +~g~Klaxonne! -[TRASH] -~g~T'as bousillé ton véhicule ! Va faire réparer ton véhicule ! - -[WRECKED] -~r~Le véhicule est bon pour la casse ! - -[SPOOK] -INSOUCIOMETRE - -[SPOTTED] -~r~Ils sont à tes trousses ! +[NOMONEY] +~g~T'as pas assez de cash! [REWARD] -~w~Récompense : ~1~$ +RECOMPENSE $~1~ -[GAMEOVR] -FIN DE LA PARTIE +[M_FAIL] +ECHEC DE LA MISSION! -[Z] -Valeur axe Z : ~1~ +[M_PASS] +MISSION ACCOMPLIE! $~1~ [DEAD] -TU ES MORT ! +T'ES MORT! [BUSTED] -EN TAULE ! +CHOPE! -[GOODBOY] -~w~50$ de bonus du parfait citoyen ! +[WEATHE1] +TEMPS ENSOLEILLE + +[WEATHE2] +TEMPS TRES ENSOLEILLE + +[WEATHE3] +TEMPS NUAGEUX + +[WEATHE4] +TEMPS PLUVIEUX + +[WEATHE5] +TEMPS BRUMEUX + +[WEATHE6] +TEMPS NORMAL [NUMBER] ~1~ -[SCORE] -~1~$ - [LOADCAR] -CHARGEMENT VEHICULE... (APPUIE SUR LA touche L POUR ANNULER) +CHARGEMENT DU VEHICULE... (APPUIE SUR F1 POUR ANNULER) [CARSOFF] -Sans caisses. +Trafic désactivé. [CARS_ON] -Avec caisses. +Trafic activé. [TEXTXYZ] -Ecriture des coordonnées... +Ecriture des coordonnées sur le fichier... [CHEATON] -AVEC mode triche +Mode triche activé [CHEATOF] -SANS mode triche +Mode triche désactivé [IMPORT1] -Sors et attends ton véhicule. +Va dehors et attends ton véhicule. -[KE_PLYR] -Joueur +[PAGEB11] +Lance-flammes livré à la planque -[KE_CTCS] -Contacts +[WANT_A] +Tu ne seras arrêté que si tu as un ~h~indice de recherche. -[KE_WEPS] -Armes +[WANT_B] +La rangée d'étoiles dans le coin supérieur droit de l'écran symbolise ton ~h~indice de recherche~w~. -[KE_ADR] -Adrénaline +[WANT_C] +Ton ~h~indice de recherche~w~ est désormais de un... -[KE_BRIB] -Pots-de-vin +[WANT_D] +deux... -[KE_HLTH] -Santé +[WANT_E] +trois... -[KE_KILF] -Tuerie +[WANT_F] +Plus ton ~h~indice de recherche~w~ augmente, plus les forces de l'ordre t'en veulent. -[KE_ARM] -Protection +[WANT_G] +Quand tu es ~h~'chopé'~w~, tu es amené au poste de police le plus proche. -[KE_USJ] -Saut unique +[WANT_H] +Les flics se laisseront corrompre contre toutes tes armes et une partie de ton cash. -[KE_PKG] -Paquet caché +[WANT_I] +Toutes les missions en cours échoueront. -[KE_INFO] -Infos +[WANT_J] +Plus tu joueras, plus tu trouveras de moyens de diminuer ton indice de recherche. -[DAM] -Dégâts +[WANT_K] +En voiture, les ~h~ATELIERS DE PEINTURE~w~ te permettront d'effacer ton indice de recherche. -[KILLS] -Victimes +[HEAL_B] +Quand tu es ~h~'H.S'~w~, t'es amené à l'hôpital le plus proche. -[TIME] -Chrono +[HEAL_C] +On te confisque alors toute ton artillerie et les docteurs prennent ton argent pour te remettre en forme. -[STOPS] -Arrêts +[HEAL_E] +En jouant, tu trouveras d'autres moyens de te soigner ou de te protéger. -[EVID] -Preuve +[SAVE1] +Entre dans la corona pour ~h~sauvegarder la partie~w~. Tu ne peux pas sauvegarder en cours de mission. -[HEALTH] -Etat Caisse +[SAVE2] +Tout véhicule laissé dans ce garage sera enregistré lors de la sauvegarde. -[COLLECT] -Récupéré +[AMMU] +Va chez Ammu-Nation pour acheter une arme. -[LEVEL] -Niveau +[R_TIME] +TEMPS DE COURSE : -[SALES] -Ventes +[PROP_1] +Tu n'as pas assez de cash pour acheter cette propriété -[CITYZON] -Liberty City - -[VICE_C] -Liberty City +[PROP_2] +Tu ne peux pas acheter une propriété en cours de mission [IND_ZON] -Portland - -[PORT_W] -Callahan Point - -[PORT_S] -Atlantic Quays - -[PORT_E] -Portland Harbor - -[PORT_I] -Trenton - -[S_VIEW] -Portland View - -[CHINA] -Chinatown - -[EASTBAY] -Portland Beach - -[LITTLEI] -Saint Mark's - -[REDLIGH] -Red Light District - -[TOWERS] -Hepburn Heights - -[HARWOOD] -Harwood - -[ROADBR1] -Callahan Bridge - -[ROADBR2] -Callahan Bridge - -[TUNNELP] -Porter Tunnel - -[BOMB1] -Garage de 8-Ball +Vice City Beach [COM_ZON] -Staunton Island +Partie centrale de Vice City -[STADIUM] -Aspatria +[BEACH1] +Ocean Beach -[STADIU2] -Aspatria +[BEACH2] +Washington Beach -[STADIU3] -Aspatria +[BEACH3] +Vice Point -[HOSPI_2] -Rockford +[GOLFC] +Leaf Links -[UNIVERS] -Liberty Campus +[STARI] +Starfish Island -[CONSTRU] -Fort Staunton +[DOCKS] +Port de Vice -[PARK] -Belleville Park +[HAVANA] +Little Havana -[COM_EAS] -Newport +[HAITI] +Little Haiti -[SHOPING] -Bedford Point +[PORNI] +Prawn Island -[SHOP2] -Bedford Point +[DTOWN] +Centre -[SHOP3] -Bedford Point +[VICE_C] +Vice City -[YAKUSA] -Torrington +[A_PORT] +Aéroport Escobar -[SUB_ZON] -Shoreside Vale +[JUNKY] +Décharge -[AIRPORT] -Francis Intl. Airport +[PISTOL] +Pistolet -[PROJECT] -Wichita Gardens +[PYTHON] +.357 -[SUB_IND] -Pike Creek +[UZI] +Uz-1 -[SWANKS] -Cedar Grove +[TEC9] +Tec 9 -[BIG_DAM] -Cochrane Dam +[M4] +M4 -[SUB_ZO2] -Shoreside Vale +[INGRAM] +Mac -[SUB_ZO3] -Shoreside Vale +[MP5] +MP + +[RUGER] +Kruger + +[SNIPE] +Fusil à lunette + +[GRENADE] +Grenades + +[SHOTGN1] +Fusil à pompe + +[SHOTGN2] +S.P.A.S. 12 + +[SHOTGN3] +Fusil à pompe Stubby + +[ARMOUR] +Gilet pare-balles + +[LASER] +.308 Lunette + +[BASEBAT] +Batte de baseball + +[HAMMER] +Marteau + +[SCREWD] +Tournevis + +[CLEVER] +Couperet + +[MACHETE] +Machette + +[KNIFE] +Couteau + +[KATANA] +Katana + +[CHAINSA] +Tronçonneuse + +[G_COST] +$~1~ [CAR_1] Ambulance -[CAR_2] -Camion pompiers +[MALIBU] +Malibu Club -[CAR_3] -Police +[MANSION] +La résidence de Diaz -[CAR_4] -Enforcer +[TMANS] +Chez Tommy -[CAR_5] -Barracks +[STRIP] +'Pole Position Club' -[CAR_6] -Rhino +[MALL1] +Centre commercial de North Point -[CAR_7] -FBI Cruiser +[BANKINT] +El Banco Corrupto Grande -[CAR_8] -Securicar +[RANGE] +Champ de tir -[CAR_9] -Moonbeam +[POL_HQ] +QG de Vice City Police -[CAR_10] -Bus +[INT_B] +Un vieil ami -[CAR_11] -Flatbed +[INTB_1] +~g~Va au bureau de l'avocat. -[CAR_12] -Linerunner +[LAW_1] +La Fête -[CAR_13] -Trashmaster +[LAW_2] +Baston de Rue -[CAR_14] -Patriot +[LAW_3] +Jury sous pression -[CAR_15] -Mr Whoopee +[LAW_4] +Emeute -[CAR_16] -Mule +[COL_1] +Salaud de traître -[CAR_17] -Yankee +[COL_2] +Fusillade -[CAR_18] -Pony +[COL_3] +Anges gardiens -[CAR_19] -Bobcat +[COL_4] +Chef, oui, chef ! -[CAR_20] -Rumpo +[COL_5] +Sur le Pont -[CAR_21] -Blista +[COK_1] +Course poursuite -[CAR_22] -Dodo +[COK_2] +Phnom Penh '86 -[CAR_23] -Bus +[COK_3] +Speedboat -[CAR_24] -Sentinel +[COK_4] +Offre & demande -[CAR_25] -Cheetah +[KENT_1] +Couloir de la mort -[CAR_26] -Banshee +[ASS_1] +Liquidation -[CAR_27] -Stinger +[BUD_1] +EXTORSION -[CAR_28] -Infernus +[BUD_2] +Rixe de Bar -[CAR_29] -Esperanto +[BUD_3] +CopLand -[CAR_30] -Kuruma +[CAP_1] +L'encaisseur -[CAR_31] -Stretch +[FIN_1] +Amis proches -[CAR_32] -Perennial +[BANK_1] +Sans Issue -[CAR_33] -Landstalker +[BANK_2] +Le Flingueur -[CAR_34] -Manana +[BANK_3] +Le Chauffeur -[CAR_35] -Idaho +[BANK_4] +Hold-up -[CAR_36] -Stallion +[CNT_1] +La Mèche est vendue -[CAR_37] -Taxi +[CNT_2] +Halte au Messager -[CAR_38] -Cabbie +[PORN_1] +Bout d'essai -[CAR_39] -Buggy +[PORN_2] +Dodo Vibro -[SINDACO] -Sindacco Argento +[PORN_3] +Martha -[HEARSE] -Hearse +[PORN_4] +Projecteur-G + +[TAX_1] +Taxis Kaufman + +[TAXI_1] +V.I.P. + +[TAXI_2] +Concurrence Amicale + +[TAXI_3] +Cabmaggedon + +[ICE_1] +Distribution + +[TEX_1] +Quatre fers + +[TEX_2] +Funérailles + +[TEX_3] +Demolition Man + +[PHIL_1] +Trafiquant d'armes + +[PHIL_2] +Boomshine Saigon + +[BIKE_1] +Alliage d'Acier + +[BIKE_2] +Colère + +[BIKE_3] +Bécane + +[ROCK_1] +Love Juice + +[ROCK_2] +Psychopathe + +[ROCK_3] +Promo + +[ROCK_4] +Les Love Fist! + +[HAT_1] +Juju + +[HAT_2] +Bombes! + +[HAT_3] +Raclée + +[CUB_1] +Cascades aquatiques + +[CUB_2] +Chair à Canon + +[CUB_3] +Bataille Navale + +[CUB_4] +Vaudou + +[JOB_1] +Accident de la route + +[JOB_2] +Bute la femme! + +[JOB_3] +Autocide + +[JOB_4] +Enregistrement + +[JOB_5] +Détails + +[ANSWER] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~~w~ pour répondre au téléphone. + +[MOB_01A] +Comment ça va, mon pote? C'est Paul! J'ai peut-être quelque chose d'intéressant pour toi, mais faut que je te parle en personne. + +[MOB_01B] +Je suis en train de me la couler douce au Malibu. + +[MOB_01C] +Tu me devras un ou deux petits services en échange, mon mignon. A tout à l'heure... + +[MOB_02A] +Sniiiiiiiiiiiif! Hé, salut, Tommy! Tommy? + +[MOB_02B] +On a un problème à l'imprimerie. Tu ferais mieux d'aller y jeter un coup d'oeil. + +[MOB_02C] +Quelque chose a merdé. C'est le bordel. Faut que j'te laisse. + +[MOB_03A] +Mr Vercetti? J'ai ici un document signé qui établit formellement + +[MOB_03B] +que vous avez racheté toutes les dettes de BJ's Auto. + +[MOB_03C] +La disparition soudaine de BJ ne me laisse pas d'autre choix + +[MOB_03D] +que de vous tenir pour responsable du passif de cette société. + +[MOB_03E] +Jusqu'à ce que ce compte soit complètement soldé + +[MOB_03F] +vous devriez considérer les rues de Vice City comme très dangereuses. + +[MOB_04A] +Comment va, vieille branche? + +[MOB_04B] +Ecoute, Tommy, j'avais oublié de te dire qu'on va avoir besoin de balaises en plus pour le concert. + +[MOB_04C] +Y'a un gang de motards dirigé par Mitch Baker, ça nous ferai une super publicité. Vraiment Rock'n'roll, Baby. + +[MOB_04D] +Règle ça pour moi et je te laisserai accéder aux coulisses du concert, d'accord? + +[MOB_05A] +Bien joué, Tommy, j'suis content d'avoir récupéré ma bécane. + +[MOB_05B] +Dis à Mr Kent Paul que la sécurité sera assurée pour le concert. + +[MOB_05C] +Tu as ma parole. + +[MOB_05D] +Bon, maintenant, évite de t'attirer des emmerdes. + +[MOB_06A] +Tommy! Ceux d'en bas, ils parlent de toi, mon petit... + +[MOB_06B] +Je me disais que tu te laisserais peut-être tenter par un doux foyer et par une soupe au gombo de tata Poulet? Mmm? + +[MOB_06C] +Fais un saut par ma cuisine un de ces jours, hein, Tommy? + +[MOB_08A] +Salut, Tommy, je me disais que t'aurais peut-être besoin d'un conseil en affaires... + +[MOB_08B] +Dès que tu as une opération en route, il faut que tu passes prendre le fric de la semaine. + +[MOB_08C] +Si tu laisses les mecs penser que ce sont eux qui dirigent l'affaire, ils essayent de ronger tes bénefs! Ok? + +[MOB_08D] +Ca va, Ken, je connais le business... + +[MOB_08E] +Ok, ok, je sais que tu sais. Je sais. C'était... + +[MOB_08F] +C'était juste pour te dire que je sais que tu sais que je sais... + +[MOB_08G] +Ouvre simplement l'oeil! + +[MOB_08H] +T'inquiète, Ken, t'inquiète... + +[MOB_09A] +Salut, Léo! J'ai du boulot pour toi! + +[MOB_09B] +C'est pas Léo. + +[MOB_09C] +Si Léo apprend que t'as son téléphone, il va te buter aussi sec! + +[MOB_09D] +Peut-être que Léo est mort. Peut-être même que c'est moi qui l'ai buté et que j'ai hérité de son téléphone. T'avais pas pensé à ça hein, connard? + +[MOB_09E] +T'as buté Léo? Alors, c'est que t'en as dans le froc! Tu veux bosser pour moi? + +[MOB_09F] +Passe au café de mon père dans Little Havana et on pourra causer entre hommes. + +[MOB_10A] +Tommy! Ecoute, j'ai un service à te demander! + +[MOB_10B] +Steve! Comment ça marche, le cinoche? + +[MOB_10C] +Ca va, ça va. Mais on a besoin d'une scène de poursuite en bagnole et on a pas le budget pour ça. + +[MOB_10D] +J'ai laissé des bagnoles dans les environs. Tu sauras quoi faire. + +[MOB_10E] +OK, Steve, je vais voir ce que je peux faire. A plus tard. + +[MOB_11A] +Salut petit, je me suis dit que j'allais te passer un coup de fil pour te donner un bon conseil. + +[MOB_11B] +Salut Avery, qu'est-ce que tu voulais me dire? + +[MOB_11C] +Les perspectives ne manquent pas dans cette ville, si tu possèdes le bon business... Tu vois ce que je veux dire? + +[MOB_11D] +Je pense que oui... + +[MOB_11E] +Je te conseille d'ouvrir l'oeil, et le bon, si tu veux dégotter un bon business. A plus tard. + +[MOB_11F] +Ciao, Avery. + +[MOB12_A] +Tommy! C'est Avery! Ecoute, je suis débordé de boulot pour le moment, + +[MOB12_B] +et j'ai un de mes réprésentants qui a besoin d'être chaperonné jusqu'aux Gator Keys. + +[MOB12_C] +Je suis sur l'achat d'un terrain là-bas, alors j'envoie un mec graisser quelques pattes. + +[MOB12_D] +J'ai besoin que tu t'assures qu'il arrive bien là-bas. OK? + +[MOB12_E] +OK, pas de problème, Avery! Mais où c'est que je le trouve, ce mec? + +[MOB12_F] +Il boucle une affaire au chantier. Je lui ai dit que tu le prendrais là-bas. + +[MOB12_G] +Ok, Avery. J'y vais. A plus tard. + +[MOB13_A] +Vercetti? VERCETTI! Putain, mec, faut que tu me files un coup de main! + +[MOB13_B] +Mr Moffat? Comment va la famille? + +[MOB13_C] +Merde, mais quel con! Tu m'entends? + +[MOB13_D] +Ca m'a fait plaisir d'avoir des nouvelles... + +[MOB13_E] +Attends! Attends! Vercetti, euh... Tommy. Je peux t'appeler Tommy? + +[MOB13_F] +On est tous les deux dans les affaires, pas vrai? Et tu sais renifler les bonnes, hein? + +[MOB13_G] +J'ai pas le temps de causer, viens-en au fait! + +[MOB13_H] +Du FRIC! Voilà le putain de fait! + +[MOB13_I] +Je me suis encore tiré de taule, mais ça prend jamais longtemps avant qu'ils me retombent dessus. Pour eux, c'est qu'un putain de jeu! + +[MOB13_J] +Je t'appelle d'une cabine quelque part dans le trou du cul du monde! + +[MOB13_K] +Sors-moi de là avant qu'ils me chopent encore et... et... ah... meeeerde... + +[MOB13_L] +Eh bien, c'est que je suis très occupé pour les prochaines- + +[MOB13_M] +Non! Me laisse pas dans cette merde! T'as pas de coeur ou quoi? Putain, j'devrais pas avoir à m'abaisser comme ça! + +[MOB13_N] +Je suis à genoux, Tommy! Et c'est les rotules dans la poussière que je te supplie... + +[MOB13_O] +J'imagine que je pourrais passer dans le coin et voir si je te trouve... + +[MOB13_P] +Oh, merde, les voilà! Putain, magne-toi, Tommy! Vite! + +[MOB_14A] +Salut, Tommy, on va bien s'entendre, toi et moi. + +[MOB_14B] +Une tendre amie est venu me sussurrer dans l'oreille que la division SWAT de Vice City a un coffre dans une grosse banque, + +[MOB_14C] +et ils y gardent les pots-de-vin de toutes ces dernières années. + +[MOB_14D] +C'est une sorte de caisse de retraite pour vieux garçons. + +[MOB_14E] +Evidemment, si cette info pouvait t'aider à ramasser un peu de ce pognon, + +[MOB_14F] +j'imagine que tu te sentirais obligé de m'en refiler un peu, pas vrai, Tommy? + +[MOB_14G] +Je vais garder ça à l'esprit, merci, Kent. + +[MOB_14H] +Je m'appelle Paul, abruti! Et je suis du Kent, près de Londres. + +[MOB_14I] +Pour ce que j'en ai à foutre de la campagne anglaise, depuis l'école... + +[MOB15_A] +Tommy, mon vieux, c'est Paul, du Kent. + +[MOB15_B] +Il y a une ou deux authentiques dames qui ont ton nom plein la bouche, au Malibu. + +[MOB15_C] +De quoi tu parles?! + +[MOB15_D] +De gonzesses, de poulettes, de filles, quoi! Et bien élevées, pas le genre à causer pognon. + +[MOB15_E] +Faut que tu viennes voir ça. + +[MOB16_A] +Tommy, c'est Paulo, que pasa amigo? + +[MOB16_B] +Qu'est-ce que tu m'veux, Paul? J'ai pas besoin de fausses fringues de marque. + +[MOB16_C] +Très drôle, mon vieux, mais je fais pas dans la fringue de tapette, moi. + +[MOB16_D] +Bon, je t'appelle parce que j'me demande si je ne pourrais pas avoir un rôle dans un de tes films. + +[MOB16_E] +J'ai fait pas mal de pornos en Angleterre, mon vieux. + +[MOB16_F] +Au plumard, je suis une mitrailleuse lourde. + +[MOB16_G] +Merci de me proposer tes services, Paul, j'y réfléchirai. + +[MOB16_H] +Sérieusement, pense à moi, après tout ce que j'ai fait pour toi... + +[MOB16_I] +Justement, j'essaie de l'oublier. + +[MOB17_A] +Tommy Vercetti, comment ça va, big boss? + +[MOB17_B] +J'ai entendu tous ces trucs sur toi. Un flambeur en ville maintenant... + +[MOB17_C] +Paul, t'es bourré. + +[MOB17_D] +Naan! Pauvre abruti! J'suis pas saoul! + +[MOB17_E] +J'ai juste pris un ou deux verres et quelques tournées, et ça fait deux jours que j'ai pas fermé l'oeil! + +[MOB17_F] +De toute façon, ne me traite pas comme ça. + +[MOB17_G] +Je suis pas une poire. Qui c'est qui t'a lancé dans cette ville? Hein, qui? Moi! + +[MOB17_H] +Ah ouais? + +[MOB17_I] +Ouais! + +[MOB17_J] +Paul, t'énerve pas. J'étais occupé, sois pas stupide. + +[MOB17_K] +Je suis pas stupide, connard! Ils me l'ont dit en maison de redressement! + +[MOB17_L] +Si tu cherches les emmerdes, mon pote, tu vas les trouver! + +[MOB17_M] +Tommy, s'il te plaît! T'étais mon grand espoir! Te fous pas de moi! + +[MOB17_N] +Paul, va roupiller un bon coup, sérieusement. + +[MOB18_A] +Tommy, c'est Paulo, comment ça va, mon pote, je me suis dit que j'allais te passer un petit coup de fil. + +[MOB18_B] +Ah, mon pote, tu croiras jamais l'incroyable petit lot que je viens de lever... + +[MOB18_C] +Elle se promenait juste en bas dans Little Havana, mon pote. + +[MOB18_D] +Elle m'a dit qu'elle s'appelait Mercedes ou un truc comme ça. Ah, mon pote, faut que t'ailles voir cette fille! + +[MOB18_E] +Elle ferait bander un eunuque! Elle m'a dit que j'étais le meilleur coup de sa vie et tout et tout! + +[MOB18_F] +Vas-y, trouve-la. A plus tard. + +[MOB19_A] +Tommy V, c'est KP! Kent Paul. Le bruit court que des mecs veulent te faire la peau. + +[MOB19_B] +Ouvre l'oeil, mon pote. Et oublie pas... Je t'ai rien dit. + +[MOB_20A] +Salut, Tommy, c'est Paul. Je viens juste d'entendre dire que t'avais été un vilain garçon. + +[MOB_20B] +Il y a quelqu'un qui s'est vexé de te voir jouer les caïds et ça lui a donné de mauvaises idées... + +[MOB_20C] +Bon, dis à personne que je t'ai rencardé. Les grandes gueules finissent toujours par l'avoir dans l'os. + +[MOB_20D] +Enfin, j'ai entendu dire que ta tête a été mise à prix et que quelqu'un va essayer de t'avoir, + +[MOB_20E] +alors fais gaffe, et m'oublie pas, mon pote. + +[MOB71_A] +Tommy, Thomas, c'est Cortez. Que pasa? + +[MOB71_B] +Les affaires tournent... Et toi, comment ça va? + +[MOB71_C] +Tommy, ici, c'est toujours la guerre. Excusez la mauvaise ligne, mais on vient juste d'avoir un nouveau coup d'état manqué. + +[MOB71_D] +Le peuple est la plus exigeante des maîtresses. + +[MOB71_E] +Si je compte bien, y'a eu trois révolutions et quatre coups d'état depuis que je suis rentré de Vice City. + +[MOB71_F] +Heureusement, à chaque fois, j'ai pris du galon. + +[MOB71_G] +Je voulais vous demander quelque chose à propos de Mercedes... + +[MOB71_H] +Ouais? Quoi? + +[MOB71_I] +Voilà, Tommy, Tommy, j'ai entendu toutes ces histoires et je sais pas quoi penser... + +[MOB71_J] +Peut-être que tout le monde essaye de m'humilier... + +[MOB71_K] +Peut-être qu'elle se croit tout permis, mais dites-moi juste la vérité, Tommy, c'est vrai? + +[MOB71_L] +Mais dites-moi juste la vérité, Tommy, c'est vrai? + +[MOB71_M] +Qu'est-ce qui est vrai? + +[MOB71_N] +Ces bruits qui courent... Elle va vraiment devenir avocate? + +[MOB71_O] +Ah, Tommy, c'est une véritable honte! Nous, les Cortez, sommes une honorable famille et nous ne tolèrerons jamais qu'une de nos filles devienne avocate. + +[MOB71_P] +Je vous en prie, dites-moi que ce n'est pas vrai, je ne crois pas que je pourrais le supporter. + +[MOB71_Q] +Colonel, je peux vous assurer que Mercedes ne deviendra jamais avocate. Ne vous inquiètez pas. + +[MOB71_R] +Merci, Tommy, cette honte me serait insupportable. C'est une femme, pas un parasite, vous comprenez. + +[MOB71_S] +Je le sais, colonel. + +[MOB71_T] +Bon, vous allez devoir m'excuser, Tommy, mais le nouveau ministre de l'intérieur vient d'arriver... + +[MOB71_U] +Il y a de nombreuses années, j'ai tué son père au cours d'une tentative de coup d'état ratée et je dois me montrer poli. Adios, amigo. + +[MOB22_A] +Tommy, vous vous révèlez très utile, amigo. + +[MOB22_B] +Merci, Cortez. Et mon affaire? + +[MOB22_C] +Tommy, je travaille inlassablement en ce sens pour aller au fond des choses et de la vérité dans cette terrible histoire. + +[MOB22_D] +Vous avez ma parole, mais en attendant, + +[MOB22_E] +acceptez, je vous en prie, les sincères remerciements de mon peuple pour vos actions bénéfiques. + +[MOB_25A] +Tommy, c'est Cortez. Les Français me font beaucoup d'ennuis... + +[MOB_25B] +Les sales hypocrites! Ils passent des siècles à piller les pays pauvres et ils osent me traiter de voleur! + +[MOB_25C] +Je vais avoir besoin de votre aide aussi vite que possible. + +[MOB_25D] +Vite, Tommy, j'ai vraiment besoin de vous. Je hais ces maudits Français! + +[MOB_26A] +Allo, Tommy? + +[MOB_26B] +Ouais? + +[MOB_26C] +C'est moi, Baker. Je voulais juste te dire que j'ai beaucoup apprécié le spectacle. + +[MOB_26D] +Moi et mes gars, on veut te remercier, et te rappeler + +[MOB_26E] +que tu as tout notre respect. Bon, salut. Et continue comme ça, mon pote. + +[MOB_29A] +Allo? Vous êtes bien M. Tommy Vercetti? + +[MOB_29B] +Ouais. + +[MOB_29C] +Bien. J'ai entendu dire que vous êtes l'homme à appeler quand on est victime d'une invasion de vermine. + +[MOB_29D] +Ca se peut... + +[MOB_29E] +Eh bien, là je suis vraiment envahi par la vermine. Les haïtiens sont partout... + +[MOB_29F] +Je m'appelle Umberto Robina et je vous propose une rencontre au Café Robina aussitôt que vous pourrez. + +[MOB_29G] +Moi j'vous le dis, ces maudits haïtiens sont allés trop loin, cette fois... + +[MOB_29H] +Test + +[MOB_30A] +Tommy, c'est Umberto Robina. + +[MOB_30B] +Quoi de neuf au café? + +[MOB_30C] +Oh, merveilleux, Tommy, vraiment incroyable! Ici, plus de mauviettes, Tommy. Juste de vrais hommes et des belles filles! + +[MOB_30D] +Je voulais te dire que moi et papa, maintenant, on te considère comme cubain. + +[MOB_30E] +T'as fait tes preuves, mon frère et t'en as une sacrée paire dans l'pantalon! + +[MOB_30F] +Euh, merci, Umberto. Personne ne m'a dit ça depuis que je suis sorti de taule. Bon, salut. + +[MOB_33A] +Tommy, c'est Phil! Bon, arrête tes conneries et écoute-moi, tu veux? + +[MOB_33B] +Bon. J'ai du whisky extra fort, presque fermenté, et je me demandais si tu voulais pas venir boire un coup... + +[MOB_33C] +Sans déconner, Tommy, si t'as besoin d'un verre ou de décoller de la peinture, t'es le bienvenu, ce truc fera de toi un homme! + +[MOB_33D] +Ca me fait cet effet, même si je vois plus rien d'un oeil. Je t'attends, t'entends? + +[MOB_34A] +Tommy, ça m'a fait vraiment plaisir de bosser avec toi. Je m'étais pas autant marré depuis la guerre du Vietnam, mon pote. + +[MOB_34B] +Bon, si t'as besoin de quelque chose, tu m'appelles, t'entends? + +[MOB_34C] +Je n'oublie jamais ceux avec qui j'ai servi + +[MOB_34D] +et je suis sûr que je peux t'aider, t'entends? + +[MOB_35A] +Tommy, la blessure cicatrise bien. Le truc drôle, c'est que + +[MOB_35B] +j'ai combattu dans six batailles et que je m'en suis toujours sorti sans une égratignure, et voilà! + +[MOB_35C] +'Phil, le manchot d'un bras.' Enfin, j'ai encore une large selection d'armes de poing alors je serai jamais 'Phil, le désarmé', t'entends? + +[MOB_35D] +Aller, mon pote, laisse tomber les conneries sentimentales et va te boire un verre, t'entends? + +[MOB_36A] +Tommy, c'est Phil. Je voulais te remercier pour le coup de main, mon pote. + +[MOB_36B] +Salopard de Charlie, toujours à tendre des embuscades ici ou là, + +[MOB_36C] +mais la blessure cicatrise bien, et ça veut aussi dire que j'aurai plus à truander le gouvernement pour le contrôle d'invalidité. Merci, mon pote. + +[MOB_40A] +Salut, Tommy, c'est Sonny. Alors ce bronzage? + +[MOB_40B] +J'suis pas bronzé. + +[MOB_40C] +Ouais et t'as pas non plus mon pognon, alors je m'interrogeais... + +[MOB_40D] +Je me disais : 'Qu'est-ce qu'il fout?' Alors, je te le demande, Tommy, qu'est-ce que tu fous? + +[MOB_40E] +Je cherche le pognon, Sonny, t'inquéte pas! + +[MOB_40F] +Je m'inquiéte, Tommy, c'est mon genre, + +[MOB_40G] +parce que j'ai ce problème récurrent dans la vie de tomber sur des gens indignes de confiance... + +[MOB_40H] +Ne sois pas indigne de ma confiance, Tommy, s'il te plaît... + +[MOB_40I] +Rends-nous à tous deux ce service. J'attends de tes nouvelles... + +[MOB_41A] +Tommy, tu te souviens de moi? + +[MOB_41B] +Salut, Sonny. + +[MOB_41C] +Ouais, exactement, Sonny, on est de vieux amis, + +[MOB_41D] +mais tu ne m'écris jamais, tu ne m'appelles jamais. Tu ne veux plus qu'on soit amis? + +[MOB_41E] +J'ai été très occupé à régler des trucs ici et là. Tu ne m'aides pas beaucoup, ici. + +[MOB_41F] +Oh, c'est ma faute? Bon, j'ai entendu que tu étais très occupé, d'accord, + +[MOB_41G] +occupé à liquider des barons de la drogue, occupé à prendre le pouvoir. + +[MOB_41H] +Alors je te préviens simplement de ne pas m'oublier, Tommy, parce que moi, je ne t'oublie pas... + +[MOB_42A] +Tommy. + +[MOB_42B] +Sonny. + +[MOB_42C] +Faut croire que t'es à moitié sourd, alors je vais me répéter : + +[MOB_42D] +Tommy, où est ce putain de pognon? Où est cette putain de marchandise? Et où est ma putain de part sur ta nouvelle affaire? + +[MOB_42E] +Tu te fous vraiment d'ma gueule, Tommy, et ça me fait pas rire! + +[MOB_43A] +Tommy! Tommy! J'ai eu Sonny au téléphone. Tu m'écoutes? + +[MOB_43B] +Je ne sais pas pour toi, mais il y a un mec qui menace de buter toute ma famille, + +[MOB_43C] +et ça me fout vraiment les jetons. Qu'est-ce que tu comptes faire? + +[MOB_43D] +Reste calme, Ken, tout va bien se passer. + +[MOB_43E] +Je suis calme! Calme comme un homme qui craint pour sa propre vie! + +[MOB_43F] +Ken, j'ai d'autres choses en tête pour l'instant, + +[MOB_43G] +on s'occupera de Forelli quand l'heure sera venue. + +[MOB_43H] +Je suis calme. J'ai pas l'air calme? J'sais pas, c'est ma voix qui a changé à cause de la mort qui me pend au nez! + +[MOB45_A] +Tommy, faut qu'on cause sérieusement. + +[MOB45_B] +C'est quoi le problème, Lance? + +[MOB45_C] +C'est toi le problème, mon pote, j'ai l'impression que tu m'files pas une part équitable... + +[MOB45_D] +Mais le pire, c'est que tu m'as foutu la honte devant les mecs. Je supporte pas ça. + +[MOB45_E] +Lance, c'est pas ça du tout. T'as fait des bourdes, c'est tout. + +[MOB45_F] +Tommy, je suis pas ton petit messager et encore moins ton garçon de courses. + +[MOB45_G] +Lance, déconne pas et on aura pas d'emmerdes! Et si c'est moi qui déconne, tu peux me rentrer dedans quand tu veux. + +[MOB45_H] +Tommy, j'ai tout fait pour toi et tu me traites comme un con. Fais pas ça. + +[MOB45_I] +Lance, je ne vais pas t'arnaquer ou te planter un couteau dans le dos, ok? + +[MOB45_J] +T'énerve pas. C'est déjà assez dur comme ça, sans que tu perdes les pédales. + +[MOB45_K] +Fais-moi confiance. Tu m'entends? Tu m'entends? + +[MOB45_L] +Je t'entends, Tommy, mais je peux pas supporter ça plus longtemps. + +[MOB45_M] +Lance, arrête de déconner. Maintenant, je te préviens. + +[MOB45_N] +Tu m'entends? Relax! Prends quelques jours de repos et on en reparle, ok? + +[MOB46_A] +Tommy, c'est Lance. + +[MOB46_B] +Ouais? + +[MOB46_C] +Même pas un 'ça fait plaisir d'avoir des tes nouvelles'? Allez, mec, sois sympa! + +[MOB46_D] +Je suis occupé. Qu'est-ce que tu veux? + +[MOB46_E] +Rien. C'était juste pour te dire... Tu sais, Tommy, on peut faire ce truc. + +[MOB46_F] +Toi et moi, sans problème. Tu vois ce que je veux dire? + +[MOB46_G] +Va bien falloir qu'on le fasse, parce que sinon, on est morts, Lance. + +[MOB46_H] +On peut plus reculer, maintenant, mais merci de ton appel. On se reparle plus tard. + +[MOB_47A] +Tommy, c'est Lance, on a de gros problèmes. Amène-toi ici en vitesse. + +[MOB52_A] +Salut, Léo, je crois qu'on a un acheteur pour la marchandise de Diaz. + +[MOB52_B] +Il faut que tu l'appelles, mec, pour organiser le deal, tu comprends? + +[MOB52_C] +T'es où, là? + +[MOB52_D] +T'es sûr que ça va, Léo? T'as une voix bizarre... + +[MOB52_E] +Dis-moi juste où t'es. + +[MOB52_F] +Qui c'est qui cause? Je veux parler à Léo! + +[MOB52_G] +Léo est parti pour un moment, je le remplace. + +[MOB52_H] +Va te faire foutre, connard! + +[MOB54_A] +Salut, Tommy! + +[MOB54_B] +Salut, Mercedes, quoi de neuf? + +[MOB54_C] +J'ai un nouvel appartement dans Vice Point. + +[MOB54_D] +J'ai pensé que tu voudrais peut-être passer un de ces quatre... + +[MOB54_E] +J'adorerai. A plus tard. + +[MOB55_A] +Tommy, c'est moi. + +[MOB55_B] +Salut, Mercedes. + +[MOB55_C] +Tommy, je m'ennuie tellement! Quand est-ce qu'on va s'amuser? + +[MOB55_D] +Comment ça? + +[MOB55_E] +Bon, je sais que t'es très occupé à te battre, à tuer des gens ou à les corrompre, + +[MOB55_F] +mais moi, j'ai envie de m'amuser un peu! Alors, ne m'oublie pas, Tommy! + +[MOB56_A] +Tommy, j'ai entendu dire que tu avais tué Ricardo Diaz! + +[MOB56_B] +Un feu accidentel s'est déclenché dans sa résidence... + +[MOB56_C] +Je pense qu'il a cramé dans sa chemise en acrylique. + +[MOB56_D] +Tommy, je suis si fière de toi! Je savais que tu étais un vrai macho! + +[MOB56_E] +Ah, mon dur de dur, je suis si fière d'être ton amie! + +[MOB56_F] +Je sais que tu vas être très occupé à essayer de t'emparer de cette ville, + +[MOB56_G] +mais ne m'oublie pas, d'accord? + +[MOB57_A] +C'est Mercedes. Je ne t'aime plus, Tommy! + +[MOB57_B] +C'est fini! C'est vrai! Parce que tu n'es plus gentil avec moi! + +[MOB57_C] +Tu ne me traites plus comme une dame! Tu m'ignores et je te déteste! + +[MOB57_D] +Je veux que tu viennes me voir tout de suite! " + +[MOB58_A] +Tommy. + +[MOB58_B] +Salut, Mercedes. + +[MOB58_C] +Bonjour monsieur le vrai dur! Je suis très en colère contre toi, Tommy! + +[MOB58_D] +Ne m'oblige plus jamais à supporter Jezz Torrent! + +[MOB58_E] +Il est pathétique! En plein milieu il a commencé à pleurer à cause de son toutou + +[MOB58_F] +qui est mort quand il avait 7 ans et parce que sa mère ne l'a jamais aimé... + +[MOB58_G] +En plus, Tommy, il porte une perruque et un soutien-gorge dans l'intimité! + +[MOB58_H] +Je t'en veux vraiment! + +[MOB59_A] +Ooh Tommy, c'est Mercedes. + +[MOB59_B] +Je voulais juste te dire que je m'étais éclatée sur le tournage! + +[MOB59_C] +Si tu as quelque chose d'autre de ce genre, pense à moi! + +[MOB59_D] +Je suis sincère! J'ai toujours voulu être actrice! + +[MOB59_E] +Je crois que j'ai beaucoup appris sur l'art dramatique! + +[MOB59_F] +C'est tellement révélateur! Merci beaucoup! On se voit très bientôt, adios! + +[MOB_99] +Rends-toi à la cabine indiquée. + +[MOB_98] +Rends-toi à la cabine indiquée. + +[MOB_97] +Rends-toi à la cabine indiquée. + +[MOB_96] +Rends-toi à la cabine indiquée. + +[MOB_95] +Rends-toi à la cabine indiquée. + +[A_TIME] ++~1~ secondes + +[F_RANGE] +La radio du camion de pompiers ne capte plus rien. Rapproche-toi d'une caserne! + +[DODO_FT] +Tu as 'volé' pendant ~1~ secondes! + +[GA_8] +Utilise le détonateur pour armer la bombe. + +[GA_10] +Bravo. Voilà tes ~1~$. + +[GA_11] +On en a déjà des comme ça. Ca nous sert à rien! + +[GA_12] +Bombe armée + +[GA_13] +Comme un pro! Finis la liste et t'auras un bonus! + +[GA_14] +Toutes les voitures! PARFAIT! Tiens, voilà un petit quelque chose! + +[GA_15] +J'espère que t'aimes la nouvelle couleur. + +[GA_16] +La peinture est en option! + +[GA_19] +Ce modèle ne nous intéresse pas! + +[GA_20] +On en a trop des comme ça! Désolé, mec. + +[CHASE] +Attention maximale des médias + +[CHASE1] +Ignoré + +[CHASE2] +Ennuyeux + +[CHASE3] +Plus ou moins intéressant + +[CHASE4] +Journal local page 7 + +[CHASE5] +Journal local La une + +[CHASE6] +Vice Courier Rubrique 1 + +[CHASE7] +Vice Courier La une + +[CHASE8] +Télé locale 3h du mat' + +[CHASE9] +Télé locale Infos + +[CHASE10] +Télé locale Direct + +[CHASE11] +UFA Today page 12 + +[CHASE12] +UFA Today page 4 + +[CHASE13] +Photo dans UFA Today + +[CHASE14] +Télé nationale 4h du mat' + +[CHASE15] +Télé nationale Infos + +[CHASE16] +Télé nationale Direct + +[CHASE17] +Infos internationales + +[CHASE18] +Crise nationale + +[CHASE19] +Crise internationale + +[CHASE20] +Evénement mondial + +[CHASE21] +Truc de légendes + +[CR_1] +La grue ne peut pas soulever ce véhicule. + +[PU_MONY] +T'as pas assez de liquide. + +[CO_ALL] +Tu les as toutes eues. Tiens, voilà pour toi... + +[FEM_ON] +Activé + +[FEM_OFF] +Désactivé + +[FEM_YES] +Oui + +[FEM_NO] +Non + +[FEM_RET] +Réessayer + +[FEC_NA] +NA + +[FEC_CWL] +Faire défiler les armes vers la gauche + +[FEC_CWR] +Faire défiler les armes vers la droite + +[FEC_LOF] +Regarder devant + +[FEC_TAR] +Viser + +[FEC_MOV] +Déplacement + +[FEC_CAM] +Modes caméra + +[FEC_PAU] +Pause + +[FEC_ENV] +Monter dans un véhicule + +[FEC_JUM] +Sauter + +[FEC_ATT] +Attaquer ou tirer + +[FEC_RUN] +Courir + +[FEC_FPC] +Vue subjective + +[FEC_LL] +Rergarder à gauche + +[FEC_LB] +Regarder derrière + +[FEC_LR] +Regarder à droite + +[FEC_HOR] +Klaxon + +[FEC_VES] +Commandes du véhicule + +[FEC_BRA] +Freiner ou marche arrière + +[FEC_HAB] +Frein à main + +[FEC_CAW] +Arme du véhicule + +[FEC_ACC] +Accélérateur + +[FEC_CCF] +Configuration : + +[FEC_CF1] +Config. 1 + +[FEC_CF2] +Config. 2 + +[FEC_CF3] +Config. 3 + +[FEC_CF4] +Config. 4 + +[FEC_CDP] +Affichage manette : + +[FEC_ONF] +à pied + +[FEC_INC] +En voiture + +[FEC_VIB] +Vibrations : + +[FEL_ENG] +Anglais + +[FEL_FRE] +Français + +[FEL_GER] +Allemand + +[FEL_ITA] +Italien + +[FEL_SPA] +Espagnol + +[FED_DBG] +Menu Debug + +[FED_RID] +Recharger IDE + +[FED_RIP] +Recharger IPL + +[FED_PAH] +Analyser Saut + +[FED_DFL] +CTheScripts::DbgFlag + +[FED_DLS] +Lumière blanche de debug allumée + +[FED_SPR] +Affiche les groupes de pietons + +[FED_SCR] +Affiche les groupes en voiture + +[FED_SCZ] +Affiche les zones de massacre + +[FED_DSR] +Debug les demandes de répartition par niveaux + +[FED_SCP] +gb Indique les polys de collision + +[PL_STAT] +Stats du joueur + +[PE_WAST] +Personnes tuées par toi + +[PE_WSOT] +Personnes tuées par d'autres + +[TM_BUST] +Nb de fois capturé + +[GNG_WST] +Gangsters tués + +[DED_CRI] +Criminels tués + +[PER_COM] +Pourcentage accompli + +[KGS_EXP] +Kilos d'explosifs utilisés + +[ACCURA] +Précision + +[ST_WEAP] +Budget arsenal + +[ST_PROP] +Budget propriété + +[ST_AUTO] +Budget réparation et peinture voiture + +[ST_PHOT] +Photos prises + +[ST_LOAN] +Visites des usuriers + +[ST_STOR] +Magasins liquidés + +[ST_MOVI] +Cascades de films + +[ST_PIZZ] +Pizza livrées + +[ST_GARB] +Collectes de détritus effectuées + +[ST_ICEC] +Crèmes glacées vendues + +[TOP_SHO] +Meilleur score au champ de tir + +[SHO_RAN] +Position au champ de tir + +[SEAGULL] +Mouettes descendues + +[PROPOWN] +Propriété possédée + +[ST_TIME] +Temps de jeu + +[ST_FTIM] +Heures de vol + +[ST_PRAN] +Classement pilote + +[ST_RAN0] +Apprenti + +[ST_RAN1] +Navigateur + +[ST_RAN2] +Copilote + +[ST_RAN3] +Junior + +[ST_RAN4] +Compétent + +[ST_RAN5] +Senior + +[ST_RAN6] +As + +[ST_RAN7] +Baron rouge + +[ST_DRWN] +Poissons nourris + +[ST_FASH] +Budget fringues + +[ST_DAMA] +Propriété détruite + +[TM_DED] +Visites à l'hôpital + +[DAYSPS] +Jours passés dans le jeu + +[NUMSHV] +Visites dans l'entrepôt + +[MXCARD] +Dist. max. de saut de Cascade dangereuse (ft) + +[MXCARJ] +Hauteur max. de saut de Cascade dangereuse(ft) + +[MXCARDM] +Dist. max. de saut de Cascade dangereuse (m) + +[MXCARJM] +Hauteur max. de saut de Cascade dangereuse (m) + +[MXFLIP] +Saltos max. de saut de Cascade dangereuse + +[MXJUMP] +Rotation max. de saut de Cascade dangereuse + +[BUL_FIR] +Balles tirées + +[BUL_HIT] +Balles ayant atteint la cible + +[SPRAYIN] +Peintures + +[BSTSTU] +Meilleure cacade jusqu'à maintenant + +[INSTUN] +Cascade dangereuse + +[PRINST] +Cascade dangereuse parfaite + +[DBINST] +Double cascade dangereuse + +[DBPINS] +Double cascade dangereuse parfaite + +[TRINST] +Triple cascade dangereuse + +[PRTRST] +Triple cascade dangereuse parfaite + +[QUINST] +Quadruple cascade dangereuse + +[PQUINS] +Quadruple cascade dangereuse parfaite + +[NOSTUC] +Aucune cascade dangereuse réalisée + +[NOUNIF] +Sauts uniques accomplis + +[NMISON] +Tentatives de mission + +[PASDRO] +Passagers perdus + +[MONTAX] +Total des courses en taxi + +[DAYPLC] +Dépenses quotidiennes de police + +[CRIMRA] +Taux de criminalité : + +[STPR_1] +Le Malibu + +[STPR_2] +Imprimerie + +[STPR_3] +Studio de cinéma + +[STPR_4] +Usine de crème glacée + +[STPR_5] +Concession automobile + +[STPR_6] +Compagnie de taxis + +[STPR_7] +Chantier naval + +[SET1EN] +Config. 1. Activée + +[GMSAVE] +Sauvegarder partie + +[FEDS_TB] +Retour + +[FEST_OO] +sur + +[FEC_TUC] +Commandes tourelle + +[FEC_RS3] +Faire défiler les stations de radio (touche L3) + +[FEC_HO3] +Klaxonner (touche L3) + +[C_FAIL] +Mission d'autodéfense terminée! + +[C_ESCP] +~r~Le suspect s'est échappé! + +[C_VIGIL] +BONUS AUTODEFENSE! + +[HEAL_A] +Ton niveau de ~h~santé~w~ s'affiche en orange en haut à droite de l'écran. + +[WRONGCD] +Disque invalide. Insère le bon disque. + +[NOCD] +Le compartiment à disque est vide. Insère un disque. + +[OPENCD] +Le compartiment à disque est ouvert. Referme-le. + +[CDERROR] +Erreur au cours de la lecture du DVD de Grand Theft Auto: Vice City + +[RESTART] +Démarrage d'une nouvelle partie + +[GA_3] +Plus de cadeaux. 100$ pour repeindre! + +[GA_1] +Oula! Je ne touche à rien d'aussi chaud, moi! + +[GA_1A] +Reviens quand tu seras moins occupé... + +[HELP9_C] +Appuie sur la~h~ ~k~~PED_FIREWEAPON~ ~w~pour ~h~tirer~w~ avec le fusil à lunette. + +[TAXI2] +~r~Tu n'as plus le temps! + +[PAGEB13] +Santé livrée à la planque + +[PAGEB14] +Adrénaline livrée à la planque + +[FESZ_CA] +Annuler + +[FES_NGA] +Nouvelle partie + +[FES_CAN] +Annuler + +[FESZ_QL] +Toutes les étapes non sauvegardées de cette partie seront perdues. Charger la partie? + +[FESZ_QD] +Effacer cette sauvegarde? + +[FESZ_QO] +Ecraser cette sauvegarde? + +[FESZ_QR] +Veux-tu vraiment commencer une autre partie? Toutes les données depuis la dernière partie sauvegardée seront perdues. Continuer? + +[T4X4_1] +'Terrain de jeu PCJ' + +[BMX_1] +'Sélection par la boue' + +[BMX_2] +'Piste d'essai' + +[BMXFAIL] +~r~Tu n'as pas réussi à établir un nouveau record! + +[T4X4_3] +'DANS LA POCHE!' + +[MM_1] +'Cônes en folie' + +[T4X4_F] +~r~Tu t'es barré! Trop dur pour toi? [LANDSTK] Landstalker @@ -740,13 +2178,16 @@ Linerunner Perennial [SENTINL] -Sentinel +Sentinelle + +[RIO] +Rio [PATRIOT] -Patriot +Patriote [FIRETRK] -Camion pompiers +Camion de pompier [TRASHM] Trashmaster @@ -760,8 +2201,8 @@ Manana [INFERNS] Infernus -[BLISTA] -Blista +[VOODOO] +Voodoo [PONY] Pony @@ -776,7 +2217,7 @@ Cheetah Ambulance [FBICAR] -FBI Cruiser +FBI Washington [MOONBM] Moonbeam @@ -787,8 +2228,8 @@ Esperanto [TAXI] Taxi -[KURUMA] -Kuruma +[WASHING] +Washington [BOBCAT] Bobcat @@ -799,6 +2240,9 @@ Mr Whoopee [BFINJC] BF Injection +[HUNTER] +Hunter + [POLICAR] Police @@ -823,20 +2267,17 @@ Rhino [BARRCKS] Barracks OL -[BARRACK] -Barracks OL - -[TRAIN] -Train +[CUBAN] +Cuban Hermes [HELI] -Hélico +Hélicoptère [DODO] Dodo [COACH] -Bus +Coach [CABBIE] Cabbie @@ -850,32 +2291,29 @@ Rumpo [RCBANDT] RC Bandit -[BELLYUP] -Triad Fish Van +[ROMERO] +Corbillard de Romero -[MRWONGS] -Mr Wongs +[PACKER] +Packer -[MAFIACR] -Leone Sentinel +[ADMIRAL] +Amiral -[YARDICR] -Yardie Lobo +[SQUALO] +Squalo -[YAKUZCR] -Yakuza Stinger +[SEASPAR] +Sea Sparrow -[DIABLCR] -Diablo Stallion +[PIZZABO] +Pizza Boy -[COLOMCR] -Cartel Cruiser +[GANGBUR] +Gang Burrito -[HOODSCR] -Hoods Rumpo XL - -[AEROPL] -Avion +[TROPIC] +Tropic [SPEEDER] Speeder @@ -883,68 +2321,29 @@ Speeder [REEFER] Reefer -[PANLANT] -Panlantic - [FLATBED] Flatbed [YANKEE] Yankee -[BORGNIN] -Bickle'76 +[CADDY] +Caddy -[TOYZ] -TOYZ +[ZEBRA] +Taxi Zebra -[MCLARN] -Lancer MF1 +[TOPFUN] +Top Fun -[SHELBY] -Hellenbach GT +[SKIMMER] +Skimmer -[SUBARU] -Impreza WRX +[PCJ600] +PCJ 600 -[SUPRA] -Supra - -[SKYLINE] -Skoiloine - -[CYCLONE] -Cyclone GT - -[ESPRIT] -V8 Ghost - -[MINI] -Tommy - -[HOTROD] -Thunder-Rodd - -[CAMPVAN] -Campaign Rumpo - -[BALLOT] -Camionnette avec bulletins - -[GHOST] -Ghost - -[ANGEL] -Angel - -[ANGEL2] -Avenger - -[PIZZABO] -Mob Pizza - -[NOODLBO] -Mob Nouilles +[PHOENIX] +Phoenix [FAGGIO] Faggio @@ -952,2129 +2351,1742 @@ Faggio [FREEWAY] Freeway +[RCBARON] +RC Baron + +[RCRAIDE] +RC Raider + +[GLENDAL] +Glendale + +[OCEANIC] +Oceanic + [SANCHEZ] Sanchez -[SANCH2] -Manchez +[SPARROW] +Sparrow -[F_PASS1] -~w~Feu éteint ! Récomp. : ~1~$ +[LOVEFIS] +Love Fist -[F_RANGE] -~r~La radio du camion de pompiers ne capte plus rien ! Rapproche-toi d'une caserne ! +[COASTG] +Garde-côte -[C0TGSUB] -touche R3 +[DINGHY] +Dinghy -[C0VESTR] -joystick analogique gauche ou touches directionnelles gauche et droite +[HERMES] +Hermes -[C1VESTR] -joystick analogique gauche +[SABRE] +Sabre -[C2VESTR] -joystick analogique gauche ou touches directionnelles gauche et droite +[SABRETU] +Sabre Turbo -[C3VESTR] -joystick analogique gauche +[WALTON] +Walton -[C2VEHB] -~T~ +[REGINA] +Regina -[C3VEHB] -touche L1 +[COMET] +Comet -[C0VEHN] -touche L3 +[DELUXO] +Deluxo -[C0VELL] -touche L2 +[BURRITO] +Burrito -[C1VELL] -touche L2 +[SPAND] +Spandex Express -[C2VELL] -touche L2 +[MARQUIS] +Marquis -[C3VELL] -touche L2 +[BAGGAGE] +Bagagiste -[C0VELR] -touche R2 +[KAUFMAN] +Taxi Kaufman -[C1VELR] -touche R2 +[COASTMA] +Garde-côte Maverick -[C2VELR] -touche R2 +[MAVERIC] +Maverick -[C3VELR] -touche R2 +[RANCHER] +Rancher -[C0VELB] -touche L2 + touche R2 +[FBIRANC] +FBI Rancher -[C1VELB] -touche L2 + touche R2 +[VIRGO] +Virgo -[C2VELB] -touche L2 + touche R2 +[GREENWO] +Greenwood -[C3VELB] -touche L2 + touche R2 +[HOTRING] +Hotring Racer -[C0VECRS] -touche L1 - -[C1VECRS] -touche SELECT - -[C0VEWEI] -joystick analogique gauche vers le haut et vers le bas ou touches directionnelles haut et bas - -[C1VEWEI] -joystick analogique gauche vers le haut et vers le bas - -[C2VEWEI] -joystick analogique gauche vers le haut et vers le bas ou touches directionnelles haut et bas - -[C3VEWEI] -joystick analogique gauche vers le haut et vers le bas - -[C0PDCWE] -touche L2 et touche R2 - -[C1PDCWE] -touche L2 et touche R2 - -[C0PUCF] -touche L1 - -[C1PUCF] -touche L1 - -[C2PUCF] -~T~ - -[C3PUCF] -~O~ - -[C0PDLT] -touche R1 - -[C1PDLT] -touche R1 - -[C2PDLT] -touche R1 - -[C3PDLT] -touche L1 - -[C0PDCTL] -touche L2 et touche R2 - -[C1PDCTL] -touche L2 et touche R2 - -[C2PDCTL] -touche L2 et touche R2 - -[C3PDCTL] -touche L2 et touche R2 - -[C0CVEIW] -touche SELECT - -[C1CVEIW] -touches directionnelles haut et bas - -[C2CVEIW] -touche SELECT - -[C3CVEIW] -touche SELECT - -[C0PDBAK] -touche R3 - -[C1PDBAK] -touche R3 - -[C2PDBAK] -touche R3 - -[C3PDBAK] -touche R3 - -[C0PDLO1] -touche L - -[C1PDLO1] -touche L - -[C2PDLO1] -touche L - -[C3PDLO1] -touche L - -[C0PDLO2] -pad analogique - -[C2PDLO2] -pad analogique - -[C0ANS] -touche L1 - -[C1ANS] -touche L1 - -[C2ANS] -touche L1 - -[C3ANS] -touche L1 - -[WEATHE2] -METEO NORMALE - -[GA_4] -~w~Chaque bombe pour voiture coûte 500$ pièce. - -[GA_5] -~w~Ta caisse est déjà équipée d'une bombe. - -[GA_6] -~w~Gare-toi, amorce la bombe avec~h~ ~k~ ~PED_FIREWEAPON~ ~w~et TIRE-TOI ! - -[GA_7] -~w~Amorce la bombe avec ~h~ ~k~ ~PED_FIREWEAPON~~w~. Elle explosera quand le moteur démarrera. - -[GA_8] -~w~Utilise le détonateur pour activer la bombe. - -[GA_9] -T'as récupéré ~1~ des 10 caisses spéciales. - -[GA_10] -Bien joué. Voilà tes ~1~$. - -[GA_11] -On a déjà une caisse comme ça. Ca nous sert à rien. - -[GA_12] -Bombe amorcée - -[GA_13] -Une livraison de pro ! Termine la liste et t'auras un bonus. - -[GA_14] -Toutes les caisses ! BIEN JOUE ! Voilà pour toi. - -[GA_15] -~w~J'espère que t'aimes la nouvelle couleur. - -[GA_17] -~w~Nouveau moteur et nouvelle couleur ! - -[GA_19] -Ce modèle ne nous intéresse pas. - -[GA_20] -On en a déjà trop des comme ça. Désolé, mais j'prends pas. - -[GA_22] -~w~Tu peux pas mettre de bombe sur une moto. - -[GA_23] -~w~Voiture piégée. Pièce et main-d'oeuvre : 500$ - -[GA_24] -~w~Voiture piégée. Offerte par la maison, pour cette fois ! - -[CR_1] -~w~La grue peut pas soulever ce véhicule. - -[PU_MONY] -~w~T'as pas assez de cash. - -[PAUSED] -PAUSE - -[FEB_STA] -Stats - -[FEB_MAP] -Carte - -[FEB_BRI] -Briefings - -[FEB_CON] -Commandes - -[FEB_AUD] -Sons - -[FEB_DIS] -Affichage - -[FEB_LAN] -Langue - -[FEP_STA] -STATS - -[FEP_MAP] -CARTE - -[FEP_BRI] -BRIEFINGS - -[FEP_CON] -COMMANDES - -[FEP_AUD] -SONS - -[FEP_DIS] -AFFICHAGE - -[FEP_LAN] -LANGUE : - -[FEF_ST1] -C'est qui le méchant ? - -[FEF_ST2] -Quantité de dégâts provoqués - -[FEF_BR1] -T'as perdu le fil ? - -[FEF_CO1] -Tu perds le contrôle ? - -[FEF_SA2] -Sauvegarde et charge tes parties. - -[FEF_AU1] -Fais péter la sono ! - -[FEF_AU2] -Sélectionne une station de radio et des effets sonores. - -[FEF_DI1] -Change le jeu ! - -[FEF_LA1] -Qu'est-ce que tu racontes ? - -[FEF_LA2] -Choisis la langue d'affichage. - -[FEM_ON] -AVEC - -[FEM_OFF] -SANS - -[FEM_YES] -Oui - -[FEM_NO] -Non - -[FEI_SEL] -Sélectionner - -[FEI_TAR] -Cible avec/sans - -[FEI_BAC] -Retour - -[FEI_RES] -Reprendre - -[FEI_NAV] -Naviguer - -[FEI_BTX] -/ - -[FEI_BTT] -" - -[FEI_STA] -touche START (mise en marche) - -[FEI_BTD] -pad analogique - -[FEI_BTU] -;= - -[FEI_R1B] -touche L / touche R - -[FEI_SCR] -Parcourir - -[FEI_ZOO] -Zoom - -[FEH_STA] -STATS - -[FEH_CON] -COMMANDES - -[FEH_AUD] -SONS - -[FEH_LAN] -LANGUE - -[FEH_SGA] -NOUVELLE PARTIE - -[FET_SG] -SAUVEGARDER - -[FEH_BRI] -BRIEFING - -[FEH_DIS] -AFFICHAGE - -[FEH_MAP] -CARTE - -[FEM_OK] -OK - -[FEC_CRO] -S'accroupir - -[FE_MLG] -LEGENDE CARTE - -[MAP_LEG] -LEGENDE : - -[LG_01] -Position du joueur - -[LG_13] -Ammu-Nation - -[LG_16] -Planque - -[LG_22] -Pay 'n' Spray - -[LG_23] -M. Benz - -[LG_25] -Téléphone - -[LG_26] -Station de radio Wildstyle - -[LG_27] -Station de radio Flash FM - -[LG_28] -Station de radio KChat - -[LG_29] -Station de radio Fever 105 - -[LG_30] -Station de radio VROck - -[LG_32] -Station de radio Espantoso - -[LG_33] -Station de radio Emotion 98.3 - -[LG_34] -Station de radio Wave 103 - -[LG_35] -Destination - -[LG_37] -Club de striptease - -[LG_38] -8-Ball - -[LG_39] -Confessionnal - -[LG_40] -Ma Cipriani - -[LG_41] -Donald Love - -[LG_42] -J.D. O'Toole - -[LG_43] -Salvatore Leone - -[LG_44] -Maria - -[LG_45] -McAffrey - -[LG_46] -Toshiko Kasen - -[LG_47] -Vincenzo Cilli - -[LG_48] -Atelier - -[LG_49] -Magasin de fringues - -[LG_50] -Phil Cassidy - -[LG_51] -Menace - -[LG_52] -Ami - -[LG_53] -A récupérer - -[LG_54] -Cible du joueur - -[FEO_CON] -Config. commandes - -[FEO_AUD] -Config. sons - -[FEO_DIS] -Config. affichage - -[FEO_LAN] -Config. langue - -[FEO_PLA] -Config. joueur - -[FEB_PMB] -Briefings mission préc. : - -[FEC_NA] -ND - -[FEC_CWL] -Parcourir armes gauche - -[FEC_CWR] -Parcourir armes droite - -[FEC_CW] -Parcourir armes - -[FEC_CT] -Parcourir cibles - -[FEC_TAR] -Viser - -[FEC_MOV] -Se déplacer - -[FEC_CAM] -Modes caméra - -[FEC_PAU] -Pause - -[FEC_ENV] -Monter dans véhicule - -[FEC_JUM] -Sauter - -[FEC_ATT] -Attaquer/Tirer - -[FEC_RUN] -Courir - -[FEC_FPC] -Regarder - -[FEC_LL] -Regarder à gauche - -[FEC_LB1] -Regarder - -[FEC_LB2] -derrière - -[FEC_LB] -Regarder derrière - -[FEC_LR] -Regarder à droite - -[FEC_HOR] -Klaxon - -[FEC_VES] -Commandes véhicule - -[FEC_RSC] -Stations de radio - -[FEC_BRA] -Frein/marche arrière - -[FEC_HAB] -Frein à main - -[FEC_CAW] -Arme voiture - -[FEC_ACC] -Accélérateur - -[FEC_SMT] -Mission spéciale - -[FEC_CCF] -CONFIGURATION : - -[FEC_CF1] -CONFIG. 1 - -[FEC_CF2] -CONFIG. 2 - -[FEC_CF3] -CONFIG. 3 - -[FEC_CF4] -CONFIG. 4 - -[FEC_CDP] -TYPE : - -[FEC_ONF] -A PIED - -[FEC_INC] -EN VOITURE - -[FEC_VIB] -VIBRATION : - -[FEC_ILU] -INVERSER VUE : - -[FEC_SWP] -DEPLACEMENTS DU JOUEUR : - -[FEC_AS] -pad analogique - -[FEC_DP] -touches directionnelles - -[FEA_SFX] -EFFETS SONORES : - -[FEA_OUT] -Sortie audio : - -[FEA_ST] -Stéréo - -[FEA_MNO] -Mono - -[FEA_CTD] -Attention ! Cette fonction requiert un matériel compatible DTS. Continuer ? - -[FEA_DTS] -DTS - -[FEA_RSS] -STATION DE RADIO : - -[FEA_NON] -RADIO ETEINTE - -[FED_BRI] -LUMINOSITE : - -[FED_RDR] -MODE RADAR : - -[FED_HUD] -MODE ATH : - -[FED_RDM] -CARTE & SPOTS - -[FED_RDB] -SPOTS UNIQ. - -[FEL_ENG] -ANGLAIS - -[FEL_FRE] -FRANCAIS - -[FEL_GER] -ALLEMAND - -[FEL_ITA] -ITALIEN - -[FEL_SPA] -ESPAGNOL - -[FEM_MCM] -Menu carte mémoire - -[FEM_RMC] -Détecter carte mémoire dans la fente pour MEMORY CARD N°1 - -[FEM_TFM] -Tester formatage carte mémoire dans la fente pour MEMORY CARD N°1 - -[FEM_TUM] -Tester déformatage carte mémoire dans la fente pour MEMORY CARD N°1 - -[FEM_CRD] -Créer dossier racine - -[FEM_CLI] -Créer et charger icones - -[FEM_FFF] -Remplir premier fichier - -[FEM_SOG] -Sauvegarder le jeu uniquement - -[FEM_CES] -Vérifier chaque sauvegarde 0kB4 - -[FEM_STG] -Sauvegarder la partie - -[FEM_STS] -Sauvegarder la partie sous le nom GTA3 - -[FEM_CPD] -Créer dossier protégé contre les copies - -[FEM_MC2] -Menu carte mémoire 2 - -[FEM_TS] -Tester sauvegarde : - -[FEM_TL] -Tester chargement : - -[FEM_TD] -Tester effacement : - -[FEM_SL0] -Emplacement 0 - -[FEM_SL1] -Sauvegarde 1 absente - -[FEM_SL2] -Sauvegarde 2 absente - -[FEM_SL3] -Sauvegarde 3 absente - -[FEM_SL4] -Sauvegarde 4 absente - -[FEM_SL5] -Sauvegarde 5 absente - -[FEM_SL6] -Sauvegarde 6 absente - -[FEM_SL7] -Sauvegarde 7 absente - -[FES_LOA] -CHARGER PARTIE - -[ST_TIME] -Temps de jeu actuel - -[ST_OVTI] -Temps de jeu total - -[NUMSHV] -Nombre de sauvegardes - -[PL_STAT] -Stats joueur - -[PE_WAST] -Personnes éliminées par toi - -[PE_WSOT] -Personnes éliminées par d'autres - -[CAR_EXP] -Caisses explosées - -[BOA_EXP] -Bateaux explosés - -[TM_BUST] -Arrestations - -[M_WASTE] -Civils éliminés - -[F_WASTE] -Civiles éliminées - -[PIG_WST] -Flics éliminés - -[GNG_WST] -Gangsters éliminés - -[MED_WST] -Ambulanciers éliminés - -[FIRE_WS] -Pompiers éliminés - -[DED_CRI] -Criminels éliminés - -[DED_DED] -SDF éliminés - -[DED_HOK] -Putes éliminées - -[HEL_DST] -Hélicos détruits - -[PER_COM] -Pourcentage accompli - -[KGS_EXP] -Explosifs utilisés (kg) - -[ACCURA] -Précision - -[CAR_CRU] -Caisses broyées - -[HED_EX] -Têtes explosées - -[ST_HEAD] -Tirs en pleine tête - -[BUL_FIR] -Balles tirées - -[BUL_HIT] -Tirs réussis - -[SPRAYIN] -Véhicules repeints - -[TM_DED] -Visites à l'hosto - -[ST_GANG] -Gang le moins apprécié - -[ST_GNG1] -Leone - -[ST_GNG2] -Triades - -[ST_GNG3] -Diablos - -[ST_GNG4] -Yakuzas - -[ST_GNG5] -Yardies - -[ST_GNG6] -Colombiens - -[ST_GNG7] -Hoods - -[ST_GNG8] -Forelli - -[ST_GNG9] -Sindacco - -[DAYSPS] -Jours passés dans le jeu - -[MMRAIN] -Pluie tombée (mm) - -[ST_STAR] -Etoiles de recherche obtenues - -[ST_STGN] -Etoiles de recherche évitées - -[TOT_DIS] -Total distance parcourue (miles) - -[TOTDISM] -Total distance parcourue (m) - -[DISTBIK] -Dist. parcourue en moto (miles) - -[DISTBIM] -Distance parcourue en moto (m) - -[DISTHEL] -Dist. parcourue en hélico (miles) - -[DISTHEM] -Dist. parcourue en hélico (m) - -[DISTBOA] -Dist. parcourue en bateau (miles) - -[DISTBOM] -Distance parcourue en bateau (m) - -[ST_WHEE] -Tps max. sur roue arrière (s) - -[ST_STOP] -Tps max. sur roue avant (s) - -[ST_2WHE] -Tps max. sur 2 roues (s) - -[ST_WHED] -Dist. max. sur roue arrière (m) - -[ST_STOD] -Dist. max. sur roue avant (m) - -[ST_2WHD] -Dist. max. sur 2 roues (m) - -[ST_FAPD] -Dist. max. vol plané (m) - -[FEST_HV] -Mission Autodéfense (niveau max.) - -[FIRELVL] -Mission Pompiers (niveau max.) - -[ST_ASSI] -Contrats assassinat remplis - -[ST_FTIM] -Heures de vol - -[ST_WEAP] -Budget armement - -[ST_PROP] -Budget immobilier - -[ST_DAMA] -Propriétés détruites - -[ST_AUTO] -Budget réparation et peinture véhicules - -[MXCARD] -Distance max. de saut de taré (pd) - -[MXCARJ] -Hauteur max. de saut de taré (pd) - -[MXCARDM] -Distance max. de saut de taré (m) - -[MXCARJM] -Hauteur max. de saut de taré (m) - -[MXFLIP] -Saltos max. en saut de taré - -[MXJUMP] -Rotations max. en saut de taré - -[FST_MFR] -Station de radio préférée - -[FST_LFR] -Station de radio la moins écoutée - -[BSTSTU] -Meilleure cascade de taré jusqu'ici : - -[INSTUN] -Cascade de taré - -[PRINST] -Cascade de taré parfaite - -[DBINST] -Double cascade de taré - -[DBPINS] -Double cascade de taré parfaite - -[TRINST] -Triple cascade de taré - -[PRTRST] -Triple cascade de taré parfaite - -[QUINST] -Quadruple cascade de taré - -[PQUINS] -Quadruple cascade de taré parfaite - -[NOSTUC] -Aucune cascade de taré réalisée - -[NOUNIF] -Sauts uniques effectués - -[NOUNGM] -Total sauts uniques - -[NMISON] -Missions tentées - -[NMMISP] -Missions réussies - -[PASDRO] -Passagers déposés - -[MONTAX] -Cash gagné en taxi - -[CARSLD] -Voitures vendues - -[MONCAR] -Cash gagné en vendant des voitures - -[BIKESLD] -Motos vendues - -[MONBIKE] -Cash gagné en vendant des motos - -[CARSEXP] -Caisses trouvées pour Love Media - -[SLTVLVL] -Mission Slash TV (niveau max.) - -[SLTVKIL] -Adversaires tués (Slash TV) - -[MONTRS] -Cash gagné en ramassant les ordures - -[HTMKLD] -Assassins tués - -[GDAMSP] -Missions Avenging Angel réussies - -[HGAJD] -Total justice rendue (Avenging Angel) - -[BNDRACE] -Courses RC - -[FSTTRT] -Tps restant max. sur Wong Side of the Tracks - -[HGHTRC] -Cash max. sur Wong Side of the Tracks - -[FSTHRT] -Meilleur tps course hélico - -[BHLPOS] -Meilleure position course hélico - -[TMSOUT] -Changements de fringues - -[BSRPS0] -Low Rider Rumble - -[BSRPS1] -Deimos Dash - -[BSRPS2] -Wi-Cheetah Run - -[BSRPS3] -Red Light Racing - -[BSRPS4] -Torrington TT - -[BSRPS5] -Gangsta GP - -[DBIKE0] -Course 1 - -[DBIKE1] -Course 2 - -[DBIKE2] -Course 3 - -[DBIKE3] -Course 4 - -[DBIKE4] -Course 5 - -[DBIKE5] -Course 6 - -[DBIKE6] -Course 7 - -[DBIKE7] -Course 8 - -[DBIKE8] -Course 9 - -[DBIKE9] -Course 10 - -[DBIKEHE] -Bumps & Grinds - -[DBIKEBP] -Meilleure position - -[DBIKEFL] -Meil. tps au tour - -[DBIKEFT] -Meilleur temps - -[ST_PHOT] -Photos prises - -[ST_PIZZ] -Pizzas livrées - -[ST_NOOD] -Nouilles livrées - -[MO_TOUR] -Cash gagné avec les touristes - -[TA_TOUR] -Touristes emmenés sur lieux touristiques - -[SC_SCRA] -Meill. score Scrapyard Challenge - -[SC_9MM] -Meill. score 9mm Mayhem - -[SC_SCOO] -Meill. score Scooter Shooter - -[DAYPLC] -Dépenses quotidiennes police - -[SEAGULL] -Mouettes abattues - -[CRIMRA] -TAUX DE CRIMINALITE - -[CHASE] -Attention média max. - -[CHASE1] -Ignoré - -[CHASE2] -Ennuyeux - -[CHASE3] -Vague intérêt - -[CHASE4] -Journal local Page 7 - -[CHASE5] -Une du journal local - -[CHASE8] -Chaîne locale 3h - -[CHASE9] -Infos chaîne locale - -[CHASE10] -Direct sur chaîne locale - -[CHASE11] -UFA Today Page 12 - -[CHASE12] -UFA Today Page 4 - -[CHASE13] -Photo dans UFA Today - -[CHASE14] -Chaîne nationale 4h - -[CHASE15] -Infos chaîne nationale - -[CHASE16] -Direct sur chaîne nationale - -[CHASE17] -Infos internationales - -[CHASE18] -Crise nationale - -[CHASE19] -Crise internationale - -[CHASE20] -Evénement mondial - -[CHASE21] -Légende vivante - -[WHEEL01] -~w~BONUS 2 ROUES : ~1~$ Distance : ~1~,~1~m Temps : ~1~ secondes - -[WHEEL02] -~w~BONUS 2 ROUES : ~1~$ Distance : ~1~ pieds Temps : ~1~ secondes - -[WHEEL06] -~w~BONUS ROUE ARRIERE : ~1~$ Distance : ~1~,~1~m Temps : ~1~ secondes - -[WHEEL07] -~w~BONUS ROUE ARRIERE : ~1~$ Distance : ~1~ pieds Temps : ~1~ secondes - -[WHEEL11] -~w~BONUS ROUE AVANT : ~1~$ Distance : ~1~,~1~m Temps : ~1~ secondes - -[WHEEL12] -~w~BONUS ROUE AVANT : ~1~$ Distance : ~1~ pieds Temps : ~1~ secondes - -[PREBRF] -Briefings préc. - -[CNTLS] -Commandes - -[MUSMEN] -Musique/Effets - -[GAMSET] -Paramètres - -[LANGUA] -Langue - -[DSPLAY] -Affichage - -[DEBUGM] -Menu Debug - -[QUITOP] -Quitter options - -[CONTRL] -Configuration commandes - -[SET1EN] -Config. 1 activée - -[SET1] -Config. 1 - -[SET2EN] -Config. 2 activée - -[SET2] -Config. 2 - -[SET3EN] -Config. 3 activée - -[SET3] -Config. 3 - -[SET4EN] -Config. 4 activée - -[SET4] -Config. 4 - -[GOBACK] -Retour - -[SOUND] -SONS - -[MUSVOL] -Musique - -[SFXVOL] -Effets sonores - -[SCROPT] -ECRAN - -[CTRSCR] -Centrer écran - -[SCRFOR] -Format écran - -[GMSVLQ] -SAUVEGARDER-CHARGER-QUITTER - -[GMREST] -Recommencer - -[GMLOAD] -Charger - -[GMSAVE] -Sauvegarder - -[NOGMSV] -Sauvegarde depuis ta planque uniq. - -[DLFILE] -Supprimer fichiers Grand Theft Auto - -[CHFILE] -CHOISIR FICHIER A CHARGER - -[CHFIDL] -CHOISIR FICHIER A SUPPRIMER - -[SVCONF] -CONFIR. SAUVEGARDE - -[SVFNAM] -Ton fichier sauvegardé s'appelle - -[LANGSL] -CHOIX DE LA LANGUE - -[ENGLIS] -Anglais - -[GERMAN] -Allemand - -[ITALIA] -Italien - -[FRENCH] -Français - -[SPAIN] -Espagnol - -[GORLEV] -Niveau gore - -[PRVMEN] -Briefings précédents - -[PUSAVE] -Sauvegarder la partie uniq. - -[CNTSAV] -Sauvegarde impossible. Mission en cours. - -[CNCSAV] -Sauvegarde impossible. T'es en caisse. - -[CRMGSV] -Créer répertoire protégé contre la copie - -[MGSVCN] -Répertoire créé - -[MGSVNC] -Répertoire non créé - -[YES] -Oui - -[NO] -Non - -[X] -x - -[LAST] -Dernier message. STAUNTON COURSE 2 - -[GS_STYL] -STYLE DE JEU : - -[GS_FFAL] -CHACUN POUR SOI - -[GS_LOC] -ZONE DE JEU : - -[GS_SLMT] -LIMITE SCORE : - -[GS_KLMT] -LIMITE VICTIMES : - -[GS_TLMT] -LIMITE TEMPS : - -[GS_ULMT] -SANS LIMITE - -[GS_PRUP] -BONUS : - -[GS_RACE] -COURSE : - -[GS_LAPS] -TOURS : - -[GS_OK] -OK - -[FEH_MP] -MULTIJOUEUR - -[FEMP_J] -Rejoindre - -[FEMP_CS] -PERSO : - -[FEMP_PS] -PARAMETRES JOUEUR - -[FEMP_GS] -CHOIX PARTIE - -[FEMP_NG] -NOUVELLE PARTIE - -[SVRLIST] -LISTE HOTES - -[SVRINFO] -INFOS HOTE - -[SVRNAME] -NOM : - -[NO_SVRS] -RECHERCHE D'HOTES - -[NO_PLRS] -RECHERCHE DE JOUEURS - -[NO_NAME] -PAS DE NOM - -[NO_WIFI] -Pour jouer en multijoueur, il faut activer l'interrupteur WLAN. - -[FEMP_SG] -LANCER - -[FEMP_S] -Commencer - -[FEMP_WS] -En attente du feu vert de l'hôte... - -[SVRLOST] -La communication avec l'hôte a été perdue. - -[NOSVRS] -Hôte introuvable. - -[MP_WARN] -Commencer une partie multijoueur annulera tous progrès depuis la dernière sauvegarde. - -[FEDS_XB] -Sélectionner - -[FEDS_TB] -Retour - -[FEDS_ST] -touche START (mise en marche) : REPRENDRE - -[FEST_OO] -sur - -[FED_SUB] -SOUS-TITRES : - -[FEC_TUC] -Contrôle tourelle - -[FEC_SM3] -Mission spéciale (touche R3) - -[FEC_RS3] -Stations de radio (touche L3) - -[FEC_HO3] -Klaxon (touche L3) - -[FIRST] -~g~1er - -[SECOND] -~g~2e - -[THIRD] -~g~3e - -[FOURTH] -~g~4e - -[NOCONTE] -Veuillez connecter une manette analogique (DUALSHOCK®) ou une manette analogique (DUALSHOCK®2) dans le port de manette N°1 pour continuer. - -[WRCONT] -La manette connectée au port de manette N°1 n'est pas compatible. GTA: Liberty City Stories nécessite une manette analogique (DUALSHOCK®) ou une manette analogique (DUALSHOCK®2). - -[WRCONTE] -La manette connectée au port de manette N°1 n'est pas compatible. GTA: Liberty City Stories nécessite une manette analogique (DUALSHOCK®) ou une manette analogique (DUALSHOCK®2). - -[WRONGCD] -Disque incorrect. Insérer le disque de GTA:Liberty City Stories. - -[NOCD] -Le compartiment à disque est vide. Insérer le disque de GTA:Liberty City Stories. - -[OPENCD] -Le compartiment à disque est ouvert. Fermer le compartiment à disque. - -[RESTART] -Lancement d'une nouvelle partie. - -[GA_3] -~w~100$ la nouvelle peinture ! - -[GA_1A] -~w~Reviens quand tu seras moins occupé... - -[AWAY] -~r~Il s'est tiré ! - -[GA_6B] -~w~Gare-toi, amorce la bombe avec~h~ ~k~ ~PDFW~ ~w~et TIRE-TOI ! - -[GA_7B] -~w~Appuie sur~h~ ~k~ ~PDFW~~w~ pour amorcer la bombe. Elle explosera quand le moteur démarrera. - -[FESZ_CA] -Annuler - -[FESZ_QU] -Quitter - -[FESZ_L1] -Sauvegarde réussie. - -[FESZ_L2] -Nom de ta sauvegarde : - -[FESZ_OK] -OK - -[FES_LGA] -CHARGER PARTIE - -[FES_DGA] -SUPPRIMER SAUVEGARDE - -[FES_NGA] -NOUVELLE PARTIE - -[FES_CAN] -Annuler - -[FESZ_QL] -Toute progression non sauvegardée pour la partie en cours sera perdue. Charger ? - -[FESZ_QD] -Supprimer cette sauvegarde ? - -[FESZ_QO] -Ecraser cette sauvegarde ? - -[FESZ_QR] -Lancer une nouvelle partie ? Toute progression depuis la dernière sauvegarde sera perdue. Continuer ? - -[FESZ_QS] -SAUVEGARDER ? - -[T4X4_2A] -~g~T'as ~y~2 minutes~g~ pour franchir ~y~12~g~ points de passage !~n~ ~g~Tu peux les franchir dans ~y~N'IMPORTE QUEL ORDRE. - -[T4X4_2B] -~1~ sur 12 ! - -[T4X4_2C] -~y~FRANCHIS~g~ le premier point de passage pour enclencher le chrono. ~g~Chaque point de passage te donne ~y~10 SECONDES~g~. - -[T4X4_F] -~r~Tu t'es planté ! Pauvre naze ! - -[UPSIDE] -~r~T'as bousillé ta caisse ! +[BLISTAC] +Blista Compact [FEST_DF] Dist. parcourue à pied (miles) [FEST_DC] -Dist. parcourue en caisse (miles) +Dist. parcourue en voiture (miles) [FESTDFM] Distance parcourue à pied (m) [FESTDCM] -Distance parcourue en caisse (m) +Distance parcourue en voiture (m) + +[TOT_DIS] +Distance totale parcourue (miles) + +[TOTDISM] +Distance totale parcourue (m) + +[DISTHEL] +Dist. parcourue en hélicoptère (miles) + +[DISTHEM] +Dist. parcourue en hélicoptère (m) + +[DISTBOA] +Dist. parcourue en bateau (miles) + +[DISTBOM] +Dist. parcourue en bateau (m) [FEST_LS] -Personnes sauvées (Ambulance) +Personnes secourues en ambulance [FEST_CC] -Criminels tués (Autodéfense) +Criminels tués lors de la mission d'autodéfense [FEST_FE] -Incendies éteints - -[FEST_LF] -Plus long vol en Dodo - -[FEST_BD] -Meil. tps désamorçage +Nombre total de feux éteints [FEST_RP] Rodéos réussis -[FEST_CN] -Tps max. restant "Karmageddon" - -[FEST_TR] -Victimes max. "RC Triad Take-Down" - [FEST_MP] Missions réussies +[FEST_BB] +Les fous du volant : + [FEST_H0] -Points de passage max. +Nombre maximum de points de passage [FEST_GC] -Caisses de gang bousillées : +Nombre total de voitures de gang : + +[FEST_H1] +Destruction de diablo + +[FEST_H2] +Massacre de la Mafia + +[FEST_H3] +Le désastre du casino + +[FEST_H4] +Le destructeur de Rumpo [USJ] -~w~BONUS POUR CASCADE UNIQUE ! - -[USJ_FAL] -~w~CASCADE UNIQUE RATEE ! - -[HM1_1] -~g~Bute 20 Purple Nines en 2 minutes 30 secondes. - -[KM1_8A] -Appuie sur~h~ ~k~ ~PDFW~ ~w~pour ~h~amorcer la bombe~w~ et tire-toi ! - -[KM1_8D] -Appuie sur~h~ ~k~ ~PDFW~ ~w~pour ~h~amorcer la bombe~w~ et tire-toi ! +BONUS POUR CASCADE UNIQUE! [RATNG1] -CITOYEN HONNETE +Citoyen honnête [RATNG2] -QUIDAM +Quidam [RATNG3] -EBOUEUR +Eboueur [RATNG4] -VOLEUR A L'ETALAGE +Voleur à l'étalage [RATNG5] -VANDALE +Vandale [RATNG6] -ESCROC +Escroc [RATNG7] -PICKPOCKET +Pickpocket [RATNG8] -CLEPTO +Cleptomane [RATNG9] -MOUCHARD +Mouchard [RATNG10] -RAT +Rat + +[RATNG11] +Sangsue [RATNG12] -ROI DE L'ARNAQUE +Le roi de l'arnaque [RATNG13] -AIGREFIN +Aigrefin [RATNG14] -GRIPPE-SOU +Grippe-sou [RATNG15] -CRAPULE +Crapule [RATNG16] -RASCAL +Rascal [RATNG17] -RACAILLE +Racaille [RATNG18] -GARNEMENT +Garnement [RATNG19] -VAURIEN +Vaurien [RATNG20] -HORS-LA-LOI +Hors-la-loi [RATNG21] -VOYOU +Voyou [RATNG22] -LACHE +Lâche [RATNG23] -GORILLE SA +Idiot SA [RATNG24] -GORILLE +Idiot [RATNG25] -RECIDIVISTE +Récidiviste [RATNG26] -EX-TAULARD +Ancien taulard [RATNG27] -CRIMINEL +Criminel [RATNG28] -CONVOYEUR +Clochard [RATNG29] -CERVEAU +Sage [RATNG30] -CHAUFFEUR +Pilote [RATNG31] -GROS BRAS +Gros bras [RATNG32] -TUEUR A GAGES +Tueur à gages [RATNG33] -CHASSEUR DE TETE +Chasseur de tête [RATNG34] -FORCE DE L'ORDRE +Force de l'ordre [RATNG35] -RONIN +Ronin [RATNG36] -MAGOUILLEUR +Magouilleur [RATNG37] -TUEUR +Tueur [RATNG38] -ASSOCIE +Associé [RATNG39] -BOUCHER +Boucher [RATNG40] -NETTOYEUR +Nettoyeur [RATNG41] -ASSASSIN +Assassin [RATNG42] -CONSEILLER +Conseiller [RATNG43] -AUTODIDACTE +Autodidacte [RATNG44] -BRAS DROIT +Bras droit [RATNG45] -BOURREAU +Exécutant [RATNG46] -LIEUTENANT +Lieutenant [RATNG47] -SOUS-CHEF +Sous-chef [RATNG48] -CAPO +Capo [RATNG49] -PATRON +Patron [RATNG50] -CAID +Noops [RATNG51] -DON +Don [RATNG52] -PARRAIN - -[TRAIN_1] -Kurowski Station - -[TRAIN_2] -Rothwell Station - -[TRAIN_3] -Baillie Station - -[SUBWAY1] -Portland Station - -[SUBWAY2] -Rockford Station - -[SUBWAY3] -Staunton South Station - -[SUBWAY4] -Shoreside Terminal - -[DETON] -EXPLOSION - -[RCBOMB1] -RC Triad Take-Down - -[RECORD] -~w~Nouveau record : ~1~ victimes ! - -[NRECORD] -~r~T'as pas battu l'ancien record de ~1~ victimes ! - -[RCBOMBF] -~r~T'es descendu de la camionnette ! - -[RC_2] -T'as 2 minutes pour faire exploser autant de caisses de la Mafia que possible. - -[RC_3] -T'as 2 minutes pour faire exploser autant de caisses des Yakuzas que possible. - -[RC_4] -T'as 2 minutes pour faire exploser autant de caisses des Yardies que possible. - -[RC_5] -T'as 2 minutes pour faire exploser autant de caisses des Hoods que possible. - -[RC_6] -T'as 2 minutes pour faire exploser autant de caisses du Cartel que possible. - -[RAMPKA] -~w~T'as besoin d'un véhicule pour ce rodéo. +Roi de la putain de ville [PAGE_00] . -[TURTXT] -Massacre mobile ! - -[TURPASS] -~w~Massacre réussi ! - -[TUR3D] -~w~Etat caisse - [WELCOME] -BIENVENUE +BIENVENUE A [TSCORE] -~w~TOTAL DES GAINS : ~1~$ +REVENUS : ~1~$ -[PBOAT_1] -Appuie sur~h~ ~k~ ~VEWEP~ ~w~pour tirer avec les canons du bateau. +[PBOAT_2] { reVC update } +Appuie sur la ~h~~k~~VEHICLE_FIREWEAPON~~w~ pour tirer avec les canons du bateau. -[HM2_1] -Utilise les RC buggies pour pulvériser les voitures blindées. Appuie sur~h~ ~k~ ~VEWEP~ ~w~pour les faire exploser. +[HJSTAT] +Distance : ~1~.~1~ m Hauteur : ~1~.~1~ m Saltos : ~1~ Rotation : ~1~_ -[HM2_1A] -Utilise les RC buggies pour pulvériser les voitures blindées. Appuie sur~h~ ~k~ ~VEWEP~ ~w~pour les faire exploser. +[HJSTATW] +Distance : ~1~.~1~ m Hauteur : ~1~.~1~ m Saltos : ~1~ Rotation : ~1~_ Et quelle belle réception! -[HM2_2] -~r~T'as pas pulvérisé toutes les voitures blindées. - -[HM2_6] -~g~Voiture blindée pulvérisée. - -[FESZ_UC] -ANNULER - -[FEDS_SM] -Touche L, Touche R-CHANGER MENU - -[FEDS_AS] -;=-CHANGER SELECTION - -[FEDSAS2] -<>-CHANGER SELECTION - -[FEDS_SS] -Touche L, Touche R-CHANGER SELECTION - -[FEDSSC1] -;-DEFILEMENT + RAPIDE - -[FEDSSC2] -=-ARRET DEFILEMENT - -[FES_LOF] -Echec du chargement. - -[FES_SLO] -SAUVEGARDE - -[FES_ISC] -CORROMPUE - -[FESZ_TI] -SAUV. Z1 - -[FESZ_SA] -Sauvegarder - -[MC_LDFL] -Echec du chargement ! - -[MC_NWRE] -La partie se relance... - -[BIFP_1] -~w~Aïe ! Distance vol plané : ~1~,~1~m - -[BIFP_1F] -~w~Aïe ! Distance vol plané : ~1~pieds - -[DIAB1_5] -TPS COURSE : - -[F_FAIL1] -~r~Fin de la mission Pompiers. - -[F_CANC] -~r~Mission Pompiers annulée ! - -[F_FAIL3] -~r~T'es à la bourre ! - -[F_FAIL4] -~r~Un des passagers est mort ! - -[F_FAIL5] -~r~Une des caisses est détruite ! - -[F_FAIL6] -~r~La caisse est bousillée ! - -[F_EXTIN] -Feux - -[A_CANC] -~r~Mission Ambulance annulée ! - -[ALEVEL] -~w~Mission Ambulance (niveau ~1~) - -[A_FAIL1] -~r~Fin de la mission Ambulance. +[ATUTOR] +Appuie sur la ~h~~k~~TOGGLE_SUBMISSIONS~~w~ pour activer ou désactiver les missions ambulance. [FEST_HA] -Mission Ambulance (niveau max.) - -[A_SAVES] -~w~PERSONNES SAUVEES : ~1~ +Mission ambulance, niveau maximum [C_KILLS] -~w~CRIMINELS BUTES : ~1~ +CRIMINELS TUES : ~1~ -[F_START] -~b~Véhicule en flammes ~w~repéré dans le secteur : ~a~. Va vite l'éteindre ! +[HJSTATF] +Distance : ~1~ ft Hauteur : ~1~ ft Saltos : ~1~ Rotation : ~1~_ -[F_STAR1] -~b~Véhicules en flammes ~w~repérés dans le secteur : ~a~. Va vite les éteindre ! +[HJSTAWF] +Distance : ~1~ ft Hauteur : ~1~ ft Saltos : ~1~ Rotation : ~1~_ Et quelle belle réception! -[F_REWAR] -~w~FEU ETEINT ! Niveau ~1~ terminé ! Récomp. : ~1~$ +[CRED001] +ROCKSTAR NORTH + +[CRD001A] +DIRECTEUR DU STUDIO + +[CRD001B] +ANDREW SEMPLE + +[CRED002] +PRODUCTEUR + +[CRD002A] +DIRECTEUR DU DEVELOPPEMENT + +[CRED003] +LESLIE BENZIES + +[CRED004] +CONCEPTEUR GRAPHIQUE + +[CRED005] +AARON GARBUT + +[CRED006] +DIRECTEURS TECHNIQUES + +[CRED007] +OBBE VERMEIJ + +[CRED008] +ADAM FOWLER + +[CRED010] +ANDREW DUTHIE + +[CRED011] +CRAIG FILSHIE + +[CRED012] +WILLIAM MILLS + +[CRED013] +CHRIS ROTHWELL + +[CRD013A] +IMRAN SARWAR + +[CRD013B] +JAMES WORRALL + +[CRD013C] +JOHN HAIME + +[CRED014] +ECRIT PAR + +[CRED015] +JAMES WORRALL + +[CRED016] +PAUL KUROWSKI + +[CRED017] +DAN HOUSER + +[CRED018] +CONCEPTEUR PRINCIPAL DES PERSONNAGES + +[CRD018A] +CONCEPTEUR DES PERSONNAGES + +[CRED019] +IAN MCQUE + +[CRD019A] +TOKS SOLARIN + +[CRD019B] +ALAN DAVIDSON + +[CRED020] +ANIMATEUR PRINCIPAL + +[CRED021] +ALEX HORTON + +[CRD022A] +ANIMATEURS + +[CRED022] +LEE MONTGOMERY + +[CRD022B] +DUNCAN SHIELDS + +[CRD022C] +GUS BRAID + +[CRED023] +CONCEPTEURS DES VEHICULES + +[CRD023A] +JOLYON ORME + +[CRD023B] +ALAN DUNCAN + +[CRD024A] +CONCEPTEUR PRINCIPAL DES VEHICULES + +[CRED024] +PAUL KUROWSKI + +[CRED025] +CONCEPTEURS DE CARTE + +[CRED026] +ADAM COCHRANE + +[CRED027] +NIK TAYLOR + +[CRED028] +GARY MCADAM + +[CRED029] +KEIRAN BAILLIE + +[CRED030] +ALISDAIR WOOD + +[CRED031] +ANDREW SOOSAY + +[CRD031A] +STEVEN MULHOLLAND + +[CRD031B] +WAYLAND STANDING + +[CRD031C] +CAMPBELL J. DICK + +[CRD031D] +CONCEPTEUR GRAPHIQUE + +[CRD031E] +STUART PETRI + +[CRED032] +PROGRAMMEUR PRINCIPAL + +[CRD032A] +PROGRAMMEURS + +[CRED033] +ALEXANDER ROGER + +[CRED034] +GRAEME WILLIAMSON + +[CRED035] +BARANE CHAN + +[CRED036] +DEREK PAYNE + +[CRED037] +GORDON YEOMAN + +[CRD037A] +ALAN CAMPBELL + +[CRD037B] +MARK HANLON + +[CRD037C] +ANDRZEJ MADAJCZYK + +[CRED038] +PRODUCTEUR MUSIQUE PRINCIPAL + +[CRED039] +CRAIG CONNER + +[CRED040] +STUART ROSS + +[CRED041] +INGENIEUR AUDIO PRINCIPAL + +[CRED042] +ALLAN WALKER + +[CRD041A] +INGENIEUR DU SON + +[CRD041B] +AUDIO + +[CRD042A] +WILL MORTON + +[CRED043] +PROGRAMMEUR AUDIO + +[CRED044] +RAYMOND USHER + +[CRED045] +RESPONSABLE DES TESTS + +[CRED046] +CRAIG ARBUTHNOTT + +[CRED047] +RESPONSABLE CQ + +[CRED048] +NEIL CORBETT + +[CRED049] +KEVIN WONG + +[CRED050] +CQ + +[CRED051] +DAVID BEDDOES + +[CRED052] +DAVID WATSON + +[CRED053] +BARRY CLARK + +[CRED054] +ROSS SPARROW + +[CRED055] +JAMES ALLAN + +[CRED056] +NEIL MEIKLE + +[CRD056A] +GEORGE WILLIAMSON + +[CRD056B] +MATT JONES + +[CRD056C] +ROB HARBOUR + +[CRD056D] +TOM WHITTAKER + +[CRED057] +ASSISTANCE TECHNIQUE PRINCIPALE + +[CRED058] +LORRAINE ROY + +[CRD057A] +ASSISTANCE TECHNIQUE + +[CRED059] +CHRISTINE CHALMERS + +[CRD060A] +SERVICES GENERAUX + +[CRD060B] +KIM GURNEY + +[CRD060C] +CASSIE OLIVER + +[CRED060] +ROCKSTAR NEW YORK + +[CRED061] +PRODUCTEUR EXECUTIF + +[CRED062] +SAM HOUSER + +[CRED063] +PRODUCTEUR + +[CRED064] +DAN HOUSER + +[CRED065] +VICE-PRESIDENT DU DEVELOPPEMENT + +[CRED066] +JAMIE KING + +[CRED067] +RESPONSABLE TECHNOLOGIE + +[CRED068] +GARY J. FOREMAN + +[CRED069] +PRODUCTEUR ASSOCIE + +[CRED070] +JEREMY POPE + +[CRD071A] +RESPONSABLE CONTROLE QUALITE + +[CRD072A] +JEFF ROSA + +[CRED071] +RESPONSABLE MUSIQUE + +[CRED072] +TERRY DONOVAN + +[CRED073] +EQUIPE DE PRODUCTION + +[CRED074] +TERRY DONOVAN + +[CRED075] +JENNIFER KOLBE + +[CRED076] +JENEFER GROSS + +[CRED077] +LAURA PATERSON + +[CRED078] +JEFF CASTANEDA + +[CRED079] +JERONIMO BARRERA + +[CRED080] +CARLY SLATER + +[CRED081] +JUNG KWAK + +[CRED082] +BRIAN WOOD + +[CRED083] +RENAUD SEBANNE + +[CRED084] +RICHARD KRUGER + +[CRD084A] +DANIEL EINZIG + +[CRD084B] +JACEN BURROWS + +[CRD084C] +LINN PR + +[CRD084D] +COUVERTURE + +[CRD084E] +STEPHEN BLISS + +[CRED085] +KENT PAUL'S 80 NOSTALGIA ZONE + +[CRED086] +ECRIT PAR DAN HOUSER + +[CRD086A] +PRODUIT PAR ADAM TEDMAN + +[CRED087] +WWW.KENTPAUL.COM ET WWW.VICECITY.COM + +[CRED088] +CREES PAR + +[CRD088A] +ADAM TEDMAN + +[CRD088B] +DAVID YU + +[CRD088C] +JERRY LUNA + +[CRD088D] +STUART PETRI + +[CRD088E] +MICHAEL CARNEVALE + +[CRD088F] +GREG LAU + +[CRD088G] +FUTABA HAYASHI + +[CRED089] +RESPONSABLE CQ + +[CRED090] +CRAIG ARBUTHNOTT + +[CRED091] +ANALYSTE PRINCIPAL + +[CRED092] +ADAM DAVIDSON + +[CRD092A] +JOE HOWELL + +[CRD092B] +MARC FERNANDEZ + +[CRED093] +ANALYSTE DE JEU + +[CRED094] +RICHARD HUIE + +[CRED095] +EQUIPE DE TEST CHEZ ROCKSTAR + +[CRED096] +LANCE WILLIAMS + +[CRED097] +JOE GREENE + +[CRED098] +BRIAN PLANER + +[CRD098A] +ELIZABETH SATTERWHITE + +[CRD098B] +JAMEEL VEGA + +[CRD098C] +MIKE HONG + +[CRED099] +LEE CUMMINGS + +[CRED100] +HISTOIRE + +[CRED101] +JAMES WORRALL + +[CRED102] +DAN HOUSER + +[CRED103] +ADAM TEDMAN + +[CRED104] +PAUL YEATES + +[CRED105] +JENEFER GROSS + +[CRED106] +LAURA PATERSON + +[CRED107] +CINEMATIQUES + +[CRED108] +ECRITES PAR DAN HOUSER ET JAMES WORRALL + +[CRED109] +DIRECTION DE L'AUDIO PAR DAN HOUSER ET NAVID KHONSARI + +[CRED110] +PRODUCTION DE JAMIE KING + +[CRD110A] +CASTING : JAMIE KING, SEAN MACALUSO + +[CRED111] +DISTRIBUTION + +[CRD111A] +PERSONNAGES SECONDAIRES + +[CRED112] +TOMMY VERCETTI : RAY LIOTTA + +[CRED113] +KEN ROSENBERG : WILLIAN FICHTNER + +[CRED114] +SONNY FORELLI : TOM SIZEMORE + +[CRED115] +STEVE SCOTT : DENNIS HOPPER + +[CRED116] +AVERY CARRINGTON : BURT REYNOLDS + +[CRED117] +RICARDO DIAZ : LUIS GUZMAN + +[CRED118] +LANCE VANCE : PHILIP MICHAEL THOMAS + +[CRED119] +COLONEL JUAN CORTEZ : ROBERT DAVI + +[CRED120] +UMBERTO ROBINA : DANNY TREJO + +[CRED121] +PHIL CASSIDY : GARY BUSEY + +[CRED122] +MITCH BAKER : LEE MAJORS + +[CRED123] +MERCEDES CORTEZ : FAIRUZA BALK + +[CRED124] +KENT PAUL : DANNY DYER + +[CRED125] +JEZZ TORRENT : KEVIN MCKIDD + +[CRED126] +REGULATRICE TAXI : DEBORAH HARRY + +[CRED127] +CANDY SUXX : JENNA JAMESON + +[CRED128] +BJ SMITH : LAWRENCE TAYLOR + +[CRED129] +TATA POULET : YOUREE CLEOMILI HARRIS + +[CRED130] +FOURNISSEUR : ARMANDO RIESCO + +[CRED131] +COUGAR : BLAYNE PERRY + +[CRED132] +HILARY : CHARLES TUCKER + +[CRED133] +ALEX SHRUB, REPRESENTANT DU CONGRES : CHRIS LUCAS + +[CRED134] +LE VIEUX KELLY : GEORGE DICENZO + +[CRD134A] +CAM JONES : GREG SIMS + +[CRD134B] +PSYCHOPATHE : HUNTER PLATIN + +[CRD134C] +MAUDE, LA VENDEUSE DE GLACES : JANE GENNARO + +[CRD134D] +JETHRO : JOHN ZURHELLEN + +[CRD134E] +GONZALES : JORGE PUPO + +[CRD134F] +DWAYNE : NAVID KHONSARI + +[CRD134G] +DICK : PETER MCKAY + +[CRD134H] +MIKE, L'ACTEUR DE PORNO : ROBERT CIHRA + +[CRD134I] +PERCY : RUSSELL FOREMAN + +[CRED135] +CAPTURE DE MOUVEMENTS + +[CRED136] +ANIME PAR + +[CRD136A] +DIRECTION TECHNIQUE PAR ALEX HORTON + +[CRED137] +DIRIGE PAR + +[CRD137A] +DIRIGE PAR NAVID KHONSARI + +[CRED138] +PRODUIT PAR + +[CRD138A] +PRODUIT PAR JAMIE KING + +[CRD138B] +RENAUD SEBBANE + +[CRED139] +ENREGISTRE AUX PERSPECTIVE STUDIOS, BROOKLYN + +[CRED140] +ACTEURS POUR LA CAPTURE DE MOUVEMENTS + +[CRD140A] +BLAYNE PERRY + +[CRD140B] +JONATHON SALE + +[CRD140C] +CHARLES TUCKER + +[CRD140D] +EDDIE MARRERO + +[CRD140E] +WILLIAM MCCALL + +[CRD140F] +JORGE PUPO + +[CRD140G] +ROBERT JACKSON + +[CRD140H] +TARA RADCLIFFE + +[CRD140I] +JENIFER GAMBETESE + +[CRD140J] +KRIS ACHEVARRIA + +[CRD140K] +ALI ORDOUBADI + +[CRD140L] +KAHLEEM POOLE + +[CRED141] +DIALOGUES DES PIETONS + +[CRD141A] +ECRIT PAR DAN HOUSER, MARC FERNANDEZ, GILLIAN TELLING ET NAVID KHONSARI + +[CRD141B] +AVEC L'AIDE DE JEREMY POPE, LANCE WILLIAMS ET JENNY JEMISON + +[CRED142] +ECRITS PAR + +[CRD142A] +DAN HOUSER ET JAMES WORRALL + +[CRED143] +DIRIGE PAR DAN HOUSER, CRAIG CONNER, MARC FERNANDEZ ET ALLAN WALKER + +[CRED144] +PRODUITS PAR RENAUD SEBANNE + +[CRED145] +PIETONS + +[CRED146] +ADAM DAVIDSON, ADAM WATKINS, ALEJANDRO K. BROWN, ALEX ANTHONY SIOUKAS, ALEX GARCIA, + +[CRED147] +ALICE SALTZMAN, ALISON CIHRA, AMY SALIMA, AMY SALZMAN, ANDREA VIDELA, ANTHONY ATTI, + +[CRED148] +ANTHONY RIVERA, BIJAN SHAMS, BLAYNE PERRY, BRETT BISOGNO, BREYE MATA, BRIAN PANEN, + +[CRED149] +BROCK VODER, CAREY BERTINI, CHARISSE LAMBERT, CHRIS DIFAT, CHRIS REISENBERGER, + +[CRED150] +CHRISTOPHER BRODAY, CHRISTOPHER CARRO, CYNTHIA GREENE, DAMARIES LOPEZ, DAN LEE, + +[CRED151] +DAN SCHNEIDER, DAN TOYAMA, DAVID DEAN CHALTFIELD, JR., DAVID HARRISON, DAVID WILEY, + +[CRED152] +DEBORAH COLLINS, DEBRANDA CHANEY-GILES, DEMETRA KOUKOULAS, DENISE ROSADO, + +[CRED153] +DEVIN BENNETT, DEVIN WINTERBOTTOM, DORIS WOO, DOUGLAS HARRISON, DUNCAN COUTTS, + +[CRED154] +DUPE AJAYI, EDWIN AVELLANEDA, ELIZABETH HOWELL, ELIZABETH SATTERWHITE, ERIC NAGLE, + +[CRED155] +ESTEBAN KARPLUS, F. FONT, FUTABA HAYASHI, GENE HILGREEN, GERALD COSGROVE, + +[CRED156] +GERARD LUNA, GILLIAN TELLING, GREGG CARLUCCI, GREGORY CLERVOIX, GREGORY SCHWEIZER, + +[CRED157] +HADLEY TOMICKI, J. ROSSETT, JAMEEL VEGA, JASON JONES, JEFF ROSA, JENNIFER JEMISON, + +[CRED158] +JEREMY TAGGERT, JESSICA RIDER, JOSEPH GREENE,JOSEPH HOWELL, KATE DUKICH, + +[CRED159] +KEL O'NEILL, KEVIN HOPKINS, LADAWN JAMES, LANCE WILLIAMS, LAURA BUBBLES, + +[CRED160] +LAURA PATTERSON, LEE CUMMINGS, LETICIA L. YOUNG, LINDSAY KENNEDY, LISA ORITZ, + +[CRED161] +LORNA JORDAN, LUCIO AMADIO, MARCO FERNANDEZ, MARIKO TANAKA, MARLON MATTHEWS, + +[CRED162] +MARY TELLING, MASAYOSHI MITSUYAMA, MATTHEW CHUNG, MAX ALLSTADT, MAX BOGDANOV, + +[CRED163] +MELISSA ALVAREZ, MICHAEL MAY, MICHAEL ROTHSTEIN, MIGUEL VIDAL, MIKE FEDERLINE, + +[CRED164] +NATALIE DESCALZO, N'GAI MEMBERS, NICOLAS MALLO, NOELLE SADLER, NORBERT MORIVAN, + +[CRED165] +OSWALD GREENE, JR., PETER MCKAY, PETER APPEL, PRESTON SAVARESE, RAFAEL GONZALES, + +[CRED166] +RANDY JOHNSON, REY CONCEPCION, RICHARD KROGER, ROB TIBBS, ROBERT JACKSON, + +[CRED167] +ROBERT SCHULER, ROSS A. MCINTYRE, RUSSELL FOREMAN, RUTH NUNEZ, SALVADORE SUAZO, + +[CRED168] +SAM WHITE, SANTOS GONZALES, SCOTT SMITH, SEYMOUR FRAILMAN, SPELMAN BRAUMAN, + +[CRED169] +STEPHANIE TELLING, STEVE KNEZEVICH, STEVE ROBERT, SUMIKO YASUDA, SUSAN LEWIS, + +[CRED170] +SYLVIA COLACIOS, TOMOKO MIYAZAKI, TRON, VERDEL HALE, YVES MONDESIR, ZENO LEINFELDER, + +[CRED171] +DAVID BEDDOES, CHRISTINE CHALMERS, BARRY CLARK, NEIL CORBETT, KIM GURNEY, NEIL MEIKLE, + +[CRED172] +CASSIE OLIVER, LORRAINE ROY, DAVID WATSON, KEVIN WONG, WILL MORTON + +[CRED175] +ADAM DAVIDSON + +[CRED176] +LANCE WILLIAMS + +[CRED177] +NEIL MCCAFFREY + +[CRED178] +LAURA PATERSON + +[CRED179] +REY CONCEPCION + +[CRED180] +CHARLES HEROLD + +[CRED181] +ANDREW GREENWALD + +[CRED182] +JAMES MIELKE + +[CRED183] +PETER SUCIU + +[CRED184] +ALEX ODULIO + +[CRED185] +DON NKRUMAH + +[CRED186] +KENDALL PITTMAN + +[CRED187] +SAL SUAZO + +[CRED188] +EREK MATEO + +[CRED189] +CHRIS DIFATE + +[CRED190] +LEILA MILTON + +[CRED191] +DARREN ZOLTOWSKI + +[CRED192] +VIRGINIA SMITH + +[CRED193] +KEVIN CASSIN + +[CRED194] +JASON SHIGEMORI + +[CRED195] +KELLY KINSELLA + +[CRED196] +MOLLIE STICKNEY + +[CRED197] +STANTON SARJEANT + +[CRED198] +LAURA WALSH + +[CRED199] +MARK GARONE + +[CRED200] +JOANNA SLY + +[CRED201] +ELIZABETH HOWELL + +[CRED202] +ANA HERCULES + +[CRED203] +SHIRLEY IRICK + +[CRED204] +KASHONA FIELDS + +[CRED205] +JOEL M. LILJE + +[CRED206] +JOHN DIBENEDETTO + +[CRED207] +NANCY GILES + +[CRED208] +RYAN CROY + +[CRED209] +JENNIFER KOLBE + +[CRED210] +LIAM BURKE + +[CRED211] +SIGRID PREISSL + +[CRED212] +ANITA FITZSIMONS + +[CRED213] +PHILIPPA RASELLI + +[CRED214] +WIL QUESNEL + +[CRED215] +FALKO BURKERT + +[CRED216] +SARA SEWELL + +[CRED217] +STATIONS DE RADIO ET MUSIQUE + +[CRED218] +CONSULTANT EN MUSIQUE + +[CRD218A] +HEINZ HENN + +[CRD218B] +STUART ROSS + +[CRED219] +COORDINATEUR DE LA BANDE-SON + +[CRED220] +TERRY DONOVAN + +[CRED221] +PRODUCTEUR CHEZ ROCKSTAR GAMES + +[CRED222] +DAN HOUSER ET LAZLOW + +[CRED223] +PRODUCTEUR CHEZ ROCKSTAR NORTH + +[CRED224] +CRAIG CONNER + +[CRED225] +ALLAN WALKER + +[CRED226] +LAZLOW + +[CRED227] +DJ BANTER ET IMAGING + +[CRED228] +ECRIT PAR DAN HOUSER ET LAZLOW + +[CRED229] +FLASH FM + +[CRD229A] +TONI-MARIA CHAMBERS + +[CRD229B] +VOIX ET PRODUCTION : JEFF BERLIN + +[CRED230] +REMERCIEMENTS SPECIAUX A + +[CRED231] +TOMMY MOTTOLA, + +[CRED232] +MICHELLE ANTHONY, + +[CRED233] +STEVE BARNETT, + +[CRED234] +CHUCK FLECKENSTEIN, + +[CRED235] +RITA LIBERATOR + +[CRED236] +MARTIN ET CLAIRE LOGAN + +[CRED237] +SANDRA HUTTON + +[CRED238] +CHRISTINE DAVIDSON + +[CRED239] +ALAN, RED ET BIGFOOT + +[CRED240] +LE T + +[CRED241] +COLIN DONALD + +[CRED242] +KERRY STALLWOOD + +[CRED243] +ALAN MCGREGOR + +[CRED244] +CHRIS MORTON + +[CRED245] +EMIL BUSSE + +[CRED246] +EMILY BAILLIE + +[CRED247] +KEVIN ARCHIBALD + +[CRED248] +MORAG KERR + +[CRED249] +CATH WALKER + +[CRED250] +ISO BAR + +[CRED251] +WATERLINE + +[CRED252] +NEWS CAFE + +[CRD251A] +THE POND + +[CRD252A] +PIVO + +[CRED253] +BUDGET VIDEO RENTALS + +[CRED254] +LORNA'S SCOOTER + +[CRED255] +GARETH MURFIN + +[CRED256] +GRAPHISMES ADDITIONNELS + +[CRED257] +TONY PORTER + +[CRED258] +CRAIG MOORE + +[CRED259] +ANIMATION SYNCHRO LABIALE DES CINEMATIQUES + +[CRED260] +COSGROVE HALL FILMS + +[CRED261] +PRODUCTEUR : OWEN BALLHATCHET + +[CRED262] +ANIMATEUR SENIOR : JON TURNER + +[CRED263] +ANIMATEURS : RICHARD DRUMM + +[CRED264] +DAVE BROWN + +[CRED265] +MAIR THOMAS + +[CRED266] +PRASHANT PATEL + +[CRED267] +CONSULTANT TECHNOLOGIE AUDIO + +[CRED268] +RIK EDE POUR GAMESOUND LTD. + +[CRED269] +ASSISTANCE INTEGRATION DTS + +[CRED270] +TED LAVERTY POUR DTS + +[CRED271] +CHRIS GREER POUR DTS + +[CRED272] +JASON PAGE POUR SCEE + +[CRED273] +RECHERCHE ET ANALYSE + +[CRED274] +VROCK + +[CRED275] +DJ : LAZLOW + +[CRED276] +VOIX : JOE KELLY + +[CRED277] +PRODUCTION : JONATHAN HANST + +[CRED278] +ONDE 103 + +[CRED279] +DJ : ADAM FIRST-JAMIE CANFIELD + +[CRED280] +VOIX : JEN SWEENLEY + +[CRED281] +PRODUCTION : JONATHAN HANST + +[CRED282] +FEVER 105 + +[CRED283] +DJ : OLIVER 'LADYKILLER' BISCUIT-JULIUS DYSON + +[CRED284] +VOIX D'HOMME : ED McMANN + +[CRED285] +VOIX DE FEMME : SHWNEE SMITH + +[CRED286] +PRODUCTION : LISTEN KISTEN + +[CRED287] +EMOTION 98.3 + +[CRED288] +DJ : FERNANDO- FRANK CHAVEZ + +[CRED289] +VOIX : JEN SWEENLEY + +[CRED290] +PRODUCTION : JONATHAN HANST + +[CRED291] +RADIO ESPANTOSO + +[CRED292] +DJ : PEPE-TONY CHILRODES + +[CRED293] +WILDSTYLE + +[CRED294] +DJ : MISTER MAGIC + +[CRED295] +VOIX : FRANK SILVESTRO + +[CRED296] +PRODUCTION : LAZLOW + +[CRED297] +KCHAT + +[CRED298] +ECRIT PAR DAN HOUSER ET LAZLOW + +[CRED299] +PRODUIT ET EDITE PAR LAZLOW + +[CRED300] +DJ AMY SHECKENHAUSEN : LEYNA WEBER + +[CRED301] +JEZ TORRENT : KEVIN MCKIDD + +[CRED302] +MANDY : COLLEEN CORBETT + +[CRED303] +MICHELLE CARAPADIS : MARY BIRDSONG + +[CRED304] +MR.ZOO : CARL DOWLING + +[CRED305] +GETHSEMANEE : LYNN LIPTON + +[CRED306] +CLAUDE MAGINOT : JOHN MAUCERI + +[CRED307] +BJ SMITH : LAWRENCE TAYLOR + +[CRED308] +THOR : FRANK FAVA + +[CRED309] +INTERLOCUTEURS + +[CRED310] +COUZIN ED, JOSH CLARK, JASON BUHRMESTER, JUAN ALLER, WAYNE OLIVER, SUSAN LEWIS, GILLIAN TELLING, TOM MURRAY, MIKE FERRANTE SR., EMMANUEL GOLDSTEIN, DAN HOUSER, NICK MANDELOS, GERRY COSGROVE, MIKE PALERMO, PORKCHOP, KEITH BROADAS + +[CRED311] +LEWIS, GILLIAN TELLING, TOM MURRAY, MIKE FERRANTE SR., EMMANUEL GOLDSTEIN, + +[CRED312] +DAN HOUSER, NICK MANDELOS, GERRY COSGROVE, MIKE PALERMO, PORKCHOP, + +[CRED313] +KEITH BROADAS + +[CRED314] +VCPR + +[CRED315] +ECRIT PAR DAN HOUSER ET LAZLOW + +[CRED316] +PRODUIT PAR LAZLOW + +[CRED317] +MAURICE CHAVEZ : PHILLIP ANTHONY RODRIGUEZ + +[CRED318] +JONATHAN FREELOADER : PATRICK OLSEN + +[CRED319] +MICHELLE MONTANIUS : KELLY GUEST + +[CRED320] +ALEX SHRUB : CHRIS LUCAS + +[CRED321] +CALLUM CRAYSHAW : SEAN MODICA + +[CRED322] +JOHN F. HICKORY : LJ GANSEN + +[CRED323] +LE PASTEUR RICHARDS : DAVID GREEN + +[CRED324] +JAN BROWN : MAUREEN SILLIMAN + +[CRED325] +BARRY STARK : RENAUD SEBBANE + +[CRED326] +JENNY LOUISE CRAB : MARY BIRDSONG + +[CRED327] +KONSTANTINOS SMITH : KONSTANTINOS.COM + +[CRED328] +JEREMY ROBARD : PETER SILVESTRO + +[CRED329] +PUBLICITES RADIO + +[CRED330] +ECRITES PAR DAN HOUSER ET LAZLOW + +[CRED331] +PRODUITES PAR LAZLOW + +[CRED332] +JINGLES SUPPLEMENTAIRES PRODUITS PAR CRAIG CONNER + +[CRED333] +VOIX DES PUBLICITES : + +[CRED334] +ADAM DAVIDSON, ALEX ANTHONY, ALICE SALTZMAN, AMY SALZMAN, KATE DUKICH, + +[CRED335] +ARAN RONICLE, BARB JONES, BEN KRECH, BRIAN THOMAS, BROCK YODER, CHRIS + +[CRED336] +FERRANTE, CRAIG CONNER, DAVE RYAN, DAVID GREEN, DORIS WOO, DOUGLAS + +[CRED337] +HARRISON, ED MCMANN, FRANK CHAVEZ, FRANK FAVA, GENE HILGREEN, GREG + +[CRED338] +SCHWEIZER, HUNTER PLATIN, JAMES FERRANTE, JEFF BERLIN, JEFF ROSA, JOE KELLY, + +[CRED339] +JOHN MAUCERI, JOSH CLARK, JULIE WEMYSS, KEVIN STRALEY, KIM GURNEY, LANCE + +[CRED340] +WILLIAMS, LAURA PATERSON, LAZLOW, LISA ORTIZ, LORNA JORDAN, LUCIEN JONES, + +[CRED341] +MAUREEN SILLIMAN, MIKE FERRANTE JR., PETE GUSTIN, PETER SILVESTRO, RAFF + +[CRED342] +CROLLA, RANDY JOHNSON, RICHARD KRUGER, RON REEVE, SHELLEY MILLER, SKY, TJ ALLARD + +[CRD344A] +ENREGISTREMENTS AUX DIGITAL ARTS STUDIOS, + +[CRED344] +NYC, TRACK 9 STUDIOS, NYC, + +[CRED345] +WEDDINGTON MULTIMEDIA, LOS ANGELES, + +[CRD345A] +SYNC SOUND, NYC ET RADIO LAZLOW, LONG ISLAND. + +[CRED346] +MERCI A AXEL ERICSON ET WON LEE DE DIGITAL ARTS, PAUL VASQUEZ DETRACK 9 STUDIOS, JOHN BOWEN ET JOHN HASSLER DE SYNC SOUND. + +[CRED347] +MARK LLOYD + +[CRED348] +TIM BATES + +[CRED349] +KIT BROWN + +[CRED350] +ANDY MASON + +[CRED351] +PHIL DEANE + +[CRED352] +PHIL ALEXANDER + +[CRED353] +MATT HEWITT + +[CRED354] +DENBY GRACE + +[CRED355] +ANTOINE CABROL + +[CRED356] +JONATHAN STONES + +[CRED357] +MIKE BLACKBURN + +[CRED358] +TIM MCGAFF [CINCAM] Caméra cinématique -[FEDS_AM] -<>-CHANGER MENU +[RC4] +'RODEO DE RUMPO' -[KABOOM] -KABOUM ! - -[HEAD] -Head Radio - -[DBL_CLF] -Double Clef FM - -[FLASHB] -Flashback FM - -[RISE] -Rise FM - -[LIPS] -Lips 106 - -[CHAT] -Chatterbox FM - -[K_JAH] -K-Jah Radio - -[GAM_FM] -Game Radio FM - -[MSX_FM] -MSX FM +[LEGAL] +~g~Elimine toute menace criminelle! [GA_2] -~w~Nouveau moteur et nouvelle peinture : 100$ +Nouveau moteur et nouvelle peinture. Les flics ne te reconnaîtront plus! + +[HELP15] +Si tu es à pied, appuie sur la ~h~~k~~PED_LOOKBEHIND~~w~ pour ~h~regarder derrière~w~. Utilise le ~h~joystick analogique droit~w~ pour ~h~regarder autour~w~ de toi. + +[FEC_LB4] +Regarder derrière (touche R3) [PERPIC] -Paquets trouvés +Paquets cachés trouvés + +[CO_ONE] +Paquet caché ~1~ sur ~1~ [GA_21] -~w~Ce garage ne peut plus contenir de véhicules. +Impossible de garer plus de véhicules dans ce garage. [CHEAT1] -Code activé +Codes activés [CHEAT2] -Code arme +Code d'arme [CHEAT3] -Code santé +Code de santé [CHEAT4] -Code protection +Code d'armure [CHEAT5] -Code indice de recherche +Code d'indice de recherche [CHEAT6] -Code argent +Code d'argent [CHEAT7] -Code météo - -[FEDS_BA] -touche " - RETOUR - -[FED_WIS] -ECRAN LARGE : +Code de météo [USJ_ALL] -~w~T'AS REUSSI TOUTES LES CASCADES UNIQUES ! +TOUTES LES CASCADES ONT ETE ACCOMPLIES! [JAN] Jan @@ -3095,7 +4107,7 @@ Mai Jun [JUL] -Jul +Jui [AUG] Aoû @@ -3116,13996 +4128,10589 @@ Déc --:---:---- --:--:-- [BONUS] -~g~BONUS ~1~$ +~g~BONUS $~1~ -[TAXI_M] -'Taxi' +[HORN1] +Appuie sur la ~h~~k~~VEHICLE_HORN~ ~w~pour ~h~klaxonner. -[COP_M] -'Autodéfense' +[HORN2] +Appuie sur la ~h~~k~~VEHICLE_HORN~ ~w~pour ~h~klaxonner. -[FIRE_M] -'Pompiers' - -[AMBUL_M] -'Ambulance' - -[HJ_IS] -~w~BONUS CASCADE DE TARE : ~1~$ - -[HJ_PIS] -~w~BONUS CASCADE DE TARE PARFAITE : ~1~$ - -[HJ_DIS] -~w~BONUS DOUBLE CASCADE DE TARE : ~1~$ - -[HJ_PDIS] -~w~BONUS DOUBLE CASCADE DE TARE PARFAITE : ~1~$ - -[HJ_TIS] -~w~BONUS TRIPLE CASCADE DE TARE : ~1~$ - -[HJ_PTIS] -~w~BONUS TRIPLE CASCADE DE TARE PARFAITE : ~1~$ - -[HJ_QIS] -~w~BONUS QUADRUPLE CASCADE DE TARE : ~1~$ - -[HJ_PQIS] -~w~BONUS QUADRUPLE CASCADE DE TARE PARFAITE : ~1~$ - -[HJBAD] -~w~Un atterrissage de naze ! T'as failli gagné ~1~$ ! - -[HJDOWN] -Etat atterrissage : ~1~ - -[FESZ_LS] -Chargement réussi. - -[MRACE08] -~w~Reviens quand t'auras un véhicule ! - -[MRACE01] -~w~Attends les concurrents et klaxonne pour donner le départ de la course ! - -[MRACE02] -~w~La course commencera quand le premier joueur klaxonnera. - -[MRACE05] -~r~T'AS PERDU... - -[MRACE07] -~r~T'es mort, espèce de loser ! - -[MRACE06] -~r~T'abandonnes ? Sale flipette ! - -[MRACE09] -~w~Reprends la course ! - -[MRACE10] -~w~T'as gagné (mais t'étais tout seul)... - -[MRACEPO] -Position - -[MRCPU03] -TU LEUR AS MIS LE FEU ! - -[MRCPU04] -T'ES EN TRAIN DE CRAMER ! ( ------- TRASHMASTER ODD-JOB MISSION ------- ) - -[TRASH1] -Eboueurs - -[TRASH1A] -~w~Vide les bennes et apporte les ordures à la décharge. - -[TRASH1C] -~w~Le chrono s'enclenche quand tu vides une benne. Vide les bennes dans N'IMPORTE QUEL ORDRE. - -[TRASH1G] -~r~Trop dur pour toi ? Mauviette ! - -[TRASH1H] -~r~T'as plus de temps ! - -[TRASH1J] -~r~Tu t'es trop éloigné de ton itinéraire ! - -[TRASH1K] -~w~Va vider les ~g~bennes ! - -[TRASH1L] -~w~Retourne à la ~y~décharge ! - -[TRASH1M] -~w~Ordures ramassées ! +~1~ secondes - -[PCJINFO] -~w~Franchis les 25 ~y~points de passage~w~ en ~1~ secondes. - -[PCJFAIL] -~r~T'as pas battu le record de ~1~ secondes ! - -[PCJPROM] -~w~T'as ~1~ secondes pour remonter sur ton ~b~deux-roues. - -[PCJPRO1] -~w~T'as ~1~ seconde pour remonter sur ton ~b~deux-roues. - -[PCJDEST] -~r~Deux-roues détruit ! - -[PCJRET] -~r~T'as pas réussi à remonter sur ton deux-roues. - -[PCJTIME] -~r~T'as plus de temps ! - -[PCJCHEC] -~w~Point de passage ~1~ sur ~1~ - -[TRRACE1] -~w~Gagne un peu plus de temps à chaque point de passage franchi... - -[TRRACE3] -~w~T'as fini avec ~1~ secondes d'avance ! - -[TRRACE5] -~w~Ca te fait ~1~$ ! - -[TRRACE6] -~w~BRAVO ! T'as franchi tous les points de passage en premier ! Voici un bonus de 1000$ ! - -[TRRACE7] -~r~T'as quitté le circuit ! - -[TRRACE8] -~r~Ta moto est HS ! - -[TRRACE9] -~r~T'es pas remonté sur ta moto à temps. - -[TRRAC10] -~r~T'as perdu ta moto ! - -[TRRAC11] -~r~Temps écoulé ! - -[ANG] -Avenging Angels - -[ANG_1] -~w~Hé, mon pote, on va nettoyer cette ville de tous les criminels ! - -[ANG_2A] -Appuie sur~h~ ~k~ ~TGSUB~ ~w~pour rejoindre les Avenging Angels. - -[ANG_3] -~w~Toi et moi, on pourrait démonter cette ville à nous deux, mais... on va chercher du renfort, on sait jamais. - -[ANG_3A] -~w~Arrête-toi près d'autres Avenging Angels pour qu'ils rejoignent ton gang. - -[ANG_4] -~w~Yo ! J'ai rejoint cette bande de guignols pour me battre ! Qu'est-ce qu'on attend ? - -[ANG_5] -~w~J'suis ton homme... - -[ANG_6] -~w~Allons cramer quelques ordures ! - -[ANG_7] -~w~Ouais, c'est le top, la baston ! - -[ANG_7A] -~w~Moi, ça me va, et toi... ? - -[ANG_7B] -~w~On veut pas de gangs de nazes dans nos rues ! - -[ANG_7C] -~w~Pas de ça chez moi ! - -[ANG_7D] -~w~L'heure est venue de riposter ! - -[ANG_7E] -~w~Ici, c'est nous qui faisons la loi ! - -[ANG_8] -Temps restant - -[ANG_9] -~w~Temps prolongé ! - -[ANG_10] -~r~Temps écoulé ! - -[ANG_11] -~w~Il y a un groupe 'd'indésirables' qui traînent dans le coin... On va leur donner une leçon... - -[ANG_12] -~w~Y a un gang qui sème la panique dans les rues. On va leur apprendre ! - -[ANG_13] -~w~Cette ville devient folle ! Les gens croient avoir le droit de se rassembler ? On va leur montrer ! - -[ANG_13A] -~w~Un gang de connards a été repéré en train de malmener les gens dans les rues... - -[ANG_14] -~w~On signale un autre crime... En route ! - -[ANG_16] -~w~Certains individus ont été repérés en stationnement interdit. ON Y VA ! - -[ANG_16A] -~w~Je connais des gars toujours en quête d'un sale coup. Ils ont besoin d'une bonne correction. - -[ANG_OBJ] -~w~Liquide le ~r~gang perturbateur. - -[ANG_17] -~w~Bien joué ! Grâce à toi, ce quartier a été nettoyé des criminels... pour l'instant... - -[ANG_18] -~w~Ils se barrent ! - -[ANG_19] -~w~Trouve un Avenging Angel et arrête-toi près de lui pour connaître ta prochaine mission. - -[ANG_20] -~w~Ils se font la malle ! - -[ANG_21] -~w~Les laissez pas se tirer ! - -[VIC1] -Home Sweet Home - -[VIC2] -Slacker - -[VIC3] -Dealing Revenge - -[VIC4] -Snuff - -[VIC5] -Smash and Grab - -[VIC6] -Hot Wheels - -[VIC7] -The Portland Chainsaw Masquerade - -[MAR1] -Shop 'til you Strop - -[MAR2] -Taken for a Ride - -[MAR3] -Booby Prize - -[MAR4] -Biker Heat - -[MAR5] -Overdose of Trouble - -[SAL1] -The Offer - -[SAL2] -Ho Selecta ! - -[SAL3] -Frighteners - -[SAL4] -Rollercoaster Ride - -[SAL5] -Contra-Banned - -[SAL6] -Sindacco Sabotage - -[SAL7] -The Trouble with Triads - -[SAL8] -Driving Mr Leone - -[JDT1] -Bone Voyeur! - -[JDT2] -Don in 60 Seconds - -[JDT3] -A Volatile Situation - -[JDT4] -Blow up 'Dolls' - -[JDT5] -Salvatore's Salvation - -[JDT6] -The Guns of Leone - -[JDT7] -Calm before the Storm - -[JDT8] -The Made Man - -[MAC1] -Snappy Dresser - -[MAC2] -Big Rumble in Little China - -[MAC3] -Grease Sucho - -[MAC4] -Dead Meat - -[MAC4_0] -Casa - -[MAC5] -No Son of Mine - -[SALH1] -Rough Justice - -[SALH2] -Dead Reckoning - -[SALH3] -Shogun Showdown - -[SALH4] -The Shoreside Redemption - -[SALH4_V] -~r~v1.1 - -[SALH5] -The Sicilian Gambit - -[SALH5_V] -~r~v1.1 - -[DONH1] -Panlantic Land Grab - -[DONH2] -Stop the Press - -[DONH3] -Morgue Party Resurrection - -[DONH4] -No Money, Mo' Problems - -[DONH5] -Bringing the House Down - -[DONH6] -Love on the Run - -[TOSH1] -More Deadly than the Male - -[TOSH2] -Cash Clash - -[TOSH2F0] -~r~Une camionnette a atteint le complexe des Yakuzas ! - -[TOSH2F1] -~r~Le convoi a atteint le complexe des Yakuzas ! - -[TOSH2F2] -~r~T'as pas détruit les camionnettes de sécurité ! - -[TOSH2M0] -~w~Et une de moins ! - -[TOSH2M1] -~w~Encore une au tapis ! - -[TOSH3] -A Date with Death - -[TOSH4] -Cash in Kazuki's Chips - -[PO_MOB1] -~w~Toni ? C'est ta maman ! - -[POMOB1A] -~w~Depuis combien de temps es-tu de retour ? - -[POMOB1B] -~w~Pourquoi tu viens pas me voir ? - -[POMOB1C] -~w~C'est quoi ton problème ? - -[POMOB1D] -~w~Je suis ta mère, pour l'amour de Dieu ! Viens me voir ! - -[PO_MOB2] -~w~Salut Médor, c'est Maria. - -[PO_MOB3] -~w~Hé, Toni ! C'est J.D. - -[POMOB3A] -~w~Y paraît que t'es sur un gros coup. - -[POMOB3B] -~w~J'espère juste que t'oublieras pas ton vieux pote J.D. quand tu seras au sommet ! - -[POMOB4A] -~w~Qu'est-ce que tu veux ? - -[POMOB4B] -~w~Quelqu'un pour laver ton linge sale ? Pour te torcher ? - -[POMOB4C] -~w~Le prends pas comme ça... J'suis vraiment désolé pour tout... - -[POMOB4F] -~w~Un gâteau à l'arsenic ? - -[POMOB4G] -~w~Laisse tomber... - -[POMOB4I] -~w~Salvatore en a entendu parler et il m'a dit qu'on devait évoluer tous les deux. - -[POMOB4J] -~w~C'est ce que j'essaie de faire en m'excusant. - -[PO_MOB5] -~w~Toni ? C'est Salvatore. - -[POMOB5A] -~w~On a de gros ennuis ! Ramène-toi, et en vitesse ! - -[PO_MOB6] -~w~Anthony ? C'est Salvatore. - -[POMOB6A] -~w~T'as pas vu Maria ? - -[POMOB6B] -~w~Je trouve cette salope que quand elle a besoin de fric ! - -[ST_MOB8] -~w~Ouais ? - -[STMOB8A] -~w~Toni ? C'est Sal. - -[STMOB8B] -~w~Faut qu'on cause, mais j'aime pas ces téléphones portables. - -[STMOB8C] -~w~Je te rappelle sur le téléphone public, à l'extérieur du tribunal. - -[ST_MOB1] -~w~Toni. C'est Donald. - -[STMOB1A] -~w~J'ai un souci plutôt pressant qui réclame tes... talents. - -[STMOB1B] -~w~Passe me voir à mon bureau dès que tu peux. - -[ST_MOB2] -~w~Ouais ? - -[STMOB2A] -~w~Cipriani ? C'est moi, McAffrey. - -[STMOB2B] -~w~J'ai des nouvelles qui intéresseront sûrement Salvatore. - -[STMOB2C] -~w~Viens me retrouver à l'endroit habituel. - -[ST_MOB3] -~w~Ouais ? - -[STMOB3A] -~w~C'est Sal. - -[STMOB3B] -~w~Ecoute, les Forelli avaient le maire Hole dans leur poche. - -[STMOB3D] -~w~Je connais un homme d'affaires qui ferait n'importe quoi pour se faire élire. - -[STMOB3E] -~w~C'est un enfoiré de première... Il est donc parfaitement qualifié pour le poste. - -[STMOB3F] -~w~Je lui ai dit que tu veillerais à ce qu'il remporte l'élection... pour nous ! - -[ST_MOB4] -~w~Allô ? - -[STMOB4A] -~w~Toni. C'est moi, Sal. - -[STMOB4B] -~w~Je peux sentir la marque des Forelli sur la merde dans laquelle je suis fourré. - -[STMOB4C] -~w~La question qui m'intéresse, c'est pourquoi ils se servent du maire pour me pourrir la vie ? - -[STMOB4D] -~w~Ecoute, retrouve-moi à la jetée. - -[STMOB4E] -~w~Faut qu'on dégotte des infos ! - -[ST_MOB5] -~w~Yo ! - -[STMOB5B] -~w~Va à la cabine téléphonique de Torrington. - -[STMOB5C] -~w~Faut que je te parle. - -[STMOB5D] -~w~J'voudrais aussi que tu passes voir un de mes associés, à Aspatria, en chemin. - -[STMOB5E] -~w~Il va nous donner un coup de main pour mettre la pression sur les Sindacco et les Forelli. - -[ST_MOB6] -~w~Ouais ? - -[STMOB6A] -~w~Toni ? C'est Sal. - -[STMOB6B] -~w~Va à la cabine téléphonique de Liberty Campus. - -[STMOB6C] -~w~C'est important. - -[ST_MOB7] -~w~Ouais ? - -[STMOB7A] -~w~Toni ? C'est Sal. - -[STMOB7B] -~w~Va à Belleville et trouve la cabine téléphonique. - -[STMOB7C] -~w~J'ai un travail urgent. - -[ST_MOB9] -~w~Toni Cipriani. - -[STMOB9A] -~w~Toni ? C'est Maman. - -[STMOB9B] -~w~Il paraît que tu fais partie de la Famille !? - -[STMOB9C] -~w~... J'ai jamais douté une seule seconde, mon fils ! - -[STMOB9D] -~w~... et maintenant que tu as enfin fait tes preuves... - -[STMOB9E] -~w~J'annule le contrat sur ta tête. - -[STMOB9F] -~w~Allez, n'en parlons plus ! - -[STMOB9G] -~w~Après tout, c'était uniquement dans ton intérêt. - -[STMOB9H] -~w~Ah, quel genre de fils oblige sa maman à être aussi sévère ? - -[STMOB9I] -~w~A bientôt, mon fils, n'oublie pas ta bonne vieille maman. - -[STMO10] -~w~Ouais ? - -[STMO10A] -~w~Salut, le gros dur. C'est McAffrey. - -[STMO10B] -~w~Les Fédéraux ont embarqué ton boss, Salvatore. - -[STMO10C] -~w~Et ils sont vraiment pas contents. - -[STMO10D] -~w~Il va payer pour tous les crimes commis dans cette ville. - -[STMO10E] -~w~Alors, on se connaît pas, OK ? - -[SH_MOB1] -~w~Toni...? - -[SHMOB1A] -~w~Sal ? C'est toi ? - -[SHMOB1B] -~w~Oh, ferme-la ! Je parle à mon avocat, là ! - -[SHMOB1C] -~w~Toni ? ... euh... j'veux dire... Lionel ? - -[SHMOB1D] -~w~Ecoute, ils m'ont embarqué ! C'est pas croyable ! - -[SHMOB1E] -~w~Je suis dans la merde, là. - -[SHMOB1F] -~w~Alors, ramène-toi ici ! J'ai deux ou trois trucs à te confier. - -[SHMOB1G] -~w~... Lionel ? - -[SH_MOB2] -~w~Ouais ? - -[SHMOB2A] -~w~Toni ? C'est Donald. - -[SHMOB2B] -~w~Non, attends, raccroche pas ! - -[SHMOB2C] -~w~J'ai une proposition très intéressante à te faire... - -[SHMOB2D] -~w~S'il te plaît, passe me voir à ma... hum... résidence. Je te mettrai au courant. - -[SHMOB2E] -~w~Toni...? - -[SHMOB2F] -~w~Toni, je t'en supplie ! Je t'appelle avec ma dernière piè... - -[SH_MOB3] -~w~M. Cipriani ? - -[SHMOB3A] -~w~Qui c'est ? Comment vous avez eu ce numéro ? - -[SHMOB3B] -~w~Celui qui met toute sa volonté dans ses actes a toutes les chances de réussir. - -[SHMOB3C] -~w~Je ne devrais pas avoir à vous l'apprendre, M. Cipriani. - -[SHMOB3D] -~w~J'ai besoin de vous pour un problème délicat. - -[SHMOB3E] -~w~Vous en serez généreusement dédommagé. - -[SHMOB3F] -~w~Je vous expliquerai tout à mon appartement, à Torrington. - -[SH_MOB4] -~w~Toni ! C'est Sal ! - -[SHMOB4A] -~w~T'as réussi ! C'est pas croyable ! - -[SHMOB4B] -~w~On est sorti d'affaire, petit ! - -[SHMOB4C] -~w~Viens me voir, on a quelques détails à régler. - -[SH_MOB5] -~w~Toni ? C'est Donald. - -[SHMOB5A] -~w~Si le marché Panlantic est conclu, on va avoir besoin de... hum... - -[SHMOB5B] -~w~comment dire... - -[SHMOB5C] -~w~'nettoyer' un petit secteur, à Fort Staunton. - -[SHMOB5D] -~w~Quand vous dites 'on', vous voulez dire 'moi' ? - -[SHMOB5E] -~w~Toni, tu me comprends parfaitement. - -[SHMOB5F] -~w~Va voir 8-Ball. Je suis sûr qu'il peut nous fournir le matériel nécessaire. - -[SHMOB5G] -~w~Je suis sûr qu'il peut nous fournir le matériel nécessaire. - -[SH_MOB6] -~w~Allô, mec ? Ici 8-Ball. - -[SHMOB6A] -~w~Ton matos est prêt. - -[AHIT_H0] -~w~C'est tout ce dont t'es capable, connard ? - -[AHIT_H1] -~w~C'est pas vrai, ils abandonnent jamais, ces tarés ? - -[AHIT_H2] -~w~Va te faire mettre, minable ! - -[AHIT_H3] -~w~Vous commencez à me les casser ! - -[AHIT_BI] -~w~Ouvre l'oeil ! Un des tueurs de ta mère est pas loin ! - -[AHIT_TA] -~w~Fais gaffe ! Un des tueurs de ta mère est dans le coin. - -[AHIT_BU] -~w~Attention ! Un des tueurs de ta mère est sur ta piste. - -[AHIT_AM] -~w~Fais attention ! Un des tueurs de ta mère t'a repéré. - -[AHIT_VA] -~w~Te fais pas avoir ! Y a un tueur de ta mère dans le secteur ! - -[AHIT_PO] -~w~Reste sur tes gardes ! Un des tueurs de ta mère va tenter de t'avoir. - -[AHIT_CA] -~w~Ouvre l'oeil ! Un des tueurs de ta mère s'approche de toi ! - -[K_TKT] -Scrapyard Challenge - -[K_TK2] -~w~Passe à travers les cerceaux pour marquer des points. - -[K_TK4] -~w~Marque un maximum de points avant la fin du chrono ! - -[K_CD] -~w~T'as ~1~ secondes pour remonter sur ta ~b~moto ! - -[K_TKP1] -~w~1 point ! - -[K_TKP2] -~w~2 points ! - -[K_TKP3] -~w~3 points ! - -[K_SC] -score - -[K_SCX] -~w~T'as marqué ~1~ points ! - -[K_SCX1] -~w~T'as marqué 1 point ! - -[K_HSC1] -~w~Nouveau meilleur score : ~1~ points ! - -[K_HSC2] -~r~T'as pas battu le meilleur score de ~1~ points. - -[KRUSH] -Tu obtiendras désormais quatre fois plus de fric en te servant du broyeur ! - -[KRUSH2] -Tu obtiendras désormais huit fois plus de fric en te servant du broyeur ! - -[TURFAIL] -~r~DEFI TERMINE ! - -[TKR1] -9mm Mayhem - -[TKR2] -Scooter Shooter - -[TCKILL] -Victimes - -[TCHEAL] -Dégâts - -[TC2_1] -~r~T'as buté ton chauffeur ! - -[TC2_2] -~r~Véhicule détruit ! - -[TC2_3] -~r~Temps écoulé ! - -[TC_T_E] -~w~Cible éliminée ! ~1~$ - -[TUP_BR] -~w~Elimine autant de ~r~cibles ~w~que possible dans le temps imparti. - -[TUP_BR2] -~w~Elimine plus de ~1~ ~r~cibles ~w~pour inscrire un nouveau meilleur score ! - -[TUP_AD] -~w~T'as 3 pilules d'adrénaline. Appuie sur la touche R1 pour en utiliser une. - -[TUPSC1] -~w~Nouveau meilleur score : ~1~ victimes ! - -[TUPSC2] -~r~T'as pas battu le meilleur score de ~1~ victimes. - -[MPWCS1] -The Wedding List - -[MPWCS2] -Salut, ça roule ? - -[MPWCS3] -Ecoute, mon fils Joey va se marier ! - -[MPWCS4] -Je lui ai trouvé une fille très classe, comme ma Maria... J'suis impatient de les voir ensemble ! - -[MPWCS5] -Le seul problème, c'est que j'veux plus le voir conduire une des épaves qu'il répare dans son atelier. - -[MPWCS6] -Alors, tu vas parcourir cette ville et lui rapporter une vraie caisse. - -[MPWCS7] -Je veillerai à te récompenser. - -[MPTCS1] -Tanks for the Memories - -[MPTCS2] -C'est Sal. J'ai besoin de détourner l'attention des flics, et tu vas m'aider. - -[MPTCS3] -J'ai un blindé garé à l'autre bout de la ville. Prends-le et fais des dégâts ! Vas-y à fond ! - -[MPTCS4] -Je veux que les gens croient que Patton est ressorti de sa tombe ! - -[MPTCS5] -Ecoute, cette diversion est vraiment importante. Alors, j'ai d'autres gars qui vont en faire autant. - -[MPTCS6] -... Et je payerai seulement celui qui restera le plus longtemps au volant. - -[MPRCS1] -Street Rage - -[MPRCS2] -Ici Salvatore Leone ! Votre bienfaiteur public ! - -[MPRCS3] -... Ecoutez pas ce que raconte le procureur ! - -[MPRCS4] -Je suis un généreux protecteur de Liberty City. Et c'est pour ça que je sponsorise cette grande course aujourd'hui. - -[MPRCS5] -Ca me coûte combien, cette merde ? - -[MPRCS6] -QUOI ? Appelez le Samu, mon coeur s'est arrêté de battre ! - -[MPHPCS2] -C'est Sal... Les fédéraux ont mis mon téléphone sur écoute, alors j'vais faire dans le subtil. - -[MPHPCS3] -Y a une valise pleine de Benjamin sous le téléphone et une liste de noms. Devine ce que je veux... - -[MPHPCS4] -... attends ! J'veux pas que tu leur refiles mon fric ! - -[MPHPCS5] -Tu sais bien... Descends-les... - -[MPHPCS6] -Et je veux pas dire 'fais leur faire un tour à la cave'... - -[MPHPCS7] -Ecoute, bute juste tous les enculés sur la liste ! - -[DEB0] -DEBUG 0 - -[DEB1] -DEBUG 1 - -[DEB2] -DEBUG 2 - -[DEB3] -DEBUG 3 - -[DEB4] -DEBUG 4 - -[NUM0] -DEBUG 0 (~1~) - -[NUM1] -DEBUG 1 (~1~) - -[NUM2] -DEBUG 2 (~1~) - -[NUM3] -DEBUG 3 (~1~) - -[NUM4] -DEBUG 4 (~1~) - -[CARS] -Vendeur de voitures - -[BIKE] -Vendeur de motos - -[RACE_0] -Position - -[RACE_FL] -~w~DERNIER TOUR - -[RACE_X0] -~w~Prends une caisse et direction la ~y~ligne de départ ! - -[RACE_X1] -~w~Prends une moto et direction la ~y~ligne de départ ! - -[RACE_X2] -~w~Il te faut une caisse pour participer à cette course ! - -[RACE_X3] -~w~Il te faut une moto pour participer à cette course ! - -[RACE_X4] -~w~Il te reste ~1~ secondes pour trouver une caisse. - -[RACE_X5] -~w~Il te reste ~1~ secondes pour trouver une moto. - -[RACE_X6] -~w~Il te reste 1 seconde pour trouver une caisse. - -[RACE_X7] -~w~Il te reste 1 seconde pour trouver une moto. - -[RACE_T0] -~r~T'es pas arrivé premier ! - -[RACE_T1] -~r~T'as été disqualifié pour avoir abandonné ta caisse. - -[RACE_T2] -~r~Un des participants a été tué, la course est annulée ! - -[RACE_T3] -~r~T'as été disqualifié pour avoir abandonné ta moto. - -[RACE_Y3] -~w~3 - -[RACE_Y2] -~w~2 - -[RACE_Y1] -~w~1 - -[RACE_Y] -~w~GO !! - -[RACE_Z1] -~w~1ERE PLACE ! - -[RACE_Z2] -~w~2E PLACE ! - -[RACE_Z3] -~w~3E PLACE ! - -[RACE_Z4] -~w~DERNIER ! - -[RACE_R1] -~w~RECORD : ~1~:~1~~1~ NOUVEAU RECORD ! - -[RACE_R2] -~w~NOUVEAU RECORD ! - -[RACE_S0] -~w~TEMPS : ~1~:~1~~1~ - -[RACE_S1] -~w~MEILLEUR TOUR : ~1~:~1~~1~ - -[ABC01] -Record : 2e - -[ABC10] -Temps : 12:30 - -[ABC11] -Record : 10:56 - -[ABC20] -Meilleur tour : 4:26 - -[ABC21] -Record : 5:30 - -[ABC] -NOUVEAU RECORD - -[RAC1] -Low-Rider Rumble - -[RAC2] -Deimos Dash - -[RAC3] -Wi-Cheetah Run - -[BIK1] -Red Light Racing - -[BIK2] -Torrington TT - -[BIK3] -Gangsta GP - -[TT1] -Bumps & Grinds - -[TT1_A1] -~w~< CIRCUIT ~1~ > - -[TT1_B1] -~w~Temps cible : ~1~:~1~ - -[TT1_B1A] -~w~Temps cible : ~1~:0~1~ - -[TT1_B2] -~w~Meilleur temps du circuit : ~1~:~1~ - -[TT1_B2A] -~w~Meilleur temps du circuit : ~1~:0~1~ - -[TT1_B3] -~w~Meilleur temps au tour : ~1~:~1~ - -[TT1_B3A] -~w~Meilleur temps au tour : ~1~:0~1~ - -[TT1_B4] -~w~~1~:~1~ - -[TT1_B4A] -~w~~1~:0~1~ - -[TT1_B5] -~w~Nouveau record du circuit ! ~1~:~1~ - -[TT1_B5A] -~w~Nouveau record du circuit ! ~1~:0~1~ - -[TT1_L] -~r~ Non disponible. - -[A_PISTO] -~w~< Pistolet > - -[A_UZI] -~w~< Pistolet-mitrailleur > - -[A_AK] -~w~< AK47 > - -[A_SNIPE] -~w~< Fusil de précision > - -[A_GRENA] -~w~< Grenades > - -[A_ARMOU] -~w~< Protection pare-balles > - -[A_ROCKE] -~w~< Lance-roquettes > - -[A_SHOTG] -~w~< Fusil à pompe > - -[A_M4] -~w~< M4 > - -[A_FLAME] -~w~< Lance-flammes > - -[A_MINIG] -~w~< Minigun > - -[A_COST] -~w~Prix : ~h~~1~$ - -[A_COST2] -~w~Prix : ~h~~1~$ ~n~ ~r~Cet achat remplacera ton arme actuelle. - -[A_COST3] -~w~Prix : ~h~~1~$ ~n~ ~r~Ta protection pare-balles est en bon état. - -[A_COST4] -~w~Prix : ~h~~1~$ ~n~ ~r~Tu peux pas t'offrir ça. - -[A_STOCK] -~r~Stock épuisé. - -[A_VIC4] -~w~Un pistolet coûte en général 240$, mais là, c'est Vincenzo qui régale. - -[A_DONS4] -~w~Donald Love a déjà payé pour ça. - -[A_NEDS4] -~w~Un mec de l'église a réservé ça pour toi. - -[A_TALK1] -~w~J'ai tout ce qu'il faut pour votre défense personnelle. - -[A_TALK2] -~w~Vous voulez aussi un permis ? - -[A_TALK3] -~w~J'ai pas besoin de voir vos papiers. Vous m'inspirez confiance. - -[A_TALK4] -~w~Surtout, n'hésitez pas à essayer le stand de tir à l'arrière. - -[BENZ_GO] -~w~Faut que tu changes de fringues ! - -[PIZ_B01] -~w~T'as ~1~ seconde pour remonter sur la ~b~mob Pizza ! - -[PIZ_B02] -~w~T'as ~1~ secondes pour remonter sur la ~b~mob Pizza ! - -[PIZ_F04] -~r~T'as pas réussi à revenir à la mob Pizza ! - -[NDL_B01] -~w~T'as ~1~ seconde pour remonter sur la ~b~mob Nouilles ! - -[NDL_B02] -~w~T'as ~1~ secondes pour remonter sur la ~b~mob Nouilles ! - -[NDL_F04] -~r~T'es pas revenu à la mob Nouilles ! - -[EXPO_D] -~w~Voici pour toi : ~1~$ ! Termine la liste pour gagner un bonus ! - -[PUPSPN] -~w~BONUS A L'ECRAN ! - -[PUPMEGA] -~y~MEGA DEGATS ! - -[PUPREGN] -~y~BOOST DE SANTE ! - -[PUPINVS] -~y~INVISIBILITE ! - -[PUPFREZ] -~y~FOLIE FURIEUSE ! - -[MPK] -a tué - -[MPKHEAD] -d'un tir en pleine tête ! - -[MPNEED] -n'a besoin que de - -[MPNAME] -Nom - -[MPSCORE] -Score - -[MPPING] -Ping - -[MPCPS] -Points de passage - -[MPTIME] -Temps - -[MPBONUS] -Bonus - -[MPQG] -Quitter ? - -[MPQUIT] -Quitter - -[MPCONT] -Continuer - -[MPHIGH] -Meilleur temps - -[MPBY] -par - -[MPOVER] -Fin de la partie - -[MPFIRST] -a terminé en premier - -[MPWITH] -gagne avec $ - -[MPHP05] -~w~5 secondes avant la prochaine cible. - -[MPHP04] -~w~4 secondes avant la prochaine cible. - -[MPHP03] -~w~3 secondes avant la prochaine cible. - -[MPHP02] -~w~2 secondes avant la prochaine cible. - -[MPHP01] -~w~1 seconde avant la prochaine cible. - -[RCRANGE] -~w~Hors de portée ! - -[CAD5_AA] -Ici Sal. - -[CAD5_AB] -Ces Forelli m'ont vraiment foutu en rogne ! Ils vont le payer ! - -[CAD5_AC] -Je veux que tu prennes leurs plus belles caisses... - -[CAD5_AD] -... et que tu les apportes à leurs plus gros concurrents, dans le magasin de voitures des Sindacco. - -[CAD5_AE] -Débrouille-toi pour que les Forelli ne volent pas de voitures Sindacco pour se venger. - -[CAD5_AF] -Capici ? - -[CAD4_AA] -C'est moi, Sal. - -[CAD4_AB] -J'ai une dette envers Franco Forelli et tu vas m'aider à la payer. - -[CAD4_AC] -Ils ont des caisses super classes dans le magasin des Sindacco. - -[CAD4_AD] -Je veux que t'ailles toutes les piquer et que tu les ramènes au magasin des Forelli. - -[CAD4_AE] -Débrouille-toi juste pour qu'aucune voiture Forelli ne se fasse voler pendant que t'es là-bas. - -[CAD4_AF] -Hé, te plante pas sur ce coup-là. - -[MPC_000] -Toni - -[MPC_001] -'Lionel' - -[MPC_002] -Cipriani - -[MPC_003] -Chauffeur - -[MPC_004] -13e - -[MPC_005] -Toni the Tux - -[MPC_006] -Fury - -[MPC_007] -The King - -[MPC_008] -Cocks - -[MPC_009] -Streak - -[MPC_010] -'T' - -[MPC_011] -Dragon - -[MPC_012] -J.D. - -[MPC_013] -La Crampe - -[MPC_014] -Avery - -[MPC_015] -Choc-Choc - -[MPC_016] -8-Ball - -[MPC_017] -Maria - -[MPC_018] -'Hamfists' - -[MPC_021] -No 1 - -[MPC_023] -Hung Lo - -[MPC_025] -Yamazaki - -[MPC_031] -Officier '69' - -[MPC_032] -Le Spécialiste - -[MPC_034] -G.I. Jones - -[MPC_035] -Sam - -[FEA_FM0] -HEAD RADIO - -[FEA_FM1] -DOUBLE CLEF FM - -[FEA_FM2] -K-JAH - -[FEA_FM3] -RISE FM - -[FEA_FM4] -LIPS 106 - -[FEA_FM5] -RADIO DEL MUNDO - -[FEA_FM6] -MSX 98 - -[FEA_FM7] -FLASHBACK FM - -[FEA_FM8] -THE LIBERTY JAM - -[FEA_FM9] -LCFR - -[MRACELA] -Tour - -[DTB_01] -~w~Défends ta base contre les assaillants. - -[DTB_02] -~w~Protège tes voitures à tout prix. - -[CAD2_AB] -~w~Bonne nouvelle ! Les Forelli et les Sindacco se foutent de nouveau sur la gueule. - -[CAD2_AC] -~w~Ils veulent tous prendre le contrôle des vendeurs de voitures de Liberty. - -[CAD2_AD] -~w~Vu qu'on a 'aidé' les Forelli la semaine dernière... - -[CAD2_AE] -~w~... il est temps de rétablir l'équilibre. - -[CAD2_AF] -~w~Aide les Sindacco à écrémer le magasin de voitures des Forelli. - -[POMOB2A] -~w~Salvatore m'a donné ton numéro... Enfin, je l'ai trouvé dans son carnet d'adresses... Enfin bref... - -[POMOB2B] -~w~T'es son nouveau chien de garde, c'est ça ? Bon, j'ai envie de te promener. - -[POMOB2C] -~w~Je t'attends, alors dépêche ! - -[GS_RGUN] -ARMES DE DEPART : - -[TUSHTK] -AWOL Angel - -[SC_WICH] -Meilleur score AWOL Angel - -[NE_WIFI] -Erreur réseau. L'interrupteur WLAN est désactivé. Activer l'interrupteur WLAN pour jouer en multijoueur. - -[BNDRAC0] -Thrashin' RC - -[BNDRAC1] -Ragin' RC - -[BNDRAC2] -Chasin' RC - -[GS_G1] -LIBERTY CITY SURVIVOR - -[GS_G2] -STREET RAGE - -[GS_G3] -PROTECTION RACKET - -[GS_G4] -GET STRETCH - -[GS_G5] -TANKS FOR THE MEMORIES - -[GS_G6] -THE HIT LIST - -[GS_G7] -THE WEDDING LIST - -[TRCR1] -~w~3 - -[TRCR2] -~w~2 - -[TRCR3] -~w~1 - -[TRCRGO] -~w~GO ! - -[GA_16] -~w~La peinture est offerte. - -[NEW_TAX] -~w~Mission Taxi terminée ! Un nouveau modèle de taxi vient d'être livré au garage de taxis à Trenton ! - -[EXPO_2] -~w~Si tu leurs fournis les véhicules dont ils ont besoin en bonne condition, tu seras largement récompensé. - -[FEMP_NC] -Etablissement des connexions réseau... - -[C1TGSUB] -touche R3 - -[C2TGSUB] -touche R3 - -[C3TGSUB] -~S~ - -[C2VEHN] -touche R1 - -[C2VECRS] -touche L3 - -[C3VECRS] -~O~ - -[C2PDCWE] -touche L2 et touche R2 - -[C3PDCWE] -touche L2 et touche R2 - -[BENZ_LA] -~w~La ~h~tenue d'avocat~w~ est disponible dans la planque. - -[BENZ_TR] -~w~Ta ~h~tenue décontractée~w~ est disponible dans la planque. - -[SLH1_OU] -~w~Il te faut une ~h~tenue d'avocat~w~ pour entrer voir Sal. - -[SLH1_OR] -~w~Il te faut une tenue d'avocat pour voir Sal. - -[L_TRN_1] -~w~Tu peux prendre le ~h~métro aérien~w~ pour te déplacer dans Portland. Appuie sur~h~ ~k~ ~VEEE~ ~w~pour monter ou descendre d'une rame. - -[HELP2] -~w~Appuie sur~h~ ~k~ ~PDSPR~ ~w~en courant pour ~h~commencer à sprinter. - -[STMOB5A] -~w~Toni, c'est Sal. - -[SCH_TK7] -~r~T'as quitté la casse. - -[STMOB3C] -~w~Mais on va prendre le contrôle de la mairie. - -[SALH3A] -~w~Cherche un moyen de transport pour Donald. - -[MPCASH] -Argent - -[MPCARS] -Caisses - -[CRUSHED] -Valeur de la ferraille : ~1~$ - -[BENZ_BO] -~w~Va récupérer des ~h~sous-vêtements~w~ propres dans la planque. - -[BENZ_EL] -~w~La ~h~combi 'The King'~w~ est dispo dans ta planque. - -[BENZ_CO] -~w~Un ~h~costume de mascotte~w~ est dispo dans ta planque. - -[BENZ_HE] -~w~Missions Avenging Angel : Shoreside - niveau 15 terminé ! Le ~h~costume de super-héros~w~ est dispo dans ta planque. - -[BENZ_DR] -~w~La ~h~combi 'Dragon'~w~ est dispo dans ta planque. - -[TRTIT] -Wong Side Of The Tracks - -[TRRACE2] -~w~Fais gaffe ! Les frères Wong ont pas l'air cool... - -[MPTOTAL] -Total - -[TOUR_W6] -~w~Landstalker blindé livré à la planque. Abrite-le dans ton garage ! - -[OUTFITS] -Tenues débloquées - -[MPHPMAR] -est la nouvelle cible. - -[FEC_CWT] -Parcourir armes/cibles - -[EXPO_1] -~w~Love Media a besoin de prix à distribuer pour ses concours 'Car-razy Car Give Away' ! - -[PCJLAP] -~w~Nouveau record au tour de ~1~ secondes ! - -[MPBLCAR] -Voiture bleue : - -[MPRDCAR] -Voiture rouge : - -[RAMP_A] -~w~T'AS REUSSI TOUS LES RODEOS ! ~1~$ - -[FET_SAV] -Sauvegarder - -[FET_WRN] -Attention ! Un ou plusieurs codes ont été activés. Cela risque d'affecter la sauvegarde. Il est recommandé de ne pas sauvegarder cette partie. - -[HELP39] -~w~Utilise~h~ ~k~ ~VEWEI~ ~w~pour déplacer ton poids sur une moto. +[HORN3] +Appuie sur la ~h~~k~~VEHICLE_HORN~ ~w~pour ~h~klaxonner. [FEC_EXV] -Descendre du véhicule +Monter et descendre d'un véhicule -[MPCOLL] -NB DE CAISSES : +[TAXI_M] +'CHAUFFEUR DE TAXI' -[FEMP_HG] -HEBERGER +[COP_M] +'AUTODEFENSE' -[FEMP_JG] -REJOINDRE +[FIRE_M] +'POMPIER' -[K_TK3] -~w~1 point pour les ~g~verts~w~, 2 points pour les ~y~jaunes~w~, et 3 points pour les ~r~rouges. +[AMBUL_M] +'AMBULANCE' -[FEMP_GJ] -CHOISIR UNE PARTIE A REJOINDRE +[HJ_IS] +BONUS DE CASCADE DANGEREUSE : $~1~ -[FEMP_H] -HOTE : +[HJ_PIS] +BONUS DE CASCADE DANGEREUSE PARFAITE : $~1~ -[FEMP_P] -JOUEURS : +[HJ_DIS] +BONUS DE DOUBLE CASCADE DANGEREUSE : $~1~ -[FEMP_HN] -HEBERGER UNE NOUVELLE PARTIE +[HJ_PDIS] +BONUS DE DOUBLE CASCADE DANGEREUSE PARFAITE : $~1~ -[PO_MOB4] -~w~Hé ! C'est moi, Vincenzo. +[HJ_TIS] +BONUS DE TRIPLE CASCADE DANGEREUSE : $~1~ -[POMOB4D] -~w~Allez, passe me voir, j'ai un truc pour toi. +[HJ_PTIS] +BONUS DE TRIPLE CASCADE DANGEREUSE PARFAITE : $~1~ -[POMOB4E] -~w~Ah ouais ? C'est quoi ? Des baskets en béton armé ? +[HJ_QIS] +BONUS DE QUADRUPLE CASCADE DANGEREUSE : $~1~ -[POMOB4H] -~w~Non. Allez, Toni, quoi ! J'regrette ce qui s'est passé. +[HJ_PQIS] +BONUS DE QUADRUPLE CASCADE DANGEREUSE PARFAITE : $~1~ -[FEMP_F] -COMPLET +[FESZ_LS] +Chargement effectué. -[FEMP_R] -PAR DEFAUT +[HELI_1A] +Teste tes capacités avec le Sparrow et vois en combien de temps tu peux réussir le parcours. -[YOU] -TOI +[HELI_1B] +Parcours réussi! -[NE_POW] -Une erreur réseau est survenue. L'interrupteur POWER/HOLD (alimentation/bloquer) a été désactivé. +[HELIODD] +Petits boulots en hélico -[FEMP_SQ] -Tu veux vraiment lancer une partie multijoueur ? +[INT2_M] +Ils sont proprios d'une ferme au Panama! -[BIKETXT] -~w~Hogs & Cogs ouvre de 8h à 18h. Reviens à ce moment-là ! +[INT2_N] +Ok, écoutez un peu... -[RACE_2] -Temps +[INT2_O] +Les gars, quand on sera là-bas, est-ce que je dois rester dans la bagnole, -[FEF_CO2] -Choisis la configuration de commandes qui convient le mieux à ton style. +[INT2_P] +où bien est-ce que vous voulez absolument que je vienne avec vous? -[TYREPOP] -Pneus éclatés par balle +[INT2_Q] +Non, Reste dans la bagnole. -[FE_INIP] -Initialisation et chargement du menu Pause... Un instant... +[INT2_R] +Vous savez quoi, j'ai réfléchi à la question, -[DON4EX3] -~w~Tu prends les chèques ? +[INT2_S] +Je vais surveiller la bagnole. -[CRUSH] -~w~Gagne de l'argent avec de la ferraille ! Certains types de véhicules seront broyés si tu les laisses dans la zone délimitée par des pneus. +[INT4_A] +On est baisés! Baisés! -[ANG_15] -~w~Un groupe de débiles vient de voler la voiture d'un pauvre mec... On va se les faire ! +[INT4_B] +Putain, c'est vraiment le coup classique! -[CDERROR] -Veuillez patienter... +[INT4_C] +Je sors la tête d'un caniveau pour une seconde de défonce, -[FEC_LOF] -Regarder Devant +[INT4_D] +et le destin me chie de la merde plein la gueule! -[FEC_LFA] -Caméra/Visée précise +[INT4_E] +Allez vous faire mettre! -[MPHELP] -AIDE +[INT4_F] +Ferme-la et arrêter de gueuler! T'es encore vivant, pas vrai? -[C1VEHN] -touche L1 +[INT4_G] +Laisse-moi là. -[C3VEHN] -touche L3 +[INT4_H] +Débarrasse-toi de la caisse et va roupiller un bon coup. -[MPOBJ] -OBJECTIF : +[INT4_I] +Je passerai à ton bureau demain et on essayera de trouver une solution à ce merdier. -[MPLEG] -LEGENDE DU RADAR : +[INT4_J] +Ouais, bonne idée, je vais aller roupiller. -[GS_O1] -Chacun pour soi ! Tue les autres joueurs ! +[INT4_K] +Qu'est-ce que tu vas faire? -[GS_O2] -Conduis à travers les points de passage pour passer la ligne d'arrivée en premier. +[INT4_L] +Rentrer à mon hôtel. -[GS_OD3] -Défends les quatre limousines dans ta base contre tes assaillants. +[INT4_M] +Et penser à autre chose que ces conneries. -[GS_O6] -Tue le joueur 'cible' aussi vite que possible. Si tu es la 'cible', survis aussi longtemps que possible. +[INT4_N] +Ok. -[GS_O7] -Récupère les voitures aux quatre coins de la ville et conduis-les jusqu'aux conteneurs. +[LAW] +MISSIONS AVOCAT -[FHOSE_2] -~h~~k~ ~VEWEA~ ~w~permet d'ajuster la visée du canon. +[LAW1_1] +~g~Va te procurer de nouvelles fringues à la boutique de Rafael. -[MPI01] -BONUS +[LAW4_6] +Brûlez la direction! -[MPI02] -SANTE +[LAW4_7] +Tuez les patrons! -[MPI03] -PROTECTION +[LAW4_8] +Allez! Battez-vous! Allez! -[MPI04] -ARME +[LAW4_9] +Plus de vacances! Moins de travail! -[SPIDER] -Deimos SP +[LAW4_11] +Allez! Battez-vous! Allez! -[PONTIAC] -Phobos Vt +[LAW4_12] +Viva la revolucion! -[FORELLI] -Forelli ExSess +[GENERAL] +MISSIONS DU COLONEL -[AHIT_LO] -Tu l'as peut-être semé pour le moment mais tôt ou tard, il reviendra finir son job. +[GEN3_4] +Tommy Vercetti. Allons-y... -[FEM_ROF] -Radio éteinte +[GEN3_13] +C'est quoi ton problème, mec? Monte sur le toit de l'autre côté de la cour avant qu'ils rappliquent! -[GA_1] -~w~Tu veux rire ! Je touche pas à ça, moi ! +[GEN3_17] +Meeeerde! T'essayes de m'buter ou quoi? -[TRA_NEX] -Prochain arrêt : +[GEN3_21] +~g~Il a le pognon de Diaz! Attrape-le et récupère le fric! -[TRA_CUR] -Arrêt actuel : +[GEN3_24] +~r~Diaz est mort! Tu devais le protéger! -[PAGEB2] -~w~Le ~h~fusil à pompe~w~ est dispo dans ta planque ! +[GEN3_26] +~r~T'as flingué Diaz! -[PAGEB3] -~w~Une ~h~protection pare-balles~w~ est dispo dans ta planque ! +[GEN3_27] +~r~T'as descendu les gardes du corps de Diaz! -[PAGEB4] -~w~La ~h~mitraillette~w~ est dispo dans ta planque ! +[GEN3_31] +~g~Va au rencart et veille sur Diaz. -[PAGEB5] -~w~Le ~h~.357~w~ est dispo dans ta planque ! +[GEN3_32] +~g~Va te mettre en position sur le toit du bâtiment en face de Lance. -[PAGEB6] -~w~Le ~h~M4~w~ est dispo dans ta planque ! +[COKE] +MISSIONS BARON DE LA COKE -[PAGEB7] -~w~Le ~h~fusil de précision à visée laser~w~ est dispo dans ta planque ! +[COK1_3] +J'espère que tu vas te casser la gueule! -[PAGEB8] -~w~Le ~h~lance-flammes~w~ est dispo dans ta planque ! +[COK1_6] +J'en ai marre de ces merdeux. -[PAGEB9] -~w~Le ~h~lance-roquettes~w~ est dispo dans ta planque ! +[COK2_7] +Tu vois ces marqueurs? Essaye de flinguer les lumières! -[PAGE_01] -Abats ~1~ mecs des Triades en 2 minutes ! +[COK2_10] +En tout cas, tu tires mieux que tu causes. -[PAGE_02] -Fais exploser ~1~ véhicules en 2 minutes ! +[COK2_11] +Merci. T'as un certain charme aussi. -[PAGE_03] -Brûle ~1~ Diablos en 2 minutes ! +[COK2_12] +Je sais, Tommy. -[PAGE_04] -Bute ~1~ mafieux de Leone en 2 minutes ! +[COK2_18] +T'aimes bien Kenny Loggins? -[PAGE_05] -Crame ~1~ véhicules en 2 minutes ! +[COK2_19] +Tu parles, j'adore ce disque ouais! -[PAGE_06] -Ecrase ~1~ piétons en 2 minutes ! +[COK2_26] +~r~T'as buté Lance! -[PAGE_07] -Détruis ~1~ véhicules en 2 minutes ! +[COK3_1] +Tire pas, mec! -[PAGE_08] -Massacre ~1~ piétons en 2 minutes ! +[COK3_2] +Qu'est-ce que c'est que ça? -[PAGE_09] -Brûle ~1~ Yakuzas en 2 minutes ! +[COK3_3] +Il embarque le bateau! Merde! -[PAGE_10] -Descends ~1~ gangsters de Forelli en 2 minutes ! +[COK3_4] +A l'aide! Il y a un mec qui nous fauche le bateau! -[PAGE_11] -Ecrase ~1~ piétons en 2 minutes ! +[COK4_W] +Bon! C'est le dernier. -[PAGE_12] -Descends ~1~ piétons en 2 minutes ! +[COK4_X] +Je vais mettre le moteur en route. -[PAGE_13] -Tue ~1~ Yakuzas en 2 minutes ! +[COK4_Y] +Je crois qu'on a de la visite... -[PAGE_15] -Massacre ~1~ piétons en 2 minutes ! +[COK4_2] +Ouais. -[PAGE_16] -Pulvérise ~1~ véhicules en 2 minutes ! +[COK4_6] +Tu sais où on va? -[PAGE_17] -Tire sur ~1~ piétons en 2 minutes ! +[COK4_7] +On est paumés? -[PAGE_18] -Détruis ~1~ véhicules en 2 minutes ! +[COK4_8] +On a de la concurrence! -[PAGE_20] -Crame ~1~ piétons en 2 minutes ! +[COK4_9] +Bousille-les! -[MPI05] -ENNEMI +[COK4_9A] +L'heure de la danse de Lance Vance a sonné! -[MPI07] -PT DE PASSAGE +[COK4_10] +Réduits en miettes! Bons à nourrir la poiscaille! -[MPI08] -SUIVANT +[COK4_11] +On a réussi! Les autres bateaux ne sont pas de taille. -[MPI09] -LIGNE D'ARRIVEE +[COK4_17] +Ils sont prêts à tout! -[MPI10] -PILOTE +[COK4_18] +J'ai les pieds mouillés! On prend la flotte! -[MPI11] -BASE +[COK4_21] +Pont droit devant! -[MPI12] -BASE ENNEMIE +[COK4_22] +Ecope, on va chavirer! -[MPI13] -BLINDE +[COK4_23] +Joli coup. -[MPI14] -CIBLE HUMAINE +[COK4_29] +~r~T'as buté Lance! -[MPI15] -CAISSE +[ASS1_6] +Continue, Tommy, ça va aller! -[MPI16] -CONTENEUR +[ASS1_7] +Prenez ça, enculés d'assassins! -[FEI_LEG] -Afficher/masquer légende +[ASS1_8] +Je suis coincé! -[SR_ON] -Maintenant que tu t'es fait un nom dans le monde des courses sur circuit, attends-toi à te faire contacter par d'autres pilotes. +[ASS1_9] +Je te couvre, Tommy! -[FEC_FRA] -Visée libre +[ASS1_10] +Hé, c'est chouette toutes ces plantes... -[KAR_ON] -Retourne au camion de pompiers quand tu veux pour essayer de battre ton meilleur temps ! +[ASS1_11] +Hé, Tommy, je peux avoir une chambre avec vue sur la baie? -[DON2EX5] -~w~8-ball bougera pas le petit doigt à moins que tu lui files 20000$. +[ASS1_12] +Il y a vraiment de superbes plafonds, ici... -[PCJTIT] -GO GO Faggio +[ASS1_3] +Lance! Couvre-moi! -[FEA_MUS] -VOLUME RADIO : +[ASS1_5] +Lance! -[FEST_GO] -Meilleur temps Go Go Faggio +[ASS1_15] +~g~Attaque la résidence et tue Diaz! -[RC_1] -~w~Bute plus de ~1~ mecs des Triades. Chaque victime te rapporte du temps en plus ! +[ASS1_17] +~g~Il existe de nombreux accès à la résidence. -[EXPO_C] -~w~Merci ! C'était le dernier ! Y a un super bonus qui t'attend devant ton appart de Newport ! +[TAXWAR] +MISSIONS GUERRE DES TAXIS -[TRRACE0] -~w~Franchis les ~y~points de passage~w~ et passe la ligne d'arrivée en vie ! +[NOTAXI] +~g~T'as besoin d'un taxi Kaufman pour activer cette mission. -[RACE_P1] -~w~1er +[TAXW1_5] +~g~Faut que tu sois dans un taxi Kaufman! -[RACE_P2] -~w~2e +[TAX2_4] +Vas-y, Tommy. -[RACE_P3] -~w~3e +[TAX2_5] +Massacre-lui la tête. -[RACE_P4] -~w~4e +[TAX2_6] +Il a même pas son permis. -[OUTF_00] -~w~Tenue décontractée +[TAX2_7] +Putain de limousines! -[OUTF_01] -~w~Costume Leone +[TAXW3_1] +~g~Va prendre Mercedes. -[OUTF_03] -~w~Treillis des Avenging Angels +[RACE1] +~g~3..2..1.. PARTEZ! -[OUTF_04] -~w~Uniforme de chauffeur +[RACE2] +~g~3 -[OUTF_05] -~w~Tenue d'avocat +[RACE3] +~g~2 -[OUTF_06] -~w~Smoking +[RACE4] +~g~1 -[OUTF_07] -~w~Combi 'The King' +[RACE5] +~g~PARTEZ! -[OUTF_08] -~w~Costume de mascotte +[FIRST] +~b~1er -[OUTF_09] -~w~Sous-vêtements +[SECOND] +~b~2e -[OUTF_10] -~w~Costume de super-héros +[THIRD] +~b~3e -[OUTF_11] -~w~Combi 'Dragon' +[FOURTH] +~b~4e -[SLTVMON] -Cash gagné sur Slash TV +[RACETM] +~b~TEMPS DE COURSE : ~1~:~1~ -[DBIKEAI] -Plus haut saut (m) +[RACETM2] +~b~TEMPS DE COURSE : ~1~:0~1~ -[MPC_039] -Vincenzo +[RACEFA] +~r~Tu n'as pas gagné la course! -[MPC_040] -Salvatore +[TEX1_5] +~r~Il s'est tiré! -[MPC_041] -Toshi +[SEG3_1] +TEMPS: -[MPC_042] -Toshiko +[SEG3_2] +~g~Va à la camionnette qui contient le bombardier télécommandé et les bombes à retardement. -[MPC_043] -Ophelia Lardaz +[SEG3_3] +~g~Utilise le bombardier télécommandé pour transporter 4 bombes vers 4 zones cibles sur le chantier. -[MPC_044] -Ed Banger +[SERG3_5] +~g~Tu ne peux transporter qu'une bombe à la fois et tu ne peux récupérer une bombe déjà larguée avec succès. -[MPC_045] -Robin Emblind +[SEG3_7] +~g~Une fois que tu as largué la première bombe sur une zone cible, le compte à rebours s'enclenche. Tu dois larguer toutes les bombes avant la fin de celui-ci. -[MPC_046] -Mme Menalot +[SEG3_8] +~g~Les 4 bombes doivent être larguées sur les 4 zones cibles pour réussir la mission et détruire le bâtiment. -[MPC_047] -Hugh Jazz +[SEG3_9] +~g~Tu as touché la cible! Plus que 3! -[MPC_048] -Wayne +[SEG3_10] +~g~Tu as touché la cible! Plus que 2! -[MPC_049] -Paulie +[SEG3_11] +~g~Tu as touché la cible! Plus qu'une! -[MPC_050] -Anne Job +[SEG3_12] +~r~Tu as raté la cible! Va récupérer une bombe! -[MPC_051] -Randy Boner +[SEG3_13] +~g~Largue la bombe sur une zone cible. -[MPC_052] -Owen Monie +[SEG3_14] +~r~Le temps est écoulé et tu n'as pu détruire le bâtiment. -[MPC_053] -Ekant Sing +[SEG3_15] +~r~Ton bombardier télécommandé a été détruit! Comment tu vas transporter les bombes, maintenant? -[MPC_054] -M.T.Head +[AVERY] +MISSIONS AVERY -[MPC_055] -Rick O'Shea +[ASM] +MISSIONS ASSASSIN -[MPC_056] -Arden Long +[ASM_1] +MISSION ASSASSIN 1 -[MPC_057] -Ann Thrax +[ASM1_1] +~g~Ton aide dans l'éradication de ces indésirables fut une excellente affaire. J'ai un autre travail pour toi. Regarde sous le téléphone. -[MPC_058] -Fay Slift +[ASM1_2] +~g~Rends-toi à la cabine en dehors du centre commercial à Washington. -[MPC_059] -Mona Lott +[ASM1_3] +~g~Carl Pearson, livreur de pizzas. Il ne doit pas terminer sa tournée. -[C0VEACC] -~X~ +[ASM1_4] +~g~Tue le livreur de pizzas avant qu'il le livre toutes ses pizzas. -[C1VEACC] -~X~ +[ASM_2] +MISSION ASSASSIN 2 -[C2VEACC] -~X~ +[ASM_3] +MISSION ASSASSIN 3 -[C3VEACC] -joystick analogique droit vers le haut +[ASM3_A] +Marcus Hammond, Franco Carter, Dick Tanner, Nick Kong et Stuntman Driver appartiennent tous au syndicat européen qui s'apprête à faire un hold-up. -[C0VEBRK] -~S~ +[ASM3_B] +Ils sont tous en position. Il faut qu'ils soient tous morts avant le commencement. Tu as 9 minutes. J'ai laissé quelques flingues à proximité qui devraient t'être utiles. -[C1VEBRK] -~S~ +[ASM3_1] +~g~Va récupérer l'arme que M. Black a laissé pour toi. -[C2VEBRK] -~S~ +[ASM3_2] +~g~Ne t'approche pas trop près de la cible ou tu risques d'être repéré. -[C3VEBRK] -joystick analogique droit vers le bas +[ASM3_3] +~g~Pour un travail propre et rapide, installe-toi près de leurs positions dans des emplacements d'où tu pourras facilement les liquider, sans être repéré. -[C0VEHB] -touche R1 +[ASM3_4] +~g~Il t'a vu! Vaudrait mieux le buter en vitesse, maintenant! -[C1VEHB] -touche R1 +[ASM3_5] +~g~Marcus Hammond est en position près des panneaux publicitaires dans Washington. -[C0VEEE] -~T~ +[ASM3_6] +~g~Franco Carter est en position à côté de DBP Security non loin d'Ocean Drive. -[C1VEEE] -~T~ +[ASM3_7] +~g~Dick Tanner est en position à côté de la bijouterie dans Vice Point. -[C2VEEE] -touche L1 +[ASM3_8] +~g~Nick Kong est en position près de Washington Beach. -[C3VEEE] -touche R1 +[ASM3_9] +~g~Stuntman Driver est en position à Washington. -[C0VEWEP] -~O~ +[ASM3_10] +~r~Tu n'as pas réussi à tous les descendre. -[C1VEWEP] -~O~ +[ASM_4] +MISSION ASSASSIN 4 -[C2VEWEP] -~O~ +[ASM4_1] +~g~Va récupérer le fusil laissé à ton intention dans le feuillage à l'extérieur du terminal de l'aéroport. -[C3VEWEP] -~O~ +[ASM4_2] +~g~Ne rate pas la cible où tu alerteras ses gardes du corps et garde tes distances pour qu'il ne te repère pas. -[C0PDSPR] -~X~ +[ASM4_3] +~g~Observe la femme sur le balcon au-dessus des comptoirs d'enregistrements du terminal. NE LA TUE PAS. -[C1PDSPR] -~X~ +[ASM4_4] +~g~Tue l'homme à qui elle donnera la serviette, mais seulement quand il l'aura récupérée. Prends ensuite la serviette et amène-la à Ammu-Nation dans le centre. -[C0SNZI] -~S~ +[ASM4_5] +~g~Récupère la serviette! -[C1SNZI] -~S~ +[ASM4_6] +~g~Amène la serviette à Ammu-Nation dans le centre! -[C0SNZO] -~X~ +[ASM4_7] +~r~Imbécile! Tu as tué la femme! -[C1SNZO] -~X~ +[ASM4_8] +~r~La cible t'a entendu tirer! Le deal est annulé! -[C0PDFW] -~O~ +[ASM4_9] +~r~La cible a embarqué à bord de son avion! -[C1PDFW] -~O~ +[ASM4_10] +~r~On dirait que tu n'es pas le seul à t'intéresser à cette serviette! Amène-la en vitesse à Ammu-Nation! -[C0TRSK] -~X~ +[ASM4_11] +~r~La cible t'a repéré! Le deal est annulé! -[C1TRSK] -~X~ +[ASM4_13] +~g~Il t'a repéré et essaye de s'enfuir! Rattrape-le et récupère la serviette! -[C2TRSK] -~X~ +[ASM4_14] +~g~La barre de distance dans le coin supérieur droit de l'écran te signale ta proximité avec la cible. Ne la laisse pas devenir pleine ou il te repèrera. -[C3TRSK] -~X~ +[ASM_5] +MISSION ASSASSIN 5 -[C0AMBUY] -~X~ +[KICK] +DEMARRAGE AU PIED -[C1AMBUY] -~X~ +[KICK1_3] +~g~Nombre de fautes de pied : ~1~ -[C2AMBUY] -~X~ +[KICK1_4] +~g~Pénalité de temps : ~1~ secondes -[C3AMBUY] -~X~ +[BANK] +MISSIONS BRAQUAGE -[C0AMEXI] -~T~ +[BANK1] +MISSION BRAQUAGE 1 -[C1AMEXI] -~T~ +[BANK2] +MISSION BRAQUAGE 2 -[C2AMEXI] -~T~ +[BJM2_3] +TAUX DE REUSSITE : ~1~% -[C3AMEXI] -~T~ +[BJM2_15] +SCORE : -[C2PDSPR] -~O~ +[BJM2_18] +SCORE A BATTRE : -[C3PDSPR] -~X~ +[BJM2_19] +~g~Touche autant de cibles que possible dans le temps imparti! -[C2SNZI] -~T~ +[BJM2_21] +~g~Touche autant de cibles que possible jusqu'à épuisement de tes munitions. -[C3SNZI] -~S~ +[BANK3] +MISSION BRAQUAGE 3 -[C2SNZO] -~S~ +[BJM3_1] +~g~Trouve une bagnole qui a des chevaux et rends-toi sur la grille de départ. -[C3SNZO] -~X~ +[BNK4_2A] +Les gars au garage ont fait du super boulot sur ce bébé. -[C2PDFW] -~X~ +[BNK4_3G] +Oh, merde, maintenant, on a les flics au cul! -[C3PDFW] -touche R1 +[BNK4_3H] +Et on n'est même pas encore sur place... -[MPC_020] -Rico Garlik +[BNK4_3K] +Va d'abord falloir semer les flics... -[MPC_022] -Lou Scannon +[BNK4_3L] +Merde, Tommy, t'essayes de tous nous tuer? -[MPC_024] -Cruz Vormen +[BNK4_3N] +Tout ce que j'aime part en fumée! -[MPC_026] -Busta Moves +[BNK422A] +Cam, combien de temps? -[MPC_027] -Juan Kerr +[BK4_23A] +Donne-moi 3 minutes! -[MPC_028] -Nick Yakar +[BNK4_26] +Bordel de merde! Les voilà! -[MPC_029] -Lou Bricant +[BNK4_32] +Sers-toi des explosifs pour ouvrir les coffres! -[MPC_030] -Lance Urwell +[BNK4_43] +Je nous couvre, FONCE! -[MPC_033] -Agent Ochre +[BNK4_51] +Je te trouve très bien comme ça. -[MPC_036] -Papi Love +[KENT] +MISSIONS KENT PAUL -[MPC_037] -Lucy Lastic +[KENT1] +MISSION KENT PAUL 1 -[MPC_038] -Bill Durzbum +[COUNT] +MISSIONS CONTREFACON -[MPISCOL] -Objet ramassé +[COUNT1] +MISSION CONTREFACON 1 -[MPSTART] -La partie se lance... +[COUNT2] +MISSION CONTREFACON 2 -[MRACEC1] -~w~3... +[BIKE] +MISSIONS BIKERS -[MRACEC2] -~w~2... +[BIKE1] +MISSION BIKERS 1 -[MRACEC3] -~w~1... +[BIKE2] +MISSION BIKERS 2 -[MPC_019] -Phil DeGirth +[BIKE3] +MISSION BIKERS 3 -[GDA_HL] -Mission Avenging Angel (niveau max.) +[GOAWAY1] +Reviens quand tu auras fini les missions du gang haïtien. -[MP_SNEW] -Charger ou lancer une nouvelle partie Solo ou Multijoueur. +[HAIT] +MISSIONS GANG HAITIEN -[DON2EX9] -~r~Ned~w~ s'échappe ! Ne le perds pas de vue ! +[HAIT1] +MISSION GANG HAITIEN 1 -[FEI_CHA] -Changer d'équipe +[HAIT2] +MISSION GANG HAITIEN 2 -[FES_RES] -RETABLIR PARAMETRES DE JEU +[HAIT3] +MISSION GANG HAITIEN 3 -[FESZ_QT] -Rétablir tous les paramètres des commandes, de l'audio et de l'affichage ? Continuer ? +[HAM3_6] +~g~Utilise le fusil à lunette que je t'ai donné pour les tuer! -[FEH_LOA] -JEU +[ROCK] +MISSIONS GROUPE DE ROCK -[MPEMPTY] -Vide +[ROK1_4] +~g~Ok, je crois que c'est ce que vous vouliez... -[FEMP_SN] -LANCER PARTIE (2 joueurs minimum) +[ROK1_1E] +~g~Ca te coûtera plus que ce que tu as! -[JD_SUIT] -~w~J.D. peut pas te filer de boulot tant que t'es habillé en Leone ! +[ROK1_1F] +~g~Reviens quand tu auras le pognon! -[SAVD_SH] -(planque). +[RBM2_6] +~g~Waou! C'est un mec! Arrête-le! -[SAVD_DY] -Jour +[ROCK3] +MISSION GROUPE DE ROCK 3 -[SAVD_CO] -accompli(s). +[ROK3_6D] +~r~en même temps que vos sales grosses têtes chevelues! -[SAVD_AL] -Portland (planque). Jour 71, 57640$. 17% accompli(s). +[ROK3_40] +Près de la glacière? -[SAV_SLT] -Nouvelle sauvegarde +[RBM3_5] +~g~Emmène les Love Fist au concert. -[POMOB6C] -~w~Amène-toi dès que tu peux ! J'ai du boulot pour toi. +[CUBANM] +MISSIONS GANG CUBAIN -[ANG_2] -~w~Appuie sur~h~ ~k~ ~TGSUB~ ~w~pour activer ou désactiver les missions Avenging Angels. +[CUBAN1] +MISSION GANG CUBAIN 1 -[TVHELP] -~w~Appuie sur~h~ ~k~ ~TGSUB~ ~w~pour activer ou désactiver les missions SLASH TV. +[CUBAN2] +MISSION GANG CUBAIN 2 -[PAGERA] -~w~Le ~h~M60~w~ est dispo dans ta planque ! +[CUB2_10] +~r~T'es supposé tuer des Haïtiens, pas des Cubains! -[CO_ALL] -~w~Tu as retrouvé tous les paquets ! +[CUBAN3] +MISSION GANG CUBAIN 3 -[CO_ONE] -~w~Paquet ~1~ sur ~1~ trouvé ! +[CUBAN4] +MISSION GANG CUBAIN 40 -[PAGE_14] -Explose ~1~ gangsters colombiens en 2 minutes ! +[CUB4_25] +Ok, allons-y! -[PAGE_19] -Ecrase ~1~ gangsters colombiens en 2 minutes ! +[PROT] +MISSIONS DE PROTECTION -[ANG_22] -~r~Missions Avenging Angels annulées. +[PRO1_H] +Arrêtez de vous exciter, tous les deux. Je commence à peine à voir comment les choses marchent ici. -[SLATVQO] -~r~Mission Slash TV annulée. +[PRO1_02] +~g~Sors du centre commercial. -[C0FREE1] -touche L3 +[PRO3_06] +~g~Sème les flics. -[C1FREE1] -touche L3 +[PORN] +MISSIONS PORNO -[C2FREE1] -touche L3 +[PORN1] +MISSION PORNO 1 -[C3FREE1] -touche L3 +[POR1_03] +~r~Candy est morte! -[C0FREE2] -joystick analogique gauche +[PORN2] +MISSION PORNO 2 -[C2FREE2] -joystick analogique gauche +[PORN3] +MISSION PORNO 3 -[ANGCOM1] -~w~Missions Avenging Angel : Portland - niveau 15 terminé ! La moto unique "Avenger" t'attend dans ta planque ! +[POR3_18] +T'as été repéré! -[K_CE] -~w~T'as ~1~ seconde pour remonter sur ta ~b~moto ! +[PORN4] +MISSION PORNO 4 -[HELP31] -~w~Si tu te fais ~h~arrêter~w~ ou ~h~buter~w~ lors d'une mission, ce ~h~taxi~w~ fera son apparition. +[POR4_04] +~g~Les bureaux se trouvent de l'autre côté de cette porte. -[LOSER] -~y~PERDANT ! +[PHIL] +MISSIONS PHIL -[RCRHELP] -~w~Appuie sur~h~ ~k~ ~TGSUB~ ~w~pour ~h~quitter la course~w~. Appuie sur~h~ ~k~ ~VEWEP~ ~w~pour faire réapparaître ta voiture radiocommandée au dernier point de passage. +[PHIL1] +MISSION PHIL 1 -[SRC_ON] -Maintenant que tu t'es fait un nom dans le milieu underground des courses de voitures, des challengers essaieront de te contacter. +[PHI1_06] +Qu'est-ce que tu fous à conduire comme ça? -[SRB_ON] -Maintenant que tu t'es fait un nom dans le milieu underground des courses de motos, des challengers essaieront de te contacter. +[PHI1_07] +Hé! -[RACE_R0] -~w~RECORD PRECEDENT : ~1~:~1~~1~ - -[POMOB3C] -~w~Hé, passe me voir, un de ces quatre, OK ? - -[MPHPCS1] -The Hit List - -[MPWLGOC] -Descends de la voiture. - -[MPWLLTC] -Quitte le conteneur. - -[MPWLDTC] -Livre la voiture. - -[MPWLCD] -Voiture livrée. - -[MPWLNGC] -Maintenant, récupère les voitures. - -[MPAUTO] -LIRE UNE FOIS - -[MRACEGO] -~w~GO - -[MRACE04] -TU AS GAGNE - -[MRACEWI] -a gagné la course - -[MRCPU01] -~y~REPARATION INSTANTANEE - -[DTB01] -- Protège les voitures - -[DTB02] -- Détruis les voitures - -[DTB03] -- Voiture perdue - -[DTB04] -- Voiture détruite - -[MPWIN] -gagne - -[MPKSELF] -s'est fait tuer - -[MPMORE] -victimes de plus - -[MP1MORE] -victime de plus - -[MPSTRT] -COMMENCE - -[MPTANK] -a le blindé - -[MPONE] -n'a qu'une seule caisse à récupérer - -[MPDEL] -a livré une caisse - -[MPGOCAR] -Va chercher la caisse - -[MPGOGAR] -Livre la caisse - -[MPDEST] -Véhicule cible détruit - -[MPLEFT] -a quitté la partie - -[MPHPGO2] -~w~Tu es la nouvelle cible. - -[MPHPKI] -~w~Tu as tué un assassin. - -[LOCKON] -Danger ! - -[MPHPGO] -~w~Elimine la cible. - -[MPTNK] -Récupère le blindé - -[MRCPU02] -TU AS ECLATE LES PNEUS DE TOUT LE MONDE - -[MRCPU05] -TES PNEUS ONT ECLATE - -[MRCPU06] -~y~PNEUS ADHERENTS - -[WINNER] -~Y~GAGNANT - -[MPDRAW] -~w~EGALITE - -[MPDADDY] -C'EST TOI LE BOSS ! - -[MPRUN] -: CE SONT LES ROIS DE LA VILLE - -[MPBITCH] -C'EST QUI LE BOSS, MAINTENANT ? - -[FEMP_SM] -Joue à Grand Theft Auto avec des potes ou avec des types louches situés pas loin de toi. - -[MPYL] -LOSER ! - -[MPTMWIN] -: LES MEILLEURS, CE SONT EUX ! - -[GS_SCAR] -VEHICULE : - -[GS_MIN] -minute - -[GS_MINS] -minutes - -[MPTNKGA] -T'as le blindé. - -[MPTNKGB] -Alors garde-le. - -[GS_TYPE] -SCENARIO : - -[CLILOST] -La communication avec les autres joueurs a été perdue. - -[ONEHPC] -Terminé à 100 pour cent ! Il y a une petite surprise qui t'attend à Fort Staunton. - -[MPBLTM] -sindacco - -[MPRDTM] -forelli - -[MTN_1] -Sindacco - -[MTN_2] -Forelli - -[MPRDCAP] -Leur voiture a été capturée. - -[MPBLCAP] -Leur voiture a été capturée. - -[MPRDST] -Leur voiture a été volée. - -[MPBLST] -Leur voiture a été volée. - -[MPBLEST] -Leur voiture a été volée. - -[MPRDRET] -Leur voiture a été récupérée. - -[MPBLRET] -Leur voiture a été récupérée. - -[MPRDPOS] -Leur voiture est mal placée. - -[MPBLPOS] -Leur voiture est mal placée. - -[GS_TEAM] -REJOINDRE GANG : - -[FEMP_TS] -REJOINDRE GANG : - -[MPTEAM] -Gang - -[GS_OA3] -Détruis 4 limousines dans la base du gang adverse. - -[GS_O4] -Vole la voiture du gang adverse et ramène-la à ta base, tout en protégeant la caisse de ton gang. - -[MPI06] -MEMBRE DU GANG - -[FEMP_ST] -LANCER (1 joueur ou plus par gang nécessaire) - -[HELP32] -~w~Contre une somme modique (ou gratuitement si tu n'as pas d'argent), il t'emmènera voir ton ~h~contact~w~ pour la dernière mission tentée. - -[BENZ_HO] -La ~h~salopette~w~ est dispo dans la planque. Reviens ici la nuit en la portant pour jouer à SlashTV. - -[SLATXT] -~w~Reviens ici vêtu de la 'salopette' entre 18:00 et 05:00 pour jouer à SlashTV. - -[OUTF_02] -~w~Salopette - -[CAN_CON] -~w~Appuie de nouveau sur~h~ ~k~ ~TGSUB~ ~w~pour annuler la mission. - -[GNG1] -LEONE - -[GNG2] -TRIADES - -[GNG3] -DIABLOS - -[GNG4] -YAKUZAS - -[GNG5] -YARDIES - -[GNG6] -COLOMBIENS - -[GNG7] -HOODS - -[GNG8] -SINDACCO - -[GNG9] -FORELLI - -[GNG0] -SICILIENS - -[MP_GNG1] -GANG 1 : - -[MP_GNG2] -GANG 2 : - -[GS_TEMS] -GUERRE DES GANGS - -[CARS_O] -~w~Si tu veux te faire un peu d'argent de poche, Capital Autos à Harwood cherche de nouveaux vendeurs. - -[CARTXT] -~w~Capital Autos n'est ouvert que de 08:00 à 18:00. Reviens à ce moment-là ! - -[GS_TO1] -Tue le gang adverse ! - -[MPTNEED] -a encore besoin de - -[MPTWIN] -gagnent - -[BADTEAM] -L'un des gangs n'a plus de joueurs. - -[RACELAP] -Tour - -[GS_D1] -REVIVEZ L'EMISSION TELE DEVENUE CULTE ! LE DARWINISME URBAIN EST DE RETOUR. - -[GS_D2] -QUI EST LE MEILLEUR CONDUCTEUR (OU TRICHEUR) ? - -[GS_D3] -PROTEGE TES VOITURES CONTRE LES TRUANDS ET LES VANDALES. - -[GS_D4] -VOLE LA VOITURE DU GANG ADVERSE. MOQUE-TOI D'EUX. - -[GS_D5] -QUI TIENT LE PLUS A RECUPERER CE BLINDE ? - -[GS_D6] -LA CIBLE DOIT ETRE ABATTUE. - -[GS_D7] -RECUPERE DES VOITURES. - -[HELP61] -~w~Lorsque le ~h~triangle est orienté vers le haut~w~, la ~h~cible est au-dessus de toi~w~. Un ~h~carré~w~ indique que la ~h~cible~w~ est à ton niveau. - -[ST_DRWN] -Poissons nourris - -[RACE_T4] -~r~Tu as été disqualifié car tu n'as pas trouvé de voiture. - -[RACE_T5] -~r~Tu as été disqualifié car tu n'as pas trouvé de moto. - -[PCJ600] -PCJ-600 - -[FEC_HBB] -Frein à main :~h~ ~k~ ~VEACC~ ~w~et~h~ ~k~ ~VEBRK~ - -[HJSTAT] -~w~Distance : ~1~,~1~m Hauteur : ~1~,~1~m Saltos : ~1~ Rotation : ~1~° - -[HJSTATW] -~w~Distance : ~1~,~1~m Hauteur : ~1~,~1~m Saltos : ~1~ Rotation : ~1~° Et quel atterrissage ! - -[HJSTATF] -~w~Distance : ~1~ft Hauteur : ~1~ft Saltos : ~1~ Rotation : ~1~° - -[HJSTAWF] -~w~Distance : ~1~ft Hauteur : ~1~ft Saltos : ~1~ Rotation : ~1~° Et quel atterrissage ! - -[MPUNLK] -Nouveau contenu multijoueur débloqué. Nargue les autres joueurs avec tous les trucs déments que t'as débloqués ! - -[MPUNLKA] -Contenu multijoueur intégralement débloqué. Nargue les autres joueurs avec tous les trucs déments que t'as débloqués ! - -[TOUR] -See the Sight Before your Flight - -[NDL1_A] -Noodle Punk +[PHIL2] +MISSION PHIL 2 [PIZ1_A] -Well Snacked Pizza +MISSION LIVREUR DE PIZZA -[GS_SCUT] -VOIR INTRO : +[PIZ1_03] +~g~Retourne à la pizzeria pour d'autres commandes. -[TR_00] -COURSE 1 +[PIZ1_04] +~g~Voilà tes nouvelles commandes. -[TR_01] -COURSE 2 +[PIZ1_10] +Appuie sur la ~h~ touche R3 ~w~ pour annuler les missions pizzas. -[TR_02] -COURSE 3 +[CNTBUY1] +Imprimerie achetée : $~1~ -[TR_03] -COURSE 4 +[CARBUY] +Concession achetée : $~1~ -[TR_04] -COURSE 5 +[PORNBUY] +Studio de cinéma acheté: $~1~ -[TR_05] -COURSE 6 +[ICEBUY] +Usine de crème glacée achetée: $~1~ -[TR_06] -COURSE 7 +[TAXIBUY] +Compagnie de taxis achetée: $~1~ -[TR_07] -COURSE 8 +[BANKBUY] +Club Malibu acheté : $~1~ -[CHSE] -POURSUITE +[BOATBUY] +Chantier naval acheté: $~1~ -[NOCHANG] -Tu ne peux pas changer de vêtements au cours de cette mission. +[PRNT_NO] +Tu ne peux pas acheter l'imprimerie pour l'instant, reviens plus tard. -[OUTF_12] -Antonio +[CAR_NO] +Tu ne peux pas acheter la concession automobile pour l'instant, reviens plus tard. -[OUTF_13] -Jogging +[PORN_NO] +Tu ne peux pas acheter le studio de cinéma pour l'instant, reviens plus tard. -[OUTF_14] -Mafieux +[ICE_NO] +Tu ne peux pas acheter l'usine de crème glacée pour l'instant, reviens plus tard. -[OUTF_15] -Petit malin +[TAXI_NO] +Tu ne peux pas acheter la compagnie de taxis pour l'instant, reviens plus tard. -[BENZ_AN] -~w~La ~h~tenue d'Antonio~w~ est dispo dans ta planque. +[BANK_NO] +Tu ne peux pas acheter le club Malibu pour l'instant, reviens plus tard. -[BENZ_SW] -~w~Le ~h~jogging~w~ est dispo dans ta planque. +[BOAT_NO] +Tu ne peux pas acheter le chantier naval pour l'instant, reviens plus tard. -[BENZ_GD] -~w~La ~h~tenue Mafieux~w~ est dispo dans ta planque. +[PRNT_R3] +Appuie sur la touche R3 pour acheter l'imprimerie au prix de $~1~ -[BENZ_WI] -~w~La ~h~tenue Petit malin~w~ est dispo dans ta planque. +[CAR_R3] +Appuie sur la touche R3 pour acheter la concession automobile au prix de $~1~ -[RAMPAGE] -RODEO +[PORN_R3] +Appuie sur la touche R3 pour acheter le studio de cinéma au prix de $~1~ -[GS_TTGT] -TEMPS BLINDE : +[ICE_R3] +Appuie sur la touche R3 pour acheter l'usine de crème glacée au prix de $~1~ -[GS_O5] -Pour gagner, reste en vie le plus longtemps possible dans le blindé. Endommage le blindé pour le voler à un autre joueur. +[TAXI_R3] +Appuie sur la touche R3 pour acheter la compagnie de taxis au prix de $~1~ -[HELP28] -~w~Pour lancer une ~h~arme explosive~w~, appuie sur~h~ ~k~ ~PDFW~. ~w~Plus tu appuies longuement sur~h~ ~k~ ~PDFW~, ~w~plus l'arme ira loin. +[BANK_R3] +Appuie sur la touche R3 pour acheter le club Malibu au prix de $~1~ -[RATNG53] -Déshonorant +[BOAT_R3] +Appuie sur la touche R3 pour acheter le chantier naval au prix de $~1~ -[RATNG54] -Sale tricheur +[COL2_6] +Arrête espèce de porc impérialiste d'Américain! -[RATNG55] -Requin +[COL2_6B] +Ceci est la propriété du gouvernement français! -[RATNG56] -Escroc +[COL2_6C] +Et c'est terminé. -[RATNG57] -Le Don de tous les menteurs +[COL3_A] +Thomas, merci d'être venu. -[RATNG11] -SANGSUE +[COL3_B] +Désolé d'aller droit au but... -[CHASE6] -Liberty Tree Page 2 +[COL3_C] +Diaz m'a demandé de superviser une petite transaction financière. -[CHASE7] -Liberty Tree Première page +[COL3_D] +Espérons que ça se passera mieux que la dernière fois. -[AUTOLD] -Chargement depuis le Memory Stick™, ne pas retirer le Memory Stick™ ou redémarrer le système. +[COL3_E] +C'est la raison pour laquelle j'ai pensé à vous, mon ami. -[LDFAIL] -Echec du chargement. Les données sauvegardées sont corrompues. +[COL3_F] +J'ai laissé un revolver au parking à niveaux. -[MEMCHKA] -Memory Stick™ introuvable. Au moins +[COL3_G] +Récupèrez-le et allez surveiller les mecs de Diaz au dépôt. -[MEMCHKB] -sont nécessaires pour sauvegarder ces données de jeu. +[COL4_2] +Je sais pas, chef! -[MEMCHKC] -Espace insuffisant sur le Memory Stick™. Au moins +[COL4_5] +Chef, oui, chef! -[MEMCHKD] -sont nécessaires pour sauvegarder ces données de jeu. +[COL4_10] +Allons manger quelques beignets. -[M_FAIL] -ECHEC DE LA MISSION ! +[COL4_16] +Chef, on déplace le véhicule, chef! -[M_OVER] -FIN DE LA MISSION ! +[COL4_25] +Autodestruction du véhicule initialisée! -[M_PASS] -~Y~MISSION TERMINEE ! ~n~~1~$ +[COL5_6] +Mercedes, cette fille aura ma peau. -[M_PASSN] -~Y~MISSION TERMINEE +[COL5_8] +Maudit cafard! -[MRACE11] -~w~Remonte dans un véhicule pour terminer la course. +[COL5_5] +Crevez, porcs de Français! -[FEI_LE1] -Avec légende +[CNT2_1] +Tuez-le! -[FEI_LE2] -Sans légende +[CNT2_2] +Récupérez les plaques! -[FEI_TA1] -Avec cible +[CNT2_3] +Protégez le coursier! -[FEI_TA2] -Sans cible +[FINKILL] +Ok, les mecs, butez-le! -[C1FREE2] -joystick analogique gauche +[FIN_6] +Sonny est en haut avec le coffre et MON argent... -[C3FREE2] -joystick analogique gauche +[FIN_10] +Sonny? SONNY! Je viens te chercher! -[FEA_MP3] -BANDE-SON PERSO : +[RACES_4] +3 -[FEA_NA] -NON DISPONIBLE +[RACES_5] +2 -[MPC_060] -Antonio +[RACES_6] +1 -[MPC_061] -Jogging +[RACES_7] +PARTEZ! -[MPC_062] -Mafieux +[RACES_9] +Temps : ~1~:~1~ -[MPC_063] -Petit malin +[RACES] +TEMPS : -[MPC_064] -Kazuki +[RACES17] +Nv temps record : ~1~:~1~ -[NUMDBL1] -DEBUG 1 (~1~) (~1~) +[RACES20] +Nv temps record : ~1~:0~1~ -[SVRMBRS] -JOUEURS : +[RACES21] +Temps : ~1~:0~1~ -[RAMP_P] -RODEO TERMINE ! +[RCH1_1] +~g~Utilise l'hélicoptère radiocommandé, le RC Raider, pour PASSER les points de passage. -[RAMP_F] -ECHEC DU RODEO ! +[RCH1_2] +~g~Les POINTS DE PASSAGE sont disséminés dans l'aéroport. -[MPWLPAC] -a récupéré une voiture cible. +[RCH1_3] +~g~Tu as ~c~8 minutes~g~ pour passer les ~c~20! -[MPWLDAC] -a livré une voiture cible. +[RCH1_5] +Temps -[LDWAIT] -Appuie sur ~X~ pour continuer. +[RCRC1_1] +~g~Fais une COURSE DE POINTS DE PASSAGE contre deux autres RC Bandits sur 2 TOURS -[LOADING] -Chargement... Un instant. +[RCRC1_2] +~g~Va sur la grille de départ! -[RACEP1] -1er +[RCRC1_3] +~g~Dernier tour! -[RACEP2] -2e +[RCRC1_4] +~g~3 -[RACEP3] -3e +[RCRC1_5] +~g~2 -[RACEP4] -4e +[RCRC1_6] +~g~1 -[RACEP5] -5e +[RCRC1_7] +~g~PARTEZ! -[RACEP6] -6e +[RCRC1_8] +~g~Temps de course : ~1~ secondes -[FEA_UT] -Piste inconnue +[RCPL1_1] +~g~Fais une COURSE DE POINTS DE PASSAGE contre 3 autres RC Baron -[LOADIN2] -Chargement... +[RCPL1_2] +~g~Tu dois passer par le ~o~CENTRE CORONA ~g~pour valider un point de passage. -[DNH5_X2] -~r~T'as pas amorcé toutes les bombes. +[RCPL1_3] +~g~Va sur la grille de départ maintenant! -[MRACE12] -T'AS +[FEA_2SP] +2 haut-parleurs -[MRACE13] -s POUR TROUVER UN VEHICULE +[FEA_4SP] +Plus de 2 haut-parleurs -[MRACE14] -s POUR TROUVER UN VEHICULE +[FEA_EAR] +Casque -[DTB_03] -~w~L'équipe qui défend ses caisses le plus longtemps remporte la partie. +[FEA_NAH] +PAS DE MATERIEL AUDIO -[PUPCOL] -a récupéré un bonus +[FET_APP] +APPLIQUER -[TNKCSE] -Endommage le blindé pour le voler à un autre joueur. +[FES_SKN] +NOM DU SKIN -[TNKTM] -Pour gagner, reste en vie le plus longtemps possible dans le blindé. +[FES_DAT] +DATE -[MPFAIL] -RATE ! +[FES_SET] +Utiliser Skin -[GS_LOC2] -LIEU : +[FET_DEF] +Par défaut -[DTBSWPA] -T'as tenu les Sindacco à l'écart pendant +[FESZ_QZ] +Veux-tu vraiment sauvegarder cette partie? -[DTBSWPB] -Maintenant, détruis leurs caisses en moins de temps. +[FES_SCG] +Sauvegarder la partie en cours? -[DTBSWPC] -T'as détruit les caisses des Forelli en +[FES_LCG] +Charger la partie et continuer à jouer? -[DTBSWPD] -Maintenant, protège tes caisses pendant plus longtemps. +[FEC_FIR] +Tirer -[CHANOP] -Changer d'option +[FEC_NWE] +Arme suivante -[MPSSCT] -ARGENT CIBLE : +[FEC_PWE] +Arme précédente -[F_RANG2] -~r~La radio du camion de pompiers ne fonctionne pas dans le métro ! +[FEC_FOR] +Avant -[T_RANG2] -~r~Il n'y a pas d'ordures à ramasser dans le métro ! +[FEC_BAC] +Arrière -[T_RANGE] -~r~Il n'y a pas d'ordures à ramasser ici ! +[FEC_LEF] +Gauche -[FEU_YES] -OUI +[FEC_RIG] +Droite -[FEU_NO] -NON +[FEC_ZIN] +Zoom avant -[HELP43] -~w~Utilise le frein à main pour faire virer ton bateau plus rapidement. +[FEC_ZOT] +Zoom arrière -[RACE_T6] -~r~Un des véhicules a été détruit - la course est annulée ! +[FEC_EEX] +Entrer+sortir + +[FEC_RAD] +Radio + +[FEC_SUB] +Sous-mission + +[FEC_CMR] +Changer caméra + +[FEC_JMP] +Sauter + +[FEC_SPN] +Courir + +[FEC_HND] +Frein à main + +[FEC_LOL] +Regarder à gauche + +[FEC_LOR] +Regarder à droite + +[FEC_NTR] +Cible suivante + +[FEC_PTT] +Cible précédente + +[FEC_LBA] +Regarder derrière + +[FEC_CEN] +Centrer caméra + +[FET_CCN] +Classique + +[FET_SCN] +Standard + +[FET_CFT] +A PIED + +[FET_CCR] +EN VOITURE + +[FET_CAC] +ACTION + +[FEC_IBT] +- + +[FEC_MXO] +MXB1 + +[FEC_MXT] +MXB2 + +[FEC_UNB] +NON LIE + +[FEC_TFL] +Regard gauche+tourelle G + +[FEC_TFR] +Regarde droite+tourelle D + +[FEC_MWF] +VOLANT MS HAUT + +[FEC_MWB] +VOLANT MX BAS + +[FEC_ORR] +ou + +[FEC_NUS] +NON UTILISE + +[FEC_LUD] +Regarder en haut + +[FEC_LDU] +Regarder en bas + +[FEC_CMP] +COMBO : REGARDER G+D + +[LAW_1A] +law_1a + +[LAW_1B] +law_1b + +[LAW_2A] +law_2a + +[LAW_2B] +law_2b + +[FEH_STA] +STATS + +[FEH_LOA] +CHARGER + +[FEH_CON] +COMMANDES + +[FEH_AUD] +AUDIO + +[FEH_DIS] +AFFICHAGE + +[FEH_LAN] +LANGUE + +[FEH_SGA] +LANCER NOUVELLE PARTIE + +[FEO_CON] +Configuration manette + +[FEO_AUD] +Configuration audio + +[FEO_DIS] +Configuration affichage + +[FEO_LAN] +Choix langue + +[FEO_PLA] +Configuration joueur + +[FEA_OUT] +Sortie + +[FEA_ST] +Stéréo + +[FEA_DTS] +DTS + +[FEA_RSS] +Station de radio + +[FEA_NON] +RADIO ETEINTE + +[FEA_FM0] +WILDSTYLE + +[FEA_FM1] +FLASH FM + +[FEA_FM2] +KCHAT + +[FEA_FM3] +FEVER 105 + +[FEA_FM4] +VROCK + +[FEA_FM5] +VCPR + +[FEA_FM7] +EMOTION 98.3 + +[FEA_FM8] +ONDE 103 + +[FED_BRI] +Luminosité + +[FED_TRA] +Rémanences : + +[FED_SUB] +Sous-titres + +[FED_WIS] +Ecran large [FED_POS] -POSITION ECRAN +Position écran -[FES_DSS] -Choisir une sauvegarde à effacer : +[FEP_RES] +Reprendre -[FES_LSS] -Choisir une sauvegarde à charger : +[FEP_STG] +Commencer partie -[FES_DSC] -Effacement réussi. Pour continuer, sélectionner OK. +[FEP_STA] +Stats + +[FEP_BRI] +Briefings + +[FEP_OPT] +Options + +[FEP_QUI] +Quitter partie + +[FES_LOA] +Charger partie [FES_DEL] Effacer partie -[FES_DGM] -EFFACER PARTIE +[FEC_CSU] +Configuration manette -[ITBEG] -Au commencement... +[FEC_RED] +Réassigner commandes -[FET_LG] -CHARGER +[FEC_MOU] +Paramètres souris -[FES_SCG] -Sauvegarder la partie en cours ? +[DISTGOL] +Dist. parcourue en voiturette (miles) -[FESZ_QZ] -Sauvegarder cette partie ? +[DISTGOM] +Distance parcourue en voiturette (m) -[FES_SSC] -Sauvegarde réussie. Pour continuer, sélectionner OK. +[ST_FAVR] +Station de radio préférée -[FEM_NTF] -La memory card (8MB) (pour PlayStation®2) dans la fente pour MEMORY CARD N°1 n'est pas formatée. +[ST_WSTR] +Station de radio la moins écoutée -[FES_CFM] -Formatage de la memory card (8MB) (pour PlayStation®2) dans la fente pour MEMORY CARD N°1. Ne pas retirer la memory card (8MB) (pour PlayStation®2) ou la manette, ni redémarrer ou éteindre la console. +[ST_FAVV] +Véhicule préféré -[FES_LOQ] -Echec du chargement ! La sauvegarde sur la memory card (8MB) (pour PlayStation®2) dans la fente pour MEMORY CARD N°1 n'est pas compatible avec le jeu. Le jeu est en train d'être relancé. +[ST_STAR] +Total d'étoiles de recherche obtenues -[FEM_NTH] -Pas de memory card (8MB) (pour PlayStation®2) insérée dans la fente pour MEMORY CARD N°1. +[ST_HEAD] +Nombre de tirs à la tête -[FES_CMP] -Echec de la sauvegarde ! Vérifier la memory card (8MB) (pour PlayStation®2) dans la fente pour MEMORY CARD N°1 et réessayer. +[ST_GANG] +Gang le moins apprécié -[FESZ_FO] -La memory card (8MB) (pour PlayStation®2) dans la fente pour MEMORY CARD N°1 n'est pas formatée. Voulez-vous la formater ? +[ST_STGN] +Total d'étoiles de recherche évitées -[FES_NOC] -Pas de memory card (8MB) (pour PlayStation®2) insérée dans la fente pour MEMORY CARD N°1. +[TYREPOP] +Pneus crevés avec des balles -[FES_LOE] -Echec du chargement ! Vérifier la memory card (8MB) (pour PlayStation®2) dans la fente pour MEMORY CARD N°1 et réessayer. Le jeu est en train d'être relancé. +[TYRESLA] +Pneus lacérés avec une lame -[FES_DEE] -Echec de l'effacement ! Vérifier la memory card (8MB) (pour PlayStation®2) dans la fente pour MEMORY CARD N°1 et réessayer. +[ST_BRK] +Nombre de victimes dans le Bloodring -[SLONFM] -Echec du formatage ! Vérifier la memory card (8MB) (pour PlayStation®2) dans la fente pour MEMORY CARD N°1 et réessayer. +[ST_LTBR] +Plus longue durée dans le Bloodring (sec) -[SLONDR] -Espace insuffisant sur la memory card (8MB) (pour PlayStation®2) dans la fente pour MEMORY CARD N°1. Insérer une memory card (8MB) (pour PlayStation®2) dans la fente pour MEMORY CARD N°1 avec au moins 330 KB d'espace libre, ou libérer de l'espace pour pouvoir sauvegarder les données de jeu. +[ST_GNG1] +Cubains -[SLNSP] -Espace insuffisant sur la memory card (8MB) (pour PlayStation®2) dans la fente pour MEMORY CARD N°1. Au moins 101 KB d'espace libre supplémentaire sont nécessaires sur la memory card (8MB) (pour PlayStation®2) dans la fente pour MEMORY CARD N°1 pour pouvoir sauvegarder les données de jeu. +[ST_GNG2] +Haïtiens -[SLONNF] -La memory card (8MB) (pour PlayStation®2) dans la fente pour MEMORY CARD N°1 n'est pas formatée. Voulez-vous la formater ? +[ST_GNG3] +Faux voyous -[FESZ_FF] -Echec du formatage ! Vérifier la memory card (8MB) (pour PlayStation®2) dans la fente pour MEMORY CARD N°1 et réessayer. +[ST_GNG4] +Gang de Diaz -[MCDNSP] -Pas de memory card (8MB) (pour PlayStation®2) insérée dans la fente pour MEMORY CARD N°1. Pour sauvegarder les données de jeu, insérer une memory card (8MB) (pour PlayStation®2) avec au moins 330 KB d'espace libre. Voulez-vous quand même commencer une partie ? +[ST_GNG5] +Agents de sécurité -[MCGNDP] -Espace insuffisant sur la memory card (8MB) (pour PlayStation®2) dans la fente pour MEMORY CARD N°1. Au moins 330 KB d'espace libre sont nécessaires pour sauvegarder ces données de jeu. Voulez-vous quand même commencer une partie ? +[ST_GNG6] +Gang de motards -[MCGNSP] -Espace insuffisant sur la memory card (8MB) (pour PlayStation®2) dans la fente pour MEMORY CARD N°1. Au moins 101 KB d'espace libre supplémentaire sont nécessaires sur la memory card (8MB) (pour PlayStation®2) dans la fente pour MEMORY CARD N°1 pour sauvegarder ces données de jeu. Voulez-vous quand même commencer une partie ? +[ST_GNG7] +Gang de Vercetti -[FESZ_WR] -Sauvegarde en cours. Ne pas retirer la memory card (8MB) (pour PlayStation®2) dans la fente pour MEMORY CARD N°1 ou la manette, ni redémarrer ou éteindre la console. +[ST_GNG8] +Golfeurs -[FELD_WR] -Chargement en cours. Ne pas retirer la memory card (8MB) (pour PlayStation®2) dans la fente pour MEMORY CARD N°1 ou la manette, ni redémarrer ou éteindre la console. +[FEA_FM6] +ESPANTOSO -[FEDL_WR] -Effacement en cours. Ne pas retirer la memory card (8MB) (pour PlayStation®2) dans la fente pour MEMORY CARD N°1 ou la manette, ni redémarrer ou éteindre la console. +[ST_ASSI] +Contrats exécutés -[C0VEWEA] -joystick analogique droit +[DISTBIK] +Dist. parcourue à moto (miles) -[C1VEWEA] -joystick analogique droit +[DISTBIM] +Dist. parcourue à moto (m) -[C2VEWEA] -joystick analogique droit +[HOTEL] +Hôtel Ocean View -[C3VEWEA] -touches directionnelles +[ICC1_1] +~g~Utilise ta camionnette de crème glacée pour distribuer de la drogue à Vice City. -[C0PDLOO] -joystick analogique droit +[ICC1_2] +~g~Gare ta camionnette et appuie sur ~h~~k~~VEHICLE_HORN~~w~ pour jouer le jingle et signaler à tes clients que tu es prêt. -[C1PDLOO] -joystick analogique droit +[ICC1_3] +~g~Tu reçois de l'argent pour chaque transaction faite, mais plus tu fais d'affaires, plus tu attires l'attention de la police. -[C2PDLOO] -joystick analogique droit +[KICK1_9] +POINTS DE PASSAGE RESTANTS : -[C3PDLOO] -joystick analogique droit +[FIN_B6] +Tu n'as pas assez d'argent pour commencer cette mission. -[C0AMMOV] -joystick analogique gauche ou touches directionnelles +[TEX3_3] +~g~Pour ramasser une bombe, manoeuvre l'hélico au-dessus d'elle. La bombe est alors automatiquement fixée sous la carlingue. -[C1AMMOV] -joystick analogique gauche ou touches directionnelles +[TEX3_9] +~g~Ramasse une bombe en manoeuvrant l'hélico à côté d'elle. -[C2AMMOV] -joystick analogique gauche ou touches directionnelles - -[C3AMMOV] -joystick analogique gauche ou touches directionnelles - -[FEC_ACB] -Accélérer/Freiner - -[FEM_SL8] -Sauvegarde 8 absente - -[FES_SAV] -SAUVEGARDER +[HELP22] +Va vers la position du bip de la maison verte sur le radar. [FES_FMS] -Formatage réussi. +Formatage terminé. Sélectionne OK pour continuer. -[MCDNCK] -Vérification de la memory card (8MB) (pour PlayStation®2) dans la fente pour MEMORY CARD N°1. Ne pas retirer la memory card (8MB) (pour PlayStation®2) ou la manette, ni redémarrer ou éteindre la console. +[FES_SSC] +Sauvegarde terminée. Sélectionne OK pour continuer. + +[FES_DSC] +Suppression terminée. Sélectionne OK pour continuer. [FESZ_QC] -Procéder à l'écrasement de cette sauvegarde corrompue ? +Ecraser ce fichier de sauvegarde corrompu? -[NOCONT] -Pour continuer, connecter une manette analogique (DUALSHOCK®) ou une manette analogique (DUALSHOCK®2) au port de manette N°1. +[FES_CHE] +Attention! Un ou plusieurs codes ont été activés, ce qui peut affecter votre fichier de sauvegarde. Sauvegarde déconseillée. -[FES_LCF] -Echec du chargement ! Vérifier la memory card (8MB) (pour PlayStation®2) dans la fente pour MEMORY CARD N°1 et réessayer. +[FET_SG] +SAUVEGARDER -[DBGHELP] -~h~DEBUG MENU~w~ Select Item with ~h~left button & right button. ~w~Press ~h~X button ~w~to launch. Press ~h~TRIANGLE button ~w~to quit menu. +[FEH_BRI] +BRIEFING -[DBGSEL1] -Level Skip Menu +[FEH_MAP] +CARTE -[DBGSEL2] -Car Viewer +[FEM_OK] +OK -[DBGSEL3] -Character Viewer +[FEC_CRO] +S'accroupir -[DBGSEL4] -Building Viewer +[FEC_CR3] +S'accroupir (touche L3) -[DBGSEL5] -Weapon Cheat +[FEC_SMT] +Sous-mission -[DBGSEL6] -Player Cheat +[FEC_SM3] +Sous-mission (touche R3) -[DBGSEL7] -Weather and Time Changer +[FEC_RSC] +Stations de radio -[DBGSEL8] -Marketing Camera +[ST_PR01] +Pilote -[DBGSEL9] -MoCap Menu +[ST_PR02] +Soldat armée de l'air -[DBGSE10] -USJ Editor +[ST_PR03] +Officier pilote -[DBGSE11] -Toggle Player Coordinates +[ST_PR04] +Caporal -[DBGFIL0] -Ped Selector +[ST_PR05] +Lieutenant -[DBGFIL1] -Car Selector +[ST_PR06] +Sergent -[PLCHLD] -Placeholder: mission will complete in 5 seconds +[ST_PR07] +Capitaine -[PLCHLD2] -Placeholder Cutscene +[ST_PR08] +Biggs -[PLCHLD3] -Placeholder (MOCAP) Cutscene +[ST_PR09] +Wedge -[LS_MAC] -Ma Cipriani stream +[ST_PR10] +Baron rouge -[LS_JDT] -J.D. O'Toole stream +[ST_PR11] +Goose -[LS_SAL] -Salvatore stream +[ST_PR12] +Viper -[LS_COMP] -Completed all Missions in this stream +[ST_PR13] +Jester -[TEMP1] -Number: ~1~ +[ST_PR14] +Chappy -[LS2_H1] -Use ~h~analog up & down ~w~to select story stream. Use ~h~analog left & right ~w~to select mission. Use ~h~L button & R button ~w~to select an island. Press ~h~X button ~w~to start mission. Press ~h~TRIANGLE button ~w~to exit. +[ST_PR15] +Iceman -[LS2_H2] -You cannot use levelskip when you are ~h~on a mission. +[ST_PR16] +Maverick -[LS2_VIC] -~y~Vincenzo Cilli -~g~ ~a~ +[ST_PR17] +Noops -[LS2_MAC] -~y~Ma Cipriani -~g~ ~a~ +[ST_PR18] +Maréchal de l'air -[LS2_JDT] -~y~J.D. O'Toole -~g~ ~a~ +[ST_PR19] +As -[LS2_SAL] -~y~Salvatore -~g~ ~a~ +[FET_LG] +Charger partie -[LS2_MAR] -~y~Maria -~g~ ~a~ +[CAR_EXP] +Véhicules routiers détruits -[LS2_NED] -~y~Ned Burner -~g~ ~a~ +[BOA_EXP] +Bateaux détruits -[LS2_DON] -~y~Donald Love -~g~ ~a~ +[HEL_DST] +Avions et hélicoptères détruits -[LS2_RAY] -~y~Ray Machowski -~g~ ~a~ +[STFT_01] +Meilleur temps sur 'Alliage d'Acier' -[LS2_TOS] -~y~Toshiko Kasen -~g~ ~a~ +[STFT_02] +Meilleur temps sur 'Le chauffeur' -[FREEON] -Time Frozen +[STFT_03] +Meilleur temps sur Dirt Ring -[FREEOFF] -Time Unfrozen +[STFT_04] +Meilleur temps course avion télécommandé -[WTC_INS] -Use ~h~analog up & down ~w~to change weather. Use ~h~analog left & right ~w~to change hour. Press ~h~TRIANGLE button ~w~to exit. Press ~h~SQUARE button ~w~to freeze time. +[STFT_05] +Meilleur temps course voiture télécommandée -[WTC_TIM] -TIME: ~1~:00 +[STFT_06] +Meilleur temps hélico télécommandé -[WTC_WE0] -WEATHER: CLOUDY +[STFT_07] +Meilleur temps sur 'Terminal Velocity' -[WTC_WE1] -WEATHER: EXTRA COLOURS +[STFT_08] +Meilleur temps sur 'Ocean Drive' -[WTC_WE2] -WEATHER: EXTRA SUNNY +[STFT_09] +Meilleur temps sur 'Border Run' -[WTC_WE3] -WEATHER: FOGGY +[STFT_10] +Meilleur temps sur 'Capital Cruise' -[WTC_WE4] -WEATHER: HURRICANE +[STFT_11] +Meilleur temps sur 'Virée!' -[WTC_WE5] -WEATHER: RAINY +[STFT_12] +Meilleur temps sur 'Endurance V.C.' -[WTC_WE6] -WEATHER: SNOW +[STHC_01] +Meilleur score sur Le Flingueur. -[WTC_WE7] -WEATHER: SUNNY +[STHC_02] +Meilleur pourcentage de tir au but sur le Flingueur. -[CVHELP] -Use ~h~up button and down button ~w~to change character. Use ~h~left button and right button ~w~to rotate camera. HOLD ~h~SQUARE ~w~to zoom in (toggles upper and lower body). Press ~h~TRIANGLE ~w~to quit character viewer. +[STHC_03] +Nombre de deals de drogue -[VMENU1] ---------- Select a Viewer --------- --- ~h~Car~w~ - Character - Building -- +[HELP24] +Tu peux maintenant bosser pour le colonel. -[VMENU2] ---------- Select a Viewer --------- --- Car - ~h~Character~w~ - Building -- +[HELP25] +Tu peux maintenant bosser pour Avery Carrington -[VMENU3] ---------- Select a Viewer --------- --- Car - Character - ~h~Building~w~ -- +[HELP29] +Tu peux te rendre au magasin de fringues quand tu n'es pas en mission. -[CV_C] -COMPARISON MODEL +[HELP30] +Quand tu achètes de nouvelles fringues, ton indice de recherche retombe à zéro. -[CV_0] -ROW: -- MODEL: player +[BJM2_22] +~r~Tu as quitté le stand de tir! -[CV_1] -ROW: 114 MODEL: cop +[BJM2_23] +~g~Si tu quittes le stand de tir pendant la compétition, la mission est un échec. -[CV_2] -ROW: 115 MODEL: swat +[ASM4_24] +Distance : -[CV_3] -ROW: 116 MODEL: fbi +[RBM1_6] +~g~Ramène Mercedes et le Love Juice au groupe, au studio d'enregistrement. -[CV_4] -ROW: 117 MODEL: army +[RBM1_3] +PLUS NECESSAIRE -[CV_5] -ROW: 118 MODEL: medic +[HAM1_5] +PLUS NECESSAIRE -[CV_6] -ROW: 119 MODEL: fireman +[RBM1_11] +PLUS NECESSAIRE -[CV_7] -ROW: 71 MODEL: male01 +[HELP31] +Pour réaliser un arrosage latéral, regarde d'abord à droite ou à gauche en utilisant ~k~~VEHICLE_LOOKLEFT~ ou ~k~~VEHICLE_LOOKRIGHT~. -[CV_9] -ROW: 120 MODEL: taxi_d +[HELP34] +Tu dois être armé d'une mitraillette pour réaliser un arrosage latéral. -[CV_10] -ROW: 2 MODEL: pimp +[STRIP_1] +~r~T'as pas assez de pognon, pauvre fauché! -[CV_11] -ROW: 13 MODEL: criminal01 +[EXIT_1] +Appuie sur ~k~~PED_SPRINT~ pour sortir. -[CV_12] -ROW: 14 MODEL: criminal02 +[ASM1_A] +M. Teal, votre aide dans l'éradication de ces indésirables fut une excellente affaire. J'ai un autre travail plus en finesse pour vous. -[CV_13] -ROW: 15 MODEL: male02 +[ASM1_B] +Regardez sous le téléphone. -[CV_14] -ROW: 16 MODEL: male03 +[ASM1_C] +J'ai un autre travail plus en finesse pour vous. -[CV_15] -ROW: 121 MODEL: fatmale01 +[SCARF] +Appartement 3c -[CV_16] -ROW: 17 MODEL: fatmale02 +[LAW4_10] +Les patrons sont tous des salauds! -[CV_17] -ROW: 18 MODEL: female01 +[GEN1_04] +~g~Passe la porte pour accéder au toit de Gonzalez. -[CV_18] -ROW: 19 MODEL: female02 +[GEN1_17] +~g~Gonzalez se fait la malle! Suis-le et finis-en avec lui! -[CV_19] -ROW: 20 MODEL: female03 +[RCH1_9] +~b~TEMPS TOTAL : ~1~:~1~ -[CV_20] -ROW: 21 MODEL: fatfemale01 +[RCH1_10] +~b~TEMPS TOTAL : ~1~:0~1~ -[CV_21] -ROW: 22 MODEL: fatfemale02 +[WHEEL01] +DOUBLE BONUS DEUX ROUES : $ ~1~ Distance : ~1~.~1~m Temps : ~1~ secondes -[CV_22] -ROW: 23 MODEL: prostitute +[WHEEL02] +DOUBLE BONUS DEUX ROUES : $ ~1~ Distance : ~1~ feet Temps : ~1~ secondes -[CV_23] -ROW: 24 MODEL: prostitute2 +[WHEEL03] +BONUS DEUX ROUES : $ ~1~ Temps : ~1~ secondes -[CV_24] -ROW: 25 MODEL: p_man1 +[WHEEL04] +BONUS DEUX ROUES : $ ~1~ Distance : ~1~.~1~m -[CV_25] -ROW: 26 MODEL: p_man2 +[WHEEL05] +BONUS DEUX ROUES : $ ~1~ Distance : ~1~ pieds -[CV_26] -ROW: 27 MODEL: p_wom1 +[WHEEL06] +BONUS ROUE ARRIERE : $ ~1~ Distance : ~1~.~1~m Temps : ~1~ secondes -[CV_27] -ROW: 28 MODEL: p_wom2 +[WHEEL07] +BONUS ROUE ARRIERE : $ ~1~ Distance : ~1~ feet Temps : ~1~ secondes -[CV_28] -ROW: 29 MODEL: ct_man1 +[WHEEL08] +BONUS ROUE ARRIERE : $ ~1~ Temps : ~1~ secondes -[CV_29] -ROW: 30 MODEL: ct_man2 +[WHEEL09] +BONUS ROUE ARRIERE : $ ~1~ Distance : ~1~.~1~m -[CV_30] -ROW: 31 MODEL: ct_wom1 +[WHEEL10] +BONUS ROUE ARRIERE : $ ~1~ Distance : ~1~ pieds -[CV_31] -ROW: 32 MODEL: ct_wom2 +[WHEEL11] +BONUS ROUE AVANT : $ ~1~ Distance : ~1~.~1~m Temps : ~1~ secondes -[CV_32] -ROW: 33 MODEL: li_man1 +[WHEEL12] +BONUS ROUE AVANT : $ ~1~ Distance : ~1~ pieds Temps : ~1~ secondes -[CV_33] -ROW: 34 MODEL: li_man2 +[WHEEL13] +BONUS ROUE AVANT: $ ~1~ Temps : ~1~ secondes -[CV_34] -ROW: 35 MODEL: li_wom1 +[WHEEL14] +BONUS ROUE AVANT : $ ~1~ Distance : ~1~.~1~m -[CV_35] -ROW: 36 MODEL: li_wom2 +[WHEEL15] +BONUS ROUE AVANT : $ ~1~ Distance : ~1~ pieds -[CV_36] -ROW: 37 MODEL: docker1 +[ROK3_72] +Love Fist! -[CV_37] -ROW: 38 MODEL: docker2 +[POR1_19] +Hé! -[CV_38] -ROW: 39 MODEL: scum_man +[DESPERA] +Desperado -[CV_39] -ROW: 40 MODEL: scum_wom +[MOB_99A] +Rends-toi à la cabine près du centre commercial à Washington. -[CV_40] -ROW: 41 MODEL: worker1 +[MOB_98A] +Rends-toi à la cabine dans Vice Point. -[CV_41] -ROW: 42 MODEL: worker2 +[MOB_96A] +Rends-toi à la cabine du terminal de l'aéroport. -[CV_42] -ROW: 43 MODEL: b_man1 +[MOB_95A] +Rends-toi à la cabine dans Little Havana. -[CV_43] -ROW: 44 MODEL: b_man2 +[BNK1_1] +Je peux vous aider, monsieur? -[CV_44] -ROW: 67 MODEL: b_man3 +[BNK1_2] +Il y a un imposteur! -[CV_45] -ROW: 45 MODEL: b_wom1 +[BNK1_3] +Il a pêté les plombs! -[CV_46] -ROW: 46 MODEL: b_wom2 +[BNK1_4] +Bon sang, t'es qui, toi? -[CV_47] -ROW: 70 MODEL: b_wom3 +[BNK1_5] +Où es ton badge? -[CV_48] -ROW: 47 MODEL: mod_man +[BNK1_6] +Les voilà! Descendez-les! -[CV_49] -ROW: 48 MODEL: mod_wom +[MOB_24A] +Bonjour, c'est M. Vercetti? -[CV_50] -ROW: 49 MODEL: st_man +[MOB_24B] +Oui. -[CV_51] -ROW: 50 MODEL: st_wom +[MOB_24C] +ici Cortez. Vous étiez à ma fête. -[CV_52] -ROW: 51 MODEL: fan_man1 +[MOB_24D] +Oui, je me souviens. -[CV_53] -ROW: 52 MODEL: fan_man2 +[MOB_24E] +M. Vercetti, c'est un regrettable incident, ce qui s'est produit avec votre affaire. -[CV_54] -ROW: 53 MODEL: fan_wom +[MOB_24F] +Je sais. -[CV_55] -ROW: 54 MODEL: hos_man +[MOB_24G] +Je veux que vous sachiez que mes hommes et moi, faisons le maximum pour tirer ça au clair. -[CV_56] -ROW: 55 MODEL: hos_wom +[MOB_24H] +Si vous souhaitez me parler en privé, vous me trouverez sur le bateau. Au revoir, senor. -[CV_57] -ROW: 56 MODEL: const1 +[BNK2_2] +VISEZ 3-2-1 FEU! -[CV_58] -ROW: 57 MODEL: const2 +[BNK2_3] +ZONE DEGAGEE! -[CV_59] -ROW: 58 MODEL: shopper1 +[BNK2_6] +Ce mec est cinglé! -[CV_60] -ROW: 59 MODEL: shopper2 +[ANGEL] +Angel -[CV_61] -ROW: 60 MODEL: shopper3 +[CUBJET] +Jetmax cubain -[CV_62] -ROW: 61 MODEL: stud_man +[SANDKIN] +Sandking -[CV_63] -ROW: 62 MODEL: stud_wom +[POLMAV] +Maverick Police -[CV_64] -ROW: 63 MODEL: cas_man +[BOXVILL] +Boxville -[CV_65] -ROW: 64 MODEL: cas_wom +[BENSON] +Benson -[CV_79] -ROW: 123 MODEL: gang01 LEONE_A +[HOTRINA] +Hotring Racer -[CV_80] -ROW: 124 MODEL: gang02 LEONE_B +[HOTRINB] +Hotring Racer -[CV_81] -ROW: 69 MODEL: gang03 TRIAD_A +[BLOODRA] +Bloodring Banger -[CV_82] -ROW: 3 MODEL: gang04 TRIAD_B +[BLOODRB] +Bloodring Banger -[CV_83] -ROW: 4 MODEL: gang05 DIABLO_A +[MAFIACR] +Mafia Cruiser -[CV_84] -ROW: 5 MODEL: gang06 DIABLO_B +[COP_M2] +'VICE SQUAD' -[CV_85] -ROW: 68 MODEL: gang07 YAKUZA_A +[COP_M3] +'BROWN THUNDER' -[CV_86] -ROW: 6 MODEL: gang08 YAKUZA_B +[BJM2_20] +~g~Quand tu n'as plus de ~w~temps ~g~ou de ~w~munitions ~g~, la manche est terminée! -[CV_87] -ROW: 7 MODEL: gang09 YARDIE_A +[BNK3_2] +Pas question que je conduise pour toi! J'en parlerai pendant la réunion de groupe! -[CV_88] -ROW: 8 MODEL: gang10 YARDIE_B +[FEM_SL1] +Pas de sauvegarde 1 -[CV_89] -ROW: 9 MODEL: gang11 COLOMBIAN_A +[FEM_SL2] +Pas de sauvegarde 2 -[CV_90] -ROW: 10 MODEL: gang12 COLOMBIAN_B +[FEM_SL3] +Pas de sauvegarde 3 -[CV_91] -ROW: 11 MODEL: gang13 HOOD_A +[FEM_SL4] +Pas de sauvegarde 4 -[CV_92] -ROW: 12 MODEL: gang14 HOOD_B +[FEM_SL5] +Pas de sauvegarde 5 -[CV_93] -ROW: 89 MODEL: gang15 Forelli thug1 +[FEM_SL6] +Pas de sauvegarde 6 -[CV_94] -ROW: 90 MODEL: gang16 Forelli thug2 +[FEM_SL7] +Pas de sauvegarde 7 -[CV_95] -ROW: 88 MODEL: gang17 Sindacco thug1 +[FEM_SL8] +Pas de sauvegarde 8 -[CV_96] -ROW: 89 MODEL: gang18 Sindacco thug2 +[FEA_CHA] +Passage en mode STEREO. Patiente un instant... -[CV_109] -ROW: 65 MODEL: SAL_01 Salvatore (Mob Don) +[FEA_CHD] +Attention! Tu es en train de passer du mode STEREO au mode DTS. Patiente un instant... -[CV_110] -ROW: 66 MODEL: RAY_01 Ray (Bad Cop) +[FEI_SEL] +Sélectionner -[CV_111] -ROW: 72 MODEL: VINC_01 Vincenzo Cilli +[FEI_BAC] +Retour -[CV_112] -ROW: 73 MODEL: GRDANG1 Avenging Angel +[FEI_RES] +Reprendre -[CV_113] -ROW: 74 MODEL: NED_01 Ned Burner (Reporter) +[FEI_NAV] +Explorer -[CV_114] -ROW: 75 MODEL: MASTOR Massimo Torrini (Assassin) +[FEI_BTX] +Touche / - -[CV_115] -ROW: 76 MODEL: TOOL_01 JD O'Toole +[FEI_BTT] +Touche " - -[CV_116] -ROW: 77 MODEL: Not used Fthr Kenny +[FEI_STA] +Touche START - -[CV_117] -ROW: 78 MODEL: GRDANG2 Avenging Angel 2 +[FEI_BTD] +; = > < - -[CV_118] -ROW: 79 MODEL: M_HOLE Mayor RC Hole +[FEI_STO] +Arrêter -[CV_119] -ROW: 80 MODEL: FRANFOR Franco Forelli +[MOB_68A] +Tommy, mon fiston, j'ai une surprise pour toi! -[CV_120] -ROW: 81 MODEL: KAZUKI Kazuki Kasen +[MOB_68B] +Je suis au studio d'enregistrement avec quelques artistes réputés. -[CV_121] -ROW: 82 MODEL: PAULIE Paulie Sindacco +[MOB_68C] +Pourquoi tu ne viendrais pas faire un tour? -[CV_122] -ROW: 83 MODEL: HOPPER Jane Hopper +[MOB_68D] +C'est une bonne idée, non? Allez, à plus tard. C'est plutôt normal, non? Allez, à plus tard. -[CV_123] -ROW: 84 MODEL: AVERY Avery Carrington +[OUTFT1] +Streetwear -[CV_124] -ROW: 85 MODEL: CASA Giovanni Casa +[OUTFT2] +Soirée -[CV_125] -ROW: 86 MODEL: BABY Giovanni Casa (baby) +[OUTFT3] +Bleu de travail -[CV_126] -ROW: 87 MODEL: MCAFFRY Det. Leon McAffrey +[OUTFT4] +Country club -[CV_127] -ROW: 92 MODEL: EIGHT 8Ball +[OUTFT5] +Cubano -[CV_128] -ROW: 93 MODEL: MAR_01 Maria +[OUTFT6] +Flic -[CV_129] -ROW: 94 MODEL: LOVE_01 Donald Love +[OUTFT7] +Braqueur -[CV_130] -ROW: 95 MODEL: MICKEYH Mickey H +[OUTFT8] +Décontracté -[CV_131] -ROW: 96 MODEL: WAYNE Wayne (Biker Dude) +[OUTFT9] +M. Vercetti -[CV_132] -ROW: 97 MODEL: BIKER1 Biker Dude 1 +[OUTFT10] +Survêtement -[CV_133] -ROW: 98 MODEL: BIKER2 Biker Dude 2 +[OUTFT13] +MC Tommy -[CV_134] -ROW: 99 MODEL: DONOVAN O'Donovan +[HOTR_07] +Nouveau record : ~1~:0~1~ -[CV_135] -ROW: 100 MODEL: KAS_01 Toshiko Kasen (kimono) +[HOTR_08] +Temps : ~1~:~1~ -[CV_136] -ROW: 101 MODEL: WKAS_01 Toshiko Kasen (western) +[GEN3_45] +Ils seront là d'une minute à l'autre. On ferait mieux de se trouver une bonne planque... -[CV_137] -ROW: 104 MODEL: JDMADE JD O'Toole - Made Man +[CAR_AS1] +CONCESSION AUTOMOBILE ACQUISE -[CV_138] -ROW: 106 MODEL: THUG_01 Sicilian Thug 1 +[CAR_AS2] +~g~Sunshine Autos génère dorénavant un revenu de $~1~ maximum. Pense à récupérer le fric régulièrement. -[CV_139] -ROW: 107 MODEL: THUG_02 Sicilian Thug 2 +[BUYSAVE] +~g~Puisque tu n'es pas en mission, tu peux sauvegarder ta partie gratuitement. -[CV_140] -ROW: 109 MODEL: CAMP_MAN Campaign Worker +[BUYGARG] +~g~Tu peux aussi garer des véhicules dans ce garage. -[CV_141] -ROW: 110 MODEL: CAMP_WOM Campaign Worker 2 +[STRPBUY] +Club Pole Position acquis : $~1~ -[CV_142] -ROW: 111 MODEL: MIGUEL Miguel +[STRP_R3] +Pour acheter le club Pole Position pour $~1~, appuie sur la touche R3. -[CV_143] -ROW: 112 MODEL: DELIASS Deli Assistant +[NBMN_R3] +Pour acheter Elswanko Casa pour $~1~, appuie sur la touche R3. -[CV_144] -ROW: 113 MODEL: HOBO_01 Donald Love 2 +[GA_4] +Les bombes pour voiture coûtent $1000 pièce. -[CV_68] -ROW: 122 MODEL: HITMAN Hitman +[GA_5] +Ta caisse est déjà équipée d'une bombe. -[CV_146] -ROW: 125 MODEL: HOLEJOG Mayor RC Hole (Jogging outfit) +[GA_6] { reVC update } +Gare-toi, amorce-la en appuyant sur la ~h~~k~~VEHICLE_FIREWEAPON~~w~ et BARRE-TOI vite! -[CV_147] -ROW: 126 MODEL: Chauff Chauffeur +[GA_7] { reVC update } +Amorce la bombe en appuyant sur la ~h~~k~~VEHICLE_FIREWEAPON~~w~. Elle explosera au démarrage. -[CV_148] -ROW: 128 MODEL: plr2 (Lawyer) +[GA_6B] { reVC update } +Gare-toi, amorce-la en appuyant sur la ~h~~k~~VEHICLE_FIREWEAPON~~w~ et BARRE-TOI vite! -[CV_149] -ROW: 129 MODEL: plr3 (Travel clothes) +[GA_7B] { reVC update } +Amorce la bombe en appuyant sur la ~h~~k~~VEHICLE_FIREWEAPON~~w~. Elle explosera au démarrage. -[CV_150] -ROW: 130 MODEL: plr4 (Chauffeur) +[MOB_70A] +Tommy, c'est moi, le colonel Cortez. Ecoutez senor, je parie qu'avec vous, tout est possible. -[CV_151] -ROW: 131 MODEL: plr5 (Hockey mask) +[MOB_70B] +Je serai sur le bateau. -[CV_152] -ROW: 132 MODEL: plr6 (Tuxedo) +[PICK1] +Gilet pare-balles livré dans l'hôtel Ocean View! -[CV_153] -ROW: 133 MODEL: plr7 (Avenging Angel) +[PICK2] +.357 livré à la planque! -[CV_154] -ROW: 134 MODEL: plr8 (The King of Rock'n Roll) +[PICK3] +Tronçonneuse livrée à la planque! -[CV_155] -ROW: 135 MODEL: plr9 (Cock's Mascot) +[PICK4] +Lance-flammes livré à la planque! -[CV_156] -ROW: 136 MODEL: plr10 (Boxer Shorts) +[PICK5] +.308 Lunette livré à la planque! -[CV_157] -ROW: 137 MODEL: plr11 (Bad Super Hero) +[PICK6] +Mitrailleuse livrée à la planque! -[CV_158] -ROW: 138 MODEL: plr12 (Dragon) +[PICK7] +Lance-roquettes livré à la planque! -[CV_159] -ROW: 139 MODEL: PHILC Phil Cassidy +[PICK8] +Sea Sparrow désormais disponible dans la résidence! -[CV_160] -ROW: 140 MODEL: GREASE Grease Zuko +[PICK9] +Char désormais disponible dans la caserne de l'armée! -[CV_161] -ROW: 141 MODEL: GUN_ASS Gun assistant +[PICK10] +Hunter désormais disponible dans la caserne de l'armée! -[CV_162] -ROW: -- MODEL: JD_shot JD shot dead +[HELP41] +tu peux aussi les défoncer avec un véhicule -[CV_163] -ROW: -- MODEL: BODYBAG bodybag +[ICC1_6] +~g~Utilise le Mr. Whopee pour distribuer des produits Cherry Poppers dans Vice City. -[CV_164] -ROW: 142 MODEL: SAL_CON Sal Convict +[ICC1_12] +PROPRIETE ACQUISE! -[VV_131] -ID:131 MODEL: Landstalker (TBC) +[CLOTH1] +Tenue de soirée livrée chez Rafael sur Ocean Beach. -[VV_135] -ID:135 MODEL: Perenial (TBC) +[CLOTH2] +Tenue streetwear livrée aux planques. -[VV_138] -ID:138 MODEL: Firetruck +[CLOTH3] +Bleu de travail livré chez Tooled Up dans le centre commercial de North Point. -[VV_141] -ID:141 MODEL: Manana (TBC) +[CLOTH4] +Tenue pour le Country Club livrée au Leaf Links Golf Club. -[VV_148] -ID:148 MODEL: FBI Car (TBC) +[CLOTH5] +Tenue Cubano livrée chez Little Havana Streetwear dans Little Havana. -[VV_152] -ID:152 MODEL: Kuruma (TBC) +[CLOTH6] +Uniforme de flic livré au poste de police de Washington Beach. -[VV_164] -ID:164 MODEL: Dodo (TBC) +[CLOTH7] +Tenue décontractée livrée chez Gash dans le centre commercial de North Point. -[VV_169] -ID:169 MODELL: Rc Bandit +[CLOTH8] +Tenue de M. Vercetti livrée chez Collar & Cuffs sur Ocean Beach. -[VV_170] -ID:170 MODEL: BellyUp (Triad) (TBC) +[CLOTH9] +Survêtement livré chez Jocksport dans le centre. -[VV_172] -ID:172 MODEL: Leone Sentinel (TBC) +[CLOTH10] +Tenue de braqueur livrée au Malibu de Vice Point. -[VV_174] -ID: 174 MODEL: Yakuza (TBC) +[RBM1_9] +~g~Va chez le dealer et rapporte du Love Juice pour les Love Fist! -[VV_179] -ID:179 MODEL: Flatbed (TBC) +[MOB_62A] +Tommy, c'est Ricardo Diaz, je voulais te remercier de m'avoir sauvé. -[VV_181] -ID:181 MODEL: Borgnine Taxi (TBC) +[MOB_62B] +J'ai demandé à ce con de Cortez. Il a dit que tu feras l'affaire, mon ami. Viens me voir à l'occasion. -[VV_188] -ID: 188 MODEL: Sindacco Argento (TBC) +[MOB_62C] +C'est d'un mec comme toi dont j'ai besoin. J'ai plus que des têtes de bites, -[VV_189] -ID: 189 MODEL: Forelli Lexcess (TBC) +[MOB_62D] +des têtes de bite partout! Tu vas gagner plein de pognon. -[VV_192] -ID:192 MODEL: Speeder (TBC) +[GOAWAY2] +~g~Reviens quand tu auras terminé les missions Bikers. -[BV_H1] -Press CIRCLE to swap building model. +[COL2_9] +Imbécile de Ricain! Ils vous ont suivi jusqu'ici! -[BV_0A] -ROW: 2 - Portland. Safehouse Exterior. Press CIRCLE to swap. +[LOADCOL] +Chargement... -[BV_0B] -ROW:24 - Portland. Safehouse Interior. Press CIRCLE to swap. +[STFT_17] +Meilleur temps sur Terrain de jeu PCJ -[BV_1] -ROW: 3 - Portland. Ferry Terminal. +[STFT_18] +Meilleur temps sur 'Sélection par la boue' -[BV_2A] -ROW: 4 - Portland. Callahan Bridge 1. Press CIRCLE to swap. +[STFT_19] +Meilleur temps sur Piste d'essai -[BV_2B] -ROW: 4 - Portland. Callahan Bridge 2. Press CIRCLE to swap. +[NEW_REC] +Nouveau record! ~1~ minutes et ~1~ secondes. -[BV_3] -ROW: 5 - Portland. Les Cargo Freighter. +[BMX_HOW] +~g~Fais deux tours de circuit, ~y~en passant par ~g~les ~y~POINTS DE PASSAGE~g~! -[BV_4A] -ROW: 6 - Portland. Doll's House Brothel 1. Press CIRCLE to swap. +[BMXREW1] +~g~Chaque fois que tu inscris un nouveau record pour les deux tours, -[BV_4B] -ROW: 6 - Portland. Doll's House Brothel 2. Press CIRCLE to swap. +[BMXREW2] +~g~une meilleure ~y~RECOMPENSE ~g~t'est offerte! -[BV_5] -ROW: 7 - Portland. Tower Block. +[BMXRAIN] +~g~On dirait qu'il pleut... -[BV_6] -ROW: 8 - Portland. Eddie's Garage. +[ITBEG] +AU DEBUT... -[BV_7] -ROW: 9 - Portland. Bowler's Fist Pub. +[NBMNBUY] +El Swanko Casa acheté : $ ~1~ -[BV_8] -ROW:10 - Portland. Hepburn Heights. +[LNKVBUY] +Appartement de Links View acheté : $ ~1~ -[BV_9] -ROW:11 - Portland. Short Stay Hotel. +[HYCOBUY] +Hyman Condo acheté : $ ~1~ -[BV_10] -ROW:12 - Portland. Car Dealership. +[BUYGARS] +~g~Tu peux également stocker des véhicules dans ces garages. -[BV_11] -ROW:13 - Portland. Bus Graveyard. +[OCHEBUY] +Appartement d'Ocean Heights acheté : $ ~1~ -[BV_12A] -ROW:14 - Portland. Drugs Warehouse 1 (awaiting approval). Press CIRCLE to swap. +[WASHBUY] +1102 Washington Street acheté : $ ~1~ -[BV_12B] -ROW:14 - Portland. Drugs Warehouse 2 (awaiting approval). Press CIRCLE to swap. +[VCPTBUY] +3321 Vice Point acheté : $ ~1~ -[BV_13] -ROW:15 - Portland. Ma Cipriani's Restaurant. +[SKUMBUY] +Skumole Terrace achetée : $~1~ -[BV_14] -ROW:17 - Portland. Basketball Court, Callahan. +[HELP6_C] +Appuie sur la ~h~~k~~VEHICLE_HANDBRAKE~~w~ pour actionner le frein à main. -[BV_15] -ROW:18 - Portland. Bike Shop. +[HELP2_A] +Appuie sur la ~h~~k~~PED_SPRINT~~w~ lorsque tu cours pour ~h~sprinter. -[BV_16] -ROW:19 - Portland. Building near Basketball Court. +[HELP4_A] +Appuie sur la ~h~~k~~VEHICLE_ACCELERATE~~w~ pour accélérer. -[BV_17A] -ROW:20 - Portland. Luigi's Nightclub 1. +[HELP5_A] +Appuie sur la ~h~~k~~VEHICLE_BRAKE~~w~ pour freiner ou faire marche arrière si le véhicule est à l'arrêt. -[BV_17B] -ROW:20 - Portland. Luigi's Nightclub 2. +[HELP8_A] +Appuie sur la ~h~~k~~PED_SNIPER_ZOOM_IN~~w~ pour faire un zoom avant avec le fusil et sur la ~x~touche /~w~ pour faire un zoom arrière. -[BV_17C] -ROW:20 - Portland. Luigi's Nightclub 3. +[PBOAT_1] { reVC update } +Appuie sur la~h~ ~k~~VEHICLE_FIREWEAPON~~w~ pour tirer avec les canons du bateau. -[BV_18] -ROW:21 - Portland. Casa's Gourmet Deli. +[SEG3_4] { reVC update } +~g~Tu peux ramasser des bombes en pilotant ton avion radiocommandé à côté. Appuie sur la ~h~~k~~VEHICLE_FIREWEAPON~ ~g~touche. -[BV_19] -ROW:22 - Portland. Rusty Ship. +[RCR1_3] { reVC update } +~g~Si tu veux quitter cette mission, appuie sur la ~h~~k~~VEHICLE_FIREWEAPON~~g~ pour faire exploser ta voiture radiocommandée. -[BV_20] -ROW:23 - Portland. Door for Shopfront. +[HELP32] { reVC update } +Appuie ensuite sur la ~h~~k~~VEHICLE_FIREWEAPON~~w~ pour tirer. -[BV_21] -ROW:25 - Staunton. Casino. +[HELP33] { reVC update } +Appuie ensuite sur la ~h~~k~~VEHICLE_FIREWEAPON~~w~ pour tirer. -[BV_22] -ROW:26 - Staunton. Phil Cassidy's Store. +[TTUTOR] +Appuie sur la ~h~~k~~TOGGLE_SUBMISSIONS~~w~ pour activer ou désactiver les missions Taxi. -[BV_23] -ROW:27 - Staunton. Zip store. +[TTUTOR2] +Appuie sur la ~h~~k~~TOGGLE_SUBMISSIONS~~w~ pour activer ou désactiver les missions Taxi. -[BV_24] -ROW:28 - Staunton. Container Park. +[FTUTOR] +Appuie sur la ~h~~k~~TOGGLE_SUBMISSIONS~~w~ pour activer ou désactiver les missions Camion de pompiers. -[BV_25] -ROW:29 - Staunton. Ferry Terminal. +[FTUTOR2] +Appuie sur la ~h~~k~~TOGGLE_SUBMISSIONS~~w~ pour activer ou désactiver les missions Camion de pompiers. -[BV_26A] -ROW:30 - Staunton. Fort Staunton 1 NORTH. +[CTUTOR] +Appuie sur la ~h~~k~~TOGGLE_SUBMISSIONS~~w~ pour activer ou désactiver les missions Auto-défense. -[BV_26B] -ROW:30 - Staunton. Fort Staunton 2 NORTH. +[CTUTOR2] +Appuie sur la ~h~~k~~TOGGLE_SUBMISSIONS~~w~ pour activer ou désactiver les missions Auto-défense. -[BV_27A] -ROW:30 - Staunton. Fort Staunton 1 SOUTH. +[HELP8_B] +Appuie sur la~h~ ~k~~PED_SNIPER_ZOOM_IN~ ~w~pour faire un ~h~zoom avant~w~ avec le fusil et sur la ~h~~k~~PED_SNIPER_ZOOM_OUT~~w~ pour faire un ~h~zoom arrière~w~. -[BV_27B] -ROW:30 - Staunton. Fort Staunton 2 SOUTH. +[ATUTOR3] +Appuie sur la ~h~~k~~TOGGLE_SUBMISSIONS~~w~ pour activer ou désactiver les missions Ambulance. -[BV_28] -ROW:31 - Ferry - Not Visible At Present. +[GUN_H1] +~w~Appuie sur la~h~ ~k~~PED_SPRINT~~w~ pour acheter. ~w~Appuie sur la~h~ ~k~~VEHICLE_ENTER_EXIT~~w~ pour quitter. -[BV_29A] -ROW:32 - Staunton. Safehouse Exterior (unchanged). Press CIRCLE to swap. +[PU_CF3] { reVC update } +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~~w~ pour remplacer l'arme actuelle dans cet emplacement. -[BV_29B] -ROW:32 - Staunton. Safehouse Interior. Press CIRCLE to swap. +[PU_CF4] { reVC update } +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~~w~ pour remplacer l'arme actuelle dans cet emplacement. -[BV_30] -ROW:33 - Staunton. Steps Added To Building. +[HELP9_B] +Appuie sur la~h~ ~k~~PED_FIREWEAPON~ ~w~pour ~h~tirer~w~ avec le fusil à lunette. -[BV_31] -ROW:34 - Portland. Outbuilding. +[HELP37] +Si tu ne veux pas monter dans un véhicule quand tu braques le conducteur, appuie sur la ~h~~k~~PED_SPRINT~. -[BV_32A] -ROW:34 - Shoreside. Safehouse Exterior (unchanged). Press CIRCLE to swap. +[HELP6_A] +Appuie sur la ~h~~k~~VEHICLE_HANDBRAKE~ ~w~ pour actionner le frein à main. -[BV_32B] -ROW:34 - Shoreside. Safehouse Interior. Press CIRCLE to swap. +[HELP6_D] +Appuie sur la ~h~~k~~VEHICLE_HANDBRAKE~ ~w~ pour actionner le frein à main. -[BV_33] -Not in Doc - Staunton - Warehouse Interior (not internally approved). +[HELP26] +Appuie sur la ~h~~k~~VEHICLE_ENTER_EXIT~ ~w~ pour monter ou sortir d'un véhicule. -[BV_34A] -Not in Doc - Staunton - Church Exterior. Press CIRCLE to swap. +[HELP27] +Appuie sur ~h~~k~~VEHICLE_TURRETUP~~w~ ou ~h~~k~~VEHICLE_TURRETDOWN~~w~ pour déplacer ton poids sur une moto. -[BV_34B] -Not in Doc - Staunton - Church Interior for scripted cutscene. Press CIRCLE to swap. +[HELP28] +Appuie sur ~h~~k~~VEHICLE_TURRETUP~~w~ ou ~h~~k~~VEHICLE_TURRETDOWN~~w~ pour déplacer ton poids sur une moto. -[NEDS2] -The Passion Of The Heist +[HELP35] +Appuie sur ~h~~k~~GO_LEFT~~w~ ou ~h~~k~~GO_RIGHT~~w~ pour diriger le véhicule. -[NEDS3] -Karmageddon +[HELP36] +Appuie sur ~h~~k~~GO_LEFT~~w~ ou ~h~~k~~GO_RIGHT~~w~ pour diriger le véhicule. -[NEDS4] -False Idols +[HELP42] +Suis le ~q~point rose~w~ pour trouver l'hôtel. -[DONS1] -The Morgue Party Candidate +[HELP19] +Marche sur le ~q~marqueur rose~w~ pour continuer. -[GAR_WIL] -Conduis la voiture dans le garage. +[HELP1] +Arrête-toi au centre du ~q~marqueur rose. -[DONS2] -Steering The Vote +[HELP12] +Marche au centre du ~q~marqueur rose~w~ pour lancer une mission. -[DONS3] -Cam-Pain +[SEG3_6] +~g~Pour toucher ta cible, tu dois larguer la bombe sur la zone indiquée par le ~q~marqueur rose~w~. Tu peux larguer les bombes dans n'importe quel ordre. -[DONS4] -Friggin' The Riggin' +[S_PROMP] +Lorsque tu n'es pas en mission, tu peux sauvegarder la partie en ramassant la ~h~cassette. -[DONS5] -Love & Bullets +[HELP16] +Franchis la porte d'entrée de l'hôtel ~h~Ocean View~w~ pour y pénétrer. -[DONS6] -Counterfeit Count +[HELP43] +~g~Rends-toi à l'hôtel ~h~Ocean View~g~ sur Ocean Drive. -[DONS7] -Love On The Rocks +[HELI_F1] +~r~Mission Point de passage hélico annulée! -[DONS7AA] -Toni, il faut que tu m'aides ! +[AMMUHLP] +Si tu as besoin d'armes, va chez ~h~Ammu-Nation~w~. Suis le ~h~point pistolet~w~ sur le radar. -[DONS7AB] -O'Donovan a des preuves qui me lient à Salvatore ! On est grillé ! +[HELI_1] +Point de passage hélico du Centre -[DONS7AC] -Du calme... des preuves disparaissent tous les jours. +[HELI_2] +Point de passage hélico d'Ocean Beach -[DONS7AD] -Sans parler des juges, des témoins et des jurés... +[HELI_3] +Point de passage hélico de Vice Point -[DONS7AE] -J'espérais que tu verrais ça comme ça. +[HELI_4] +Point de passage hélico de Little Haiti -[DONS7AF] -Un de mes gars a pris le mec qui a la preuve en filature. +[FST_MFR] +Station de radio préférée -[DONS7AG] -Il te retrouvera sous le pont autoroutier à Newport. +[FST_LFR] +Station de radio la moins écoutée -[SALS1] -A Walk In The Park +[FEI_HOL] +Maintenir -[SALS2] -Making Toni +[FEI_ZOO] +Zoom -[SALS3] -Caught In The Act +[FEI_BTR] +> < - -[SALS4] -Search And Rescue +[FEI_NA] +Aucun -[SALS5] -Taking The Peace +[MESA] +Grande table -[SALS6] -Shoot The Messenger +[STRP_NO] +Tu ne peux pas acheter la boîte de striptease maintenant. Reviens plus tard. -[RAYS1] -Sayonara Sindaccos +[CHSE] +POURSUITE -[RAYS2] -The Whole 9 Yardies +[NBMN_L] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter El Swanko Casa pour $~1~. -[RAYS3] -Crazy '69' +[NBMN_T] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter El Swanko Casa pour $~1~. -[RAYS4] -Night Of The Livid Dreads +[NBMN_C] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter El Swanko Casa pour $~1~. -[RAYS5] -Munitions Dump +[LNKV_L] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter l'appartement de Links View pour $~1~. -[MC_S07] -7. Cuttest - none +[LNKV_T] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter l'appartement de Links View pour $~1~. -[NEDS1] -L.C. Confidential +[LNKV_C] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter l'appartement de Links View pour $~1~. -[WILGAR2] -Descends de la voiture et va dehors. +[HYCO_L] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter Hyman Condo pour $~1~. -{=================================== MISSION TABLE SAL1 ===================================} +[HYCO_T] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter Hyman Condo pour $~1~. -[SAL1_M1:SAL1] -~w~Salvatore veut causer. +[HYCO_C] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter Hyman Condo pour $~1~. -[SAL1_M2:SAL1] -~w~Je joue pas le jeu de Salvatore. +[OCHE_L] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter l'appartement d'Ocean Heights pour $~1~. -[SAL1_M3:SAL1] -~w~Merci de la part des grévistes, petit... A bientôt... +[OCHE_T] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter l'appartement d'Ocean Heights pour $~1~. -[SAL1_M5:SAL1] -~w~Hé ! +[OCHE_C] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter l'appartement d'Ocean Heights pour $~1~. -[SAL1_D1:SAL1] -~w~Hé ! Briseur de grève ! +[WASH_L] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter le 1102 Washington Street pour $~1~. -[SAL1_D2:SAL1] -~w~Chopez-le ! +[WASH_T] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter le 1102 Washington Street pour $~1~. -[SAL1_D3:SAL1] -~w~Le voilà ! +[WASH_C] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter le 1102 Washington Street pour $~1~. -[SAL1_D4:SAL1] -~w~Il est là-bas ! +[VCPT_L] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter le 3321 Vice Point pour $~1~. -[SAL1_E1:SAL1] -~w~Echappe-toi des docks ! +[VCPT_T] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter le 3321 Vice Point pour $~1~. -[SAL1_A1:SAL1] -~w~Va voir Jane Hopper, la chef du syndicat, à ~y~Portland Docks. +[VCPT_C] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter le 3321 Vice Point pour $~1~. -[THEO_01:SAL1] -Hé, boss, ça va ? +[SKUM_L] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~~w~ pour acheter la Skumole Terrace pour $~1~. -[THEO_02:SAL1] -A ton avis ? +[SKUM_T] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~~w~ pour acheter la Skumole Terrace pour $~1~. -[THEO_03:SAL1] -Non. +[SKUM_C] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~~w~ pour acheter la Skumole Terrace pour $~1~. -[THEO_04:SAL1] -Alors quoi ? T'es vraiment trop con... +[PRNT_L] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter l'imprimerie pour $~1~. -[THEO_05:SAL1] -Si ça se voit, pourquoi tu demandes ? +[PRNT_T] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter l'imprimerie pour $~1~. -[THEO_06:SAL1] -J'arrive pas à croire que j'suis cerné par des cons ! +[PRNT_C] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter l'imprimerie pour $~1~. -[THEO_07:SAL1] -Désolé. +[CAR_L] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter la concession automobile pour $~1~. -[THEO_08:SAL1] -Non, Toni, c'est moi... T'es un des mecs en qui j'ai le plus confiance. +[CAR_T] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter la concession automobile pour $~1~. -[THEO_09:SAL1] -Après ce que t'as fait, t'es comme un fils pour moi, même plus que mon fils. +[CAR_C] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter la concession automobile pour $~1~. -[THEO_10:SAL1] -Plus que tous mes fils... +[PORN_L] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter le studio de cinéma pour $~1~. -[THEO_11:SAL1] -Ta mère a de la chance... +[PORN_T] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter le studio de cinéma pour $~1~. -[THEO_12:SAL1] -C'est c'qu'on dit. +[PORN_C] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter le studio de cinéma pour $~1~. -[THEO_13:SAL1] -Anthony, c'est fini pour les mecs comme nous. +[ICE_L] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter l'usine de crème glacée pour $~1~. -[THEO_14:SAL1] -On sera bientôt bon pour la casse. +[ICE_T] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter l'usine de crème glacée pour $~1~. -[THEO_15:SAL1] -Ecoute, même dans ma propre famille, j'me sens comme Jésus cerné par 12 Judas. +[ICE_C] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter l'usine de crème glacée pour $~1~. -[THEO_16:SAL1] -Non mais, tu te rends compte : +[TAXI_L] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter la compagnie de taxis pour $~1~. -[THEO_17:SAL1] -J'ai cette syndicaliste, cette sale pute, qui doit me rendre un service, +[TAXI_T] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter la compagnie de taxis pour $~1~. -[THEO_18:SAL1] -et elle m'demande du fric ? +[TAXI_C] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter la compagnie de taxis pour $~1~. -[THEO_19:SAL1] -Tout ce que j'voulais, c'était un accès de 24 heures aux docks pendant la grève, +[BANK_L] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter le Malibu pour $~1~. -[THEO_20:SAL1] -une grève que j'ai aidé à organiser pour que mes gars déchargent de la came peinards ! +[BANK_T] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter le Malibu pour $~1~. -[THEO_21:SAL1] -Et voilà le résultat ! +[BANK_C] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter le Malibu pour $~1~. -[THEO_22:SAL1] -J'veux dire, c'est des gens pour qui j'me suis battu, +[BOAT_L] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter le chantier naval pour $~1~. -[THEO_23:SAL1] -des gens pour qui j'ai tué, des gens honnêtes. +[BOAT_T] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter le chantier naval pour $~1~. -[THEO_26:SAL1] -C'est une honte, c'est fini pour les hommes d'honneur comme toi et moi ! +[BOAT_C] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter le chantier naval pour $~1~. -[THEO_27:SAL1] -Ecoute, Toni, j'ai besoin que tu lui apportes quelque chose. +[STRP_L] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter le Pole Position Club pour $~1~. -[THEO_28:SAL1] -Tu vas accepter qu'une nana te fasse chier ? +[STRP_T] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter le Pole Position Club pour $~1~. -[THEO_29:SAL1] -Pour l'instant, j'ai pas trop le choix... +[STRP_C] +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~ ~w~pour acheter le Pole Position Club pour $~1~. -[THEO_30:SAL1] -Bon, va la voir, file-lui la thune et dis-lui que j'voudrais lui parler. +[STOCK] +~r~stock écoulé -[THEO_31:SAL1] -Allez. +[HELP14] +Pour trouver le cabinet d'avocats, suis le ~h~point L~w~ sur le radar. -[THEO_24:SAL1] -- Et c'est comme ça qu'ils me remercient ? ~n~ - Tous des salauds. +[BOAT_AS] +~g~Le chantier naval génère dorénavant un revenu de $~1~ maximum. Pense à récupérer le fric régulièrement. -{=================================== MISSION TABLE SAL2 ===================================} +[BOAT_A2] +CHANTIER NAVAL OK -[SAL2_N:SAL2] -Filles +[BOAT_N] +Checkpoint Charlie -[SAL2_A0:SAL2] -~w~C'est un de tes nouveaux molosses, Sal ? +[BOAT_P] +~g~Récupère les paquets avant la fin du temps imparti. -[SAL2_A1:SAL2] -~w~M'sieur Leone ? +[FEI_R1B] +Touches R1\R2 - -[SAL2_A2:SAL2] -~w~Toni ! Come sta ? +[HELP9_A] +Appuie sur la touche ~h~~k~~PED_FIREWEAPON~ ~w~pour tirer avec le fusil à lunette. -[SAL2_A3:SAL2] -~w~Content de te voir, je voudrais que tu fasses quelque chose pour moi... +[HELP21] +Appuie sur la touche ~h~~k~~VEHICLE_ENTER_EXIT~ ~w~pour monter dans un véhicule ou en sortir. -[SAL2_A4:SAL2] -~w~Si je peux pas convaincre cette salope de dirigeante syndicaliste de marcher avec moi, j'peux sûrement convaincre ses gars. Capici ? +[CREAM] +Distribution -[SAL2_A:SAL2] -~w~Rassemble six ~b~putes~w~ et conduis-les au piquet de grève à Portland Docks. +[UMBERTO] +Café Robina -[SAL2_B0:SAL2] -~w~Hé, chéri, je fais pas les plans à trois quand y a que 2 places. +[PU_CF1] +Appuie sur la touche ~h~~k~~PED_ANSWER_PHONE~ ~w~pour ramasser cette arme. Elle remplacera toute autre arme du même type que tu possèdes. -[SAL2_B1:SAL2] -~w~On en reparlera quand t'auras plus de place ! Je voyage pas dans le coffre, chéri ! +[FED_RDM] +CARTE ET POINTS -[SAL2_D0:SAL2] -~w~T'es tout seul, mon mignon ? +[FEC_ILU] +Vue inversée à la 1ere personne : -[SAL2_D1:SAL2] -~w~Hé, beau gosse, tu veux pas t'amuser un peu ? +[NITRO] +Tous les taxis disposent d'un saut turbo! Appuie simplement sur la touche klaxonner. -[SAL2_D2:SAL2] -~w~Allez, chéri... On va s'éclater ensemble ! +[RATNG53] +Faux cul -[SAL2_D3:SAL2] -~w~Alors, c'est où la fête, chéri ? +[RATNG54] +Faiseur d'emmerdes -[SAL2_D4:SAL2] -~w~Salut, mon chou, tu veux prendre du bon temps ? +[RATNG55] +Malhonnête -[SAL2_D5:SAL2] -~w~Hé, beau gosse, t'as besoin de rien ? +[RATNG56] +Tricheur -[SAL2_F0:SAL2] -~w~Hé, j'viens aussi ! +[RATNG57] +Mythomane -[SAL2_F1:SAL2] -~w~Alors, c'est rien que toi et moi, hein !? +[STHC_04] +Meilleur score au beach ball de Keepie-Uppy -[SAL2_F2:SAL2] -~w~Bon, on y va ou quoi ? +[STHC_05] +Meilleur résultat au Hotring -[SAL2_F3:SAL2] -~w~OK, où est la fête ? +[STFT_13] +Meilleur tps point de passage hélico du centre -[SAL2_F4:SAL2] -~w~Oh allez, sois pas comme ça... +[STFT_14] +Meilleur tps point de passage hélico d'Ocean Beach -[SAL2_F5:SAL2] -~w~J'veux juste m'amuser avec toi ! +[STFT_15] +Meilleur tps point de passage hélico de Vice Point -[SAL2_G0:SAL2] -~w~Conduis-la au ~y~piquet de grève ! +[STFT_16] +Meilleur tps point de passage hélico de Little Haiti -[SAL2_G1:SAL2] -~w~Conduis les filles au ~y~piquet de grève ! +[STFT_21] +Meilleur temps au Hotring -[SAL2_G2:SAL2] -~w~Occupe-toi du ~r~client ! +[STFT_22] +Meilleur temps au tour au Hotring -[SAL2_G3:SAL2] -~w~Occupe-toi des ~r~clients ! +[STFT_20] +Meilleur temps au 'Cone Crazy' -[SAL2_G4:SAL2] -~w~Ramasse d'autres ~b~filles ! +[HELP44] +Arrête-toi sur le ~q~marqueur rose. -[SAL2_H:SAL2] -~w~Hé, c'est où la fête, mon chou ? +[HELP45] +Appuie sur la ~h~~k~~PED_DUCK~~w~ pour t'accroupir. Ceci augmente la précision des flingues que tu portes. -[SAL2_P:SAL2] -~w~Amusez-vous, les gars ! Avec les compliments de Salvatore Leone ! +[RCR1_5] +Course de Bandit RC -[SAL2_I0:SAL2] -~w~Trouve-toi une fille, connard ! Celle-là est à moi ! +[RCPL1_7] +Course de Baron RC -[SAL2_I1:SAL2] -~w~Hé, tu veux quoi, toi ? Sale voyeur ! +[RCH1_11] +Course de Raider RC -[SAL2_I3:SAL2] -~w~Hé, c'est qui ce mec ? Faut le choper ! +[FEA_CTD] +Attention! Un équipement matériel compatible DTS est requis pour cette fonction. Continuer? -[SAL2_I5:SAL2] -~w~Hé, mon pote, attends ton tour, on était là avant ! +[FEM_STE] +STEREO -[SAL2_I7:SAL2] -~w~T'es le meilleur, arrête pas... Oh oui, encore ! +[FEM_UDY] +DTS -[SAL2_I9:SAL2] -~w~Alors, au boulot... +[GREET] +Bien le bonjour de... -[SAL2_K0:SAL2] -~w~Faut pas faire chier Toni Cipriani ! +[LANCE_1] +Hé, mec, conduis un peu mieux! -[SAL2_K1:SAL2] -~w~OK ! En route ! +[LANCE_2] +Hé, fais gaffe à ce que tu fais! -[SAL2_K2:SAL2] -~w~Allez, ma poule, amène ton cul ! +[LANCE_3] +Hé, tu vas où, là? -[SAL2_C0:SAL2] -~w~Hé, reviens, chéri, je mords pas ! +[LANCE_4] +On fait quoi maintenant? -[SAL2_C1:SAL2] -~w~Hé, chéri, où c'est que tu vas ? +[LAW4_15] +Plus de fric! -[SAL2_L0:SAL2] -~w~Je vais pas attendre toute la journée, connard ! +[MERC_5] +Belle voiture, M. Vercetti. -[SAL2_L1:SAL2] -~w~Chéri, le compteur tourne ! +[MERC_26] +PLUS VITE, PLUS VITE, PLUS VITE! -[SAL2_X0:SAL2] -~r~Temps écoulé ! +[MERC_27] +Attention, Tommy, je me suis fait refaire le nez le mois dernier. -[SAL2_X1:SAL2] -~r~T'as tué trop de putes ! +[MERC_28] +Tommy, conduis prudemment! -[SAL2_X2:SAL2] -~r~T'as attaqué les dockers. Ils te feront plus confiance ! +[MERC_29] +Tommy, va moins vite! -[SAL2_X3:SAL2] -~r~T'as attaqué les filles des dockers. Ils te feront plus confiance ! +[MERC_30] +Tommy, tu veux bien tuer quelqu'un d'autre que moi? -[SAL2_G5:SAL2] -~w~On dirait que t'as un admirateur. +[MERC_31] +Tommy, chéri, ne me tue pas! -[SAL2_I8:SAL2] -~w~Chéri, tu ne veux pas finir en taule, si ? +[MERC_32] +Tommy, ça me très plaisir que t'aies volé cette caisse! -[SAL2_I6:SAL2] -~w~Oh oui ! Oui ! ... +[MERC_40] +J'ai vraiment passé un bon moment. -[SAL2_M:SAL2] -~w~Essaie de ne pas les tuer ! Trouve une autre ~b~fille. +[MERC_43] +Adios, mon chou. -[SAL2_W1:SAL2] -~w~Tu as jusqu'à 0~1~:~1~ avant que les grévistes ne changent d'équipe ! +[MERC_44] +Continue la muscu, d'accord? -[SAL2_W2:SAL2] -~w~Tu as jusqu'à ~1~:~1~ avant que les grévistes ne changent d'équipe ! +[MERC_45] +Ciao, mon beau. -[SAL2_G6:SAL2] -~w~Arrête-toi sur la ~y~marque jaune~w~ pour déposer les filles. +[COL5_17] +Oh mon dieu, ils ont un hélicoptère! -[SAL2_G7:SAL2] -~w~Dérange le client pour faire sortir la ~b~fille~w~ de la voiture. +[COL5_18] +Abattez l'hélico! -[SAL2_B:SAL2] -~w~Tu peux plus faire monter de filles dans ta caisse. +[COL5_19] +Tommy, débarrasse-nous de cet hélico! -{=================================== MISSION TABLE SAL3 ===================================} +[COL5_20] +Il revient! Détruisez cet hélico! -[SAL3_A0:SAL3] -~w~Toni ! Comment ça va, fiston ? +[COL5_21] +Visez la taille de cet hélico! -[SAL3_A1:SAL3] -~w~T'as l'air un peu maigre. Ta maman te nourrit suffisamment ? +[COL5_22] +Le revoilà! -[SAL3_A2:SAL3] -~w~Tout va bien, m'sieur Leone. +[FEA_DSM] +Attention! Cette sauvegarde est paramétrée pour un son DTS. Du matériel compatible DTS doit être connecté. Choisir entre une sortie audio STEREO ou DTS. -[SAL3_A3:SAL3] -~w~Ecoute, ces syndicalistes commencent à me les briser sévère. +[STFT_23] +Meilleur temps à Checkpoint Charlie -[SAL3_A5:SAL3] -~w~... mais faudrait qu'on remette les idées en place à d'autres... moins 'réceptifs'... +[HELP50] +Appuie sur la touche ~h~~k~~PED_ANSWER_PHONE~~w~ pour placer la caméra derrière toi. -[SAL3_B0:SAL3] -~w~Fous les jetons aux ~r~chefs syndicalistes~w~. Assure-toi qu'ils ont compris ! +[HELP51] +Appuie sur la touche ~h~~k~~PED_ANSWER_PHONE~~w~ pour placer la caméra derrière toi. -[SAL3_B3:SAL3] -~w~Maintenant, ils devraient faire exactement ce qu'on leur dira. +[HELP52] +Appuie sur la touche ~h~~k~~PED_ANSWER_PHONE~~w~ pour placer la caméra derrière toi. -[SAL3_BA:SAL3] -~w~T'es taré, mon gars ! Moi, j'veux pas d'emmerdes ! +[HELP53] +Appuie sur la touche ~h~~k~~PED_CYCLE_WEAPON_LEFT~~w~ ou sur la touche ~h~~k~~PED_CYCLE_WEAPON_RIGHT~~w~ pour faire défiler tes armes disponibles. -[SAL3_CA:SAL3] -~w~Qu'est-ce que vous faites ?! Vous êtes malade ? +[HELP46] +Il existe huit différents types d'armes. -[SAL3_DA:SAL3] -~w~Il me restait que deux traites à payer pour cette voiture, enculé ! +[HELP47] +Tu peux porter une arme de chaque type à la fois, un type de pistolet, un type de fusil à pompe, etc. -[SAL3_BB:SAL3] -~w~A partir de maintenant, tu fais ce qu'on te dit ! +[HELP54] +~w~Prix : $~1~ ~r~L'achat de cette arme remplacera celle que tu possèdes déjà. -[SAL3_CB:SAL3] -~w~T'occupe pas des affaires de Leone ! +[HELP2A2] +Appuie sur la touche ~h~~k~~PED_SPRINT~~w~ quand tu cours, pour ~h~sprinter. -[SAL3_A4:SAL3] -~w~On dirait que certains d'entre eux commencent à voir les choses à ma façon. +[HLPSN_A] +Grâce au fusil à lunette, tu peux zoomer de loin sur une cible et la viser avec précision. -[SAL3_A6:SAL3] -~w~Tu vois ce que je veux dire ? +[HLPSN_B] +Appuie sur la touche~h~ ~k~~PED_LOCK_TARGET~ ~w~et maintiens-la enfoncée pour ~h~viser~w~ avec le fusil à lunette. -[SAL3_B1:SAL3] -Tu peux pas faire passer ton message s'ils sont tous morts. Ne tue plus de ~r~chefs de syndicats ! +[HLPSN_C] +Appuie sur la touche~h~ ~k~~PED_LOCK_TARGET~ ~w~et maintiens-la enfoncée pour ~h~viser~w~ avec le fusil à lunette. -[SAL3_B2:SAL3] -~r~T'es censé leur faire peur, pas les tuer ! +[HLPSN_D] +Appuie sur la touche ~h~~k~~PED_SNIPER_ZOOM_IN~~w~ pour ~h~faire un zoom avant ~w~avec le fusil à lunette et sur la touche~h~ ~k~~PED_SNIPER_ZOOM_OUT~ ~w~pour ~h~faire un zoom arrière~w~. -[SAL3_B4:SAL3] -~w~Trouve un autre ~r~chef de syndicat~w~ auquel remonter les bretelles. +[HLPSN_E] +Appuie sur la touche ~h~~k~~PED_FIREWEAPON~~w~ ~w~pour ~h~tirer~w~ avec le fusil à lunette. -{=================================== MISSION TABLE SAL5 ===================================} +[HLPSN_F] +Appuie sur la touche ~h~~k~~PED_FIREWEAPON~~w~ ~w~pour ~h~tirer~w~ avec le fusil à lunette. -[SAL5_D3:SAL5] -~w~Conduis le ~h~véhicule ~w~dans le garage. +[HLPSN_G] +Appuie sur la touche ~h~~k~~PED_FIREWEAPON~~w~ ~w~pour ~h~tirer~w~ avec le fusil à lunette. -[SAL5_D4:SAL5] -~w~Descends du véhicule et sors du ~h~garage. +[PLANE_H] +Utilise la touche ~h~~k~~VEHICLE_ACCELERATE~~w~ pour accélérer. Gauche et droite pour tourner. -[SAL5_B:SAL5] -~w~Trouve un véhicule à 4 places et un peu de ~b~renforts. +[PLANE_4] { reVC update } +{Utilise la touche ~h~~k~~VEHICLE_ACCELERATE~~w~ pour accélérer. Gauche et droite pour tourner.} +Utilise le joystick analogique droit pour accélérer, appuie vers le bas sur le joystick analogique gauche pour monter et vers le haut pour descendre. Gauche et droite pour tourner. -[SAL5_C:SAL5] -~w~T'as besoin d'un véhicule à 4 places. +[HELP55] +Appuie sur la touche ~h~~k~~PED_FIREWEAPON~~w~ pour attaquer le chef. -[SAL5_C0:SAL5] -~w~Embarque les ~b~renforts. +[STPR_8] +Pole Position Club -[SAL5_C1:SAL5] -~w~T'as besoin d'un véhicule avec plus de sièges pour embarquer des ~b~renforts. +[STPR_9] +3321 Vice Point -[SAL5_C2:SAL5] -~w~Va à ~y~Portland Docks. +[STPR_10] +Appartement de Links View -[SAL5_AA:SAL5] -~w~Hé... mec... Ca fait des plombes que je t'attends ! +[STPR_11] +El Swanko Casa -[SAL5_AB:SAL5] -~w~Arrête de gémir, Miguel. T'as le matos ? +[STPR_12] +1102 Washington Street -[SAL5_AG:SAL5] -~w~... T'as notre fric ? +[STPR_13] +Appartement d'Ocean Heights -[SAL5_AH:SAL5] -~w~Ouais... +[STPR_14] +Skumole Shack -[SAL5_AI:SAL5] -~w~Hein ? +[STPR_15] +Hyman Condo -[SAL5_AJ:SAL5] -~w~Sale enfoiré ! +[RCCANX] +~r~Avion RC annulé. -[SAL5_C8:SAL5] -~w~Monte dans le ~b~véhicule~w~ avec la drogue et tire-toi en vitesse ! +[CLT_HL2] +Lorsque tu ramasses des fringues, une ou deux étoiles d'indice de recherche sont enlevées. -[SAL5_C9:SAL5] -~w~Conduis le véhicule au ~y~box de Salvatore. +[CRED009] +CONCEPTION DES MISSIONS -[SAL5_D1:SAL5] -~w~Remonte dans le ~b~véhicule ! +[CRED359] +LEE JOHNSON -[SAL5_D2:SAL5] -~r~La drogue a été détruite ! +[CRED360] +HENDRIK LESSER -[SAL5_AF:SAL5] -~w~Hé hé hé ! Je t'aime bien, Toni. T'es aussi couillu qu'un taureau ! +[CRED361] +PASQUALE STACCHIOTTI -[SAL5_C3:SAL5] -~w~Sème les flics ! +[CRED362] +ENRIQUE FERNANDEZ -[SAL5_D5:SAL5] -~r~La drogue a été saisie ! +[CRED363] +PAUL BYERS -[SAL5_AD:SAL5] -~w~Hé, j'suis un homme très occupé, Toni ! Le prochain coup, j'trouve un autre acheteur ! +[CRED364] +MIKE EMENY -[SAL5_AE:SAL5] -~w~Ouais, ben tu trouveras personne qui paye comme nous. +[CRED365] +ROB DUNKIN -[SAL5_D6:SAL5] -~w~Elimine les ~r~dealers de drogue. +[CRED366] +CHARLIE KINLOCH -[CONT_01:SAL5] -Ta gueule, sale pute ingrate ! +[CRED367] +KEVIN HOBSON -[CONT_06:SAL5] -Y a plus que comme ça que tu m'touches... +[CRED368] +JIM CREE -[CONT_07:SAL5] -Merde, et pourquoi j'voudrais te toucher ? +[MOB_66A] +Tommy, Tommy, Tommy, pourquoi t'es revenu ici? -[CONT_08:SAL5] -J'aime pas le matos d'occase. +[MOB_66B] +On t'a déjà dit qu'on voulait plus te revoir. -[CONT_09:SAL5] -Tu m'fous la gerbe. +[MOB_67A] +Tommy, je crois que tu devrais rester à l'écart, tu saisis? -[CONT_12:SAL5] -Oh, arrête ! Tu sais quoi ? +[MOB_67B] +Les petits gars Haïtiens t'aiment pas beaucoup. -[CONT_15:SAL5] -Salut, Toni... +[MOB_18A] +Tommy, c'est Paulo. Tu vas bien? Bon, mec, il faut que je te parle. -[CONT_16:SAL5] -J'veux mon fric, vieux con ! +[MOB_18B] +Ah, mon pote, tu croiras jamais l'incroyable petit lot que je viens de lever... -[CONT_17:SAL5] -Dégage de là, pétasse ! +[MOB_18C] +Elle se promenait juste en bas dans Little Havana, mon pote. -[CONT_18:SAL5] -Oh, Anthony, t'es un ange de miséricorde. +[MOB_18D] +Elle m'a dit qu'elle s'appelait Mercedes ou un truc comme ça. -[CONT_19:SAL5] -Ah, les femmes, qu'est-ce qu'on peut se faire chier avec, pas vrai ? +[MOB_18E] +Ah, mon pote, faut que t'ailles voir cette fille! -[CONT_20:SAL5] -Heureusement que j'peux avoir confiance en quelqu'un... en toi, Toni ! +[MOB_18F] +Elle ferait bander un eunuque! Elle m'a dit que j'étais le meilleur coup de sa vie et tout et tout! -[CONT_21:SAL5] -T'es un mec super important pour moi. J'te l'avais jamais dit ? +[MOB_18G] +Vas-y, trouve-la. A plus tard! -[CONT_22:SAL5] -T'arrives même pas à bander, pauvre connard ! +[MOB_72A] +Tommy, c'est moi, Lance. Ferme-la, Tommy, parce que j'ai pas le temps de discuter! -[CONT_23:SAL5] -Pas pour toi, j'trique pas pour les chiottes publiques, salope ! +[MOB_72B] +J'me tape de ce que t'as à me dire. Pourquoi ça m'intéresserait? T'en as rien à foutre de moi, non? -[CONT_24:SAL5] -Super important. Ecoute... Toi et moi, maintenant, on est aux commandes. +[MOB_72C] +Il faut que tu sois plus sympa avec moi. Donne-moi une belle part. Tu vois... -[CONT_25:SAL5] -On a viré tous ces cons. +[MOB_72D] +Tommy... Ecoute, mec, je suis désolé. C'est que... -[CONT_26:SAL5] -Qu'est-ce que t'en sais ? Tu préfères traîner avec des mecs ! +[MOB_72E] +Les gens arrêtent pas de me materner, de me traiter comme un gamin. -[CONT_27:SAL5] -Et toi, t'arrêtes de faire chier que quand t'as la culotte baissée, +[MOB_72F] +Mon frère pourrait me faire ça, mais pas toi. S'il te plaît. -[CONT_28:SAL5] -en train de te faire enfiler ! +[MOB_72G] +Faut que j'y aille. -[CONT_29:SAL5] -Putain... Même les lapins, ils ont pas le feu au cul comme toi ! +[MOB_63A] +Tommy, c'est Earnest. Earnest Kelly. -[CONT_33:SAL5] -Bon, j'ai un chargement de tu sais quoi qu'arrive... +[MOB_63B] +Ca va? -[CONT_34:SAL5] -Ca va nous propulser au sommet, toi et moi. +[MOB_63C] +Bien. Il va me falloir une canne pour marcher, mais je devrais revenir rapidement dans les affaires. -[CONT_35:SAL5] -Tout va se passer comme sur des roulettes. +[MOB_63D] +Bien. -[CONT_36:SAL5] -J'ai juste besoin d'un mec sur qui je peux compter pour gérer tout ça. +[MOB_63E] +J'ai appris au sujet de Lance. Quel enculé, hein? -[CONT_37:SAL5] -OK, Toni, à plus tard. - -[CONT_38:SAL5] -Et au fait, j'ai jamais rencontré de minette avec une culotte hydraulique ! - -[CONT_39:SAL5] -C'est pas croyable ! Bordel ! Pourquoi je l'ai épousée !? - -[CONT_40:SAL5] -J'rêvais d'une fille réglo et j'suis tombé sur une salope ! - -[CONT_41:SAL5] -J'ai dû être trop con dans une aut' vie... - -[CONT_42:SAL5] -J'vois que ça. - -[CONT_02:SAL5] -- Encore un mot et ça va chier pour ta gueule. ~n~ - Ouais, c'est ça, gros dur. - -[CONT_04:SAL5] -- Qu'est-ce tu vas me faire ? Me frapper ? ~n~ - Faudrait p'têt... - -[CONT_10:SAL5] -- Quoi ? Moi ? J'te fous la gerbe ? ~n~ - Ouais ! La gerbe ! - -[CONT_13:SAL5] -- Papa avait raison quand il disait que t'étais qu'un gros plouc... ~n~ - Ouais, ouais, c'est ça... - -[CONT_43:SAL5] -- Alors, écoute, c'est important... ~n~ - Va te faire foutre, Salvatore Leone, - -[CONT_31:SAL5] -- petite merde de macho rital tout juste bon à cogner sa salope. ~n~ - Me faire foutre ?! J'croyais que c'était ta spécialité ? - -{=================================== MISSION TABLE SAL4 ===================================} - -[SAL4_I1:SAL4] -~w~Cette grève continuera tant que j'aurai pas de garantie de la ville ! - -[SAL4_I2:SAL4] -~w~Si les Mafiosi croient diriger le syndicat, ils se trompent ! - -[SAL4_I3:SAL4] -~w~Ils me font pas peur ! - -[SAL4_I4:SAL4] -~w~J'en ai des plus grosses qu'eux tous réunis ! - -[SAL4_I5:SAL4] -~w~T'entends cette merde ? - -[SAL4_I6:SAL4] -~w~Je devrais mettre un contrat sur cette salope, elle me mène en bateau ! - -[SAL4_I7:SAL4] -~w~... mais c'est un jeu qui peut se jouer à deux... - -[SAL4_I8:SAL4] -~w~Toni, tu vas porter un message pour moi ! - -[SAL4_A2:SAL4] -~w~Vire le ~r~chauffeur~w~ du tableau. - -[SAL4_A3:SAL4] -~w~Hé ! - -[SAL4_A4:SAL4] -~w~Monte dans la ~b~limo. - -[SAL4_A5:SAL4] -~w~Ramène la limo à la ~y~station de radio ! - -[SAL4_A6:SAL4] -~w~Maintenant, attends Hopper. - -[SAL4_A7:SAL4] -~w~Gare la limo comme avant. Hopper ne doit rien suspecter. - -[SAL4_B1:SAL4] -~w~Embarcadère d'Harwood ! Et en vitesse ! - -[SAL4_B2:SAL4] -~w~C'est parti ! - -[SAL4_C1:SAL4] -~w~Colle la trouille de sa vie à Hopper ! - -[SAL4_C2:SAL4] -Trouillomètre - -[SAL4S1:SAL4] -~w~Hé, doucement, on fait pas la course ! - -[SAL4S2:SAL4] -~w~Dites donc, c'est pas le bon chemin, si ? - -[SAL4S3:SAL4] -~w~Hé, vous êtes pas mon chauffeur habituel ! - -[SAL4S4:SAL4] -~w~Merde, vous êtes qui ?! - -[SAL4S5:SAL4] -~w~Ta gueule ! - -[SAL4S6:SAL4] -~w~A partir de maintenant, tu fais exactement ce que Salvatore Leone te dit ! - -[SAL4S7:SAL4] -~w~Capici ? - -[SAL4S8:SAL4] -~w~Je... Pas question que je cède à ces menaces ! - -[SAL4S9:SAL4] -~w~C'est ce qu'on va voir ! - -[SAL4S10:SAL4] -~w~Laissez-moi sortir, et tout de suite ! - -[SAL4S11:SAL4] -~w~Je vous en prie, vous allez nous tuer ! - -[SAL4S12:SAL4] -~w~Noooooon ! - -[SAL4S13:SAL4] -~w~Qu'est-ce que j'ai fait pour mériter ça ? - -[SAL4_F1:SAL4] -~w~Où est ma limo ? - -[SAL4_F2:SAL4] -~w~Vous êtes pas mon chauffeur ! J'appelle la police ! - -[SAL4_F3:SAL4] -~r~Trop tard, Hopper t'a démasqué ! - -[SAL4_F4:SAL4] -~w~Salvatore peut aller se faire foutre ! - -[SAL4_F5:SAL4] -~r~La limo est détruite ! - -[SAL4_F6:SAL4] -~r~Hopper est morte ! - -[SAL4_F7:SAL4] -~r~Hopper a filé ! - -[SAL4_F8:SAL4] -~r~L'état de la limo a alerté Hopper. - -[SAL4_F9:SAL4] -~r~Hopper a eu la trouille. - -[SAL4_P1:SAL4] -~w~OK ! OK ! J'en ai assez ! - -[SAL4P1A:SAL4] -~w~Je ferai ce que vous voudrez. - -[SAL4_P2:SAL4] -~w~Conduis Hopper au ~y~piquet de grève de l'embarcadère. - -[SAL4_P3:SAL4] -~w~Et oublie pas notre accord, ma poule ! - -[SAL4_H1:SAL4] -~w~Une bonne dose de vitesse, de collisions et de cascades, et Hopper sera à tes pieds. - -[SAL4_F0:SAL4] -~r~Trop tard ! Hopper a quitté la station de radio ! - -[SAL4_A:SAL4] -~w~Atteins la ~y~station de radio~w~ avant que Hopper ne parte, à 0~1~:00. - -[SAL4_A1:SAL4] -~w~Atteins la ~y~station de radio~w~ avant que Hopper ne parte, à ~1~:00. - -{=================================== MISSION TABLE SAL6 ===================================} - -[SAL6_A0:SAL6] -~w~Toni, on a des ennuis, de gros ennuis ! - -[SAL6_A1:SAL6] -~w~Qu'est-ce qui se passe, Sal ? - -[SAL6_A3:SAL6] -~w~Ils nous mettent une branlée ! - -[SAL6_A4:SAL6] -~w~On termine tout juste une putain de guerre et BAM ! On se retrouve au beau milieu d'une autre ! - -[SAL6_A5:SAL6] -~w~J'te jure... Juste au moment où les choses s'amélioraient. Putain, j'suis maudit ! - -[SAL6_A6:SAL6] -~w~Hé, vous en faites pas pour ça, boss. J'm'en occupe. - -[SAL6_AA:SAL6] -~w~Sal a laissé les armes dont t'auras besoin dans le garage. - -[SAL6_B:SAL6] -~w~Arrête le massacre des ~r~Diablos~w~ avant que tous les mecs de Leone se fassent tuer ! - -[SAL6_1:SAL6] -~w~Seuls ~1~ mecs de Leone sont encore vivants ! - -[SAL6_2:SAL6] -~w~Un seul Leone est encore en vie ! - -[SAL6_C1:SAL6] -~w~On va tous se faire massacrer, Toni ! - -[SAL6_C2:SAL6] -~w~Je suis pas payé assez cher pour ça, mec ! - -[SAL6_C3:SAL6] -~w~T'es fêlé, Toni ! On va tous y passer ! - -[SAL6_E1:SAL6] -~w~Sal ? - -[SAL6_E2:SAL6] -~w~Toni ! C'est réglé ? Ca donne quoi ? - -[SAL6_E3:SAL6] -~w~C'est pas bon, Sal. - -[SAL6_E4:SAL6] -~w~J'ai sauvé quelques gars, mais on en avait perdu plein avant que j'arrive. - -[SAL6_E5:SAL6] -~w~J'crois qu'on va se faire virer de ce territoire. - -[SAL6_E6:SAL6] -~w~Faudra me tuer d'abord ! C'est pas encore joué ! - -[SAL6_E7:SAL6] -~w~Je peux pas perdre ! Les Leone battent jamais en retraite ! - -[SAL6_E8:SAL6] -~w~Tu m'entends, Toni ? - -[SAL6_E9:SAL6] -~w~Z'avez raison, Sal. - -[SAL6_G0:SAL6] -~r~Tous les hommes de Leone sont morts. - -[SAL6_Z1:SAL6] -Leone - -[SAL6_Z2:SAL6] -Diablos - -[SAL6_C0:SAL6] -~w~Qu'ils aillent se faire foutre ! On se tire d'ici ! - -[SAL6_A2:SAL6] -~w~Ce foutu monde tourne pas rond ! On a des tas de Diablos sur le dos à Hepburn ! - -{=================================== MISSION TABLE SAL7 ===================================} - -[SAL7_01:SAL7] -~w~Hé, Sal ! - -[SAL7_02:SAL7] -~w~Toni ! Comment tu trouves cette nouvelle caisse ? - -[SAL7_05:SAL7] -~w~Un vrai bijou, pas vrai ? Toutes les options, du haut de gamme. - -[SAL7_A6:SAL7] -~w~... Ah oui, la crise de la quarantaine ! - -[SAL7_07:SAL7] -~w~Ferme-la ! Ecoute, Toni... - -[SAL7_08:SAL7] -~w~J'ai un gros tas de fric à récupérer dans mon entrepôt du côté de Callahan Point. - -[SAL7_10:SAL7] -~w~Je peux faire confiance à personne. - -[SAL7_11:SAL7] -~w~Bon, vous allez papoter toute la journée ou on y va ? - -[SAL7_12:SAL7] -~w~Bébé, j'me souviens pas t'avoir donné l'autorisation de l'ouvrir ! - -[SAL7_20:SAL7] -~w~Allez ! Vite ! - -[SAL7_21:SAL7] -~w~OK... - -[SAL7_22:SAL7] -~w~Allons-y ! - -[SAL7_23:SAL7] -~w~Hé, Toni ! Come sta ? - -[SAL7_30:SAL7] -~w~Va à ~y~l'entrepôt. - -[SAL7_40:SAL7] -~w~Récupère le fric de Salvatore avant qu'il ne parte en fumée ! - -[SAL7_50:SAL7] -~w~Rapporte le fric chez ~y~Salvatore. - -[SAL7_NM:SAL7] -~w~Retourne là-bas ! T'as pas pris tout le ~g~fric ! - -[SAL7_E1:SAL7] -~w~Tuez-le ! - -[SAL7_E2:SAL7] -~w~Crève ! - -[SAL7_E3:SAL7] -~w~Y en a un là ! - -[SAL7_E4:SAL7] -~w~Je le vois ! - -[SAL7_T1:SAL7] -~w~Dégage ! - -[SAL7_T2:SAL7] -~w~Tu vas le sentir passer ! - -[SAL7_T3:SAL7] -~w~Allez ! - -[SAL7_T4:SAL7] -~w~Prends ça ! - -[SAL7_F1:SAL7] -~r~T'as pas récupéré le fric de Salvatore à temps ! - -[SAL7_06:SAL7] -~w~Qu'est-ce que ça sent ? - -[SAL7_42:SAL7] -~w~Récupère le ~g~fric~w~ avant qu'il ne parte en fumée ! - -{=================================== MISSION TABLE SAL8 ===================================} - -[SAL8_VE:SAL8] -~r~v1.2 - -[SAL8_11:SAL8] -~w~Toni, trouve une caisse et allons-y... - -[SAL8_12:SAL8] -~w~Va au terminal des ferrys. - -[SAL812A:SAL8] -~w~Mais la grève continue... Y en aura pas beaucoup, des ferrys. - -[SAL812B:SAL8] -~w~Toi, tu conduis et moi, je réfléchis. - -[SAL8_14:SAL8] -~w~Bordel de merde ! Ca grouille de flics par ici ! Sors-nous d'ici en vitesse ! - -[SAL8_15:SAL8] -~w~Où on va ? - -[SAL8_16:SAL8] -~w~Callahan Bridge ! - -[SAL816A:SAL8] -~w~... Mais les travaux sont pas achevés ! - -[SAL816B:SAL8] -~w~C'est nous qui serons achevés si tu décolles pas ! Fonce ! - -[SAL816C:SAL8] -~w~Va à ~y~Callahan Bridge. - -[SAL8_17:SAL8] -~w~Merde, qu'est-ce que tu fais ? - -[SAL8_18:SAL8] -~w~Toni ! On va avoir besoin d'une caisse ! - -[SAL818A:SAL8] -~w~J'ai pas du tout l'intention de marcher ! - -[SAL8_19:SAL8] -~w~T'as abandonné ~b~Salvatore~w~ ! Retourne le chercher ! - -[SAL8_20:SAL8] -~w~Sors-nous de là ! - -[SAL8_22:SAL8] -~w~Toni, t'as réussi ! Je savais que je pouvais te faire confiance ! - -[SAL822B:SAL8] -Bon, écoute... Je connais une planque où on pourra se mettre à l'abri un moment. - -[SAL822C:SAL8] -Allez, en route ! - -[SAL8_25:SAL8] -~w~Faut que ce tas de merde donne tout ce qu'il a dans le ventre ! A fond, Toni ! - -[SAL825A:SAL8] -~w~OH, MEEEEERDE ! - -[SAL8_26:SAL8] -Vitesse de saut - -[SAL8_27:SAL8] -~w~OK, on y est. - -[SAL8_28:SAL8] -~w~Je vais jeter un coup d'oeil dans le coin, voir ce qui se passe... - -[SAL828A:SAL8] -~w~Je te retrouve ici plus tard. - -[SAL8_29:SAL8] -~r~Sal a été tué ! - -[SAL829A:SAL8] -~w~Les flics t'ont repéré ! - -[SAL831:SAL8] -~w~La planque de Staunton est disponible ! - -[SAL833:SAL8] -~w~Sème les flics ! - -[SAL823A:SAL8] -~w~Mais est-ce vraiment le cas ? - -[SAL8_24:SAL8] -~w~Bien que toutes les lignes de métro et de ferrys soient officiellement rouvertes, - -[SAL824A:SAL8] -~w~des militants continuent à bloquer certaines parties de la ville. - -[SAL824B:SAL8] -~w~Le pont levant reliant Staunton Island et Shoreside Vale a été fermé. - -[SAL824C:SAL8] -~w~Les grévistes refusent d'accorder le moindre crédit aux promesses de la municipalité concernant l'avenir des ferrys. - -[SAL824D:SAL8] -~w~Pour conclure sur une note positive, les travaux du Callahan Bridge sont presque achevés. - -[SAL824E:SAL8] -~w~Mais ce travailleur de Liberty City ne pouvait supporter plus de retard. - -[SAL8_23:SAL8] -~w~Le mouvement de grève qui coupait Portland du reste de la ville est désormais terminé. - -[SAL812C:SAL8] -~w~Va jusqu'au ~y~terminal des ferrys. - -[SAL8WAN:SAL8] -Les flics veulent VRAIMENT Salvatore ! Si tu repeins le véhicule, ils finiront par retrouver sa trace. - -[SAL8_21:SAL8] -~w~Va au ~y~pont ! - -[SAL830:SAL8] -~w~Va à la ~y~planque. - -[SAL822A:SAL8] -~w~Si t'étais rasé, je pourrais t'embrasser ! - -[SAL832:SAL8] -~w~Il te faut une voiture ! - -[DRIV_01:SAL8] -Alors ? - -[DRIV_02:SAL8] -Alors quoi ? - -[DRIV_03:SAL8] -Joue pas au con avec moi, petit. - -[DRIV_06:SAL8] -Je sais c'que tu racontes sur moi. - -[DRIV_07:SAL8] -Tu m'prends pour un con ? Hein ? - -[DRIV_08:SAL8] -C'est c'que tu crois ? - -[DRIV_09:SAL8] -Patron, j'ai rien raconté sur vous. - -[DRIV_10:SAL8] -Bordel de merde... Je pige pas ce qui m'arrive... - -[DRIV_11:SAL8] -Putain. - -[DRIV_12:SAL8] -J'deviens parano, Toni. Complètement parano. - -[DRIV_13:SAL8] -Mais c'est pas parce que j'suis parano qu'ça veut dire que j'délire, capici ? - -[DRIV_14:SAL8] -Y a quelqu'un qui veut ma peau et c'est c'putain d'maire !! - -[DRIV_15:SAL8] -Il essaie de me coller tous les crimes du coin sur le dos ! - -[DRIV_16:SAL8] -Tous ! Alors que j'en ai pas commis la moitié ! - -[DRIV_17:SAL8] -Bon, allons régler ça. - -[DRIV_04:SAL8] -- Je jouais déjà au con quand ta mère était encore sur le trottoir. ~n~ - C'est quoi le problème au juste ? - -{=================================== MISSION TABLE JDT1 ===================================} - -[JDT1_CA:JDT1] -~w~J'suis sûr que les filles me truandent ! - -[JDT1_CB:JDT1] -~w~On va aller traîner dans le quartier et voir ce qui se passe ! - -[JDT1_DA:JDT1] -~w~C'est une de mes filles ! - -[JDT1_DB:JDT1] -~w~Hé, j'reconnais cette fille ! - -[JDT1_DC:JDT1] -~w~Une de mes filles ! - -[JDT1_DD:JDT1] -~w~Cette fille bosse pour nous. - -[JDT1_DE:JDT1] -~w~Cette fille là-bas... - -[JDT1_DF:JDT1] -~w~Arrête-toi à côté d'elle ! - -[JDT1_DG:JDT1] -~w~Arrête-toi près d'elle. - -[JDT1_DH:JDT1] -~w~On va l'embarquer. - -[JDT1_DI:JDT1] -~w~Gare-toi à côté d'elle. - -[JDT1_DJ:JDT1] -~w~Va jusqu'à elle. - -[JDT1_MA:JDT1] -~w~Salut, J.D., j'allais justement t'apporter ça, j'te jure ! - -[JDT1_MB:JDT1] -~w~Oh, tu me fais plus confiance, J.D. ? - -[JDT1_MC:JDT1] -~w~Salut, J.D. Mauvaise journée... c'est tout ce que j'ai gagné... - -[JDT1_MD:JDT1] -~w~Tu parles d'un Big Brother ! Le voilà, ton sale fric ! - -[JDT1_ME:JDT1] -~w~Hé, J.D. J'ai ton fric ici. - -[JDT1_MF:JDT1] -~w~Tu croyais que j'allais garder ce fric pour moi ou quoi ? - -[JDT1_MG:JDT1] -~w~Hé, tu nous surveilles, J.D. ? - -[JDT1_MH:JDT1] -~w~Tout est là... t'as qu'à compter ! - -[JDT1_EA:JDT1] -~w~Hé, ce mac est en train de soutirer son fric à une de mes filles ! - -[JDT1_EB:JDT1] -~w~Récupère le fric, Toni ! - -[JDT1_EC:JDT1] -~w~Merde, y fait quoi ce mac ? - -[JDT1_ED:JDT1] -~w~Il prend mon blé ! - -[JDT1_EE:JDT1] -~w~Chope-le, Toni ! - -[JDT1_45:JDT1] -~w~Récupère le ~g~fric du mac. - -[JDT1_46:JDT1] -~w~Le mac a filé ! - -[JDT1_FA:JDT1] -~w~C'est une de mes filles dans cette caisse ! - -[JDT1_FB:JDT1] -~w~Fais marche arrière en douceur jusqu'à la ~b~caisse~w~, que je jette un coup d'oeil. - -[JDT1_FC:JDT1] -~w~... Tout en douceur, faut pas les déranger ! - -[JDT1_FD:JDT1] -~w~Plus près... - -[JDT1_FE:JDT1] -~w~Plus près... - -[JDT1_FF:JDT1] -~w~Doucement... - -[JDT1_IA:JDT1] -~w~Bordel de merde, Toni ! Tu leur as fait peur ! - -[JDT1_GA:JDT1] -~w~Merde, Toni ! Je vois que dalle ! - -[JDT1_75:JDT1] -~w~Attends que la ~b~fille~w~ donne le fric à J.D. ! - -[JDT1_HA:JDT1] -~w~... Oh... ouais ! - -[JDT1_HB:JDT1] -~w~Continue, bébé ! - -[JDT1_HC:JDT1] -~w~C'est ça, c'est ça... - -[JDT1_HD:JDT1] -~w~... Oh OUAIS ! - -[JDT1_HE:JDT1] -~w~Quelle artiste ! - -[JDT1_HF:JDT1] -~w~Bon, c'est fini ou quoi ? - -[JDT1_JA:JDT1] -~w~Bien joué, Toni ! - -[JDT1_JB:JDT1] -~w~J'crois que les filles de cette équipe me causeront plus d'emmerdes... - -[JDT1_LA:JDT1] -~w~T'as tout foiré, Toni ! - -[JDT1_LB:JDT1] -~w~Je retourne au club ! - -[JDT1_ML:JDT1] -~w~Encore ~1~$ à récupérer ! - -[JDT1O01:JDT1] -~w~Monte dans la ~b~camionnette de J.D. - -[JDT1O02:JDT1] -~w~T'as abandonné ~b~J.D.~w~ ! Retourne le chercher ! - -[JDT1O03:JDT1] -~w~Attends que ~b~J.D.~w~ monte. - -[JDT1O04:JDT1] -~w~Cherche les filles de J.D. dans le Red Light District. - -[JDT1O05:JDT1] -~w~Retourne au ~y~club de J.D. - -[JDT1O07:JDT1] -~w~Arrête-toi près de la ~b~fille. - -[JDT1O08:JDT1] -~w~Bute le ~r~mac. - -[JDT1O09:JDT1] -~w~Encaisse le fric d'une des ~b~filles de J.D. - -[JDT1_F1:JDT1] -~r~La camionnette de J.D. a été détruite ! - -[JDT1_F2:JDT1] -~r~J.D. est mort ! - -[JDT1_F3:JDT1] -~r~T'as pas encaissé assez de fric de cette équipe ! - -[JDT1_D1:JDT1] -~w~Les filles de J.D. bossent dans le ~y~Red Light District~w~. Retourne là-bas ! - -[JDT1_F4:JDT1] -~r~Trop de filles de J.D. sont mortes ! - -[JDT1_KA:JDT1] -~w~C'était quoi, ça ? - -[JDT1_KB:JDT1] -~w~On a touché quelque chose ? - -[JDT1_KC:JDT1] -~w~Fais gaffe à la voiture, Toni ! - -[JDT1_81:JDT1] -~w~Tu as fait peur au client ! Il n'a pas besoin de public ! - -[JDT1O10:JDT1] -~w~Approche-toi de la ~b~voiture~w~ dans l'allée. - -[JDT1O11:JDT1] -~w~Klaxonne pour attirer leur attention ! - -[JDT1O12:JDT1] -~w~Plus tu laisses la fille travailler longtemps, plus elle gagne d'argent. - -[JDT1_MO:JDT1] -Cash Dû - -[JDT1_H1:JDT1] -~w~Utilise ~k~ ~VEHN~ pour klaxonner. - -[JDT1_WA:JDT1] -~w~Dépêche-toi ! Les ~b~filles~w~ finissent de bosser à ~1~:~1~ ! - -[JDT1_WB:JDT1] -~w~Dépêche-toi ! Les filles finissent de bosser à ~1~:~1~ ! - -[JDT1O06:JDT1] -~w~Encaisse le fric des filles de J.D., mais dépêche-toi, elles finissent de bosser à ~1~:~1~ ! - -[JDT1_WC:JDT1] -~w~Grouille-toi !~b~Les filles~w~ finissent de bosser à ~1~:0~1~ ! - -[JDT1_WD:JDT1] -~w~Grouille-toi ! Les filles finissent de bosser à ~1~:0~1~ ! - -[JDT1P06:JDT1] -~w~Récupère l'argent de J.D. auprès de ses filles. Fais vite, elles finissent de bosser à ~1~:0~1~. - -[BONE_01:JDT1] -Hé ! J.D., sors de là ! - -[BONE_02:JDT1] -Hé, J.D., pauvre taré, putain, sors de là, - -[BONE_03:JDT1] -ou j'viens te briser les jambes ! - -[BONE_04:JDT1] -Oh oui, je viens... mais pas comme ça, ha ha ! - -[BONE_05:JDT1] -Hé, Toni, que pasa ? On s'embrasse pas ? - -[BONE_06:JDT1] -Merde, t'es tout collant ! - -[BONE_07:JDT1] -Oh, c'est ce machin de strip-teaseuses qu'elles me foutent dessus. - -[BONE_08:JDT1] -Elles adorent ça. Elles en mettent partout et... bon, comment ça va ? - -[BONE_09:JDT1] -Putain, c'est quoi c'truc que tu portes ? - -[BONE_10:JDT1] -Quoi ? Ca ? J'suis un amant aventureux. - -[BONE_11:JDT1] -J'aime bien le... le côté expérimental, tu vois ? - -[BONE_16:JDT1] -Ben, c'est l'problème. On se fait truander. - -[BONE_17:JDT1] -OK, attends là deux secondes. - -[BONE_18:JDT1] -Faut que j'enlève ce... ce truc... - -[BONE_19:JDT1] -Hé, Raven, c'est le moment de ranger le double gode. - -[BONE_20:JDT1] -Allez, viens, Toni, on va faire un petit tour. - -[BONE_21:JDT1] -On a deux trois trucs à voir ensemble... OK ! OK !! - -[BONE_12:JDT1] -- Y a rien de mal à ça, si ? Tu peux mater si tu veux. ~n~- Merde, t'es givré, fais pas chier avec tes conneries. - -[BONE_14:JDT1] -- OK, relax Toni... ~n~ - Où est mon fric ? - -{=================================== MISSION TABLE JDT2 ===================================} - -[JDT2_I1:JDT2] -~w~Heureusement te voilà, Toni ! - -[JDT2_I2:JDT2] -~w~J'viens d'apprendre que les flics vont faire une descente ! - -[JDT2_I3:JDT2] -~w~Et alors ? T'as une licence. - -[JDT2_I4:JDT2] -~w~Pas pour tout ce qui s'passe ici ! - -[JDT2_I5:JDT2] -~w~Salvatore est là, en 'visite spéciale' auprès de mes filles, si tu vois ce que je veux dire... - -[JDT2_I6:JDT2] -~w~Faut le faire sortir d'ici avant que les flics débarquent ! - -[JDT2_I7:JDT2] -~w~Retrouve-le devant ! - -[JDT2_I8:JDT2] -~w~Jamais le temps de s'ennuyer... - -[JDT2_05:JDT2] -~w~Tirons-nous d'ici, et vite ! - -[JDT2_06:JDT2] -~w~Sème les flics, Toni ! J'veux pas ramener ces cons à la maison ! - -[JDT2_A1:JDT2] -~w~Monte dans la ~b~caisse. - -[JDT2_A2:JDT2] -~w~Ne perds pas ~b~Salvatore~w~. Retourne le chercher ! - -[JDT2_A3:JDT2] -~w~Conduis Salvatore ~y~chez lui. - -[JDT2_A5:JDT2] -~r~Salvatore est mort ! - -[JDT2_C1:JDT2] -~w~Tu t'en es bien tiré, fiston. J'aime ton style. T'as pas changé. - -[JDT2_C2:JDT2] -~w~Merci, m'sieur Leone. - -[JDT2_C3:JDT2] -~w~Tu sais, j'crois que Vincenzo t'accapare un peu trop. - -[JDT2_C4:JDT2] -~w~J'aurais besoin d'un bon gars comme toi. - -[JDT2_C5:JDT2] -~w~Appelle-moi un de ces quatre ! L'oncle Sal s'occupera de toi. - -[JDT2_A9:JDT2] -~r~Salvatore a été arrêté ! - -[JDT2_B2:JDT2] -~w~Sème les flics ! - -[JDT2_A6:JDT2] -~w~Ramène la ~b~voiture~w~ de Salvatore avant qu'il se fasse arrêter par les flics ! - -[JDT2_F1:JDT2] -~r~Tu as perdu Salvatore ! - -[JDT2_A4:JDT2] -~w~Conduis Salvatore loin du club et sème les flics ! - -{=================================== MISSION TABLE JDT3 ===================================} - -[JDT3_AA:JDT3] -~w~Salut, Toni, j'peux pas sortir maintenant, j'suis occupé... tu comprends ? - -[JDT3_AB:JDT3] -~w~A quoi ? Y se passe quoi là-dedans ? ... et c'est quoi cette puanteur ? - -[JDT3_AC:JDT3] -~w~Ecoute, Toni, on prépare un repas pour de vrais... euh... spécialistes. - -[JDT3_AD:JDT3] -~w~Ce truc, c'est de l'or en barre sur Internet ! - -[JDT3_AE:JDT3] -~w~Tu ferais mieux de t'inquiéter du tripot de Leone à Saint Mark's. - -[JDT3_AG:JDT3] -~w~Les Sindacco en font tout un plat. - -[JDT3_AH:JDT3] -~w~J'ai entendu dire qu'ils allaient le rayer de la carte... - -[JDT3_B:JDT3] -~w~Liquide les ~r~saboteurs Sindacco ! - -[JDT3_C:JDT3] -~r~Ils~w~ ont posé une bombe à l'extérieur du ~y~casino ! - -[JDT3_D:JDT3] -Explosion - -[JDT3_E:JDT3] -~w~Encore deux comme ça et le ~y~casino~w~ sera ruiné ! - -[JDT3_F:JDT3] -~w~Encore une et y a plus de ~y~casino ! - -[JDT3_H:JDT3] -~w~D'autres ~r~Sindacco~w~ rappliquent ! Arrête-les ! - -[JDT3_I:JDT3] -~w~La bombe du camion est amorcée ! - -[JDT3_J:JDT3] -~w~Le ~y~casino~w~ est sauvé. Tire-toi de là ! - -[JDT3_K:JDT3] -~w~Ils ont dû saboter le camion ! Il est bloqué en première ! - -[JDT3_L:JDT3] -~w~Des ~r~renforts Sindacco~w~ se dirigent vers le ~y~casino ! - -[JDT3_M:JDT3] -~w~Les ~r~Sindacco~w~ ont pas encore renoncé ! Y en a d'autres qui rappliquent ! - -[JDT3_N:JDT3] -~w~Ils se tirent ! Ne laisse aucun ~r~Sindacco~w~ s'échapper ! - -[JDT3_O:JDT3] -Distance de sécurité - -[JDT3_P:JDT3] -~w~Les Sindacco ont préparé un camion piégé ! Ils vont raser le casino d'un seul coup ! - -[JDT3_Q:JDT3] -~w~Défends le ~y~casino. - -[JDT3_R:JDT3] -~w~Va au ~y~casino. - -[JDT3_S:JDT3] -~w~Arrête le ~r~camion piégé~w~ pour protéger le ~y~casino ! - -[JDT3_T:JDT3] -~w~Eloigne le ~r~camion~w~ du ~y~casino~w~ avant qu'il explose ! - -[JDT3_BA:JDT3] -~w~Toni ? C'est J.D. - -[JDT3_BB:JDT3] -~w~Ecoute, j'viens d'apprendre qu'une bande de Sindacco se dirige vers toi. - -[JDT3_BC:JDT3] -~w~Et ils ont des explosifs à plus savoir qu'en faire ! - -[JDT3_BD:JDT3] -~w~Fais gaffe à toi ! - -[JDT3_BE:JDT3] -~w~Merci, J.D. ! - -[JDT3_BF:JDT3] -~w~J'te revaudrai ça. - -[JDT3_G:JDT3] -~r~Le casino a été détruit ! - -{=================================== MISSION TABLE JDT4 ===================================} - -[JDT4_3:JDT4] -~w~Les Sindacco qui gardent la Doll's House ne se fieront qu'aux ~h~voitures Sindacco. - -[JDT4_A1:JDT4] -~w~La classe... Si t'as pas de cul au jeu, tu peux t'en payer un pour te consoler ! - -[JDT4_B0:JDT4] -~w~Trouve un véhicule adapté et équipe-le d'une bombe. - -[JDT4_B1:JDT4] -~w~Remonte dans le ~b~véhicule~w~ avec la bombe. - -[JDT4_B3:JDT4] -~w~Maintenant, abandonne le véhicule et tire-toi ! - -[JDT4_B4:JDT4] -~w~Fais sauter la bombe ! - -[JDT4_B5:JDT4] -~w~Conduis le véhicule à l'~h~atelier~w~ et équipe-le d'une bombe. - -[JDT4_B6:JDT4] -~w~T'approche pas trop près ! - -[JDT4_C0:JDT4] -~r~T'étais trop près de l'explosion. - -[JDT4_C1:JDT4] -~w~Ca, c'est de la part de J.D. ! - -[JDT4_D0:JDT4] -~w~C'est qui, ce type ? - -[JDT4_D2:JDT4] -~w~Ca doit être un nouveau. - -[JDT4_0:JDT4] -COMPTE A REBOURS - -[JDT4_1:JDT4] -~w~Tu ne peux pas placer une bombe là-dessus ! - -[JDT4_2:JDT4] -~w~Suis la ~h~bombe~w~ sur le radar pour trouver l'~h~atelier de 8-Ball. - -[JDT4_A0:JDT4] -~w~Bon, Toni, les Sindacco tiennent une boîte, la 'Doll's House', - -[JDT4_AA:JDT4] -~w~un genre de casino-bordel. - -[JDT4_A2:JDT4] -~w~Hé hé ! Cette boîte est essentielle à leur organisation. - -[JDT4_A3:JDT4] -~w~Si tu pouvais les obliger à mettre la clé sous la porte... la faire sauter ou un truc comme ça... - -[JDT4_A4:JDT4] -~w~j'te jure que Salvatore apprécierait ! - -[JDT4_D1:JDT4] -~w~Je le reconnais pas... - -[JDT4_B2:JDT4] -~w~Prends le véhicule et gare-le dans le ~y~garage~w~ de la 'Doll's House'. - -[JDT4_B7:JDT4] -~w~Conduis prudemment ! Si ton véhicule est trop endommagé, il explosera ! - -[JDT4_B8:JDT4] -~w~Gare le véhicule dans le ~y~garage de la 'Doll's House'. - -[JDT4_4:JDT4] -~w~Appuie sur~h~ ~k~ ~PDFW~ ~w~pour ~h~faire exploser~w~ la bombe. - -[JDT4_B9:JDT4] -~w~Les Sindacco ont désamorcé la bombe ! - -{=================================== MISSION TABLE JDT5 ===================================} - -[JDT5_B0:JDT5] -~w~C'est un des mecs qu'ont enlevé Salvatore ! - -[JDT5_D0:JDT5] -~w~Où il est ? Dans le coffre ? - -[JDT5_D1:JDT5] -~w~Parfait, on l'emmène au broyeur. Le boss veut le voir plus plat qu'une pizza. - -[JDT5_E:JDT5] -~w~Sauve Salvatore avant qu'ils ne broient la ~b~caisse ! - -[JDT5_E0:JDT5] -~w~Ils t'ont repéré ! - -[JDT5_E1:JDT5] -~w~La ~b~caisse~w~ est pas surveillée ! Vole-la ! - -[JDT5_E2:JDT5] -~w~Conduis la caisse chez ~y~Salvatore. - -[JDT5_E3:JDT5] -~w~Remonte dans la ~b~caisse. - -[JDT5_F0:JDT5] -~w~Mmmphhh... mmmphhh... mpphh ! - -[JDT5_F3:JDT5] -~w~Mmpphh... arrgghh... mmpphh ! - -[JDT5_F4:JDT5] -~w~Mmpphh... arrgghh... arrggghh... arrg ! - -[JDT5_F5:JDT5] -~w~Yarrgghh... yarragh... mmpphh ! - -[JDT5_G0:JDT5] -~w~C'est quoi cette façon de conduire ? Tu veux me tuer ? - -[JDT5_G1:JDT5] -~w~M'sieur Leone. Boss... J'suis désolé. - -[JDT5_G2:JDT5] -~w~Qu'est-ce que j'peux dire ? - -[JDT5_G4:JDT5] -~w~J'leur arracherai le coeur ! J'ai pas dit mon dernier mot ! - -[JDT5_G5:JDT5] -~w~... Oh allez, Toni ! Tu m'as sauvé la mise ! Appelle-moi Sal ! - -[JDT5_X0:JDT5] -~r~Pas facile de suivre un homme mort... - -[JDT5_X1:JDT5] -~r~Tu l'as perdu ! - -[JDT5_F1:JDT5] -~w~C'est vous, m'sieur Leone ? C'est moi, Toni. - -[JDT5_F2:JDT5] -~w~Vous en faites pas. Je vais vous faire sortir d'ici ! - -[JDT5_G3:JDT5] -~w~Les fils de putes ! Ils croient qu'ils peuvent me faire ça, à moi !? - -[JDT5_X2:JDT5] -~r~Sal s'en est pas sorti ! - -[JDT5_X4:JDT5] -~r~Il t'a repéré. Tu trouveras plus Sal, maintenant ! - -[JDT5_X3:JDT5] -~r~Salvatore s'est fait écraser ! - -[JDT5_C:JDT5] -~w~Suis la ~r~voiture~w~, mais ne te fais pas repérer. - -[JDT5_0:JDT5] -~w~Si tu tires sur la caisse, tu risques d'atteindre Salvatore ! - -[JDT5_H0:JDT5] -~w~Suis la ~r~voiture~w~, mais ne t'approche pas trop ! - -[JDT5_H1:JDT5] -~w~Tu es trop près ! - -[JDT5_H2:JDT5] -~w~Ne t'éloigne pas trop ou tu vas perdre la ~r~voiture. - -[JDT5_H3:JDT5] -~w~Tu es trop loin ! - -[KIDN_01:JDT5] -J.D. ! - -[KIDN_02:JDT5] -Toni, c'est cool que tu sois là. - -[KIDN_03:JDT5] -Je transpire comme mon oncle dans une cour d'école ! - J'perds les pédales ! - -[KIDN_06:JDT5] -Oh mon dieu, c'est pas possible, y va me les arracher. - -[KIDN_07:JDT5] -Et y va me les coller dans un étau ! Et p'têt pas dans cet ordre-là ! - -[KIDN_08:JDT5] -Oh putain, j'me sens comme le jour où le FBI a fouillé mon disque dur ! - -[KIDN_13:JDT5] -Putain, j'arrive pas à l'croire... - -[KIDN_14:JDT5] -On peut pas m'accuser ! C'est pas ma faute ! - -[KIDN_15:JDT5] -Mais tu connais Salvatore, y va me coller les Moeurs au cul ! - -[KIDN_16:JDT5] -Bordel, ça va faire comme pour le détournement de mineures. - -[KIDN_17:JDT5] -T'as déjà fait de la taule pour détournement d'mineures, toi ? - -[KIDN_18:JDT5] -Y viennent te choper dans les douches ! - -[KIDN_19:JDT5] -Putain, elle avait 16 ans ! Bordel de merde, là, ça va être pire ! - -[KIDN_20:JDT5] -Hé, pauvre connard de suceurs de bites, c'est quoi l'problème ? - -[KIDN_04:JDT5] -- Qu'est-ce qu'on va faire ? ~n~ - Comment ça ? - -[KIDN_11:JDT5] -- Non, non... J'en ai déjà trop pris... ~n~ - Qu'est-ce qui s'passe, bordel ? - -[KIDN_09:JDT5] -J'ai l'coeur qui va exploser. T'aurais pas un tranquillisant ? - -[KIDN_10:JDT5] -Ou du rohapnin ? Ou alors p'têt un... - -[KIDN_21:JDT5] -C'est Salvatore. Il s'est fait kidnapper à la sortie du club. - -[KIDN_23:JDT5] -Pourquoi tu l'as pas dit tout de suite au lieu de me soûler avec tes conneries ? Allez, viens ! - -{=================================== MISSION TABLE JDT6 ===================================} - -[JDT6_A0:JDT6] -~w~Ouf ! Toni ! - -[JDT6_A1:JDT6] -~w~J.D. ? Hé, j'suis à l'arrière de... - -[JDT6_A2:JDT6] -~w~Je sais, je t'ai vu arriver. J'espérais vraiment que tu rappliquerais ! - -[JDT6_A3:JDT6] -~w~Salvatore est fou de rage ! - -[JDT6_A6:JDT6] -~w~Fais en sorte qu'il arrive rien à Salvatore. - -[JDT6_0:JDT6] -Santé de Sal - -[JDT6_1:JDT6] -~r~Salvatore a échoué. - -[JDT6_3:JDT6] -~w~Salvatore sera ici dans ~1~ secondes. - -[JDT6_5:JDT6] -~w~Protège ~b~Salvatore~w~ des ~r~Sindacco. - -[JDT6_6:JDT6] -~w~Un des ~b~gardes de Salvatore~w~ est mort ! - -[JDT6_7:JDT6] -~w~Les deux ~b~gardes de Salvatore~w~ sont morts ! - -[JDT6_8:JDT6] -~w~Les flics ! - -[JDT6_10:JDT6] -~w~Trouve une position favorable avant l'arrivée de Salvatore. - -[JDT6_11:JDT6] -~w~Où tu vas ? Salvatore a besoin de protection dans le Red Light District. - -[JDT6_12:JDT6] -Salvatore débarque. - -[JDT6_D1:JDT6] -~w~Hé... - -[JDT6_D4:JDT6] -~w~Quelqu'un a perdu un dollar ! - -[JDT6_C0:JDT6] -~w~C'est tout ce que tu sais faire ? - -[JDT6_C1:JDT6] -~w~Pauvre naze ! - -[JDT6_C2:JDT6] -~w~Bande de lopettes ! - -[JDT6_C3:JDT6] -~w~J'vais t'apprendre ! - -[JDT6_C4:JDT6] -~w~Prends ça ! - -[JDT6_C5:JDT6] -~w~Bande de bâtards ! - -[JDT6_C6:JDT6] -~w~J'suis le roi de cette ville ! - -[JDT6_A4:JDT6] -~w~Il s'amène ici en personne pour buter tous les Sindacco qu'il trouvera... - -[JDT6_A5:JDT6] -~w~... Alors, j'ai pris la tangente. Ecoute, j'ai laissé un fusil sur le toit, de l'autre côté de la rue. - -[JDT6_9:JDT6] -~w~Récupère le ~g~fusil de précision~w~ sur le toit. - -{=================================== MISSION TABLE JDT7 ===================================} - -[JDT7_VE:JDT7] -~r~v1.00 - -[JDT7_02:JDT7] -~w~Alors comme ça, Salvatore a nettoyé la baraque et maintenant, il s'occupe de la tienne !? - -[JDT7_03:JDT7] -~w~Tout est à moi, maintenant, Toni ! - -[JDT703A:JDT7] -~w~Ces connards de Sindacco ont été virés. - -[JDT7_04:JDT7] -~w~Ecoute, y paraît que les Siciliens essayaient de faire la paix entre les familles. - -[JDT7_4A:JDT7] -~w~Sal est avec un des grands pontes chez lui, en ce moment. - -[JDT7_4B:JDT7] -~w~Le truc, c'est qu'il sent le coup fourré. - -[JDT7_4C:JDT7] -~w~Il veut que quelqu'un aille là-bas pour suivre le mec, qu'on sache où il va. - -[JDT7_06:JDT7] -~r~T'as pas atteint l'hélico à temps ! Massimo est déjà parti ! - -[JDT7_07:JDT7] -~w~Suis ~r~Massimo~w~. Ne le perds pas ! - -[JDT7_08:JDT7] -~r~Il~w~ est en train de filer ! - -[JDT7_09:JDT7] -~r~T'as laissé filer Massimo ! - -[JDT7_10:JDT7] -~w~L'hélico a l'air d'atterrir. T'approche pas trop près ou tu leur feras peur. - -[JDT7_11:JDT7] -~r~Tu t'es trop approché ! Ils t'ont repéré ! - -[JDT7_14:JDT7] -~r~Il~w~ s'en va. Suis-~r~le~w~ à nouveau... - -[JDT7_15:JDT7] -~w~Massimo~w~ a l'air de vouloir atterrir là-bas... - -[JDT7_16:JDT7] -~w~Tu vas devoir t'approcher ~y~plus près... - -[JDT7_17:JDT7] -~r~T'as grillé ta couverture ! - -[JDT7_21:JDT7] -~w~Tu t'es fait repérer ! Liquide les ~r~Triades ! - -[JDT7_12:JDT7] -~w~Come siamo rimasti d'accordo, - -[JDT712A:JDT7] -~w~si vous faites le boulot de mes associés à leur place, vous n'aurez pas à vous plaindre... - -[JDT7_13:JDT7] -~w~... Hepburn Heights appartiendra aux Diablos. - -[JDT7_18:JDT7] -~w~... alors, maintenez les bastardi dei Leone occupés à Portland, - -[JDT718A:JDT7] -et dès que mes associés contrôleront cette ville, vous toucherez le gros lot. - -[JDT718B:JDT7] -Ci pensiamo noi. - -[JDT7_20:JDT7] -~w~Là-bas ! C'est un Leone ! - -[JDT7_22:JDT7] -Distance - -[JD_FIN:JDT7] -~w~Achève les ~r~Triades ! - -[JDT7_05:JDT7] -~w~Va au ~y~manoir de Salvatore~w~ avant le départ de Massimo ! - -[JDT7O07:JDT7] -~w~Atteins le ~y~manoir de Salvatore.~w~ Massimo s'en va à ~1~:~1~. - -[JDT7O08:JDT7] -~w~Il est presque ~1~:~1~. Massimo est sur le point de partir ! - -{=================================== MISSION TABLE JDT8 ===================================} - -[JDT8_A0:JDT8] -~w~Toni... C'est pour aujourd'hui ! J'vais enfin faire partie de la Famille ! - -[JDT8_A1:JDT8] -~w~J.D. l'intouchable ? Dieu nous protège ! - -[JDT8_A2:JDT8] -~w~Ca fait tellement longtemps que j'attendais ça... J'aurais jamais réussi sans toi, Toni. - -[JDT8_A3:JDT8] -~w~Arrête, tu vas me faire pleurer ! - -[JDT8_A4:JDT8] -~w~Salut Mickey ! Ca roule ? - -[JDT8_A5:JDT8] -~w~Je monte derrière... OK. - -[JDT8_C:JDT8] -~w~Monte dans la ~b~caisse~w~ et conduis J.D. à la cérémonie. - -[JDT8_C2:JDT8] -~w~Remonte dans la ~b~caisse. - -[JDT8_C3:JDT8] -~w~Va à la ~y~cérémonie. - -[JDT8_B0:JDT8] -~w~Ah, Toni ! J'vais te dire, j'arrive pas à croire que c'est la réalité ! - -[JDT8_B1:JDT8] -~w~Depuis le temps que j'en rêve ! - -[JDT8_B2:JDT8] -~w~J'ai trimé pour les Sindacco pendant des années pour que dalle ! - -[JDT8_B3:JDT8] -~w~Ces bâtards m'ont maintenu au bas de l'échelle ! - -[JDT8_B5:JDT8] -~w~Mais Salvatore, Dieu le bénisse, il est pas comme ça, et y a pas eu de problème. - -[JDT8_B6:JDT8] -~w~Je t'assure ! - -[JDT8_B7:JDT8] -~w~C'est génial ! - -[JDT8_B8:JDT8] -~w~Toni, j'hallucine ! - -[JDT8_B9:JDT8] -~w~Toni, c'est vraiment excellent, ce qui m'arrive, excellent ! - -[JDT8_BA:JDT8] -~w~Tu te rends compte ? J'y crois pas, c'est complètement dingue ! - -[JDT8_BB:JDT8] -~w~Ca y est, Toni ! J'appartiens à la Famille ! - -[JDT8_D1:JDT8] -~w~Où est Salvatore ? - -[JDT8_D2:JDT8] -~w~Toni, le premier verre est pour moi... - -[JDT8_D3:JDT8] -~w~BANG ! - -[JDT8_H0:JDT8] -~w~Hé, ce mec était une vraie vérole. - -[JDT8_H1:JDT8] -~w~Il a doublé son propre chef ! Disgrazia... - -[JDT8_H2:JDT8] -~w~Salvatore aurait jamais pu faire confiance à une ordure pareille ! - -[JDT8_H3:JDT8] -~w~Balance la putain de caisse dans la rivière. - -[JDT8_H4:JDT8] -~w~T'as qu'à me déposer en route. - -[JDT8_J:JDT8] -~w~Monte dans la ~b~caisse~w~ et va chez Mickey. - -[JDT8_J1:JDT8] -~w~Les flics t'ont repéré avec la caisse ! - -[JDT8_J2:JDT8] -~w~Les flics ont repéré ta ~b~caisse ! - -[JDT8_J3:JDT8] -~w~Remonte dans la ~b~caisse ! - -[JDT8_J4:JDT8] -~w~Dépose Mickey ~y~chez lui. - -[JDT8_K0:JDT8] -~w~Bon, j'te laisse régler ce merdier ! - -[JDT8_K1:JDT8] -~w~Oublie pas, balance la caisse dans la rivière ! - -[JDT8_F:JDT8] -~w~Balance la caisse dans la rivière. - -[JDT8_F1:JDT8] -~w~Balance la ~b~caisse~w~ dans la rivière. - -[JDT8_G5:JDT8] -~r~J.D. est mort ! - -[JDT8_G6:JDT8] -~r~Mickey est mort ! - -[JDT8_G8:JDT8] -~r~T'étais censé balancer la caisse dans la rivière. - -[JDT8_X0:JDT8] -~w~Où tu vas, Toni ? - -[JDT8_X3:JDT8] -~w~On va être en retard. - -[JDT8_X1:JDT8] -~w~Si les flics voient la caisse comme ça, on va se faire arrêter direct ! - -[JDT8_X2:JDT8] -~w~La cérémonie a lieu à Harwood. - -[JDT8_A6:JDT8] -~w~Toni... Toni... C'est pour aujourd'hui ! - -[JDT8_A7:JDT8] -~w~J'vais enfin faire partie de la Famille ! - -[JDT8_A8:JDT8] -~w~J.D. l'intouchable ? - -[JDT8__1:JDT8] -~w~J'attends ce moment depuis longtemps... - -[JDT8__2:JDT8] -~w~Ca aurait jamais été possible sans toi, Toni. - -[JDT8_A9:JDT8] -~w~Dieu nous protège ! - -[JDT8_D0:JDT8] -~w~Hé, on est arrivé ? - -[JDT8_B4:JDT8] -~w~Juste parce que j'avais une goutte de sang irlandais ! - -[JDT8_G7:JDT8] -~r~Tes passagers sont morts ! - -[JDT8_C4:JDT8] -~w~Elimine les ~r~tueurs des Sindacco~w~ avant qu'ils ne butent J.D. ! - -[JDT8_0:JDT8] -~w~Repeindre la voiture te permettra de gagner du temps mais dès que les flics verront le macchabée à la place du mort, ils seront de nouveau à tes trousses. - -[JDT8_K:JDT8] -~w~Oh c'est pas vrai ! - -[JDT8_BC:JDT8] -~w~Toni, putain, faut que tu décompresses. - -[JDT8_C5:JDT8] -~w~Achève les ~r~tueurs Sindacco. - -{=================================== MISSION TABLE MAC1 ===================================} - -[MAC1_AA:MAC1] -~w~M'man ? - -[MAC1_AB:MAC1] -~w~C'est moi, j'suis revenu ! - -[MAC1_AC:MAC1] -~w~Toni ?... Mais enfin, où étais-tu passé ? - -[MAC1_AM:MAC1] -~w~Tu n'as jamais téléphoné tout le temps que tu étais parti ! - -[MAC1_AD:MAC1] -~w~Il n'y avait pas le téléphone là où tu étais ? - -[MAC1_AE:MAC1] -~w~Oh, allez, m'man ! Tu sais bien que j'pouvais pas t'appeler ! - -[MAC1_AF:MAC1] -~w~Un vrai homme aurait appelé sa mère ! - -[MAC1_AG:MAC1] -~w~Tu ferais mieux de suivre l'exemple de Giovanni Casa ! - -[MAC1_AN:MAC1] -~w~Il appelle sa maman tous les jours, lui, - -[MAC1_AH:MAC1] -~w~et il est devenu un brave homme. - -[MAC1_AO:MAC1] -~w~Et sa saucisse sicilienne est la meilleure de la ville ! - -[MAC1_AI:MAC1] -~w~Casa ! Mais, m'man, Casa a rien d'un brave homme. C'est un pervers ! - -[MAC1_AJ:MAC1] -~w~Ce n'est qu'une stupide rumeur ! Quel genre d'homme es-tu, toi, Toni ? - -[MAC1_AK:MAC1] -~w~OK, m'man, comme tu voudras. - -[MAC1_AL:MAC1] -~w~J'vais peut-être appeler Giovanni pour voir ce qu'il devient. - -[MAC1_HA:MAC1] -~w~J'crois que j'ai besoin d'un gros câlin ! - -[MAC1_17:MAC1] -~w~Prouve à ta mère que Giovanni Casa n'est pas un brave homme ! - -[MAC1_B:MAC1] -~w~Va à ton ~y~appartement ~w~pour récupérer ton appareil photo. - -[MAC1_B0:MAC1] -~w~Va au ~y~traiteur de Casa. - -[MAC1B2:MAC1] -~w~Jolie photo ! Rapporte-la chez ~y~ta mère. - -[MAC1_B3:MAC1] -~w~Faufile-toi près de ~r~Casa~w~, et prends une photo compromettante ! - -[MAC1_B5:MAC1] -~w~Fais attention à ne pas ~r~lui~w~ faire peur. - -[MAC1_B6:MAC1] -~r~T'as plus de pellicule et t'as pas pris une seule photo compromettante de Casa pour ta mère. - -[MAC1_B7:MAC1] -~w~Récupère ton ~g~appareil photo. - -[MAC1_C0:MAC1] -~w~T'approche pas trop de ~r~Casa~w~ ou il aura des soupçons ! - -[MAC1_C1:MAC1] -~r~Tu lui as fait peur ! Maintenant, c'est raté pour la photo ! - -[MAC1_C2:MAC1] -~r~Quelque chose a alerté Casa ! - -[MAC1_C3:MAC1] -~r~T'as perdu Casa ! - -[MAC1_C4:MAC1] -~r~Casa s'est fait buter ! - -[MAC1_C5:MAC1] -~w~T'es trop près de ~r~Casa ! - -[MAC1_C6:MAC1] -~w~Ne perds pas ~r~Casa ! - -[MAC1_D0:MAC1] -~w~On dirait que Casa a trouvé un peu d'action. - -[MAC1_JA:MAC1] -~w~Salut, mesdames ! C'est l'heure de la tété ! - -[MAC1_JB:MAC1] -~w~Qui va être ma maman ? - -[MAC1_JC:MAC1] -~w~Oh là là ! - -[MAC1_IA:MAC1] -~w~OK, mesdames, je vous demande juste une minute... - -[MAC1_IB:MAC1] -~w~Je vais passer quelque chose de plus... moi. - -[MAC1_CA:MAC1] -~w~Bébé a besoin d'un gros câlin ! - -[MAC1_CB:MAC1] -~w~J'ai fait caca ! - -[MAC1_DA:MAC1] -~w~Suce ma tétine ! Suce-la ! - -[MAC1_EA:MAC1] -~w~Allez, les filles ! Mettez-vous dans l'ambiance ! - -[MAC1_FA:MAC1] -~w~MERDE ! Y a quelqu'un ! - -[MAC1_FB:MAC1] -~w~Vite ! Dans la camionnette ! - -[MAC1_GA:MAC1] -~w~Oh merde ! Merde ! - -[MAC1_GB:MAC1] -~w~NE ME REGARDE PAS ! - -[MAC1_BA:MAC1] -~w~Salut, m'man ! - -[MAC1_BB:MAC1] -~w~Regarde un peu cette photo ! C'est ton brave Giovanni Casa... qui porte des couches ! - -[MAC1_BC:MAC1] -~w~C'est à ça que tu passes ton temps ? - -[MAC1_BD:MAC1] -~w~A te faufiler dans les bois pour prendre des photos d'hommes ? - -[MAC1_BE:MAC1] -~w~C'est quoi ton problème, Antonio ? Tu me fais honte ! - -[MAC1_BF:MAC1] -~w~Mais... ? - -[MAC1_BG:MAC1] -~w~Et avec ou sans couche, il reste un bien meilleur homme que toi ! - -[MAC1_B8:MAC1] -~w~Maintenant, sors. - -[MAC1_B1:MAC1] -~w~Prends ~r~Casa~w~ en filature, mais ne t'approche pas trop. - -[MAC1_C7:MAC1] -~w~Fais un zoom sur ~r~Casa~w~ pour prendre une photo dont ~r~il aura honte. - -[MAC1_D1:MAC1] -~w~Ne lâche pas ~r~Casa~w~ ! Ca pourrait bien être l'occasion que tu attends. - -{=================================== MISSION TABLE MAC2 ===================================} - -[MAC2_AA:MAC2] -~w~M'man ! M'man! Allez, m'man, parle-moi ! - -[MAC2_AB:MAC2] -~w~Y a plus de m'man qui tienne, t'entends, espèce de lâche ! - -[MAC2_AC:MAC2] -~w~Ne me prends pas pour une imbécile ! Je sais pourquoi tu reviens pas t'installer ici ! - -[MAC2_AD:MAC2] -~w~Tu as peur de quelques Triades ! - -[MAC2_AE:MAC2] -~w~Ton père, Dieu ait son âme, n'aurait jamais laissé personne le chasser de chez lui ! - -[MAC2_AF:MAC2] -~w~Mais, m'man ! - -[MAC2_AG:MAC2] -~w~Mais ton père était pas un lâche, lui ! - -[MAC2_AH:MAC2] -~w~Tant que les Triades te montreront pas un peu de respect, tu ne seras plus mon fils ! - -[MAC2_AI:MAC2] -~w~A la rigueur ma fille, mais pas mon fils ! - -[MAC2_B1:MAC2] -~w~Montre à ta mère que t'as pas peur des Triades. Occupe-toi des ~r~deux gangs de Triades~w~ à Chinatown ! - -[MAC2_I1:MAC2] -~w~Un chef des Triades se trouve dans cette ~r~camionnette blindée~w~. Fais-lui quitter la route ! - -[MAC2_I2:MAC2] -~w~La ~r~camionnette ~w~file et elle perd sa cargaison ! Fais gaffe ! - -[MAC2_I3:MAC2] -~w~Ils se barrent ! Descends ces ordures de ~r~Triades~w~. - -[MAC2_I4:MAC2] -~w~Tu t'es fait repérer ! Liquide tous les ~r~membres des Triades ! - -[MAC2_I5:MAC2] -~w~Tu es dans le territoire des ~r~Triades~w~. Fais gaffe ! - -[MAC2_I6:MAC2] -~w~C'est bon pour cette Triade ! Occupe-toi de l'autre ~r~gang ! - -[MAC2_BA:MAC2] -~w~Ouais ! T'as vu ça, m'man !? - -[MAC2_BB:MAC2] -~w~C'est Toni Cipriani qui vous botte le cul ! - -[MAC2_BC:MAC2] -~w~Oubliez pas ce nom, bande d'imbéciles ! - -{=================================== MISSION TABLE MAC3 ===================================} - -[MAC3_A0:MAC3] -~w~M'man ? J'suis revenu... - -[MAC3_A1:MAC3] -~w~Regarde-toi ! Tu as l'air si maigre ! - -[MAC3_A2:MAC3] -~w~Si tu habitais encore ici, avec ta mère, comme un fils respectable, tu mangerais à ta faim ! - -[MAC3_A3:MAC3] -~w~Et quand je vois les voitures que tu conduis ! - -[MAC3_A4:MAC3] -~w~Tu me fais honte, Antonio, vraiment ! - -[MAC3_A5:MAC3] -~w~Les gens doivent penser que je t'ai mal élevé ! - -[MAC3_A6:MAC3] -~w~Qu'est-ce que j'y peux, m'man ? Tu sais que j'ferais n'importe quoi pour toi ! - -[MAC3_A7:MAC3] -~w~Tu as vu ce Sucho qui fait la course en ville aujourd'hui ? - -[MAC3_A8:MAC3] -~w~Ah, si tu pouvais être comme lui ! - -[MAC3_A9:MAC3] -~w~Il traite sa mère avec beaucoup de respect. - -[MAC3_AA:MAC3] -~w~Evidemment, si ton père était encore là, il gagnerait la course, lui, - -[MAC3_AB:MAC3] -~w~et il effacerait le sourire arrogant du visage de ce Sucho ! - -[MAC3_AC:MAC3] -~w~Ouais, et il le plomberait en beauté ! - -[MAC3_AD:MAC3] -~w~Mais ton père était un homme, un vrai ! Il en avait ! - -[MAC3_B0:MAC3] -~w~Prouve que tu vaux bien mieux que Sucho. Gagne la course et liquide-le. - -[MAC3_C0:MAC3] -~w~T'as battu ~r~Sucho~w~ ! Maintenant, bute-le ! - -[MAC3_C1:MAC3] -~r~Il~w~ essaie de se barrer ! - -[MAC3_X0:MAC3] -~r~T'as laissé filer Sucho ! - -[MAC3_C2:MAC3] -~r~Sucho~w~ s'échappe ! - -{=================================== MISSION TABLE MAC4 ===================================} - -[MAC4_A0:MAC4] -~w~M'man ! M'man ! T'es là ? - -[MAC4_A1:MAC4] -~w~Je ne te parle plus, Toni ! - -[MAC4_A2:MAC4] -~w~Tu déshonores tes racines siciliennes ! - -[MAC4_A3:MAC4] -~w~Depuis que tu as pris cette photo de Casa, il a arrêté de payer sa prime de protection. - -[MAC4_A4:MAC4] -~w~Et qu'est-ce que tu fais pour régler ça ? - -[MAC4_A5:MAC4] -~w~RIEN ! - -[MAC4_A6:MAC4] -~w~Ton père l'aurait déjà transformé en viande froide ! - -[MAC4_A8:MAC4] -~w~mais il faut des tripes pour snober un Cipriani ! - -[MAC4_A9:MAC4] -~w~Ah, si tu pouvais avoir ses tripes ! - -[MAC4_AA:MAC4] -~w~Tu veux que j'aie les tripes de Casa ? - -[MAC4_AB:MAC4] -~w~OK, m'man, tu les auras voulues ! - -[MAC4_B:MAC4] -~w~Va au ~y~traiteur de Giovanni Casa~w~ et persuade-le de venir faire un tour avec toi. - -[MAC4_B0:MAC4] -~w~Salut, Toni... Ca roule ? - -[MAC4_B1:MAC4] -~w~Quoi de neuf ? - -[MAC4_B2:MAC4] -~w~T'as perdu ta langue ? - -[MAC4_B3:MAC4] -~w~Toi et moi, faut qu'on parle, Casa... - -[MAC4_B4:MAC4] -~w~On va se trouver un coin plus peinard... - -[MAC4_C:MAC4] -~w~Ne laisse pas ~r~Casa~w~ s'en sortir vivant. - -[MAC4_C1:MAC4] -~w~Je payerai la prime de protection, Toni ! Je le jure ! - -[MAC4_C2:MAC4] -~w~Oh, arrête, Toni ! J'te donnerai tout ce que tu voudras ! - -[MAC4_C3:MAC4] -~w~Je ferai n'importe quoi, Toni ! Mais me fais pas de mal ! - -[MAC4_D1:MAC4] -~w~OK ! OK ! Tu m'as eu ! - -[MAC4_D2:MAC4] -~w~OK ! OK ! J'abandonne ! Mais me fais plus de mal ! - -[MAC4_D3:MAC4] -~w~Amène-toi, ducon ! - -[MAC4_E0:MAC4] -~w~Emmène Casa à la ~y~scierie. - -[MAC4_E1:MAC4] -~w~Ne laisse pas ~b~Casa ! - -[MAC4_F0:MAC4] -~w~Alors... euh... Où on va ? - -[MAC4_F1:MAC4] -~w~On est toujours potes, hein, Toni ? - -[MAC4_F2:MAC4] -~w~... J'vais te filer le fric que je dois, juré ! - -[MAC4_F3:MAC4] -J'ai juste besoin d'un peu de temps... - -[MAC4_F4:MAC4] -~w~Tu crois que ta mère aime les saucisses épicées ? - -[MAC4_F5:MAC4] -J'peux lui en dégotter sans problème ! - -[MAC4_G0:MAC4] -~w~Alors... euh... de quoi tu veux parler, Toni ? - -[MAC4_G1:MAC4] -~w~C'est pour la prime de protection ? - -[MAC4_G2:MAC4] -~w~C'est ça, non ? - -[MAC4_G3:MAC4] -~w~...Toni ? - -[MAC4_G4:MAC4] -~w~On peut en parler, hein, Toni ? - -[MAC4_G6:MAC4] -~w~Les gens se parlent plus assez de nos jours, Toni. - -[MAC4_G7:MAC4] -~w~Bouge plus et ferme-la, Casa. - -[MAC4_G8:MAC4] -~w~OK, Toni ! Mais... je... j'me sens pas à l'aise. - -[MAC4_G9:MAC4] -~w~Hé ! Attention avec ça, Toni ! C'est l'interrupteur de... - -[MAC4_GA:MAC4] -~w~AAARRRGGGHHHHHHHH ! - -[MAC4_GB:MAC4] -~w~Dégage de là en vitesse ! - -[MAC4_H:MAC4] -~w~La chair à saucisse maison à la sicilienne est dans la ~b~camionnette~w~, en attendant d'être livrée au traiteur de Casa. - -[MAC4_H1:MAC4] -~w~Fais la livraison au ~y~traiteur de Casa. - -[MAC4_H2:MAC4] -~w~Ne laisse pas la ~b~camionnette~w~ là-bas ! - -[MAC4_H3:MAC4] -~w~Sème les flics ! - -[MAC4_I0:MAC4] -~w~Une livraison de chair à saucisse spéciale ? - -[MAC4_I1:MAC4] -~w~Personne ne m'a prévenu ! - -[MAC4_I2:MAC4] -~w~Waou ! On a dévalisé un zoo, ce coup-ci ! - -[MAC4_I3:MAC4] -~w~Y a un gros tas de barbaque ici ! - -[MAC4_I4:MAC4] -~w~... Mmmm ! Délicieux ! OK, je suis preneur. - -[MAC4_I6:MAC4] -~w~S'il apprend ça, il va péter un plomb ! - -[MAC4_I7:MAC4] -~w~Et je l'aurai dans l'os ! - -[MAC4_X0:MAC4] -~r~C'était trop rapide et indolore pour un contrat sicilien ! - -[MAC4_X1:MAC4] -~r~Tu devais livrer la camionnette ! - -[MAC4_X2:MAC4] -~r~T'as perdu Casa ! - -[MAC4_E2:MAC4] -~w~Ne quitte pas la ~y~scierie ! - -[MAC4_I5:MAC4] -~w~Heureusement que Casa n'est pas là. - -[MAC4_G5:MAC4] -~w~Ouais ! Ouais ! C'est bien de parler. - -[MAC4_CN:MAC4] -~w~Appelez les flics ! - -[MAC4_CO:MAC4] -~w~Cherchez de l'aide ! - -[MAC4_CP:MAC4] -~w~Allez chercher de l'aide ! - -[MAC4_CQ:MAC4] -~w~Au secours ! - -[MAC4_CR:MAC4] -~w~Aidez-moi ! - -[MAC4_CS:MAC4] -~w~Sortez-moi de là ! - -[MAC4_A7:MAC4] -~w~Casa est peut-être un peu bizarre, - -[MAC4_C0:MAC4] -~w~On pourrait pas agir comme des gens civilisés, Toni? - -[MAC4_1:MAC4] -~w~Rapproche-toi de ~r~Casa ~w~en te faufilant derrière ~r~lui. - -{=================================== MISSION TABLE MAC5 ===================================} - -[MAC5_AA:MAC5] -~w~M'man ? T'es là ? - -[MAC5_AB:MAC5] -~w~Toni ? ... Je suis au téléphone... - -[MAC5_AC:MAC5] -~w~...ouais, il vient d'arriver... OK... OK... J'essaie de gagner du temps... ciao. - -[MAC5_AD:MAC5] -~w~Toni ? Tu es encore venu contrarier ta mère, hein !? - -[MAC5_AE:MAC5] -~w~Tu passes tes journées à jouer les durs. - -[MAC5_AF:MAC5] -~w~Tu viens jamais me voir, et tu ne me présentes même pas de fiancée ! - -[MAC5_AG:MAC5] -~w~De toute façon, qui voudrait de toi ? Si maigre et si blafard ! - -[MAC5_AH:MAC5] -~w~T'essaies de me faire mourir d'inquiétude et de honte !? ~w~Eh bien, c'est fini ! - -[MAC5_AI:MAC5] -~w~Maintenant... C'est terminé ! - -[MAC5_AJ:MAC5] -~w~J'ai placé un contrat sur ta tête. C'était le seul moyen, Antonio... - -[MAC5_AK:MAC5] -~w~... pour t'apprendre l'obéissance... - -[MAC5_AL:MAC5] -~w~Quoi ? M'man ! - -[MAC5_AM:MAC5] -~w~C'est pour ton bien, mon fils, essaie au moins de mourir en homme ! - -[MAC5_AN:MAC5] -~w~Et arrête de me couvrir de honte ! - -[MAC5_B1:MAC5] -~w~Les tueurs de ta mère sont là ! - -[MAC5_B2:MAC5] -~w~Montre à ta mère que tu vaux bien mieux que ses ~r~tueurs~w~. Tue-les tous ! - -[MAC5_B3:MAC5] -~w~Ils sont vraiment fous de rage ! Liquide-~r~les ! - -[MAC5_B4:MAC5] -~w~Les ~r~tueurs~w~ savent que t'es là. Tu dois t'éloigner de Saint Mark's ! - -[MAC4_B6:MAC5] -~w~D'autres ~r~tueurs~w~ s'amènent ! Dégage de Saint Mark's ! Ils savent où tu es ! - -[MAC4_B7:MAC5] -~w~UNE GRENADE ! COURS ! - -[MAC5_C1:MAC5] -~w~Tu t'es débarrassé de ceux-là... Mais ils ont été payés et d'autres respecteront le contrat, peu importe le temps que ça prendra. - -[MAC5_C2:MAC5] -~w~T'es prévenu... Ils reviendront ! - -[HM1:MAC5] -~w~Ils ne laissent pas tomber ! D'autres ~r~tueurs~w~ se dirigent vers toi. Elimine-les ! - -[HM2:MAC5] -~w~Attention ! Les ~r~tueurs~w~ se rapprochent. Descends-les ! - -[HM3:MAC5] -~w~D'autres ~r~tueurs~w~ approchent ! Explose-les ! - -[HM4:MAC5] -~w~Voici d'autres ~r~tueurs~w~ qui s'amènent ! Tue-les ! - -[MAC5_B5:MAC5] -~w~Occupe-toi des derniers ~r~tueurs~w~, mais n'entre pas dans Saint Mark's ! - -{=================================== MISSION TABLE MAR1 ===================================} - -[MAR1M1:MAR1] -~w~T'es en retard. Ah, les hommes... - -[MAR1M2:MAR1] -~w~Je vais faire du shopping et toi, tu conduis. - -[MAR1M3:MAR1] -~w~Alors sois gentil, je veux m'amuser aujourd'hui, même si t'en crèves ! - -[MAR1M4:MAR1] -~w~Je vais juste finir de me préparer. - -[MAR1M5:MAR1] -~w~Oh, pis non ! Je suis parfaite ! On y va, Toni ! - -[MAR1_B:MAR1] -~w~Conduis Maria au ~y~magasin. - -[MAR1_D:MAR1] -~w~Attends-moi ici, mon chou, ça sera pas long... - -[MAR1_D2:MAR1] -~w~Mais je voulais juste voir ce que ça donnait à la lumière du jour ! - -[MAR1_E:MAR1] -~w~Tirons-nous de là ! - -[MAR1_E3:MAR1] -~w~Retourne chercher ~b~Maria. - -[MAR1_F:MAR1] -~w~C'était génial ! Mais je dois encore récupérer deux trois trucs. - -[MAR1_G:MAR1] -~w~Laisse tourner le moteur... - -[MAR1_GB:MAR1] -~w~Déconne pas, Maria ! Arrête de faucher ! - -[MAR1_GC:MAR1] -~w~Mais non, mon chou ! C'était juste un malentendu ! - -[MAR1_G2:MAR1] -~w~Puisque je vous dis que j'ai rien caché ! - -[MAR1_H:MAR1] -~w~Ramène-moi chez moi ! - -[MAR1_I:MAR1] -~w~Si tu m'abandonnes ici, je demanderai à Salvatore de te les couper ! - -[MAR1_J:MAR1] -~r~Maria est morte ! Le monde est pas humain ! - -[MAR1_K:MAR1] -~w~Toni, mon chou, je me suis bien amusée ! - -[MAR1_K2:MAR1] -~w~Repasse donc un peu plus tard si tu veux qu'on s'amuse... tous les deux... - -[MAR1_K3:MAR1] -~w~A plus tard, mon chou ! - -[MAR1_L:MAR1] -~w~Les flics sont à nos trousses ! T'as intérêt à les semer ! - -[MAR1_L2:MAR1] -~w~On les a semés ! Allons faire du shopping ! - -[MAR1_M:MAR1] -~w~STOP ! VOLEUSE ! - -[MAR1EXT:MAR1] -~w~Ramène Maria à son ~y~appartement. - -[MAR1_D3:MAR1] -~w~Enlevez vos sales pattes de moi ! - -[MAR1_G3:MAR1] -~w~Foutez-moi la paix ! - -[MAR1_E2:MAR1] -~w~Sème les flics ! - -{=================================== MISSION TABLE MAR2 ===================================} - -[MAR2_AA:MAR2] -~w~C'est bon ! Un des molosses de Salvatore me conduit tout de suite... - -[MAR2_AB:MAR2] -~w~... oh, c'est un charmeur... - -[MAR2_AC:MAR2] -~w~Peut-être un peu trop maigre... - -[MAR2_AE:MAR2] -~w~Bon, écoute, je veux faire la fête, mais le placard est vide... - -[MAR2_AF:MAR2] -~w~T'as pas un peu de sucre ? Pure cane ? - -[MAR2_AG:MAR2] -~w~Génial. Ciao ! - -[MAR2_AH:MAR2] -~w~En route, Toni ! J'ai des courses à faire. - -[MAR2_BA:MAR2] -~w~T'as pas de caisse ? - -[MAR2_BB:MAR2] -~w~Dépêche ! Mon dealer va pas m'attendre toute la journée. - -[MAR2_3F:MAR2] -~w~Conduis Maria jusqu'à son ~y~dealer. - -[MAR2_BC:MAR2] -~w~Les voilà. Arrête-toi juste derrière eux. C'est bien... - -[MAR2_GA:MAR2] -~w~Attends-moi ici. - -[MAR2_GB:MAR2] -~w~J'suis pas sûr d'aimer ça. - -[MAR2_GC:MAR2] -~w~C'est gentil de t'inquiéter, mais j'suis la nana de Salvatore, tout ira bien. - -[MAR2_GE:MAR2] -~w~J'vais nulle part avec vous ! Vous vous prenez pour qui ? - -[MAR2_GF:MAR2] -~w~Fonce ! - -[MAR2_GG:MAR2] -~w~Toni ! - -[MAR2_GH:MAR2] -~w~Oh, meeeerde ! - -[MAR2_19:MAR2] -~w~Tue les ~r~Sindacco ! - -[MAR2_EA:MAR2] -~w~T'es contente de toi ? - -[MAR2_EB:MAR2] -~w~Toni Cipriani. Mon Héros ! - -[MAR2_EC:MAR2] -~w~Tu sais quoi ? Je me suis assez amusée. Ramène-moi, mon chou... - -[MAR2_HA:MAR2] -~w~Alors, euh... Tu montes boire un café... ou autre chose... ? - -[MAR2_HB:MAR2] -~w~Une autre fois. - -[MAR2_HC:MAR2] -~w~T'es sûr ? Ben, appelle-moi... - -[MAR2_O2:MAR2] -~w~Ramène Maria à son ~y~appartement. - -[MAR2_CA:MAR2] -~w~Vite, Toni ! - -[MAR2_CB:MAR2] -~w~C'est pas vrai, Toni, allez ! - -[MAR2_CC:MAR2] -~w~Au secours, Toni ! - -[MAR2_CD:MAR2] -~w~A l'aide ! - -[MAR2_CE:MAR2] -~w~Dépêche ! - -[MAR2_FA:MAR2] -~w~Et où je trouve ma came, maintenant, moi ? - -[MAR2_FB:MAR2] -~w~Tu crains, Toni ! - -[MAR2_LM:MAR2] -~w~T'as abandonné ~b~Maria~w~ ! Retourne la chercher. - -[MAR2_MD:MAR2] -~r~Maria est morte. - -[MAR2_WA:MAR2] -~w~Les ~r~dealers~w~ s'échappent ! - -[MAR2_DM:MAR2] -~r~Les dealers t'ont semé ! - -[MAR2_DA:MAR2] -~w~Tu parles d'un héros ! - -[MAR2_DF:MAR2] -~r~T'as fait peur aux dealers de Maria ! - -[MAR2_18:MAR2] -~w~Percute la ~r~voiture des Sindacco~w~ pour sauver Maria ! - -[MAR2_AD:MAR2] -~w~... ouais. - -{=================================== MISSION TABLE MAR3 ===================================} - -[MAR3_A0:MAR3] -~w~Cher Toni, je me suis offerte comme premier prix d'une course urbaine. - -[MAR3_A1:MAR3] -~w~Si Salvatore l'apprend, on aura tous les deux de gros ennuis... - -[MAR3_A2:MAR3] -~w~Alors, tu ferais mieux de venir sauver mes fesses... Et peut-être même que tu pourras en profiter ! - -[MAR3_A3:MAR3] -~w~Je t'embrasse, Maria. - -[MAR3_E0:MAR3] -~w~Allez, Maria ! On y va ! - -[MAR3_E1:MAR3] -~w~Ah, monsieur le dur passe enfin à l'action ! - -[MAR3_E2:MAR3] -~w~Ecoute, Maria. T'es la poule de Salvatore... - -[MAR3_E3:MAR3] -~w~Je suis la poule de personne ! - -[MAR3_E4:MAR3] -~w~... T'es vraiment qu'un sale ringard ! - -[MAR3_E5:MAR3] -~w~Allons-y, Wayne ! On va faire la fête ! - -{=================================== MISSION TABLE MAR4 ===================================} - -[MAR4_B1:MAR4] -~w~Wayne est avec son gang à ~y~Chinatown. - -[MAR4_B2:MAR4] -~w~Va là-bas et liquide-le ! - -[MAR4_C1:MAR4] -~r~Wayne~w~ se tire ! Grimpe sur une moto et explose-le ! - -[MAR4_C3:MAR4] -~w~T'es en train de le perdre ! Laisse pas ~r~Wayne ~w~se barrer ! - -[MAR4_D1:MAR4] -~w~C'est toi, Wayne ? - -[MAR4_D2:MAR4] -~w~Ca dépend, c'est pour qui ? - -[MAR4_D3:MAR4] -~w~J'suis un pote à Maria. - -[MAR4_D4:MAR4] -~w~... Alors, ça t'excite de cogner les gonzesses ? - -[MAR4_D5:MAR4] -~w~Cette salope l'avait cherché ! - -[MAR4_D6:MAR4] -~w~Ah ouais ? Alors, toi aussi ! - -[MAR4_D7:MAR4] -~w~Chopez-le ! - -[MAR4_T1:MAR4] -~w~Amène-toi, guignol ! - -[MAR4_T2:MAR4] -~w~T'es vraiment qu'un gros naze ! - -[MAR4_T3:MAR4] -~w~Tu sais même pas conduire une moto ! - -[MAR4_T4:MAR4] -~w~Si t'approches assez près, tu pourras embrasser mon cul ! - -[MAR4_F1:MAR4] -~r~T'as laissé filer Wayne ! - -[MAR4_P1:MAR4] -~w~T'as eu ce gros naze ! - -[MAR4_H1:MAR4] -Santé de Wayne - -[MAR4_C4:MAR4] -~w~Ne perds pas de vue ~r~Wayne. ~w~Poursuis-le et élimine-le ! - -[BIK_01:MAR4] -Qu'est-ce que t'as pris ? - -[BIK_02:MAR4] -Rien. - -[BIK_03:MAR4] -C'était quoi, ce coup-ci ? - -[BIK_04:MAR4] -De l'héro ? Des calmants ? Des quaaludes ? Un peu trop de coke ? - -[BIK_08:MAR4] -Qui t'a fait ça ? - -[BIK_09:MAR4] -Personne. - -[BIK_10:MAR4] -Qui c'est ? - -[BIK_11:MAR4] -Un mec que je fréquente, Wayne. - -[BIK_12:MAR4] -Un mec que tu fréquentes... T'es la nana d'mon patron ! - -[BIK_13:MAR4] -Ecoute, Toni, faut être plus cool. D'ailleurs, il me file du super speed, tu sais... - -[BIK_14:MAR4] -Une fille, ça a besoin d'excitants. - -[BIK_15:MAR4] -Et au lit, ça rend vraiment sauvage... - -[BIK_16:MAR4] -Ferme-la. Pourquoi il t'a fait ça, - -[BIK_17:MAR4] -ce connard de Wayne ? - -[BIK_18:MAR4] -Je lui ai dit que j'étais amoureuse d'un autre. - -[BIK_19:MAR4] -Je lui ai parlé de nous, Toni. - -[BIK_22:MAR4] -Où il est, ce Wayne ? - -[BIK_23:MAR4] -Il deale dans un bar de Chinatown. - -[BIK_24:MAR4] -Je t'aime, Toni Cipriani. - -[BIK_06:MAR4] -- Un peu trop de remontants pas assez forts ? ~n~ - Ferme-la, Toni ! - -[BIK_05:MAR4] -Ou pas assez d'antidépresseurs ? - -[BIK_20:MAR4] -- Et alors, il m'a cognée ! ~n~ - Y a rien entre toi et moi ! Merde, j'hallucine... - -{=================================== MISSION TABLE MAR5 ===================================} - -[MAR5_EA:MAR5] -~w~Pourquoi tu m'as conduite ici ? - -[MAR5_EB:MAR5] -~w~Ma came est pas là... Ici, c'est le coin où Wayne traînait toujours. - -[MAR5_EC:MAR5] -~w~... Je me souviens ! J'ai un peu de zap caché dans Hepburn Heights ! - -[MAR5_ED:MAR5] -~w~Hé, c'est cette salope de Maria ! Et c'est l'enfoiré qu'a buté Wayne ! - -[MAR5_AA:MAR5] -~w~J'ai caché le zap derrière la poubelle ! - -[MAR5_AB:MAR5] -~w~Merde ! Les ordures ont été enlevées ! - -[MAR5_AC:MAR5] -~w~Attends ! Je me souviens ! J'ai une autre cachette dans mon appart' ! - -[MAR5_AD:MAR5] -~w~T'es sûre, ce coup-ci ? - -[MAR5_AE:MAR5] -~w~Evidemment ! - -[MAR5_BA:MAR5] -~w~Je voulais dire chez Salvatore ! Chez Salvatore ! - -[MAR5_BB:MAR5] -~w~Tu te fous de moi, Maria !? - -[MAR5_FA:MAR5] -~w~Qu'est-ce que c'est que ce chauffeur ? J'attends depuis des plombes ! J'aurais pu faire une OD ! - -[MAR5_FB:MAR5] -~w~Je suis horrible ! Il me faut une nouvelle garde-robe, de nouveaux seins et une nouvelle tête ! - -[MAR5_FC:MAR5] -~w~Mon chou... T'as de l'argent ? - -[MAR5_FD:MAR5] -~w~Euh... Pas trop... - -[MAR5_FE:MAR5] -~w~Alors, je comprends pas pourquoi tu me tournes autour ! Je suis la nana de Salvatore ! - -[MAR5_FF:MAR5] -~w~Il est pété de thune ! T'as pas intérêt à recommencer à me brancher ! - -[MAR5_CA:MAR5] -~w~Mmm... - -[MAR5_CB:MAR5] -~w~Oh merde, je crois que je vais vomir. - -[MAR5_CC:MAR5] -~w~Je plane, Toni, putain, ce que je plane ! - -[MAR5_CD:MAR5] -~w~J'me sens pas bien... - -[MAR5_CE:MAR5] -~w~Tu conduis trop vite ! Trop lentement ! - -[MAR5_NC:MAR5] -~b~Maria~w~ peut à peine marcher. Trouve une caisse ! - -[MAR5_ND:MAR5] -~w~Maria peut à peine marcher. Trouve une caisse ! - -[MAR5_DA:MAR5] -~w~Putain, on va t'exploser, mec ! - -[MAR5_DB:MAR5] -~w~Toi et la salope, on va vous massacrer ! - -[MAR5_DC:MAR5] -~w~T'as fait une grosse erreur en essayant de nous baiser ! - -[MAR5_LM:MAR5] -~w~T'as abandonné ~b~Maria~w~ ! Retourne la chercher ! - -[MAR5_O1:MAR5] -~w~Conduis Maria au resto à ~y~Callahan Point. - -[MAR5_O2:MAR5] -~w~Conduis Maria à ~y~Hepburn Heights. - -[MAR5_O3:MAR5] -~w~Conduis Maria à ~y~son appartement. - -[MAR5_O4:MAR5] -~w~Conduis Maria au ~y~manoir de Salvatore. - -[MAR5_O5:MAR5] -~w~Retourne chercher ~b~Maria. - -[MAR5_MD:MAR5] -~r~Maria est morte ! - -[MAR5_O6:MAR5] -~w~Va chercher ~b~Maria. - -[OVER_01:MAR5] -Oh... Hé... Chéri... J'croyais que t'arriverais jamais... - -[OVER_02:MAR5] -Qu'est-ce que t'as ? - -[OVER_03:MAR5] -Oups ! Rien, chéri, tout va bien... - -[OVER_04:MAR5] -Debout, pauvre connasse, qu'est-ce que t'as encore pris ? - -[OVER_05:MAR5] -Encore pris ? Pas grand-chose... - -[OVER_06:MAR5] -Juste une ou deux... ou deux vertes, et puis une ou deux rouge foncé. - -[OVER_07:MAR5] -Oh, et puis, ces super pilules que j'fais venir de Hollande... - -[OVER_08:MAR5] -Une merveille ! C'est trop cool... - -[OVER_09:MAR5] -Non, c'est pas cool... - -[OVER_10:MAR5] -J'ai besoin d'un zap et tout ira bien ! - -[OVER_11:MAR5] -Ils sont quelque part par là. - -[OVER_12:MAR5] -C'est quoi ça, un zap ? - -[OVER_13:MAR5] -Un zap ? Tu sais pas ce que c'est qu'un zap ? - -[OVER_14:MAR5] -Ah, Toni, t'es vraiment un ringard ! - -[OVER_17:MAR5] -J'ai besoin d'un zap, Toni ! Je vais mourir ! - -[OVER_18:MAR5] -J'ai déjà ressenti ça juste avant une OD ! - -[OVER_19:MAR5] -Trouve-moi un zap, Toni ! - -[OVER_20:MAR5] -Je les ai oubliés au resto à Callahan Point. - -[OVER_21:MAR5] -Alors, bouge-toi ! On y va ! - -[OVER_15:MAR5] -- Toni, je t'aime. ~n~ - Allez, arrête de délirer ! - -{=================================== MISSION TABLE VIC1 ===================================} - -[VIC1I11:VIC1] -~w~J'ai une piaule sympa pour toi, Toni. - -[VIC1I12:VIC1] -~w~Ca va te plaire, c'est clair. - -[VIC1I13:VIC1] -~w~On va d'abord aller là-bas. - -[VIC1I14:VIC1] -~w~T'as le coeur sur la main. - -[VIC1_3:VIC1] -~w~Conduis Vincenzo à son ~y~entrepôt. - -[VIC1_4:VIC1] -~w~Remonte dans la ~b~caisse. - -[VIC1_5:VIC1] -~w~Conduis Vincenzo à la ~y~planque. - -[VIC1_6:VIC1] -~w~Marche sur le repère jaune dans l'embrasure de la ~y~porte. - -[VIC1_7:VIC1] -~w~Marche sur l'icone de fringues pour en changer. - -[VIC1_8:VIC1] -~w~Rejoins Vincenzo dehors. - -[VIC1_9:VIC1] -~w~Amène Vincenzo à ~y~Atlantic Quays. - -[VIC1_9A:VIC1] -~w~Maintenant, ramène-moi chez moi ! - -[VIC1_10:VIC1] -~w~Monte dans la ~b~caisse. - -[VIC1_D1:VIC1] -~w~Merde, Toni ! Tu conduis comme une gonzesse ! - -[VIC1_D2:VIC1] -~w~Fais gaffe à cette putain de caisse ! - -[VIC1_D3:VIC1] -~w~Toni, arrête de me manquer de respect et conduis comme un homme ! - -[VIC1_C1:VIC1] -~w~On y est, Toni. Ton petit chez toi. Mignon tout plein, pas vrai ? - -[VIC1_C2:VIC1] -~w~J'vais devoir crécher dans ce trou à rats ? - -[VIC1_C3:VIC1] -~w~Oh ! Mais ça te convient à merveille. - -[VIC1_C4:VIC1] -~w~Là, tu manques de respect au vieux Vincenzo. - -[VIC1_C5:VIC1] -~w~OK, champion, bouge ton cul là-haut et trouve des fringues correctes. - -[VIC1_C6:VIC1] -~w~J'ai pas toute la journée, magne-toi ! - -[VIC1_C7:VIC1] -~w~Hé, les apparts, ça coûte du fric, Toni. - -[VIC1_C8:VIC1] -~w~T'oublies peut-être qui paye les factures dans le coin... - -[VIC1_C9:VIC1] -~w~MOI ! Bibi ! Papa Vincenzo ! - -[VIC1C10:VIC1] -~w~Alors maintenant, tu bosses pour moi. - -[VIC1C11:VIC1] -~w~Et t'as intérêt à revenir ici vite fait... - -[VIC1_F:VIC1] -~r~Vincenzo est mort. - -[HOMS_01:VIC1] -Bon... alors le voilà, hein ? - -[HOMS_02:VIC1] -Ecoute, Toni, tu nous as rendu un grand service, - -[HOMS_03:VIC1] -et j'sais que ça fait un bail que tu te planques, - -[HOMS_04:VIC1] -alors, j'veux que tu te la coules douce un moment. - -[HOMS_05:VIC1] -Vincenzo va s'occuper d'toi. - -[HOMS_06:VIC1] -Si t'as besoin de fric, tu lui demandes. - -[HOMS_07:VIC1] -Si tu veux un job, Lucky te dégottera ça. - -[HOMS_08:VIC1] -Un mec de la famille peut pas rêver mieux. - -[HOMS_09:VIC1] -Même mon fils a pas la vie aussi cool. - -[HOMS_10:VIC1] -Mais, M. Leone, j'croyais qu'on était liés, - -[HOMS_11:VIC1] -j'ai beaucoup fait pour cette famille. - -[HOMS_12:VIC1] -Et là, vous voulez que j'obéisse à ce... ce... cet... - -[HOMS_13:VIC1] -Enfin, j'trouve pas ça très... juste... - -[HOMS_14:VIC1] -Toni, j'sais ce que t'as fait et y a personne qu'est plus reconnaissant que moi, j'te jure ! - -[HOMS_15:VIC1] -Mais si tu débarques comme ça - -[HOMS_16:VIC1] -et que tu commences à discuter mes ordres, franchement, - -[HOMS_17:VIC1] -c'est pas possible. Capici ? - -[HOMS_18:VIC1] -Compris, chef. - -[HOMS_19:VIC1] -Bene, alors quand t'as besoin de quelque chose, t'appelles Vincenzo à Atlantic Quays. - -[HOMS_20:VIC1] -Il s'occupera de toi, pas vrai, Lucky ? - -[HOMS_21:VIC1] -'sûr, chef, tout ce que vous voulez. - -[HOMS_22:VIC1] -D'ailleurs, on peut y aller direct. - -{=================================== MISSION TABLE VIC2 ===================================} - -[VIC2M2:VIC2] -Ce glandeur a pas fait un rond depuis des jours. - -[VIC2M3:VIC2] -Il a peut-être besoin d'encouragements pour se bouger le cul et se mettre au boulot. - -[VIC2M4:VIC2] -Une vraie gonzesse... Il me fait un peu penser à toi. - -[VIC2M5:VIC2] -~w~Qu'est-ce t'essaies de dire !? - -[VIC2M6:VIC2] -J'essaie pas, je le dis, c'est tout ! - -[VIC2M7:VIC2] -Je te dis juste d'aller là-bas pour veiller à ce que ce connard fasse rentrer un peu de fric ! - -[VIC2_B:VIC2] -~w~Trouve une caisse. - -[VIC2OB1:VIC2] -~w~Conduis le dealer au ~y~boulot. - -[VIC2_C:VIC2] -~w~Il va te falloir une caisse pour l'emmener dans son secteur habituel ! - -[VIC2_D:VIC2] -~w~Va chercher le dealer de Vincenzo à ~y~Saint Mark's. - -[VIC2_E:VIC2] -~w~Alors, Vincenzo m'a dit que t'étais trop une flipette pour bosser dans ton secteur ? - -[VIC2_E2:VIC2] -~w~Hé, mec, j'suis pas une flipette ! - -[VIC2_EX:VIC2] -~w~Je... euh... J'ai juste été malade ! - -[VIC2_E3:VIC2] -~w~Je retourne bosser demain... ou après-demain. - -[VIC2_E4:VIC2] -~w~Oh, que ça te plaise ou non, va falloir que t'y ailles aujourd'hui ! - -[VIC2_F:VIC2] -~w~Hé, me laisse pas ici, c'est un quartier hyper craignos, mec ! - -[VIC2_F2:VIC2] -~w~T'as abandonné ~b~le dealer de Vincenzo~w~ ! Retourne le chercher ! - -[VIC2_G:VIC2] -~w~Ecoute, mec, j'en ai déjà parlé à Vinnie... Chinatown marche plus avec les Leone ! - -[VIC2_G2:VIC2] -~w~Les Sindacco se sont installés ! Si j'y retourne, j'suis un homme mort ! - -[VIC2_G3:VIC2] -~w~Mais ouais... Bien sûr... - -[VIC2_G4:VIC2] -~w~J'te jure, mec ! Les Sindacco dealent là-bas ! - -[VIC2_G5:VIC2] -~w~J'me sens pas bien... J'crois que j'ai de la fièvre... - -[VIC2_H:VIC2] -~w~Arrête-toi près du ~b~dealer. - -[VIC2_I:VIC2] -~w~Oh, mec... - -[VIC2_J:VIC2] -~r~Le dealer de Vincenzo s'est fait buter ! - -[VIC2_K:VIC2] -~w~Conduis le dealer de Vincenzo à ~y~Chinatown. - -[VIC2M1:VIC2] -On a un dealer dans notre secteur de Chinatown nord. - -{=================================== MISSION TABLE VIC3 ===================================} - -[VIC3_H1:VIC3] -~w~Maintiens~h~ ~k~ ~PDLT~ ~w~pour ~h~verrouiller une cible~w~ et appuie sur~h~ ~k~ ~PDFW~ ~w~pour attaquer ! - -[VIC3_H2:VIC3] -~w~Appuie sur~h~ ~k~ ~PDFW~ ~w~pour attaquer le ~h~dealer. - -[VIC3O2:VIC3] -~w~Va à ~y~Chinatown. - -[VIC3O3:VIC3] -~w~Descends le ~r~dealer. - -[VIC3_1:VIC3] -~w~Vincenzo t'a laissé un cadeau qui peut servir. - -[VIC3_BA:VIC3] -~w~Ici, t'es en territoire Leone, connard ! - -[VIC3_BB:VIC3] -~w~T'as pas ton compte, enfoiré !? - -[VIC3_BC:VIC3] -~w~C'est Leone qui deale ici, personne d'autre ! Vous avez compris, connards de Sindacco ? - -[VIC3_6:VIC3] -~w~Les Sindacco dealent dans tout Chinatown. - -[VIC3_AA:VIC3] -~w~Vinnie ? - -[VIC3_AB:VIC3] -~w~C'est pas vrai, Toni ! J'peux pas avoir la paix !? - -[VIC3_AD:VIC3] -~w~J'suis déjà assez constipé et t'es vraiment la dernière chose dont j'ai besoin ! - -[VIC3_AE:VIC3] -~w~Mais puisque t'es là, j'voulais te dire que j'ai toujours pas reçu de fric - -[VIC3_AF:VIC3] -~w~de ce dealer. Et tu sais pourquoi ? - -[VIC3_AG:VIC3] -~w~Eclaire-moi. - -[VIC3_AJ:VIC3] -~w~Les Sindacco ont commencé à dealer et en plus, en territoire Leone ! - -[VIC3_AK:VIC3] -~w~Tu vas accepter ça, Toni ? - -[VIC3_AL:VIC3] -~w~Je veux que tu fonces à Chinatown ! - -[VIC3_AM:VIC3] -~w~OK, 'chef', je m'en occupe ! - -[VIC3_AN:VIC3] -~w~Bordel de merde ! Pourquoi y a jamais de PQ ici ! - -[VIC3_AH:VIC3] -~w~Parce qu'il est mort, crétin ! Y a un enfoiré qui l'a descendu. - -[VIC3O4:VIC3] -~r~Les Sindacco~w~ dealent dans tout Chinatown. Donne-leur une leçon qu'ils n'oublieront pas ! - -{=================================== MISSION TABLE VIC4 ===================================} - -[VIC4_H2:VIC4] -~w~Suis la ~h~bombe de peinture~w~ sur le radar pour trouver le ~h~Pay 'n' Spray. - -[VIC4_A2:VIC4] -~w~Place-toi sur le ~h~repère~w~ pour voir les armes disponibles. - -[VIC4_A3:VIC4] -~w~Sélectionne différentes armes en utilisant~h~ ~k~ ~AMMOV~. - -[VIC4_A4:VIC4] -~w~Appuie sur ~h~~k~ ~AMBUY~~w~ pour acheter l'arme sélectionnée si t'as le cash nécessaire. - -[VIC4_A6:VIC4] -~w~Tu peux utiliser jusqu'à huit types d'armes. - -[VIC4_A7:VIC4] -~w~Tu ne peux porter qu'une arme de chaque type à la fois : un type de pistolet, un type de fusil à pompe, etc. - -[VIC4_H1:VIC4] -~w~Suis le ~h~flingue~w~ sur le radar pour trouver un ~h~Ammu-Nation. - -[VIC4_H3:VIC4] -~w~Suis le ~h~flingue~w~ sur le radar pour retrouver un ~h~Ammu-Nation. - -[VIC4_AB:VIC4] -~w~Difficile de l'oublier... - -[VIC4_AD:VIC4] -~w~Le truc, c'est qu'il veut rejoindre les Leone maintenant. - -[VIC4_AE:VIC4] -~w~Laisse tomber ! Il a fait son choix. - -[VIC4_AG:VIC4] -~w~T'as rien dans la tête ! Merde, Toni, Sal a dit que t'étais une brute, - -[VIC4_AH:VIC4] -~w~mais j'avais pas compris que t'étais aussi débile. - -[VIC4_AJ:VIC4] -~w~Il sera notre homme dans la place. - -[VIC4_AK:VIC4] -~w~Juste un détail... - -[VIC4_AL:VIC4] -~w~Y a un gros balaise de Sindacco qui le baby-sitte. - -[VIC4_AM:VIC4] -~w~Je veux que tu supprimes ce petit obstacle - -[VIC4_AN:VIC4] -~w~et que J.D. marche avec nous ! Capici ? - -[VIC4_2:VIC4] -~w~Prends son ~g~téléphone portable~w~ comme preuve de l'exécution du boulot. - -[VIC4_BA:VIC4] -~w~Toni... Waouh, tu m'as fait cadeau d'un super snuff movie ! - -[VIC4_BB:VIC4] -~w~J.D. ? T'as tout vu ? TU ME FILMES ?! - -[VIC4_BC:VIC4] -~w~Euh, c'était juste... pour mon usage personnel ! - -[VIC4_BD:VIC4] -~w~J'suis impatient de bosser avec toi ! - -[VIC4_BE:VIC4] -~w~T'excite pas trop... Tu me dois encore du fric. - -[VIC4_BF:VIC4] -~w~Prends la caisse de ce connard de Sindacco en acompte, OK ? - -[VIC4_BG:VIC4] -~w~Repeins-la juste assez pour que personne la reconnaisse. - -[VIC4_BH:VIC4] -~w~Je vais m'occuper du corps. - -[VIC4_CA:VIC4] -~w~Hé, sors d'ici ! - -[VIC4_CB:VIC4] -~w~T'as rien à foutre là ! - -[VIC4_61:VIC4] -~w~Monte dans la ~b~caisse. - -[VIC4_62:VIC4] -~w~Conduis jusqu'au Pay 'n' Spray. - -[VIC4_DC:VIC4] -~r~J.D. t'a dit de faire repeindre la bagnole ! - -[VIC4_PR:VIC4] -Dring dring... - -[VIC4O1A:VIC4] -~w~Va ~y~à l'intérieur. - -[VIC4_O2:VIC4] -~w~Achète un pistolet. - -[VIC4_O4:VIC4] -~w~Tue le ~r~gros balaise de Sindacco. - -[VIC4_FA:VIC4] -~r~Il ne te vendra plus d'arme maintenant ! - -[VIC4_O3:VIC4] -~w~Va au ~y~chantier. - -[VIC4_AC:VIC4] -~w~Il gère actuellement un bar à nénettes contrôlé par les Sindacco, enfin, j'veux dire un club de gentlemen. - -[VIC4_AA:VIC4] -~w~Hé, tu te souviens de J.D. O'Toole ? - -[VIC4_AI:VIC4] -~w~On peut utiliser J.D. pour en savoir plus sur les plans des Sindacco. - -[HELP42:VIC4] -~w~En visant, appuie rapidement sur~h~ ~k~ ~FREE1~ ~w~pour passer en ~h~mode Visée libre~w~ et utilise ~h~ ~k~ ~FREE2~ ~w~pour ajuster ton tir. - -[VIC4_A1:VIC4] -~w~Va à l'~y~Ammu-Nation~w~ local pour récupérer une arme. - -[VIC4_O1:VIC4] -~w~Retourne chez ~y~Ammu-Nation~w~ pour récupérer une arme. - -[VIC4_1:VIC4] -~w~Le ~r~gros balaise des Sindacco~w~ est au fond du chantier. Tue-le ! - -{=================================== MISSION TABLE VIC5 ===================================} - -[VIC5_H:VIC5] -Leone - -[VIC5_I0:VIC5] -~w~Ah, c'est toi... - -[VIC5_I1:VIC5] -~w~Ouais, c'est moi, et alors ? T'as quelque chose à dire ?! - -[VIC5_I2:VIC5] -~w~J'vais te dire ce que j'ai à te dire, petit. - -[VIC5_I3:VIC5] -~w~Y a certains de nos gars qu'ont foiré un boulot tout fait. - -[VIC5_I4:VIC5] -~w~Ces cons sont même pas capables de réussir un raid tout ce qu'y a de plus simple. - -[VIC5_I5:VIC5] -~w~Maintenant, ils se retrouvent cernés par les flics à Chinatown. - -[VIC5_I6:VIC5] -~w~Bordel ! Pourquoi je suis entouré de nazes pareils ? - -[VIC5_I7:VIC5] -~w~J'sais pas... qui se ressemble s'assemble ? - -[VIC5_I8:VIC5] -~w~T'es vraiment un grand comique, toi ! - -[VIC5_I9:VIC5] -~w~Tu vas avoir l'occasion de rigoler. - -[VIC5I10:VIC5] -~w~Parce que c'est toi qui vas nettoyer ce merdier pour moi ! - -[VIC5I11:VIC5] -~w~Alors, fonce là-bas et ramène-moi ces débiles ! - -[VIC5_F1:VIC5] -~r~Un homme du gang est mort. - -[VIC5_G0:VIC5] -~w~Trouve une caisse à 4 places. - -[VIC5_O1:VIC5] -~w~Va sauver les ~b~hommes de Vincenzo. - -[VIC5_O3:VIC5] -~w~Sème les flics ! - -[VIC5_O4:VIC5] -~w~Conduis le gang chez ~y~Vincenzo. - -[VIC5_O5:VIC5] -~w~Les membres du ~b~gang~w~ doivent rester ensemble ! - -[VIC5_O6:VIC5] -~w~T'as besoin d'un véhicule avec plus de places ! - -[VIC5_G1:VIC5] -~w~Qu'est-ce qu'on va faire ? - -[VIC5_G2:VIC5] -~w~On est foutu ! - -[VIC5_G3:VIC5] -~w~Je vais pas en taule pour ce bâtard de Vincenzo ! - -[VIC5_G4:VIC5] -~w~Faut qu'on se tire d'ici ! - -[VIC5_G5:VIC5] -~w~Attends-moi ! - -[VIC5_G6:VIC5] -~w~Fonce, Toni ! - -[VIC5_E1:VIC5] -~w~Alors, vous avez le fric ? - -[VIC5_E2:VIC5] -~w~On a tout, chef... - -[VIC5_E3:VIC5] -~w~Hé, écoutez, on pouvait rien faire... - -[VIC5_E4:VIC5] -~w~... vous pouviez rien faire... - -[VIC5_E5:VIC5] -~w~Tout a foiré... On aurait pas pu imaginer pire. - -[VIC5_E6:VIC5] -~w~Qu'est-ce que t'en penses... c'est pas pire, maintenant ? - -[VIC5_E7:VIC5] -~w~Si jamais vous recommencez à déconner, ça deviendra pire pour vous aussi ! - -[VIC5_E8:VIC5] -~w~Maintenant, nettoyez-moi cette merde et dégagez le paysage ! - -[VIC5_E9:VIC5] -~w~J'ai un coup de fil à passer. - -[VIC5E10:VIC5] -~w~J'te jure, Toni, depuis que t'es revenu, ma chance a tourné en gros merdier. - -[VIC5E11:VIC5] -~w~Tu me portes vraiment la poisse, enfoiré. - -{=================================== MISSION TABLE VIC6 ===================================} - -[VIC6_BA:VIC6] -~w~On bouge plus ! - -[VIC6_BB:VIC6] -~w~Pas un geste, enfoiré ! - -[VIC6_P0:VIC6] -~w~Récupère la ~b~caisse de Vincenzo. - -[VIC6_P1:VIC6] -~w~C'est un piège des flics, dégage la caisse de là ! - -[VIC6_P2:VIC6] -~w~Sème les flics ! - -[VIC6_P3:VIC6] -~w~T'as semé les flics ! Maintenant ~w~conduis la caisse jusqu'au ~y~box de Vincenzo. - -[VIC6_P4:VIC6] -~w~Apprends à Vincenzo à plus jamais te chercher ! Va broyer sa ~b~caisse ! - -[VIC6_P5:VIC6] -~w~Remonte dans la ~b~caisse de Vincenzo ! - -[VIC6_P6:VIC6] -~w~Amène la caisse au ~y~box de Vincenzo. - -[VIC6_PA:VIC6] -~r~T'as détruit la caisse ! - -[VIC6_D1:VIC6] -~w~Monte dans la ~b~caisse. - -[VIC6_D3:VIC6] -~w~Roule jusqu'au ~y~broyeur de caisses. - -[VIC6_D4:VIC6] -~w~Sors et attends que le broyeur ait fini le boulot. - -[VIC6_D5:VIC6] -~r~Tu devais broyer la caisse ! - -[VIC6_AA:VIC6] -~w~Hé, Toni ! Alors, et ma caisse ? - -[VIC6_AB:VIC6] -~w~Sale fils de pute, Vinnie ! Tu m'as doublé ! - -[VIC6_AC:VIC6] -~w~Doublé ? DOUBLE ? - -[VIC6_AD:VIC6] -~w~Quand t'es revenu en ville, t'avais rien ! RIEN ! - -[VIC6_AE:VIC6] -~w~J't'ai pas doublé, je t'ai tout donné, enfoiré d'ingrat ! - -[VIC6_AF:VIC6] -~w~Oublie pas l'appartement et le job ! - -[VIC6_AG:VIC6] -~w~C'est pour toute cette générosité que j'attends que tu prennes quelques risques... - -[VIC6_AH:VIC6] -~w~J'suis pas l'armée du Salut, OK ? Et pas ta mère non plus ! - -[VIC6_AI:VIC6] -~w~Les flics surveillaient la caisse ? Je m'en fous des flics ! - -[VIC6_AJ:VIC6] -~w~Quand j'te dis de faire un truc, tu le fais ! Capici ? - -[VIC6_AK:VIC6] -~w~Ouais, j'ai compris, Vinnie... - -[VIC6_AL:VIC6] -~w~J'ai compris que tant que je bosserai pour toi, j'serai traité comme une merde. - -[VIC6_AM:VIC6] -~w~Tu regardais encore sous les jupes des filles que je blanchissais déjà des millions. - -[VIC6_AN:VIC6] -~w~J'te rends ton job de merde, 'boss', j'démissionne. - -[VIC6_AO:VIC6] -~w~Toni, tu fais une grosse... - -[VIC6_D2:VIC6] -~w~Arrête-toi sur le ~y~repère. - -[HOTW_01:VIC6] -Oui, m'man, j't'appelle plus tard. - -[HOTW_28:VIC6] -Vincenzo ! - -[HOTW_02:VIC6] -Mais oui, bien sûr que j'suis un bon garçon... - -[HOTW_03:VIC6] -Je t'aime. - -[HOTW_04:VIC6] -Hé, Cheryl, poupée, c'est bon, arrête. - -[HOTW_05:VIC6] -Prends ça et casse-toi. - -[HOTW_06:VIC6] -Un petit cadeau pour toi. - -[HOTW_11:VIC6] -T'es dégueulasse, t'as aucun respect... - -[HOTW_12:VIC6] -Respect ? Je joins juste l'utile à l'agréable. - -[HOTW_15:VIC6] -Parce que si c'est le cas, j'peux aussi demander à Ray pour toi... - -[HOTW_16:VIC6] -Va te faire foutre. - -[HOTW_17:VIC6] -Relax, j'me fous juste de ta gueule... - -[HOTW_18:VIC6] -Ecoute, mec, faut que tu m'rendes un service. - -[HOTW_19:VIC6] -J'ai des filles en manque et une caisse pleine de dope à Trenton. - -[HOTW_20:VIC6] -Va la récupérer... et appelle-moi. - -[HOTW_21:VIC6] -Tu m'prends pour qui ? Ton chauffeur ? - -[HOTW_22:VIC6] -Oh, allez, écoute... - -[HOTW_23:VIC6] -J'm'en occuperais bien moi-même, mais les Fédéraux m'ont à l'oeil. - -[HOTW_24:VIC6] -Tu sais que j'te protège, fais-moi confiance. - -[HOTW_25:VIC6] -Et oublie pas qu'il y a une hiérarchie à respecter, capici ? Allez, sois un bon petit gars ! - -[HOTW_07:VIC6] -- Alors, qui c'est qui t'aime, bébé ? ~n~ - Toi, Vinnie. - -[HOTW_09:VIC6] -- C'était ta mère au téléphone ? ~n~ - Ouais. - -[HOTW_13:VIC6] -- Ca te pose un problème de te faire sucer par une bombasse ? ~n~ - Hein ? - -{=================================== MISSION TABLE VIC7 ===================================} - -[VIC7_VE:VIC7] -~r~v1.01 - -[VIC7_1:VIC7] -~w~Vinnie, j'suis là ! Merde, t'es où !? C'est quoi ces conneries ? - -[VIC7_2:VIC7] -~w~Toni ? Come sta ? J'savais que t'appellerais. - -[VIC7_3:VIC7] -~w~Ecoute, j'suis à Portland docks. - -[VIC7_3A:VIC7] -~w~On a une grosse cargaison qui vient d'arriver. Amène-toi ! J'suis à bord du gros cargo. - -[VIC7_3B:VIC7] -~w~J'sais pas, Vinnie... J'ai des trucs à faire. - -[VIC7_3D:VIC7] -~w~Mais à partir de maintenant, on est des associés... Mieux que ça, des frères ! - -[VIC7_3E:VIC7] -~w~Alors, qu'est-ce que t'en dis ? C'est ce que veut Salvatore... - -[VIC7_3F:VIC7] -~w~OK. Pour Salvatore. - -[VIC7_3G:VIC7] -~w~Mais me prends plus jamais de haut, ou t'es un homme mort. - -[VIC7_4:VIC7] -~w~Wahaahha ! J'vais t'étriper ! - -[VIC7_4A:VIC7] -~w~Retrouve Vincenzo au ~y~cargo. - -[VIC7_5:VIC7] -~w~Crève ! - -[VIC7_6:VIC7] -~w~Ha ha ha ha ha ! - -[VIC7_7:VIC7] -~w~Ca y est, ce connard est mort ? - -[VIC7_8:VIC7] -~w~Désolé de te décevoir, Vinnie. - -[VIC7_9:VIC7] -~w~Sale fils de pute ! Pourquoi tu veux pas crever ? - -[VIC7_10:VIC7] -~w~T'aurais jamais dû revenir, Toni. - -[VIC710A:VIC7] -~w~Moi, j'ai tout donné, tout sacrifié pour Salvatore. - -[VIC710B:VIC7] -~w~Et toi, tu rappliques en ville et tout à coup, il y en a plus que pour toi ! - -[VIC7_11:VIC7] -~w~C'est ma ville, Toni ! MA VILLE ! - -[VIC711A:VIC7] -~w~Tu me la voleras pas ! - -[VIC7_12:VIC7] -~w~J'vais me faire plaisir... - -[VIC7_4B:VIC7] -~w~L'endroit a l'air désert. Monte à bord du ~y~bateau. - -[VIC7_13:VIC7] -~w~Va vers la ~y~sortie. - -[VIC7_3C:VIC7] -~w~Ecoute, Toni, j'sais que j'ai été con avec toi. Je m'excuse. - -[VIC7HUL:VIC7] -~w~Descends dans la ~y~coque. - -{=================================== MISSION TABLE SALS1 ===================================} - -[SALS1_6:SALS1] -Tue ~r~R.C. Hole, le maire ! - -[SALS1_7:SALS1] -Récupère le ~g~portable du maire ! - -[SALS1_8:SALS1] -~r~Le maire a fini son jogging. - -[SALS1_9:SALS1] -~r~Le maire s'est échappé. - -[SALS110:SALS1] -Apporte le téléphone à ~y~Salvatore ! - -[SALS111:SALS1] -Jette ton flingue ou je tire ! - -[SALS112:SALS1] -Ils sont après toi ! Le ~r~maire~w~ essaie de s'enfuir ! - -[SS1_AA:SALS1] -Ouais, c'est Toni. - -[SS1_AB:SALS1] -Ce salopard de maire essaie de me baiser et j'aime pas ces conneries ! - -[SS1_AC:SALS1] -Du calme, Sal... Je vais voir si je peux le virer du tableau pour vous. - -[SS1_AD:SALS1] -T'es un brave garçon, Toni. Tu fais honneur à la mémoire de ton père. - -[SS1_AE:SALS1] -Ecoute, ce gros con de maire doit faire son petit jogging quotidien dans le parc. - -[SS1_AF:SALS1] -Va lui couper le souffle... définitivement ! - -[SS1_AG:SALS1] -Et rapporte-moi son portable ! - -[SS1_AH:SALS1] -Comme ça, on saura à qui il a parlé. - -[SALS1AA:SALS1] -Ouais, c'est Toni. - -[SALS1AB:SALS1] -Ce salopard de maire essaie de me baiser. - -[SALS1AC:SALS1] -J'aime pas ces conneries ! - -[SALS1AD:SALS1] -Relax. Je vais lui régler son compte. - -[SALS1AE:SALS1] -T'es un brave gars, Toni. - -[SALS1AF:SALS1] -Ce gros con devrait faire son jogging quotidien dans le parc. - -[SALS1AG:SALS1] -Coupe-lui le souffle... définitivement ! - -[SALS1AH:SALS1] -Oh, et rapporte-moi son portable ! - -[SALS1AI:SALS1] -Comme ça, on verra à qui il a parlé... - -[SALS1C1:SALS1] -Baissez votre arme, monsieur ! - -[SALS1C2:SALS1] -Arrêtez ou je tire ! - -[SALS1C3:SALS1] -On ne bouge plus ! - -[SALS1C4:SALS1] -Doucement ! - -[SALS113:SALS1] -~r~Le téléphone du maire est H.S. - -[SALS114:SALS1] -Attention ! Ils te descendront si tu entres dans le parc avec une arme ! - -{=================================== MISSION TABLE SALS2 ===================================} - -[SALS2_1:SALS2] -~w~Va à la ~b~caisse. - -[SALS2_2:SALS2] -~w~Roule jusqu'au ~y~lieu du rendez-vous. - -[SALS2_3:SALS2] -~w~Remonte dans la ~b~caisse. - -[SALS2_4:SALS2] -~r~Mickey s'est fait tuer ! - -[SALS2_5:SALS2] -~r~Un des hommes de Salvatore a été tué ! - -[SALS2AA:SALS2] -Toni, - -[SALS2AB:SALS2] -Quelques-uns des gars passeront te voir plus tard. - -[SALS2AC:SALS2] -Sois dans le coin quand ils rappliqueront. - -[SALS2AD:SALS2] -Ciao, Salvatore. - -[SALS2CA:SALS2] -Salut Toni ! - -[SALS2CC:SALS2] -Allez, monte, c'est toi qui conduis ! - -[SALS2CD:SALS2] -Mickey, euh, y s'passe quoi, là ? - -[SALS2CE:SALS2] -Allez, Cipriani, quoi, t'as peur que j'te descende ? - -[SALS2BA:SALS2] -Salvatore est juste là-bas... - -[SALS2BC:SALS2] -Toni, mon garçon, - -[SALS2BD:SALS2] -c'est ton jour de gloire, aujourd'hui ! - -[SALS2BE:SALS2] -Salvatore... Mr Leone. - -[SALS2BF:SALS2] -Ca fait longtemps que maman attendait ça. - -[SALS2CB:SALS2] -Allez, monte, on va faire un tour. - -[SALS2BB:SALS2] -Madon' mia, qu'est-ce que tu attends ? - -[SALS2AF:SALS2] -Hé, merci, Toni. Je te recontacterai. - -{=================================== MISSION TABLE SALS3 ===================================} - -[SALS3_2:SALS3] -Dégâts - -[SALS313:SALS3] -~r~Le conseiller du maire est mort ! - -[SALS314:SALS3] -~r~Salvatore est mort ! - -[SALS3AA:SALS3] -Monte, Toni ! - -[SALS3AB:SALS3] -Où on va ? - -[SALS3AC:SALS3] -Parler avec l'assistant du maire à propos de Franco Forelli. - -[SALS3BA:SALS3] -Hé, sortez de mon bateau ! - -[SALS3BB:SALS3] -Tu viens avec moi. - -[SALS3BC:SALS3] -Vous pouvez pas faire ça ! - -[SALS3BD:SALS3] -Accélère, les services secrets vont pas tarder à rappliquer ! - -[SALS3CA:SALS3] -Toni, fais gaffe ! Y a des tireurs sur ces rochers ! - -[SALS3CB:SALS3] -Des tireurs droit devant ! - -[SALS3CC:SALS3] -Fais gaffe à droite, Toni ! - -[SALS3CD:SALS3] -A gauche, Toni, à gauche ! - -[SALS3CE:SALS3] -Des tireurs sur la jetée ! - -[SALS3CF:SALS3] -Bordel de merde, les services secrets s'amènent en hélico ! - -[SALS3DA:SALS3] -Le maire allait même pas aux chiottes sans demander à Franco ! - -[SALS3DB:SALS3] -Personne ne contrôlait le maire ! - -[SALS3DC:SALS3] -Aargh ! Attendez, OK, vous avez raison ! - -[SALS3DE:SALS3] -Les Siciliens ? Pourquoi ? - -[SALS3DF:SALS3] -Ils contrôlent Franco et veulent déclencher une guerre entre les familles de Liberty. - -[SALS3DG:SALS3] -Quand la poussière retombera, ils s'empareront de la ville. - -[SALS3DH:SALS3] -Toni, je t'appelle plus tard. - -[SALS3DI:SALS3] -Pour l'instant, faut que je balance ce connard au fond de la baie ! - -[SALS3DD:SALS3] -Ce sont ces Siciliens... ils ont forcé la main à Franco. - -{=================================== MISSION TABLE SALS4 ===================================} - -[SALS4BA:SALS4] +[MOB_63F] Ouais. -[SALS4BB:SALS4] -Grâce à Dieu, t'as décroché ! +[MOB_63G] +Ne jamais faire confiance à un mec qui se trimballe en pyjama. C'est ce que je dis toujours. J'espère bien qu'il en a bavé, ce con. -[SALS4BC:SALS4] -Quoi de neuf, Sal ? +[MOB_63H] +Je crois que oui. Je pensais pas qu'il était comme ça... -[SALS4BD:SALS4] -J'étais en train d'espionner les Forelli à Fort Staunton quand tout a basculé. +[MOB_63I] +Tommy, t'as beau être cinglé, t'es vraiment naïf. Il va falloir que je t'apprenne deux ou trois trucs sur la vie, dès que je serai remis sur pied. -[SALS4BE:SALS4] -Les Sindacco ont déclaré la guerre aux Forelli, +[MOB_63J] +Prends ton temps, Earnest et surtout, prends soin de toi. -[SALS4BF:SALS4] -et je suis coincé entre les tirs croisés ! +[MOB_16A] +Tommy, c'est Paulo. Que pasa amigo? -[SALS4BG:SALS4] -J'arrive. +[MOB_16B] +Qu'est-ce tu m'veux, Paul? J'veux pas de fringues de contrefaçon. -[SALS4BH:SALS4] -Amène ma limo, elle est blindée. On va en avoir besoin ! +[MOB_16C] +Très drôle, mon pote, mais tu sais que je fais pas dans la merde. Non, j'appelle juste pour savoir si t'aurais pas un rôle pour moi dans un de tes films. -[SALS4AA:SALS4] -Allez, Toni, on se tire de là ! +[MOB_16D] +J'ai fait pas mal de X en Angleterre, mec. J'en ai plus que toi dans l'pantalon. -[SALS4AB:SALS4] -Ramène-moi à la limo ! +[MOB_16E] +Paul, merci pour la proposition, je vais y réfléchir. -[SALS4AE:SALS4] -OK, j'ai une piaule à Newport. Conduis-moi là-bas ! +[MOB_16F] +Sérieux, pense à moi, après tout ce que j'ai fait pour toi. -[SALS4AF:SALS4] -Merci, Toni, je t'appelle. +[MOB_16G] +C'est ce que j'essaie d'oublier, justement... -[SAL4_1:SALS4] -Va prendre la ~b~limo de M. Leone. +[MOB_17A] +Tommy Vercetti, comment vas-tu? J'ai entendu tous ces trucs sur toi. Un flambeur en ville maintenant... -[SAL4_2:SALS4] -~r~T'as bousillé la voiture ! +[MOB_17B] +Paul, t'es bourré? -[SAL4_3:SALS4] -Conduis la voiture à ~y~Fort Staunton. +[MOB_17C] +Non, pauv' con, je suis pas bourré! J'ai juste pris deux ou trois verres et quelques tournées, et ça fait deux jours que j'ai pas fermé l'oeil! -[SAL4_4:SALS4] -~r~T'as laissé Salvatore mourir ! +[MOB_17D] +De toute façon, me traite pas comme ça. Je suis pas une poire. Qui c'est qui t'a lancé dans cette ville? Hein, qui? Moi! -[SAL4_6:SALS4] -~b~Salvatore~w~ est au bout de la ruelle. +[MOB_17F] +Ah ouais? -[SAL4_9:SALS4] -Va au ~y~garage. +[MOB_17G] +Me traite pas comme ça? Qui c'est qui t'a présenté à des gens? Je t'ai montré tous les trucs, je me suis fait chier pour toi et voilà comment tu m'remercies. -[SAL4_11:SALS4] -T'as abandonné ~b~Salvatore ! +[MOB_17H] +Tu m'ignores. Tu me laisses de côté après tout ce que j'ai fait pour toi! Qui tu crois que je suis? Une merde ou je sais pas quoi? -[SAL4_12:SALS4] -C'est bloqué ! Laisse la limo ici et continue à pied. +[MOB_17I] +Paul, calme-toi. J'ai été occupé, ne sois pas stupide. -[SAL4_13:SALS4] -Retourne à la ~b~limo. +[MOB_17J] +Je suis pas stupide, connard! Ils me l'ont dit en maison de redressement! Si tu cherches les emmerdes, mon pote, tu vas les trouver! -[SAL4_14:SALS4] -Conduis Salvatore et la limo jusqu'au ~y~garage~w~ à Newport. +[MOB_17K] +Tommy, s'il te plaît! T'étais mon grand espoir! Te fous pas de moi! -[SAL4_15:SALS4] -Trouve ~b~Salvatore ! +[MOB_17L] +Paul, va roupiller un bon coup, sérieusement. -[SAL4_16:SALS4] -Emmène Salvatore jusqu'à la ~b~limo. +[MOB_73A] +Tommy, c'est Steve. -[SAL4_17:SALS4] -Attends que ~b~Salvatore~w~ monte dans la limo ! +[MOB_73B] +Salut, Steve. -{=================================== MISSION TABLE SALS5 ===================================} +[MOB_73C] +Salut le génie. T'es merveilleux! Je suis une merveille! Ils nous adorent. On réécrit le livre des records, mon pote! -[SALS5_1:SALS5] -~w~Appuie sur~h~ ~k~ ~VEACC~ ~w~pour contrôler la caisse de Paul Sindacco. +[MOB_73D] +Je parle de putain de récompenses. Enfin je peux envoyer mon père à l'hospice et lui dire de fermer sa gueule. -[SALS5_2:SALS5] -~w~Descends les ~r~Forelli~w~ au rendez-vous avant que Sindacco trouve le système de contrôle. +[MOB_73E] +Euh... C'est cool, Steve. -[SALS5_3:SALS5] -~r~Paul Sindacco a été tué ! +[MOB_73F] +Cool? C'est génial, mec. GENIAL quoi! Il n'a jamais voulu croire en moi, mais regarde ce qu'on a réussi à faire. -[SALS5_4:SALS5] -~r~La camionnette de Salvatore a été détruite ! +[MOB_73G] +Je suis le plus grand réalisateur de films de cul faits maison de la planète, mon pote. Je voulais juste te dire que je suis heureux de t'avoir rencontré. -[SALS5_5:SALS5] -~r~Sindacco est arrivé au rendez-vous ! +[MOB_73H] +Merci, Steve. -[SALS5_6:SALS5] -~w~Va à la ~b~camionnette. +[MOB_73I] +Je t'aime, bébé. Et reste comme tu es, d'accord? -[SALS5_7:SALS5] -~w~Temps restant +[MOB_73J] +D'accord. Salut, Steve. -[SALS5_8:SALS5] -~r~Sindacco a trouvé le système de contrôle ! +[BOLLOX] +Appuie sur la touche ~o~R1 ~w~pour larguer une bombe. Appuie sur la touche ~t~" ~w~pour annuler. -[SALS5_9:SALS5] -~w~La commande satellite de la voiture de Sindacco aura un temps de réaction lent. +[BRID_OP] +Avis de tempête terminé : tous les ponts sont maintenant accessibles. -[SALS510:SALS5] -Dégâts +[BRID_CL] +Avis de tempête : tous les ponts sont fermés. -[SALS5AA:SALS5] -Allô ! +[LG_38] +Cible -[SALS5AB:SALS5] -Toni, c'est moi, j'ai un truc pour toi... +[ASSET_C] +Pole Position, OK -[SALS5AC:SALS5] -Tu vas adorer, ça va être génial. +[ASSET_D] +~g~Le club Pole Position va maintenant créer un revenu d'un maximum de $~1~ par jour. Venez retirer votre argent régulièrement. -[SALS5AD:SALS5] -Qu'est-ce que vous voulez que je fasse, Sal ? +[ST_WHEE] +Temps maximum sur roue arrière (secs) -[SALS5AE:SALS5] -Y a une camionnette pas loin. +[ST_STOP] +Temps maximum sur roue avant (secs) -[SALS5AF:SALS5] -Rappelle-moi quand tu l'auras trouvée. +[ST_2WHE] +Temps maximum sur deux roues (secs) -[SALS5BA:SALS5] -OK, Sal, je suis dans la camionnette. +[ST_WHED] +Distance maximum sur roue arrière (m) -[SALS5BB:SALS5] -Bon. On va s'amuser avec la caisse de Paulie Sindacco. +[ST_STOD] +Distance maximum sur roue avant (m) -[SALS5BC:SALS5] -Qu'est-ce que je suis censé faire ? +[ST_2WHD] +Distance maximum sur deux roues (m) -[SALS5BD:SALS5] -Paulie va rencontrer les Forelli... +[OUTFT11] +Survêtement -[SALS5BE:SALS5] -Il essaie de conclure une trêve. +[OUTFT12] +Frankie -[SALS5BF:SALS5] -Sers-toi du matos de la camionnette pour contrôler la voiture de Paulie. +[RELOAD] +~g~Tu as gagné la possibilité de recharger ton arme rapidement -[SALS5BG:SALS5] -Et sème la pagaille dans ce rendez-vous ! +[APACHE] +Hunter livré à l'héliport d'Ocean Beach -[SALS5CA:SALS5] -Mais qu'est-ce que... ? +[CRED369] +JOHN MCCARDLE -[SALS5CC:SALS5] -Non ! Au secours ! +[CRED370] +DAVID MURDOCH -[SALS5CD:SALS5] -Dégagez le passage ! +[CRED371] +CHRIS BROWN -[SALS5CF:SALS5] -Aidez-moi ! +[CRED372] +PAUL GREEN -[SALS5CG:SALS5] -Ma voiture est possédée ! +[CRED373] +KYLE MILNE -[SALS5CE:SALS5] -Cette voiture veut ma mort ! +[CUNTY] +Nouveaux vêtements livrés au Domaine Vercetti -[SALS5CB:SALS5] -Hé, mais qu'est-ce qui se passe ici ? +[GOODBOY] +$50 pour bonne conduite -{=================================== MISSION TABLE SALS6 ===================================} +[NEWCONT] +Nouveau ~h~point de contact ~w~créé à la marina d'Ocean Beach -[SALS601:SALS6] -~w~Sal t'a laissé un ~b~bateau ~w~à la jetée sud-ouest. Tu dois arrêter le petit malin. +[FIRELVL] +Mission Camion de pompiers niveau ~1~ -[SALS602:SALS6] -~w~Il file le long de la côte ! Arrête-~r~le ! +[HELP56] +Appuie sur la touche ~h~~k~~CAMERA_CHANGE_VIEW_ALL_SITUATIONS~~w~ pour changer le mode de la caméra. -[SALS603:SALS6] -~r~Il ~w~retourne voir Franco Forelli ! +[HELP57] +Appuie sur la touche ~h~~k~~CAMERA_CHANGE_VIEW_ALL_SITUATIONS~~w~ pour changer le mode de la caméra. -[SALS604:SALS6] -~r~Le petit malin a regagné Fort Staunton. +[HELP58] +Tout en visant, appuie sur la touche ~h~~k~~PED_CYCLE_TARGET_LEFT~~w~ ou ~h~~k~~PED_CYCLE_TARGET_RIGHT~~w~ pour faire défiler les cibles. -[SALS605:SALS6] -~r~Il a filé ! +[HELP59] +Tout en visant, appuie sur la touche ~h~~k~~PED_CYCLE_TARGET_LEFT~~w~ ou ~h~~k~~PED_CYCLE_TARGET_RIGHT~~w~ pour faire défiler les cibles. -[SALS606:SALS6] -~r~Il ~w~se barre à pied ! +[HELP60] +Si tu appuies sur la touche ~h~~k~~PED_SPRINT~ ~w~quand tu essaies de piquer une caisse, tu ne peux pas monter dedans. -[SALS607:SALS6] -~w~Il s'enfuit dans une ~r~caisse volée ! +[HELP61] +Tu as désormais des munitions illimitées et tous tes véhicules sont deux fois plus résistants. -[SALS608:SALS6] -~r~Tu peux pas le poursuivre sans bateau ! +[CRED374] +KEVIN YUN -[SALS6AA:SALS6] -Allô ? +[CRED375] +ERICK COBBS -[SALS6AD:SALS6] -Il vient de partir pour rencontrer Franco Forelli. +[CRED376] +RANDY BLAKE -[SALS6AE:SALS6] -Il est de notre intérêt que Franco ne sache rien +[CRED377] +BRANDON LIM -[SALS6AF:SALS6] -et que cette guerre continue. +[CRED378] +BRANDON FENOL -[SALS6AG:SALS6] -Liquide cette grande gueule ! +[CRED379] +MICHAEL MANOLE -[SALS6AH:SALS6] -C'est comme si c'était fait, Sal. +[CRED380] +ALETHEIA SIMONSON -[SALS6AB:SALS6] -Toni, un petit malin a découvert que les mafieux siciliens étaient derrière la querelle Forelli-Sindacco. +[CRED381] +JOHN JANSEN -[SLS6_20:SALS6] -~w~Il retourne voir Franco Forelli. Elimine-~r~le ! +[FEC_LB1] +Regarder -[SLS6_21:SALS6] -~w~Elimine-~r~le ! +[FEC_LB2] +derrière -{=================================== MISSION TABLE NEDS1 ===================================} +[FEC_LB3] +Regarder derrière -[NEDS1_1:NEDS1] -Le FBI est en route pour récupérer un rapport mensonger sur certaines stars du sport. +[FEC_R3] +(touche R3) -[NEDS1_2:NEDS1] -Si le rapport tombe entre les mains du FBI, des innocents seront accusés. +[FEC_PED] +Commandes à pied -[NEDS1_3:NEDS1] -Il faut que tu l'interceptes et que tu me l'apportes pour que je le mette en lieu sûr. +[FEC_VEH] +Commandes des véhicules -[NEDS1_4:NEDS1] -Tu auras besoin d'un véhicule du FBI. +[FEC_FPR] +Commandes en vue subjective -[NEDS1_5:NEDS1] -Une attaque à main armée a mal tourné sur l'autoroute. Le FBI est sur place. +[FEC_CMM] +Commandes principales -[NEDS1_6:NEDS1] -Vole leur caisse et va au lieu du rendez-vous avant qu'il ne soit trop tard ! +[FEC_PWL] +Aller à gauche -[NEDS1_8:NEDS1] -Remonte dans la ~b~caisse du FBI ! +[FEC_PWR] +Aller à droite -[NEDS1_9:NEDS1] -Va au ~y~lieu du rendez-vous. +[FEC_PWF] +Avancer -[NEDS111:NEDS1] -Sème les flics ! +[FEC_PWT] +Avancer vers caméra -[NEDS113:NEDS1] -J'ai ici le rapport que je t'avais promis... +[FEC_PLB] +Vue arrière -[NEDS114:NEDS1] -Qu'est-ce... Il y a déjà un agent ici !? +[FEC_PFR] +Tirer -[NEDS115:NEDS1] -Une autre bagnole du FBI ? Hé ! Mais... T'es un imposteur ! +[FEC_CLE] +Défilement Gauche des armes -[NEDS116:NEDS1] -Arrête ~r~l'informateur ! +[FEC_CRI] +Défilement Droite des armes -[NEDS117:NEDS1] -Récupère le ~g~rapport. +[FEC_LKT] +Verrouiller cible -[NEDS118:NEDS1] -Apporte le rapport au ~y~Liberty Tree. +[FEC_PJP] +Saut à pied -[NEDS119:NEDS1] -~r~La caisse du FBI est foutue. +[FEC_PSP] +Sprint à pied -[NEDS120:NEDS1] -~r~T'es arrivé trop tard ! L'informateur a donné son rapport au FBI ! +[FEC_PSH] +Tir à pied -[NEDS121:NEDS1] -Bien joué, Toni, Dieu sera content de toi ! +[FEC_TLF] +Cible suivante Gauche -[NEDS122:NEDS1] -Je veillerai à ce qu'il ne tombe pas entre de mauvaises mains. +[FEC_TRG] +Cible suivante Droite -[NEDS123:NEDS1] -Merci ! +[FEC_CCM] +Centrer caméra derrière joueur -[NEDS124:NEDS1] -~r~Le rapport est détruit ! +[FEC_SZI] +Fusil à lunette zoom avant -[NEDS1AA:NEDS1] -Pardonnez-moi, mon Père, car j'ai péché... +[FEC_SZO] +Fusil à lunette zoom arrière -[NEDS1AB:NEDS1] -Merde, le Diable te lâche vraiment pas, Antonio. +[FEC_LKL] +Regarder à gauche en vue subjective -[NEDS1AE:NEDS1] -Un misérable pécheur a confessé avoir fabriqué un faux rapport de dopage sur nos meilleurs athlètes. +[FEC_LRT] +Regarder à droite en vue subjective -[NEDS1AF:NEDS1] -Si tu pouvais empêcher qu'il soit remis au FBI, tu sauverais la carrière d'innocents. +[FEC_LUP] +Regarder en haut en vue subjective -[NEDS1AG:NEDS1] -Ce sera fait, mon Père. +[FEC_LDN] +Regarder en bas en vue subjective -[NEDS1BA:NEDS1] -Vous êtes en avance. +[FEC_LBH] +Regarder derrière le véhicule -[NEDS1BB:NEDS1] -Hé, je vous connais pas, où est John-O ? +[FEC_LLF] +Regarder à gauche du véhicule -[NEDS1BC:NEDS1] -John-O ? Il a pas pu venir. +[FEC_LRG] +Regarder à droite du véhicule -[NEDS1BD:NEDS1] -Hé, c'est John-O ! +[FEC_HRN] +Klaxon -[NEDS1BE:NEDS1] -Donne-moi ça ! +[FEC_HBR] +Frein à main -[NEDS1BF:NEDS1] -Enfoiré ! +[FEC_ACL] +Accélérer -[NEDS1AD:NEDS1] -Ah, la seconde option est plus dans mes cordes... +[FEC_BRK] +Freiner -[NEDS1AC:NEDS1] -Maintenant, soit tu t'en tires avec des Je vous Salue Marie, soit tu fais le sale boulot du Seigneur. +[FEC_TSM] +Activer/Désactiver sous-missions -[NEDS1_7:NEDS1] -Va sur les lieux du crime, vole la ~b~caisse du FBI~w~ et rends-toi au lieu du rendez-vous avant ~1~:~1~. +[FEC_CRD] +Changer la station de radio -[NEDS125:NEDS1] -Fonce sur les lieux du crime, vole une ~b~voiture du FBI~w~ et atteins le rendez-vous avant 0~1~:~1~ heures. +[FEC_ENT] +Entrer/Sortir d'un véhicule -[NEDS126:NEDS1] -Fonce sur les lieux du crime, vole une ~b~voiture du FBI~w~ et atteins le rendez-vous avant 0~1~:0~1~ heures. +[FEC_WPN] +Tirer -[NEDS127:NEDS1] -Fonce sur les lieux du crime, vole une ~b~voiture du FBI~w~ et atteins le rendez-vous avant ~1~:0~1~ heures. +[FEC_PAS] +Pause -{=================================== MISSION TABLE NEDS2 ===================================} +[FEC_FPO] +Changer d'arme en vue subjective -[NEDS2AA:NEDS2] -Pardonnez-moi, mon Père, car j'ai péché... +[FEC_SMS] +Afficher/Masquer curseur -[NEDS2AB:NEDS2] -Merde, Toni, qu'est-ce que t'as encore foutu ? +[FEC_CMS] +Changer de mode de caméra -[NEDS2AC:NEDS2] -Hé ! Votre langage, mon Père... +[FEC_TSS] +Faire une capture d'écran -[NEDS2AD:NEDS2] -Ah ouais, Je te salue Marie pleine de trucs... +[FEC_DBG] +Menu Debug -[NEDS2AE:NEDS2] -Une âme perdue a confessé un recel de diamants. +[FEC_TGD] +Alterner manette jeu/debug -[NEDS2AF:NEDS2] -Aide ce pèlerin à trouver le chemin de la rédemption. Prends les diamants et je veillerai à leur restitution... +[FEC_TDO] +Désactiver caméra debug -[NB2_2:NEDS2] -Prends la ~g~mallette~w~ et tue tous les membres du gang. +[FEC_IVH] +Inverser souris horizontale -[NB2_3:NEDS2] -Apporte la mallette aux ~y~bureaux de Liberty Tree. +[FEC_MSL] +BGS -[NB2_4:NEDS2] -Récupère la ~g~mallette ! +[FEC_MSM] +BMS -[NB2_1:NEDS2] -C'est un piège ! +[FEC_MSR] +BDS -[NB2_6:NEDS2] -Bute tous les ~r~gardes ! +[FEC_QUE] +??? -[NB2_7:NEDS2] -Détruis ~r~l'hélicoptère ! +[FEC_TWO] +Deux touches clavier au maximum -[NB2_5:NEDS2] -Détruis l'~r~hélicoptère~w~, tue les ~r~gardes~w~ et récupère la ~g~mallette. +[FEC_UMS] +Boutons souris uniquement -{=================================== MISSION TABLE NEDS3 ===================================} +[FEC_OMS] +Un bouton souris au maximum -[NEDS3AA:NEDS3] -Pardonnez-moi, mon Père, car j'ai péché... +[FEC_UJS] +Un bouton joystick au maximum -[NEDS3AB:NEDS3] -Toni, mon fils, comparé aux dégénérés de cette ville, t'es un vrai saint ! +[FEC_OJS] +Un bouton joystick maximum par action -[NEDS3AC:NEDS3] -Ils polluent nos enfants avec leurs gaz diaboliques ! Ils souillent le paradis ! +[FEC_PTL] +Utiliser verrouillage de cible avec commande de tir gauche -[NEDS3AD:NEDS3] -Ramène ces pauvres pécheurs dans le droit chemin ! +[FEC_PTR] +Utiliser verrouillage de cible avec commande de tir droite -[NEDS3_1:NEDS3] -Conduis le camion de pompiers à travers la ville en causant le plus d'accidents, de collisions et de destructions que tu peux. +[FEC_LBC] +Utiliser regarder gauche avec regarder droite -[NEDS3_2:NEDS3] -~w~Vole le ~b~camion de pompiers. +[FEC_JBO] +JOY ~1~ -[NEDS3_3:NEDS3] -~w~Tu as ~1~ secondes pour retourner au ~b~camion de pompiers. +[FEC_WAR] +Avertissement -[NEDS3_4:NEDS3] -Cote +[FEC_OKK] +O.K. -[NEDS3_5:NEDS3] -Maintenant, va causer le plus d'accidents, de collisions et de destructions possibles ! +[FEC_DLF] +Erreur lors de suppression -[NEDS3_6:NEDS3] -Piéton écrasé ! +[FEC_SVU] +Erreur lors de la sauvegarde -[NEDS3_7:NEDS3] -Véhicule coulé ! +[FEC_LUN] +Erreur lors du chargement. Fichier corrompu, veuillez le supprimer. -[NEDS3_8:NEDS3] -Véhicule détruit ! +[FEC_PAD] +Manette -[NEDS3_9:NEDS3] -Véhicule retourné ! +[FEC_JOY] +Joystick -[NEDS310:NEDS3] -~r~Le camion de pompiers a été détruit. +[FES_CSA] +Sélectionnez une apparence dans la liste suivante : -[NEDS311:NEDS3] -Dérapage 360° ! +[FET_HRD] +PARAMETRES PAR DEFAUT RETABLIS -[NEDS312:NEDS3] -Dérapage 720° ! +[FET_MST] +DIRECTION CONTROLEE PAR LA SOURIS -[NEDS313:NEDS3] -Dérapage 1080° ! +[FEC_STR] +ETOILE PAV.NUM. -[NEDS314:NEDS3] -~r~T'as abandonné le camion de pompiers. +[FET_MIG] +GAUCHE, DROITE, MOLETTE SOURIS POUR REGLER -[NEDS315:NEDS3] -Tonneau ! +[FET_CIG] +RETOUR ARRIERE POUR EFFACER - BGS, RETOUR POUR CHANGER -[NEDS316:NEDS3] -Série de trois collisions ! +[FET_DSN] +Skin joueur par defaut.bmp -[NEDS317:NEDS3] -Série de quatre collisions ! +[FET_RSO] +PARAMETRE D'ORIGINE RETABLI -[NEDS318:NEDS3] -Série de cinq collisions ! +[FET_RSC] +MATERIEL INDISPONIBLE - PARAMETRE D'ORIGINE RETABLI -[NEDS319:NEDS3] -Bonus carambolage ! +[FEA_3DH] +CONFIG. CARTE-SON -[NEDS320:NEDS3] -~r~T'as pas fait assez de dégâts dans le temps imparti. +[FEA_SPK] +CONFIG. HAUT-PARLEURS -[NEDS321:NEDS3] -Bonus chute ! +[FEM_LOD] +DISTANCE MODELES -[NEDS322:NEDS3] -Bonus chute mortelle ! +[FEM_VSC] +SYNCHRO VIDEO -[NEDS323:NEDS3] -Bonus voltige ! +[FEM_FRM] +RESTRICTION VIDEO -[NEDS324:NEDS3] -Bonus super voltige ! +[FEM_MM] +MENU PRINCIPAL -[NEDS325:NEDS3] -~w~T'as moins de 1 seconde pour retourner au ~b~camion de pompiers. +[FED_RES] +RESOLUTION ECRAN -[NEDS326:NEDS3] -Félicitations ! T'avais encore ~1~ secondes ! +[FET_CTL] +CONFIG. PERIPHERIQUE -[NEDS327:NEDS3] -~w~Maintenant, détruis le ~r~camion de pompiers~w~. Ne laisse aucune preuve ! +[FET_OPT] +OPTIONS -[NEDS328:NEDS3] -Des points de bonus récompensent les collisions, dérapages, tonneaux, retournements et destructions spectaculaires de véhicules. +[FEC_MSH] +SENSIBILITE SOURIS -[NEDS329:NEDS3] -Véhicule retourné x ~1~ +[FEC_IVV] +INVERSER SOURIS VERTIC. -[NEDS330:NEDS3] -Tonneau x ~1~ +[FET_MTI] +CONFIG. SOURIS -[NEDS332:NEDS3] -~w~Il te reste 1 seconde pour retourner au ~b~camion de pompiers. +[FEC_FNC] +F~1~ -[NEDS333:NEDS3] -Félicitations ! NOUVEAU MEILLEUR TEMPS avec ~1~ secondes restantes. +[FEC_IRT] +INSER -[NEDS334:NEDS3] -~w~Maintenant, détruis le camion de pompiers. Ne laisse aucune preuve ! +[FEC_DLL] +SUPPR -[NEDS335:NEDS3] -Demi-tour à 180° ! +[FEC_HME] +ORIG -[NEDS337:NEDS3] -Conduis le camion de pompiers dans la ville en causant autant d'accidents, de collisions et de chaos que tu peux avant ~1~:~1~. +[FEC_END] +FIN -[NEDS338:NEDS3] -Conduis le camion de pompiers dans la ville en causant autant d'accidents, de collisions et de chaos que tu peux avant ~1~:0~1~. +[FEC_PGU] +PAGE HAUT -[NEDS339:NEDS3] -Conduis le camion de pompiers dans la ville en causant autant d'accidents, de collisions et de chaos que tu peux avant 0~1~:~1~. +[FEC_PGD] +PAGE BAS -[NEDS340:NEDS3] -Conduis le camion de pompiers dans la ville en causant autant d'accidents, de collisions et de chaos que tu peux avant 0~1~:0~1~. +[FEC_UPA] +HAUT -[NEDS341:NEDS3] -Cause autant d'accidents, de collisions et de chaos que tu peux avant ~1~:~1~. +[FEC_DWA] +BAS -[NEDS342:NEDS3] -Cause autant d'accidents, de collisions et de chaos que tu peux avant ~1~:0~1~. +[FEC_LFA] +GAUCHE -[NEDS343:NEDS3] -Cause autant d'accidents, de collisions et de chaos que tu peux avant 0~1~:~1~. +[FEC_RFA] +DROITE -[NEDS344:NEDS3] -Cause autant d'accidents, de collisions et de chaos que tu peux avant 0~1~:0~1~. +[FEC_NUM] +PAV.NUM -[NEDS331:NEDS3] -Cause autant d'accidents, de collisions et de chaos que tu peux ! +[FEC_NMN] +PAV.NUM~1~ -{=================================== MISSION TABLE NEDS4 ===================================} +[FEC_FWS] +PAV.NUM / -[NEDS4_2:NEDS4] -~w~Les trois célébrités se rendent à une station de radio dans le centre, pour une interview avant la première de ce soir. +[FEC_PLS] +PAV.NUM + -[NEDS4_3:NEDS4] -~w~L'actrice, Faith W, arrivera du Francis Airport à bord de son hélicoptère privé. +[FEC_MIN] +PAV.NUM - -[NEDS4_4:NEDS4] -~w~Le gangster devenu acteur, DB-P, viendra par bateau de Portland. +[FEC_DOT] +PAV.NUM . -[NEDS4_5:NEDS4] -~w~L'acteur vieillissant et alcoolique, Black Lightman, sort de désintox et arrivera en limousine. +[FEC_NLK] +VERR NUM -[NEDS4_8:NEDS4] -~w~Faith est morte. +[FEC_ETR] +ENTR -[NEDS4_9:NEDS4] -~w~DB-P est mort. +[FEC_SLK] +ARRET DEFIL -[NEDS410:NEDS4] -~w~Black Lightman est mort. +[FEC_PSB] +PAUSE -[NEDS411:NEDS4] -~w~Les trois célébrités ont été liquidées. Retourne à l'~y~église~w~ et informe le Père. +[FEC_BSP] +RET. ARR. -[NEDS412:NEDS4] -~r~Faith est arrivée à la station de radio ! +[FEC_TAB] +TAB -[NEDS413:NEDS4] -~r~DB-P est arrivé à la station de radio ! +[FEC_CLK] +VERR MAJ -[NEDS414:NEDS4] -~r~Black Lightman est arrivé à la station de radio ! +[FEC_RTN] +RETOUR -[NEDS415:NEDS4] -~w~Il va changer pour un Patriot blindé. +[FEC_LSF] +MAJ. G -[NEDS417:NEDS4] -~w~Le Patriot est blindé. +[FEC_RSF] +MAJ. D -[NEDS418:NEDS4] -~w~Attention au tireur ! +[FEC_LCT] +CTRL G -[NEDS421:NEDS4] -~w~L'armurerie de Phil Cassidy est représentée par un drapeau sur le radar. +[FEC_RCT] +CTRL D -[NEDS4AA:NEDS4] -Pardonnez-moi, mon Père, car j'ai encore péché. +[FEC_LAL] +ALT G -[NEDS4AB:NEDS4] -Alors, tu dois de nouveau te racheter, mon fils. +[FEC_RAL] +ALT D -[NEDS4AC:NEDS4] -L'idolâtrie est allée trop loin ! +[FEC_LWD] +WIN G -[NEDS4AD:NEDS4] -Seules des créatures ayant vendu leur âme au Diable accordent une interview à la radio, sans donner l'exclu à un vrai journaliste ! +[FEC_RWD] +WIN D -[NEDS4AF:NEDS4] -Elimine ces fausses idoles ! +[FEC_WRC] +CLIC WIN -[NEDS4BA:NEDS4] -J'ai fait ce que vous vouliez, mon Père. +[FEC_SPC] +ESP -[NEDS4BB:NEDS4] -Parfait ! Le tirage du journal a triplé depuis que tu as trouvé ton âme. +[WIN_TTL] +Grand Theft Auto VC -[NEDS4BC:NEDS4] -Hein ? +[WIN_95] +Grand Theft Auto VC n'est pas compatible WINDOWS 95 -[NEDS4BD:NEDS4] -Merci encore pour ton aide, Toni ! +[WIN_DX] +Grand Theft Auto VC requiert la version 8.1 de DirectX minimum. -[NEDS4BE:NEDS4] -C'est quoi ces conneries ? +[FET_EIG] +IMPOSSIBLE DE PARAMETRER UNE TOUCHE POUR CETTE ACTION -[NEDS4BF:NEDS4] -T'ES QUI, TOI !? +[FET_DAM] +MODELAGE ACCOUST. DYNAMIQUE -[NEDS422:NEDS4] -Va récupérer un lance-roquettes à l'armurerie de Phil Cassidy. +[FEQ_SRE] +Etes-vous sûr de vouloir quitter ? Votre progression depuis la dernière sauvegarde sera perdue. Continuer ? -[NEDS4_7:NEDS4] -~w~Ne laisse aucune des ~r~célébrités~w~ atteindre la station de radio LCFR ! +[FEQ_SRW] +Etes-vous sûr de vouloir quitter la partie ? -[NEDS416:NEDS4] -~w~Ne laisse aucune des ~r~célébrités~w~ atteindre la station de radio LCFR ! +[FET_QG] +QUITTER PARTIE -[NEDS419:NEDS4] -~w~Tu trouveras des armes lourdes à l'armurerie de Phil Cassidy. +[FEN_STA] +COMMENCER PARTIE -[NEDS420:NEDS4] -~w~Le Père Ned a commandé un lance-roquettes. Va le récupérer à l'armurerie Fully Cocked de Phil Cassidy. +[FET_PAU] +MENU PAUSE -[NEDS4_6:NEDS4] -~w~Si tu as besoin d'artillerie lourde, va faire un tour à l'armurerie Fully Cocked de Phil Cassidy. +[REPLAY] +RALENTI -{=================================== MISSION TABLE DONS1 ===================================} +[FET_PS] +CONFIG. JOUEURS -[MORG_01:DONS1] -2-2-3, 3-2-3, 4-2-3, 5-2-3-... +[FEC_ANS] +Action -[MORG_02:DONS1] -Antonio ! Quel plaisir de te voir ! +[CVT_MSG] +Conversion des textures vers un format optimal pour votre carte graphique -[MORG_03:DONS1] -Qu'est-ce qui se passe ? +[FEC_SFT] +MAJ -[MORG_04:DONS1] -On donne une fête, mon cher, une fête. +[FEH_VMP] +VOIR CARTE -[MORG_05:DONS1] -Eh oui, une 'morgue party' ! +[FES_DEE] +Echec de la suppression ! Recommencer. -[MORG_08:DONS1] -C'est quoi, ces conneries ? Une 'morgue party' ? +[FES_CMP] +Echec de la sauvegarde ! Recommencer. -[MORG_09:DONS1] -Je crois qu'on va passer une soirée d'enfer. +[FESZ_WR] +Sauvegarde en cours. Un instant... -[MORG_10:DONS1] -Mais d'abord, il faut aller chercher nos invités... +[FELD_WR] +Chargement en cours. Un instant... -[MORG_11:DONS1] -Viens, avant qu'ils s'ennuient à mourir ! +[FEDL_WR] +Suppression en cours. Un instant... -[MORG_12:DONS1] -Sans mauvais jeu de mots... +[PCRESRT] +Lancement d'une nouvelle partie. Un instant... -[MORG_13:DONS1] -Puisqu'ils sont déjà morts... +[FET_STI] +Commandes standard -[MORG_14:DONS1] -Notre invité d'honneur est en visite dans un labo de pathologie. +[FET_CTI] +Commandes classiques -[MORG_15:DONS1] -Ne le faisons pas attendre ! +[FEH_NA] +OPTION NON DISPONIBLE -[MORG_06:DONS1] -- La première de la saison ! ~n~ - Ouh là, doucement... +[FEH_MPH] +SOURIS, CURSEURS POUR SE DEPLACER - PAGE HAUT, PAGE BAS, MOLETTE POUR ZOOMER, L - LEGENDE -[DL1_A:DONS1] -J'organise une Morgue Party et je veux que t'ailles chercher les 'invités'. +[FEA_MP3] +LECTEUR MP3 -[DL1_2:DONS1] -~r~T'as détruit la voiture. +[NO_PCCD] +Insérer le disque de GTA Vice City ou appuyer sur ECHAP pour annuler -[DL1_3:DONS1] -Les flics ont été alertés ! Fais baisser ton indice de recherche ! +[FEH_SSA] +CURSEURS POUR SE DEPLACER - S POUR SAUVEGARDER LE FICHIER -[DL1_4:DONS1] -Conduis la caisse au ~y~garage de Donald ! +[FES_CMI] +DERNIERE MISSION REUSSIE -[DL1_6:DONS1] -~r~Le corbillard a atteint le poste de police. +[FET_STS] +STATS SAUVEGARDEES DANS 'STATS.HTML' + 'STATS.TXT' -[DL1_9:DONS1] -Conduis la caisse à l'atelier de peinture. +[WIN_VDM] +Grand Theft Auto VC ne dispose pas de suffisamment de mémoire graphique. -[DL1_5:DONS1] -Vole le ~b~corbillard~w~ avant qu'il n'arrive à destination. +[FEC_ERI] +Erreur ! Une ou plusieurs actions ne sont pas assignées à une touche ou à un bouton. Vérifier que toutes les actions sont bien assignées. -{=================================== MISSION TABLE DONS2 ===================================} +[FEC_TFU] +Tourelle + Orienter haut -[DONS2AA:DONS2] -Don ? +[FEC_TFD] +Tourelle + Orienter bas -[DONS2AB:DONS2] -Toni ! +[FET_RIG] +CHOISIR UNE AUTRE COMMANDE POUR CETTE ACTION -[DONS2AC:DONS2] -Comment se passe la campagne ? +[FEA_NM3] +AUCUN FICHIER MP3 TROUVE -[DONS2AD:DONS2] -C'est la phase finale et chaque vote va compter ! +[FEA_MPB] +VOLUME MP3 A FOND -[DONS2AE:DONS2] -Les partisans d'O'Donovan bossent dur pour gagner les dernières voix. +[FEA_MUS] +VOLUME MUSIQUE -[DONS2AF:DONS2] -On a notre propre véhicule électoral, va donc répandre la bonne parole ! +[FEA_SFX] +VOLUME EFFETS SONORES -[DONS2BA:DONS2] -Votez pour O'Donovan à la mairie ! +[CVT_ERR] +Espace disque épuisé. Libérez de la mémoire sur votre disque dur pour continuer. Appuyez sur ECHAP pour annuler. -[DONS2BB:DONS2] -Votez pour O'Donovan contre la corruption ! +[FEA_ADP] +AUTODETECT MATERIEL -[DONS2BC:DONS2] -O'Donovan, notre maire à tous ! +{=================================== MISSION TABLE AMBULAE ===================================} -[DONS2BD:DONS2] -Votez contre le crime ! Votez O'Donovan ! +[ATUTOR2:AMBULAE] +~g~Conduis les patients à l'hôpital. DOUCEMENT. Chaque secousse réduit leurs chances de survie. -[DONS2BE:DONS2] -Votez pour la justice ! Votez O'Donovan! +[A_FULL:AMBULAE] +~r~Ambulance pleine! -[DONS2CA:DONS2] -O'Donovan a trois femmes ! +[A_FAIL2:AMBULAE] +~r~Ton manque de rapidité a été fatal pour le patient! -[DONS2CB:DONS2] -Qui a mangé les tartes ? O'Donovan ! +[A_FAIL3:AMBULAE] +~r~Le patient est mort!! -[DONS2CC:DONS2] -O'Donovan est un drogué ! +[A_PASS:AMBULAE] +Sauvé! -[DONS2CD:DONS2] -O'Donovan croit en la sodomie obligatoire ! +[A_COMP2:AMBULAE] +Tu ne seras plus jamais essoufflé! -[DONS2CE:DONS2] -O'Donovan est un communiste ! +[A_COMP1:AMBULAE] +Missions Ambulance réussies : $~1~ -[DONS2CF:DONS2] -O'Donovan porte les culottes de sa fille ! +[A_CANC:AMBULAE] +~r~Mission ambulance annulée! -[DONS2CG:DONS2] -O'Donovan barbote tout nu avec les porcs ! +[A_COMP3:AMBULAE] +Missions ambulance accomplies! Maintenant, tu peux sprinter indéfiniment! -[DONS2CH:DONS2] -O'Donovan déteste l'Amérique ! +[ALEVEL:AMBULAE] +Mission ambulance, niveau ~1~ -[DONS2CI:DONS2] -Love abandonnera l'impôt sur la fortune ! +[A_FAIL1:AMBULAE] +Mission ambulance achevée. -[DONS2CJ:DONS2] -Votez Love pour des cours de pathologie à l'école ! +[A_SAVES:AMBULAE] +PERSONNES SAUVEES : ~1~ -[DONS2CK:DONS2] -Donald Love se battra pour l'accès à la morgue pour tous ! +{=================================== MISSION TABLE ASSIN1 ===================================} -[DONS2CL:DONS2] -Donald Love est un héros de guerre ! +[ASM1_5:ASSIN1] +~r~Il a livré toutes ses pizzas! -[DONS2CM:DONS2] -Voter pour Love, c'est voter pour le bonheur ! +[ASM1_6:ASSIN1] +Livraisons restantes : -[DONS2CN:DONS2] -Donald Love : l'ennemi des végétariens ! +[ASM1_7:ASSIN1] +~g~Carl Pearson, livreur de pizzas. Tue-le avant qu'il ne termine ses livraisons. -[DONS2_1:DONS2] -~w~Monte dans la ~b~camionnette. +[ASM1_D:ASSIN1] +Ton aide dans l'éradication de ces indésirables fut une excellente affaire. -[DONS2_3:DONS2] -~w~O'Donovan a sorti ses ~r~camionnettes~w~ pour regagner des votes ! +{=================================== MISSION TABLE ASSIN2 ===================================} -[DONS2_4:DONS2] -~r~T'as pas gagné assez de votes ! +[ASM2_1:ASSIN2] +~g~Mme Dawson va bientôt quitter la bijouterie à Vice Point. Tue-la. Il faut que ça ressemble à un accident de voiture. -[DONS2_6:DONS2] -~w~Temps restant +[ASM2_3:ASSIN2] +~g~Ca va sauter, écarte toi! -[DONS2_7:DONS2] -~w~Remonte dans la ~b~camionnette~w~ et continue la mission ! +[ASM2_4:ASSIN2] +~r~T'as bousillé sa bagnole alors qu'elle était même pas dedans. Elle est pas près de l'utiliser, maintenant! -[DONS2_9:DONS2] -~w~O'Donovan a envoyé une nouvelle ~r~camionnette~w~ ! +[ASM2_5:ASSIN2] +~r~Elle s'est enfuie! -[DONS210:DONS2] -~w~Circonscriptions tenues +[ASM2_6:ASSIN2] +~r~Tu étais trop près de l'accident! -[DONS211:DONS2] -~r~Tu as perdu toutes les circonscriptions ! +[ASM2_7:ASSIN2] +~g~N'utilise pas d'armes! Il faut que ça ressemble à un accident! Sors-la plutôt de la route! -[DONS212:DONS2] -~r~Tu n'as pas réussi à décimer l'opposition ! +[ASM2_8:ASSIN2] +~g~La mort de madame Dawson doit avoir l'air d'un accident. N'utilise pas d'armes. -[DONS2_2:DONS2] -~w~Conduis à travers les ~y~points de passage des circonscriptions disputées~w~ pour gagner leur vote. +[ASM2_9:ASSIN2] +~g~Il te faut une voiture pour ce boulot! -[DONS215:DONS2] -~w~T'as perdu une ~y~circonscription~w~ au profit de O'Donovan ! +[ASM2_10:ASSIN2] +~g~Quand sa bagnole prendra feu, éloigne-toi le plus possible du lieu de l'accident. -[DONS216:DONS2] -~w~Ne laisse pas O'Donovan reprendre le contrôle de toutes les ~y~circonscriptions ! +[ASM2_11:ASSIN2] +A l'aide! -[DONS213:DONS2] -~w~T'as maintenant assez de circonscriptions. Elimine les ~r~camionnettes de l'opposition~w~ pour stopper la progression de O'Donovan. +[ASM2_12:ASSIN2] +Que quelqu'un m'aide! -[DONS2_8:DONS2] -~w~Tu dois tenir au moins 5 ~y~circonscriptions. +[ASM2_13:ASSIN2] +Oh non! -[DONS214:DONS2] -~w~Tu tiens moins de 5 ~y~circonscriptions~w~. Récupère-les ! +[ASM2_A:ASSIN2] +Mes félicitations pour ce travail bien fait, Mr. Teal. Mon client était ravi. -[DONS217:DONS2] -~w~Prends d'autres circonscriptions pour faire augmenter ta récompense. +[ASM2_2:ASSIN2] +Santé : -[DONS2_5:DONS2] -~r~La camionnette électorale a été détruite ! +{=================================== MISSION TABLE ASSIN3 ===================================} -[DONS218:DONS2] -~w~Tu dois tenir au moins 5 ~y~circonscriptions~w~ avant ~1~:~1~ heures. +[ASM3_11:ASSIN3] +TEMPS : -[DONS219:DONS2] -~w~Tu dois tenir au moins 5 ~y~circonscriptions~w~ avant 0~1~:~1~ heures. +[ASM3_C:ASSIN3] +Un gang européen prépare un braquage de banque à Vice City. Mes employeurs préfèreraient que cela n'arrive pas. -[DONS220:DONS2] -~w~Tu dois tenir au moins 5 ~y~circonscriptions~w~ avant 0~1~:0~1~ heures. +[ASM3_D:ASSIN3] +Chaque membre du gang dispose d'une couverture à Vice City. Certains ont des petits boulots, d'autres jouent les touristes. -[DONS221:DONS2] -~w~Tu dois tenir au moins 5 ~y~circonscriptions~w~ avant ~1~:0~1~ heures. +[ASM3_E:ASSIN3] +Chaque cible et leur position probable sont indiqués sous le téléphone. -[DONS230:DONS2] -~w~T'as maintenant assez de circonscriptions. Elimine la ~r~camionnette de l'opposition~w~ pour stopper la progression de O'Donovan. +[ASM3_14:ASSIN3] +~g~Dick Tanner est à côté de DBP Security sur Ocean Drive. -{=================================== MISSION TABLE DONS3 ===================================} +[ASM3_15:ASSIN3] +~g~Marcus Hammond et Franco Carter sont près de la bijouterie de Vice Point. -[CAMP_01:DONS3] -Antonio ! Que pasa, amigo ? +[ASM3_16:ASSIN3] +~g~Nick Kong est à côté de Washington Beach. -[CAMP_02:DONS3] -Il s'passe que j'suis italien, Don, pas espagnol. +[ASM3_18:ASSIN3] +~g~Ne t'approche pas trop près de la cible où elle risque de te repérer et d'essayer de se faire la malle! -[CAMP_03:DONS3] -Evidemment, suis-je bête... Mais j'aime tellement les langues romantiques. +[ASM3_19:ASSIN3] +~g~Il t'a repéré! Bute-le! -[CAMP_04:DONS3] -Oh mais, c'est délicieux. +[ASM3_20:ASSIN3] +~g~Ils t'ont repéré! Tue-les vite tous les deux! -[CAMP_05:DONS3] -Ca a le goût du poulet, mais en plus... comment dire... délicat... +[ASM3_21:ASSIN3] +~r~Tu n'as pas tué tous les membres du gang à temps! -[CAMP_06:DONS3] -Tu en veux ? +[ASM3_22:ASSIN3] +~g~Ne t'approche pas trop des cibles ou elles risquent de te repérer et d'essayer de filer. -[CAMP_07:DONS3] -J'ai déjà mangé, merci. +[ASM3_12:ASSIN3] +~g~Des armes ont été laissées à ta disposition dans le coin si tu en as besoin. Tu as ~h~9 MINUTES ~g~pour tuer tous les membres du gang. -[CAMP_08:DONS3] -Tant pis pour toi... +[ASM3_13:ASSIN3] +~g~Mike Griffin travaille sur un panneau publicitaire à Washington. -[CAMP_09:DONS3] -J'ai commandé quelques petites friandises supplémentaires... +[ASM3_17:ASSIN3] +~g~Charlie Dilson est à moto sur Washington. -[CAMP_10:DONS3] -Les libéraux s'en donneraient à coeur joie, évidemment, +{=================================== MISSION TABLE ASSIN4 ===================================} -[CAMP_11:DONS3] -mais que savent-ils des vrais plaisirs de la vie !? +[ASM4_12:ASSIN4] +Distance : -[CAMP_12:DONS3] -Sophistication et démocratie n'ont jamais fait bon ménage. +[ASM4_15:ASSIN4] +~g~Prends le fusil à lunette sur ta droite. -[CAMP_13:DONS3] -Ecoutez, Don, faut qu'on gagne cette élection. +[ASM4_16:ASSIN4] +~g~Observe la femme au balcon. Elle va descendre l'escalator et demander l'heure à quelqu'un. -[CAMP_14:DONS3] -Donc, il faut s'assurer qu'y a pas de cadavre dans les placards, +[ASM4_17:ASSIN4] +~g~Lorsque la conversation est terminée, liquide son interlocuteur sans faire de mal à la femme. -[CAMP_15:DONS3] -si vous voyez c'que j'veux dire... +[ASM4_18:ASSIN4] +~g~Une fois la cible éliminée, récupère la serviette et amène-la à Ammu-Nation dans le centre. -[CAMP_16:DONS3] -Absolument. +[ASM4_19:ASSIN4] +~g~Reste à distance de la cible. Sa proximité t'est indiquée par la barre de distance située dans le coin supérieur droit de l'écran. -[CAMP_17:DONS3] -C'que j'veux dire, c'est que... +[ASM4_20:ASSIN4] +~g~Ne la laisse pas devenir pleine ou tu seras repéré. -[CAMP_18:DONS3] -Comment on s'occupe de ce O'Donovan qui sert de couverture aux... +[ASM4_21:ASSIN4] +~g~Récupère la serviette! -[CAMP_19:DONS3] -qui représente les Forelli ? +[ASM4_22:ASSIN4] +~g~Ramène la serviette à Ammu-Nation dans le centre. -[CAMP_20:DONS3] -Ce type a pas mal de monde pour démarcher, +[ASM4_23:ASSIN4] +~g~Il t'a repéré et s'enfuit. Rattrape-le et récupère la serviette! -[CAMP_21:DONS3] -tout un tas de gens influents dans l'erreur, si tu vois ce que je veux dire. +[ASM4_25:ASSIN4] +~r~T'as buté la femme, imbécile! -[CAMP_22:DONS3] -Je crois qu'il faudrait... comment dire... secouer un peu leur foi en la démocratie. +[ASM4_26:ASSIN4] +~r~La cible a embarqué pour son vol! -[CAMP_23:DONS3] -Vous voulez que je leur colle la branlée du siècle ? +[ASM4_27:ASSIN4] +~r~La cible t'a repéré! Tu devais garder tes distances! -[CAMP_24:DONS3] -Oh, quelle fougue, Antonio ! C'est... sublime. +[ASM4_28:ASSIN4] +~r~La cible t'a repéré! Elle t'a entendu tirer! -[CAMP_25:DONS3] -C'est tellement... hum... Wagnérien ! Tu comprends ?! Arriverdici, amigo ! +[ASM4_29:ASSIN4] +~r~Ne le tue qu'après qu'il ait parlé à la femme! -[CAMP_26:DONS3] -Humphries, apportez les abats ! +[ASM4_A:ASSIN4] +L'heure est venue de s'occuper d'un gros poisson, M. Teal. Il y a un fusil dans le feuillage à votre droite. -[DONS3_1:DONS3] -Toni doit se débarrasser des employés électoraux de l'opposition pour affaiblir la campagne d'O'Donovan, le candidat des Forelli. +[ASM4_B:ASSIN4] +Surveillez la femme sur le balcon situé au-dessus des guichets d'enregistrement. Elle va avancer à travers la foule et demander l'heure à quelqu'un. -[DONS3_2:DONS3] -~w~Tue les ~r~employés électoraux de l'opposition. +[ASM4_C:ASSIN4] +Vous devez tuer son interlocuteur, récupérer la mallette et l'apporter à l'emplacement indiqué sous le téléphone. -[DONS3_3:DONS3] -~r~Le temps imparti est écoulé. +{=================================== MISSION TABLE ASSIN5 ===================================} -[DONS3_4:DONS3] -Ces trois ~r~partisans ~w~sont cuits. Occupe-toi des suivants ! +[ASM5_A:ASSIN5] +Un deal important se déroule sur le toit de l'usine de crème glacée Cherry Popper. -[DONS3_5:DONS3] -~w~Tue les ~r~employés électoraux~w~ de l'opposition avant ~1~:~1~. +[ASM5_B:ASSIN5] +Descendez toutes les personnes impliquées, embarquez la marchandise et amènez-la à la piste pour hélicos de l'aéroport. -[DONS3_6:DONS3] -~w~Tue les ~r~employés électoraux~w~ de l'opposition avant ~1~:0~1~. +[ASM5_C:ASSIN5] +Il y a une porte sur votre gauche qui mène à l'arrière de l'usine. -[DONS3_7:DONS3] -~w~Tue les ~r~employés électoraux~w~ de l'opposition avant 0~1~:~1~. +[ASM5_1:ASSIN5] +~g~Entre dans l'enceinte située derrière l'usine de crème glacée Cherry Popper et va jusqu'au toit où se fait le deal. -[DONS3_8:DONS3] -~w~Tue les ~r~employés électoraux~w~ de l'opposition avant 0~1~:0~1~. +[ASM5_2:ASSIN5] +~g~Récupère la marchandise et amène-la à la piste pour hélicos de l'aéroport. -{=================================== MISSION TABLE DONS4 ===================================} +[ASM5_3:ASSIN5] +~g~Emmène la marchandise à la piste pour hélicos de l'aéroport! -[DONS410:DONS4] -Va à ~y~l'entrepôt des Forelli~w~ et mets le feu à leurs bulletins de vote ! +{=================================== MISSION TABLE BANKJ1 ===================================} -[DONS411:DONS4] -Brûle les ~r~bulletins de vote~w~ et détruis les ~r~presses à imprimer ! +[WANTED1:BANKJ1] +~g~Largue les flics et perds ton indice de recherche! -[DONS412:DONS4] -Détruis la ~r~presse à imprimer ! +[BJM1_A:BANKJ1] +Tommy! Hé, regarde-ça, c'est génial! J'ai fait installer un minibar! -[DONS413:DONS4] -Brûle TOUS les ~r~bulletins de vote ! +[BJM1_B:BANKJ1] +Y'a déjà un vrai bar en bas, Ken. -[DONS414:DONS4] -Détruis les dernières ~r~camionnettes des Forelli ! +[BJM1_C:BANKJ1] +Ouais, je sais, et alors? Bon, j'ai le tableau noir que tu m'as demandé. -[DONS416:DONS4] -~r~T'as perdu une camionnette des Forelli ! Ils vont pouvoir truquer l'élection ! +[BJM1_D:BANKJ1] +Ah, c'est là qu'on voit l'intérêt de ton école de droit : t'as appris à suivre les instructions. -[DONS418:DONS4] -Il reste ~r~~1~ palettes~w~ de faux bulletins de vote. +[BJM1_E:BANKJ1] +Bon, il me faut un mec sûr. -[DONS419:DONS4] -Il reste ~r~1 palette~w~ de faux bulletins de vote ! +[BJM1_F:BANKJ1] +Euh, d'accord, laisse-moi réfléchir... Sûr... sûr... sûr... Je sais! Je connais un mec qui te plaira! -[DONS420:DONS4] -Détruis la dernière ~r~camionnette des Forelli ! +[BJM1_G:BANKJ1] +Aaah, non, merde, ce con est au trou. -[DONS421:DONS4] -Cette presse est détruite ! Occupe-toi de l'autre ~r~presse ! +[BJM1_H:BANKJ1] +Comment ça au trou? -[DONS422:DONS4] -La presse est détruite ! +[BJM1_I:BANKJ1] +Dans un poste de police. Il attend son transfert. -[DONS423:DONS4] -Maintenant, tire-toi de là ! +[BJM1_J:BANKJ1] +Je crois qu'il va être remis en liberté sur parole... -[DONS424:DONS4] -Détruis les ~r~presses à imprimer ! +[BJM1_1:BANKJ1] +~g~Sors Cam Jones de chez les flics! -[DS4_AA:DONS4] -Tous ces votes et tout ce fric qui attendent d'être récoltés... +[BJM1_3:BANKJ1] +~g~Tu trouveras quelque chose d'utile dans la salle des casiers. -[DS4_AB:DONS4] -Je ne prétends pas comprendre la politique. +[BJM1_21:BANKJ1] +~g~La carte d'accès aux cellules se trouve à l'étage. -[DS4_AC:DONS4] -Personne ne la comprend, en fait. Tout n'est que bluff et corruption. +[BNK1_7:BANKJ1] +Cam Jones? -[DS4_AD:DONS4] -Les Forelli détiennent une partie de la boîte qui fabrique les nouvelles machines à voter. +[BNK1_8:BANKJ1] +Je viens t'aider à mettre les bouts! -[DS4_AE:DONS4] -C'est pas bien, ça... +[BNK1_10:BANKJ1] +Ouais, c'est moi... -[DS4_AF:DONS4] -On peut sûrement pas leur faire confiance. +[BNK1_11:BANKJ1] +Ca me va! -[DS4_AG:DONS4] -Il vaudrait mieux qu'elles déplorent toutes un grave dysfonctionnement, si tu me suis... +[BNK1_13:BANKJ1] +J'ai un boulot à faire et t'es mon perceur de coffre. -[DONS4H1:DONS4] -Tu trouveras de l'artillerie lourde à l'armurerie Fully Cocked de Phil Cassidy. +[BNK1_14:BANKJ1] +Marre de perdre mon temps dans une cellule. -[DONS4AA:DONS4] -Antonio, content de te voir ! +[BJM1_22:BANKJ1] +~g~Ramène Cam chez lui! -[DONS4AB:DONS4] -Je ne suis pas Démocrate, mais même moi, je ne fais pas dans le truquage d'urnes. +[BJM1_23:BANKJ1] +~g~Tu dois d'abord trouver la carte d'accès! -[DONS4AC:DONS4] -Tu savais que les Forelli détenaient une partie de la boîte qui fabrique les nouvelles machines à voter ? +[BNK1_12:BANKJ1] +Sème les flics et ramène-moi chez moi! -[DONS4AD:DONS4] -C'est pas bien, ça... +[BJM1_20:BANKJ1] +Jette ton flingue ou tu vas en subir les conséquences! -[DONS4AE:DONS4] -On peut sûrement pas leur faire confiance. +[BJM1_5:BANKJ1] +Accès réservé au personnel autorisé! -[DONS4AF:DONS4] -Il vaudrait mieux qu'elles déplorent toutes un grave dysfonctionnement, si tu me suis... +[BJM1_2:BANKJ1] +~r~T'étais supposé faire sortir Cam, pas le faire tuer! -[DONS4_8:DONS4] -Va à l'armurerie Fully Cocked de Phil Cassidy. +[BJM1_4:BANKJ1] +Il est armé! Descendez-le! -[DONS4H2:DONS4] -L'armurerie de Phil Cassidy est représentée par un drapeau sur le radar. +{=================================== MISSION TABLE BANKJ2 ===================================} -[DONS427:DONS4] -Maintenant, tire-toi de Fort Staunton ! +[BJM2_A:BANKJ2] +Il nous faut un braqueur. T'en connais un? -[DONS4_9:DONS4] -Tu trouveras tout le matos nécessaire pour perturber la campagne des Forelli à l'armurerie Fully Cocked de Phil Cassidy. +[BJM2_B:BANKJ2] +Hé, Tommy, Tommy, ce truc ça permet d'rester dans l'coup, mec! -[DONS417:DONS4] -Il y a un autre lance-flammes à l'armurerie Fully Cocked de Phil Cassidy. +[BJM2_C:BANKJ2] +WoooOOOooo! -[DONS425:DONS4] -Récupère le lance-flammes à l'armurerie Fully Cocked de Phil Cassidy. +[BJM2_D:BANKJ2] +J'pourrais être ton braqueur! Haut les mains! Haut les mains! -[DONS426:DONS4] -~r~Le vendeur est de l'histoire ancienne ! +[BJM2_E:BANKJ2] +T'es pas un braqueur, t'es un idiot. -[DONS4H3:DONS4] -Donald Love a commandé un lance-flammes. Va le récupérer à l'armurerie Fully Cocked de Phil Cassidy. +[BJM2_F:BANKJ2] +Va boire un verre et ferme-la. -{=================================== MISSION TABLE DONS5 ===================================} +[BJM2_G:BANKJ2] +Hé, tire-toi de mon chemin! Ye ye ye ow ow! -[DONS5_7:DONS5] -Protège la limousine de Donald ! +[BJM2_H:BANKJ2] +Cam, qu'est-ce que t'en penses? -[DONS5_9:DONS5] -~r~Donald Love est mort ! +[BJM2_I:BANKJ2] +Ben, le meilleur tireur de cette ville, c'est un mec qui s'appelle Cassidy. -[DONS513:DONS5] -Dégâts de la limo +[BJM2_J:BANKJ2] +Ah ouais? -[DONS516:DONS5] -Monte dans la ~b~limo ! +[BJM2_K:BANKJ2] +Ouais. Un militaire ou en tout cas c'est ce qu'il croit. -[DONS517:DONS5] -T'as laissé tomber ~b~Donald Love ! +[BJM2_L:BANKJ2] +Je doute qu'il ait jamais été dans l'armée, mais il sait sûrement où dégotter des flingues. -[DONS519:DONS5] -Amène Donald à la ~y~planque ! +[BJM2_M:BANKJ2] +Il devrait être au champ de tir. -[DONS520:DONS5] -Tue les ~r~assaillants ! +[BJM2_2A:BANKJ2] +C'est toi, Phil Cassidy? -[DONS521:DONS5] -Monte dans la ~b~limo ! +[BJM2_2B:BANKJ2] +Pourquoi? -[DS5_AA:DONS5] -Et dire que je déteste la publicité... mais ça fait partie du jeu, n'est-ce pas ? +[BJM2_2C:BANKJ2] +Je cherche un mec qui sache se servir d'un flingue. D'après ce que je vois, j'suis pas convaincu... -[DS5_AB:DONS5] -Evidemment. +[BJM2_2D:BANKJ2] +Mon pote, je peux dégomme une mouche sur ta tête à 25 mètres! -[DS5_AC:DONS5] -Les Forelli vont essayer de me descendre, pas vrai ? +[BJM2_2E:BANKJ2] +Vraiment? -[DS5_AD:DONS5] -Vous inquiétez pas, j'vous accompagne... +[BJM2_2F:BANKJ2] +Ouais. J'ai appris ça à l'armée. -[DS5_AE:DONS5] -Bon, c'est là que tout se joue... +[BJM2_2G:BANKJ2] +Ils s'amusent souvent à descendre des mouches à l'armée? Heureusement que je paye pas d'impôts! -[DS5_BA:DONS5] -Merde ! C'est pas vrai ! +[BJM2_2H:BANKJ2] +Tu t'crois marrant peut-être, minus? -[DS5_BB:DONS5] -Pas de panique ! Je m'occupe de ces cons ! +[BJM2_2I:BANKJ2] +Ha ha ha ha ha! -[DS5_BC:DONS5] -Y a un fusil dans le coffre ! +[BJM2_2J:BANKJ2] +Tirons quelques coups. -[DS5_BD:DONS5] -Verrouillez les portes ! Ca sera pas long ! +[BJM2_1:BANKJ2] +~g~Va à Ammu-Nation dans le centre et parle à Phil Cassidy. -[DS5_CA:DONS5] -OK, on peut y aller. +[BJM2_4:BANKJ2] +SCORE MANCHE 1 : ~1~ -[DS5_CB:DONS5] -On a un autre tueur après nous ! +[BJM2_6:BANKJ2] +SCORE MANCHE 2 : ~1~ -[DS5_DA:DONS5] -Difficile de faire campagne en se terrant comme un lâche. +[BJM2_7:BANKJ2] +SCORE TOTAL : ~1~ -[DS5_DB:DONS5] -Nous allons devoir repenser notre stratégie. +[BJM2_9:BANKJ2] +~g~Va au point de départ de la deuxième manche. -[DONS522:DONS5] -Ramène Donald chez ~y~lui ! +[BJM2_11:BANKJ2] +~r~Phil est mort! -{=================================== MISSION TABLE DONS6 ===================================} +[BJM2_12:BANKJ2] +~r~Un des tireurs est mort! -[DS6_00:DONS6] -Suis la ~b~camionnette avec les bulletins ! +[BJM2_14:BANKJ2] +~g~Continue jusqu'au prochain secteur! -[DS6_01:DONS6] -Attends que le ~b~coursier ~w~fasse l'échange ! +[BJM2_17:BANKJ2] +~g~Va parler à Phil. -[DS6_02:DONS6] -Récupère les bulletins auprès du ~r~coursier ! +[BJM2_24:BANKJ2] +~g~La cible la plus proche rapporte un point. -[DS6_03:DONS6] -Tue le ~r~coursier ! +[BJM2_25:BANKJ2] +~g~La cible intermédiaire rapporte deux points. -[DS6_04:DONS6] -Prends le ~g~paquet ! +[BJM2_27:BANKJ2] +~g~Toutes les cibles de cette manche rapportent un point. -[DS6_05:DONS6] -Suis ~b~la camionnette ~w~avec les bulletins ! +[BNK2_4:BANKJ2] +Waou! -[DS6_06:DONS6] -~r~T'as tué un coursier avant de procéder à l'échange ! +[BNK2_5:BANKJ2] +Il raterait une vache dans un couloir! -[DS6_07:DONS6] -T'as manqué un échange ! Tu peux pas te permettre d'en rater un autre ! +[BNK2_7:BANKJ2] +Bon, tu veux bien me rendre un service et m'assister sur un boulot? -[DS6_08:DONS6] -~r~T'as manqué deux échanges, le vote ne peut pas être truqué ! +[BNK2_8:BANKJ2] +Mon gars, vu comment tu tires, si tu me demandes en mariage, j'accepte. -[DS6_09:DONS6] -~r~Tu lui as fait peur ! +[BNK2_9A:BANKJ2] +Mon gars, tu ferais mieux de remballer ton baratin et tes grands projets. T'es trop mauvais tireur. -[DS6_10:DONS6] -~r~La camionnette a été détruite ! +[BNK2_9B:BANKJ2] +T'es trop mauvais tireur. -[DS6_11:DONS6] -Le temps est écoulé ! +[BJM2_28:BANKJ2] +SCORE MANCHE TROIS : ~1~ -[DS6_12:DONS6] -~r~T'as pas rattrapé la camionnette ! +[BJM2_26:BANKJ2] +~g~La cible éloignée rapporte trois points. -[DS6_13:DONS6] -~r~La camionnette ne roule pas sans chauffeur ! +[BNK2_1:BANKJ2] +BALLES REELLES -[DS6_15:DONS6] -~r~T'as fais peur au chauffeur ! Tu le rattraperas plus maintenant ! +[RANGE_1:BANKJ2] +SCORE POUR LE TIR : ~1~ -[DS6_16:DONS6] -~1~ +[BJM2_2:BANKJ2] +~g~Pour quitter la manche, appuie sur la ~h~~k~~PED_JUMPING~. -[DS6_17:DONS6] -~w~Le chauffeur est mort ! Conduis la camionnette au ~y~garage de Donald. +[BJM2_N:BANKJ2] +Du calme... -[DONS6AA:DONS6] -Mauvaise nouvelle, Toni ! +{=================================== MISSION TABLE BANKJ3 ===================================} -[DONS6AB:DONS6] -Quoi ? +[BJM3_A:BANKJ3] +Les choses commencent à se mettre tranquillement en place, ici. -[DONS6AC:DONS6] -Les estimations nous donnent au coude à coude. +[BJM3_B:BANKJ3] +C'est quoi le plan, Tommy? Que pasa, amigo? -[DONS6AD:DONS6] -Alors, on passe au plan B. +[BJM3_C:BANKJ3] +Le plan, c'est que toi, tu restes ici à glander. Bon, on a besoin d'un chauffeur. -[DONS6AE:DONS6] -On vole quelques bulletins pas encore décomptés et on les remplace par les nôtres. +[BJM3_D:BANKJ3] +Tommy, je m'en charge! Je peux conduire. -[DONS6AF:DONS6] -Vous disiez quoi à propos du truquage électoral ? +[BJM3_E:BANKJ3] +C'est Hilary que tu veux, mec! Pas un stupide vantard d'école de droit. -[DONS6AG:DONS6] -Oh, la ferme ! +[BJM3_F:BANKJ3] +Hilary, c'est le meilleur. T'as jamais vu quelqu'un conduire aussi vite. Je vais l'appeler. -[DS6_14:DONS6] -Retourne chercher les ~g~bulletins~w~ ! Il nous les faut ! +[BJM3_G:BANKJ3] +Salut, Hil, c'est Phil. Comment ça va? Non, attends, on causera plus tard, j'ai besoin que tu me rendes un service. -[DS6_66:DONS6] -~r~Tu as détruit la voiture d'un coursier avant l'échange ! +[BJM3_H:BANKJ3] +J'ai avec moi un mec du nord. Non, je crois pas qu'il était dans l'armée, mais il a besoin d'un conducteur. -[DS6_18:DONS6] -T'as tué le coursier avant l'échange ! Ne recommence pas ! +[BJM3_I:BANKJ3] +Pour un peu d'adrénaline. Ok, compris. -[DS6_21:DONS6] -Magne-toi ! Il y a un autre échange en cours ! +[BJM3_J:BANKJ3] +Qu'est-ce qu'il a dit? -[DS6_22:DONS6] -T'as raté le premier échange, t'as plus droit à l'erreur ! +[BJM3_K:BANKJ3] +Bon, il marche, pas de problème. En fait, y'a juste un détail, tu vois, il pose toujours une condition. -[DS6_23:DONS6] -T'as raté le deuxième échange, t'as plus droit à l'erreur ! +[BJM3_L:BANKJ3] +Il refuse de bosser pour quelqu'un qui ne peut pas le battre. Un truc à cause de sa mère. -[DS6_24:DONS6] -T'as raté le troisième échange, t'as plus droit à l'erreur ! +[BJM3_M:BANKJ3] +Quoi qu'il en soit, il veut t'affronter d'abord et il a dit qu'il te retrouvait dehors... -[DS6_25:DONS6] -T'as raté le quatrième échange, t'as plus droit à l'erreur ! +[BJM3_2A:BANKJ3] +C'est toi Tommy? Evidemment que c'est toi Tommy, enfin, je veux dire, -[DS6_26:DONS6] -T'as foutu la trouille à un coursier avant l'échange ! Ne recommence pas ! +[BJM3_2B:BANKJ3] +pourquoi est-ce que quelqu'un d'autre parlerait avec moi? -[DS6_28:DONS6] -~r~T'as tout foiré ! Le vote ne peut plus être truqué ! +[BJM3_2C:BANKJ3] +Bon. Ecoute-moi. -{=================================== MISSION TABLE DONS7 ===================================} +[BJM3_2D:BANKJ3] +Je conduis pour toi que SI, et seulement SI, tu peux conduire convenablement. -[ELEC_01:DONS7] -Salut, Don, j'ai réglé ce merdier pour vous. +[BJM3_2E:BANKJ3] +Abandonne et je ne te pardonnerai jamais. -[ELEC_02:DONS7] -Tout devrait être cool maintenant. +[BJM3_2:BANKJ3] +~r~Hilary est mort! -[ELEC_03:DONS7] -Vraiment ? +[BJM3_4:BANKJ3] +~g~T'as besoin d'une voiture! -[ELEC_04:DONS7] -Vous avez plus aucun lien avec le crime organisé. +[BNK3_1:BANKJ3] +Ok, je piloterai pour toi, mais s'il te plaît, traite-moi mal. -[ELEC_05:DONS7] -Vous êtes blanc comme neige. Vous pourriez même devenir pape. +[BNK3_3A:BANKJ3] +Course de rue illégale dans Vice Point! -[ELEC_07:DONS7] -Bien qu'aucun lien n'ait pu être établi entre Donald Love +[BNK3_3B:BANKJ3] +Appel à tous les officiers. -[ELEC_08:DONS7] -et le crime organisé de Liberty City, +[BNK3_3C:BANKJ3] +Les courses de rue sont formellement interdites! -[ELEC_09:DONS7] -il semblerait que son amitié avec des gangsters tels que Toni Cipriani, +{=================================== MISSION TABLE BANKJ4 ===================================} -[ELEC_11:DONS7] -pèse lourd dans l'esprit des électeurs. +[BNK4_A:BANKJ4] +~w~Comme vous pouvez voir, les mecs, ça va être le fric le plus facile qu'on se soit jamais fait! -[ELEC_12:DONS7] -Les intentions de vote en sa faveur se sont effondrées en quelques heures. +[BNK4_B:BANKJ4] +~w~Tommy, sérieusement, va falloir que tu considères la question judiciaire. -[ELEC_13:DONS7] -Il est jugé, semble-t-il, indigne de servir... +[BNK4_C:BANKJ4] +~w~Merde! Qu'est-ce que tu fumes, mon pote? J'appelle pas ça un plan! -[ELEC_14:DONS7] -Indigne ! Par ta faute... +[BNK4_D:BANKJ4] +~w~Bon, de toute manière, on a pas besoin de plan! -[ELEC_15:DONS7] -Ouais. C'est entièrement ta faute ! +[BNK4_E:BANKJ4] +~w~Prenez le communisme, ça c'était un plan! Et regarde où en est la Russie, maintenant! -[ELEC_16:DONS7] -Ma faute ? +[BNK4_F:BANKJ4] +~w~Du calme, Ok? Avec une équipe comme ça, il n'y aura pas le moindre problème! -[ELEC_17:DONS7] -Ouais. +[BNK4_G:BANKJ4] +~w~On amène Cam au coffre. Phil, toi et moi, on s'occupe de la sécurité et Hilary conduit la bagnole. -[ELEC_18:DONS7] -Ma faute ? +[BNK4_H:BANKJ4] +~w~Hum, euh, t'oublies pas quelqu'un? Quelqu'un qui t'aurait aidé depuis le début dans cette ville? Quelqu'un... -[ELEC_19:DONS7] -Avec tous les sacrifices que j'ai faits pour cette ville, +[BNK4_I:BANKJ4] +~w~Ken... Ken, c'est vrai. Bon, Ken va s'occuper de blanchir le pognon et de garder les boissons au frais! -[ELEC_20:DONS7] -tu sais quel a été mon seul point faible tout ce temps ? +[BNK4_J:BANKJ4] +~w~Je comprends pas ce que je suis supposé faire ici. -[ELEC_21:DONS7] -L'humilité ! Et maintenant, me voilà ruiné ! +[BNK4_K:BANKJ4] +~w~Ecoute, c'est dans la poche. T'as jamais vu de film? -[ELEC_22:DONS7] -La faillite ! 20 millions de dollars ! +[BNK4_L:BANKJ4] +~w~On entre dans la banque, on sort nos flingues et on ressort plein aux as! -[ELEC_23:DONS7] -Ratiboisé... ruiné... refait... C'est fini ! C'est la FAILLITE ! +[P_DEAD:BANKJ4] +~r~Phil est mort! -[ELEC_06:DONS7] -Pape ! Regarde plutôt ça ! +[C_DEAD:BANKJ4] +~r~Cam est mort! -[DONS7_1:DONS7] -O'Donovan peut prouver le lien entre Donald Love et Salvatore Leone. La carrière politique de Donald Love ne tient qu'à un fil. Toni doit détruire la preuve. +[H_DEAD:BANKJ4] +~r~Hilary est mort! -[DONS7_2:DONS7] -~w~Va voler la ~b~camionnette~w~ qui contient la preuve ! +[P_HIND:BANKJ4] +~r~T'as perdu Phil! -[DONS7_3:DONS7] -~r~T'as tué le contact ! +[C_HIND:BANKJ4] +~r~T'as oublié Cam! -[DONS7_4:DONS7] -~w~Conduis la camionnette au ~y~point de livraison ! +[H_HIND:BANKJ4] +~r~Hilary est resté derrière! -[DONS7_5:DONS7] -~w~Remonte dans la ~b~camionnette ! +[GETCAR:BANKJ4] +~g~Monte dans la bagnole pour terminer le boulot! -[DONS7_7:DONS7] -Monte dans la ~b~voiture du contact. +[TRASHED:BANKJ4] +~r~T'as détruit la bagnole pour s'enfuir! -[DONS7CA:DONS7] -Ah, Toni ! +[BNK4_1:BANKJ4] +Je vais conduire. -[DONS7CB:DONS7] -La preuve est dans cette camionnette devant. +[BNK4_2:BANKJ4] +Super. Un passager. Attends que j'en parle à la réunion! -[DONS7CC:DONS7] -Tu vas devoir te frayer un chemin. +[BNK4_3A:BANKJ4] +Hé, fais gaffe à la caisse, Tommy! -[DONS7CD:DONS7] -Ramène la camionnette chez Donald ! +[BNK4_3B:BANKJ4] +Tommy, Hilary prend trop de place! -[DONS7CE:DONS7] -Bonne chance ! +[BNK4_3C:BANKJ4] +C'est pas vrai! -[DONS713:DONS7] -~w~Gare la camionnette dans le ~y~garage. +[BNK4_3D:BANKJ4] +Toi aussi! -[DONS714:DONS7] -~r~T'as détruit la camionnette ! +[BNK4_3E:BANKJ4] +Hé, fermez-la tous les deux ou vous rentrez à pied! -[RMN_AA:DONS7] -Chacun aura toutes les raisons de se réjouir ce soir, car la grève industrielle qui paralysait Liberty City, +[BNK4_3F:BANKJ4] +Ouais, Hilary. -[RMN_AB:DONS7] -est enfin terminée. +[BNK4_3I:BANKJ4] +Putain, Phil! Arrête d'agiter ce truc devant moi! -[RMN_AC:DONS7] -Le trafic a repris sur toutes les lignes de ferries et de métros. +[BNK4_3J:BANKJ4] +Ouais, tu vas éborgner quelqu'un! -[RMN_AD:DONS7] -Même le pont levant qui relie Staunton Island à Shoreside Vale a été rouvert au trafic. +[BNK4_3M:BANKJ4] +Mon bébé! Elle est foutue! -[RMN_AE:DONS7] -Les grévistes ont rangé leurs pancartes et regagné leurs postes de travail, +[BNK4_3O:BANKJ4] +Tu t'accroches à l'illusion de la permanence! -[RMN_AF:DONS7] -suite aux promesses du nouveau maire O'Donovan, à l'occasion d'un rassemblement : +[BNK4_3P:BANKJ4] +Quoi?! -[RMN_AG:DONS7] -'Vous avez ma parole de maire qu'il y aura TOUJOURS un service de ferries à Liberty City.' +[BNK4_3Q:BANKJ4] +Tu crois que toutes les choses dureront! -[RMN_AH:DONS7] -Mais certains trouveront peut-être que cette promesse sonne creux, +[BNK4_3R:BANKJ4] +La jeunesse, les amours, les pizzas... -[RMN_AI:DONS7] -les travaux du nouveau tunnel de Porter Road se poursuivant sans relâche. +[BNK4_3S:BANKJ4] +Tout prend fin un jour, et tu dois l'accepter. -[DONS7_6:DONS7] -~w~Retrouve l'~b~homme~w~ de Donald Love sous le pont autoroutier de Newport. +[BNK4_3T:BANKJ4] +Ouais, t'as raison, merci, Cam. -{=================================== MISSION TABLE RAYS1 ===================================} +[BNK4_3U:BANKJ4] +De rien. -[SAYO_01:RAYS1] -Alors c'est toi, l'empêcheur de tourner en rond ? +[BNK4_3V:BANKJ4] +Hé, Tommy, pourquoi on s'arrête? -[SAYO_02:RAYS1] -Pardon ? +[BNK4_4A:BANKJ4] +~w~Hilary, continue à tourner autour du quartier. -[SAYO_03:RAYS1] -Y a plein de mecs importants qui t'en veulent. +[BNK4_5:BANKJ4] +~w~Ok, Tommy, ok. -[SAYO_04:RAYS1] -Leon McAffrey, LCPD. +[BNK4_6:BANKJ4] +~w~C'EST UN HOLD-UP! -[SAYO_05:RAYS1] -J'vois pas d'quoi vous voulez parler. +[BNK4_7:BANKJ4] +~w~PERSONNE NE BOUGE! -[SAYO_06:RAYS1] -J'bosse dans la restauration. +[BNK4_8:BANKJ4] +~w~TOUT LE MONDE CONTRE LE MUR! -[SAYO_07:RAYS1] -Comme tu veux, cow-boy... +[BNK4_9:BANKJ4] +Phil! Monte la garde! -[SAYO_08:RAYS1] -Si vous voulez tous vous entretuer, c'est pas mon problème. +[BNK4_10:BANKJ4] +Bien compris! -[SAYO_09:RAYS1] -Tout c'que j'veux, c'est ma part. +[BNK4_11:BANKJ4] +Amène-toi, Cam, la salle des coffres est en haut... -[SAYO_12:RAYS1] -Ma part ? Elle est où ? +[BK4_12A:BANKJ4] +Merde! C'est un Flange 9000! -[SAYO_13:RAYS1] -Dans ton cul, mon pote ! Me fais pas rire ! +[BK4_12B:BANKJ4] +Ca peut prendre des heures à ouvrir, -[SAYO_14:RAYS1] -Tu continues à me faire chier et j'te descends avec tes potes et la famille de tes potes +[BK4_12C:BANKJ4] +ou cinq minutes si tu peux trouver le directeur... -[SAYO_15:RAYS1] -et tous les enfoirés d'habitants de ta putain de ville natale. +[BNK4_13:BANKJ4] +Je vais aller voir où il se planque. -[SAYO_16:RAYS1] -Hé ! Va tirer un coup, ça te calmera ! +[BK4_14A:BANKJ4] +Ca roule, Phil? -[SAYO_17:RAYS1] -On parle business. J'te propose un deal : +[BNK4_15:BANKJ4] +Pas de problème. Tout le monde se tient relax. -[SAYO_18:RAYS1] -J'te garantis que les flics s'occupent pas d'toi, les Fédéraux, Rico... +[BNK4_16:BANKJ4] +Toi! Tu viens avec moi! -[SAYO_19:RAYS1] -Et toi, tu m'garantis que je recevrai c'que j'aime. +[BNK4_17:BANKJ4] +D'accord! D'accord! Ne tirez pas! -[SAYO_20:RAYS1] -Et comment je sais que j'vais pas m'faire racketter +[BNK4_18:BANKJ4] +J'AI DIT PERSONNE NE BOUGE! -[SAYO_21:RAYS1] -par tous les flics pourris entre ici et Vice City ? +[BK4_19A:BANKJ4] +C'est réglé sur une serrure à horloge, -[SAYO_22:RAYS1] -Je t'aiderai à t'emparer de cette ville. +[BK4_19B:BANKJ4] +Vous feriez aussi bien d'abandonner tout de suite! -[SAYO_23:RAYS1] -En échange, je veux juste un peu de thune et quelques services. +[BK4_20A:BANKJ4] +Putain, je peux court-circuiter l'horloge, -[SAYO_24:RAYS1] -Allez, Toni, viens faire un tour avec moi... +[BK4_20B:BANKJ4] +on a juste besoin de ton code secret et c'est bingo! -[SAYO_25:RAYS1] -On va aller voir tes vieux potes, les Sindacco. +[BNK4_21:BANKJ4] +Reste ici. T'essayes quoi que ce soit et t'es mort! Pigé? -[SAYO_10:RAYS1] -- J'aime bien les mecs à principes. ~n~ - Ben, moi aussi. Je vais à leur enterrement dans des caisses de sport avec des super canons. +[BK4_24A:BANKJ4] +Je vais voir Phil, je reviens tout de suite. -[RS1_YK:RAYS1] -Dégâts +[BK4_24B:BANKJ4] +Je t'avais dit de pas toucher à cette alarme! -[RS1_01:RAYS1] -Liquide les ~r~Sindacco ! +[BNK4_25:BANKJ4] +Le commando du SWAT sera là d'une minute à l'autre! -[RS1_02:RAYS1] -~r~La voiture a été détruite ! +[BNK4_27:BANKJ4] +J'aurais besoin d'un coup de main, Tommy! -[RS1_03:RAYS1] -~r~Les Yakuzas se sont faits massacrer ! +[BNK4_28:BANKJ4] +Ici le SWAT de Vice City! Vous êtes complètement encerclés! -[RS1_04:RAYS1] -~w~Descends quelques ~r~Sindacco ~w~pour attirer leur attention. +[BNK4_29:BANKJ4] +Encerclés? HA HA HA HAAAAAaaa! -[RS1_05:RAYS1] -~w~Monte dans la ~b~caisse de Leon. +[BNK4_30:BANKJ4] +Ils racontent que des conneries, ces ripoux! -[RS1_06:RAYS1] -~w~Dirige-toi vers le ~y~territoire des Sindacco. +[BK4_31A:BANKJ4] +Tommy! La salle des coffres est ouverte! -[RS1_07:RAYS1] -~w~Retourne à la ~b~bagnole. +[BK4_34A:BANKJ4] +Ok, on a la caisse de retraite du SWAT! Tirons-nous de là! -[RS1_10:RAYS1] -~r~T'as tué Leon ! +[BK4_34B:BANKJ4] +Bon, vous l'aurez cherché! C'était votre dernière chance! -[RAYS1AA:RAYS1] -OK, moi, je prends le volant ! Toi, tu les flingues ! +[BK4_35A:BANKJ4] +Ils lancent l'assaut! -[RAYS1AB:RAYS1] -T'avais pas dit que les Yakuzas feraient le gros boulot ? +[BK4_35B:BANKJ4] +Planquez-vous! -[RAYS1AC:RAYS1] -S'adapter et survivre, Cipriani. S'adapter et survivre... +[BNK4_36:BANKJ4] +Où est Cam? -[RAYS1BA:RAYS1] -Merde, là, c'est un peu trop pour moi. +[BNK4_37:BANKJ4] +Du passé... -[RAYS1BB:RAYS1] -Va falloir que j'y aille, Toni, on se voit plus tard ! +[BNK4_38:BANKJ4] +C'était le dernier! On dégage! Allez! -[RAYS1CA:RAYS1] -Juste devant, Toni ! +[BNK_39:BANKJ4] +Merde! Où est Hilary? -[RAYS1CB:RAYS1] -Derrière nous, Toni, derrière ! +[BK4_40A:BANKJ4] +Il me payera ça! -[RAYS1CC:RAYS1] -Fais gaffe sur la gauche ! +[BNK4_42:BANKJ4] +Hé! Les mecs! Montez! Je vous couvre! -[RAYS1CD:RAYS1] -Sur la droite, Toni, la droite ! +[BNK4_44:BANKJ4] +On a réussi! On est riches! RICHES! -[RAYS1CE:RAYS1] -Retourne à la voiture ! +[BNK4_45:BANKJ4] +Dommage que Cam y soit resté, c'était un mec réglo! -[RAYS1CF:RAYS1] -Fais gaffe à ce que tu fais ! +[BNK4_46:BANKJ4] +Ouais. Enfin... On hérite de sa part! -[RAYS1OS:RAYS1] -Oh merde ! +[BNK4_47:BANKJ4] +Tu l'as dit! Ouais! -{=================================== MISSION TABLE RAYS2 ===================================} +[BNK4_48:BANKJ4] +Tommy, que dirais-tu d'un massage? -[RS2_02:RAYS2] -~w~Vite, monte sur une ~b~moto ! +[BNK4_49:BANKJ4] +Salut, Mercedes! Ouais, pourquoi pas, je me sens un peu tendu... -[RS2_03:RAYS2] -~w~Attire les motards dans la ~y~zone de tir ! +[BNK450A:BANKJ4] +Qu'est-ce que je te disais, Tommy? Hein, quoi? Le SWAT a du souci à se faire quand Kent Paul est en ville. -[RS2_04:RAYS2] -~w~Retourne là-bas, tu ne dois laisser aucun ~r~Forelli ~w~derrière toi ! +[BNK450B:BANKJ4] +Allez, allonge une plus grosse part, mon pote, j'ai besoin de nouvelles fringues! -[RS2_05:RAYS2] -~w~Remonte sur la ~b~moto ! +[BNK4_94:BANKJ4] +~w~Ok, les mecs. Tout roule comme prévu. -[RS2_06:RAYS2] -~r~T'as besoin d'une moto pour attirer les Forelli. +[BM_DEAD:BANKJ4] +~r~T'avais besoin du directeur vivant! -[RS2_07:RAYS2] -~r~Les Yardies veulent faire couler le sang des Forelli eux-mêmes. +[ASSET_A:BANKJ4] +BRAQUAGE DE BANQUE OK! -[RS2_08:RAYS2] -~r~Tous les Yardies ont été tués ! +[ASSET_B:BANKJ4] +~g~Le Malibu Club génère dorénavant un revenu de $~1~ maximum. Pense à récupérer le fric régulièrement. -[RS2_09:RAYS2] -~1~ +[IDIOT:BANKJ4] +~r~T'as raison, trimballe-toi déguisé en malade pour attirer l'attention! Espèce d'abruti! -[RS2_10:RAYS2] -~r~Ils peuvent pas te poursuivre sans motos ! +{=================================== MISSION TABLE BARON1 ===================================} -[RAYS2AA:RAYS2] -T'as pris ton temps, Toni. +[COK1_A:BARON1] +Allez, sale carne, allez! Allez! Putain... -[RAYS2AB:RAYS2] -C'était pour que tu puisses réfléchir. +[COK1_B:BARON1] +Connard de cheval! Je te ferai décapiter! -[RAYS2AD:RAYS2] -Très malin, bon, écoute. +[COK1_C:BARON1] +C'est qui ce con? -[RAYS2AE:RAYS2] -Les Yardies convoitent le territoire des Forelli à Newport. +[COK1_D:BARON1] +Tommy Vercetti, vous vous souvenez de moi? -[RAYS2AF:RAYS2] -Va là-bas et attire les troupes des Forelli jusqu'à l'hôpital de Rockford. +[COK1_E:BARON1] +Excuse-moi, mais j'suis un peu enervé. Fais jamais confiance à une saloperie de canasson! -[RAYS2AG:RAYS2] -Les Yardies les attendront là-bas. +[COK1_F:BARON1] +Tu fais du bon boulot. Maintenant, tu travailles pour moi. -[RAYS2AH:RAYS2] -Qu'est-ce que t'as à y gagner, toi ? +[COK1_H:BARON1] +Comme je disais, amigo, tu bosses pour moi. Maintenant, la ferme! Un salopard m'a trahi! -[RAYS2AI:RAYS2] -J'ai une dette envers eux. Salut. +[COK1_I:BARON1] +Il croit que je sais pas combien de pognon je devrais gagner... Mais me faucher 3%, c'est pareil que d'me faucher 100%! -[RS2_11:RAYS2] -Ne tue aucun Forelli ! +[COK1_J:BARON1] +Personne ne me fait ça! PERSONNE! -[RS2_12:RAYS2] -Elimine-~r~les ! +[COK1_K:BARON1] +Tu vas le suivre depuis son appart' pour voir où il va! On le descendra plus tard. -[RS2_01:RAYS2] -~w~Va voler une des ~b~motos~w~ des Forelli, mais ne tue personne. +[COK1_1:BARON1] +Oh merde! -[RAYS2DB:RAYS2] -Ouais. Allez, c'est parti ! +[COK1_2:BARON1] +Un peu trop lent, papi! -[RS2_13:RAYS2] -~r~Trop de Yardies se sont fait buter ! +[COK1_4:BARON1] +Pauv' mec. -{=================================== MISSION TABLE RAYS3 ===================================} +[COK1_5:BARON1] +Tu ferais mieux de continuer à courir, connard! -[CRAZ_01:RAYS3] -J'comprends pas ce que j'ai fait au bon Dieu pour t'mériter ! +[COK1_8:BARON1] +~g~Vite! Grimpe dans une caisse et suis-le! -[CRAZ_02:RAYS3] -Ray, t'as 40 balais mais t'es aussi naïf qu'un môme ! +[COK1_9:BARON1] +~r~Tu es supposé le suivre, pas le buter! -[CRAZ_03:RAYS3] -J'arrive pas à piger comment t'as tenu jusqu'ici. +[COK1_10:BARON1] +~r~Va à la maison des voleurs et trouve où il planque le fric! -[CRAZ_04:RAYS3] -Incroyable que personne ait encore collé une balle dans ta tronche de Mère Teresa ! +[COK1_11:BARON1] +~g~Regarde par cette fenêtre. -[CRAZ_05:RAYS3] -Fais gaffe à c'que tu dis, Leon... +[COK1_7:BARON1] +~g~Il s'est échappé vers le toit. Suis-le mais ne le tue pas! -[CRAZ_06:RAYS3] -Je comprends pas qu'on soit en train de parler de ça. +[COK1_G:BARON1] +Je travaille pour du fric. -[CRAZ_07:RAYS3] -Tu vas courir dans les jupes de ta mère ? +{=================================== MISSION TABLE BARON2 ===================================} -[CRAZ_08:RAYS3] -Tu vas sauter sur les genoux de ton père ? +[COK2_V:BARON2] +Il commence à me faire confiance... -[CRAZ_09:RAYS3] -Demander un gros câlin ? +[COK2_A:BARON2] +Qui c'est qui m'a foutu un con pareil! -[CRAZ_10:RAYS3] -Salut, Toni ! +[COK2_B:BARON2] +CON! CON! CON! CON! -[CRAZ_14:RAYS3] -Il veut s'assurer que j'applique bien toutes les règles du manuel ! +[COK2_C:BARON2] +Tommy - -[CRAZ_15:RAYS3] -Toni Cipriani, Ray Machowski. +[COK2_D:BARON2] +Quoi, Ricardo? -[CRAZ_16:RAYS3] -Il est avec nous. Bon, on va aller combattre le crime organisé, maintenant. +[COK2_E:BARON2] +Ces merdeux, faut toujours qu'ils essayent de m'baiser... -[CRAZ_17:RAYS3] -Tu fonces au poste de police et tu tapes ton rapport. +[COK2_F:BARON2] +C'est le problème avec ce genre de biz... -[CRAZ_18:RAYS3] -T'es un brave gars... Allez, en route, Toni ! +[COK2_G:BARON2] +Qu'est-ce que tu fous toi? -[CRAZ_19:RAYS3] -T'es qu'une grosse merde, Leon. +[COK2_H:BARON2] +Ces connards m'ont vraiment manqué de respect. -[CRAZ_11:RAYS3] -- Bouge pas, connard ! ~n~ - Hé ! Hé ! Du calme ! J'te présente mon nouveau coéquipier M. Garde-à-vous ! +[COK2_I:BARON2] +Bientôt, le premier connard venu va penser qu'il peut vendre de la dope à Vice City. -[RAYS3_1:RAYS3] -Aide les Yakuzas à s'emparer du territoire tenu par les Forelli, à Belleville Park. Il faut tuer ~1~ Forelli uniquement au katana. +[COK2_J:BARON2] +Et ensuite, ça sera quoi? Ces pourris de la Mafia, hein? -[RAYS3_2:RAYS3] -~w~Tue ~1~ ~r~Forelli~w~ en utilisant seulement le katana. +[COK2_K:BARON2] +Le Q.G. de ce gang est une vrai forteresse au rez-de-chaussée, -[RAYS3_3:RAYS3] -Victimes +[COK2_L:BARON2] +alors Quentin ici... Quentin! QUENTIN! -[RAYS3_4:RAYS3] -~w~Tu dois tuer les ~r~Forelli~w~ avec le katana. +[COK2_M:BARON2] +Il va te faire survoler la zone! -[RAYS3_5:RAYS3] -~w~T'as pas de katana. Trouves-en ~g~un ! +[COK2_N:BARON2] +Liquide-les! -[RAYS3_6:RAYS3] -~r~ Le temps est écoulé. +[COK2_O:BARON2] +Qu'est-ce que tu fous toi? -[RAYS3_7:RAYS3] -~w~Tue ~1~ ~r~Forelli~w~ à l'aide du katana uniquement avant ~1~:~1~. +[COK2_P:BARON2] +Qu'est-ce que tu fous ici? -[RAYS3_8:RAYS3] -~w~Tue ~1~ ~r~Forelli~w~ à l'aide du katana uniquement avant ~1~:0~1~. +[COK2_Q:BARON2] +Hé, je me suis un peu renseigné et c'est sûr -[RAYS3_9:RAYS3] -~w~Tue ~1~ ~r~Forelli~w~ à l'aide du katana uniquement avant 0~1~:~1~. +[COK2_R:BARON2] +que c'est Diaz qui a bousillé le deal et refroidi mon frère! -[RAYS310:RAYS3] -~w~Tue ~1~ ~r~Forelli~w~ à l'aide du katana uniquement avant 0~1~:0~1~. +[COK2_S:BARON2] +Et il va t'buter toi aussi! -{=================================== MISSION TABLE RAYS4 ===================================} +[COK2_T:BARON2] +Je peux me faire Diaz! -[RAYS4_1:RAYS4] -~w~Les Yardies sont attaqués à Newport. Liquide les assaillants ~r~Sindacco. +[COK2_U:BARON2] +Non, écoute-moi! JE m'occupe de Diaz! -[RAYS4_2:RAYS4] -~w~Va parler au ~b~chef des Yardies. +[COK2_1:BARON2] +Il y a un truc que j'pige pas, pourquoi 'Quentin'? -[RAYS4_3:RAYS4] -~w~Suis le ~b~chef des Yardies. +[COK2_2:BARON2] +Je sais pas, ça sonne bien... Quentin Vance... -[RAYS4_4:RAYS4] -~r~Un des Yardies a été tué ! +[COK2_3:BARON2] +Vance? Tu t'appelles Lance Vance? -[RAYS4_5:RAYS4] -~w~Protège les Yardies jusqu'à l'arrivée de l'ambulance ! +[COK2_4:BARON2] +Ca va, hein! J'en ai déjà eu pour mon compte à l'école! -[RAYS4_6:RAYS4] -~w~Retourne là-bas et protège les Yardies ! +[COK2_5:BARON2] +T'as déjà tiré depuis un hélico? -[RAYS4_7:RAYS4] -~w~Dégage le passage pour les Yardies jusqu'à l'ambulance ! +[COK2_8:BARON2] +On va où, au fait? -[RAYS4_8:RAYS4] -~w~Va à la rencontre de ~y~l'ambulance ! +[COK2_9:BARON2] +Prawn Island. -[RAYS4AA:RAYS4] -Cipriani, on peut plus se rencontrer comme ça. +[COK2_13:BARON2] +Lance Vance. Mon pauv' vieux... -[RAYS4AB:RAYS4] -Ca roule pour moi. +[COK2_14:BARON2] +Ok, on y est presque. -[RAYS4AC:RAYS4] -Allez, relax, mec. +[COK2_15:BARON2] +On va faire un ou deux passages, -[RAYS4AD:RAYS4] -Qu'est-ce que t'as pour moi, McAffrey ? +[COK2_16:BARON2] +Alors, descends autant de tireurs que tu peux. -[RAYS4AE:RAYS4] -Les Yardies ont quelques difficultés à tenir leur nouveau territoire à Newport. +[COK2_17:BARON2] +Et puis je te dépose et tu te débrouilles tout seul. -[RAYS4AF:RAYS4] -On dirait que les Sindacco veulent le reprendre. +[COK2_20:BARON2] +Merde, c'est la guerre en bas! Descends ces tireurs! -[RAYS4BA:RAYS4] -Mon pote Rudyard s'est fait allumer ! +[COK2_21:BARON2] +On s'fait canarder, mec! -[RAYS4BB:RAYS4] -Faut lui dégotter une ambulance ! +[COK2_22:BARON2] +Ca coûte un max de réparer c'coucou, alors bute-les! -[RAYS4BC:RAYS4] -Merde, voilà d'autres tarés de Sindacco ! +[COK2_23:BARON2] +Bon, t'es tout seul à partir de là. Bonne chance, mon frère! -[RAYS4BD:RAYS4] -Je vais chercher l'ambulance ! Toi, t'aides mes gars ! +[COK2_24:BARON2] +Etat hélico : -[RAYS4BE:RAYS4] -Tirons-nous d'ici ! +[COK2_25:BARON2] +~g~Va récupérer le pognon sur le toit. -[RAYS4BF:RAYS4] -Voilà l'ambulance ! +[COK2_27:BARON2] +T'es sur MES plates-bandes, connard! -[RAYS4BG:RAYS4] -Merci, M. Cipriani, on a une dette envers vous ! +[COK2_28:BARON2] +Ta fin est proche! -{=================================== MISSION TABLE RAYS5 ===================================} +[COK2_6:BARON2] +Non. Je vais m'entraîner un peu en chemin. -[RAYS5AA:RAYS5] -Alors quoi, pas de fleurs ? +[OPEN_B:BARON2] +Les barrières sur les routes pour le centre ville ont été retirées. -[RAYS5AB:RAYS5] -Je savais pas que c'était tes funérailles. +{=================================== MISSION TABLE BARON3 ===================================} -[RAYS5AC:RAYS5] -T'es un vrai comédien, Toni, un grand comique. +[COK3_A:BARON3] +Tu fais moins le fier maintenant, hein! -[RAYS5AD:RAYS5] -Les Forelli plaisantent plus, là. +[COK3_B:BARON3] +Ahahahaha, ahahahaha! -[RAYS5AE:RAYS5] -Ils trafiquent des armes et prélèvent une part de la marchandise... +[COK3_C:BARON3] +Ho! Fais gaffe où tu braques ce truc! -[RAYS5AF:RAYS5] -en prévision des ennuis. +[COK3_D:BARON3] +Plus de merde de pigeon sur ma bagnole, hein, Tommy! -[RAYS5AG:RAYS5] -Ils transportent les armes à Fort Staunton dans des camions. +[COK3_E:BARON3] +Faut croire que non... -[RAYS5AH:RAYS5] -C'était un plaisir... +[COK3_F:BARON3] +T'as sacrément raison. Bon, écoute, -[RAYS5AI:RAYS5] -Ouais, pareil. +[COK3_G:BARON3] +tu sais qui possède le bateau le plus rapide de la côte est? -[RAY5_2:RAYS5] -Ils ont appelé des renforts. +[COK3_H:BARON3] +Je suis pas bien sûr. -[RAY5_3:RAYS5] -~r~Les Forelli ont les munitions ! +[COK3_I:BARON3] +MOI! Et je voudrais pas que ça change... -[RAY5_4:RAYS5] -C'est Cipriani ! +[COK3_J:BARON3] +Tous les contrebandiers d'ici à Caracas ne rêvent que d'un seul truc, un bateau plus rapide que le mien. -[RAY5_5:RAYS5] -Butez-le ! +[COK3_K:BARON3] +Et la rumeur prétend que le chantier naval Hull-o-caust vient juste d'en finir un -[RAY5_6:RAYS5] -Un de moins ! Maintenant, détruis l'autre ~r~camion ! +[COK3_L:BARON3] +pour le compte de je ne sais quel connard du Costa Rica. -[RAY5_1:RAYS5] -Détruis les ~r~camions~w~ avant qu'ils n'arrivent à destination ! +[COK3_M:BARON3] +Alors, Tommy... JE VEUX CE BATEAU! -[RAY5_7:RAYS5] -Détruis le ~r~camion~w~ avant qu'ils ne déchargent suffisamment de munitions. +[COK3_N:BARON3] +Je crois que tes pigeons sont de retour... -[RAY5_8:RAYS5] -~r~Tu n'as pas détruit le camion à temps ! +[COK3_O:BARON3] +Ah! Je croyais que je t'avais eu! D'où tu sors? -{=================================== MISSION TABLE SALH1 ===================================} +[COK3_P:BARON3] +Pigeons d'mes deux! Boum! Aaaaah! -[SLH1_F1:SALH1] -~r~T'as tué un des Hoods. +[COK3_5:BARON3] +~g~Trouve l'interrupteur pour abaisser le bateau. -[SLH1_F2:SALH1] -~w~Attire les Forelli en bousillant leurs ~r~caisses. +[COK3_6:BARON3] +~g~Amène le bateau à la résidence. -[SLH1_F3:SALH1] -~w~Venge-toi des ~r~Forelli. +[COK3_7:BARON3] +~r~T'as détruit le bateau! -[SLH1_F4:SALH1] -~w~Attire d'autres Forelli en bousillant une autre ~r~caisse. +[COK3_8:BARON3] +~g~Va au chantier naval des docks et fauche le bateau le plus rapide. -[SLH1_F5:SALH1] -~w~Abandonne pas les ~b~Hoods ! +[COK3_9:BARON3] +~g~Monte dans le bateau. -[SLH1_B0:SALH1] -~w~OK, mec, on va exploser cette ville. +{=================================== MISSION TABLE BARON4 ===================================} -[SLH1_B1:SALH1] -~w~Hé, reviens ici, connard ! +[COK4_A:BARON4] +Ejection! Connerie d'engin! -[SLH1_B2:SALH1] -~w~Oh, tu déconnes ou quoi ? J'vais jamais pouvoir carrer mon cul là-dedans ! +[COK4_B:BARON4] +Pourquoi tu m'fais ça? -[SLH1_B3:SALH1] -~w~T'as raison, t'as absolument besoin de moi ! +[COK4_C:BARON4] +Pour qui tu t'prends, putain de magnéto! Grrr! -[SLH1_B4:SALH1] -~w~Ouah, trop fort, mec ! +[COK4_D:BARON4] +ENCULE! -[SLH1_B5:SALH1] -~w~Merde, je supporte pas ces Ritals ! +[COK4_E:BARON4] +Si il m'bouffe ma cassette préférée d'El burro, il est fini! -[SLH1_B6:SALH1] -~w~... sauf toi, Toni. +[COK4_F:BARON4] +Qu'est-ce que je peux faire d'autre? -[SLH1_B7:SALH1] -~w~Le moment est venu pour les Hoods de se lever et de réagir ! +[COK4_G:BARON4] +Il doit pas être branché, c'est tout... -[SLH1_B8:SALH1] -~w~Allez ! On va les exploser ! +[COK4_H:BARON4] +Hein? -[SLH1_C0:SALH1] -~w~Mon frère ! +[COK4_I:BARON4] +Merde! Tant pis, j'peux m'en acheter cent si ça me chante. -[SLH1_C1:SALH1] -~w~Yo ! Minus ! Où tu vas ? +[COK4_J:BARON4] +Bon, Tommy, -[SLH1_C2:SALH1] -~w~Et où c'est que j'suis supposé me mettre, moi ? +[COK4_K:BARON4] +tous les mois, il y a un indépendant qui met le cap sur Vice City pour y amarrer son yatch. -[SLH1_C3:SALH1] -~w~T'as raison, t'as absolument besoin de moi ! +[COK4_L:BARON4] +Il vend sa cargaison au premier bateau. -[SLH1_C4:SALH1] -~w~Merde ! Ca rigole pas dans cette ville ! +[COK4_M:BARON4] +Je veux que tu prennes le speedboat, -[SLH1_D0:SALH1] -~w~Hé ! C'est ma caisse ! +[COK4_N:BARON4] +que tu largues tous les autres connards intéressés -[SLH1_D1:SALH1] -~w~Je la préfère comme ça ! +[COK4_O:BARON4] +et que tu ramènes la cargaison ici. Ok? -[SLH1_E0:SALH1] -~w~Y se passe quoi ici ? +[COK4_P:BARON4] +Laisse-moi deviner. T'as pensé que je pourrais avoir besoin d'un ange-gardien. -[SLH1_E1:SALH1] -~w~On va vous virer de là, voilà ce qui se passe ! +[COK4_Q:BARON4] +Je dis juste que t'as intérêt à me laisser entrer, mon pote. -[SLH1_F0:SALH1] -~w~Passe chercher les ~b~Hoods~w~ et attire l'attention des ~r~Forelli. +[COK4_R:BARON4] +Tu peux m'sortir tout un tas de conneries sur le dur solitaire, -[RUFJ_01:SALH1] -C'est votre avocat, M. Leone. +[COK4_S:BARON4] +mais je sais qu'un de ces quatre, j'vais t'sauver la mise. -[RUFJ_02:SALH1] -J'sais parfaitement qui c'est... +[COK4_T:BARON4] +et qu'après tu voudras me rouler une pelle! -[RUFJ_03:SALH1] -Allez, laisse-moi un peu tranquille. +[COK4_U:BARON4] +Taré, va! -[RUFJ_04:SALH1] -Allez, petit, va faire un tour et dis bonjour à ta mère, capici ? +[COK4_V:BARON4] +Hahahaha -[RUFJ_05:SALH1] -D'accord... Vous avez 5 minutes. +[COK4_1:BARON4] +Tommy, on sait que c'est Diaz qui a fait foirer notre deal... -[RUFJ_06:SALH1] -Bon, euh, Lionel, t'as l'air en forme. +[COK4_3:BARON4] +Alors pourquoi on bosse pour sa gueule? -[RUFJ_07:SALH1] -Regarde-moi ! +[COK4_4:BARON4] +Plus on en apprend maintenant, plus on en saura quand on s'emparera de cette ville! -[RUFJ_08:SALH1] -Un membre honorable de la communauté, et j'me retrouve en taule. +[COK4_5:BARON4] +J'aime bien ton style, mon pote. Vraiment culotté. -[RUFJ_09:SALH1] -Un vrai défi à ma nature philanthropique ! +[COK4_12:BARON4] +Fais gaffe, ils arrivent de partout! -[RUFJ_10:SALH1] -C'est sûr, M. Leone. +[COK4_13:BARON4] +On les a eu! Fonce chez Diaz aussi vite que tu peux! -[RUFJ_11:SALH1] -On fait tout ce qu'on peut pour vous faire sortir d'ici et... euh... +[COK4_14:BARON4] +Tu veux ta part de plancton? -[RUFJ_12:SALH1] -pour que vous reveniez aider votre communauté le plus vite possible. +[COK4_15:BARON4] +Salue la poiscaille de ma part! -[RUFJ_13:SALH1] -J'espère bien. +[COK4_16:BARON4] +Mange! Mange! -[RUFJ_14:SALH1] -Je ferai un procès à quelqu'un pour cette injustice ! +[COK4_19:BARON4] +Encore des emmerdes droit devant! -[RUFJ_15:SALH1] -Ces connards de Sindacco ou ces enculés de Forelli, qui c'est qui m'a fait ça ? +[COK4_20:BARON4] +Il y a des porte-flingues sur cette jetée! -[RUFJ_16:SALH1] -Qui a craché le morceau ? +[COK4_24:BARON4] +Joli coup, mon pote. T'es vraiment un cinglé de première! -[RUFJ_18:SALH1] -On va tous les attaquer. +[COK4_25:BARON4] +Ah... Merci. -[RUFJ_19:SALH1] -A mon avis, ils ont besoin d'une bonne branlée pour ce coup de pute ! +[COK4_26:BARON4] +A la prochaine, Tommy. -[RUFJ_22:SALH1] -Merci, Toni. Tu comptes beaucoup pour moi, tu le sais. +[COK4_27:BARON4] +Okay, M. Lance Vance Danse. -[RUFJ_23:SALH1] -Ecoute, t'auras p'têt besoin d'renforts. +[COK4_28:BARON4] +~g~Atteins le yatch avant les autres bateaux! -[RUFJ_24:SALH1] -Fais appel aux Hoods. OK ? +[COK4_31:BARON4] +~g~Va jusqu'au bateau le plus rapide de la jetée! -[RUFJ_25:SALH1] -Tout c'que vous voudrez, M. Leone. +[COK4_32:BARON4] +~r~Trop lent! -[RUFJ_26:SALH1] -OK... Allez, barre-toi d'ici... Lionel. +[COK4_33:BARON4] +~r~T'as détruit le bateau! -[RUFJ_20:SALH1] -- Les enculés. ~n~ - Ce sera avec plaisir. +[COK4_34:BARON4] +~g~Bousille ces bateaux! -{=================================== MISSION TABLE SALH2 ===================================} +[COK4_35:BARON4] +Etat du bateau : -[SALH2AA:SALH2] -~w~Hé, Sal ! C'est moi... Toni. +{=================================== MISSION TABLE BARON5 ===================================} -[SALH2AB:SALH2] -~w~Toni ! Ca fait plaisir d'entendre ta voix, petit. +[PROP_A:BARON5] +PROPRIETE ACHETEE! -[SALH2AC:SALH2] -~w~Ces abrutis me laissent voir personne ! +[COK4_30:BARON5] +~r~Lance est mort! -[SALH2AD:SALH2] -~w~Ecoute, j'ai des tas d'affaires à régler. +[ASS1_A:BARON5] +J'ai récupéré des flingues. Ils sont dans l'coffre. -[SALH2AE:SALH2] -~w~Paulie Sindacco, par exemple. Sa famille est finie dans cette ville. +[ASS1_B:BARON5] +Merde alors! Où c'est que t'as dégoté tout ça? -[SALH2AF:SALH2] -~w~Mais il croit pouvoir se tirer comme ça, comme s'il avait aucune dette. +[ASS1_C:BARON5] +Je l'gardais au frais pour une grande occasion... -[SALH2AG:SALH2] -~w~Je suis en taule à cause de cet enfoiré ! +[ASS1_D:BARON5] +Ca te botte? -[SALH2AH:SALH2] -~w~Règle son compte à ce fils de pute. +[ASS1_E:BARON5] +Tu parles que ça m'botte. -[SALH2O1:SALH2] -~w~Intercepte Paulie Sindacco à la ~y~centrale de Cochrane Dam. +[ASS1_F:BARON5] +Espèce de connard... -[SALH2F1:SALH2] -~r~Il a filé ! Salvatore va pas être content ! +[ASS1_G:BARON5] +Ma belle maison... -[SALH2CA:SALH2] -~w~Bande de nazes ! C'est Toni Cipriani ! Butez-le ! +[ASS1_H:BARON5] +Regarde ce que t'en as fait! -[SALH2BA:SALH2] -~w~Hé, Toni ! Pourquoi tu viens pas à la nage me lécher le cul ? +[ASS1_I:BARON5] +Ca c'est pour mon frère! -[SALH2BB:SALH2] -~w~Hé, par ici, connard ! +[ASS1_J:BARON5] +Je te faisais confiance, Tommy... -[SALH2BI:SALH2] -~w~Salue Salvatore de ma part. Je lui enverrai une carte postale ! +[ASS1_K:BARON5] +Je t'aurais aidé à devenir... -[SALH2BC:SALH2] -~w~Qu'est-ce que tu vas faire, maintenant, toquard ? +[ASS1_L:BARON5] +Bonne nuit, Diaz. -[SALH2BE:SALH2] -~w~T'es mort ! +[ASS1_1:BARON5] +Cet endroit va bientôt grouiller de salopards... Fais gaffe. -[SALH2BF:SALH2] -~w~T'es que dalle ! +[ASS1_2:BARON5] +T'en fais pas, Tommy, je te couvre. -[SALH2BG:SALH2] -~w~Surprise ! Ordure ! +[ASS1_4:BARON5] +Diaz doit être à l'intérieur! -[SALH2BH:SALH2] -~w~Avis à la populace, Paulie Sindacco vient de faire sa sortie ! +[ASS1_13:BARON5] +DIAZ! Je suis venu reprendre ton affaire! -[SALH2BD:SALH2] -~w~T'as aucune chance de m'attraper, connard ! +[ASS1_14:BARON5] +TOMMY! Tu me trahis... Idiot! Je vais te buter tout de suite! -[SALH2O2:SALH2] -~w~Tue ~r~Paulie Sindacco~w~. Ne le laisse pas s'enfuir ! +[ASS1_16:BARON5] +~g~Tue Diaz! -[SALH2O3:SALH2] -Trouve une caisse et tends une embuscade à ~r~Paulie~w~ depuis la côte. +[BUD1:BARON5] +Lance -{=================================== MISSION TABLE SALH3 ===================================} +[ASS1_18:BARON5] +~g~La porte est verrouillée. Trouve un autre chemin. -[SALH3_1:SALH3] -~w~Sal ? Comment ça va ? +[ASS1_19:BARON5] +Par ici! -[SALH3_2:SALH3] -~w~Je m'éclate à mort ! +[ASS1_20:BARON5] +Tommy, mon problème c'est Quentin, pas toi, mec! -[SALH3_3:SALH3] -~w~Primo, le nouveau maire empêche ma remise en liberté sous caution. +{=================================== MISSION TABLE BIKE1 ===================================} -[SALH3_4:SALH3] -~w~Secundo, on doit se battre contre les Triades et les Diablos. +[BM1_A:BIKE1] +Où est Baker? -[SALH3_5:SALH3] -~w~Tertio, y a ces putains de Yakuzas qui vont essayer de prendre le contrôle de la ville. +[BM1_B:BIKE1] +Je cherche Big Mitch Baker... -[SALH3_6:SALH3] -~w~A part ça, c'est le pied ! +[BM1_C:BIKE1] +Qui le cherche? -[SALH3_7:SALH3] -~w~Après toutes ces années de contrôle de la famille, c'est la chasse et le fond des chiottes ! +[BM1_D:BIKE1] +Tommy Vercetti. -[SALH38:SALH3] -~w~J'peux m'occuper de tout ça, boss. +[BM1_E:BIKE1] +Vercetti... -[SALH39:SALH3] -~w~Les Yakuzas ont un stock d'armes à Aspatria. +[BM1_F:BIKE1] +T'as pas l'air d'un flic, ce qui te donne droit à une minute... -[SALH310:SALH3] -~w~Plus rien peut les arrêter ! +[BM1_G:BIKE1] +T'as intérêt à faire court! -[SALH311:SALH3] -~w~C'est ce qu'on va voir. +[BM1_H:BIKE1] +Kent Paul dit que ça pourrait t'intéresser de te charger de la sécurité pour un boulot qu'il prépare. -[SALH3_A:SALH3] -~w~Fais un tour au ~y~complexe des Yakuzas. +[BM1_I:BIKE1] +Kent Paul? Ah! Pas étonnant qu'il t'ai envoyé. -[SALH3C1:SALH3] -~w~Trouve un accès au ~y~complexe. +[BM1_J:BIKE1] +La dernière fois qu'il est passé ici, il en est ressorti par la fenêtre avec rien d'autre que son costume d'anglais. -[SALH3C2:SALH3] -~w~Bordel de merde ! J'y crois pas ! +[BM1_K:BIKE1] +Bon, t'es intéressé ou pas? -[SALH3C3:SALH3] -~w~Détruis le ~r~blindé ! +[BM1_L:BIKE1] +On ne rend des services qu'à ceux qui font partie de la bande. -[SALH3C4:SALH3] -~w~Mais qu'est-ce que... ? +[BM1_M:BIKE1] +Comment je me joins à vous? -[SALH3C5:SALH3] -~w~Butez-le ! +[BM1_N:BIKE1] +On est pas un club de loisirs, mon pote! Tu peux conduire une bécane? -[SALH3C6:SALH3] -~w~Le ~r~blindé ~w~est à l'épreuve des armes normales. Elles ne lui feront même pas une égratignure ! +[BM1_O:BIKE1] +Tu peux t'asseoir sur un tabouret de bar et boire? -[SALH3G1:SALH3] -~w~Hé, 'l'ami', t'as rien à faire là ! +[BM1_P:BIKE1] +Cougar, Zeppelin, allez voir comment elle se débrouille sur une bécane... -[SALH3G2:SALH3] -~w~Cette cour est réservée aux Yakuzas. +[BM1_2:BIKE1] +~g~Il te faut une Freeway ou une Angel pour participer! -[SALH3G3:SALH3] -~w~Vire ton cul de là ! +[BM1_3:BIKE1] +~r~Les concurrents ont été attaqués! -[SALH3_B:SALH3] -~w~Ils se sont fait avoir par la voiture des Yakuzas ! +[BIKE1_1:BIKE1] +Bon, chouettes fringues. Voyons ce que tu peux faire. -[SALH3_C:SALH3] -~w~Conduis jusqu'au ~y~complexe~w~ et va jeter un coup d'oeil. +[BM1_1:BIKE1] +~g~Enfourche une Freeway ou une Angel et va sur la grille de départ. -{=================================== MISSION TABLE SALH4 ===================================} +{=================================== MISSION TABLE BIKE2 ===================================} -[SALH4_1:SALH4] -~w~Sal ? Vous êtes là ? +[BM2_4:BIKE2] +~r~Tu n'as pas rempli le chaosmètre à temps! -[SALH4_2:SALH4] -~w~Toni ! Je vais sortir ! +[BM2_1:BIKE2] +CHAOSMETRE : -[SALH42A:SALH4] -~w~C'est aujourd'hui la lecture de mon acte d'accusation ! +[BM2_A:BIKE2] +Ha ha ha, je t'ai encore eu! -[SALH4_3:SALH4] -~w~Super ! +[BM2_B:BIKE2] +Hé, Vercetti. -[SALH44C:SALH4] -~w~Ouais, Toni. Fais comme tu veux. +[BM2_C:BIKE2] +Cougar dit que tu te débrouilles plutôt bien sur une bécane. -[SALH44E:SALH4] -~w~Bon, y a les gardiens qui s'amènent... Je te retrouve devant. +[BM2_D:BIKE2] +Ouais, mais combien d'épreuves il va encore falloir que je me tape? -[SALH4_5:SALH4] -~w~Trouve une voiture de police ! +[BM2_E:BIKE2] +Je suis très occupé, mon pote. -[SALH45A:SALH4] -~w~T'as besoin d'une voiture de police pour pas alerter le convoi ! +[BM2_F:BIKE2] +Si c'est une baston qui peut régler la question, alors amène-toi! -[SALH4_6:SALH4] -~w~Mets-toi en position au ~y~poste de police. +[BM2_G:BIKE2] +Devenir l'un d'entre nous, c'est pas qu'une question de baston. C'est appartenir à une famille. -[SALH4_7:SALH4] -~w~Bordel de merde ! +[BM2_H:BIKE2] +Ouais, j'ai déjà appartenu à une famille avant et ça n'a pas bien collé. -[SALH4_8:SALH4] -~w~Protège le ~b~fourgon~w~, il doit arriver en un seul morceau ! +[BM2_I:BIKE2] +Peut-être, mais notre famille veille sur les siens. -[SALH4_9:SALH4] -~w~Laisse pas trop de champ au ~b~fourgon ! +[BM2_J:BIKE2] +On demande à personne de faire le sale boulot pour l'abandonner au trou pendant quinze ans... -[SALH410:SALH4] -~w~Tu vas perdre le ~b~fourgon ! +[BM2_K:BIKE2] +Et ouais, je me suis renseigné. -[SALH411:SALH4] -~r~T'as perdu le fourgon ! Sal a été exécuté ! +[BM2_L:BIKE2] +Ce que tu vois, c'est la plus grande famille d'inadaptés, de parias et d'ordures qui existe. -[SALH412:SALH4] -~r~Le fourgon a été détruit ! +[BM2_M:BIKE2] +Certains ont même été trahis par leur propre pays! -[SALH413:SALH4] -~w~Enerve pas les flics ou les chances de libération sous caution de Sal s'envoleront ! +[BM2_N:BIKE2] +On m'a foutu en taule pendant la guerre du Vietnam! Saloperie... -[SALH416:SALH4] -~w~Escorte le ~b~convoi~w~ jusqu'à sa destination. +[BM2_O:BIKE2] +Voilà pourquoi je vais te demander d'aller foutre le bordel. -[SALH417:SALH4] -~r~T'as tout foiré ! Les flics ont annulé l'audition au tribunal ! +[BM2_P:BIKE2] +Ce pays de merde a vraiment besoin d'un coup de pied au cul et c'est nous qui allons le lui donner! -[SALH420:SALH4] -~r~Sal a été tué ! +[BM2_Q:BIKE2] +Alors sors de là, attrape une bécane et montre à cette ville à quel point t'es énervé! -[SALH421:SALH4] -~r~T'as perdu le fourgon ! +[BM2_R:BIKE2] +D'accord. -[SALH422:SALH4] -~w~Sème les flics ou tu vas attirer trop d'attention sur le convoi ! +[BM2_2:BIKE2] +~g~Tu dois remplir le chaosmètre dans le temps imparti pour nous prouver que t'es un dur de dur! -[SALH424:SALH4] -~w~Elimine le ~y~barrage routier ! +[BM2_3:BIKE2] +~g~Ce bruit veut dire qu'une partie du chaosmètre est remplie, continue comme ça. -[SALH415:SALH4] -~w~Ca fait du bien de se sentir libre. +{=================================== MISSION TABLE BIKE3 ===================================} -[SALH418:SALH4] -~w~Bon, écoute, je vais rentrer à la maison et me débarrasser de ces fringues qui puent, OK ? +[BM3_A:BIKE3] +Salut, Mitch. -[SALH419:SALH4] -~w~Je te retrouve là-bas. +[BM3_B:BIKE3] +Hé! Mais c'est ce gros méchant de Vercetti! -[SALH414:SALH4] -~w~Barrage routier hors-la-loi signalé dans le secteur... +[BM3_C:BIKE3] +Maintenant, je veux voir à quel point tu peux te battre pour ton secteur. -[SALH44A:SALH4] -~w~Avec moi coincé ici, qui va les empêcher de prendre le contrôle ? +[BM3_D:BIKE3] +Un gang local a commis l'erreur de me faucher ma bécane... -[SALH4_4:SALH4] -~w~Ouais, mais j'ai comme l'impression que les Siciliens ne veulent pas que j'arrive jusqu'au tribunal. +[BM3_E:BIKE3] +Probablement un truc de machos ou quelque chose de ce genre. -[SALH44B:SALH4] -~w~Hé, ils devront d'abord me passer sur le corps, Sal. +[BM3_F:BIKE3] +Moi et mes gars, on pourrait aller leur donner la leçon qu'ils méritent... -[SALH44D:SALH4] -~w~Débrouille-toi simplement pour que j'aie droit à mon procès ! +[BM3_G:BIKE3] +Enfin... -{=================================== MISSION TABLE SALH5 ===================================} +[BM3_H:BIKE3] +Je me suis dit que ça serait une excellente initiation pour toi. -[SALH51A:SALH5] -~w~Fonce, Toni ! +[BM3_I:BIKE3] +Tu me ramènes ma bécane et tu pourras dire à Paul qu'on assurera la sécurité. -[SALH51B:SALH5] -~w~Si je me trompe pas, les Siciliens vont s'en prendre au maire. +[BM3_2:BIKE3] +~r~Tu étais supposé ramener la bécane, pas la bousiller! -[SALH51C:SALH5] -~w~Il faut l'atteindre avant eux. +[BM3_3:BIKE3] +~g~Ramène la bécane au bar! -[SALH511:SALH5] -~w~C'est pas bon, ça... +[BM3_4:BIKE3] +~g~Monte sur la bécane! -[SALH554:SALH5] -~w~Accélère, Toni ! +[INTRUDE:BIKE3] +~g~T'as été repéré! -[SALH512:SALH5] -~w~T'as abandonné ~b~Sal~w~ ! Retourne le chercher ! +[BM3_6:BIKE3] +~g~Ils se planquent derrière Ammu-Nation dans le centre. -[SALH513:SALH5] -~w~C'est pas vrai ! Y sont déjà là ! +[BM3_7:BIKE3] +~g~T'auras besoin d'une bécane rapide pour accéder au toit. -[SALH560:SALH5] -~w~Massacre-les, Toni ! +[BM3_8:BIKE3] +~g~Sers-toi de la bécane pour sauter de ces marches jusqu'à l'autre côté de la route. -[SALH561:SALH5] -~w~Je vais chercher le maire ! +[BM3_1:BIKE3] +~g~Un gang local a volé l'Angel de Mitch Baker. Récupère-la! -[SALH514:SALH5] -~w~Ces enfoirés l'ont déjà emmené ! +[BM3_9:BIKE3] +~g~Récupère l'Angel de Mitch Baker et dégage de là! -[SALH555:SALH5] -~w~Vite, Toni ! Par là ! +{=================================== MISSION TABLE BMX_1 ===================================} -[SALH515:SALH5] -~w~Les voilà ! +[BMX_REC:BMX_1] +~g~Nouveau record établi : ~1~! -[SALH517:SALH5] -~w~D'où ils sortent, ces bâtards ? +[GETBIK2:BMX_1] +Tu as ~1~ secondes pour enfourcher une bécane! -[SALH556:SALH5] -~w~Derrière nous, Toni ! +{=================================== MISSION TABLE BOATBUY ===================================} -[SALH562:SALH5] -~w~Toni, juste devant ! +[DRUG_1:BOATBUY] +Bonjour? Y'a quelqu'un? Y'A QUELQU'UN??? -[SALH519:SALH5] -~w~Toni ! Descends l'hélico ! +[DRUG_2:BOATBUY] +Ferme-la. Il y a un mec, ici. -[SALH522:SALH5] -~w~Ils croient pouvoir se planquer dans le phare ! +[DRUG_3:BOATBUY] +Hé, mon pote! T'es le nouveau proprio? -[SALH557:SALH5] -~w~Bute ces connards ! +[DRUG_4:BOATBUY] +Ouais. Lequel de ces bateaux est le plus rapide? -[SALH558:SALH5] -~w~Bien visé, Toni ! +[DRUG_5:BOATBUY] +Il est déjà à l'eau, mon pote, -[SALH559:SALH5] -~w~Maintenant, finissons-en ! +[DRUG_6:BOATBUY] +je me suis dit que tu voudrais peut-être l'essayer. -[SALH526:SALH5] -~w~Je conduis et toi, tu nous couvres ! +[DRUG_7:BOATBUY] +Mon pote, il est déjà équipé d'un moteur de 300 chevaux... -[SALH527:SALH5] -~w~OK, Toni... On y est. +[DRUG_8:BOATBUY] +...et avec la coque en fibre de verre, il touche même pas l'eau! -[SALH528:SALH5] -~w~Ils sont combien ces bâtards sur ce rocher ? +[DRUG_9:BOATBUY] +Il monte à 60 noeuds en quatre secondes, mon pote... -[SALH553:SALH5] -~w~Tu butes un de ces enfoirés et t'en as direct un autre sur le dos ! +[DRUG_10:BOATBUY] +Et il peut embarquer vingt écopes de la meilleure jamaïquaine dans la coque. -[SALH523:SALH5] -~r~T'as laissé Salvatore se faire buter par les Siciliens ! +[DRUG_11:BOATBUY] +Alors vas-y, mon pote, il t'attend pour décoler! -[SALH524:SALH5] -~r~Salvatore a été tué ! +[DRUG_12:BOATBUY] +Ouais, hé, mon pote, t'as du feu? -[SALH552:SALH5] -~r~Le maire a été tué ! +[DRUG_13:BOATBUY] +Mec? -[SALH573:SALH5] -~r~T'as bousillé ton bateau ! Tu les as perdus ! +{=================================== MISSION TABLE CAP_1 ===================================} -[SALH516:SALH5] -~w~Liquide les gardes et suivons-les dans ce bateau ! +[CAP1_B1:CAP_1] +~g~La mafia taxe tes commerces. Trouve-les et bute-les. -[SALH518:SALH5] -~w~Un autre ~r~bateau~w~ arrive... +[CAP1_B2:CAP_1] +~g~La mafia taxe le chantier naval! -[SALH525:SALH5] -~w~Ha ! Ils ont laissé un lance-roquettes ici ! +[CAP1_B3:CAP_1] +~g~La mafia taxe l'usine de crème glacée! -[SALH520:SALH5] -~y~Je vais me rapprocher de la rive pour plus de protection ! Descends-le ! +[CAP1_B4:CAP_1] +~g~La mafia taxe la concession automobile! -[SALH521:SALH5] -~w~Bien joué ! En route ! +[CAP1_B5:CAP_1] +~g~La mafia taxe la compagnie de taxis! -[SALH53A:SALH5] -~w~Torini... J'aurais dû m'en douter... +[CAP_01:CAP_1] +Ok, où est l'urgence? -[SALH53B:SALH5] -~w~Lâche-le ! +[CAP_02:CAP_1] +QUI? -[SALH53C:SALH5] -~w~Le maire est à moi ! +[CAP_03:CAP_1] +Tommy... Des truands de la mafia... Ils ont dit qu'ils venaient prendre leur part... -[SALH53D:SALH5] -~w~Cette VILLE est à moi ! +[CAP_04:CAP_1] +... Ils ont dit que c'était le pognon de Mr Forello... J'me sens mal... -[SALH53E:SALH5] -~w~Salvatore... +[CAP_05:CAP_1] +Forelli? SONNY Forelli? -[SALH53F:SALH5] -~w~Les Siciliens voulaient pas questo schifo di citta. +[CAP_06:CAP_1] +Ouais, c'est ça... je crois... Ils ont beaucoup insisté... -[SALH53G:SALH5] -~w~Mais les tributs ont diminué, qu'est-ce qu'on pouvait faire...? +[CAP_07:CAP_1] +T'inquiète pas, je suis pas en colère contre toi. -[SALH53H:SALH5] -~w~Y avait rien de personnel... +[CAP_08:CAP_1] +Emmène-le à l'hosto. -[SALH53I:SALH5] -~w~Rien de personnel ? +[CAP_09:CAP_1] +Tommy... Taille un nouveau trou du cul à ce salopard de ma part... -[SALH53J:SALH5] -~w~Après tout ce que j'ai subi !? +[CAP_10:CAP_1] +Je vais lui en rajouter deux! -[SALH53K:SALH5] -~w~J'vais t'arracher le coeur ! +[CAP1_2:CAP_1] +Tu connais la règle, Vercetti! -[SALH5TD:SALH5] -~w~Descends l'~r~hélicoptère de Massimo ! +[CAP1_3:CAP_1] +Avec les compliments de M. Forelli! -[SALH5MO:SALH5] -~r~Massimo~w~ se barre ! +[CAP1_4:CAP_1] +C'est le boucher d'Harwood! -[SALH5GO:SALH5] -~r~Massimo s'est tiré ! +[CAP1_5:CAP_1] +Tu diras à Sonny... de dégager! -[SALH571:SALH5] -~w~Va à la ~y~jetée. +[CAP1_6:CAP_1] +Vice City est à moi, désormais, pas à lui! -[SALH570:SALH5] -~w~Descends ces ~r~gangsters siciliens ! +[CAP1_7:CAP_1] +Tu crois que tu peux m'avoir, Vercetti? -[SALH572:SALH5] -~w~Descends ce ~r~Sicilien ! +[CAP1_8:CAP_1] +On va continuer à s'amener jusqu'à ce que tu sois raide mort, Vercetti! -[SALH510:SALH5] -~w~Va à la ~y~mairie~w~. Et fais gaffe aux Siciliens que tu pourrais croiser ! +[CAP1_9:CAP_1] +T'as pas une chance, connard psychotique! -[SICI_01:SALH5] -Non, on en parlera plus tard... +[CAP1_10:CAP_1] +Je vais te descendre, Vercetti! -[SICI_04:SALH5] -On est tous les deux de retour ! Toi et moi ! +[CAP1_11:CAP_1] +T'as toujours été un con! -[SICI_05:SALH5] -On a réussi, pas vrai ? +[CAP1_12:CAP_1] +Tu vas crever, Vercetti! -[SICI_06:SALH5] -Comme tu dis ! +[CAP1_B6:CAP_1] +~g~Tu as trouvé l'encaisseur. Tue-le. -[SICI_07:SALH5] -On a nettoyé les Forelli. +[CAP1_B7:CAP_1] +~g~Tu as perdu l'encaisseur. -[SICI_08:SALH5] -On a balancé les Sindacco à la baille. +[CAP1_B8:CAP_1] +~r~L'encaisseur a taxé toutes tes affaires. -[SICI_09:SALH5] -Et là, j'ai les Siciliens au téléphone qui veulent faire la paix. +[CAP1_B9:CAP_1] +~g~La mafia a taxé le Malibu! -[SICI_10:SALH5] -On veut tous la paix ! Mais la mienne de paix, pas leur putain de paix à eux ! +[CAP1_B0:CAP_1] +~g~La mafia a taxé le studio de cinéma! -[SICI_11:SALH5] -C'est moi le caïd, maintenant. +[CAP1_C2:CAP_1] +~g~La mafia est arrivée au chantier naval! -[SICI_12:SALH5] -Et c'est pas un connard de Sicilien qui va me dire quoi faire. +[CAP1_C3:CAP_1] +~g~La mafia est arrivée à l'usine de crème glacée! -[SICI_13:SALH5] -J'leur ai dit d'aller se faire mettre. +[CAP1_C4:CAP_1] +~g~La mafia est arrivée à la concession automobile! -[SICI_14:SALH5] -Vous avez fait ça ? Vous êtes sûr de votre coup ? +[CAP1_C5:CAP_1] +~g~La mafia est arrivée à la compagnie de taxis! -[SICI_15:SALH5] -Hé, c'est moi le boss, maintenant. MOI ! +[CAP1_C9:CAP_1] +~g~La mafia est arrivée au Malibu! -[SICI_16:SALH5] -Allez, on va voir le maire pour l'abandon des charges contre moi... +[CAP1_C0:CAP_1] +~g~La mafia est arrivée au studio de cinéma! -[FIN1_01:SALH5] -Hé ! M'sieur le maire ! +[CAP1_D2:CAP_1] +~g~La mafia quitte le chantier naval! -[FIN1_03:SALH5] -Ouais, merci. +[CAP1_D3:CAP_1] +~g~La mafia quitte l'usine de crème glacée! -[FIN1_04:SALH5] -Ce qui implique... +[CAP1_D4:CAP_1] +~g~La mafia quitte la concession automobile! -[FIN1_05:SALH5] -Euh... que la ville vous est reconnaissante ? +[CAP1_D5:CAP_1] +~g~La mafia quitte la compagnie de taxis! -[FIN1_06:SALH5] -Essayez encore. +[CAP1_D9:CAP_1] +~g~La mafia quitte le Malibu! -[FIN1_07:SALH5] -Que vous travaillez pour moi ? +[CAP1_D0:CAP_1] +~g~La mafia quitte le studio de cinéma! -[FIN1_08:SALH5] -Ah, oui, que je travaille pour vous. +[CAP1B10:CAP_1] +Tu t'es occupé des taxeurs. Y'en a d'autres qui arrivent. -[FIN1_09:SALH5] -Bene. N'appelez pas. On vous contactera. +{=================================== MISSION TABLE CARBUY ===================================} -[FIN1_10:SALH5] -Maintenant, du balai, connard. +[CAR1_1:CARBUY] +B.J. Smith. Et vous devez être Mr Vercetti. -[FIN1_11:SALH5] -Merci, M. Leone. +[CAR1_2:CARBUY] +Vous voulez visiter? -[FIN1_12:SALH5] -Toni. On a réussi. On est aux commandes. Toi et moi. +[CAR1_3:CARBUY] +Pourquoi pas? -[FIN1_13:SALH5] -On fait une sacrée équipe, hein ? +[CAR1_4:CARBUY] +Vous savez, je suis bien triste de vendre l'affaire... -[FIN1_14:SALH5] -Bon, j'ai juste besoin que tu fasses un petit truc pour moi... +[CAR1_5:CARBUY] +C'était mon premier investissement de professionnel. -[FIN1_15:SALH5] -J'ai quelques problèmes à régler... +[CAR1_6:CARBUY] +Mais l'heure est venue pour moi de continuer ma route. -[FIN2_01:SALH5] -Salut, zio ! Comment va ? +[CAR1_7:CARBUY] +Vous quittez la ville? -[FIN2_02:SALH5] -T'as l'air en forme. +[CAR1_8:CARBUY] +Pas trop pressé, j'espère? -[FIN2_03:SALH5] -Ahhhh Salvatore, nous ne souhaitons que la clarté. +[CAR1_9:CARBUY] +Non, je sors juste de ma retraite et je prépare mon retour dans les affaires. -[FIN2_04:SALH5] -Oui, zio, j'apprécie. +[CAR1_10:CARBUY] +Cette affaire était pas trop solide, -[FIN2_07:SALH5] -Bene, bene. +[CAR1_11:CARBUY] +mais mon personnel a pris sur lui de faire un peu plus -[FIN2_08:SALH5] -Petit bâtard sournois... +[CAR1_12:CARBUY] +créatif en ce qui concerne les méthodes pour devenir rentable. -[FIN2_09:SALH5] -Impossible de faire confiance à ce mec. +[CAR1_13:CARBUY] +Evidemment, je pourrais démanteler l'affaire avant de la refiler. -[FIN2_23:SALH5] -On ne sait jamais ce qui peut arriver... +[CAR1_14:CARBUY] +Merde, je pourrais y foutre le feu si ça me chantait. -[FIN2_10:SALH5] -Ouais, mais on a réussi. +[CAR1_15:CARBUY] +C'est un terrain de premier ordre. -[FIN2_11:SALH5] -Ouais, on a tout nettoyé. T'as fait du bon boulot, Toni. Bien joué ! +[CAR1_16:CARBUY] +Oh, je ne m'en ferais pas pour ça. -[FIN2_12:SALH5] -J'ai toujours su que t'étais un gars bien. Tu m'as sauvé la peau plusieurs fois. +[CAR1_17:CARBUY] +Cet endroit me semble idéal. -[FIN2_13:SALH5] -Et c'est le genre de loyauté que j'apprécie. +[CAR1_18:CARBUY] +Ouais, il l'est, alors, marché conclu? -[FIN2_14:SALH5] -Merci. +{=================================== MISSION TABLE CARPAR1 ===================================} -[FIN2_15:SALH5] -Un bon travailleur. J'aime ça. Ca mérite le respect. +[MM_1_A:CARPAR1] +~g~Récupère ~y~5 points de passage~r~ SANS ~g~renverser de ~r~CONES! ~g~Tu peux les récupérer dans ~y~N'IMPORTE QUEL ORDRE. -[FIN2_19:SALH5] -Pour toi, l'amitié a un prix ? +[CONE_1:CARPAR1] +~r~Tu as renversé un cône! -[FIN2_20:SALH5] -C'est ça, l'amitié qui nous unit, toi et moi ? - -[FIN2_21:SALH5] -Tu devrais avoir honte. Amène-toi. - -[FIN2_22:SALH5] -T'es un brave gars, mais tu devrais avoir honte... - -[SICI_02:SALH5] -- Hé, Toni ! ~n~ - Sal ! Vous êtes de retour à la maison ! - -[FIN2_05:SALH5] -- Alors, es-tu en paix avec la Sicile ? ~n~ - Bien entendu. Moi et tous mes gars. - -[FIN2_16:SALH5] -- Et ce demi million que je t'avais promis. ~n~ - Demi ? Hé ! J'croyais... euh... Vous aviez pas dit deux millions ? - -[FIN2_18:SALH5] -J'ai dit un million de dollars ! Et alors ? - -[FIN1_02:SALH5] -On vient de vous sauver d'une bande de tarés de Siciliens. - -{=================================== MISSION TABLE DONH1 ===================================} - -[DONH1JA:DONH1] -~w~Toni, mon ancien mentor, Avery Carrington, arrive en ville par avion aujourd'hui... - -[DONH1JB:DONH1] -~w~J'ai appris qu'il travaille pour la Panlantic Corporation. - -[DONH1JC:DONH1] -~w~Ils ne reculent devant rien pour acquérir de belles propriétés. - -[DONH1JD:DONH1] -~w~Nous devons en apprendre plus sur leurs projets immobiliers. - -[DONH1JE:DONH1] -~w~Allez, Toni ! Suis-le ! - -[DONH1CA:DONH1] -~w~Euh, Toni, un moyen de transport serait une aubaine. - -[DONH1DA:DONH1] -~w~Va vers l'aéroport, Toni. - -[DONH1DB:DONH1] -~w~On n'a pas une minute à perdre. - -[DONH1EA:DONH1] -~w~Oh oui, c'est un de mes plus beaux plans, sans aucun doute... - -[DONH1EB:DONH1] -~w~Je n'aurais jamais cru avoir ça en moi... - -[DONH1EC:DONH1] -~w~Voilà qui va faire ma fortune... - -[DONH1ED:DONH1] -~w~Ouais, une vraie fortune... - -[DONH1EE:DONH1] -~w~Même Avery serait fier de moi. - -[DONH1GA:DONH1] -~w~Le voilà ! - -[DONH1GB:DONH1] -~w~Tue-le, Toni ! - -[DONH1GC:DONH1] -~w~Il me faut ces plans ! - -[DONH1HA:DONH1] -~w~Vite, Toni... Il s'échappe ! - -[DONH1IA:DONH1] -~w~Vite, c'est capital, Toni ! C-A-P-I-T-A-L ! - -[DONH1IB:DONH1] -~w~Maintenant, allons mettre ça à l'abri, dans mon... hum... domicile. - -[DONH1O0:DONH1] -~w~Conduis Donald Love à ~y~l'aéroport. - -[DONH1O1:DONH1] -~w~Tue ~r~Avery Carrington~w~ et prends ses plans ! - -[DONH1O2:DONH1] -~r~Avery~w~ tente de filer ! Arrête-le ! - -[DONH1O3:DONH1] -~r~Avery~w~ a une autre caisse. Ne le laisse pas se barrer ! - -[DONH1O4:DONH1] -~r~Avery~w~ essaie de se tirer ! Stoppe-le ! - -[DONH1O5:DONH1] -~w~Embarque ~b~Donald Love. - -[DONH1O6:DONH1] -~w~Bien joué ! Récupère les ~g~plans. - -[DONH1O7:DONH1] -~w~Ramène Donald et les plans à ~y~l'asile de nuit. - -[DONH1O8:DONH1] -~w~T'as laissé tomber les ~g~plans~w~! Retourne les chercher. - -[DONH1OA:DONH1] -~w~Ils t'ont repéré ! ~r~Avery~w~ essaie de s'enfuir ! Bute-le ! - -[DONH1OB:DONH1] -~w~T'as besoin d'un véhicule. - -[DONH1OC:DONH1] -~w~Ne perds pas ~b~Donald ! - -[DONH1OD:DONH1] -~w~Fais gaffe ! Les plans seront perdus si tu détruis la ~r~caisse d'Avery~w~ en même temps que lui ! - -[DONH1OE:DONH1] -~r~Avery Carrington~w~ s'échappe. Rattrape-le ! - -[DONH1F0:DONH1] -~r~Les plans ont été détruits ! - -[DONH1F1:DONH1] -~r~Avery Carrington s'est tiré ! - -[DONH1F2:DONH1] -~r~Donald a été tué ! - -[DONH1OF:DONH1] -~r~Avery Carrington~w~ est presque arrivé à destination. Arrête-le ! - -[DONH1O9:DONH1] -~w~N'abandonne pas ~b~Donald~w~ ! Ces Colombiens vont le tuer ! - -[DONH1FA:DONH1] -~w~Hum... Panlantic a dû recruter le Cartel pour protéger Avery. - -[LAND_01:DONH1] -Je sais ce que tu penses, Toni... Comment j'ai pu en arriver là ? - -[LAND_02:DONH1] -Mais c'est juste un faux pas... momentané... - -[LAND_03:DONH1] -OK. - -[LAND_04:DONH1] -Oh, sois pas si susceptible. - -[LAND_05:DONH1] -Je sais que j'ai pas été très sympa en disant que c'était ta faute, - -[LAND_06:DONH1] -mais l'orgueil est un sentiment qui mine... comme les termites. - -[LAND_07:DONH1] -Crois-moi, j'ai essayé les deux, récemment. - -[LAND_08:DONH1] -Sois patient, on n'a pas dit notre dernier mot ! - -[LAND_09:DONH1] -Je me suis pas barré... - -[LAND_10:DONH1] -On est ensemble sur ce coup, amigo. - -[LAND_11:DONH1] -Non, c'est des conneries. - -[LAND_12:DONH1] -S'il te plaît ! - -[LAND_13:DONH1] -S'il te plaît... S'il te plaît... Laisse tomber, mon pote. - -[LAND_18:DONH1] -Viens, je t'en dirai plus en chemin. - -[LAND_19:DONH1] -J'espère que t'as ta caisse. La mienne est... hum... au garage ! - -[LAND_16:DONH1] -- 10 % de quoi ? Ca ? Oh, t'es trop généreux. ~n~ - Pas de ça... de la grosse galette. - -[LAND_14:DONH1] -- 'C'est entièrement ta faute.' Pathétique. ~n~ - 10 % ? - -{=================================== MISSION TABLE DONH2 ===================================} - -[DONH2_1:DONH2] -~w~Va à ~y~l'église~w~ de Staunton Island. - -[DONH2_2:DONH2] -~w~Frappe le ~r~journaliste ~w~ou menace-le avec un flingue pour lui extorquer les photos. - -[DONH2_3:DONH2] -~w~T'as des photos de moi. Où elles sont ? - -[DONH2_4:DONH2] -~w~Ne me faites pas de mal ! - -[DONH2_5:DONH2] -~w~Où sont ces putains de photos ? - -[DONH2_6:DONH2] -~w~Je ne sais pas de quoi vous parlez ! - -[DONH2_7:DONH2] -~w~Où elles sont ? - -[DONH2_8:DONH2] -~w~Non, je vous en prie ! - -[DONH2_9:DONH2] -~w~Allez, pauvre naze, file-les-moi ! - -[DONH210:DONH2] -~w~OK ! OK ! - -[DONH2EX:DONH2] -~w~Je vais vous donner les photos ! - -[DONH211:DONH2] -~w~... J'ai caché le film dans mon box ! - -[DONH212:DONH2] -~w~Va au ~y~box du journaliste. - -[DONH213:DONH2] -~w~Au secours ! On m'enlève ! - -[DONH214:DONH2] -~w~Au secours ! Il va me tuer ! - -[DONH215:DONH2] -~w~... Je suis trop doué pour mourir ! - -[DONH216:DONH2] -~w~... Je peux pas mourir, j'ai pas fini mon roman ! - -[DONH217:DONH2] -~w~Mon éditeur ne m'avait rien dit de cette merde ! - -[DONH218:DONH2] -~w~Bouge pas d'un pouce, connard ! - -[DONH219:DONH2] -~w~Arrête-toi là, tête de con ! - -[DONH220:DONH2] -~w~Non mais tu vas arrêter d'essayer de te barrer ! ? - -[DONH221:DONH2] -~w~Toni ! Enfin ! - -[DONH222:DONH2] -~w~Un journaliste nous a vus buter Avery ! - -[DONH223:DONH2] -~w~Il a pris des photos ! Putain, je suis fini ! - -[DONH224:DONH2] -~w~Du calme ! Il est où ce journaliste ? - -[DONH225:DONH2] -~w~Oh, Toni, tu es formidable ! - -[DONH226:DONH2] -~w~Apparemment, il est en reportage sous couverture à l'église de Staunton Island. - -[DONH227:DONH2] -~w~Récupère les photos et enterre-le ! - -[DONH228:DONH2] -~r~Ned a filé ! - -[DONH230:DONH2] -~w~Tue ~r~Ned Burner. - -[DONH231:DONH2] -~r~Ned est mort avant de te donner les photos ! - -[DONH229:DONH2] -CONNERIES - -[DONCUTA:DONH2] -~w~Les voilà... Prenez-les ! Je les ai pas encore tirées. - -[DONCUTB:DONH2] -~w~Sale petite merde ! - -[DONH2SM:DONH2] -Trouillomètre - -[DONH233:DONH2] -Continue à intimider le journaliste. Si son trouillomètre diminue trop, il essaiera de filer. - -[DONH2LB:DONH2] -~w~T'as laissé le ~b~journaliste ~w~derrière toi. Retourne le chercher. - -[DONH2LC:DONH2] -~r~T'as perdu le journaliste. - -{=================================== MISSION TABLE DONH3 ===================================} - -[DONH3I1:DONH3] -~w~Je suis de retour ! - -[DONH3I2:DONH3] -~w~Revenu d'entre les morts, Toni ! Ressuscité, comme le phoenix de ses cendres ! - -[DONH3I3:DONH3] -~w~Comme Lazare... oui... Lazare Love ! - -[DONH3I4:DONH3] -~w~Ah, je vais redevenir riche ! - -[DONH3I5:DONH3] -~w~Panlantic va me payer une fortune pour conclure l'affaire ! - -[DONH3I6:DONH3] -~w~On a réussi, Toni ! - -[DONH3I7:DONH3] -~w~Mouais... - -[DONH3I8:DONH3] -~w~L'heure est venue de faire une petite fête avec une liste d'invités exclusifs. - -[DONH3I9:DONH3] -~w~Viens ! - -[DONH3C1:DONH3] -~w~Il nous faut un moyen de transport, Toni. On a pas beaucoup de temps. - -[DONH3L1:DONH3] -~w~T'as besoin de ~b~Donald~w~. Retourne le chercher ! - -[DONH3L2:DONH3] -~w~Allez, Toni ! Le temps presse ! - -[DONH3L3:DONH3] -~w~Ramène le cadavre ! - -[DONH3_5:DONH3] -~w~Toni, je meurs d'envie de faire la fête. - -[DONH35D:DONH3] -~w~Tout comme mes invités. - -[DONH35A:DONH3] -~w~Trouve un ~b~cadavre. - -[DONH35B:DONH3] -~w~Récupère le ~b~cadavre d'Avery. - -[DONH35C:DONH3] -~w~Récupère le ~b~cadavre de Ned. - -[DONH3_6:DONH3] -~w~Conduis Donald et Avery à ~y~l'aéroport. - -[DONH36A:DONH3] -~w~Hé ! Ramenez cette ambulance ! - -[DONH36B:DONH3] -~w~Avery. - -[DONH36C:DONH3] -~w~Oh, Avery ! T'as pris de la bouteille depuis notre dernière rencontre. - -[DONH36D:DONH3] -~w~... toi qui aimais tant m'abreuver des gouttes de ta sagesse... - -[DONH36E:DONH3] -~w~... je vais enfin pouvoir boire à ma soif ! - -[DONH36F:DONH3] -~w~... Bon Dieu ! Il porte une perruque ! - -[DONH36G:DONH3] -~w~Toni ! Conduis-nous, Avery et moi, à son jet privé à l'aéroport. - -[DONH3_7:DONH3] -~w~Conduis Donald et Ned à l'~y~aéroport. - -[DONH37F:DONH3] -~w~Toni ! Conduis-nous, Ned et moi, à l'aéroport. - -[DONH37A:DONH3] -~w~Hé ! Ce mec vole le cadavre ! - -[DONH37B:DONH3] -~w~Ah, Ned Burner, le grand journaliste. - -[DONH37C:DONH3] -~w~Ah, Ned... Je souhaite t'accorder l'exclusivité pour - -[DONH37D:DONH3] -~w~le reportage sur ma super fête. - -[DONH37E:DONH3] -~w~Tu sais que je n'inviterais pas n'importe qui à ma petite sauterie. - -[DONH37G:DONH3] -~w~Y en a qui seraient prêts à mourir pour être invités. - -[DONH3_8:DONH3] -~w~Conduis le cadavre d'Avery à l'~y~aéroport. - -[DONH3_9:DONH3] -~w~Conduis le cadavre de Ned à l'~y~aéroport. - -[DONH3A1:DONH3] -~w~Ramène les vieux restes pourris et puants d'Avery ici, avant que la sécurité nous découvre. - -[DONH3A2:DONH3] -~w~Son autopsie est imminente. - -[DONH3N1:DONH3] -~w~Débrouille-toi pour amener le cadavre de Ned Burner ici, avant que la sécurité nous découvre. Ils vont bientôt l'enterrer. - -[DONH3F1:DONH3] -~r~Love est mort. - -[DONH3F2:DONH3] -~r~Tu as perdu le corps d'Avery ! - -[DONH3F3:DONH3] -~r~Tu as perdu le corps de Ned ! - -[DONH3C2:DONH3] -~w~La sécurité de l'aéroport fermera le hangar d'Avery Carrington à 22:00. - -[DONH3F4:DONH3] -~r~Trop tard ! La sécurité de l'aéroport a fermé le hangar ! - -[DONH3F5:DONH3] -~r~Trop tard ! La sécurité de l'aéroport a trouvé Donald et le cadavre d'Avery ! - -[DONH3W1:DONH3] -~w~Vite ! La sécurité de l'aéroport fermera le hangar d'Avery Carrington à 22:00. - -[DONH3F6:DONH3] -~r~Trop tard ! La sécurité de l'aéroport a trouvé Donald avec le cadavre de Ned ! - -{=================================== MISSION TABLE DONH4 ===================================} - -[DONH4A:DONH4] -~w~Donald m'envoie chercher du... euh... matériel... - -[DONH4B:DONH4] -~w~OK. - -[DON4EX1:DONH4] -~w~J'ai ce qu'il vous faut, mais ça va vous coûter cher. - -[DON4EX2:DONH4] -~w~Don a dit que t'allais me payer et qu'il te rembourserait ensuite. - -[DONH4C:DONH4] -~w~Ben voyons... - -[DONH4D:DONH4] -~w~Ouais, c'est ça, t'as qu'à le mettre à l'ordre de 'M. Va t'faire mettre' ! - -[DONH4E:DONH4] -~w~Bon, où est le matos ? - -[DONH4F:DONH4] -~w~Hé, fiston, ce genre de matériel prend du temps à assembler ! - -[DON4EX4:DONH4] -~w~Je te tiens au courant. - -[DONH4G:DONH4] -Mission réussie ! - -[DONH4PS:DONH4] -~w~8-Ball te contactera lorsque le matériel sera prêt. - -{=================================== MISSION TABLE DONH5 ===================================} - -[DONH5_0:DONH5] -Camionnette - -[DNH5_A0:DONH5] -~w~Ecoute, cette camionnette est chargée à bloc. Tu vois ce que j'veux dire ? Alors, vas-y mollo. - -[DNH5_A1:DONH5] -~w~Ouais ? Tout est OK. - -[DNH5_A2:DONH5] -~w~Ouais, j'vous le passe. - -[DNH5_A3:DONH5] -~w~Toni, on n'est qu'à un petit boulot de rien du tout d'une fabuleuse fortune. - -[DNH5_A4:DONH5] -~w~On a épluché les plans de Fort Staunton. Ses points faibles se trouvent le long du vieux métro qui passe sous le secteur. - -[DNH5_A5:DONH5] -~w~Super, Don ! Tout ce que j'ai à faire, c'est d'éviter une centaine de cinglés d'Italiens. - -[DNH5_A6:DONH5] -~w~Longe simplement Porter Tunnel et tout ira comme sur des roulettes. - -[DNH5_B0:DONH5] -~w~Hé, vous ! Vous avez rien à faire ici ! - -[DNH5_B1:DONH5] -~w~Dégagez de là ! - -[DNH5_C0:DONH5] -~w~Monte dans la ~b~camionnette. - -[DNH5_C4:DONH5] -~w~Pose les ~y~explosifs ! - -[DNH5_C5:DONH5] -~w~Pose les ~y~explosifs~w~ restants ! - -[DNH5_C6:DONH5] -~w~Tire-toi par la ~y~bouche du métro ! - -[DNH5_D0:DONH5] -~w~Les Forelli ? Qu'est-ce qu'ils font ici ? - -[DNH5_D1:DONH5] -~w~Ne laisse pas les Forelli détruire la camionnette ! - -[DNH5_1:DONH5] -~w~Utilise un véhicule pour défoncer les portes. - -[DONH5_2:DONH5] -~w~Vas-y plus fort ! - -[DNH5_X0:DONH5] -~r~T'as bousillé la camionnette ! - -[DNH5_C1:DONH5] -~w~Remonte dans la ~b~camionnette. - -[DNH5_C2:DONH5] -~w~Dirige-toi vers l'une des ~y~entrées du Porter Road Tunnel. - -[DNH5_C3:DONH5] -~w~Suis le ~y~tunnel. - -[DNH5_E0:DONH5] -~w~Tue ces ~r~ouvriers en bâtiment. - -[DNH5_E1:DONH5] -~w~Tue cet ~r~ouvrier en bâtiment. - -[DNH5_E2:DONH5] -~w~Les Forelli ont bloqué le passage. Trouve une autre ~y~issue. - -[DNH5_E3:DONH5] -~w~Utilise un véhicule pour dégommer les portes et atteindre la ~y~sortie. - -[DNH5_X1:DONH5] -~r~Les Forelli ont bousillé la camionnette ! - -[DNH5_W1:DONH5] -~w~Ne t'éloigne pas trop de la ~b~camionnette ! - -[DNH5_E4:DONH5] -~w~Ne laisse aucun ~r~témoin. - -{=================================== MISSION TABLE DONH6 ===================================} - -[DONH6_V:DONH6] -~r~v1.00 - -[DONH6_1:DONH6] -~w~Va au ~y~manoir. - -[DONH6_5:DONH6] -~w~Oh, non ! Toni ! Fais quelque chose ! - -[DONH6_6:DONH6] -~w~Il te reste ~1~ secondes pour retourner dans le parc ! - -[DONH6_7:DONH6] -Temps de Retour - -[DONH6_8:DONH6] -~r~T'as pas réussi à rentrer au manoir... Donald a été exécuté ! - -[DONH610:DONH6] -~w~Trouve une caisse ! - -[DONH611:DONH6] -~w~Oh non, en voilà d'autres ! - -[DONH624:DONH6] -~w~Fonce, Toni ! - -[DONH612:DONH6] -~w~On a réussi ! - -[DONH623:DONH6] -~w~Conduis-moi au jet d'Avery. Ned et lui sont toujours à bord, alors je voyagerai pas seul. - -[DONH622:DONH6] -~w~Va au ~y~jet d'Avery. - -[DONH613:DONH6] -~w~Allons à l'aéroport. - -[DONH625:DONH6] -~w~Fonce à ~y~l'aéroport. - -[DONH615:DONH6] -~w~T'as abandonné ~b~Donald~w~ ! Retourne le chercher ! - -[DONH619:DONH6] -~r~Donald a été tué ! - -[DONH6_9:DONH6] -~w~Don ? Allez, en route ! - -[DONH614:DONH6] -~w~T'es sûr que c'est sans risque, Toni ? - -[DONH616:DONH6] -~w~Oh... mon... JARDIN ! - -[DOH616A:DONH6] -~w~Tu as vu ce que tu as fait de mon beau jardin !?! - -[DONH617:DONH6] -~w~Don... On contemple le paysage ou on dégage ? A vous de voir. - -[DONH618:DONH6] -~w~Conduis-moi à l'aéroport ! - -[DONH620:DONH6] -~w~J'aime pas les 'au revoir', mon ami. - -[DOH620A:DONH6] -~w~Disons-nous simplement 'adieu'. - -[DONH621:DONH6] -~w~Don... Vous m'avez beaucoup appris. - -[DONH66S:DONH6] -~w~Tu as ~1~ seconde pour retourner dans le parc ! - -[DONH66A:DONH6] -~w~Tue ces ~r~gangsters colombiens ! - -[DONP_01:DONH6] -Papillons... Pa... pillons... papi... non, ça va pas. - -[DONP_02:DONH6] -Ohmmmmmmmm. Merde. - -[DONP_03:DONH6] -C'est tellement... Oh, merde, si j'avais un truc froid pour me pelotonner tout contre, - -[DONP_06:DONH6] -Antonio ! Oh, je cherche juste l'illumination spirituelle, - -[DONP_07:DONH6] -si tu veux tout savoir, mais c'est pas pour aujourd'hui. - -[DONP_08:DONH6] -Peut-être demain. - -[DONP_09:DONH6] -Vous aviez l'air angoissé dans votre message. - -[DONP_10:DONH6] -Angoissé ? Je médite... angoissé, moi ? - -[DONP_11:DONH6] -Je ne fais qu'un avec l'univers. C'est impossible. - -[DONP_12:DONH6] -Euh, bon, c'est vrai. - -[DONP_13:DONH6] -Hum, y a une bande de Colombiens qui rapplique ici - -[DONP_14:DONH6] -pour me descendre si je refuse de la fermer et de passer à la caisse. - -[DONP_15:DONH6] -Oh, alors, j'comprends mieux pourquoi tous ces Colombiens traînent dehors. - -[DONP_16:DONH6] -Oh merde ! Je t'en supplie, Antonio, tu dois m'aider à sortir d'ici ! - -[DONP_17:DONH6] -Je veux pas... S'il te plait ! Je veux pas mourir ! Je veux... - -[DONP_18:DONH6] -L'univers et vous, vous êtes plus potes, c'est ça ? - -[DONP_19:DONH6] -Merci, Toni ! Je te promets... T'auras pas à le regretter ! - -[DONP_04:DONH6] -- ce serait facile... ~n~ - Quoi d'neuf, Don ? - -{=================================== MISSION TABLE TOSH1 ===================================} - -[TOSH1AB:TOSH1] -~w~Arrêtez-le ! - -[TOSH1AC:TOSH1] -~w~Chopez-le ! - -[TOSH1AD:TOSH1] -~w~Butez-le ! - -[TOSH1AA:TOSH1] -~w~Le voilà ! - -[TOSH120:TOSH1] -~w~Vole la ~b~cargaison d'armes~w~ des Yakuzas, à Bedford Point. - -[TOSH121:TOSH1] -~w~Tu dois encore passer les ~r~gardes Yakuzas. - -[TOSH122:TOSH1] -~w~Prends garde aux autres ~r~bateaux Yakuzas. - -[TOSH130:TOSH1] -~w~Apporte les armes au ~y~contact de Toshiko. - -[TOSH131:TOSH1] -~w~Retourne à la ~b~cargaison d'armes. - -[TOSH1BA:TOSH1] -~w~C'est de la super artillerie qu'on a là, fiston ! - -[TOSH1BB:TOSH1] -~w~Tu sais, je fais tellement d'affaires sur ces docks que j'aurais dû m'installer ici, - -[TOSH1BC:TOSH1] -~w~et pas à mi-chemin de cette saleté d'île ! - -[TOSH1BD:TOSH1] -~w~Bon, ben, c'était sympa ! - -[TOSH1DB:TOSH1] -~r~Les armes ont été détruites ! - -[TOSH1PH:TOSH1] -~w~Les Yakuzas garderont leur cargaison. Tu devras peut-être passer à l'armurerie de Phil Cassidy en chemin. - -[DEAD_01:TOSH1] -Alors c'est ça, le dur à cuire ? - -[DEAD_02:TOSH1] -Vous n'avez pas l'air si dur. - -[DEAD_03:TOSH1] -... Merci. - -[DEAD_04:TOSH1] -Savez-vous ce que c'est que de vivre sans amour, Toni-san ? - -[DEAD_05:TOSH1] -C'est vivre avec la haine... - -[DEAD_06:TOSH1] -Je vous crois sur parole. - -[DEAD_07:TOSH1] -Mon voeu le plus cher est de détruire un homme, M. Cipriani. - -[DEAD_08:TOSH1] -Le détruire... pas simplement le tuer... - -[DEAD_09:TOSH1] -Je veux que lui et toute son organisation soient affaiblis et humiliés avant de mourir. - -[DEAD_10:TOSH1] -Je veux qu'il souffre. - -[DEAD_11:TOSH1] -OK. - -[DEAD_12:TOSH1] -Cet homme que vous devez détruire est mon mari : Kazuki Kasen. - -[DEAD_13:TOSH1] -Ne vous inquiétez pas. - -[DEAD_14:TOSH1] -Vous serez généreusement récompensé pour vos services. - -[DEAD_15:TOSH1] -Et si je refuse ? - -[DEAD_16:TOSH1] -Vous ne refuserez pas... Car sa mort vous est nécessaire... - -[DEAD_17:TOSH1] -En fait, vous lui avez déjà porté un sérieux coup, M. Cipriani. - -[DEAD_18:TOSH1] -Mais il attend une autre livraison de munitions aujourd'hui. - -[DEAD_19:TOSH1] -Je veux que vous lui voliez ces armes juste sous son stupide nez. - -{=================================== MISSION TABLE TOSH2 ===================================} - -[TOSH2AA:TOSH2] -~w~Toni-san. - -[TOSH2AL:TOSH2] -~w~Vos actions ont rendu mon mari fou de rage. - -[TOSH2AB:TOSH2] -~w~Ses hommes et lui sont apparus tels qu'ils sont, - -[TOSH2AM:TOSH2] -~w~une bande d'imbéciles. - -[TOSH2AC:TOSH2] -~w~J'adore faire plaisir. Quelle est la suite, princesse ? - -[TOSH2AE:TOSH2] -~w~Mon mari va transporter une grande quantité d'argent depuis son casino. - -[TOSH2AF:TOSH2] -~w~Je veux que vous détruisiez tout cet argent. - -[TOSH2AG:TOSH2] -~w~Je pourrais trouver un usage pour tout ce fric, poupée. - -[TOSH2AH:TOSH2] -~w~Je veux que cet argent brûle dans la rue au vu de tous ! - -[TOSH2AI:TOSH2] -~w~OK, OK... Quand est-ce que ce transfert doit avoir lieu ? - -[TOSH2AJ:TOSH2] -~w~Il a déjà commencé. - -[TOSH2AK:TOSH2] -~w~Ils sont en train de quitter le casino et vous n'avez pas beaucoup de temps. - -[TOSH2O0:TOSH2] -~w~Détruis TOUTES les ~r~camionnettes de sécurité~w~. Laisse personne atteindre le ~y~complexe des Yakuzas ! - -[TOSH2O1:TOSH2] -~w~Ils s'enfuient ! Ne laisse partir aucune ~r~camionnette ! - -[TOSH2O2:TOSH2] -~w~Tu les as alertés ! Ne laisse pas partir les ~r~camionnettes ! - -[TOSH2E1:TOSH2] -~w~Le ~r~convoi~w~ approche du ~y~complexe des Yakuzas ! - -[TOSH2E2:TOSH2] -~w~Une ~r~camionnette~w~ est presque arrivée au ~y~complexe des Yakuzas ! - -{=================================== MISSION TABLE TOSH3 ===================================} - -[TOSH3M1:TOSH3] -~w~Y a quelqu'un ? - -[TOSH3M2:TOSH3] -~w~Toni-san ? Un instant, je vous prie... - -[TOSH3M3:TOSH3] -~w~Mon mari est furieux. - -[TOSH3EA:TOSH3] -~w~Il se demande comment vous avez pu l'attaquer avec autant de précision. - -[TOSH3M4:TOSH3] -~w~A moins d'être très bête, il le découvrira bientôt. - -[TOSH3M5:TOSH3] -~w~Peut-être devrions-nous l'aider... Ses hommes jacassent comme de vieilles pies. - -[TOSH3EB:TOSH3] -~w~Donnons-leur matière à parler. - -[TOSH3M6:TOSH3] -~w~Où on va ? - -[TOSH3M7:TOSH3] -~w~A l'opéra. - -[TOSH3M8:TOSH3] -~w~L'opéra ? Avec moi ? Vous plaisantez ? - -[TOSH3M9:TOSH3] -~w~Ne soyez pas ridicule, Toni-san ! Tout le monde aime l'opéra ! - -[TOSH3A:TOSH3] -~w~Si vous allez chercher ma voiture, nous pourrons passer prendre votre smoking. - -[TOSH3EC:TOSH3] -~w~Nous n'avons pas beaucoup de temps, le spectacle va bientôt commencer. - -[TOSH3B:TOSH3] -~w~Va chercher la ~b~voiture de Toshiko. - -[TOSH3C:TOSH3] -~w~Passe prendre ~b~Toshiko. - -[TOSH3C2:TOSH3] -~w~Récupère un smoking chez ~y~M. Benz. - -[TOSH3B3:TOSH3] -~w~Reconduis Toshiko à son ~y~appartement. - -[TOSH3B4:TOSH3] -~r~T'as oublié Toshiko ! - -[TOSH3B2:TOSH3] -Remonte dans la ~b~voiture de Toshiko. - -[TOSH3C3:TOSH3] -~w~Va à l'~y~opéra. - -[TOSH3D:TOSH3] -~w~Où allez-vous !? Nous allons être en retard ! - -[TOSH3D2:TOSH3] -~w~Je vous en prie, ne m'abandonnez pas, Toni-san ! - -[TOSH3Z1:TOSH3] -~w~Vous pensez que je suis une mauvaise personne, Toni-san ? - -[TOSH3Z2:TOSH3] -~w~J'suis pas un ange moi non plus, princesse. - -[TOSH3Z3:TOSH3] -~w~Non... Mais un ange ne me serait guère utile. - -[TOSH3Z4:TOSH3] -~w~Mon mari est un Samouraï, Toni-san. - -[TOSH3Z5:TOSH3] -~w~Il est très fort... et très mauvais. - -[TOSH3Z6:TOSH3] -~w~Il m'a épousée uniquement pour devenir waka-gashira, à Liberty City. - -[TOSH3Z7:TOSH3] -~w~Il ne m'a jamais aimée... Il préfère la compagnie de ses hommes. - -[TOSH3Z8:TOSH3] -~w~Vous comprenez ? - -[TOSH3Z9:TOSH3] -~w~Vous savez qu'il vous tuera quand il découvrira ce que vous faites. - -[TOSH3Z0:TOSH3] -~w~Vivre ou mourir, ça n'a plus aucune importance pour moi... Seule ma liberté compte. - -[TOSH3ZB:TOSH3] -~w~C'est une façon très zen de voir les choses. - -[TOSH3E:TOSH3] -~w~Le sang italien se mélange pas avec le sang japonais ! - -[TOSH3F:TOSH3] -~w~Mais ça va très bien se mélanger sur le trottoir ! - -[TOSH3G:TOSH3] -~w~Protège Toshiko et échappe-toi dans sa ~b~voiture. - -[TOSH3H:TOSH3] -~w~Protège ~b~Toshiko~w~ et ramène-la à son ~y~appartement. - -[TOSH3S1:TOSH3] -~w~Ma voiture ! - -[TOSH3S2:TOSH3] -~w~Sauvez-nous, Toni ! - -[TOSH3S3:TOSH3] -~w~Allez, Toni ! - -[TOSH3S4:TOSH3] -~w~Sortez-nous de là ! - -[TOSH3S5:TOSH3] -~w~SAUVEZ-MOI ! - -[TOSH3S6:TOSH3] -~w~A L'AIDE ! - -[TOSH3S7:TOSH3] -~w~On va pas s'en sortir ! - -[TOSH3S8:TOSH3] -~w~AU SECOURS ! - -[TOSH3S9:TOSH3] -~r~Toshiko est morte ! - -[TOSH310:TOSH3] -~r~La voiture de Toshiko a été détruite ! - -[TOSH311:TOSH3] -~r~Le temps est écoulé ! - -[TOSH3_1:TOSH3] -NONE - -[TOS3NE1:TOSH3] -~w~Protège Toshiko et tue les ~r~Forelli. - -[TOS3NE2:TOSH3] -~w~Tire-toi dans la voiture de ~b~Toshiko. - -[TOSH3EI:TOSH3] -~w~L'opéra commence à 20:00. Ne sois pas en retard ! - -{=================================== MISSION TABLE TOSH4 ===================================} - -[TOSH4O2:TOSH4] -~w~L'hélico de Kazuki se dirige vers le ~y~casino ! - -[TOSH4O4:TOSH4] -~w~Tue ~r~Kazuki ! - -[TOSH4O5:TOSH4] -~w~Va à l'~y~appartement de Toshiko. - -[TOSH4_3:TOSH4] -~w~Kazuki arrive dans cet hélico. Va à l'héliport et tue-le ! - -[TOSH4Y1:TOSH4] -~w~Chopez-le ! - -[TOSH4Y2:TOSH4] -~w~Tuez-le ! - -[TOSH4CA:TOSH4] -~w~Mes hommes m'ont déshonoré... - -[TOSH4CB:TOSH4] -~w~mais il est juste que je te tue moi-même. - -[TOSH4CC:TOSH4] -~w~Vous deux ! Laissez-nous ! - -[TOSH4CD:TOSH4] -~w~C'est avec grand plaisir que je vais te faire goûter à mon sabre... - -[TOSH4CE:TOSH4] -~w~Ouais, on m'a prévenu. - -[TOSH4K1:TOSH4] -~w~Descendez-le ! - -[TOSH4K2:TOSH4] -~w~Tuez-le ! - -[TOSH4_7:TOSH4] -~w~Apporte le sabre de Kazuki à Toshiko comme preuve de sa mort. - -[TOSH4_8:TOSH4] -~w~T'as fait peur à Kazuki ! Il s'échappe ! T'as raté ta chance de le liquider ! - -[TOSH4_C:TOSH4] -Kazuki - -[TOSH4AA:TOSH4] -~w~Hello ? - -[TOSH4AB:TOSH4] -~w~Je prends un bain, Toni-san. - -[TOSH4AC:TOSH4] -~w~Nous n'avons pas beaucoup de temps. - -[TOSH4AD:TOSH4] -~w~Mon mari sait qui est vraiment à l'origine de ses pertes. - -[TOSH4AE:TOSH4] -~w~Il vient me tuer... et vous aussi. - -[TOSH4AF:TOSH4] -~w~Bon, alors, je vais pas l'attendre ici. Où est-il ? - -[TOSH4AG:TOSH4] -~w~A Belleville, en train de rassembler ses hommes. - -[TOSH4AJ:TOSH4] -~w~Mais il sera bientôt là. - -[TOSH4AH:TOSH4] -~w~Sayonara, poupée. - -[TOSH4AI:TOSH4] -~w~Mes prières vous accompagnent, Toni-san. Bonne chance ! - -[TOSH4F1:TOSH4] -~r~Kazuki se moque de toi ! - -[TOSH4OA:TOSH4] -~w~Bute les ~r~gardes de Kazuki ! - -[TOSH4OB:TOSH4] -~w~Retourne chez ~y~Kazuki ! - -[TOSH4OC:TOSH4] -~w~Attention ! Voilà d'autres ~r~Yakuzas ! - -[TOSH4DA:TOSH4] -~w~Butez-le ! - -[TOSH4DB:TOSH4] -~w~Tuez-le ! - -[TOSH4DC:TOSH4] -~w~Tuez-le, bande de nazes ! - -[TOSH4O1:TOSH4] -~w~Va chez ~y~Kazuki~w~ et tue-le ! - -[TOSH4O3:TOSH4] -~w~Va à l'~y~héliport ! - -[CASH_01:TOSH4] -Hum... Bon... Toshiko. C'est terminé. - -[CASH_02:TOSH4] -Oui, oui, je le savais. Bonjour, Toni-san. - -[CASH_03:TOSH4] -Hé... Alors, euh... Vous avez gagné... - -[CASH_04:TOSH4] -Vous avez ce que vous vouliez, tout a marché comme convenu. - -[CASH_06:TOSH4] -Merveilleux, oui, merveilleux... - -[CASH_07:TOSH4] -Et maintenant c'est l'heure de la paye, ma poule... - -[CASH_08:TOSH4] -Nous sommes tous deux des tueurs fous, Toni-san. - -[CASH_09:TOSH4] -J'imagine... - -[CASH_10:TOSH4] -Ne pensez-vous pas que notre esprit paye un lourd tribut au monde, Toni-san ? - -[CASH_11:TOSH4] -Possible... - -[CASH_12:TOSH4] -Mais vous êtes libre maintenant. Je veux dire, d'aller au Costa Rica, à Aruba ou ailleurs. - -[CASH_13:TOSH4] -Tout recommencer, c'est ce dont vous rêviez. - -[CASH_14:TOSH4] -Je ne crois pas être prête pour les vacances à la plage, Toni-san. - -[CASH_15:TOSH4] -J'ai tout perdu, par ma seule volonté. - -[CASH_16:TOSH4] -Il m'a été accordé ce que je demandais. - -[CASH_17:TOSH4] -Désormais, je n'aspire plus qu'à la vraie liberté. - -[CASH_18:TOSH4] -Au revoir, Toni-san. +[MM_1_C:CARPAR1] +~y~FRANCHIS~g~ un point de passage pour enclencher le compteur. ~g~Chaque point de passage te crédite ~y~~1~ SECONDES~g~. {=================================== MISSION TABLE COPCAR ===================================} +[CLEVEL:COPCAR] +Missions d'autodéfense niveau ~1~ + [C_COMP1:COPCAR] -~w~Mission Autodéfense : niveau 12 terminé ! La protection pare-balles est encore plus efficace ! +Niveau 12 de mission Auto-défense réussi : votre max de gilet pare-balles passe à 150. + +[KILLS:COPCAR] +VICTIMES : [C_BREIF:COPCAR] -~r~Suspect~w~ aperçu pour la dernière fois dans le secteur : ~a~. +~g~Suspect aperçu pour la dernière fois dans le secteur ~a~. -[C_BREIG:COPCAR] -~r~Suspects~w~ aperçus pour la dernière fois dans le secteur : ~a~. - -[C_RANGE:COPCAR] -~r~La radio de la police ne capte plus rien ! Rapproche-toi d'un poste de police ! - -[C_TIMEA:COPCAR] -~w~Bonus temps ! +~1~ secondes +[C_PASS:COPCAR] +MENACE ENRAYEE : $~1~ [COPCART:COPCAR] -~w~T'as ~1~ secondes pour monter dans un véhicule de police avant la fin de la mission. - -[COPCARU:COPCAR] -~w~T'as ~1~ seconde pour monter dans un véhicule de police avant la fin de la mission. +~g~Tu as ~1~ secondes pour retourner à une voiture de police avant que la mission ne s'achève. [C_CANC:COPCAR] -~r~Mission Autodéfense annulée ! +~r~Mission d'autodéfense annulée! [C_TIME:COPCAR] -~r~T'as fait ton temps comme flic. C'est fini ! +~r~Ta carrière de flic est terminée! -[C_PASS3:COPCAR] -~w~MENACE ELIMINEE ! Récomp. : ~1~$ +{=================================== MISSION TABLE COUNT1 ===================================} -[C_LEVEL:COPCAR] -~r~T'as laissé les criminels s'enfuir ! +[CM1_A:COUNT1] +Vercetti? Hé, vous avez acheté la vieille imprimerie? -[C_RANG2:COPCAR] -~r~La radio de la caisse des flics ne fonctionne pas dans le métro ! +[CM1_B:COUNT1] +Ouais, mon vieux a travaillé sur ces machines. -{=================================== MISSION TABLE CARS ===================================} +[CM1_C:COUNT1] +J'aurais voulu marcher sur ses traces, mais... J'ai suivi une autre voie. -[CARS_10:CARS] -~w~Monte dans une caisse pour partir en balade ou quitte les lieux pour annuler la mission. +[CM1_D:COUNT1] +Vous avez l'intention de vendre les vieilles machines, et de tout casser? -[CARS_12:CARS] -~w~Ta mission sera un échec si tu descends de voiture. +[CM1_E:COUNT1] +Je m'disais qu'on pourrait peut-être imprimer quelque chose, un journal ou un magazine... -[CARS_1:CARS] -~w~Emmène un des clients en balade. +[CM1_F:COUNT1] +Arrête tes conneries, fiston! J'ai toujours rêvé d'imprimer mon propre pognon! C'est pas très compliqué! -[CARS_2:CARS] -~w~Tu dois trouver ce que chaque client attend des performances de la voiture. +[CM1_G:COUNT1] +Tu sais, j'ai fait ça sur une petite échelle pendant des années. -[CARS_3:CARS] -~w~Ensuite, sers-toi de tes talents de conducteur pour leur montrer que c'est la caisse de leurs rêves. +[CM1_H:COUNT1] +Ah ouais? -[CARS_5:CARS] -~w~Impressionne le client. +[CM1_I:COUNT1] +Ouais. Mais il nous faut des plaques de bonne qualité. -[CARS_6:CARS] -~w~Le client est à terre ! Choisis une autre caisse ! +[CM1_J:COUNT1] +Evidemment! Il y a un syndicat de contrefaçon qui opère déjà en Floride! -[CARS_30:CARS] -~w~Retourne chez le ~y~concessionnaire~w~ conclure l'affaire ! +[CM1_K:COUNT1] +Un syndicat? -[CARS_C1:CARS] -~w~Alors, mec, t'aimes bien larguer les flics ? +[CM1_L:COUNT1] +Ouais. C'est le bruit qui court en tout cas. -[CARS_C2:CARS] -~w~Ouais ! Ca lui apprendra ! +[CM1_M:COUNT1] +Je connais un mec qui en saura sûrement plus... -[CARS_P1:CARS] -~w~Waou ! Cette caisse est supersonique ! +[CM1_N:COUNT1] +On avait l'habitude de passer nos soirées ensemble, à nettoyer les rouleaux... -[CARS_P2:CARS] -~w~Waou ! Trop cool !! +[CM1_2A:COUNT1] +Mate-moi ce cul! -[CARS_P3:CARS] -~w~Tu conduis comme ma tante ! +[CM1_2B:COUNT1] +Ok, ma belle, c'est l'heure de l'initiation! -[CARS_P4:CARS] -~w~Cette voiture a des airbags ? +[CM1_2C:COUNT1] +Salut, vieille branche, comment ça va? -[CARS_M1:CARS] -~w~Ah, un petit tour bien tranquille... +[CM1_2D:COUNT1] +Que sais-tu à propos de la contrefaçon? -[CARS_M2:CARS] -~w~Vous savez que la vitesse est limitée ? +[CM1_2E:COUNT1] +Oh, je vais bien, Paul, et toi? -[CARS_M3:CARS] -~w~Oh mon Dieu, vous allez nous tuer ! +[CM1_2F:COUNT1] +Viens ici! -[CARS_O1:CARS] -~w~Oh ouais, plus de macadam pour nous retenir ! +[CM1_2G:COUNT1] +Bon! Bon! Bon! Tu es visiblement un homme très occupé! -[CARS_O2:CARS] -~w~Jusqu'au ciel, mon pote ! +[CM1_2H:COUNT1] +Tout ce que je sais, c'est que les Triades fournissent les plaques. -[CARS_O3:CARS] -~w~Trop cool, le tonneau !! +[CM1_2I:COUNT1] +Elles ont une compagnie de navigation sur les quais -[CARS_SC:CARS] -~w~Vente terminée. Commission : ~1~$ Bonus temps : ~1~ secondes +[CM1_2J:COUNT1] +et le patron devrait savoir quand les plaques arrivent! -[CARS_SD:CARS] -~w~Niveau ~1~ terminé. Commission : ~1~$ Bonus temps : ~1~ secondes +[CM1_2K:COUNT1] +Merci, Paul. -[CARS_IR:CARS] -~1~ A LA SUITE ! Bonus ! ~1~$ +[CM1_2L:COUNT1] +C'est quoi ton problème, pauvre maniaque! -[CARS_RE:CARS] -~w~Une petite prime pour notre meilleur vendeur ! +[CM1_2M:COUNT1] +Un autre verre, en vitesse! -[CARSIC1:CARS] -~w~J'ai besoin d'une caisse dure à rattraper, mec. +[CM1_3:COUNT1] +~g~T'as été repéré! -[CARSIC2:CARS] -~w~J'ai besoin d'une caisse capable de dégommer ces connards de piétons. +[CM1_5:COUNT1] +~g~Va retrouver Kent Paul au Malibu! -[CARSIP1:CARS] -~w~Ce bébé a l'air rapide ! +[CNT1_1:COUNT1] +T'es qui toi? Aïe! Pas le visage! Pas le visage! -[CARSIP2:CARS] -~w~Oh mec ! J'parie que ce truc peut voler ! +[CM1_1:COUNT1] +~g~Va au bateau de la Chartered Libertine Lines sur les docks. -[CARSIM1:CARS] -~w~Il paraît que c'est une voiture très rassurante. +[CM1_2:COUNT1] +~g~L'officier de navigation détient l'information dont tu as besoin. -[CARSIM2:CARS] -~w~Depuis mon opération, j'ai besoin d'une voiture plus lente. +[CNT1_2:COUNT1] +Ok, je parle! Je parle! -[CARSIO1:CARS] -~w~L'adhérence est bonne, sortons de la route ! +[CM1_6:COUNT1] +~g~Ramène l'info à l'imprimerie! -[CARSIO2:CARS] -~w~Mon pote réussit à faire des tonneaux avec sa caisse, et j'adore ça ! +{=================================== MISSION TABLE COUNT2 ===================================} -[CARS_N1:CARS] -~w~J'achète pas cette poubelle ! +[CNT2_B1:COUNT2] +Bon, le coursier déplace les plaques des docks aujourd'hui. -[CARS_N2:CARS] -~w~J'arrive pas à croire que vous avez voulu me faire acheter cette épave ! +[CNT2_B2:COUNT2] +Faut l'intercepter et récupérer ces plaques, semer les flics éventuels et revenir ici. -[CARS_N3:CARS] -~w~Vous autres, les vendeurs de caisses d'occasion, vous êtes tous pareils ! +[CNT2_B3:COUNT2] +En fonction de comment ça marche, -[CARS_Y1:CARS] -~w~Je l'achète ! +[CNT2_B4:COUNT2] +on aura entre cinq minutes et toute l'année pour imprimer le pognon avant que le syndicat de contrefaçon rapplique. -[CARS_Y2:CARS] -~w~C'est la voiture de mes rêves ! +[CNT2_B5:COUNT2] +Quoi qu'il en soit, je veux voir les premiers billets sortir de la presse cinq minutes après mon retour! C'est compris? -[CARS_Y3:CARS] -~w~Affaire conclue ! +[CNT2_B6:COUNT2] +T'inquiète pas, Tommy, on sera prêts. -[CARS_R1:CARS] -~w~J'aime bien la voiture, mais pas la couleur. +[CNT2_B7:COUNT2] +Les gars et moi, on sera dans le coin au cas où t'aurais besoin de renforts. -[CARS_R2:CARS] -~w~Fais repeindre la voiture ! +[CNT2_B8:COUNT2] +Bon, tout le monde a compris? Parfait. A plus tard. -[CARS_D1:CARS] -~w~J'aime bien, mais elle est pas en bon état... +[CNT2_01:COUNT2] +~g~Le ~r~coursier~g~ qui porte les plaques va bientôt arriver aux ~y~docks~g~ en hélico. -[CARS_D2:CARS] -~w~Fais réparer cette caisse ! +[CNT2_02:COUNT2] +~r~Le coursier s'est enfui en hélico! -[CARS_F1:CARS] -~r~T'as bousillé la caisse ! +[CNT2_03:COUNT2] +~r~Le coursier est parvenu à destination sain et sauf, c'est trop tard! -[CARS_F2:CARS] -~r~T'as tué le client ! +[CNT2_04:COUNT2] +~r~Tu as détruit les plaques dans l'explosion! -[CARS_F3:CARS] -~r~T'as trop traîné ! Le client en a eu marre ! +[CNT2_05:COUNT2] +~g~Tu as les plaques. Emmène-les à l'imprimerie! -[CARS_F4:CARS] -~r~Le client n'aime pas la caisse ! +[CNT2_06:COUNT2] +~g~Le coursier est mort et il a jeté les plaques. Récupère-les en premier. -[CARS_F5:CARS] -~r~Ta carrière de vendeur de voitures est terminée. +[CNT2_07:COUNT2] +~g~Un des gardes a ramassé les plaques, ne le laisse pas s'enfuir! -[CARS_F6:CARS] -~r~Le client aime pas la caisse ! Tu l'as crashée ! +[CNT2_08:COUNT2] +~g~Le ~r~coursier~g~ avec les plaques est arrivé aux docks. -[CARS_F7:CARS] -~r~Le client aime pas la caisse ! T'as roulé trop vite ! +[CNT2_4:COUNT2] +Affaire privée! Dégagez! -[CARS_F8:CARS] -~r~Le client aime pas la caisse ! T'as pas roulé assez vite ! +[CNT2_09:COUNT2] +IMPRIMERIE ACQUISE -[CARS_SA:CARS] -Vente +[CNT2_10:COUNT2] +~g~L'imprimerie va maintenant générer un revenu maximum de $~1~. Veille à relever régulièrement les compteurs. -[CARS_7:CARS] -~w~Monte dans une ~b~caisse ! +[CNT2_11:COUNT2] +~r~Les plaques sont au fond de la mer! -[CARS_RF:CARS] -~w~Capital Autos est désormais sous ta 'protection'. Pense à encaisser régulièrement les paiements. +{=================================== MISSION TABLE CUBAN1 ===================================} -{=================================== MISSION TABLE BIKE ===================================} +[CUB1_A:CUBAN1] +Si, mec? -[BIKE_10:BIKE] -~w~Grimpe sur la moto pour partir en balade ou quitte l'allée pour annuler la mission. +[CUB1_B:CUBAN1] +Hé, du calme, papa, ce mec est là pour moi. Hé, c'est toi le mec? -[BIKE_12:BIKE] -~w~Ta mission est un échec si tu descends de moto. +[CUB1_C:CUBAN1] +Oh ouais. C'est toi le mec. Je crois bien, tu sais. -[BIKE_1:BIKE] -~w~Emmène un des clients en balade. +[CUB1_D:CUBAN1] +Non, je crois pas. -[BIKE_2:BIKE] -~w~Tu dois découvrir ce que chaque client recherche en matière de performances. +[CUB1_E:CUBAN1] +Ah ouais? Amène-toi, gros dur! -[BIKE_3:BIKE] -~w~Ensuite, sers-toi de tes talents pour leur montrer que c'est la moto de leurs rêves. +[CUB1_F:CUBAN1] +Tu crois que tu peux jouer avec moi? -[BIKE_5:BIKE] -~w~Impressionne le client. +[CUB1_G:CUBAN1] +Tu penses que tu peux jouer au con avec moi? -[BIKE_30:BIKE] -~w~Retourne au ~y~magasin de motos~w~ pour conclure l'affaire ! +[CUB1_H:CUBAN1] +Non, je pense que tu joues assez le con pour nous deux. -[BIKE_C1:BIKE] -~w~OK, mec, faut donner une leçon aux flics, hein ! +[CUB1_I:CUBAN1] +Hé, il t'a traité de con, fiston. -[BIKE_C2:BIKE] -~w~Ouais ! Bien fait pour ce minable ! +[CUB1_J:CUBAN1] +Et moi, je le traite de fillette, papa. -[BIKE_P1:BIKE] -~w~Ouais ! Cette moto est géniale ! +[CUB1_K:CUBAN1] +Regarde-le, tout habillé comme ça. -[BIKE_P2:BIKE] -~w~Ouais ! +[CUB1_L:CUBAN1] +C'est la soirée des pouffiasses, ce soir? -[BIKE_P3:BIKE] -~w~Allez, elle peut pas aller plus vite ? +[CUB1_M:CUBAN1] +Toi qu'est plutôt balaise, pourquoi tu te fringues en nana? -[BIKE_P4:BIKE] -~w~Attention ! +[CUB1_N:CUBAN1] +Et t'as une petite culotte comme les gonzesses? -[BIKE_M1:BIKE] -~w~Ah, un petit tour tranquille... +[CUB1_O:CUBAN1] +Qu'est-ce que t'as contre les femmes? Tu préfères les mecs, mon gros? -[BIKE_M2:BIKE] -~w~Vous savez que la vitesse est limitée ? +[CUB1_P:CUBAN1] +J'aime les femmes! J'aime toutes les femmes! J'aime ma maman, Chico! -[BIKE_M3:BIKE] -~w~Oh mon Dieu, vous allez nous tuer ! +[CUB1_Q:CUBAN1] +Ok, ok, j'te crois sur parole. -[BIKE_O1:BIKE] -~w~Ouais, vive la liberté tout terrain ! +[CUB1_R:CUBAN1] +Tu sais conduire, amigo? -[BIKE_O2:BIKE] -~w~Le ciel nous appartient, mec ! +[CUB1_S:CUBAN1] +Ouais... Comme une gonzesse. -[BIKE_O3:BIKE] -~w~Ouais, d'enfer, les cascades ! +[CUB1_T:CUBAN1] +Très drôle... Tu me plais, ma grosse, peut-être que tu peux aider. -[BIKE_SC:BIKE] -~w~Vente terminée. Commission : ~1~$ Bonus temps : ~1~ secondes +[CUB1_U:CUBAN1] +Tu peux peut-être nous montrer que t'es un vrai mec? -[BIKE_IR:BIKE] -~1~ A LA SUITE ! Bonus ! ~1~$ +[CUB1_V:CUBAN1] +Sors le bateau. -[BIKE_RE:BIKE] -~w~Une petite prime pour notre meilleur vendeur ! +[CUB1_W:CUBAN1] +Prouve-moi que t'as des couilles énormes -[BIKE_RF:BIKE] -~w~Hogs 'n' Cogs est désormais sous ta 'protection'. Pense à encaisser régulièrement les paiements. +[CUB1_X:CUBAN1] +et pas une paire de pois chiches! -[BIKEIC1:BIKE] -~w~J'ai besoin de quelque chose de difficile à courser, mec. +[CUB1_02:CUBAN1] +Ok, mec, traite-la comme une gonzesse. -[BIKEIC2:BIKE] -~w~J'veux une moto pour régler leurs comptes à ces enfoirés de piétons ! +[CUB1_03:CUBAN1] +Pas mal, t'es un vrai macho. -[BIKEIP1:BIKE] -~w~Cette moto a l'air rapide ! +[CUB1_04:CUBAN1] +Merde, t'en a vraiment dans le pantalon, amigo. -[BIKEIP2:BIKE] -~w~J'veux une moto qu'impressionne les filles ! +[CUB1_05:CUBAN1] +Amigo, t'es un vrai mec, mec. -[BIKEIM1:BIKE] -~w~Il paraît que ces motos assurent une conduite tranquille. +[CUB1_06:CUBAN1] +Tu te prends pour un homme, mec? -[BIKEIM2:BIKE] -~w~J'suis encore un peu patraque, il me faut une moto plus lente. +[CUB1_07:CUBAN1] +T'es qu'une petite poule mouillée, petit, c'est ta mère qui te manque? -[BIKEIO1:BIKE] -~w~Super, l'adhérence ! On sors de la route ! +[CUB1_08:CUBAN1] +Tu gâches tout! Tu marches comme un mec, tu causes comme un mec, mais tu conduis comme une gonzesse! -[BIKEIO2:BIKE] -~w~Ces motos peuvent faire des super cascades, pas vrai !? +[CUB1_09:CUBAN1] +Mec, t'es un vrai mec de chez mec, mec! Putain, je t'adore, mec! -[BIKE_N1:BIKE] -~w~J'achète pas cette merde ! +[CUB1_10:CUBAN1] +C'est quand tu veux, mec. T'as des couilles de taureau et tous mes potes ont des couilles énormes! -[BIKE_N2:BIKE] -~w~Vous êtes malade si vous avez cru que j'achèterais cette épave ! +[CUB1_11:CUBAN1] +~r~T'as tué Rico! -[BIKE_N3:BIKE] -~w~Vous, les vendeurs de motos, vous êtes tous les mêmes ! +[CUB1_12:CUBAN1] +Va jusqu'au premier point de contrôle pour commencer le test. -[BIKE_Y1:BIKE] -~w~Je la prends ! +[CUB1_14:CUBAN1] +Retourne dans le bateau! -[BIKE_Y2:BIKE] -~w~C'est la moto qu'il me faut ! +[CUB1_15:CUBAN1] +~r~T'es trop lent, mec! -[BIKE_Y3:BIKE] -~w~Parfait, je l'achète ! +[CUB1_01:CUBAN1] +Salut, moi c'est Rico. C'est toi qu'a des couilles de taureau? -[BIKE_R1:BIKE] -~w~La moto est bien, mais j'aime pas la couleur. +[CUB1_13:CUBAN1] +~g~Tu as trois minutes pour terminer le parcours. -[BIKE_R2:BIKE] -~w~Fais repeindre la moto ! +{=================================== MISSION TABLE CUBAN2 ===================================} -[BIKE_D1:BIKE] -~w~Elle me plaît, mais l'état est pas terrible... +[CUB2_25:CUBAN2] +BUTE TOUS LES HAITIENS! -[BIKE_D2:BIKE] -~w~Fais réparer la moto ! +[CUB2_A:CUBAN2] +Un cafecito, por favor, Alberto... -[BIKE_F1:BIKE] -~r~T'as bousillé la moto ! +[CUB2_N:CUBAN2] +Tout de suite, Tommy. -[BIKE_F2:BIKE] -~r~T'as tué le client ! +[CUB2_B:CUBAN2] +Poppa! Un gran problema! -[BIKE_F3:BIKE] -~r~Trop tard ! Le client en a eu marre ! +[CUB2_O:CUBAN2] +Umberto, mon fils, que s'est-il passé? -[BIKE_F4:BIKE] -~r~Le client aime pas la moto ! +[CUB2_C:CUBAN2] +Les Haïtiens! Je hais les Haïtiens! -[BIKE_F5:BIKE] -~r~Ta carrière de vendeur de motos est terminée. +[CUB2_D:CUBAN2] +C'est la dernière fois qu'ils me font chier! -[BIKE_F6:BIKE] -~r~T'as bousillé la moto ! Le client en veut pas ! +[CUB2_E:CUBAN2] +Ces Haïtiens... On va les liquider! -[BIKE_F7:BIKE] -~r~T'as été trop vite ! Le client... est plus client ! +[CUB2_F:CUBAN2] +On a juste besoin de renforts... -[BIKE_F8:BIKE] -~r~T'as roulé trop lentement ! Le client achète pas ! +[CUB2_G:CUBAN2] +J'ai déjà perdu pas mal de frères là-bas. -[BIKE_B1:BIKE] -~w~T'as ~1~ secondes pour remonter sur la ~b~moto ! +[CUB2_H:CUBAN2] +Amigo, tu conduis pas mal! -[BIKE_B2:BIKE] -~w~Attends que le ~b~client~w~ remonte sur la moto ! +[CUB2_I:CUBAN2] +Pour une gonzesse... Pas vrai? -[BIKE_B3:BIKE] -~w~Laisse le ~b~client~w~ monter sur la moto ! +[CUB2_J:CUBAN2] +C'est pas l'heure des vannes! -[BIKE_SA:BIKE] -Vente +[CUB2_K:CUBAN2] +Allez, conduis encore pour moi! -[BIKE_7:BIKE] -~w~Monte sur une ~b~moto ! +[CUB2_L:CUBAN2] +Récupère mes gars là-bas et puis on s'occupe de ces Haïtiens! -[BIKE_S1:BIKE] -~w~T'as vendu toutes les Freeway qu'on avait en stock! +[CUB2_M:CUBAN2] +Ils m'ont cherché et ils sont tombés sur le mec le plus balaise de la ville! -[BIKE_S2:BIKE] -~w~T'as vendu toutes les PCJ 600 qu'on avait en stock ! +[CUB2_01:CUBAN2] +C'est trop petit, mec, il te faut une plus grosse bagnole. -[BIKE_S3:BIKE] -~w~T'as vendu toutes les Faggio qu'on avait en stock ! +[CUB2_02:CUBAN2] +On a besoin de renforts du café! -[BIKE_S4:BIKE] -~w~T'as vendu toutes les Sanchez qu'on avait en stock ! +[CUB2_03:CUBAN2] +~g~Prend une bagnole et va ramasser les Cubains à l'extérieur du café de Robina. -[BIKE_SN:BIKE] -~w~Un nouveau stock a été livré ! +[CUB2_04:CUBAN2] +~g~Amène les Cubains à l'endroit de la bagarre. -{=================================== MISSION TABLE RAC1 ===================================} +[CUB2_05:CUBAN2] +Liquide ce lâche de tireur embusqué! -[RAC1_A0:RAC1] -~w~Si tu veux prouver que ta caisse est pas un veau, présente-toi au départ de la prochaine course urbaine. +[CUB2_07:CUBAN2] +Ils se battent comme des filles! A couvert! -{=================================== MISSION TABLE RAC2 ===================================} +[CUB2_09:CUBAN2] +Un sniper sur le toit! -[RAC2_A0:RAC2] -~w~Hé, il paraît qu'il va y avoir une course urbaine ! Amène ta caisse sur la ligne de départ. +[CUB2_11:CUBAN2] +~r~Imbécile, on avait besoin de cette bagnole! -{=================================== MISSION TABLE RAC3 ===================================} +[CUB2_12:CUBAN2] +Hé, amigo! Content de te voir que t'as réussi! -[RAC3_A0:RAC3] -~w~Y a pas de caisse plus rapide, ni de meilleur pilote ! +[CUB2_13:CUBAN2] +Putains de Haïtiens, on va tous les descendre! -[RAC3_A1:RAC3] -~w~On se retrouve pour la prochaine course... dans mon rétro ! +[CUB2_14:CUBAN2] +CHAAAAAARGEZ! -{=================================== MISSION TABLE BIK1 ===================================} +[CUB2_15:CUBAN2] +Maintenant, mes frères! Chaaaargez! -[BIK1_A0:BIK1] -~w~Tu crois que tu peux me battre ? Tu délires ! +[CUB2_16:CUBAN2] +Tommy, on a fait la preuve de notre courage! -[BIK1_A1:BIK1] -~w~Amène ta bécane sur la ligne de départ et réglons ça ! +[CUB2_17:CUBAN2] +Piquons cette camionnette bourrée de drogue et tirons-nous! -{=================================== MISSION TABLE BIK2 ===================================} +[CUB2_18:CUBAN2] +~g~Trouve une bagnole et va chercher les Cubains. -[BIK2_A0:BIK2] -~w~Tu rêves si tu crois pouvoir me battre ! Le réveil va être brutal ! +[CUB2_19:CUBAN2] +On va se battre comme des hommes! -[BIK2_A1:BIK2] -~w~On se retrouve sur la ligne de départ. +[CUB2_21:CUBAN2] +Battez-vous avec vos couilles! -{=================================== MISSION TABLE BIK3 ===================================} +[CUB2_22:CUBAN2] +~g~Elimine les derniers Haïtiens pour que les Cubains puissent avancer. -[BIK3_A0:BIK3] -~w~C'est hyper simple. Sur deux roues, j'suis imbattable ! On va régler ça dans la rue. +[CUB2_23:CUBAN2] +~g~Little Haiti va grouiller de Haïtiens voulant régler leurs comptes avec les Cubains. Fais gaffe à tes couilles. -{=================================== MISSION TABLE TT1 ===================================} +[CUB2_24:CUBAN2] +~g~Retourne au café de Robina avec la camionnette et gare-la derrière. -[TT1_A0:TT1] -~w~~k~ ~AMBUY~ ~w~pour participer. ~n~~k~ ~AMEXI~ ~w~pour quitter. +{=================================== MISSION TABLE CUBAN3 ===================================} -[TT1_0:TT1] -Temps +[CUB3_A:CUBAN3] +Alberto. Un café, senor. -[TT1_1:TT1] -~w~Nouveau record au tour : ~1~:~1~ +[CUB3_B:CUBAN3] +Papa, ne sers pas ce morbac... -[TT1_1A:TT1] -~w~Nouveau record au tour : ~1~:0~1~ +[CUB3_C:CUBAN3] +T'es un hypocrite, Tommy! -[TT1_C1:TT1] -~w~3 +[CUB3_D:CUBAN3] +T'es soit un hypocrite, soit une gonzesse! -[TT1_C2:TT1] -~w~2 +[CUB3_E:CUBAN3] +Les Haïtiens, mec! Ils se foutent de ma gueule! -[TT1_C3:TT1] -~w~1 +[CUB3_F:CUBAN3] +Du calme. C'est quoi ton problème? -[TT1_C4:TT1] -~w~GO !! +[CUB3_G:CUBAN3] +Ils se foutent ma gueule, Tommy, de ma gueule! -[TT1_D1A:TT1] -~w~Hauteur saut : ~1~ pieds +[CUB3_H:CUBAN3] +Umberto Robina! Ils font comme ça leur chante! -[TT1_D2:TT1] -~w~Tour ~1~ Temps : ~1~:~1~ +[CUB3_I:CUBAN3] +Personne fait ce qu'il veut, Umberto, ils font ce que tu les laisses faire. -[TT1_D3:TT1] -~w~Tour ~1~ Temps : ~1~:0~1~ +[CUB3_J:CUBAN3] +Quoi? -[TT1_D4:TT1] -~w~Tour +[CUB3_K:CUBAN3] +Tu veux que quelqu'un s'en occupe? -[TT1_F2:TT1] -~r~T'as quitté le circuit ! +[CUB3_L:CUBAN3] +Je peux m'en charger, mais ça va te coûter cher! -[TT1_F3:TT1] -~r~T'as détruit la moto ! +[CUB3_M:CUBAN3] +Je sais qu'on est frères et tout et tout, mais ça, c'est les affaires... -[TT1_D5A:TT1] -~w~Hauteur saut : ~1~ pieds - 10$ de bonus! +[CUB3_N:CUBAN3] +Tommy, t'es un vrai mec! Un businessman! Un gentleman! -[TT1_D1:TT1] -~w~Hauteur saut : ~1~ mètres +[CUB3_O:CUBAN3] +Ces Haïtiens. Ils ont de la marchandise de première qualité qui arrive par la mer. -[TT1_D5:TT1] -~w~Hauteur saut : ~1~ mètres - 10$ de bonus ! +[CUB3_P:CUBAN3] +On la prend et on en finit avec eux. -[TT1_2:TT1] -~w~T'as battu le temps cible ! Nouveau circuit débloqué : 100$ de bonus ! +[CUB3_Q:CUBAN3] +Tu t'en charges et je veillerai sur toi. Comme mon frère. Comme mon fils. -[TT1_3:TT1] -~w~T'as battu le temps cible ! 100$ de bonus ! +[CUB3_R:CUBAN3] +J'préfère que tu me files du pognon, plutôt que de me faire sauter sur tes genoux, amigo... -[TTDONE:TT1] -~w~Tous les circuits terminés ! T'as débloqué la Manchez. +[CUB3_01:CUBAN3] +Salut, Rico. Chouette bateau. T'es prêt? -[TT1_2A:TT1] -~r~T'as pas battu le temps cible. +[CUB3_03:CUBAN3] +~g~Récupère toutes les serviettes pleines de drogue et de cash. -[TT1_2B:TT1] -~r~T'as pas battu le record du circuit. +[CUB3_04:CUBAN3] +~g~Ramène la drogue et le cash à Umberto. -{=================================== MISSION TABLE RCR ===================================} +[CUB3_05:CUBAN3] +Si, Tommy, faut que tu tires bien, aujourd'hui. -[RCRACE3:RCR] -~w~Essaie de battre les autres véhicules radiocommandés dans une course en ~1~ tour(s), autour du parc. +[CUB3_06:CUBAN3] +Mon bateau, je voudrais pas qu'il se retrouve plein de trous, ok? -[RCRACE4:RCR] -~w~Essaie de battre les autres véhicules radiocommandés dans une course en ~1~ tour(s), autour de l'aéroport. +[CUB3_07:CUBAN3] +~g~Va retrouver Rico. Il te conduira au rendez-vous. -[RCRACE7:RCR] -~w~Prêt ? +[CUB3_02:CUBAN3] +~g~TUE TOUS LES HAITIENS EN BATEAU! -[RCRLAP5:RCR] -~w~Nouveau record au tour de ~1~ secondes ! +[CUB3_08:CUBAN3] +Oh oh... Les Cubains. On nous attaque! -[RCRLAP6:RCR] -~w~Encore ~1~ tours ! +{=================================== MISSION TABLE CUBAN4 ===================================} -[RCRLAP7:RCR] -~w~Dernier tour ! +[CUB4_A:CUBAN4] +Salut, les filles, vous savez ce que je vais faire? -[RCRLTME:RCR] -Temps au tour +[CUB4_B:CUBAN4] +Je vais aller me descendre un Haïtien. Et après, vous savez quoi? -[RCRLOSE:RCR] -~r~T'as perdu ! T'es qu'un loser ! +[CUB4_C:CUBAN4] +Après, je vais me vider les couilles comme un homme! -[RCRLOS2:RCR] -~r~Tu gagneras jamais la course si t'arrives pas à rester sur le circuit ! +[CUB4_D:CUBAN4] +T'as déjà vu ça chica? Un peu comme ça... -[RCRTIME:RCR] -~w~T'as ~h~~1~ ~w~secondes pour revenir sur le circuit ! +[CUB4_E:CUBAN4] +Pauv' mec! -[RCRWIN1:RCR] -~w~Bravo, t'as GAGNE ! Mais t'as pas battu le meilleur temps au tour. +[CUB4_F:CUBAN4] +Connard! -[RCRWIN2:RCR] -~w~Ta prochaine course sera en ~1~ tours ! +[CUB4_G:CUBAN4] +Hé, ma poule, je te toucherai même pas avec une perche! -[RCRWIN3:RCR] -~w~Course RC de Belleville Park, à Staunton, maintenant disponible. +[CUB4_H:CUBAN4] +Umberto Robina, il aime les femmes! Pas les vieilles dindes en jupe! -[RCRWIN4:RCR] -~w~Course RC de Shoreside Airport maintenant disponible. +[CUB4_I:CUBAN4] +Tommy! Tommy, je t'aime, je t'aime! Allons-y! -[RCRWIN5:RCR] -~w~T'as fini tous les niveaux ! Recommence pour battre tes meilleurs temps au tour ! +[CUB4_J:CUBAN4] +Où ça? Je peux pas avoir un café d'abord? -[RCR1:RCR] -~w~1 +[CUB4_K:CUBAN4] +Pas le temps pour un café! D'ailleurs, je viens d'en prendre un! -[RCR2:RCR] -~w~2 +[CUB4_L:CUBAN4] +Faut qu'on liquide les Haïtiens! -[RCR3:RCR] -~w~3 +[CUB4_M:CUBAN4] +Tommy, tu sais comment on tue un serpent? -[RCRGO:RCR] -~w~GO ! +[CUB4_N:CUBAN4] +Tu le mords au cul! Ahahaha! -[RCBLAP:RCR] -Meilleur temps au tour : ~1~:~1~ +[CUB4_O:CUBAN4] +Si tu le dis, Umberto. -[RCBLAP1:RCR] -Meil. temps/tour : ~1~:0~1~ +[CUB4_P:CUBAN4] +Tommy, va nous trouver une petite bagnole haïtienne! -[RCBLA2:RCR] -Temps record au tour : ~1~:~1~ +[CUB4_Q:CUBAN4] +Dès que tu l'as, reviens récupérer mon petit -[RCBLA3:RCR] -Record temps/tour : ~1~:0~1~ +[CUB4_R:CUBAN4] +Pepe et emmène-le chez les Haïtiens. -[RCRRLA1:RCR] -~w~Nouveau record temps au tour : ~1~:~1~ +[CUB4_S:CUBAN4] +Ensuite, tu vas au centre de retraitement des Haïtiens et tu te sers de leurs solvants comme explosif. -[RCRRLA2:RCR] -~w~Nouv. record temps/tour : ~1~:0~1~ +[CUB4_T:CUBAN4] +Boom! Et bye bye! -[RCRACEA:RCR] -Thrashin' RC +[CUB4_U:CUBAN4] +Et toi, Umberto? -[RCRACEB:RCR] -Ragin' RC +[CUB4_V:CUBAN4] +Oh, je reste en arrière, je surveille le café avec papa. -[RCRACEC:RCR] -Chasin' RC +[CUB4_W:CUBAN4] +Il ne se sent pas très bien, tu sais. -[RCLE11:RCR] -Thrashin' RC NIVEAU 1 +[CUB4_02:CUBAN4] +~g~Les bombes ont un retardateur de 45 secondes. -[RCLE12:RCR] -Thrashin' RC NIVEAU 2 +[CUB4_04:CUBAN4] +~r~Tu as mis leur base en alerte! Plus question d'entrer, maintenant! -[RCLE13:RCR] -Thrashin' RC NIVEAU 3 +[CUB4_07:CUBAN4] +Les solvants sont à l'arrière, amigo. -[RCLE21:RCR] -Ragin' RC NIVEAU 1 +[CUB4_08:CUBAN4] +Hola, amigos. -[RCLE22:RCR] -Ragin' RC NIVEAU 2 +[CUB4_09:CUBAN4] +Bueno. Putains d'Haïtiens. Muerte. -[RCLE23:RCR] -Ragin' RC NIVEAU 3 +[CUB4_10:CUBAN4] +Vamos. -[RCLE31:RCR] -Chasin' RC NIVEAU 1 +[CUB4_11:CUBAN4] +Si, vamos. -[RCLE32:RCR] -Chasin' RC NIVEAU 2 +[CUB4_12:CUBAN4] +Hé, on a besoin d'une bagnole haïtienne! -[RCLE33:RCR] -Chasin' RC NIVEAU 3 +[CUB4_13:CUBAN4] +Bueno, allons trouver ces muchachos! -[RCRACE2:RCR] -~w~Essaie de battre les autres véhicules radiocommandés dans une course en ~1~ tour(s), autour du chantier ! +[CUB4_14:CUBAN4] +Suis mes amigos. -[RCRWIN6:RCR] -~w~Recommence la course pour battre ton meilleur temps au tour ! +[CUB4_15:CUBAN4] +Ok, tu entres... -[RCQUIT:RCR] -~r~Tes batteries sont à plat ? +[CUB4_16:CUBAN4] +Je vais poser la bombe, couvrez-moi! -[RCRFAIL:RCR] -~r~T'es pas arrivé premier ! +[CUB4_17:CUBAN4] +COURS! -[RCRLAP1:RCR] -~c~1ER ~w~TOUR +[CUB4_18:CUBAN4] +Mec, c'est un quartier cool... -[RCRLAP2:RCR] -~c~2E ~w~-TOUR +[CUB4_19:CUBAN4] +Cet endroit est une décharge, mec. -[RCRLAP3:RCR] -~c~3E ~w~TOUR +[CUB4_20:CUBAN4] +J'avais une belle copine... Elle vivait dans le coin. -[RCRLAP4:RCR] -~c~4E ~w~TOUR +[CUB4_21:CUBAN4] +Tu sais, ils font de super pizzas, ici! -[RCRWIN:RCR] -~w~Bravo, t'as gagné et inscrit le meilleur temps au tour, avec ~1~:~1~ ! Voici un bonus de 500$ ! +[CUB4_22:CUBAN4] +Hé, mec, tu conduis comme une putain de gonzesse! -[RCRWINB:RCR] -~w~Bravo, t'as gagné et inscrit le meilleur temps au tour, avec ~1~:0~1~ ! Voici un bonus de 500$ ! +[CUB4_23:CUBAN4] +T'es perdu, mec? -{=================================== MISSION TABLE TOUR ===================================} +[CUB4_24:CUBAN4] +T'as laissé Pepe derrière, va le récupérer! -[TOUR_H1:TOUR] -~w~Astuces photo : place-toi ~h~face~w~ au touriste, ~h~mais pas trop loin~w~. Veille à ce que ~h~le touriste et le décor~w~ soient bien sur la photo. +[CUB4_03:CUBAN4] +~g~Ne sors pas de la bagnole avant qu'elle soit garée en sécurité dans l'enceinte. -[TOUR_I2:TOUR] -~w~Tu obtiens des primes pour les photos de grande qualité ! +[CUB4_26:CUBAN4] +~g~Emmène Pepe, file au nord dans Little Haïti et fauche une bagnole Vaudou. -[TOUR_S0:TOUR] -~w~Il te reste ~h~~1~~w~ photos à prendre. +[CUB4_27:CUBAN4] +~g~Va retrouver Rico et les autres Cubains. -[TOUR_S1:TOUR] -~w~Il te reste une photo ! Tâche de pas la rater ! +[CUB4_28:CUBAN4] +~g~Va rejoindre les Cubains dans l'usine de dope haïtienne. -[TOUR_S2:TOUR] -~w~Ne gâche pas tes photos ! Il t'en reste ~h~~1~. +[CUB4_29:CUBAN4] +~g~Marche sur chacun des marqueurs pour y poser une bombe. -[TOUR_S4:TOUR] -~w~Tu dois bien cadrer le ~b~touriste~w~ ! Il te reste ~h~~1~~w~ photos à prendre. +[CUB4_30:CUBAN4] +~g~Une fois les trois bombes posées, sors de l'usine avant qu'elle n'explose. -[TOUR_F1:TOUR] -~r~Le touriste est mort ! +[CUB4_31:CUBAN4] +~g~Sors de l'usine! -[TOUR_F2:TOUR] -~r~T'as perdu le touriste ! +[CUB4_32:CUBAN4] +~g~Gare la bagnole à l'endroit du bip et descends. -[TOUR_F3:TOUR] -~r~T'as pas pris de photo du touriste ! +[CUB4_06:CUBAN4] +~r~Tu ne t'es pas assez éloigné de la base et on a dû annuler l'explosion! -[TOUR_F4:TOUR] -~r~T'avais plus assez de temps ! +{=================================== MISSION TABLE FINALE ===================================} -[TOUR_F5:TOUR] -~r~Mission Touriste annulée. +[FIN_1A:FINALE] +Amène-toi, putain de salopard de traître! -[TOUR_F6:TOUR] -~r~L'agresseur s'est tiré avec l'appareil photo du touriste ! +[FIN_1B:FINALE] +Tu vas crever, Judas de mes deux! -[TOUR_O1:TOUR] -~w~Emmène le touriste sur le ~y~lieu touristique. +[FIN_1C:FINALE] +C'est la dernière danse de Lance Vance! -[TOUR_O2:TOUR] -~w~Ne laisse pas tomber le ~b~touriste ! +[FIN_2B:FINALE] +Ah ouais, c'est ce que tu crois? -[TOUR_O3:TOUR] -~w~Suis le ~b~touriste~w~ à pied jusqu'au lieu de la photo. +[FIN_2C:FINALE] +J'ai dit que je l'avais assez entendu celle-là à l'école! -[TOUR_O4:TOUR] -~w~Utilise l'appareil photo du ~b~touriste~w~ pour prendre le cliché. +[FIN_3:FINALE] +Plus personne pour couvrir ton cul, hein, Tommy? -[TOUR_O5:TOUR] -~w~Ramène le touriste à l'~y~aéroport. +[FIN_4:FINALE] +T'es plus que du passé, Tommy, du passé! -[TOUR_O6:TOUR] -~w~Vite ! T'as plus beaucoup de temps ! +[FIN_5:FINALE] +T'as choisi le mauvais camp, Lance... -[TOUR_O7:TOUR] -~w~Récupère le ~b~touriste. +[FIN_11A:FINALE] +Tu m'as volé quinze ans de ma vie, Sonny... -[TOUR_O8:TOUR] -~w~Récupère le ~b~touriste~w~ suivant avant la fin du chrono. +[FIN_11B:FINALE] +Et je viens te présenter l'addition! -[TOUR_O9:TOUR] -~w~Tu devrais suivre le ~b~touriste~w~. Tu perds du temps ! +[FIN_12A:FINALE] +T'as encore rien compris! -[TOUR_OA:TOUR] -~w~Le ~b~touriste~w~ t'attend pour prendre la photo. Dépêche-toi, t'as plus beaucoup de temps ! +[FIN_12B:FINALE] +Tu m'appartiens, Tommy... -[TOUR_W1:TOUR] -~w~Paie reçue : ~h~~1~$~w~ Désolé, pas de bonus cette fois-ci. +[FIN_12C:FINALE] +C'est moi qui devait les faire ces quinze années! -[TOUR_W2:TOUR] -~w~Paie reçue : ~h~~1~$~w~ plus ~h~~1~$~w~ de bonus pour une bonne photo ! +[FIN_13:FINALE] +Attrapez-le, les mecs, il a jamais rien pigé. -[TOUR_W3:TOUR] -~w~Paie reçue : ~h~~1~$~w~ plus ~h~~1~$~w~ de bonus pour une super photo ! +[FIN1_01:FINALE] +Qu'est-ce qui se passe? -[TOUR_W4:TOUR] -~w~Paie reçue : ~h~~1~$~w~ plus ~h~~1~$~w~ de bonus pour une excellente photo ! +[FIN1_02:FINALE] +Tommy! Ah, bien, bien. Ecoute, écoute... Euh, écoute. -[TOUR_W5:TOUR] -~w~Bien joué ! T'as terminé toutes les missions 'Sights before Flights'. ~1~$ de bonus ! +[FIN1_03:FINALE] +J'aime bien les poissons. Ouais, j'adore le poisson! -[TOURDAM:TOUR] -~w~LIEU TOURISTIQUE ~1~ : ~w~emmène ce touriste à Cochrane Dam et prends une photo attestant de sa présence ! +[FIN1_04:FINALE] +Je l'aime à toutes les sauces, dans le bocal ou dans l'assiette, -[TOURBRI:TOUR] -~w~LIEU TOURISTIQUE ~1~ : ~w~cette dame veut voir Callahan Bridge, depuis Portland. +[FIN1_05:FINALE] +mais c'est pas parce que je l'aime que je veux dormir avec! -[TOURDRK:TOUR] -~w~LIEU TOURISTIQUE ~1~ : ~w~prends une photo de cette fan de cinéma devant la maison de l'acteur Black Lightman, sur Cedar Grove, à Shoreside Vale. +[FIN1_06:FINALE] +Et maintenant, il y a tes cousins ritals qui s'amènent pour me coller les pieds dans le béton, et je... -[TOURSTA:TOUR] -~w~LIEU TOURISTIQUE ~1~ : ~w~prends une photo de cette fan de sport devant le Liberty Memorial Coliseum, sur Staunton. +[FIN1_07:FINALE] +La ferme, Ken. Assis. -[TOURCHU:TOUR] -~w~LIEU TOURISTIQUE ~1~ : ~w~emmène ce pèlerin à la célèbre Liberty Cathedral, sur Staunton. +[FIN1_08:FINALE] +Lance, bordel, qu'est-ce qui se passe? -[TOURBCH:TOUR] -~w~LIEU TOURISTIQUE ~1~ : ~w~montre le merveilleux panorama de Portland Rock et de son phare depuis Portland Beach à cette touriste. +[FIN1_09:FINALE] +C'est tes amis du nord, Tommy... Ils ont pas aimé ce que t'as fait à leur mec. -[TOURCHI:TOUR] -~w~LIEU TOURISTIQUE ~1~ : ~w~l'ambiance orientale de Chinatown Plaza, à Portland, est la destination exotique que recherche ce touriste. +[FIN1_10:FINALE] +Ils s'amènent aujourd'hui pour régler cette affaire. -[TOURSHO:TOUR] -~w~LIEU TOURISTIQUE ~1~ : ~w~cette touriste veut que ses amies pensent qu'elle a fait son shopping au très chic Staunton Shopping Mall. Emmène-la sur place et prends-la en photo ! +[FIN1_11:FINALE] +Ils ont mis plus de temps que je pensais... -[TOURCAS:TOUR] -~w~LIEU TOURISTIQUE ~1~ : ~w~ce joueur invétéré veut que tu prennes sa photo devant le célèbre Casino sur Staunton. +[FIN1_12:FINALE] +Les mecs, faut en finir et faire comprendre à tout le monde que désormais, c'est mon business! LE MIEN! -[TOURMUS:TOUR] -~w~LIEU TOURISTIQUE ~1~ : ~w~cette universitaire veut visiter le Liberty City Museum sur Staunton, et obtenir une photo qui montre la taille impressionnante du bâtiment. +[FIN1_13:FINALE] +Ken, prend la première production de faux dollars et mets-en pour vingt millions dans des porte-documents. -[TOURHAL:TOUR] -~w~LIEU TOURISTIQUE ~1~ : ~w~ce touriste veut visiter l'hôtel de ville sur Staunton, une dernière fois avant de partir. +[FIN1_14:FINALE] +Lance, tu rassembles tout le monde... -[TOURRED:TOUR] -~w~LIEU TOURISTIQUE ~1~ : ~w~les amis de ce touriste prétendent qu'il n'a pas assez de cran pour visiter un club de striptease du quartier Red Light de Portland. Prouve-leur le contraire ! +[FIN2_01:FINALE] +Tommy! -[TOURMU0:TOUR] -~w~L'~r~agresseur~w~ a volé l'appareil photo ! Récupère-le ! +[FIN2_02:FINALE] +Quoi? T'embrasses pas ton vieux pote? -[TOURMU1:TOUR] -~w~Ca fait un criminel de moins dans les rues ! Ramasse l'~g~appareil photo ! +[FIN2_03:FINALE] +Ca fait quinze piges que je suis hors-circuit -[TOUR00:TOUR] -~w~Emmène le touriste au ~y~Cochrane Dam~w~, à Shoreside Vale. +[FIN2_04:FINALE] +et je suis un peu rouillé question étiquette. -[TOUR01:TOUR] -~w~Emmène la touriste au ~y~Liberty Memorial Coliseum~w~, sur Staunton. +[FIN2_05:FINALE] +Toujours la haine, hein, Tommy! -[TOUR02:TOUR] -~w~Emmène le touriste au ~y~Chinatown Plaza~w~, à Portland. +[FIN2_06:FINALE] +Je te l'avais pas dit que ton sale caractère te causerait des emmerdes? -[TOUR03:TOUR] -~w~Emmène le touriste à la ~y~Liberty Cathedral~w~, sur Staunton. +[FIN2_07:FINALE] +Il y a vingt millions là-dedans... -[TOUR06:TOUR] -~w~Emmène le touriste au ~y~club de striptease~w~ du Red Light District de Portland. +[FIN2_08:FINALE] +Combien ils étaient déjà? Dix, non onze... -[TOUR07:TOUR] -~w~Emmène le touriste au ~y~Liberty City Museum~w~, sur Staunton. +[FIN2_09:FINALE] +C'est pour ça qu'on t'a surnommé le boucher d'Hartwood! Hé hé hé! -[TOUR08:TOUR] -~w~Emmène le touriste au ~y~casino~w~, sur Staunton. +[FIN2_10:FINALE] +Tu m'avais envoyé buter un mec, un seul mec. Mais ils savaient que je venais, Sonny... -[TOUR10:TOUR] -~w~Emmène le touriste à l'~y~hôtel de ville~w~ de Staunton. +[FIN2_11:FINALE] +Fais gaffe à ce que tu dis... -[TOUR11:TOUR] -~w~Emmène le touriste à ~y~Portland Beach. +[FIN2_12:FINALE] +Quelqu'un pourrait penser que tu veux me coller sur le dos un malheureux concours de circonstances... -[TOUR04:TOUR] -~w~Emmène la touriste au ~y~Callahan Bridge~w~, côté Portland. +[FIN2_13:FINALE] +Prends simplement ce pognon... -[TOUR09:TOUR] -~w~Emmène la touriste voir la maison de l'acteur ~y~Black Lightman~w~, sur Cedar Grove, à Shoreside Vale. +[FIN2_14:FINALE] +Prendre le putain de fric? -[TOUR_I1:TOUR] -~w~Escorte des touristes jusqu'aux hauts lieux de Liberty City. +[FIN2_15:FINALE] +Tu sais, Tommy, j'ai fait ce que je pouvais pour toi, j'ai tiré des ficelles et demandé des services. -[TOUR_IA:TOUR] -~w~Une fois sur place, prends-les en photo. +[FIN2_16:FINALE] +J'étais ton pote, Tommy. J'espérais que tu entendrais raison et comprendrais ce qui est bon pour les affaires. -[TOUR_IB:TOUR] -~w~Puis ramène-les avant que leur avion ne décolle. +[FIN2_17:FINALE] +Je t'ai fait confiance, Tommy et je suis déçu... -[TOURMEM:TOUR] -~w~LIEU TOURISTIQUE ~1~ : ~w~ce vétéran veut rendre hommage à ses compagnons disparus au Liberty City War Memorial, à Belleville Park, sur Staunton. +[FIN2_18:FINALE] +Mais il y a au moins un mec dans ton organisation de merde qui s'y connaît en business, -[TOUR05:TOUR] -~w~Emmène le touriste au ~y~Liberty City War Memorial~w~ à Belleville Park, sur Staunton. +[FIN2_19:FINALE] +Pas vrai, Lance? + +[FIN2_20:FINALE] +Désolé, Tommy, On est à Vice City. C'est les affaires... + +[FIN2_21:FINALE] +Tu nous as vendus... + +[FIN2_22:FINALE] +Non, juste toi, Tommy, juste TOI. + +[FIN2_23:FINALE] +Le vrai pognon est en haut dans le coffre! + +[FIN2_24:FINALE] +Alors, Tommy, c'était quoi le grand plan? + +[FIN2_25:FINALE] +Tu croyais que j'allais simplement prendre les faux biftons? + +[FIN2_26:FINALE] +Sauver la face et m'enfuir la queue entre les jambes? + +[FIN2_27:FINALE] +Non. + +[FIN2_28:FINALE] +Je voulais juste te faire chier avant de te buter. + +[FIN3_01:FINALE] +Tommy? + +[FIN3_02:FINALE] +Oh, mon Dieu, Tommy! Qu'est-ce qui s'est passé? + +[FIN3_03:FINALE] +A ton avis? + +[FIN3_04:FINALE] +On dirait que t'as niqué ton costard! + +[FIN3_05:FINALE] +Sans compter qu'il était chouette, Tommy! Mais qu'est-ce qui s'est passé? + +[FIN3_06:FINALE] +J'ai eu un désaccord avec un partenaire commercial, tu sais comment c'est. + +[FIN3_07:FINALE] +Tommy, moi, quand j'ai un désaccord avec un partenaire commercial, je lui envoie une lettre enflammée... + +[FIN3_08:FINALE] +A la rigueur, je pisse dans sa boite aux lettres... Mais je commence pas la troisième guerre mondiale! + +[FIN3_09:FINALE] +Tu sais, tu devrais peut-être voir mon psy... + +[FIN3_10:FINALE] +Ce sale con de Lance... + +[FIN3_11:FINALE] +Tommy. J'ai jamais pu blairer ce mec, tu sais? + +[FIN3_12:FINALE] +C'est un névrosé dangereux et égocentrique. Un vrai salopard! + +[FIN3_13:FINALE] +Je suis bien content que tu l'aies liquidé! + +[FIN3_14:FINALE] +Je crois pas qu'on doive s'attendre à plus d'emmerdes en provenance du nord... + +[FIN3_15:FINALE] +... Parce qu'il y a plus de nord... + +[FIN3_16:FINALE] +Maintenant, il n'y a plus que le sud... + +[FIN3_17:FINALE] +Attends, est-ce que ça veut dire ce que je crois que ça veut dire, Tommy? + +[FIN3_18:FINALE] +Qu'est-ce que tu crois que ça veut dire? + +[FIN3_19:FINALE] +Qu'on est au commandement... Enfin, que tu es au commandement. Oh, Tommy... + +[FIN3_20:FINALE] +Tu sais, Ken, c'est peut-être le début d'une grande amitié en affaires... + +[FIN3_21:FINALE] +Après tout, t'es un voleur minable un peu magouilleur sur les bords... + +[FIN3_22:FINALE] +Et moi je suis un tueur psychotique doublé d'un dealer... + +[FIN3_23:FINALE] +Ouais. Si c'est pas grandiose! + +[FIN_B1:FINALE] +~g~Va tuer ~y~Vance~g~ le traître. + +[FIN_B2:FINALE] +~g~Trouve ~p~Sonni~g~ et règle-lui son compte pour de bon. + +[FIN_B3:FINALE] +~g~La mafia essaye de voler ton pognon. Défends le coffre. + +[FIN_B4:FINALE] +~g~Tu es presque mort. Va chercher ~w~de quoi te soigner~g~ en bas. + +[FIN_B5:FINALE] +~g~La mafia te vole ton pognon. Défends le ~c~coffre. + +[FIN_B7:FINALE] +~r~La mafia t'a volé tout ton pognon. + +[DEFSAFE:FINALE] +~g~Retourne au coffre et protège-le. + +{=================================== MISSION TABLE FIRETRK ===================================} + +[F_PASS1:FIRETRK] +Feu éteint! + +[F_FAIL2:FIRETRK] +~r~T'arrives trop tard! + +[F_CANC:FIRETRK] +~r~Mission pompier annulée! + +[F_EXTIN:FIRETRK] +INCENDIES : + +[F_START:FIRETRK] +~g~Véhicule en feu repéré dans le secteur ~a~. Va éteindre le feu. + +[SIREN_1:FIRETRK] +Pour déclencher la sirène de ce véhicule, appuie brièvement sur la ~h~~k~~VEHICLE_HORN~~w~. + +[SIREN_2:FIRETRK] +Pour déclencher la sirène de ce véhicule, appuie brièvement sur la ~h~~k~~VEHICLE_HORN~~w~. + +[FIREPRO:FIRETRK] +Mission Camion de pompiers niveau 12 réussie. T'es complètement ignifugé maintenant! + +[F_FAIL1:FIRETRK] +Mission Camion de pompiers achevée. + +[F_STAR1:FIRETRK] +~g~Véhicules en flammes dans la zone ~a~. Va éteindre l'incendie. + +[SPRAY_4:FIRETRK] { reVC update } +Utilise la touche ~h~~k~~VEHICLE_FIREWEAPON~ ~w~pour tirer avec le canon à eau et le ~h~~k~~VEHICLE_TURRETLEFT~~w~ et ~h~~k~~VEHICLE_TURRETRIGHT~~w~ pour viser. + +[SPRAY_1:FIRETRK] { reVC update } +Utilise la touche ~h~~k~~VEHICLE_FIREWEAPON~ ~w~pour tirer avec le canon à eau et le ~h~~k~~VEHICLE_TURRETLEFT~~w~ et ~h~~k~~VEHICLE_TURRETRIGHT~~w~ pour viser. + +{=================================== MISSION TABLE GENERA1 ===================================} + +[GEN1_A:GENERA1] +Mr. Vercetti! + +[GEN1_B:GENERA1] +Colonel. + +[GEN1_D:GENERA1] +Non merci. + +[GEN1_E:GENERA1] +Ca me gêne beaucoup d'admettre que la cause d'un de nos problèmes communs semble être un homme en qui j'avais confiance. + +[GEN1_F:GENERA1] +J'ai supporté Gonzalez pendant des années, mais son incompétence a atteint de nouveaux sommets. + +[GEN1_G:GENERA1] +Vous avez le droit de tuer Gonzalez... + +[GEN1_H:GENERA1] +C'est lui qui m'a entubé? La seule chose qui m'intéresse, c'est le pognon! + +[GEN1_I:GENERA1] +Je vous récompenserai pour ce service et nous chercherons ensuite votre argent ensemble. + +[GEN1_J:GENERA1] +Il sera dans son appartement, probablement à moitié saoul. Servez-vous de ça... + +[GEN1_06:GENERA1] +Hé! Il a une tronçonneuse! + +[GEN1_07:GENERA1] +T'approche pas de moi, connard! + +[GEN1_08:GENERA1] +Oh, mon Dieu, j'ai gâché ma vie et j'suis devenu un laidron! + +[GEN1_10:GENERA1] +Je vais t'faire fermer ta grande gueule une bonne fois pour toutes. + +[GEN1_11:GENERA1] +Essaye pas de t'enfuir, bâtard! + +[GEN1_12:GENERA1] +Laisse-toi faire et ça sera rapide! + +[GEN1_13:GENERA1] +Arrête de gueuler, ça intéresse personne! + +[GEN1_C:GENERA1] +Merci d'être venu. Asseyez-vous. Du homard? + +[GEN1_05:GENERA1] +~g~Va tuer Gonzales! + +[GEN1_09:GENERA1] +Je t'offre le double, Tommy, LE DOUBLE! + +[GEN1_18:GENERA1] +~r~Gonzalez a réussi à atteindre le poste de police vivant! + +[GEN1_19:GENERA1] +~g~Les flics de Vice City te cherchent! + +[GEN1_20:GENERA1] +~g~Monte dans une bagnole. + +[GEN1_21:GENERA1] +~g~Va au~h~ Pay 'N' Spray~g~ à~h~ Vice Point~g~. + +[GEN1_22:GENERA1] +~g~Conduis ton véhicule à l'intérieur de l'atelier de peinture pour perdre ton ~h~indice de recherche~g~, ~h~réparer ~g~et ~h~repeindre ~g~ton véhicule. Coût : ~h~$100~g~. Cette coup-ci, c'est gratuit. + +[GEN1_01:GENERA1] +Quand tu cours, maintiens la~h~ ~k~~PED_FIREWEAPON~~w~ enfoncée pour préparer une attaque au corps à corps. + +[GEN1_02:GENERA1] +Quand tu cours, maintiens la~h~ ~k~~PED_FIREWEAPON~~w~ enfoncée pour préparer une attaque au corps à corps. + +[GEN1_03:GENERA1] +Quand tu cours, maintiens la~h~ ~k~~PED_FIREWEAPON~~w~ enfoncée pour préparer une attaque au corps à corps. + +[GEN1_14:GENERA1] +Relâche la~h~ ~k~~PED_FIREWEAPON~~w~ pour attaquer. + +[GEN1_15:GENERA1] +Relâche la~h~ ~k~~PED_FIREWEAPON~~w~ pour attaquer. + +[GEN1_16:GENERA1] +Relâche la~h~ ~k~~PED_FIREWEAPON~~w~ pour attaquer. + +[GEN1_23:GENERA1] +~g~Franchis à nouveau les portes pour revenir au rez-de-chaussée. + +{=================================== MISSION TABLE GENERA2 ===================================} + +[COL2_A:GENERA2] +Tommy! Venez donc vous joindre à moi! + +[COL2_B:GENERA2] +Ca a l'air bon, hein! Un peu de museau de tapir? + +[COL2_C:GENERA2] +Euh... Non. Non, merci. + +[COL2_D:GENERA2] +Tommy, vous êtes comme le vent de la pampa qui m'a purifié de la puanteur de la corruption. + +[COL2_E:GENERA2] +Je dois cependant montrer que je pleure sa mort et continuer les affaires comme d'habitude. + +[COL2_F:GENERA2] +Ca me rapproche pas beaucoup de mon pognon... + +[COL2_G:GENERA2] +Tommy, mon cher, vous n'êtes pas à Liberty. Ici, ça se passe autrement. + +[COL2_H:GENERA2] +Je vais continuer mon enquête, mais en attendant, j'ai une bonne affaire à conclure. + +[COL2_I:GENERA2] +Un service à rendre à un ami, Cortez. + +[COL2_J:GENERA2] +Vous êtes un ami, Tommy. Je savais que vous ne me laisseriez pas tomber. + +[COL2_K:GENERA2] +Il faut que vous rencontriez un coursier qui m'a obtenu une technologie intéressante... + +[COL2_1:GENERA2] +Ah, la pluie est très dense en cette saison... + +[COL2_2:GENERA2] +Quoi? + +[COL2_3:GENERA2] +Ah, comment? + +[COL2_4:GENERA2] +Ecoute, Cortez m'envoie. File-moi ces putain de processeurs. + +[COL2_5:GENERA2] +Oh... D'accord. + +[COL2_B1:GENERA2] +~g~Retrouve le coursier au centre commercial. + +[COL2_B2:GENERA2] +~g~Le coursier se barre avec les processeurs de guidage. Ne le laisse pas filer! + +[COL2_B3:GENERA2] +~g~Ramène les processeurs de guidage au Colonel. + +[COL2_F1:GENERA2] +~r~T'as buté le contact! + +[COL2_F2:GENERA2] +~r~Le coursier est mort. Récupère les processeurs. + +[COL2_6A:GENERA2] +Arrête, espèce de porc impérialiste d'américain! Ceci est la propriété du gouvernement français! Rendez-le! + +[BLIPHLP:GENERA2] +Le bip sur le radar est un triangle pointant vers le haut, ce qui signifie que la cible est plus élevée que toi. + +[COL2_F3:GENERA2] +~r~Les processeurs de guidage sont au fond de la mer. + +[COL2_F4:GENERA2] +~r~Le coursier s'est fait la malle! Tu n'as pas récupéré les processeurs de guidage! + +{=================================== MISSION TABLE GENERA3 ===================================} + +[GEN3_49:GENERA3] +Santé de Lance: + +[GEN3_A:GENERA3] +Merci d'être venu, Thomas. + +[GEN3_B:GENERA3] +Pardonnez-moi d'en venir directement au fait... + +[GEN3_C:GENERA3] +Diaz m'a demandé de superviser une petite transaction... + +[GEN3_D:GENERA3] +Espérons que ça se passera mieux que l'autre fois, n'est-ce pas? + +[GEN3_E:GENERA3] +C'est pour ça que j'ai pensé à vous, amigo. + +[GEN3_F:GENERA3] +J'ai déposé une arme dans le parking à niveaux. + +[GEN3_G:GENERA3] +Récupèrez-le et allez surveiller les hommes de Diaz au rendez-vous. + +[GEN3_H:GENERA3] +Gracias, amigo... + +[GEN3_1:GENERA3] +On s'accapare toute l'action, à ce que je vois... + +[GEN3_2:GENERA3] +Ecoute, tu veux pas faire autre chose que de me suivre partout comme mon ombre? Pourquoi tu ne viens pas pour me montrer à quoi t'es bon? + +[GEN3_3:GENERA3] +Pourquoi pas... Au fait, moi c'est Lance. + +[GEN3_5:GENERA3] +Tu dois être le nouveau porte-flingues de Cortez. + +[GEN3_6:GENERA3] +Jusqu'à ce que de meilleures opportunités se présentent... + +[GEN3_7:GENERA3] +Ils seront là d'une minute à l'autre. On ferait mieux de se trouver une bonne planque... + +[GEN3_8:GENERA3] +OK! Je vais sur le balcon et toi tu t'mets sur le toit de l'autre côté de la cour. + +[GEN3_9:GENERA3] +J'suis vivant! Têtes de noeuds! Et ça c'est grâce à toi! C'est quoi ton nom? + +[GEN3_10:GENERA3] +Tommy. + +[GEN3_11:GENERA3] +On se reverra bientôt, je pense! + +[GEN3_12:GENERA3] +Bon, où est passé Lance? Merde... + +[GEN3_14:GENERA3] +Tommy! J'ai besoin d'un coup de main! + +[GEN3_15:GENERA3] +T'en fais pas, je te couvre! + +[GEN3_16:GENERA3] +Les hommes de Diaz se font massacrer! + +[GEN3_19:GENERA3] +~g~Les haïtiens! Ils veulent foutre le deal en l'air! Protège Diaz! + +[GEN3_20:GENERA3] +~g~Va au parking à niveaux où tu peux récupérer le flingue que le Colonel a laissé pour toi. + +[GEN3_22:GENERA3] +Santé de Diaz : + +[GEN3_23:GENERA3] +~g~T'as laissé Lance derrière! Va le chercher! + +[GEN3_25:GENERA3] +~r~Lance est mort! + +[GEN3_28:GENERA3] +~g~Ramène la serviette à Diaz. + +[GEN3_29:GENERA3] +~g~Récupère la serviette et ramène-la à Diaz. + +[GEN3_30:GENERA3] +~r~Il s'est barré avec le pognon! Diaz va te couper les couilles! + +[GEN3_33:GENERA3] +~r~Tu es supposé surveiller Diaz et ses hommes, pas les flinguer! + +[GEN3_34:GENERA3] +~r~Ils ne vont pas pouvoir faire affaire si tu descends les cubains! + +[GEN3_35:GENERA3] +~g~Il a volé le pognon de Diaz! + +[GEN3_36:GENERA3] +~g~Saute sur la moto, rattrape-le et récupère le pognon de Diaz! + +[GEN3_37:GENERA3] +~g~Voilà les Cubains. Surveille le deal en veillant à la sécurité de Diaz et de Lance. + +[GEN3_38:GENERA3] +~r~Diaz est mort! Tu devais le protéger! + +[GEN3_39:GENERA3] +~g~Prends position en haut des escaliers. + +[GEN3_44:GENERA3] +~g~Va avec Lance au rendez-vous et protège Diaz. + +[GEN3_40:GENERA3] { reVC update } +Pour ~h~tirer droit devant ~w~lorsque tu es en ~h~moto~w~, appuie sur la ~h~~k~~VEHICLE_FIREWEAPON~. + +[GEN3_41:GENERA3] { reVC update } +Pour ~h~tirer droit devant ~w~lorsque tu es en ~h~moto~w~, appuie sur la ~h~~k~~VEHICLE_FIREWEAPON~. + +[GEN3_46:GENERA3] +Chiiiier! + +[GEN3_47:GENERA3] +Tommy! + +[GEN3_48:GENERA3] +Merde! + +[GEN3_50:GENERA3] +~r~Tu as paumé le fric de Diaz! La prochaine fois, essaie de ne pas cramer le blé! + +[GEN3_51:GENERA3] +Encore des Haïtiens dans un camion merdique! + +[GEN3_54:GENERA3] +s Restez pas plantés là, bande d'abrutis! Butez-moi ce Haïtien de merde! + +[GEN3_55:GENERA3] +Tommy! Je reste là et je m'occupe de Diaz! + +[GEN3_18:GENERA3] +~g~Voilà les Cubains. Reste près de Diaz. Surveille les opérations tout en t'assurant que Diaz et Lance sont en sécurité. + +[GEN3_56:GENERA3] +~r~Diaz a été pris dans une embuscade et s'est fait tuer! La prochaine fois, ne le quitte pas des yeux! + +[GEN3_57:GENERA3] +Le Kruger est un fusil d'assaut permettant de viser manuellement à la 1ere personne. + +[GEN3_58:GENERA3] +Appuie sur la touche~h~ R1~w~ et maintiens-la enfoncée pour ~h~viser~w~ avec un fusil d'assaut. + +[GEN3_59:GENERA3] +Appuie sur la touche~h~ L1~w~ et maintiens-la enfoncée pour ~h~viser~w~ avec un fusil d'assaut. + +[GEN3_60:GENERA3] +Appuie sur la touche ~h~~k~~PED_FIREWEAPON~~w~ pour ~h~tirer~w~ avec un fusil d'assaut. + +[GEN3_61:GENERA3] +Appuie sur la touche ~h~~k~~PED_FIREWEAPON~~w~ pour ~h~tirer~w~ avec un fusil d'assaut. + +[GEN3_62:GENERA3] +Appuie sur la touche ~h~~k~~PED_FIREWEAPON~~w~ pour ~h~tirer~w~ avec un fusil d'assaut. + +[GEN3_63:GENERA3] +Tu peux fusiller des types de côté sur une ~h~ moto ~w~, mais également ~h~tirer droit devant~w~. + +[GEN3_64:GENERA3] { reVC update } +Appuie sur la touche ~h~~k~~VEHICLE_FIREWEAPON~~w~ pour tirer droit devant toi sur une moto. + +[GEN3_65:GENERA3] { reVC update } +Appuie sur la touche ~h~~k~~VEHICLE_FIREWEAPON~~w~ pour tirer droit devant toi sur une moto. + +[GEN3_66:GENERA3] { reVC update } +Appuie sur la touche ~h~~k~~VEHICLE_FIREWEAPON~~w~ pour tirer droit devant toi sur une moto. + +[GEN3_67:GENERA3] +Il te faut une mitrailleuse pour tirer droit devant toi sur une moto. + +[GEN3_53:GENERA3] +Mon argent! + +[GEN3_52:GENERA3] +Ces Haitiens pensent qu'ils peuvent se payer Ricardo Diaz! + +{=================================== MISSION TABLE GENERA4 ===================================} + +[DETON:GENERA4] +DETONATION : + +[COL4_3:GENERA4] +CONVOI, HALTE! + +[COL4_6:GENERA4] +ON EST SOUS LE FEU ENNEMI! + +[COL4_7:GENERA4] +Civil, éloigne-toi du char! + +[COL4_8:GENERA4] +J'ai dit, dégage! IMMEDIATEMENT! + +[COL4_9:GENERA4] +POSITIONS DEFENSIVES! + +[COL4_11:GENERA4] +Dégagez ce civil de notre chemin, soldat! -Chef, oui, chef! + +[COL4_12:GENERA4] +Un civil dans le char! ARRETEZ-LE! + +[COL4_13:GENERA4] +Ceci est un convoi militaire, ne bloquez pas la route! + +[COL4_14:GENERA4] +Descendez-le, soldat. + +[COL4_15:GENERA4] +Dégagez ce véhicule civil de la route! -Chef, on déplace le véhicule, chef! + +[COL4_17:GENERA4] +Ok, peloton, on dégage! + +[COL4_18:GENERA4] +Y'a quelqu'un dans le char, chef! + +[COL4_19:GENERA4] +Trouvez-moi quelques beignets, soldat! -Chef, oui, chef! + +[COL4_20:GENERA4] +Cible verrouillée, chef! + +[COL4_21:GENERA4] +TIREUR D'ELITE! + +[COL4_22:GENERA4] +Je me tire d'ici. + +[COL4_23:GENERA4] +Objectif atteint! Peloton, rompez! -Allons manger quelques beignets! + +[COL4_24:GENERA4] +Protocole de sécurité Delta India Echo déclenché! Autodestruction du véhicule initialisée! + +[COL4_26:GENERA4] +Prépare-toi à crever, ordure communiste! + +[COL4_B2:GENERA4] +~r~Le char est parvenu sans problème à destination! + +[COL4_B5:GENERA4] +~r~Le char est détruit! + +[COL4_01:GENERA4] +Diaz était très content et il veut vous voir. + +[COL4_02:GENERA4] +Et c'est une bonne chose? + +[COL4_03:GENERA4] +Evidemment! Même si je commence à penser que Diaz est responsable de notre malheureuse perte... + +[COL4_04:GENERA4] +Qu'est-ce qui vous fait dire ça? + +[COL4_05:GENERA4] +On n'accuse pas comme ça un homme comme Diaz... Je ne faisais que penser à haute voix... + +[COL4_06:GENERA4] +Quoi qu'il en soit, j'ai une proposition qui devrait vous intéresser... + +[COL4_07:GENERA4] +Je n'ai plus le temps de faire des commissions, Cortez. + +[COL4_08:GENERA4] +J'aurais pensé qu'un homme avec des dettes aussi délicates serait ouvert à toute opportunité. Mais écoutez quand même, Tommy. + +[COL4_09:GENERA4] +Allez-y... + +[COL410:GENERA4] +J'ai un acheteur pour une pièce d'artillerie qui est emmenée à travers la ville. Récupèrez-la pour moi. + +[COL411:GENERA4] +Et une fois que vous l'aurez, je veux que vous m'appeliez de suite, et... + +[COL4_B4:GENERA4] +~g~Le char est verrouillé. Trouve le moyen d'en faire sortir les occupants. + +[COL4_1:GENERA4] +Qu'est-ce qui se passe avec l'artilleur? - Aucune idée, chef! + +[COL4_4:GENERA4] +Montez voir, soldat! - Chef, oui, chef! + +[COL4_B1:GENERA4] +~g~Va faucher la pièce d'artillerie escortée à travers la ville. + +[COL4_B3:GENERA4] +~g~Amène le char dans le garage du colonel avant qu'il ne s'autodétruise. + +[COL4_B6:GENERA4] +~g~Trouve un moyen de piquer le char! + +[COL4_B7:GENERA4] +~g~Conduis le char dans le garage. + +[COL4_B8:GENERA4] +~g~Sors du char et du garage. + +{=================================== MISSION TABLE GENERA5 ===================================} + +[COL5A_1:GENERA5] +Les circonstances me forcent à un départ en hâte, amigo. + +[COL5A_2:GENERA5] +Quel est le problème? + +[COL5A_3:GENERA5] +Les français veulent récupérer leur technologie de missile et après le dernier incident, + +[COL5A_4:GENERA5] +je crois que l'heure est venue de me mettre à l'abri. + +[COL5A_5:GENERA5] +Ca serait pas plus sûr de partir en avion ? + +[COL5A_6:GENERA5] +Je serais mort avant d'avoir atteint l'enregistrement. D'ailleurs, il faut que je fasse sortir la marchandise du pays. + +[COL5A_7:GENERA5] +Besoin d'un autre flingue? + +[COL5A_8:GENERA5] +Vous, amigo, vous en valez dix... hahahaha. + +[COL5B_1:GENERA5] +Tommy, vous m'avez bien protégé et servi. + +[COL5B_2:GENERA5] +Mais maintenant, vous devez nous laisser avant qu'on arrive en pleine mer. + +[COL5B_4:GENERA5] +Merci, Colonel. + +[COL5B_5:GENERA5] +Une dernière chose, pendant que je suis parti, pouvez-vous surveiller Mercedes pour moi? + +[COL5B_6:GENERA5] +Je crois qu'elle peut se surveiller tout seule, mais soyez tranquille, je garderai l'oeil ouvert. + +[COL5B_7:GENERA5] +Merci, mon ami. Jusqu'à mon retour. + +[COL5B_8:GENERA5] +Adios, amigo. + +[COL5_7:GENERA5] +Arrêtez de me tirer dessus! + +[COL5_9:GENERA5] +Tommy, empêchez-les de me tirer dessus! + +[COL5_10:GENERA5] +J'ai l'immunité diplomatique! + +[COL5_11:GENERA5] +Ne tirez pas, je suis un Colonel! + +[COL5_12:GENERA5] +Tommy, descendez-les, mon pays vous en sera reconnaissant. + +[COL5_13:GENERA5] +Tommy, on est submergés par les Français! + +[COL5_14:GENERA5] +Tommy, il y a des Français partout! Je déteste ça! + +[COL5_15:GENERA5] +Tommy, comment ça va? + +[COL5_16:GENERA5] +Ca, c'est pour Piaf et Gainsbourg et votre saloperie de pain français! + +[COL5_1:GENERA5] +A bâbord! A bâbord! + +[COL5_2:GENERA5] +Ils attaquent à tribord! + +[COL5_3:GENERA5] +Le pont devant! + +[COL5_4:GENERA5] +Ils ont un hélico! + +[COL5_B1:GENERA5] +~g~Protège le colonel et son yacht à tout prix. + +[COL5_B2:GENERA5] +~g~Passe devant et dégage la route pour le yacht du colonel. + +[COL5_B3:GENERA5] +~r~Le colonel est mort! + +[COL5_B4:GENERA5] +~g~Abats l'hélicoptère vous tire dessus. + +[COL5B_3:GENERA5] +Je vous laisse ma vedette personnelle. Gardez-la en témoignage de ma gratitude! + +[COL5_B5:GENERA5] +~g~Descends les hélicos et protège bien le yacht. + +[COL5_B6:GENERA5] +~g~Tu n'as plus de munitions, va en chercher d'autres dans les escaliers du pont supérieur. + +[COL5_B7:GENERA5] +~g~Ta santé diminue. Régénère-la dans les escaliers du pont supérieur. + +{=================================== MISSION TABLE HAIT1 ===================================} + +[HAM1_A:HAIT1] +Bonjour? Y'a quelqu'un? + +[HAM1_B:HAIT1] +Entre, mon petit, et repose ton esprit. + +[HAM1_C:HAIT1] +Tu dois être le grand méchant homme dont m'a parlé mon grand-père. + +[HAM1_D:HAIT1] +Il me dit des choses sur toi, tu sais, quand il me rend visite + +[HAM1_E:HAIT1] +et aussi des choses sur les autres qui t'attendent. + +[HAM1_F:HAIT1] +Bon, nous sommes tous morts depuis longtemps, mais toi, + +[HAM1_G:HAIT1] +je ne voudrais pas être à ta place, hé hé hé! + +[HAM1_H:HAIT1] +J'ai reçu un message. De venir ici. + +[HAM1_I:HAIT1] +Tu les entends? + +[HAM1_J:HAIT1] +Ils crient ton nom, mon garçon, ils doivent vraiment te vouloir, tu ne crois pas? + +[HAM1_K:HAIT1] +Maintenant, si tu rends service à tata Poulet, peut-être qu'elle peut t'aider. + +[HAM1_L:HAIT1] +Peut-être qu'elle peut te donner un petit grigri après tout ça. + +[HAM1_M:HAIT1] +Te donner de la magie pour donner le mauvais oeil au policier, mmmm? + +[HAM1_N:HAIT1] +Ecoute, tout ça est très, hum... me donner quoi? + +[HAM1_O:HAIT1] +Je... Je crois que je me suis planté d'adresse... + +[HAM1_P:HAIT1] +Fais-ça pour moi, Tommy... + +[HAM1_Q:HAIT1] +Les Cubains, ces vilains coqs arrogants, hum, + +[HAM1_R:HAIT1] +ont fait des ennuis à mes adorables garçons haïtiens. + +[HAM1_S:HAIT1] +Et maintenant, ils ont dit au policier où je cachais mes poudres! + +[HAM1_T:HAIT1] +Ils pensent que c'est des drogues, les idiots! + +[HAM1_U:HAIT1] +Alors, sois un gentil garçon, Tommy, et va chercher les poudres de tata Poulet. + +[HAM1_V:HAIT1] +Oui, d'accord, d'accord. + +[HAM1_1:HAIT1] +~g~Les policiers se rapprochent des poudres! Va les récupérer avant eux! + +[HAM1_2:HAIT1] +~r~Les policiers ont trouvé la cachette les premiers! + +[HAM1_3:HAIT1] +~g~Ramène tout ça à la planque! + +[HAM1_4:HAIT1] +~g~Bien! Maintenant, la suivante! + +[HAM1_6:HAIT1] +~r~La cachette a été détruite, imbécile! + +[HAM1_7:HAIT1] +~g~Les policiers ont les poudres! Récupère-les avant qu'ils filent! + +[HAM1_8:HAIT1] +~g~Les flics sont en route pour récupérer les poudres, magne-toi! + +[HAT_1A:HAIT1] +~g~Bouge pas d'un poil, connard! + +{=================================== MISSION TABLE HAIT2 ===================================} + +[HAT2_B1:HAIT2] +~g~Va à la camionnette contenant les bombes volantes. + +[HAT2_B2:HAIT2] +Tue les Cubains... + +[HAT2_B4:HAIT2] +... Et détruis leurs bateaux! + +[HAT2_B5:HAIT2] +~g~Les Cubains essayent de s'enfuir! Ne les laisse pas faire! + +[HAT2_B6:HAIT2] +~r~L'avion télécommandé est hors de portée! + +[HAT2_B7:HAIT2] +~g~Un des Cubains s'échappe en voiture. Ne laisse aucun témoin! + +[HAT2_B8:HAIT2] +~r~Tu n'as plus d'avions télécommandés! + +[HAT2_B9:HAIT2] +Avions télécommandés : + +[HAT2_1:HAIT2] +Oh, désolé, j'ai dû me tromper d'adresse... + +[HAT2_2:HAIT2] +Eh bien, entre donc te détendre en buvant un peu de thé. + +[HAT2_3:HAIT2] +Tu as quelque chose pour moi, Tommy? + +[HAT2_4:HAIT2] +Ouais... + +[HAT2_5:HAIT2] +Cet endroit me semble familier. Un vague souvenir d'enfance, un air de déjà vu... + +[HAT2_6:HAIT2] +Tommy, je voudrais te demander de faire une petite commission pour moi... + +[HAT2_7:HAIT2] +Tu me rappelles quelqu'un que... + +[HAT2_8:HAIT2] +Les Cubains ont des bateaux très rapides qui leur servent à traverser les mers avec de la drogue. + +[HAT2_9:HAIT2] +C'est leur gagne-pain. + +[HAT2_10:HAIT2] +Mon neveu a fabriqué quelques bombes volantes pour nous en débarrasser. + +[HAT2_11:HAIT2] +Transforme leurs bateaux en allumettes! + +[HAT2_12:HAIT2] +Bon, merci pour le thé. + +[HAT2_B3:HAIT2] { reVC update } +Appuie sur la touche ~h~~k~~VEHICLE_FIREWEAPON~~w~ pour larguer une bombe ou sur ~h~~k~~VEHICLE_ENTER_EXIT~~w~ pour annuler. + +{=================================== MISSION TABLE HAIT3 ===================================} + +[HAM3_A:HAIT3] +Salut, euh, je... Je cherche quelqu'un dans le coin... + +[HAM3_B:HAIT3] +Tu as l'air d'avoir faim, Tommy. + +[HAM3_C:HAIT3] +On se connait? + +[HAM3_D:HAIT3] +Chut! + +[HAM3_E:HAIT3] +Encore une chose et je te laisse partir, Tommy. + +[HAM3_F:HAIT3] +Mes garçons sont en guerre contre les Cubains. + +[HAM3_G:HAIT3] +Mais pas de revolvers. + +[HAM3_H:HAIT3] +Hum, mais les Cubains ont une suprise qui les attend! + +[HAM3_I:HAIT3] +Pendant qu'ils se battent dans les rues, prends ce fusil et tue-les dans la confusion! + +[HAM3_J:HAIT3] +Personne ne te verra, personne ne t'entendra! + +[HAM3_K:HAIT3] +Si tu fais ça pour tata Poulet, Tommy, tu ne seras plus lié aux cordons de mon tablier! + +[HAM3_1:HAIT3] +~g~On doit gagner cette bataille! Si tous les Haïtiens meurent, c'est foutu! + +[HAM3_3:HAIT3] +~g~Les Cubains risquent de tricher, alors fais attention. + +[HAM3_4:HAIT3] +~r~Tu as été repéré! C'est foutu! + +[HAM3_5:HAIT3] +~g~Tu dois tuer les cubains de loin. Ne te fais pas voir. + +[HAM3_8:HAIT3] +~g~Les Haïtiens se font descendre! Vise mieux! + +[HAM3_7:HAIT3] +~g~Fais gaffe! Les Cubains ont amené des renforts. Liquide-les tous! + +[HAM3_2:HAIT3] +~r~Les Haïtiens sont morts! + +[HAM3_L:HAIT3] +Tata... + +{=================================== MISSION TABLE HOTEL ===================================} + +[INTB_A:HOTEL] +Tommy! Ca fait une paye! + +[INTB_B:HOTEL] +Salut Sonny... + +[INTB_C:HOTEL] +Je sais, je sais, t'es submergé par l'émotion, hein? + +[INTB_D:HOTEL] +Quinze piges et c'est comme si c'était hier! + +[INTB_E:HOTEL] +C'est une façon de voir les choses... + +[INTB_F:HOTEL] +Hé, bosser pour la famille, tu sais, c'est pas de la tarte, + +[INTB_G:HOTEL] +mais la famille veille toujours sur les siens, tu comprends? + +[INTB_H:HOTEL] +Bon, raconte un peu comment l'affaire s'est passée? Ca y est, t'es blindé? + +[INTB_I:HOTEL] +Ecoute, Sonny, on s'est fait piéger. C'était une embuscade. Et ils ont buté Harry et Lee. + +[INTB_J:HOTEL] +J'espère pour toi que tu rigoles, Tommy... Et t'as plutôt intérêt à toujours avoir le fric... + +[INTB_K:HOTEL] +... Non... Sonny... J'ai plus le fric... + +[INTB_L:HOTEL] +C'était mon fric, Tommy! MON FRIC!!! + +[INTB_M:HOTEL] +Vaudrait mieux pas que t'essayes de me baiser Tommy, parce que je suis pas le genre à aimer ça... + +[INTB_N:HOTEL] +Attend Sonny... + +[INTB_O:HOTEL] +Je te donne ma parole d'honneur que je vais récupérer ton fric et la dope. + +[INTB_P:HOTEL] +Et en prime, je t'enverrai les couilles de ceux qui ont fait ça! + +[INTB_Q:HOTEL] +Ca, je le sais déjà... Tommy, t'es pas con, mais je te préviens, moi non plus... + +[INTB_R:HOTEL] +Et si c'était pas toi, tu serais déjà mort... + +[INTB_S:HOTEL] +Mais j'ai un faible pour toi et en souvenir du passé, je vais te laisser t'en charger. + +[INTB_T:HOTEL] +T'en fais pas, Sonny, t'as ma parole! + +[INTB_U:HOTEL] +Je te tiens au courant, ciao. + +{=================================== MISSION TABLE ICECRE1 ===================================} + +[ICC1_4:ICECRE1] +~g~Il n'y a aucun client dans ce secteur. Essaye ailleurs. + +[ICC1_5:ICECRE1] +Deals effectués : + +[ICC1_7:ICECRE1] +~g~Tu reçois de l'argent pour chaque transaction faite, mais plus tu fais d'affaires, plus tu attires l'attention de la police. + +[ICC1_8:ICECRE1] +~g~Pour effectuer une transaction, ~h~gare ta camionnette ~g~et appuie sur la ~h~~k~~VEHICLE_HORN~ ~g~pour jouer le jingle et attirer les clients. + +[ICC1_9:ICECRE1] +~g~Les gangs locaux n'apprécient pas qu'on fasse des affaires sur leur territoire. Attends-toi à des représailles. + +[ICC1_10:ICECRE1] +~g~Tu as fait ~1~ deals! + +[ICC1_11:ICECRE1] +~g~Tu as fait ~1~ deals! + +[ICC1_13:ICECRE1] +~r~T'as fait aucun deal! + +[ICC1_14:ICECRE1] +USINE DE CREME GLACEE OK + +[ICC1_15:ICECRE1] +~g~L'usine de crème glacée génère dorénavant un revenu de $~1~ maximum. Pense à récupérer le fric régulièrement. + +[ICC1_16:ICECRE1] +~g~Utilise la camionnette de Mr Whoopee pour distribuer les produits Cherry Poppers dans Vice City. + +[ICE_AT1:ICECRE1] +USINE DE CREME GLACEE OK + +[ICE_AT2:ICECRE1] +~g~L'usine Cherry Popper génère dorénavant un revenu de $~1~ maximum. Pense à récupérer le fric régulièrement. + +[ICC1_17:ICECRE1] +Mission Distribution terminée + +[ICC1_18:ICECRE1] +Total des ventes de glaces : $~1~ + +[ICC1_19:ICECRE1] +Total de deals réalisés : ~1~ + +{=================================== MISSION TABLE ICECUT ===================================} + +[ICC1_A:ICECUT] +T'es qui toi? + +[ICC1_B:ICECUT] +Le nouveau proprio. + +[ICC1_C:ICECUT] +Est-ce que t'as déjà été enfant? + +[ICC1_D:ICECUT] +Mais de quoi tu parles? + +[ICC1_E:ICECUT] +As-tu été un gosse? + +[ICC1_F:ICECUT] +Ouais! Vas-y, c'est quoi ton problème? + +[ICC1_G:ICECUT] +Je le savais. Un chiard. + +[ICC1_H:ICECUT] +Un putain de gosse pourri gâté, un chialeur, un emmerdeur, un bébé à sa maman! + +[ICC1_I:ICECUT] +Un bébé... Un horrible et dégoûtant petit morveux. Ouin ouin. + +[ICC1_J:ICECUT] +Ta maman t'aime pas. Petite merde! + +[ICC1_K:ICECUT] +Hé! Calme-toi. + +[ICC1_L:ICECUT] +Je HAIS les mouflets et les mômes. + +[ICC1_M:ICECUT] +Ce sont des putains de pourris gâtés, de chialeurs, d'emmerdeurs... + +[ICC1_N:ICECUT] +Ca suffit maintenant! + +[ICC1_O:ICECUT] +C'est quoi ton problème? + +[ICC1_P:ICECUT] +Tu confectionnes des glaces, non? C'est un truc pour les gosses. + +[ICC1_Q:ICECUT] +T'es quoi comme genre de cinglé, toi? + +[ICC1_R:ICECUT] +Que je comprenne... A quoi ça sert de rendre les gosses heureux si tu les déteste? + +[ICC1_S:ICECUT] +Espèce d'abruti, petit curieux, fouinard- + +[ICC1_T:ICECUT] +La ferme! + +[ICC1_U:ICECUT] +-de merde! + +[ICC1_V:ICECUT] +Les glaces c'est une couverture. + +[ICC1_W:ICECUT] +On fait aussi dans autre chose que les produits laitiers. + +[ICC1_X:ICECUT] +Et si je vois un gosse, j'en fait mon affaire. + +[ICC1_Y:ICECUT] +N'est-ce pas, gamin? Ouais, c'est bien ça. Ta maman t'aime pas. + +[ICC1_Z:ICECUT] +Elle te DETESTE! + +[ICC1_ZA:ICECUT] +PROPRIETE ACQUISE! + +{=================================== MISSION TABLE INTRO ===================================} + +[INT1_A:INTRO] +Tommy Vercetti... Oh, merde! + +[INT1_B:INTRO] +J'pensais pas qu'ils le laisseraient sortir un jour... + +[INT1_C:INTRO] +Il a gardé un profil bas, pour se faire oublier... + +[INT1_D:INTRO] +Mais les gens vont vite retrouver la mémoire + +[INT1_E:INTRO] +quand ils vont le voir débouler dans les rues du voisinage. + +[INT1_F:INTRO] +Et ça va pas être bon pour les affaires... + +[INT1_G:INTRO] +Et alors, qu'est-ce qu'on va faire, Sonny? + +[INT1_H:INTRO] +On le traite comme un vieil ami et on lui trouve de quoi s'occuper en-dehors de la ville. OK? + +[INT1_I:INTRO] +On parlait justement de s'étendre vers le sud... Pas vrai? + +[INT1_J:INTRO] +Vice City, c'est du 24 carats, maintenant. + +[INT1_K:INTRO] +Les colombiens, les mexicains... Putain, + +[INT1_L:INTRO] +même les réfugiés cubains se taillent une belle part du gâteau! + +[INT1_M:INTRO] +Mais ils font tous dans la dope, Sonny! + +[INT1_N:INTRO] +Aucune famille ne touche à cette merde! + +[INT1_O:INTRO] +Les temps changent... + +[INT1_P:INTRO] +Les familles ne peuvent pas rester les bras croisés pendant que nos adversaires ramassent le jackpot. + +[INT1_Q:INTRO] +Alors, on envoie un mec là-bas faire le sale boulot + +[INT1_R:INTRO] +et pour nous en tailler une bonne part. OK? + +[INT1_S:INTRO] +C'est qui, notre contact là-bas? + +[INT1_T:INTRO] +Ken Rosenberg, le con d'avocat... + +[INT1_U:INTRO] +Et comment il va faire pour tenir Vercetti en laisse? + +[INT1_V:INTRO] +Il aura pas besoin de faire ça. + +[INT1_W:INTRO] +On le lâche juste dans Vice City + +[INT1_X:INTRO] +et on lui refile un peu de cash pour commencer. OK? + +[INT1_Y:INTRO] +Donne-lui quelques mois... + +[INT1_Z:INTRO] +Et puis, on descendra + +[INT1_A1:INTRO] +lui rendre une petite visite, tu saisis? + +[INT1_A2:INTRO] +Histoire de voir comment il se débrouille... + +[INT2_A:INTRO] +Hey, salut les gars, c'est moi, Ken Rosenberg! Hé ! Super! + +[INT2_B:INTRO] +Bon, euh, je vais vous conduire au rendez-vous, ok? + +[INT2_C:INTRO] +J'ai parlé avec les fournisseurs, ils sont très, hé hé, + +[INT2_D:INTRO] +très impatients de commencer cette affaire, et... euh, + +[INT2_E:INTRO] +si tout se passe sans accroc, on devrait... euh, + +[INT2_F:INTRO] +s'en mettre plein les poches, ce qui est vraiment, vous savez... + +[INT2_G:INTRO] +une bonne chose... + +[INT2_H:INTRO] +Ok. Bon, ils sont frères, ok. + +[INT2_I:INTRO] +Il y en a un qui fait marcher... euh, l'affaire + +[INT2_J:INTRO] +et l'autre qui s'occupe du transport en hélicoptère. + +[INT2_K:INTRO] +Maintenant, ils opèrent du Mexique, + +[INT3_A:INTRO] +Ok, c'est eux, dans l'hélico. + +[INT3_B:INTRO] +Bon, voilà le deal. + +[INT3_C:INTRO] +Ils veulent un échange en terrain découvert. + +[INT3_D:INTRO] +OK? Bon, allons-y et restez groupés. + +[INT3_E:INTRO] +Bon, personne s'énerve, maintenant. + +[INT3_F:INTRO] +Je suis ici! Le moteur tourne! + +[INT3_G:INTRO] +Tu l'as? + +[INT3_H:INTRO] +De la colombienne 100% pure, la meilleure qualité, amigo. + +[INT3_I:INTRO] +Les billets? + +[INT3_J:INTRO] +Des 10 et des 20... usagés. + +[INT3_L:INTRO] +Allez! Sors-nous de là! Roule! + +[INTRO1:INTRO] +Je sors la tête d'un caniveau pour une seconde de défonce, et le destin me chie de la merde plein la gueule! + +[INTRO2:INTRO] +Va roupiller. + +[INTRO3:INTRO] +Qu'est-ce que tu vas faire? + +[INTRO4:INTRO] +Je passerai à ton bureau demain et on essayera de trouver une solution à ce merdier. + +[INT3_K:INTRO] +Je crois que nous allons faire affaire, amigo, hé hé hé! + +[INT3_M:INTRO] +Laisse-moi voir. + +[INT2_L:INTRO] +non, non, non, attends... + +{=================================== MISSION TABLE KENT1 ===================================} + +[KPM1_A:KENT1] +D'accord, mon vieux, je vais sauver ton petit ami. + +[KPM1_B:KENT1] +De quoi tu m'causes? + +[KPM1_C:KENT1] +Tu connais ce branleur, Diaz, la grande gueule... + +[KPM1_D:KENT1] +Il a ton pote, Lance. Il paraît que celui-ci a essayé de lui sauter sur le poil. + +[KPM1_E:KENT1] +Mais il a pas sauté assez haut, si tu vois ce que je veux dire... + +[KPM1_F:KENT1] +Où il l'a emmené? Et tourne pas autour du pot! + +[KPM1_G:KENT1] +T'énerve pas! Ils l'ont emmené de l'autre côté de la ville, à la décharge. + +[KPM1_H:KENT1] +Putain... Pauvre cinglé... + +[KPM1_2:KENT1] +~r~Tu étais supposé sortir Lance vivant de ce guêpier! + +[KPM1_3:KENT1] +SANTE DE LANCE : + +[RESC_1:KENT1] +Tu peux te servir d'un flingue? + +[RESC_2:KENT1] +Ouais... je pense... Content de te voir moi aussi. + +[RESC_3:KENT1] +Sortons de là! + +[RESC_4:KENT1] +Ca fout tous mes plans en l'air, tes conneries. Cette fois-ci, t'as vraiment merdé pour de bon, Lance! + +[RESC_5:KENT1] +Il a descendu mon frère! Tu croyais que j'allais faire quoi? Lui tondre sa pelouse? + +[RESC_6:KENT1] +Va falloir qu'on liquide ce connard de Diaz avant qu'il en fasse autant avec nous. + +[RESC_7:KENT1] +Va récupérer et retrouve-moi sur le pont de Star Island. Ok? + +[RESC_8:KENT1] +OK. + +[KPM1_1:KENT1] +~g~Lance est retenu prisonnier dans la décharge. Va le sauver! + +[KPM1_4:KENT1] +~g~Amène Lance à l'hosto! + +[M_PASSN:KENT1] +MISSION TERMINEE! + +[KPM1_5:KENT1] +~g~Les mecs de Diaz sont après toi, amène Lance à l'hosto. + +{=================================== MISSION TABLE KICKSTT ===================================} + +[KICK1_2:KICKSTT] +~r~Tu n'as pas récupéré la moto assez vite! + +[KICK1_7:KICKSTT] +~r~Tu as niqué la moto! + +[KICK1_8:KICKSTT] +~g~Monte sur la moto! + +[KICK1_T:KICKSTT] +TEMPS PRIS : + +[KICKTM:KICKSTT] +~b~TEMPS DE L'EPREUVE : ~1~:~1~ + +[KICKTM2:KICKSTT] +~b~TEMPS DE L'EPREUVE : ~1~:0~1~ + +[GETBIKE:KICKSTT] +~g~Il te reste ~1~ secondes pour retourner à une moto avant la fin de la mission. + +[KICK1_1:KICKSTT] +~g~Termine le parcours aussi vite que possible. + +[KICK1_6:KICKSTT] +~g~Bien joué! + +[KICK_10:KICKSTT] +~g~Utilise la Sanchez pour terminer le parcours sans oublier aucun point de passage. + +[KICK_12:KICKSTT] +~r~Tu t'es dégonflé! + +[KICK_13:KICKSTT] +~r~T'as mis trop de temps! + +[KICK_11:KICKSTT] +~g~Pour quitter la mission, marche sur le ~q~marqueur rose~g~. + +{=================================== MISSION TABLE LAWYER1 ===================================} + +[LAW1_A:LAWYER1] +Va roupiller, qu'il m'a dit - + +[LAW1_B:LAWYER1] +- et je suis resté toute la nuit le cul vissé sur cette chaise dans le noir à boire du café! + +[LAW1_C:LAWYER1] +C'est la merde. On est baisés jusqu'à l'os, mon pote! + +[LAW1_D:LAWYER1] +Ecoute-moi, ces balaises, ils vont débarquer ici pour m'arracher la tête! C'est pas possible! + +[LAW1_E:LAWYER1] +J'me suis pas tapé l'école de droit pour ça! Putain, qu'est-ce qu'on va faire maintenant? + +[LAW1_F:LAWYER1] +Ferme-la, pose ton cul et détends-toi. Je vais te dire ce qu'on va faire. + +[LAW1_G:LAWYER1] +Faut que tu trouves les types qui nous ont fauché la coke et après je les descends. + +[LAW1_H:LAWYER1] +Bonne idée. Excellente idée. Laisse-moi réfléchir, laisse-moi réfléchir. + +[LAW1_I:LAWYER1] +Je sais! Il y a ce Colonel à la retraite, le Colonel Juan Garcia Cortez. + +[LAW1_J:LAWYER1] +C'est lui qui m'a aidé à organiser l'affaire + +[LAW1_K:LAWYER1] +en-dehors des truands établis de Vice City. Ok? + +[LAW1_L:LAWYER1] +Maintenant, écoute. Il organise une fiesta dans la baie, sur son yatch du luxe + +[LAW1_M:LAWYER1] +et tous les gros pontes de Vice City seront là! + +[LAW1_N:LAWYER1] +J'ai une invitation, bien sûr que j'ai une invitation, + +[LAW1_O:LAWYER1] +mais il est pas question que je sorte d'ici. Non, pas question! + +[LAW1_P:LAWYER1] +Ferme-la, je t'ai dit! Je vais y aller moi-même... + +[LAW1_Q:LAWYER1] +Attends deux secondes! Tu sais, moi aussi, j'aime bien 1978, mais là, c'est pas une soirée bière et striptease... + +[LAW1_R:LAWYER1] +Je veux dire, sans vouloir t'offenser, hein, tu risque de te faire refouler à l'entrée, quoi... + +[LAW1_S:LAWYER1] +Y'a un problème avec mes fringues? + +[LAW1_T:LAWYER1] +Bon, écoute. Fais un saut chez Rafael, dis-lui que tu viens de ma part et il te relookera. + +[LAW1_U:LAWYER1] +Ok, allez, vas-y... + +[LAWP_1:LAWYER1] +Buenas noches. + +[LAWP_2:LAWYER1] +Si je comprends bien, c'est M. Rosenberg qui vous envoie. + +[LAWP_3:LAWYER1] +J'espère que de récents problèmes n'ont pas affecté sa santé, ou ... hum... + +[LAWP_4:LAWYER1] +son équilibre mental, M....? + +[LAWP_5:LAWYER1] +Vercetti. Il fait simplement un peu... d'agoraphobie. + +[LAWP_6:LAWYER1] +Excellent, excellent. Et vous? + +[LAWP_7:LAWYER1] +Je veux juste ma marchandise. + +[LAWP_8:LAWYER1] +Ah. C'est un malheureux concours de circonstances pour toutes les personnes impliquées... + +[LAWP_9:LAWYER1] +Bien entendu, j'ai de mon côté ordonné une enquête... + +[LAWP_10:LAWYER1] +Mais c'est un problème délicat qui nécessite du temps... + +[LAWP_11:LAWYER1] +Peut-être en reparlerons-nous plus tard, voulez-vous? + +[LAWP_12:LAWYER1] +En attendant, laissez-moi vous présenter ma fille... + +[LAWP_13:LAWYER1] +Mercedes! + +[LAWP_14:LAWYER1] +Caramia, pourrais-tu t'occuper de notre invité pendant que je m'occupe des autres convives? + +[LAWP_15:LAWYER1] +D'accord, papa. + +[LAWP_16:LAWYER1] +Veuillez m'excuser... + +[LAWP_17:LAWYER1] +Mercedes? + +[LAWP_18:LAWYER1] +Et il faut vivre avec ça... + +[LAWP_19:LAWYER1] +Quoi qu'il en soit, laissez-moi vous montrer quelques uns de nos distingués invités... + +[LAWP_20:LAWYER1] +Celui-ci est le membre du congrès Alex Shrub accompagné par la star montante siliconée Candy Suxxx... + +[LAWP_21:LAWYER1] +Et connaissez-vous ma charmante femme Laura? Non? + +[LAWP_22:LAWYER1] +Eh bien, malheureusement, elle est en Alabama, voici Candy. + +[LAWP_23:LAWYER1] +Et là-bas, nous avons l'ailier vedette des Mambas de Vice City, BJ. + +[LAWP_24:LAWYER1] +toujours aussi charmeur + +[LAWP_25:LAWYER1] +Mais je l'ai plaqué et mis dans une chaise roulante! + +[LAWP_26:LAWYER1] +Ha ha! Excellent! + +[LAWP_27:LAWYER1] +En ce moment, je cherche une nouvelle propriété de luxe. + +[LAWP_28:LAWYER1] +Et ce molusque c'est Jezz Torrent, + +[LAWP_29:LAWYER1] +Le chanteur principal des Love Fist. + +[LAWP_30:LAWYER1] +Savez-vous... comment ils jouent au ping-pong, en Thaïlande? + +[LAWP_31:LAWYER1] +Je vais vous le dire... + +[LAWP_32:LAWYER1] +Ils n'utilisent pas de raquettes, si vous voyez ce que je veux dire! + +[LAWP_33:LAWYER1] +L'impotent. + +[LAWP_34:LAWYER1] +Et le trio bavard. + +[LAWP_35:LAWYER1] +Cette outre à sueur ronflante est le bras droit handicapé de papa, Gonzales. + +[LAWP_36:LAWYER1] +Les deux autres sont le Pasteur Richards + +[LAWP_37:LAWYER1] +et un réalisateur pseudo intellectuel nommé Steve Scott. + +[LAWP_38:LAWYER1] +...passion avec les envahisseuses nymphomanes, + +[LAWP_39:LAWYER1] +Le requin géant s'amène et + +[LAWP_40:LAWYER1] +il leur bouffe simplement les couilles! + +[LAWP_41:LAWYER1] +Ah, c'est là. Vous n'avez jamais vu un truc pareil avant, hein? + +[LAWP_42:LAWYER1] +Colonel! + +[LAWP_43:LAWYER1] +Vos fêtes sont toujours aussi réussies, hahahahha! + +[LAWP_44:LAWYER1] +Je ne puis que m'excuser de mon arrivée tardive. + +[LAWP_45:LAWYER1] +Ah, de nada amigo. Comment allez-vous? + +[LAWP_46:LAWYER1] +Nos affaires sont très difficile - Les barbares sont aux portes de la ville. + +[LAWP_47:LAWYER1] +L'heure est venue de récompenser les amis et de liquider les ennemis, amigo. + +[LAWP_48:LAWYER1] +C'est qui, la grande gueule? + +[LAWP_49:LAWYER1] +Ricardo Diaz, c'est Mr.Coke. + +[LAWP_50:LAWYER1] +Mercedes! + +[LAWP_51:LAWYER1] +Oh, je raccompagnais justement mon ami en ville. + +[LAWP_52:LAWYER1] +Une autre fois, Ricardo! + +[LAWP_53:LAWYER1] +Partons d'ici! + +[LAWP_54:LAWYER1] +En fait, emmenez-moi plutôt au Pole Position club. + +[LAW1_2:LAWYER1] +~g~Va au yatch du Colonel. + +[LAW1_4:LAWYER1] +~r~Tu as tué la fille du Colonel! + +[LAW1_5:LAWYER1] +Vous allez travailler pour mon père? + +[LAW1_6:LAWYER1] +Peut-être. + +[LAW1_7:LAWYER1] +Ca vous ennuie si je pose ma main sur votre genou? + +[LAW1_8:LAWYER1] +Peut-être... + +[LAW1_9:LAWYER1] +C'est trop dur d'avoir un père riche et puissant! Vamos! + +[LAW1_10:LAWYER1] +A plus tard, mon mignon! + +[LAW1_11:LAWYER1] +Sans aucun doute. + +[LAW1_12:LAWYER1] +Mmmm... Chouette bécane. + +[LAW1_13:LAWYER1] +Non! Ma moto! + +[LAW1_3:LAWYER1] +~g~Emmène la fille du Colonel au Pole Position Club. + +[HELP20:LAWYER1] +Suis le ~h~point T-shirt~w~ sur le radar pour trouver Rafael. + +[LAW1_14:LAWYER1] +Mmmm, j'aime beaucoup ta grosse moto. + +[LAW1_15:LAWYER1] +Ouais, bébé, je viens de piquer ça à ce con + +{=================================== MISSION TABLE LAWYER2 ===================================} + +[LAW2_A:LAWYER2] +Ah! Eh bien, j'espère que tu t'es bien amusé! Parce que moi, je suis mort d'inquiétude! Qu'est-ce que t'as trouvé? + +[LAW2_B:LAWYER2] +Qu'y'a plus de criminels dans cette ville qu'en taule. Faut qu'on trouve une piste dans la rue. + +[LAW2_C:LAWYER2] +Attends, laisse-moi réfléchir, voyons... + +[LAW2_D:LAWYER2] +Ah! J'ai trouvé! + +[LAW2_E:LAWYER2] +Bon, il y a bien cet anglais, une espèce de déchet du biz de la musique, + +[LAW2_F:LAWYER2] +il est connu sous le nom de Kent Paul. + +[LAW2_G:LAWYER2] +Quoi qu'il en soit, il a le nez plongé dans la merde de Vice City depuis un moment + +[LAW2_H:LAWYER2] +et ça, si quelqu'un sait où sont les 20 kilos de coke, + +[LAW2_I:LAWYER2] +c'est bien lui, ok? Il est toujours fourré au Malibu... + +[LAW2_J:LAWYER2] +Je vais aller lui rendre une petite visite... + +[LAW2B_A:LAWYER2] +D'où tu sors, toi? + +[LAW2B_B:LAWYER2] +Je cherche un oiseau dans ton genre depuis une éternité... + +[LAW2B_C:LAWYER2] +Kent Paul, mon pote. Ouais, dans le coin, c'est moi le patron. + +[LAW2B_D:LAWYER2] +Je cherche un Anglais... + +[LAW2B_E:LAWYER2] +Je résouds les problèmes, si tu vois ce que je veux dire? + +[LAW2B_F:LAWYER2] +Je vais m'occuper de toi. Quoi que tu demandes, tu l'auras... + +[LAW2B_G:LAWYER2] +Ne t'inquiéte absolument de rien. + +[LAW2B_H:LAWYER2] +Dégage, chérie! + +[LAW2B_I:LAWYER2] +Hé hé hé hé hé! + +[LAW2B_J:LAWYER2] +C'est toi, Kent Paul? Je suis un pote de Rosenberg... + +[LAW2B_K:LAWYER2] +Rosenberg...Rosenberg... Ah, ce cinglé qui poursuit les ambulances! + +[LAW2B_L:LAWYER2] +Ce mec peut défendre un innocent jusqu'au couloir de la mort! + +[LAW2B_M:LAWYER2] +Donne-nous un autre verre! + +[LAW2B_N:LAWYER2] +On est tous des comédiens. + +[LAW2B_O:LAWYER2] +Ecoute-moi, il me manque vingt kilos et un gros tas de pognon... + +[LAW2B_P:LAWYER2] +Une affaire de drogue? C'est toujours des pièges à con... + +[LAW2B_Q:LAWYER2] +Qu'est-ce que tu sais à ce propos? + +[LAW2B_R:LAWYER2] +Hé! Hé! Là où je voulais en venir, + +[LAW2B_S:LAWYER2] +c'est à un cuisinier-trompettiste qui deale à l'extérieur de la cuisine d'un hôtel sur Ocean Drive. + +[LAW2B_T:LAWYER2] +Il avait l'air très content de lui, ces derniers temps. Tu pourrais peut-être aller voir ça de plus près... + +[LAW2B_U:LAWYER2] +Bon, je vais y aller. A plus tard. + +[LAW2B_V:LAWYER2] +Ouais, c'est ça. Allez, dégage, imbécile ou je te botte le cul! + +[LAW2B_W:LAWYER2] +Donne-moi à boire et putain, où est cette salope? + +[LAW2C_A:LAWYER2] +Ouais, c'est bien, massacre-le, ça devrait le rendre plus bavard. + +[LAW2C_B:LAWYER2] +T'en veux aussi? + +[LAW2C_C:LAWYER2] +Hé, relax, je veux la même chose que toi, mon frère. + +[LAW2C_D:LAWYER2] +Ah ouais? Et c'est quoi? + +[LAW2C_E:LAWYER2] +Ton fric et la blanche de mon regretté frère. Malheureusement, tu viens de refroidir notre piste. + +[LAW2C_F:LAWYER2] +C'était un accident. Dégage. + +[LAW2C_G:LAWYER2] +Hé, hé! Pas la peine de jouer les justiciers solitaires avec moi! + +[LAW2C_H:LAWYER2] +Voilà comment je vois les choses... On est deux mecs dans une ville étrange. Et on a besoin de veiller l'un sur l'autre. + +[LAW2C_I:LAWYER2] +J'ai pas besoin de toi, mon frère... + +[LAW2C_J:LAWYER2] +T'en es sûr? Tiens, attrape! + +[LAW2C_K:LAWYER2] +Suis-moi! + +[LAW2_1:LAWYER2] +Qu'est-ce que tu regardes? + +[LAW2_2:LAWYER2] +Tu ferais mieux de commencer à causer... + +[LAW2_3:LAWYER2] +Suce-moi, connard! + +[LAW2_4:LAWYER2] +Par là! + +[LAW2_5:LAWYER2] +Je vais voir ce que je peux trouver. Je garde un oeil sur toi, Tommy. + +[LAW2_6:LAWYER2] +~g~Va au Malibu Club et trouve Kent Paul. + +[LAW2_7:LAWYER2] +~g~Trouve le cuisinier sur Ocean Drive. + +[LAW2_10:LAWYER2] +~g~Retourne à l'hôtel. + +[LAW2_11:LAWYER2] +~g~Ramasse son portable! + +[LAW2_12:LAWYER2] +Portable acquis! Tu peux maintenant recevoir des coups de fil. + +[LAW2_13:LAWYER2] +~g~Tu as laissé Lance derrière! Va le chercher! + +[LAW2_14:LAWYER2] +On doit foutre le camp d'ici! + +[GUN_2A:LAWYER2] +Maintiens la ~h~~k~~PED_LOCK_TARGET~ ~w~enfoncée pour ~h~viser automatiquement~w~. Appuie sur la~h~ ~k~~PED_FIREWEAPON~~w~ pour ~h~tirer! + +[GUN_2C:LAWYER2] +Maintiens la ~h~~k~~PED_LOCK_TARGET~ ~w~enfoncée pour ~h~viser automatiquement~w~. Appuie sur la~h~ ~k~~PED_FIREWEAPON~~w~ pour ~h~tirer! + +[GUN_2D:LAWYER2] +Maintiens la ~h~~k~~PED_LOCK_TARGET~ ~w~enfoncée pour ~h~viser automatiquement~w~. Appuie sur la~h~ ~k~~PED_FIREWEAPON~~w~ pour ~h~tirer! + +[HELP17:LAWYER2] +Appuie sur la~h~ ~k~~PED_FIREWEAPON~ ~w~pour attaquer le chef. + +[HELP18:LAWYER2] +Appuie sur la~h~ ~k~~PED_FIREWEAPON~~w~ pour attaquer le chef. + +[LAW3_11:LAWYER2] +Place-toi sur le ~q~marqueur rose~w~ pour consulter les armes en vente. + +[LAW3_12:LAWYER2] +Tu peux sélectionner des armes en appuyant sur ~h~gauche~w~ ou ~h~droite~w~ de la ~h~touche directionnelle. + +[LAW3_13:LAWYER2] +Si tu as assez de blé, tu peux acheter des armes en appuyant sur la ~h~~k~~PED_SPRINT~. + +[LAW3_14:LAWYER2] +Tu peux sortir du magasin en appuyant sur la ~h~~k~~VEHICLE_ENTER_EXIT~. + +[LAW3_15:LAWYER2] +Suis le ~h~point pistolet~w~ sur le radar pour trouver ~h~Ammu-Nation + +[LAW2_15:LAWYER2] +~g~Va chez Ammu-Nation. + +[LAW2_K:LAWYER2] +calme-toi, maintenant. + +[LAW2_16:LAWYER2] +Il faut que tu comprennes un truc sur cette ville. Tu dois toujours avoir un flingue sur toi. + +[LAW2_17:LAWYER2] +Allez, l'armurerie du coin n'est qu'à quelques pas d'ici. + +[LAW2_18:LAWYER2] +Tommy, tout le monde a besoin de se la couler douce de temps en temps. + +[LAW2_19:LAWYER2] +Voici le Pole Position Strip Club. Tu pourrais y passer de temps en temps. + +{=================================== MISSION TABLE LAWYER3 ===================================} + +[LAW3_A:LAWYER3] +Aaaaaah! Oh, nom de Dieu, c'est toi! Merde, je vais avoir besoin d'un nouveau pantalon! + +[LAW3_B:LAWYER3] +Putain, ces psychopathes du nord ont téléphoné pour dire qu'ils rappliquaient bientôt... + +[LAW3_C:LAWYER3] +Alors, où est ce sacré pognon? + +[LAW3_D:LAWYER3] +Relax, relax, on n'en est pas encore là. + +[LAW3_E:LAWYER3] +Je croyais vraiment que tu t'en occupais... + +[LAW3_F:LAWYER3] +Et maintenant, ces mecs disent qu'il faut qu'on leur rende un service... + +[LAW3_G:LAWYER3] +Tu veux dire que JE dois leur rendre un service... + +[LAW3_H:LAWYER3] +Ouais, évidemment! Est-ce que j'ai l'air de pouvoir impressionner un jury? + +[LAW3_I:LAWYER3] +Je ne pourrais même pas faire peur à un gosse et crois-moi, j'ai essayé! + +[LAW3_J:LAWYER3] +Maintenant, écoute, c'est ça ou le cousin de Forelli, Georgio, se prend cinq ans pour escroquerie. + +[LAW3_K:LAWYER3] +Faut que tu t'occupes de ces mecs! + +[LAW3_L:LAWYER3] +Je comprends. Demander au jury de changer d'opinion. T'en fais pas. + +[LAW3_M:LAWYER3] +Non non non non! Ca, j'ai déjà essayé! Et l'affaire ne s'est pas arrangée! + +[LAW3_N:LAWYER3] +Tu dois les OBLIGER à changer d'opinion! + +[LAW3_1:LAWYER3] +Avec les compliments de Georgio... + +[LAW3_2:LAWYER3] +N'oublie pas que le mot 'coupable' est proscrit! + +[LAW3_3:LAWYER3] +Il est innocent, jusqu'à ce que je dise le contraire. + +[LAW3_4:LAWYER3] +Tu sais qu'il n'est pas coupable... + +[LAW3_5:LAWYER3] +Tu te souviens de Georgio? Et donc qu'il est innocent? + +[LAW3_6:LAWYER3] +Non coupable. C'est compris... bien. + +[LAW3_8:LAWYER3] +~r~Tu as tué un juré! + +[LAW3_9:LAWYER3] +~g~Bousille la voiture du juré pour le faire sortir! + +[HELP40:LAWYER3] +Tu peux bousiller les voitures avec le marteau ou un outil similaire. + +[LAW3_10:LAWYER3] +~g~Tu peux aller à la ~h~quincaillerie~g~ pour acheter une arme de corps à corps. + +[LAW3_20:LAWYER3] +~g~Bousille la voiture du juré! + +[LAW3_21:LAWYER3] +Je n'arrive pas à le croire! + +[LAW3_22:LAWYER3] +Incroyable! + +[LAW3_23:LAWYER3] +Ok! C'est bon, j'ai compris! + +[LAW3_24:LAWYER3] +~g~Ce marteau pourrait être utile. + +[LAW3_7:LAWYER3] +~g~Va intimider les deux jurés, mais NE LES TUE PAS! + +[HELP23:LAWYER3] +Tu peux suivre le ~h~marteau~w~ sur le radar si tu veux acheter des armes de corps à corps dans la quincaillerie. + +[LAW3_16:LAWYER3] +de Pete de Floride. + +[LAW3_17:LAWYER3] +Casse-toi de là! + +{=================================== MISSION TABLE LAWYER4 ===================================} + +[LAW4_A:LAWYER4] +Avery, cela va sans dire... Ah, Tommy! Des nouvelles? Non, non, tu m'en parleras plus tard. Plus tard. + +[LAW4_B:LAWYER4] +Tommy, voici Avery Carrington. Je crois que vous vous êtes rencontrés à la fête? + +[LAW4_C:LAWYER4] +Pas directement. + +[LAW4_D:LAWYER4] +Salut. + +[LAW4_E:LAWYER4] +Avery a une proposition à nous faire. + +[LAW4_F:LAWYER4] +On a pas déjà du pain sur la planche? + +[LAW4_G:LAWYER4] +J'essaye de maintenir les loups au loin, alors lâche-moi un peu la grappe! + +[LAW4_H:LAWYER4] +Je suis tendu comme un cable et même si je dois crever avant la fin de la semaine, j'ai pas envie de mourir pauvre! + +[LAW4_I:LAWYER4] +Bon, vous énervez pas, tous les deux. + +[LAW4_J:LAWYER4] +Ecoute, petit, tu me files un coup de main et le moindre latino qui te fait chier, je m'occupe de lui. + +[LAW4_K:LAWYER4] +Ok, qu'est-ce que je peux faire pour toi? + +[LAW4_L:LAWYER4] +Cette société de livraison a son dépôt sur un terrain très intéressant. Et ils ne veulent pas vendre. + +[LAW4_M:LAWYER4] +Ils s'accrochent à leur terrain comme des rats entêtés, alors va falloir exploser cette vermine. + +[LAW4_N:LAWYER4] +Va là-bas et mets le feu aux poudres. + +[LAW4_O:LAWYER4] +La sécurité sera débordée et tu pourras te glisser dedans et en finir avec eux... + +[LAW4_P:LAWYER4] +Tu peux aussi passer chez Rafael pour changer de fringues. T'en as sans doute pour un moment, mais bon, fonce! + +[LAW4_Q:LAWYER4] +Ca va être une vraie émeute. + +[LAW4_R:LAWYER4] +Si tout se passe comme sur des roulettes, passe me voir au bureau... + +[LAW4_1:LAWYER4] +Dispersez-vous! La direction n'écoutera vos revendications que dans les conditions appropriées! + +[LAW4_2:LAWYER4] +Dispersez-vous! Retournez chez vous! + +[LAW4_3:LAWYER4] +Dispersez-vous! C'est inapproprié! + +[LAW4_4:LAWYER4] +Dispersez-vous ou vous finirez tous à la rue! + +[LAW4_5:LAWYER4] +Sortez vos bâtons, les mecs, on va briser quelques crânes de cocos! + +[LAW4_13:LAWYER4] +~g~Commence à te battre avec au moins 4 ouvriers pour déclencher une émeute. + +[LAW4_14:LAWYER4] +~g~Détruis les camionnettes du complexe! + +[HELP38:LAWYER4] +Si tu butes quelqu'un qui porte une arme, il la lâche. + +[HELP39:LAWYER4] +Tu peux tirer sur les barils d'explosifs, mais garde tes distances. + +{=================================== MISSION TABLE MIAMI_1 ===================================} + +[T4X4_1A:MIAMI_1] +~g~Tu as ~1~ secondes pour récupérer ~y~24~g~ points de passage. ~g~Fais-le dans ~y~N'IMPORTE QUEL ORDRE. + +[T4X4_1B:MIAMI_1] +~y~Passe A TRAVERS~g~ le premier point de passage pour déclencher le ~r~CHRONOMETRE. + +[T4X4_1C:MIAMI_1] +~1~ sur 24! + +[GETBIK1:MIAMI_1] +Tu as ~1~ secondes pour enfourcher une PCJ 600! + +[GETBIK3:MIAMI_1] +~r~Tu as besoin d'une PCJ 600 pour cette mission! + +{=================================== MISSION TABLE MM ===================================} + +[BLOD_04:MM] +ETAT DE LA VOITURE : + +[BLOD_05:MM] +~g~TEMPS VISE : ~1~ minute + +[BLOD_06:MM] +~g~TEMPS VISE : ~1~ minutes + +[BLOD_07:MM] +NV meilleur tps : ~1~ secondes + +[BLOD_08:MM] +Voitures détruites : ~1~ + +[BLOD_09:MM] +$~1~ + +[BLOD_10:MM] +VAINQUEUR! + +[BLOD_01:MM] +Franchis les points de passage pour augmenter ton temps général. + +[BLOD_02:MM] +Tu as perdu si ton temps général est à zéro. + +[BLOD_03:MM] +Il faut que ton temps général soit supérieur au temps visé pour gagner! + +{=================================== MISSION TABLE OVALRIG ===================================} + +[HOTR_01:OVALRIG] +~g~La course dure 12 tours. Seuls les trois premiers arrivés reçoivent une récompense. + +[HOTR_02:OVALRIG] +~g~Tu es disqualifié si ta bagnole est détruite. + +[HOTR_03:OVALRIG] +~g~Si ta bagnole est bousillée, tu peux la faire réparer aux stands. + +[HOTR_04:OVALRIG] +~g~C'est par là pour sortir du stade. + +[HOTR_05:OVALRIG] +Etat de la voiture : + +[HOTR_06:OVALRIG] +Tours : + +[HOTR_10:OVALRIG] +Temps de course : + +[HOTR_09:OVALRIG] +Position : + +[HOTR_12:OVALRIG] +~r~Ta caisse est bousillée! + +[HOTR_13:OVALRIG] +~r~Tu n'as pas gagné la course! + +[HOTR_14:OVALRIG] +~r~Tu as été disqualifié! + +[HOTR_15:OVALRIG] +Temps : ~1~:~1~ + +[HOTR_16:OVALRIG] +Temps : ~1~:0~1~ + +[HOTR_17:OVALRIG] +Meilleur temps : ~1~:~1~ + +[HOTR_18:OVALRIG] +Meilleur temps : ~1~:0~1~ + +[HOTR_19:OVALRIG] +Meilleur temps : aucun + +[HOTR_20:OVALRIG] +Nv meilleur tps : ~1~:~1~ + +[HOTR_21:OVALRIG] +Nv meilleur tps : ~1~:0~1~ + +[HOTR_22:OVALRIG] +Meilleur résultat : aucun + +[HOTR_23:OVALRIG] +Meilleur résultat : 1er + +[HOTR_24:OVALRIG] +Meilleur résultat : 2e + +[HOTR_25:OVALRIG] +Meilleur résultat : 3e + +[HOTR_26:OVALRIG] +Meilleur résultat : ~1~e + +[HOTR_27:OVALRIG] +Meilleur tps au tr : ~1~.~1~ secondes + +[HOTR_28:OVALRIG] +Meilleur tps au tr : ~1~.0~1~ secondes + +[HOTR_29:OVALRIG] +$~1~ + +[HOTR_30:OVALRIG] +1ERE PLACE + +[HOTR_31:OVALRIG] +2E PLACE + +[HOTR_32:OVALRIG] +3E PLACE + +[HOTR_33:OVALRIG] +Meilleur tps au tr : aucun + +[HOTR_11:OVALRIG] +Nv meilleur tps au tr : ~1~.~1~ secondes + +[HOTR_34:OVALRIG] +Nv meilleur tps au tr : ~1~.0~1~ secondes + +{=================================== MISSION TABLE PHIL1 ===================================} + +[PHI1_HP:PHIL1] +Tu peux lancer une grenade à détonateur quelque part puis l'y faire exploser au moment souhaité. + +[PHIL1_A:PHIL1] +Phil? + +[PHIL1_B:PHIL1] +COURS! + +[PHIL1_C:PHIL1] +Cours. + +[PHIL1_E:PHIL1] +Merde, Phil, tu bois cette saloperie? + +[PHIL1_F:PHIL1] +Putain, t'as pas besoin de la boire! + +[PHIL1_G:PHIL1] +Tu la renifles juste un bon coup et t'exploses direct! + +[PHIL1_H:PHIL1] +Ecoute, Phil, t'avais dit que tu pourrais t'occuper de ma puissance de feu... + +[PHIL1_I:PHIL1] +Pas de problème. + +[PHIL1_J:PHIL1] +Il y a ce mexicain qui trafique des armes, il a pas été réglo avec moi. + +[PHIL1_K:PHIL1] +Il fait sa tournée hebdomadaire, maintenant. + +[PHIL1_L:PHIL1] +Défonce l'arrière de son camion et sers-toi avant qu'il réagisse. + +[PHIL1_M:PHIL1] +Et rends-moi un service au passage tant que tu y es. + +[PHIL1_N:PHIL1] +Ensuite, règle-lui son compte... + +[PHI1_01:PHIL1] +~g~Va piquer les armes à l'arrière du camion du trafiquant. + +[PHI1_02:PHIL1] +~g~Le trafiquant a largué son chargement. Brise la caisse et ramasse l'artillerie. + +[PHI1_03:PHIL1] +~g~On dirait qu'ils ont demandé des renforts... + +[PHI1_04:PHIL1] +~g~Va maintenant finir les trafiquants d'armes survivants. + +[PHIL1_O:PHIL1] +Yeeeeeeehhaaaaa! + +[PHIL1_D:PHIL1] +N'approche jamais une allumette enflammée du boomshine de Phil Cassidy! + +{=================================== MISSION TABLE PHIL2 ===================================} + +[PHIL2_A:PHIL2] +Salut, Phil, ça roule? + +[PHIL2_B:PHIL2] +Saluut Tommyyyy! Comment ça va? Ca fait tellement longtemps... + +[PHIL2_C:PHIL2] +Je te jure que tu devrais arrêter le boomshine... + +[PHIL2_D:PHIL2] +Ca sent comme du décapant à peinture, j'ai les yeux qui brûlent... + +[PHIL2_E:PHIL2] +Ferme-la, Tommy + +[PHIL2_F:PHIL2] +et amène-toi par là. Y'a quelque chose que je veux te montrer... Quelque chose... + +[PHIL2_G:PHIL2] +Waou! Putain! C'est normal que je sente l'odeur d'ici? Je me sens tout drôle... + +[PHIL2_H:PHIL2] +T'inquiète pas de l'odeur, Tommy, regarde juste ça. + +[PHIL2_I:PHIL2] +Putain de saloperies de piles bon marché! Il y en a d'autres sur le banc. + +[PHIL2_J:PHIL2] +TA-DAAA! + +[PHIL2_K:PHIL2] +Oh merde! + +[PHI2_01:PHIL2] +~g~Vite, emmène Phil à l'hosto! + +[PHI2_03:PHIL2] +~r~Phil Cassidy est mort! Maintenant, qui va nous filer des flingues à Liberty? + +[PHI2_05:PHIL2] +Pas à l'hosto, mec, c'est plein de flics et de vietcongs! + +[PHI2_06:PHIL2] +Il y a un ancien chirurgien de l'armée qui me doit quelques services et une tondeuse... + +[PHI2_07:PHIL2] +Il crêche à Little Havana, oh! Regarde! Un poisson géant! + +[PHI2_08:PHIL2] +Fais gaffe! Charlie sur la ligne des arbres! + +[PHI2_09:PHIL2] +C'est moi qui hallucine ou la route est vraiment toute molle? + +[PHI2_10:PHIL2] +Cuillère Brisée à Mère Poule, tu me reçois? + +[PHI2_11:PHIL2] +Spooney Wooney Woo Woo Woooo! + +[PHI2_12:PHIL2] +La mort m'appelle, mon garçon! + +[PHI2_13:PHIL2] +Des ailes noires qui battent tout autour... + +[PHI2_14:PHIL2] +C'est magnifique, mec, magnifique... Mais tellement froid... + +[PHI2_15:PHIL2] +10-4 On a un conducteur en état d'ivresse. + +[PHI2_04:PHIL2] +SANTE DE PHIL : + +[PHI_AS1:PHIL2] +CHEZ PHILS PLACE OK + +[PHI_AS2:PHIL2] +~g~De nouvelles armes sont en vente chez Phils Place. {=================================== MISSION TABLE PIZZA ===================================} -[PIZ1_06:PIZZA] -~w~Appuie sur~h~ ~k~ ~TGSUB~ ~w~une fois sur la mob pour annuler la mission. +[PIZ1_01:PIZZA] +~g~Va livrer ces pizzas. Tu dois les balancer aux clients. Roule à côté d'eux pour lancer les pizzas. [PIZ1_02:PIZZA] -~w~T'as plus de pizza ! Retourne chez ~y~Joe's Pizza~w~ pour en prendre d'autres. - -[PIZ1_07:PIZZA] -~r~T'as tué le client ! T'es viré ! - -[PIZ1_08:PIZZA] -~r~T'as plus de temps... ni de boulot ! - -[PIZ1_09:PIZZA] -~r~T'as bousillé notre mob ! Tire-toi ! - -[PIZ1_11:PIZZA] -~w~Il te faut la ~b~mob~w~ Pizza pour livrer les commandes ! - -[PIZ1_12:PIZZA] -Pizzas - -[PIZ1_13:PIZZA] -~w~Pizza ! Chaude et prête à emporter ! J'adore ! - -[PIZ1_14:PIZZA] -~w~Prêtes pour livraison ! ... Alors va livrer ! - -[PIZ1_15:PIZZA] -~w~Avec un supplément de sauce piquante ! - -[PIZ1_16:PIZZA] -~w~Sors-toi les doigts du cul et va les livrer, fissa ! - -[PIZ1_17:PIZZA] -~w~Faut livrer ces pizzas aujourd'hui... pas l'an prochain ! - -[PIZ1_18:PIZZA] -~w~Tu veux pas te rabaisser à livrer des pizzas ? Mille excuses, monseigneur ! - -[PIZ1_19:PIZZA] -~w~Bon, tu vas les livrer ou pas ? - -[PIZ1_20:PIZZA] -~w~T'es viré ! ... Je plaisante. Mais t'as intérêt à ce qu'elles soient livrées à temps ! - -[PIZ1_21:PIZZA] -~w~Chaudes les pizzas ! Allez ! On a des obèses qu'attendent ! - -[PIZ1_22:PIZZA] -~w~T'as craché sur les pizzas ? Non ? ... Tu devrais ! Ca donne du goût ! - -[PIZ1_23:PIZZA] -~w~Non mais tu crois qu'elles vont se livrer toutes seules ? - -[PIZ1_24:PIZZA] -~w~Si elles sont froides en arrivant, tu vas t'attirer tout un tas de problèmes ! - -[PIZ1_25:PIZZA] -~w~Et bouge-toi un peu cette fois ! - -[PIZ1_26:PIZZA] -~w~Hé, va livrer ces pizzas ! - -[PIZ1_27:PIZZA] -~w~OK, va les livrer et reviens en chercher d'autres ! - -[PIZ1_28:PIZZA] -~w~Nos pizzas assurent ! Alors, assure, toi aussi, sinon t'auras des emmerdes ! - -[PIZ1_29:PIZZA] -~w~T'en redemandes ? Mais t'es un vrai morfal ! - -[PIZ1_30:PIZZA] -~w~Je crois que j'ai éternué sur une de ces pizzas... Pas grave... Va les livrer ! - -[PIZ1_31:PIZZA] -~w~Je déteste ce job ! Mais au moins, ça me donne le droit de te maltraiter... - -[PIZ1_3A:PIZZA] -~w~Si ces pizzas arrivent pas à l'heure, tu peux faire une croix sur ta thune ! - -[PIZ1_32:PIZZA] -~r~Nos pizzas sont pas digestes ? - -[PIZ1_33:PIZZA] -~w~Retourne chez ~y~Joe's Pizza~w~ pour de nouvelles commandes. - -[PIZ1_34:PIZZA] -~w~Une livraison égale plus de pognon ! - -[PIZ_WON:PIZZA] -~w~Défi Pizza terminé ! Bien joué ! Ta santé maximale a augmenté ! - -[PIZ_WO1:PIZZA] -~w~Joe's Pizza Restaurant est désormais sous ta 'protection'. Pense à encaisser régulièrement les paiements. - -[PIZ1_01:PIZZA] -~w~Livre ces pizzas à nos ~b~clients~w~ aussi vite que possible. +~g~T'as balancé toutes tes pizzas, retourne en chercher d'autres. [PIZ1_05:PIZZA] -~w~Passe en mob à côté d'un client pour lui filer sa pizza. +~g~Tu as 5 minutes pour livrer les commandes avant que que les clients n'appelent une autre pizzeria. -{=================================== MISSION TABLE TAXI ===================================} +[PIZ1_07:PIZZA] +~r~T'as tué le client! T'es viré! -[TAXI1:TAXI] -~w~Cherche une ~b~course. +[PIZ1_08:PIZZA] +~r~T'es à la bourre! T'es viré! -[TAXI1A:TAXI] -~w~Il n'y a pas de course par ici. Continue à chercher ! +[PIZ1_09:PIZZA] +~r~T'as bousillé notre bécane! T'es viré! -[TAXI2:TAXI] -~r~T'as plus le temps ! +[PIZ1_11:PIZZA] +Hé! Retourne sur ta bécane! -[TAXI3:TAXI] -~w~Ton passager s'est enfui, terrorisé ! +[PIZ1_12:PIZZA] +Pizzas restantes : -[TAXI4:TAXI] -~w~Course terminée : ~1~$ +[PIZ1_06:PIZZA] +Appuie sur la~h~ ~k~~TOGGLE_SUBMISSIONS~~w~ quand tu es sur la moto pour annuler la mission. -[TAXI4A:TAXI] -~w~Course terminée : ~1~$ + bonus ~1~ A LA SUITE ! ~1~$ +[PIZ1_13:PIZZA] +Effectue ces livraisons en vitesse. -[TAXI5:TAXI] -~w~BONUS VITESSE : ~1~$ +[PIZ1_14:PIZZA] +Mon pote, un pizza pour toi! -[TAXI5A:TAXI] -~w~BONUS VITESSE : ~1~$ + bonus ~1~ A LA SUITE ! ~1~$ +[PIZ1_15:PIZZA] +Allez, mon vieux, livre ça en vitesse. -[TAXI7:TAXI] -~w~Va faire réparer ton épave ! +[PIZ1_16:PIZZA] +Qu'est-ce que t'attends, mon vieux? T'as des pizzas à livrer! -[TAXI8:TAXI] -~r~Mission Taxi annulée. +[PIZ1_17:PIZZA] +Je sais que tu voulais pas faire ce boulot, mais je m'en tape! -[TAXI9:TAXI] -~r~Ton taxi est en ruine ! +[PIZ1_18:PIZZA] +Va livrer ça. -[FARES:TAXI] -Courses +[PIZ1_19:PIZZA] +On a besoin de livrer ça. -[TIP:TAXI] -Pourboire +[PIZ1_20:PIZZA] +Allez, mon vieux, livre ça ou t'es viré! -[FARE9:TAXI] -~w~Destination : ~y~Portland Docks. +[PIZ1_21:PIZZA] +Il y a des gens qui attendent, mon vieux. -[FARE20:TAXI] -~w~Destination : ~y~parc~w~, Belleville. +[PIZ1_22:PIZZA] +Mais qu'est-ce que t'attends? Faut livrer ça! -[FARE22:TAXI] -~w~Destination : ~y~Cochrane Dam. +[PIZ1_23:PIZZA] +Va livrer cette saloperie de bouffe! -[FARE2:TAXI] -~w~Destination : ~y~Head Radio~w~, Harwood. +[PIZ1_24:PIZZA] +Les clients ont les crocs, mon vieux! -[FARE3:TAXI] -~w~Destination : ~y~port des ferrys~w~, Harwood. +[PIZ1_25:PIZZA] +Tu peux prendre ça, mon vieux? -[FARE4:TAXI] -~w~Destination : ~y~hôpital~w~, Portland View. +[PIZ1_26:PIZZA] +Tiens, va livrer ça en vitesse, amigo. -[FARE7:TAXI] -~w~Destination : ~y~chantier~w~, Hepburn Heights. +[PIZ1_27:PIZZA] +Magne-toi, on est débordés. Va livrer ça! -[FARE8:TAXI] -~w~Destination : ~y~Cipriani Restaurant~w~, Saint Mark's. +[PIZ1_28:PIZZA] +Encore toi? Qu'est-ce que t'attends? Va livrer ça! -[FARE10:TAXI] -~w~Destination : ~y~Punk Noodles~w~, Chinatown. +[PIZ1_29:PIZZA] +Perds pas de temps, cette fois-ci. -[FARE12:TAXI] -~w~Destination : ~y~port des ferrys~w~, Rockford. +[PIZ1_30:PIZZA] +Espèce de bon à rien! Va livrer ça en vitesse! -[FARE13:TAXI] -~w~Destination : ~y~église~w~, Bedford Point. +[PIZ1_31:PIZZA] +T'auras jamais de promotion si tu traînes encore ce coup-ci. -[FARE14:TAXI] -~w~Destination : ~y~bureaux de Liberty Tree~w~, Bedford Point. +[PIZ1_32:PIZZA] +~r~La pizza est trop chaude ou quoi? -[FARE15:TAXI] -~w~Destination : ~y~université de Liberty~w~, Liberty Campus. +[PIZ1_33:PIZZA] +~g~Retourne au restaurant pour d'autres commandes. -[FARE16:TAXI] -~w~Destination : ~y~Hogs 'n' Cogs~w~, Belleville Park Area. +[PIZ1_34:PIZZA] +~g~Pizza livrée. Voilà ton fric. -[FARE17:TAXI] -~w~Destination : ~y~tribunal~w~, Belleville Park Area. +[PIZ_WON:PIZZA] +Mission Pizza terminée. votre max de Santé passe à 150. -[FARE18:TAXI] -~w~Destination : ~y~M. Benz~w~, Bedford Point. +{=================================== MISSION TABLE PORN1 ===================================} -[FARE19:TAXI] -~w~Destination : ~y~Joe's Pizza~w~, Bedford Point. +[POR1_A:PORN1] +Action -[FARE21:TAXI] -~w~Destination : ~y~Terminal A~w~, Francis International Airport. +[POR1_B:PORN1] +Ooooh! C'est un sacré morceau! -[FARE23:TAXI] -~w~Destination : ~y~manoir~w~, Cedar Grove. +[POR1_C:PORN1] +30 centimètres, c'est la taille réglementaire, bébé. -[FARE24:TAXI] -~w~Destination : ~y~hôpital~w~, Pike Creek. +[POR1_D:PORN1] +COUPEZ! Qui c'est cet abruti? Toi! Toi! T'es dans le champ? POURQUOI? -[FARE25:TAXI] -~w~Destination : ~y~parc~w~, Shoreside Vale. +[POR1_E:PORN1] +Qu'est-ce que c'est que ces conneries? -[FARE26:TAXI] -~w~Destination : ~y~North West Towers~w~, Wichita Gardens. +[POR1_F:PORN1] +Des aliens? Des cannes à pêche? -[FARE27:TAXI] -~w~Destination : ~y~dépôt de bus~w~, Trenton. +[POR1_G:PORN1] +J'ai jamais vu un requin aussi gros... -[FARE28:TAXI] -~w~Destination : ~y~M. Benz~w~, Chinatown. +[POR1_H:PORN1] +Faut que tout ça dégage! -[FARE29:TAXI] -~w~Destination : ~y~M. Benz~w~, Pike Creek. +[POR1_I:PORN1] +Pourquoi t'es dans le métier, connard? -[FARE30:TAXI] -~w~Destination : ~y~Terminal C~w~, Francis International Airport. +[POR1_J:PORN1] +Hein? -[FARE31:TAXI] -~w~Destination : ~y~AM Petroleum~w~, Pike Creek. +[POR1_K:PORN1] +Ben, pour les chattes, évidemment! Alors, qu'est-ce que c'est que ça? -[FARE32:TAXI] -~w~Destination : ~y~Liberty Pharmaceuticals~w~, Pike Creek. +[POR1_L:PORN1] +Ceci est mon art - SECURITE! -[FARE11:TAXI] -~w~Destination : ~y~armurerie Phil Cassidy Fully Cocked~w~, Bedford Point. +[POR1_M:PORN1] +Ecoute-moi, trou du cul arrogant, tu m'appartiens maintenant. Tout m'appartient ici. -[FARE1A:TAXI] -~w~Destination : ~y~Paulie's Revue Bar~w~, Red Light District. +[POR1_N:PORN1] +On va révolutionner cet endroit... -[FARE1C:TAXI] -~w~Destination : ~y~Sex Club Seven~w~, Red Light District. +[POR1_O:PORN1] +Je vais faire ta fortune... -[FARE5:TAXI] -~w~Destination : ~y~Ammu-Nation~w~, Red Light District. +[POR1_P:PORN1] +Oh. Tu es... Tu... es Tommy Vercetti? Mais je croyais que tu étais... -[FARE6:TAXI] -~w~Destination : ~y~Capital Autos~w~, Saint Mark's. +[POR1_Q:PORN1] +Exactement... -{=================================== MISSION TABLE AMBU ===================================} +[POR1_R:PORN1] +Va y avoir quelques changements dans le coin et on va commencer à se faire des ronds. -[A_FAIL2:AMBU] -~r~Ton manque d'empressement a été fatal au patient ! +[POR1_S:PORN1] +Au fait, as-tu jamais pensé à... -[A_FAIL3:AMBU] -~r~Le patient est mort ! +[POR1_T:PORN1] +Mais d'abord, on va avoir besoin de quelques putes bien foutues... -[ATUTOR4:AMBU] -~w~Chaque secousse réduit les chances de survie du patient ! +[POR1_U:PORN1] +Ouais, les filles c'est bien mais toi... waou! -[A_TIME:AMBU] -~w~Patient embarqué ! +~1~ secondes +[POR1_02:PORN1] +~g~Bute le mac de Candy, puis retourne la récupérer. -[A_TIME2:AMBU] -~w~Bonus ! +~1~ secondes +[POR1_04:PORN1] +Salut, Candy. Je cherche des actrices, ça te branche? -[AREWARD:AMBU] -~w~Niveau ~1~ terminé ! Récomp. : ~1~$ +[POR1_05:PORN1] +Et comment! Mais faut causer à mon agent... -[A_RANGE:AMBU] -~r~La radio de l'ambulance ne capte plus rien ! Rapproche-toi d'un hôpital ! +[POR1_06:PORN1] +Putain qu'est-ce que tu fous? -[ATUTOR5:AMBU] -~w~Va chercher un ~b~patient. +[POR1_07:PORN1] +Tu aurais mieux fait de rester à la maison, aujourd'hui! -[ATUTOR6:AMBU] -~w~Emmène le patient à l'~y~hôpital ! +[POR1_7B:PORN1] +J'arrive pas à croire ce trou du cul! -[ATUTOR7:AMBU] -~w~Cherche d'autres ~b~patients~w~ ou emmène celui-ci à l'~y~hôpital. +[POR1_08:PORN1] +Salut, Mercedes! -[A_FULL:AMBU] -~w~Ton ambulance est pleine ! Va déposer tes patients à l'~y~hôpital. +[POR1_09:PORN1] +Salut, Tommy! Tu viens faire la fête? -[A_RANG2:AMBU] -~r~La radio de l'ambulance ne fonctionne pas dans le métro ! +[POR1_10:PORN1] +Non, pas maintenant, chérie. Ca te dirait de faire du cinéma? -{=================================== MISSION TABLE TV ===================================} +[POR1_11:PORN1] +Evidemment! Mais seulement si c'est sordide et bon marché! -[TV_01:TV] -Slash TV +[POR1_13:PORN1] +~g~Emmène les filles au studio y retrouver Steve. -[TV_02:TV] -~w~Tue tous les psychopathes... Il en arrive de partout ! +[POR1_14:PORN1] +T'es engagé! -[TV_03:TV] -~w~La difficulté augmente avec chaque niveau : plus d'ennemis à tuer et plus de prix à remporter ! +[POR1_15:PORN1] +Hé tommy, tu viens pour un bout d'essai? -[TV_04:TV] -~w~NIVEAU ~1~ +[POR1_17:PORN1] +Waou! Sympa le requin! -[TV_10:TV] -~w~T'as gagné un prix spécial ! +[POR1_18:PORN1] +~r~Mercedes est morte! -[TV_09:TV] -Montant gagné dans ce mini-jeu : ~1~$ ! +[POR1_20:PORN1] +Tommy! Où tu vas? Reviens ici! -[TV_05:TV] -~w~NIVEAU TERMINE ! +[POR1_21:PORN1] +Où tu vas? -[TV_06:TV] -~w~Tu as gagné un prix de ~1~$ ! +[POR1_22:PORN1] +Tommy, quand c'est qu'on va pouvoir être un peu seuls ensemble? -[TV_07:TV] -~w~A VOS MARQUES... +[POR1_01:PORN1] +~g~Candy Suxxx serait parfaite pour un premier rôle! -[TV_08:TV] -~w~GO! +[POR1_12:PORN1] +~g~Emmène Candy avec toi pour rencontrer Mercedes. -{=================================== MISSION TABLE NOODLE ===================================} +[POR1_16:PORN1] +Plus tard, peut-être, mon chou... -[NDL1_02:NOODLE] -~w~Oh... Plus de nouilles ! Retourne chez ~y~Punk Noodles~w~ pour en récupérer. +[POR1_24:PORN1] +~g~Retourne chercher Candy. -[NDL1_06:NOODLE] -~w~Appuie sur~h~ ~k~ ~TGSUB~ ~w~quand t'es sur ta mob pour annuler la mission. +[POR1_25:PORN1] +~g~Tu as laissé Candy. Retourne la chercher! -[NDL1_07:NOODLE] -~r~T'as tué un client ! T'es viré ! +[POR1_23:PORN1] +~g~Candy va s'occuper de l'affaire dans le ~h~Centre~g~. -[NDL1_08:NOODLE] -~r~T'as plus de temps ! T'es viré ! +[POR1_26:PORN1] +~g~Voilà Candy. On dirait qu'elle a encore eu rendez-vous avec le représentant du Congrès, Alex Shrub. -[NDL1_09:NOODLE] -~r~T'as bousillé notre mob ! T'es viré ! +[POR1_27:PORN1] +Allez, partons d'ici! -[NDL1_11:NOODLE] -~w~Remonte sur la ~b~mob ! +[POR1_28:PORN1] +Tommy, sois prudent! Mes implants ne sont pas encore assurés! -[NDL1_12:NOODLE] -Nouilles +[POR1_29:PORN1] +Tu appelles ça conduire? -[NDL1_13:NOODLE] -~w~Des nouilles ! Des tonnes de nouilles à livrer ! +[POR1_30:PORN1] +Je pourrais plus faire du porno après ça! -[NDL1_14:NOODLE] -~w~Nos clients adorent mes nouilles ! +[POR1_31:PORN1] +Quoi? T'essaies de me tuer ou quoi? Je croyais que c'était moi, la star! -[NDL1_15:NOODLE] -~w~J'ai des nouilles à livrer ! +{=================================== MISSION TABLE PORN2 ===================================} -[NDL1_16:NOODLE] -~w~Tâche de livrer ces nouilles à temps ! +[POR2_A:PORN2] +Comment ça se passe, Steve? -[NDL1_17:NOODLE] -~w~Hé ! Faut livrer ces nouilles ! +[POR2_B:PORN2] +Eh ben, Candy est faite pour le rôle et la nouvelle fille est infatigable! -[NDL1_18:NOODLE] -~w~Va livrer ces nouilles ! Et vite ! +[POR2_C:PORN2] +Elle s'est tapé la moitié du casting et des techniciens avant même que j'ai fini de régler les éclairages! -[NDL1_19:NOODLE] -~w~Nos clients veulent des nouilles chaudes, pas froides ! +[POR2_D:PORN2] +Enfin, demain, on va en extérieurs pour tourner les scènes du bateau... -[NDL1_20:NOODLE] -~w~Tu supportes pas la chaleur de la cuisine ? Confucius a dit : éteins la cuisinière. +[POR2_E:PORN2] +Les scènes du bateau? Quelles scènes du bateau? -[NDL1_21:NOODLE] -~w~Va livrer ces nouilles, tu veux ? +[POR2_F:PORN2] +Les pêcheurs sont dans les filets de la passion quand ce requin géant arrive... -[NDL1_22:NOODLE] -~w~Et encore des nouilles à livrer ! +[POR2_G:PORN2] +Qu'est-ce que j'avais dit à propos du requin géant? -[NDL1_23:NOODLE] -~w~Des nouilles, des nouilles, des nouilles ! Faut les livrer bien chaudes ! +[POR2_H:PORN2] +J'avais dit : PAS DE REQUIN GEANT! Ok? -[NDL1_24:NOODLE] -~w~Nos clients attendent ! Pourquoi tant de haine ? +[POR2_I:PORN2] +Laisse simplement les caméras braquées sur le pieu! -[NDL1_25:NOODLE] -~w~Cette commande est pas encore partie ? +[POR2_J:PORN2] +Ok ok, Tommy, j'avais bien le droit d'essayer... -[NDL1_26:NOODLE] -~w~Qu'est-ce que t'attends ? Le Nouvel An chinois ? +[POR2_K:PORN2] +Les prospectus sont imprimés? -[NDL1_27:NOODLE] -~w~Ces nouilles refroidissent ! Dépêche-toi ! +[POR2_L:PORN2] +Ouais, mais personne va nous laisser distribuer ces trucs, je veux dire... -[NDL1_28:NOODLE] -~w~Je voulais être astronaute. Mais ce boui-boui est à mon père... Qu'est-ce que je pouvais faire ? +[POR2_M:PORN2] +Ils sont un peu trop, hum, enfin, ils manquent un peu de poésie... -[NDL1_29:NOODLE] -~w~Si tu veux garder ton job, bouge-toi et va livrer ces nouilles ! +[POR2_N:PORN2] +T'en fais pas pour ça! -[NDL1_30:NOODLE] -~w~Des nouilles sautées et croustillantes... J'adore ça ! +[POR2_O:PORN2] +J'ai mes propres plans pour la distribution... -[NDL1_31:NOODLE] -~w~J'aurais parié que t'étais plutôt du genre à livrer des pizzas... +[POR2_P:PORN2] +OK. Hé, Candy, amène-toi dans ma caravane! -[NDL1_3A:NOODLE] -~w~Ils en veulent toujours plus. Reviens quand tu auras fini ! +[POR2_01:PORN2] +~g~Il y a un hydravion à l'arrière des studios qui servait pour la propagande des vieux films. -[NDL1_32:NOODLE] -~r~Qu'est-ce qui se passe ? T'aimes pas les nouilles ? +[POR2_02:PORN2] +~g~Atteins l'un des points de contrôle pour commencer à larguer les prospectus. -[NDL1_33:NOODLE] -~w~Retourne au ~y~Punk Noodles~w~ pour de nouvelles commandes. +[POR2_03:PORN2] +~g~Largue les prospectus tout le long du chemin jusqu'au dernier point de contrôle. -[NDL1_34:NOODLE] -~w~Nouilles livrées, thune encaissée ! +[POR2_04:PORN2] +~r~NIVEAU DE CARBURANT BAS! -[NDL_WON:NOODLE] -~w~Félicitations ! Défi Nouilles terminé ! Ta santé maximale a augmenté ! +[POR2_05:PORN2] +Utilise-le pour distribuer les prospectus dans la ville. -[NDL_WO1:NOODLE] -~w~Punk Noodles est maintenant sous ta 'protection'. Pense à encaisser régulièrement les paiements. +[DILDO:PORN2] +Kérosène : -[NDL1_01:NOODLE] -~w~Livre ces nouilles à nos ~b~clients~w~ et plus vite que ça ! +[POR2_Q:PORN2] +Oh, merde! -[NDL1_05:NOODLE] -~w~Passe en mob à côté d'un client pour lui lancer les nouilles. +[PORN2_9:PORN2] +~g~Il te reste ~1~ secondes pour retourner à une Skimmer avant la fin de la mission. -{=================================== MISSION TABLE MPSURV ===================================} +{=================================== MISSION TABLE PORN3 ===================================} -[SAL01:MPSURV] -~w~Maria, je vais à l'hosto pour me faire soigner mon "tu-sais-quoi". +[POR3_A:PORN3] +Bon, c'est quoi le problème, maintenant? -[SAL02:MPSURV] -~w~Quand je sortirai, l'étalon porcin reprendra du service comme jamais... +[POR3_B:PORN3] +Chuuuut! -[SAL04:MPSURV] -~w~PS : prépare-toi pour mon grand retour, bébé ! +[POR3_C:PORN3] +Eh bien, après l'intime rencontre avec les envahisseuses nymphomanes, -[SAL05:MPSURV] -~w~PPS : ... Et laisse pas traîner ce message n'importe où ! +[POR3_D:PORN3] +notre jeune héros se retrouve incapable de penser à autre chose que cette énorme montagne phallique -[SAL03:MPSURV] -~w~Tâche de pas t'attirer d'ennuis en mon absence, parce que y a plein de mecs qui meurent d'envie de prendre le pouvoir... +[POR3_E:PORN3] +et c'est là qu'on veut placer la scène avec la cuve de purée de patates, mais alors on... -[SAL03A:MPSURV] -~w~Littéralement ! +[POR3_F:PORN3] +Ces conneries m'intéressent pas! -{=================================== MISSION TABLE JDREF ===================================} +[POR3_G:PORN3] +Continuez simplement le boulot, continuez... -[JDT1_BA:JDREF] -~w~Pas question que je bosse pour un Leone ! +[POR3_H:PORN3] +Hé, Tommy... -[JDT1_BB:JDREF] -~w~... Hé, Toni, reviens quand tu te feras moins remarquer. +[POR3_I:PORN3] +T'as évoqué un problème légal au téléphone... -[CHNGOUT:JDREF] -~w~Enlève ton costume Leone, sinon J.D. pourra pas être vu en train de te parler. +[POR3_J:PORN3] +Ah ouais! Le représentant du Congrès Alex Shrub a pris le train électoral en marche à la pêche des votes puritains... -{=================================== MISSION TABLE CRED01 ===================================} +[POR3_K:PORN3] +La rumeur laisse entendre qu'il soutient des mesures de restriction contre... -[CR01_01:CRED01] -~n~ ~n~ ~n~ ~n~CREDITS +[POR3_L:PORN3] +Disons... les formes les plus charnelles de la grande industrie cinématographique de ce pays. -[CR01_02:CRED01] -~n~ ~n~ ~n~ ~n~ROCKSTAR NORTH +[POR3_M:PORN3] +Super. -[CR01_03:CRED01] -~n~ ~n~ ~n~ ~n~Producer ~n~Leslie Benzies +[POR3_N:PORN3] +Candy! Tu connais Shrub. -[CR01_04:CRED01] -~n~ ~n~ ~n~ ~n~Art Director ~n~Aaron Garbut +[POR3_O:PORN3] +Vous faites des trucs bizarres tous les deux? -[CR01_05:CRED01] -~n~ ~n~ ~n~ ~n~Technical Direction ~n~Obbe Vermeij, Adam Fowler +[POR3_P:PORN3] +Oh oui! Oui! Oh oui! Oui oui oui ouuuuuuuuuuuuuuuuuui! -[CR01_06:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~Written By ~n~Dan Houser, James Worrall ~n~ & David Bland +[POR3_Q:PORN3] +Dis-moi que t'as eu ça... -[CR01_07:CRED01] -~n~ ~n~ ~n~ ~n~Programming ~n~Alexander Roger, Alexander Illes, ~n~Andrzej Madajczyk, Barane Chan, ~n~Derek Payne, Derek Ward, +[POR3_R:PORN3] +Est-ce que ça faisait partie du... euh... Ou bien elle parlait à... -[CR01_08:CRED01] -~n~ ~n~Gordon Yeoman, Graeme Williamson, ~n~Greg Smith, James Broad, ~n~John Gurney, John Whyte, +[POR3_S:PORN3] +Impossible à dire... Dans tous les cas... -[CR01_09:CRED01] -~n~ ~n~Keith McLeman, Mark Nicholson, ~n~Shaun McKillop +[POR3_T:PORN3] +Tu ferais mieux de la suivre après le tournage -[CR01_10:CRED01] -~n~ ~n~ ~n~ ~n~Audio Programmer ~n~Matthew Smith +[POR3_U:PORN3] +et voir si elle te mènera pas à leur nouveau nid d'amour. -[CR01_11:CRED01] -~n~ ~n~ ~n~ ~n~Sound Design and Mastering ~n~Allan Walker +[POR3_V:PORN3] +T'as un appareil photo? -[CR01_12:CRED01] -~n~ ~n~ ~n~ ~n~Lead Cut Scene Animator ~n~Mondo Ghulam +[POR3_X:PORN3] +Hé, file-lui un appareil photo! -[CR01_13:CRED01] -~n~ ~n~ ~n~ ~n~Cut Scene Animator ~n~Dermot Bailie +[POR3_02:PORN3] +~r~Tu as tué le représentant du Congrès! T'auras du mal à le faire chanter, maintenant! -[CR01_14:CRED01] -~n~ ~n~ ~n~ ~n~Character Animator ~n~Felipe Busquets +[POR3_03:PORN3] +~r~Tu as alerté la sécurité du représentant du Congrès, ils vont le faire sortir tout de suite. -[CR01_15:CRED01] -~n~ ~n~ ~n~ ~n~In-Game Animation ~n~Gus Braid, Terry Kenny +[POR3_04:PORN3] +Candy, tu peux m'appeler Martha? -[CR01_16:CRED01] -~n~ ~n~ ~n~ ~n~Characters Artist ~n~Ian McQue +[POR3_05:PORN3] +Oh Alex, enfin, je veux dire Martha. Comme tu veux... -[CR01_17:CRED01] -~n~ ~n~ ~n~ ~n~Vehicle Artist ~n~Joylon Orme +[POR3_06:PORN3] +Martha, il y a quelqu'un qui regarde... C'est pervers... -[CR01_18:CRED01] -~n~ ~n~ ~n~ ~n~Additional Art ~n~Rick Stirling, Alisdair Wood +[POR3_07:PORN3] +Vous là-bas, donnez-moi cet appareil photo! -[CR01_19:CRED01] -~n~ ~n~ ~n~ ~n~Music Producer ~n~Craig Conner +[POR3_01:PORN3] +~g~Suis la ~h~Stretch~g~ de Candy. -[CR01_20:CRED01] -~n~ ~n~ ~n~ ~n~Audio Design and Dialogue Editor ~n~Will Morton +[POR3_15:PORN3] +~r~T'as bousillé la Stretch de Candy! -[CR01_21:CRED01] -~n~ ~n~ ~n~ ~n~Additional Dialogue Editor ~n~Jon McCavish +[POR3_17:PORN3] +~g~Retourne aux Porn Studios avec la pellicule. -[CR01_22:CRED01] -~n~ ~n~ ~n~ ~n~Development Support ~n~Milly Cottam +[POR3_19:PORN3] +~r~T'es à court de pellicule! -[CR01_23:CRED01] -~n~ ~n~ ~n~ ~n~Graphic Designers ~n~Stuart Petri, Steve Walsh +[POR3_21:PORN3] +~g~T'as perdu la Stretch de Candy! -[CR01_24:CRED01] -~n~ ~n~ ~n~ ~n~Lead Level Design ~n~William Mills +[POR3_22:PORN3] +~g~Le WK Chariot Hotel de l'autre côté de ce balcon devrait être idéal, comme point de vue. -[CR01_25:CRED01] -~n~ ~n~ ~n~ ~n~Level Design ~n~Chris Rothwell, Andy Duthie, ~n~Chris McMahon, Neil Ferguson +[POR3_23:PORN3] +~g~Il y a une porte latérale qui te permettra d'accéder à l'hôtel. -[CR01_26:CRED01] -~n~ ~n~ ~n~ ~n~QA Manager ~n~Craig Arbuthnott +[POR3_08:PORN3] +Appuie sur la~h~ ~k~~PED_LOCK_TARGET~ ~w~et maintiens-la enfoncée pour ~h~cadrer~w~ la photo. -[CR01_27:CRED01] -~n~ ~n~ ~n~ ~n~Senior Lead Test ~n~Neil Corbett +[POR3_09:PORN3] +Appuie sur la~h~ ~k~~PED_LOCK_TARGET~ ~w~et maintiens-la enfoncée pour ~h~cadrer~w~ la photo. -[CR01_28:CRED01] -~n~ ~n~ ~n~ ~n~Lead Test ~n~David Murdoch, Neil Meikle, ~n~Alex Bazlinton, Brenda Carey +[POR3_10:PORN3] +Appuie sur la~h~ ~k~~PED_SNIPER_ZOOM_IN~ ~w~pour faire un ~h~zoom avant~w~ et sur la~h~ ~k~~PED_SNIPER_ZOOM_OUT~ ~w~pour faire un ~h~zoom arrière~w~. -[CR01_29:CRED01] -~n~ ~n~ ~n~ ~n~Build Engineer / Lead Test ~n~Neil Walker +[POR3_11:PORN3] +Appuie sur la~h~ ~k~~PED_SNIPER_ZOOM_IN~ ~w~pour faire un ~h~zoom avant~w~ et sur la~h~ ~k~~PED_SNIPER_ZOOM_OUT~ ~w~pour faire un ~h~zoom arrière~w~. -[CR01_30:CRED01] -~n~ ~n~ ~n~ ~n~Audio Test ~n~George Williamson +[POR3_12:PORN3] +Appuie sur la~h~ ~k~~PED_FIREWEAPON~ ~w~pour prendre une photo. -[CR01_31:CRED01] -~n~ ~n~ ~n~ ~n~Test ~n~Brian Kelly, Lindsay Robertson, ~n~Sundram Soosay, Eugene Kuczerepa, ~n~Christopher Soosay, Ben Abbott, +[POR3_13:PORN3] +Appuie sur la~h~ ~k~~PED_FIREWEAPON~ ~w~pour prendre une photo. -[CR01_32:CRED01] -~n~ ~n~Oliver Elliott, Louis Dinan, ~n~Bobby Wright, Thomas Philips, ~n~Nick Rees, Ivor Williams +[POR3_14:PORN3] +Appuie sur la~h~ ~k~~PED_FIREWEAPON~ ~w~pour prendre une photo. -[CR01_33:CRED01] -~n~ ~n~ ~n~ ~n~Test Tools Programming ~n~James Whitcroft, Alex Carter +[POR3_20:PORN3] +~g~Si tu as besoin de te déplacer, utilise la ~h~Sparrow~g~ garée derrière. -[CR01_34:CRED01] -~n~ ~n~ ~n~ ~n~IT Manager ~n~Lorraine Roy +[POR3_16:PORN3] +~g~Il te faut trois bons clichés d'Alex Shrub avec Candy pour le faire chanter. -[CR01_35:CRED01] -~n~ ~n~ ~n~ ~n~IT Support ~n~Christine Chalmers, Dave Bruce +[POR3_24:PORN3] +PHOTOS PRISES : -[CR01_36:CRED01] -~n~ ~n~ ~n~ ~n~Studio Director ~n~Andrew Semple +{=================================== MISSION TABLE PORN4 ===================================} -[CR01_37:CRED01] -~n~ ~n~ ~n~ ~n~Office Administration ~n~Kim Gurney +[POR4_A:PORN4] +Je suis désolée, mais je ne peux pas avaler maintenant! -[CR01_38:CRED01] -~n~ ~n~ ~n~ ~n~Administration Support ~n~Charlene Maguire, Kim Wilson +[POR4_B:PORN4] +Oh, ALLEZ! Chérie! -[CR02_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ROCKSTAR LEEDS +[POR4_C:PORN4] +Il décharge comme une baleine, par pitié -[CR02_02:CRED01] -~n~ ~n~ ~n~ ~n~Studio Director ~n~Gordon Hall +[POR4_D:PORN4] +comment tu fais pour ne pas saisir le rôle? -[CR02_03:CRED01] -~n~ ~n~ ~n~ ~n~Head of Development ~n~David Box +[POR4_E:PORN4] +Mais Stevie... -[CR02_04:CRED01] -~n~ ~n~ ~n~ ~n~Lead Programming ~n~Andrew Greensmith, Matthew Shepcar ~n~ ~n~ ~n~ ~n~Console Programming ~n~Nigel Conroy, Richard Frankish, ~n~Andrew Greensmith, Robin Mangham, ~n~Damian McKenna, Finlay Munro, ~n~Stuart Roskell, Matthew Shepcar +[POR4_F:PORN4] +Comment va mon réalisateur vedette? -[CR02_05:CRED01] -~n~ ~n~ ~n~ ~n~Programming ~n~Jon Bellamy, Ross Childs, ~n~Nigel Conroy, Neil Dodwell, ~n~Alastair Dukes, David Huebner, +[POR4_G:PORN4] +Ah, mon pote, la lutte incessante entre l'intégrité artistique et -[CR02_06:CRED01] -~n~ ~n~Robin Mangham, Jason McGann, ~n~Warren Merrifield, Stephen McGreal +[POR4_H:PORN4] +l'éjaculation sous toutes ses formes est loin d'être terminée. -[CR02_07:CRED01] -~n~ ~n~ ~n~ ~n~Sound Programming ~n~Finlay Munro, Charles Waddington +[POR4_I:PORN4] +Et avant que tu me poses la question, je t'informe que les quatre vidéos sortiront dans les... -[CR02_08:CRED01] -~n~ ~n~ ~n~ ~n~Art Director ~n~Ian Bowden +[POR4_J:PORN4] +Chérie, veux-tu garder l'anaconda dans le champ, S'IL TE PLAIT. -[CR02_09:CRED01] -~n~ ~n~ ~n~ ~n~Art Department Director ~n~Chris Smart +[POR4_K:PORN4] +Il prend plus de l'heure que toi! -[CR02_10:CRED01] -~n~ ~n~ ~n~ ~n~Lead Character Artist ~n~Paul Smith +[POR4_L:PORN4] +Oh, pardon, Steve... -[CR02_11:CRED01] -~n~ ~n~ ~n~ ~n~Character Artist ~n~Chris Allison +[POR4_M:PORN4] +Je me disais, faudrait monter un gros coup de pub pour la promo du film. -[CR02_12:CRED01] -~n~ ~n~ ~n~ ~n~Lead City Artist ~n~Dan Roberts +[POR4_N:PORN4] +Un truc qui aurait vraiment de l'impact sur la ville... T'as pas une idée? -[CR02_13:CRED01] -~n~ ~n~ ~n~ ~n~City Artists ~n~Paul McKee, James McHale, ~n~Siu Lee +[POR4_O:PORN4] +Eh ben, autrefois, on faisait des galas, -[CR02_14:CRED01] -~n~ ~n~ ~n~ ~n~Cutscene Interiors ~n~Izzy Stewart +[POR4_P:PORN4] +avec des vedettes, des limousines, la nuit éclairée par les projos... -[CR02_15:CRED01] -~n~ ~n~ ~n~ ~n~Concept Artist ~n~John Wigley +[POR4_Q:PORN4] +Des projecteurs? J'ai une idée! -[CR02_16:CRED01] -~n~ ~n~ ~n~ ~n~Additional Character Animation ~n~Alan Bowker +[POR4_R:PORN4] +...Ouais, ouais, ouais! Le petit numéro de paillettes, les limousines, ah, les premières! -[CR02_17:CRED01] -~n~ ~n~ ~n~ ~n~Additional Artists ~n~Andy Walker, Jason Gee, ~n~Chris Edwards, Lee Clark +[POR4_S:PORN4] +Oh oui, chère madaaaame, bien sûr, chère madaaaame... -[CR02_18:CRED01] -~n~ ~n~ ~n~ ~n~Design Director ~n~David Bland +[POR4_T:PORN4] +et la presse, et le barrage de lumières... -[CR02_19:CRED01] -~n~ ~n~ ~n~ ~n~Lead Level Design ~n~John Li +[POR4_01:PORN4] +~g~Va dans le ~y~Centre~g~ et ajuste le projecteur sur le toit du bâtiment. -[CR02_20:CRED01] -~n~ ~n~ ~n~ ~n~Senior Level Design ~n~Tony Gowland, Martyn Bramall +[POR4_02:PORN4] +~g~Une bécane rapide est nécessaire pour sauter de toit en toit. L'agent de sécurité a l'habitude de venir en ~y~PCJ 600~g~ au boulot... -[CR02_21:CRED01] -~n~ ~n~ ~n~ ~n~Level Design ~n~Sam Hackett, Stephen Robertson, ~n~Tom Kingsley, Chris Edwards, ~n~Kris Gormley +[POR4_03:PORN4] +~g~Faut que tu montes sur les toits. Il devrait y avoir un ascenceur dans l'un des immeubles de bureaux. -[CR02_22:CRED01] -~n~ ~n~ ~n~ ~n~Associate Designer ~n~Mark McGinley +[POR4_06:PORN4] +~g~Retourne à l'immeuble de bureaux du bas si tu as besoin d'accéder à nouveau au toit. -[CR02_23:CRED01] -~n~ ~n~ ~n~ ~n~QA Manager ~n~Paul Colls +[POR4_07:PORN4] +~g~Tu as besoin d'une bécane pour sauter de bâtiment en bâtiment! -[CR02_24:CRED01] -~n~ ~n~ ~n~ ~n~QA ~n~Jody Cobb, ~n~ ~n~Luke Brown, Nick Robey, ~n~Matthew Haven +[POR4_08:PORN4] +~g~Fonce à travers la fenêtre pour commencer. Tu as jusqu'à 07:00 avant que la lumière du jour ne risque de te faire découvrir. -[CR02_25:CRED01] -~n~ ~n~ ~n~ ~n~Company Secretary ~n~Naomi Martin +[POR4_09:PORN4] +~g~Les marqueurs t'indiquent sur quel bâtiment sauter ensuite. -[CR02_26:CRED01] -~n~ ~n~ ~n~ ~n~IT Manager ~n~Chris Waring +[POR4_10:PORN4] +~r~Il fait maintenant trop clair pour monter sans te faire voir. -[CR03_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ROCKSTAR NYC +[POR4_11:PORN4] +Retourne à l'escalier si tu as à nouveau besoin d'accéder au toit. -[CR03_02:CRED01] -~n~ ~n~ ~n~ ~n~Executive Producer ~n~Sam Houser +[POR4_05:PORN4] +~g~Ces escaliers mènent à un bureau. -[CR03_03:CRED01] -~n~ ~n~ ~n~ ~n~VP of Creative ~n~Dan Houser +[POR_AS1:PORN4] +STUDIO DE CINEMA OK -[CR03_04:CRED01] -~n~ ~n~ ~n~ ~n~VP of Development ~n~Jamie King +[POR_AS2:PORN4] +~g~Inter Global Films génère dorénavant un revenu de $~1~ maximum. Pense à récupérer le fric régulièrement. -[CR03_05:CRED01] -~n~ ~n~ ~n~ ~n~Art Director ~n~Alex Horton +{=================================== MISSION TABLE PROT1 ===================================} -[CR03_06:CRED01] -~n~ ~n~ ~n~ ~n~Chief Technology Officer ~n~Gary J. Foreman +[PRO1_B:PROT1] +Je supporte pas ce style. Tommy, qu'est-ce que t'en penses? Qu'est-ce que tu dirais qu'on mette un bar dans... -[CR03_07:CRED01] -~n~ ~n~ ~n~ ~n~Associate Producer ~n~Rich Rosado +[PRO1_D:PROT1] +Ecoutez-moi... -[CR03_08:CRED01] -~n~ ~n~ ~n~ ~n~Director of Quality Assurance ~n~Jeff Rosa +[PRO1_E:PROT1] +L'heure est venue de mettre la main sur cette ville! Le monde n'attend plus que nous! -[CR03_09:CRED01] -~n~ ~n~ ~n~ ~n~Senior Lead Analyst ~n~Lance Williams +[PRO1_F:PROT1] +Faut qu'on commence à s'emparer de territoires! -[CR03_10:CRED01] -~n~ ~n~ ~n~ ~n~Project Lead ~n~Jameel Vega +[PRO1_G:PROT1] +Faut qu'on fasse comprendre à tout Vice City qu'on est les nouveaux maîtres du jeu! Tu vois ce que je veux dire? -[CR03_11:CRED01] -~n~ ~n~ ~n~ ~n~Rockstar Test Team ~n~Ethan Abeles, William Rompf, ~n~Christopher Mansfield, Chris Choi, ~n~Mike Hong, Tamara Carrion, +[PRO1_I:PROT1] +Ce qu'il te faut, c'est une façade légale, Tommy! Une affaire officielle! Ca m'a jamais rapporté d'emmerdes! -[CR03_12:CRED01] -~n~ ~n~Rich Huie, Mike Nathan, ~n~Vance Wallace, Marc Rodriguez, ~n~Adam Tetzloff +[PRO1_J:PROT1] +Faut qu'on commence à utiliser des balaises ou autant faire une croix sur tout le boulot qu'on s'est tapé jusque là. -[CR03_13:CRED01] -~n~ ~n~ ~n~ ~n~Business Development Director ~n~Sean Macaluso +[PRO1_K:PROT1] +Les commerces locaux savent que Diaz est mort et ils refusent de payer pour leur protection! -[CR03_14:CRED01] -~n~ ~n~ ~n~ ~n~Soundtrack Supervision ~n~Heinz Henn, Ivan Pavlovich, ~n~Tim Sweeney +[PRO1_L:PROT1] +Ah. On pourrait essayer la corruption... -[CR04_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~CUT SCENES & DIALOGUE +[PRO1_M:PROT1] +La corruption! Mon cul, la corruption! Je vais vous montrer comment on leur fait peur! -[CR04_02:CRED01] -~n~ ~n~ ~n~ ~n~Motion Capture Director ~n~Navid Khonsari +[PRO1_01:PROT1] +~g~Défoule-toi sur les devantures des magasins et les proprios supplieront pour être protégés. -[CR04_03:CRED01] -~n~ ~n~ ~n~ ~n~Motion Capture Performed by ~n~Danny Mastrogiorgio, Jeffrey C. Hawkins, ~n~Bruce MacVittie, David Zayas, ~n~Peter Appel, Hannah Moon, ~n~Alyssa Truppelli, Joe Lotruglio +[PRO1_03:PROT1] +~r~C'était supposé être un raid éclair, pas une pause café. -[CR04_04:CRED01] -~n~ ~n~ ~n~ ~n~Voices Performed by ~n~Salvatore Leone - Frank Vincent ~n~Toni Cipriani - Danny Mastrogiorgio ~n~Donald Love - Will Janowitz +[PRO1_04:PROT1] +Mon gagne-pain est détruit! -[CR04_05:CRED01] -~n~ ~n~ Vincenzo Cilli - Joe Lotruglio ~n~Maria Latore - Fiona Gallagher ~n~JD O'Toole - Greg Wilson +[PRO1_05:PROT1] +Tout est en ruines! -[CR04_06:CRED01] -~n~ ~n~Leon McAffrey - Ron Orbach ~n~Ray Machowski - Peter Appel ~n~Toshiko Kasen - Hannah Moon +[PRO1_06:PROT1] +Je paye le prix fort pour ma protection! -[CR04_07:CRED01] -~n~ ~n~ Ned Burner - Peter Bradbury ~n~Ma Cipriani - Sondra James ~n~Giovanni Casa - Joel Jones +[PRO1_07:PROT1] +Ma belle vitrine! -[CR04_08:CRED01] -~n~ ~n~Kazuki Kasen - Keenan Shimizu, ~n~Massimo Torini - Duccio Faggella ~n~Mickey Hamfists - Chris Tardio +[PRO1_08:PROT1] +Mon magasin! Mon beau magasin! -[CR04_09:CRED01] -~n~ ~n~Jane Hopper - Gordana Rashovich ~n~Mayor O'Donovan - John Braden ~n~8 Ball - Guru +[PRO1_09:PROT1] +Vercetti. Souvenez-vous de mon nom... -[CR04_10:CRED01] -~n~ ~n~Radio Newscaster - Sharon Washington ~n~TV Reporter - Brooke Alexander +[PRO1_10:PROT1] +Je règne désormais sur cette ville. MOI! -[CR04_11:CRED01] -~n~ ~n~ ~n~ ~n~Pedestrian Dialogue ~n~Una Cruickshank, Gregory Johnson, ~n~Sanford Santacroce, Ayana Osada +[BUYP1:PROT1] +Tu peux désormais acheter des propriétés dans certaines zones de la carte. -[CR04_12:CRED01] -~n~ ~n~ ~n~ ~n~Pedestrian Voices ~n~Jamie Hector, Jackson Loo, ~n~Bruce MacVittie, Jeff Gurner, ~n~Jamie Hector, Andrea Kessler, +[BUYP2:PROT1] +Si tu vois un marqueur vert sur une propriété, c'est que tu peux l'acheter. -[CR04_13:CRED01] -~n~ ~n~Lynne Horton, Phil Mikkelson, ~n~Koji Nonoyama, Devin Bennett, ~n~Jay Capozello, Mike Nathan, +[PRO1_N:PROT1] +Je reviens dans cinq minutes... -[CR04_14:CRED01] -~n~ ~n~Ethan Abeles, Lance Williams, ~n~Natalya Wilson, Jay Gladstone, ~n~Craig Blair, Dave Edwards, +[PRO1_11:PROT1] +~g~Va au ~y~Centre commercial de North Point~g~ dans ~y~Vice Point~g~. -[CR04_15:CRED01] -~n~ ~n~Gregory Johnson, John Zurhellen, ~n~Blair Sadler, Georgia Sadler, ~n~Nicole Sadler, Judy Henderson, +[PRO1_12:PROT1] +~g~Brise les vitrines de chaque magasin et les proprios supplieront pour une nouvelle protection. -[CR04_16:CRED01] -~n~ ~n~Kim Graham, Kerry Shaw, ~n~Tamara Carrion, Franceska Clemens, ~n~Navid Khonsari, Noelle Sadler, +[PRO1_A:PROT1] +Ah, faut qu'on redécore cet endroit, faut qu'on lui donne un air plus vieux. -[CR04_17:CRED01] -~n~ ~n~Nicholas Mongomery, Anthony Macbain, ~n~Ryan Rayhill, Josh Slater, ~n~Carmelo Gaeta, Hikari Yokoyama, +[PRO1_C:PROT1] +T'es mon avocat, Rosenberg. Pas mon décorateur. Compris? -[CR04_18:CRED01] -~n~ ~n~Chris Jobin, Michael Rothstein, ~n~Stacey Rachels, Jennifer Koontz, ~n~Dan Merrill, Ali Khonsari, +[BUYP3:PROT1] +Tiens-toi sur le marqueur, puis appuie sur la touche ~h~~k~~PED_ANSWER_PHONE~~w~ pour acheter cette propriété. -[CR04_19:CRED01] -~n~ ~n~Ellen Rose, Chris Standal, ~n~Lorie Goodman, Neal Johnston, ~n~Son Garth, James Larsen, +[PRO1_13:PROT1] +~g~Tu as cinq minutes pour tous les avoir. -[CR04_20:CRED01] -~n~ ~n~Karl Weibel, Ramin Khonsari, ~n~Ed. Thomas Jr., Stanton Sargent, ~n~Oswald Greene, Audrey Amey, +{=================================== MISSION TABLE PROT2 ===================================} -[CR04_21:CRED01] -~n~ ~n~Sanford Santacroce, Jeff Madrick, ~n~Ben Weaver, Andrea Kessler, ~n~CS Lee, Yoshi Amao, +[PRO2_A:PROT2] +C'est quoi l'problème? -[CR04_22:CRED01] -~n~ ~n~ Jackson Loo, Martha Morrison, ~n~Sarah Bloodsworth, Adam Deher, ~n~Billy Gonzalez +[PRO2_B:PROT2] +Un bar refuse de payer. -[CR04_23:CRED01] -~n~ ~n~ ~n~ ~n~Additional Motion Graphics ~n~Maryam Parwana +[PRO2_C:PROT2] +Le boss considère qu'il est sous la protection d'un gang de voyous du coin... -[CR04_24:CRED01] -~n~ ~n~ ~n~ ~n~Dialogue Recording & Mixing ~n~Nicholas Montgomery +[PRO2_D:PROT2] +Mais t'en fais pas, Tommy, je peux m'en occuper. -[CR04_25:CRED01] -~n~ ~n~ ~n~ ~n~Foley Recording ~n~Bryan Scibinico +[PRO2_E:PROT2] +C'est ça que t'appelles t'en occuper? -[CR04_26:CRED01] -~n~ ~n~ ~n~ ~n~Foley recorded at Dig It Studios +[PRO2_F:PROT2] +Vous deux, levez vos culs de là... -[CR04_27:CRED01] -~n~ ~n~ ~n~ ~n~Production Team ~n~Noelle Sadler, Eli Weissman, ~n~Kerry Shaw, John Zurhellen, ~n~Peter Adler, Anthony Carvalho, +[PRO2_G:PROT2] +Allons-y. -[CR04_28:CRED01] -~n~ ~n~Phil Poli, Jaesun Celebre, ~n~Franceska Clemens, Anthony Litton +[PRO2_01:PROT2] +~g~Liquide les gardes qui protègent le Front Page Bar et trouve qui les a approvisionnés. -[CR04_29:CRED01] -~n~ ~n~ ~n~ ~n~Casting ~n~Judy Henderson and Associates +[PRO2_10:PROT2] +~g~Il y en a deux de plus qui se sont fait la malle. Finis-en avec eux. -[CR04_30:CRED01] -~n~Motion Capture recorded at Perspective Studios +[PRO2_11:PROT2] +Montez dans la caisse, bons à rien. -[CR05_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~RADIO +[PRO2_02:PROT2] +Ta protection a besoin d'être légèrement renforcée. -[CR05_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ Banter, Talk Radio, Commercials and Imaging written by ~n~Dan Houser and Lazlow +[PRO2_03:PROT2] +Ah, non, pas encore! J'en ai marre! -[CR05_03:CRED01] -~n~ ~n~ ~n~ ~n~Production by ~n~Lazlow +[PRO2_04:PROT2] +Ces imbéciles opèrent dans le quartier à partir de DBP Security. -[CR05_04:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~LCFR +[PRO2_05:PROT2] +Réglez la question entre vous, les mecs. -[CR05_05:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voices ~n~Smith Harrison, Karen Saltus +[PRO2_06:PROT2] +Bon, à plus tard. -[CR05_06:CRED01] -~n~ ~n~ ~n~ ~n~Heartland Values with Nurse Bob ~n~Nurse Bob - Chuck Montgomery +[PRO2_07:PROT2] +Ouais, ouais, c'est ça. -[CR05_07:CRED01] -~n~ ~n~ ~n~ ~n~Guests and Callers ~n~Ayana Osada, Nick Montgomery, ~n~Russell Lewis, Nick Born, ~n~Sean Macaluso, Kerry Shaw, +[PRO2_08:PROT2] +~g~Les abrutis du DBP Security sauront que t'y vas, alors fonce et chope-les avant qu'ils décampent! -[CR05_08:CRED01] -~n~ ~n~Chad Johnson, Craig Conner, ~n~Mary Elizabeth, Rob Cross, ~n~Josh Bitney +[PRO2_09:PROT2] +~g~Va parler au proprio du Front Page Bar. -[CR05_09:CRED01] -~n~ ~n~ ~n~ ~n~Electron Zone ~n~Steve - Ptolemy Slocum ~n~Bill - Michael Urichek +{=================================== MISSION TABLE PROT3 ===================================} -[CR05_10:CRED01] -~n~ ~n~ ~n~ ~n~Callers ~n~Alice Saltzman, Jeremy Wheaton, ~n~Ryan Rayhill, Maine Anderson, ~n~Patton Oswalt, Wil Wheaton, ~n~Anthony Cumia, Madena Parwana +[PRO3_A:PROT3] +Pauvre crétin! A quoi tu pensais? -[CR05_11:CRED01] -~n~ ~n~ ~n~ ~n~Breathing World ~n~Lee Chowder - Ashley Albert ~n~Crow - Gregg Martin +[PRO3_B:PROT3] +Tu réalise ce qui aurait pu arriver? -[CR05_12:CRED01] -~n~ ~n~ ~n~ ~n~Coq 'O' Vin ~n~Richard Goblin - Mike Shapiro +[PRO3_C:PROT3] +On a failli tous se faire avoir! -[CR05_13:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voice ~n~Ben Krech +[PRO3_D:PROT3] +Le retardateur a dû déconner... -[CR05_14:CRED01] -~n~ ~n~ ~n~ ~n~Callers ~n~Franceska Clemins, Sarah Bloodsworth, ~n~Adam Deher, Martha Morrison, ~n~Carmelo Gaeta +[PRO3_E:PROT3] +Cet endroit était prêt à sauter comme une usine de feux d'artifice. -[CR05_15:CRED01] -~n~ ~n~ ~n~ ~n~Chatterbox ~n~Lazlow as himself +[PRO3_F:PROT3] +Et pis quelqu'un a rencardé les flics... -[CR05_16:CRED01] -~n~ ~n~ ~n~ ~n~Callers ~n~Susan Lewis, Ben Weaver, ~n~Jacky Bam Bam, Ben Sparks, ~n~Deanna Moyer, Liezl Jacinto, +[PRO3_G:PROT3] +C'est quoi le problème, les mecs? -[CR05_17:CRED01] -~n~ ~n~Joshua Batista, Gregg Opie Hughes, ~n~Sondra James, Elizabeth Satterwhite +[PRO3_H:PROT3] +Mike devait foutre le feu quelque part dans le centre commercial, -[CR06_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~HEAD RADIO +[PRO3_I:PROT3] +mais il a foiré son coup et maintenant, les flics grouillent, là-bas. -[CR06_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Michael Hunt - Russ Mottla +[PRO3_J:PROT3] +Faut qu'on récupère notre bordel et qu'on s'tire de là! -[CR06_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voices ~n~Jeff Berlin, Katelyn Hutchinson +[PRO3_K:PROT3] +Du calme, vous deux, laissez-moi réfléchir une seconde! -[CR06_04:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Production ~n~Jeff Berlin +[PRO3_L:PROT3] +Tommy Vercetti a pas l'habitude de mettre les bouts comme ça... -[CR06_05:CRED01] -~n~ ~n~ ~n~ ~n~"Train" ~n~Conor & Jay ~n~Written by Craig Conner & Julie Wemyss ~n~Produced by Craig Conner ~n~Guitars by Jon McCavish ~n~Vocals by Julie Wemyss and Craig Conner +[PRO3_M:PROT3] +Les flics vont passer ce bâtiment au peigne fin, pas vrai? -[CR06_06:CRED01] -~n~ ~n~ ~n~ ~n~"The One For Me" ~n~Cloud Nineteen ~n~Written & Produced by ~n~Will Morton ~n~Additional Lyrics by Paul Mackie ~n~Guitars by Allan Walker & Chris Morton ~n~Lead Vocals by Raff ~n~Backing Vocals by Paul Mackie & Raff +[PRO3_N:PROT3] +Mais ça prend du temps... -[CR06_07:CRED01] -~n~ ~n~ ~n~ ~n~"Take The Pain" ~n~Purser ~n~Written & Produced by ~n~Will Morton, Chris Morton ~n~Additional Lyrics by Paul Mackie ~n~Lead Vocals by Paul Mackie ~n~Additional Vocals by Will Morton +[PRO3_O:PROT3] +On va entrer et foutre le feu nous-mêmes! -[CR06_08:CRED01] -~n~ ~n~ ~n~ ~n~"Free Yourself" ~n~L-Marie featuring Raff ~n~Written & Produced by Craig Conner ~n~Vocals by L-Marie and Raff ~n~Backing Vocals by Craig Conner +[PRO3_P:PROT3] +Ouais, mais... -[CR06_09:CRED01] -~n~ ~n~ ~n~ ~n~"Drive" ~n~15 Ways ~n~Written & Produced by Colin Entwistle ~n~Vocals by Paul Mackie +[PRO3_Q:PROT3] +Il y a que les flics qui peuvent approcher à moins d'un kilomètre de là-bas! -[CR06_10:CRED01] -~n~ ~n~ ~n~ ~n~"Welcome To The Real World" ~n~Rosco Stow ~n~Written & Produced by Craig Conner ~n~Guitars Written, Produced and Performed by Allan Walker ~n~Lead Vocals by Andy Dorrat ~n~Backing Vocals by Craig Conner, ~n~Anna Stuart and Kim Gurney +[PRO3_R:PROT3] +Alors, on ira en tant que flics! -[CR06_11:CRED01] -~n~ ~n~ ~n~ ~n~"Keep Dreaming" ~n~Vanilla Smoothie ~n~Written & Produced by ~n~Alastair MacGregor ~n~Guitars by Allan Walker ~n~Vocals by Fiona Stoddart +[PRO3_S:PROT3] +On va se dégotter des uniformes et il nous faut aussi une bagnole de patrouille. -[CR07_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~LIPS 106 +[PRO3_T:PROT3] +Tout ça à cause de toi, Mike. -[CR07_02:CRED01] -~n~ ~n~ ~n~ ~n~DJs ~n~Cliff - Ed McMann ~n~Andee - Shelley Miller +[PRO3_U:PROT3] +Je suis désolé. -[CR07_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voice ~n~Jonathan Hanst +[PRO3_V:PROT3] +J'ai trouvé! -[CR07_04:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Production ~n~Jonathan Hanst +[PRO3_W:PROT3] +Tout ce qu'on a à faire, c'est appâter les flics avec un doigt levé, -[CR07_05:CRED01] -~n~ ~n~ ~n~ ~n~"Funk In Time" ~n~Rudy La Fontaine ~n~Written & Produced by Jon McCavish ~n~Guitars by Julian Pais ~n~Vocals by Julian Pais +[PRO3_X:PROT3] +de les prendre au piège -[CR07_06:CRED01] -~n~ ~n~ ~n~ ~n~"Love Is The Feeling" ~n~Sawarr ~n~Written by Craig Conner & Julie Wemyss ~n~Produced by Craig Conner ~n~Vocals by Julie Wemyss +[PRO3_Y:PROT3] +et de leur sauter dessus! -[CR07_07:CRED01] -~n~ ~n~ ~n~ ~n~"Mine Until Monday" ~n~Sunshine Shine ~n~Written & Produced by Will Morton ~n~Additional Lyrics by Paul Mackie ~n~Vocals by Paul Mackie & Raff +[PRO3_Z:PROT3] +Super plan! En route! -[CR07_08:CRED01] -~n~ ~n~ ~n~ ~n~"Get Down" ~n~Credit Check ~n~Written & Produced by ~n~Alastair MacGregor ~n~Guitars by Martyn Livingstone ~n~Bass by Andy Wilson ~n~Vocals by Louise Ferrier +[PRO3_A1:PROT3] +OK. -[CR07_09:CRED01] -~n~ ~n~ ~n~ ~n~"Tonight" ~n~Cool Timers ~n~Written & Produced by Craig Conner ~n~Vocals by Julie Wemyss +[PRO3_01:PROT3] +Ok Lance, attirons l'attention des flics! -[CR07_10:CRED01] -~n~ ~n~ ~n~ ~n~"Bassmatic" ~n~Nina Barry ~n~Written & Produced by Jon McCavish ~n~Vocals by Riz Maslen +[PRO3_02:PROT3] +~g~Prends la bagnole des flics et va poser la bombe au Tarbrush Coffee Shop dans le centre commercial. -[CR07_11:CRED01] -~n~ ~n~ ~n~ ~n~"Into Something (C'mon Get Down)" ~n~The Jackstars ~n~Written & Produced By ~n~Craig Conner ~n~Vocals by Lucie Danti-Juan ~n~Backing vocals by ~n~Kevin Stacey & Craig Conner +[PRO3_03:PROT3] +~g~T'as laissé Lance derrière, va le récupérer! -[CR08_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~DOUBLE CLEF FM +[PRO3_04:PROT3] +~g~Allons-y! -[CR08_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Sergio Boccino - Robert Blumenfeld +[PRO3_05:PROT3] +~r~T'as buté Lance! -[CR08_03:CRED01] -~n~ ~n~ ~n~ ~n~Caller ~n~Gerald Cosgrove +[PRO3_07:PROT3] +~g~Tu as grillé ta couverture! Magne-toi de poser la bombe! -[CR08_04:CRED01] -~n~ ~n~ ~n~ ~n~"Il Trovatore: Anvil Chorus" ~n~Composed by Giuseppe Verdi ~n~Performed by ~n~Nuremberg Symphonic Orchestra ~n~& Munich State Opera Choir ~n~Courtesy of Point Classics, LLC +[PRO3_09:PROT3] +Ligotons et bâillonnons-les! -[CR08_05:CRED01] -~n~ ~n~ ~n~ ~n~"Il Trovatore: Tacea la notte placida" ~n~Composed by Giuseppe Verdi ~n~Performed by ~n~Nuremberg Symphonic Orchestra & ~n~Munich State Opera Choir ~n~(Eva Illes, Soprano) ~n~Courtesy of Point Classics, LLC +[PRO3_10:PROT3] +Aaah! Il me va parfaitement! -[CR08_06:CRED01] -~n~ ~n~ ~n~ ~n~"Nabucco: Chorus of the Hebrew Slaves" ~n~Composed by Giuseppe Verdi ~n~Performed by Philharmonia Slavonica ~n~Courtesy of Point Classics, LLC +[PRO3_11:PROT3] +Mais quand même un peu serré au niveau des couilles... -[CR08_07:CRED01] -~n~ ~n~ ~n~ ~n~"Così fan tutte: È amore un ladroncello" ~n~Composed by Wolfgang Amadeus Mozart ~n~Performed by ~n~Bratislava Opera Soloists, ~n~Choir and Orchestra ~n~(Ida Kirilova "Dorabella") ~n~Courtesy of Point Classics, LLC +[PRO3_12:PROT3] +Ah ouais? Le mien aussi, c'est pareil! -[CR08_08:CRED01] -~n~ ~n~ ~n~ ~n~"Marriage of Figaro: Overture" ~n~Composed by Wolfgang Amadeus Mozart ~n~Performed by ~n~London Philharmonic Orchestra ~n~Courtesy of Point Classics, LLC +[PRO3_13:PROT3] +Du calme, mon pote! Les flics conduisent pas aussi mal! -[CR08_09:CRED01] -~n~ ~n~ ~n~ ~n~"I Pagliacci: Vesti la giubba" ~n~Composed by Ruggiero Leoncavallo ~n~Performed by ~n~Nuremberg Symphonic Orchestra ~n~(José Maria Perez, Tenor) ~n~Courtesy of Point Classics, LLC +[PRO3_14:PROT3] +Oublie pas... Faut sourire aux autres flics... -[CR09_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~RISE FM +[PRO3_15:PROT3] +Salut officier. Bel insigne, bel insigne... -[CR09_02:CRED01] -~n~ ~n~ ~n~ ~n~Engineered by Mike Callaghan +[PRO3_16:PROT3] +Tout doux, Lance. -[CR09_03:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Boy Sanchez - Oliver Vaquer +[PRO3_17:PROT3] +Ok, les retardateurs sont programmés, 5 secondes et ça saute! -[CR09_04:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voices ~n~DJ Andre, Lupus Thunder, ~n~Andi Hanley, Mat Ckillz, ~n~Couzin Ed, Lazlow, +[PRO3_18:PROT3] +5 secondes? Putain faut dégager d'ici en vitesse! -[CR09_05:CRED01] -~n~ ~n~Terry Donovan, Bill Brissette, ~n~Juan Aller, Ed Andrews, ~n~Xeni Jardin, Matthew Orr, ~n~Jeff Berlin +[PRO3_19:PROT3] +Maintenant, ils vont vraiment être fâchés... -[CR09_06:CRED01] -~n~ ~n~ ~n~ ~n~"Sing It Back ~n~(Boris Musical Mix)" ~n~Moloko ~n~Written by M. Brydon, R. Murphy ~n~Published by Chrysalis Music (ASCAP) ~n~Remix and Additional Production by ~n~Boris Dlugosch ~n~(p) + © 1998 The Echo Label ~n~Courtesy of Chrysalis Music Limited +[PRO3_20:PROT3] +~g~Fais-toi suivre par deux flics dans le garage. -[CR09_07:CRED01] -~n~ ~n~ ~n~ ~n~"Free" ~n~Ultra Nate ~n~Written by U. Nate, L. Springsteen, ~n~J. Ciafone ~n~Published by Warner/ Chappell Music/ BMG Music ~n~(p) + © 1997 Strictly Rhythm Records LLC ~n~Courtesy of Warner Strategic Marketing +[PRO3_21:PROT3] +~g~Tu dois avoir un indice de recherche pour que les flics te suivent dans le piège. -[CR09_08:CRED01] -~n~ ~n~ ~n~ ~n~"I Believe" ~n~Happy Clappers ~n~Written by C. Scott, G. Ripley, M. Knotts, M. Topham ~n~Published by All Boys Music Ltd ~n~(p) + © 1994 C J Scott Productions ~n~Courtesy of C J Scott Productions +[PRO3_22:PROT3] +~g~La porte est bloquée! Dégage le passage pour qu'elle puisse être refermée. -[CR09_09:CRED01] -~n~ ~n~ ~n~ ~n~"House Music" ~n~Eddie Amador ~n~Written by Eddie Amador ~n~Published by ~n~Deep Dish Music ~n~(p) + © 1998 Yoshitoshi Records ~n~Courtesy of ~n~Deep Dish Recordings, Inc. ~n~by arrangement with ~n~Nasseri Music Business Solutions +[PRO3_23:PROT3] +~g~Marche sur le marqueur pour poser la bombe. -[CR09_10:CRED01] -~n~ ~n~ ~n~ ~n~"Feel What You Want" ~n~Kristine W ~n~Written by R. Dougan, R. Armstrong, ~n~K. Weitz ~n~Published by BMG Music/Weitz House Publishing (ASCAP)/ EMI Music Publishing ~n~(p) + © 1996 RCA/ BMG ~n~Courtesy of Sony BMG Entertainment +[PRO3_24:PROT3] +~g~Tire-toi du café! -[CR09_11:CRED01] -~n~ ~n~ ~n~ ~n~"Hideaway ~n~(Deep Dish Vocal Remix)" ~n~De'Lacy ~n~Written by K. Hedge, J. Milan ~n~Published by ~n~Warner-Tamerlane Publishing Corp ~n~Remix and Additional Production by ~n~Deep Dish ~n~(p) 1995 Easy Street Recordings Inc ~n~© 1998 Kickin Music Ltd ~n~Courtesy of Easy Street Recordings Inc. and Slip n' Slide Records +[PRO_AS1:PROT3] +PROTECTION OK -[CR09_12:CRED01] -~n~ ~n~ ~n~ ~n~"Spin Spin Sugar ~n~(Armand's Dark Garage Mix)" ~n~Sneaker Pimps ~n~Written by I. Pickering, L. Coverdale Howe, C. Corner ~n~Remix and Additional Production by ~n~Armand Van Helden ~n~Published by BMG Songs, Inc ~n~(p) + © 1997 Clean Up Records Ltd ~n~Courtesy of EMI Music / ~n~One Little Indian, Ltd +[PRO_AS2:PROT3] +~g~Vercetti Estate génère désormais un revenu de $~1~ maximum. Pense à récupérer le fric régulièrement. -[CR09_13:CRED01] -~n~ ~n~ ~n~ ~n~"Plastic Dreams" ~n~Jaydee ~n~Written by R. Albers ~n~Published by TBM Holland ~n~(p) 1992 R & S Records ~n~© Robin Albers ~n~Courtesy of Robin "Jaydee" Albers +[PRO3_08:PROT3] +~g~ Retourne à ~h~Vercetti Estate~g~ sur ~h~Starfish Island~g~. -[CR09_14:CRED01] -~n~ ~n~ ~n~ ~n~"Altered States" ~n~Ron Trent ~n~Written by R. Trent ~n~Published by ~n~High Fashion Music/ Nanada Music ~n~(p) + © 1993 Warehouse ~n~Djax-Up Beats ~n~Courtesy of High Fashion Music/ ~n~Djax-Up Beats +{=================================== MISSION TABLE RACES ===================================} -[CR09_15:CRED01] -~n~ ~n~ ~n~ ~n~"There Will Come A Day (Half Tab Dub)" ~n~The Absolute featuring Suzanne Palmer ~n~Written by M. Pichiotti, C.J. Snider ~n~Published by Much Noyse Music/ ~n~Hoobini Music (ASCAP) ~n~(p) + © 1995 Mark Productions, Inc ~n~Courtesy of Mark Productions, Inc +[RACES_2:RACES] +~g~Il te faut un véhicule, c'est pas une course à pied! -[CR09_16:CRED01] -~n~ ~n~ ~n~ ~n~"Positive Education" ~n~Slam ~n~Written by S. McMillan, O. Meikle, ~n~G. Gibbons, J. Muotone ~n~Published by EMI Music Publishing ~n~(p) + © 1997 Soma Recordings Ltd ~n~Courtesy of Soma Recordings Ltd +[RACES_3:RACES] +3... 2... 1... PARTEZ! -[CR09_17:CRED01] -~n~ ~n~ ~n~ ~n~"Flash" ~n~Green Velvet ~n~Written by C. Jones ~n~Published by Curtis A. Jones Music (ASCAP) ~n~(p) 1995 Relief Records ~n~© 2000 Warner Bros. Records and N.E.W.S. Records and Relief Records ~n~Courtesy of Warner Strategic Marketing, N.E.W.S. Records, Relief Records +[RACES_8:RACES] +~r~Tu n'as pas gagné la course! -[CR09_18:CRED01] -~n~ ~n~ ~n~ ~n~"Circus Bells (Hardfloor Remix)" ~n~Robert Armani ~n~Written by R. Armani ~n~Published by ~n~High Fashion Music/ Nanada Music ~n~(p) + © 1993 Warehouse/ ~n~Djax-Up Beats ~n~Courtesy of High Fashion Music/ ~n~Djax-Up Beats +[RACES00:RACES] +Course ~1~ : -[CR09_19:CRED01] -~n~ ~n~ ~n~ ~n~"Higher State Of Consciousness" ~n~Wink ~n~Written by J. Wink ~n~Published by Strictly Rhythm Publishing, Inc. (ASCAP) / Warner/Chappell Music / Wink Inc. (ASCAP) / EMI Music Publishing ~n~(p) + © 1995 Strictly Rhythm Records LLC ~n~Courtesy of Warner Strategic Marketing +[RACES01:RACES] +Terminal Velocity -[CR10_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~RADIO DEL MUNDO +[RACES02:RACES] +Ocean Drive -[CR10_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Panjit Gavaskar - Hajaz Akram +[RACES03:RACES] +Border Run -[CR10_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voice ~n~Jessica Wachsman +[RACES04:RACES] +Capital Cruise -[CR10_04:CRED01] -~n~ ~n~ ~n~ ~n~"Raghupati (Folk Tune)" ~n~Ananda Shankar ~n~Arranged by A. Shankar, Lewinson, Hassilev ~n~Published by Warner Chappell Inc ~n~(p) + © 1970 Reprise Records for the U.S. and WEA International Inc ~n~Courtesy of Warner Strategic Marketing +[RACES05:RACES] +Virée! -[CR10_05:CRED01] -~n~ ~n~ ~n~ ~n~"Dum Maro Dum" ~n~Asha Bhosle ~n~Written by RD Burman, Anand Bakshi ~n~Published by Saregama India Ltd ~n~(p) + © 1971 Saregama India Ltd ~n~Courtesy of Saregama India Ltd +[RACES06:RACES] +Endurance V.C. -[CR10_06:CRED01] -~n~ ~n~ ~n~ ~n~"Neeve Nanna (Only You Were Mine)" ~n~Vijaya Anand ~n~Written by Vijaya Anand ~n~Published by Shake Boom! (ASCAP)/ ~n~Luaka Bop Inc ~n~(p) 1988 Lahari/Audiovision ~n~© 1992 Sire Records Company ~n~Courtesy of ~n~Luaka Bop Records +[RACES07:RACES] +Participation : ~1~$ -[CR10_07:CRED01] -~n~ ~n~ ~n~ ~n~"Kidda" ~n~Natacha Atlas ~n~Written by N. Atlas, J. Reynolds, J. Adams ~n~Published by Warner Chappell Music Ltd ~n~(p) + © 1997 Nation Records Ltd/ ~n~Beggars Banquet Records Ltd ~n~Courtesy of Nation Records Ltd/ ~n~Beggars Banquet Records Ltd +[RACES08:RACES] +Meilleur temps : ~1~:~1~ -[CR10_08:CRED01] -~n~ ~n~ ~n~ ~n~"Hebeena Hebeena" ~n~Farid El Atrache ~n~Written by Barakat, Atrache ~n~Published by Voices Of Lebanon ~n~(p) + © 1974 Voices Of Lebanon ~n~Courtesy of EMI Music/ EMI Music Arabia +[RACES09:RACES] +Meilleure perf : 1er -[CR10_09:CRED01] -~n~ ~n~ ~n~ ~n~"Aini Bet Ref" ~n~Ahmed Mneimneh ~n~Written by A. Alishaan ~n~Published by D. Dersahakian (ASCAP) ~n~(p) + © Voice of Stars & ~n~Lys Records ~n~Courtesy of Voice of Stars & ~n~Lys Records +[RACES10:RACES] +Meilleure perf : 2e -[CR10_10:CRED01] -~n~ ~n~ ~n~ ~n~"Im Nin'Alu" ~n~Ofra Haza ~n~Traditional, Arranged by I. Ashdot, B. Nagari ~n~Published by Blue Lake Music ~n~ (p) + © 1988 Sire Records Company ~n~Courtesy of Warner Strategic Marketing +[RACES11:RACES] +Meilleure perf : 3e -[CR10_11:CRED01] -~n~ ~n~ ~n~ ~n~"Ballaa Tsoubou Hal Kahwa" ~n~Samira Tawfic ~n~Written by R. Al Khylani, J. Al A'ss ~n~Published by Copyright Control ~n~(p) + © Voices Of Lebanon ~n~Courtesy of EMI Music/ EMI Music Arabia +[RACES12:RACES] +Meilleure perf : 4e -[CR11_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~K-JAH +[RACES13:RACES] +Longueur circuit : ~1~.~1~ km -[CR11_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Natalee Walsh Davis - Pascale Armand +[RACES15:RACES] +Meilleur temps : NA -[CR11_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voices ~n~Karl Weibel, Pat McKay +[RACES16:RACES] +Meilleure perf : NA -[CR11_04:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Production ~n~Jay Wright Productions +[RACES18:RACES] +TU AS GAGNE : $~1~ -[CR11_05:CRED01] -~n~ ~n~ ~n~ ~n~"Pick a Sound" ~n~Selah Collins, Ruddy Ranks, Redeye ~n~Written by S. Collins, H. Burke, ~n~E. Donaldson ~n~Published by Copyright Control/ MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records +[RACES19:RACES] +Tu n'as pas assez de moyens pour participer. -[CR11_06:CRED01] -~n~ ~n~ ~n~ ~n~"What a Wonderful Feeling" ~n~Errol Bellot, Ruddy Ranks, Redeye ~n~Written by E. Bellot, H. Burke, ~n~E. Donaldson ~n~Published by MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records +[RACES22:RACES] +Meilleur temps : ~1~:0~1~ -[CR11_07:CRED01] -~n~ "Watch How the People Dancing" ~n~Kenny Knots, Ruddy Ranks, Redeye ~n~Written by K. Wright ~n~Published by Jetstar ~n~Courtesy of Honest Jons Records +[RACES23:RACES] +Longueur circuit : ~1~.~1~ miles -[CR11_08:CRED01] -~n~ ~n~ ~n~ ~n~"Lean Boot" ~n~Richie Davis, Ruddy Ranks, Redeye ~n~Written by R. Davis, H. Burke, ~n~E. Donaldson ~n~Published by Westbury Music/ MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records +[RACES_1:RACES] +~g~Trouve un bolide et rends-toi sur la grille de départ. -[CR11_09:CRED01] -~n~ ~n~ ~n~ ~n~"Ready For the Dancehall Tonight" ~n~Peter Bouncer, Ruddy Ranks, Redeye ~n~Written by Peter McKenzie, H. Burke, ~n~E. Donaldson ~n~Published by MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records +[RACEHLP:RACES] +~w~Appuie sur la~h~ ~k~~PED_SPRINT~~w~ pour commencer la course choisie. Appuie sur la~h~ ~k~~VEHICLE_ENTER_EXIT~~w~ pour quitter. -[CR11_10:CRED01] -~n~ ~n~ ~n~ ~n~"You Ha Fe Cool" ~n~Richie Davis, Ruddy Ranks, Redeye ~n~Written by R. Davis, H. Burke, ~n~E. Donaldson. ~n~Published by Westbury Music/MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records +{=================================== MISSION TABLE RCHELI1 ===================================} -[CR11_11:CRED01] -~n~ ~n~ ~n~ ~n~"Ring My Number" ~n~Kenny Knots, Ruddy Ranks, Redeye ~n~Written by Kenneth Wright, H. Burke, ~n~E. Donaldson. ~n~Published by MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records +[WRECKED:RCHELI1] +Ton véhicule est mort! -[CR11_12:CRED01] -~n~ ~n~ ~n~ ~n~"Run Come Call Me" ~n~Kenny Knots, Ruddy Ranks, Redeye ~n~Written by Kenneth Wright, H. Burke, ~n~E. Donaldson ~n~Published by MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records +[RCH1_4:RCHELI1] +Points de passage restants : -[CR12_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~THE LIBERTY JAM +[RCH1_6:RCHELI1] +~g~Utilise l'hélico télécommandé pour passer les points de passage à travers l'aéroport. -[CR12_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~DJ Clue as himself +[RCH1_7:RCHELI1] +~g~Il y a 20 points de passage en tout. -[CR12_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voices ~n~Jay Wright, Tom Yankowski, Chris Mercado, Vanessa Grullon +[RCH1_12:RCHELI1] +~g~L'hélicoptère télécommandé est presque hors de portée! -[CR12_04:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Production ~n~Jay Wright Productions +[RCH1_13:RCHELI1] +~r~L'hélicoptère radiocommandé est hors de portée! -[CR12_05:CRED01] -~n~ ~n~ ~n~ ~n~"All I Need" ~n~Method Man ~n~Written by C. Smith, R. Diggs ~n~Published by Sony BMG Music ~n~(p) + © 1994 Def Jam Recordings ~n~Courtesy of Def Jam Recordings/ UME +[RCH1_8:RCHELI1] { reVC update } +~g~Si tu veux quitter cette mission, appuie sur la ~h~~k~~VEHICLE_FIREWEAPON~~g~ pour faire exploser ton hélicoptère radiocommandé. -[CR12_06:CRED01] -~n~ ~n~ ~n~ ~n~"Shook Ones Pt. II" ~n~Mobb Deep ~n~Written by A. Johnson, K. Muchita ~n~Published by ~n~BMG Songs Inc. (ASCAP) ~n~(p) + © 1995 BMG Music ~n~Courtesy of RCA Records by arrangement with Sony BMG Ent +{=================================== MISSION TABLE RCPLNE1 ===================================} -[CR12_07:CRED01] -~n~ ~n~ ~n~ ~n~"Incarcerated Scarface" ~n~Raekwon ~n~Written by R. Diggs, C. Woods, A. Tilman ~n~Published by ~n~Careers-BMG Music Publishing Inc./ ~n~Wu Tang Publishing (BMI)/ ~n~Bridgeport Music ~n~(p) + © 1995 BMG Music +[RCPL1_4:RCPLNE1] +~g~Fais une COURSE DE POINTS DE PASSAGE avec 3 autres avions télécommandés. -[CR12_08:CRED01] -Courtesy of RCA Records by arrangement with Sony BMG Ent ~n~This track contains a sample of "You're Getting A Little Too Smart" as performed by The Detroit Emeralds. Courtesy of Westbound Records. Used by permission. All rights reserved +[RCPL1_5:RCPLNE1] +~g~Passe par les points de passage dispersés dans Vice City. -[CR12_09:CRED01] -~n~ ~n~ ~n~ ~n~"N.O.R.E." ~n~Noreaga ~n~Written by V. Santiago, J. Olivier, ~n~S. Barnes ~n~Published by Suite 1202 Music/ Jose Luis Gotcha Music (BMI)/ Slamuwell Productions/ Jelly's Jam LLC (ASCAP)/ ~n~12 & Under Music/ +[RCPL1_6:RCPLNE1] { reVC update } +~g~Si tu veux quitter cette mission, appuie sur la ~h~~k~~VEHICLE_FIREWEAPON~~g~ pour faire exploser ton avion radiocommandé. -[CR12_10:CRED01] -Jumping Bean Songs LLC (BMI) ~n~(p) + © 1998 Penalty Recordings ~n~Courtesy of Warner Strategic Marketing +[RCPL1_8:RCPLNE1] +~g~Ton avion RC va sortir du périmètre! -[CR12_11:CRED01] -~n~ ~n~ ~n~ ~n~"Shut 'Em Down (Remix)" ~n~Onyx featuring Noreaga & Big Pun ~n~Written by F. Scruggs, K. Jones, T. Taylor, E. Hinson, E. Simmons ~n~Published by Universal Music/ ~n~Let Me Show You Music/ ~n~Jelly Jams Music/ +[RCPL1_9:RCPLNE1] +~r~Ton avion RC est sorti du périmètre! -[CR12_12:CRED01] -III Posse Music/ Ill Hill Billy'z Music/ Warner-Tamerlane Music ~n~(p) + © 1998 Rush Associated Labels Recordings ~n~Courtesy of Universal Music Enterprises +{=================================== MISSION TABLE RCRACE1 ===================================} -[CR12_13:CRED01] -~n~ ~n~ ~n~ ~n~"Beware" ~n~Big Pun ~n~Written by C. Rios, J. Tineo ~n~Published by Let Me Show You Music/ ~n~Joe Cartegena Music (ASCAP), ~n~Administered by Jelly Jams Music (BMI)/ ~n~P.H.D. Music (ASCAP) +[RCR1_4:RCRACE1] +Tours restants : -[CR12_14:CRED01] -(p) + © 1998 Loud Records LLC ~n~Courtesy of Columbia Records by arrangement with Sony BMG Ent +[RCR1_1:RCRACE1] +~g~Fais une course de points de passage contre 3 autres voitures RC. -[CR12_15:CRED01] -~n~ ~n~ ~n~ ~n~"Twinz (Deep Cover 98)" ~n~Big Pun ~n~Written by C. Rios, J. Cartegena, ~n~C. Brodus, A. Young, C. Wolfe ~n~Published by Let Me Show You Music/ ~n~Joe Cartegena Music (ASCAP)/ ~n~Jelly Jams Music (BMI)/ ~n~Sony Tunes Inc. (ASCAP) +[RCR1_2:RCRACE1] +~g~Sois le premier à boucler 2 tours de circuit pour gagner! -[CR12_16:CRED01] -~n~(p) + © 1998 Loud Records LLC ~n~Courtesy of Columbia Records by arrangement with Sony BMG Ent ~n~This track contains a sample of "Deep Cover" as performed by Dr. Dre. Courtesy of Solar Records. Used by permission. All rights reserved +[RCR1_6:RCRACE1] +~g~Ta voiture RC va sortir du périmètre! -[CR12_17:CRED01] -~n~ ~n~ ~n~ ~n~"Get At Me Dog" ~n~DMX featuring Sheek of The Lox ~n~Written by E. Simmons, D. Blackman, ~n~A. Fields, S. Taylor ~n~Published by Universal Music Publishing/ EMI April Music/ ~n~Sony ATV Tunes +[RCR1_7:RCRACE1] +~r~Ta voiture RC est sortie du périmètre! -[CR12_18:CRED01] -~n~(p) + © 1998 Rush Associated Labels Recordings ~n~Courtesy of Universal Music Enterprises +{=================================== MISSION TABLE ROCK1 ===================================} -[CR12_19:CRED01] -~n~ ~n~ ~n~ ~n~"Ruff Ryders Anthem (Remix)" ~n~DMX featuring DJ Clue, Jadakiss, Styles, Drag-On & Eve ~n~Written by J. Phillips, M.J. Smalls, E. Shaw, K. Ifill, E. Simmons, K. Dean, E. Jeffers ~n~Published by Universal Music Publishing/ EMI Music Publishing +[RBM1_A:ROCK1] +Okaaaaaaaaaay! -[CR12_20:CRED01] -(p) + © 1998 Roc-a-Fella Records ~n~Courtesy of Universal Music Enterprises +[RBM1_B:ROCK1] +Grandiose! Vraiment génial! -[CR12_21:CRED01] -~n~ ~n~ ~n~ ~n~"Do What You Feel" ~n~Redman featuring Method Man ~n~Written by P. Michael, R. Noble, C. Smith ~n~Published by Careers BMG/ Sony ATV Tunes/ Famous Music ~n~(p) + © 1996 Def Jam ~n~Courtesy of Universal Music Enterprises +[RBM1_D:ROCK1] +Hé, t'as déjà rencontré les Love Fist? -[CR12_22:CRED01] -~n~ ~n~ ~n~ ~n~"Chain Gang Freestyle" ~n~The Lox & Black Rob ~n~Written by Frierson, Phillips, Styles, Jacobs, Ross, Shaw ~n~Published by EMI Music Publishing ~n~Courtesy of Bad Boy Records +[RBM1_E:ROCK1] +Non, mais j'adore votre musique! -[CR12_23:CRED01] -~n~ ~n~ ~n~ ~n~"Chest2chest Freestyle" ~n~The Lox ~n~Written by Phillips, Styles, Jacobs, Shaw, Barnes, Lemay, Montgomery ~n~Published by Taggie Music (BMI)/ ~n~Universal Polygram Int'l. (ASCAP)/ ~n~EMI Music Publishing ~n~Courtesy of Bad Boy Records +[RBM1_F:ROCK1] +Laisse-moi te présenter au groupe. -[CR12_24:CRED01] -This track contains a sample of "Next Level" as performed by Showbiz & AG. Courtesy of Universal Music Enterprises. Used by permission. All rights reserved +[RBM1_G:ROCK1] +Voici P, Percy, Dick et Willy est aux chiottes et Jezz était dans la cabine tout à l'heure... -[CR13_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~MSX 98 +[RBM1_H:ROCK1] +Les mecs, je veux vous présenter un bon ami à moi. -[CR13_02:CRED01] -~n~ ~n~ ~n~ ~n~MC ~n~Codebreaker as himself +[RBM1_I:ROCK1] +Voici Tommy. Ca fait un bail qu'on se connait. -[CR13_03:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Timecode +[RBM1_J:ROCK1] +Ok, mon pote. -[CR13_04:CRED01] -~n~ ~n~ ~n~ ~n~Station Production ~n~Timecode +[RBM1_K:ROCK1] +Ah, euh... C'est quoi déjà, ton nom? -[CR13_05:CRED01] -~n~ ~n~ ~n~ ~n~"Renegade Snares" ~n~Omni Trio ~n~Written, Produced & Engineered by ~n~R. Haigh ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1993 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[RBM1_L:ROCK1] +Arrête-ça Jezz tu t'en souviens, -[CR13_06:CRED01] -~n~ ~n~ ~n~ ~n~"Terrorist" ~n~Renegade ~n~Written, Produced & Engineered by ~n~A. Dookith ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[RBM1_M:ROCK1] +et essaye pas de jouer au plus malin avec moi, -[CR13_07:CRED01] -~n~ ~n~ ~n~ ~n~"Finest Illusion (Legal Mix)" ~n~Foul Play ~n~Written, Produced & Engineered by ~n~J. Morrow, S. Bradshaw, ~n~S. Gurley ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1993 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[RBM1_N:ROCK1] +je suis trop intelligent, mon mignon! -[CR13_08:CRED01] -~n~ ~n~ ~n~ ~n~"Living For the Future (FBD Project Remix)" ~n~Omni Trio ~n~Written, Produced & Engineered by ~n~R. Haigh ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[RBM1_O:ROCK1] +Tu vois, le problème, Tom, c'est que ces garçons ont besoin d'aide. -[CR13_09:CRED01] -~n~ ~n~ ~n~ ~n~"Stay Calm (Foul Play Remix)" ~n~DJ Pulse ~n~Written, Produced & Engineered by ~n~A. Brown ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[RBM1_P:ROCK1] +Ils n'ont pas beaucoup de contacts ici et ils savent pas à qui s'adresser. -[CR13_10:CRED01] -~n~ ~n~ ~n~ ~n~"Disturbance (Tango Remix)" ~n~Hyper-On Experience ~n~Written, Produced & Engineered by ~n~A. Banks, D. Demierre ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[RBM1_Q:ROCK1] +On a besoin de drogue, mon pote! -[CR13_11:CRED01] -~n~ ~n~ ~n~ ~n~"Cold Fresh Air" ~n~Higher Sense ~n~Written, Produced & Engineered by ~n~A. Miles, DJ Rhythm ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[RBM1_R:ROCK1] +Faut qu'on réveille la vieille fureur de Love Fist, tu vois? -[CR13_12:CRED01] -~n~ ~n~ ~n~ ~n~"Living For the Future" ~n~Omni Trio ~n~Written, Produced & Engineered by ~n~R. Haigh ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[RBM1_S:ROCK1] +Et bien, ici, c'est Vice City, quel est le problème? -[CR13_13:CRED01] -~n~ ~n~ ~n~ ~n~"Thru The Vibe (2 on 1 Mix)" ~n~Omni Trio ~n~Written, Produced & Engineered by ~n~R. Haigh ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[RBM1_U:ROCK1] +Du Love Juice, mec! -[CR13_14:CRED01] -~n~ ~n~ ~n~ ~n~"The Helicopter Tune" ~n~Deep Blue ~n~Written, Produced & Engineered by ~n~S. O'Keefe ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[RBM1_V:ROCK1] +Du Love Juice? -[CR13_15:CRED01] -~n~ ~n~ ~n~ ~n~"Dred Bass" ~n~Dead Dred ~n~Written, Produced & Engineered by ~n~W. Smith, L. Smith ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[RBM1_W:ROCK1] +Ouais, deux doses de boomshine, une dose de trompette, 5 bombes fizz et un litre d'essence. -[CR14_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~FLASHBACK FM +[RBM1_X:ROCK1] +Tu peux nous aider, mon pote? -[CR14_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Reni Wassulmaier - Barbara Rosenblatt +[RBM1_Y:ROCK1] +Ah, ça rendrait tellement service aux garçons! -[CR14_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voice ~n~Mike Shapiro +[RBM1_Z:ROCK1] +Tu peux faire ça pour les garçons, pas vrai? -[CR14_04:CRED01] -~n~ ~n~ ~n~ ~n~"First Hand Experience ~n~In Second Hand Love" ~n~Giorgio ~n~Written by G. Moroder, P. Bellotte ~n~Published by WB Music Corp. (ASCAP) ~n~(p) + © 1977 Giorgio Moroder ~n~Courtesy of Giorgio Moroder +[RBM1_8:ROCK1] +~r~Mercedes est morte! -[CR14_05:CRED01] -~n~ ~n~ ~n~ ~n~"I Wanna Rock You" ~n~Giorgio ~n~Written by G. Moroder, H. Faltermeyer, ~n~K. Forsey ~n~Published by WB Music Corp. (ASCAP) ~n~(p) + © 1979 Giorgio Moroder ~n~Courtesy of Giorgio Moroder +[RBM1_10:ROCK1] +~r~Imbécile! Tu as détruit la marchandise! -[CR14_06:CRED01] -~n~ ~n~ ~n~ ~n~"E=MC2" ~n~Giorgio ~n~Written by G. Moroder, H. Faltermeyer, ~n~P. Bellotte ~n~Published by WB Music Corp. (ASCAP) ~n~(p) + © 1979 Giorgio Moroder ~n~Courtesy of Giorgio Moroder +[RBM1_13:ROCK1] +~g~Amène le Love Juice et Mercedes au groupe avant qu'ils n'entrent sur scène. -[CR14_07:CRED01] -~n~ ~n~ ~n~ ~n~"Chase" ~n~Giorgio Moroder ~n~Written by G. Moroder ~n~Published by Warner/ Chappell Music ~n~(p) + © 1978 Casablanca Films/ ~n~Columbia Pictures ~n~Courtesy of Sony Pictures Entertainment +[RBM1_15:ROCK1] +~r~Tu as perdu le dealer, notre cash et la drogue! -[CR14_08:CRED01] -~n~ ~n~ ~n~ ~n~"I'm Left, You're Right, She's Gone" ~n~Giorgio ~n~Written by G. Moroder, P. Bellotte ~n~Published by WB Music Corp. (ASCAP) ~n~(p) + © 1977 Giorgio Moroder ~n~Courtesy of Giorgio Moroder +[RBM1_17:ROCK1] +~g~Tue le dealer et prends la drogue! -[CR14_09:CRED01] -~n~ ~n~ ~n~ ~n~"From Here To Eternity" ~n~Giorgio ~n~Written by G. Moroder, P. Bellotte ~n~Published by WB Music Corp. (ASCAP) ~n~(p) + © 1977 Casablanca Records ~n~Courtesy of Universal Music Enterprises +[MOB_07A:ROCK1] +Salut, mon vieux, les gars auraient besoin d'un peu de compagnie, si tu vois ce que je veux dire... -[CR15_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~COMMERCIAL VOICES +[MOB_07B:ROCK1] +Je connais justement la fille qu'il faut. -[CR15_02:CRED01] -~n~ ~n~ ~n~ ~n~Alex Anthony, Anouchka Benson, ~n~Audrey Amey, Bill Smith, ~n~Billy Gonzalez, Brian Thomas, +[ROK1_5:ROCK1] +Salut Mercedes! -[CR15_03:CRED01] -~n~ ~n~Chris Jobin, Chris Silvestro, ~n~Craig Blair, Dan Houser, ~n~Dan Merrill, Ed Thomas, +[ROK1_6:ROCK1] +Salut, Tommy. Comment vas-tu? -[CR15_04:CRED01] -~n~ ~n~Ethan Abeles, Garth Johnston, ~n~Gregg Martin, Gregory Johnson, ~n~Hikari Yokoyama, James Ferrante, +[ROK1_7:ROCK1] +Ca roule. Ecoute, les Love Fist, ça te branche? -[CR15_05:CRED01] -~n~ ~n~James Larson, Jay Capozello, ~n~Jayson Gladstone, Jeff Berlin, ~n~Jen Sweeney, Jessica Wachsman, +[ROK1_8:ROCK1] +Ok, mais c'est un service qu'il faudra me retourner... -[CR15_06:CRED01] -~n~ ~n~ JJ Adler, Jonathan Hanst, ~n~Joshua Batista, Karen Saltus, ~n~Koji Nonoyami, Lance Williams, +[RBM1_14:ROCK1] +~g~T'as besoin d'une bagnole ou d'une bécane! -[CR15_07:CRED01] -~n~ ~n~Lazlow, Lynne Horton, ~n~Michael Nathan, Mike Ferrante Jr., ~n~Chris Ferrante, Mike Shapiro, +[RBM1_1:ROCK1] +~g~Va prendre Mercedes à son appartement. -[CR15_08:CRED01] -~n~ ~n~Natalya Wilson, Noelle Sadler, ~n~Phil Mikkelson, Ron Reeve, ~n~Smith Harrison, Stacy Rachels, +[RBM1_12:ROCK1] +~g~Va récupérer les ingrédients du Love Juice chez le dealer. -[CR15_09:CRED01] -~n~ ~n~ Steve Carlesi, Julie Wemyss, ~n~Kim Gurney +[ROK1_2:ROCK1] +PLUS NECESSAIRE -[CR16_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~CUTSCENE MUSIC +[ROK1_3:ROCK1] +PLUS NECESSAIRE -[CR16_02:CRED01] -~n~ ~n~ ~n~ ~n~"Japanese Geisha" ~n~Sonia Slany ~n~Written by Sonia Slany ~n~Published by West One Music ~n~Courtesy of APM Music, LLC +[MERC_39:ROCK1] +A plus tard, champion. -[CR16_03:CRED01] -~n~ ~n~ ~n~ ~n~"The Heist" ~n~Bugz in the Attic ~n~Written by K. Tatham ~n~Published by Copyright Control ~n~(p) 2005 Bugz In The Attic ~n~Courtesy of Bugz In The Attic ~n~www.bugzintheattic.co.uk +[RBM1_C:ROCK1] +Hé, Tommy! Content que t'aies réussi! -[CR16_04:CRED01] -~n~ ~n~ ~n~ ~n~"A Dark March" ~n~Danger Mouse ~n~Written by Danger Mouse ~n~Published by ~n~Underground Animals (ASCAP) +[ROK1_1A:ROCK1] +Tu cherches quelque chose de spécial? J'ai ce qu'il te faut! -[CR17_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ROCKSTAR NYC PUBLISHING TEAM +[ROK1_9:ROCK1] +Merci pour le pognon, suce boules! -[CR17_02:CRED01] -~n~ ~n~ ~n~ ~n~Terry Donovan, Jenefer Gross, ~n~Jennifer Kolbe, Devin Winterbottom, ~n~Adam Tedman, Michael Elkind, +[RBM1_T:ROCK1] +On a besoin de Love Juice, mec, tu vois? -[CR17_03:CRED01] -~n~ ~n~Paul Yeates, Hosi Simon, ~n~Daniel Einzig, Marlene Yamaguchi, ~n~Gauri Khindaria, Stanton Sarjeant, +{=================================== MISSION TABLE ROCK2 ===================================} -[CR17_04:CRED01] -~n~ ~n~Jordan Chew, Ryan Rayhill, ~n~Devin Bennett, Todd Zuniga, ~n~Thomas O'Donnell, Maria Tabia, +[RBM2_A:ROCK2] +Tommy, mon pote, je suis content de te voir! -[CR17_05:CRED01] -~n~ ~n~Anthony Carvalho, Lyonel Tollemache, ~n~John Notarfrancesco, Jerry Luna, ~n~Stuart Petri, Stephen Walsh, +[RBM2_B:ROCK2] +Qu'est-ce qui se passe? -[CR17_06:CRED01] -~n~ ~n~Michael Carnevale, Andrea Borzuku, ~n~John Schuhmann, Alice Chuang, ~n~Mike Torok, Mayumi Kobayashi, +[RBM2_C:ROCK2] +Des mauvaises vibrations, Tommy... -[CR17_07:CRED01] -~n~ ~n~Elizabeth Satterwhite, Bruce Dugan, ~n~Eli Weissman, Phil Poli, ~n~Jaesun Celebre, Russell Lewis, +[RBM2_E:ROCK2] +Il y a ce chat, on le connaît pas, mais lui il nous connaît. -[CR17_08:CRED01] -~n~ ~n~Sean Mackenzie, Megan Henretta, ~n~Angus Wong, Kristine Severson +[RBM2_F:ROCK2] +C'est comme ce chat. Il nous connaît tous. -[CR17_09:CRED01] -~n~ ~n~ ~n~ ~n~Cover Art ~n~Steven Olds, Stephen Bliss, ~n~Anthony Macbain +[RBM2_G:ROCK2] +Il sait que Willy a un faible pour les culottes de ses femmes, hé hé! -[CR17_10:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ROCKSTAR LONDON PD +[RBM2_H:ROCK2] +Ou que Percy aime bien Duran Duran! -[CR17_11:CRED01] -~n~ ~n~ ~n~ ~n~ Chris Madgwick, Chris Wood, ~n~Daimion Pinnock, David McCarthy, ~n~Graham Ainsley, Jurgen Mol, +[RBM2_K:ROCK2] +Ouais, le truc de la fusée d'amour, c'est vrai. Mais écoute, ce chat... -[CR17_12:CRED01] -~n~ ~n~ Laura Battistuzzi, Maike Köhler, ~n~Shino Hori, Lucien King +[RBM2_L:ROCK2] +ouais, ouais, ce gars, il veut voir les Love Fist morts! -[CR18_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ROCKSTAR LINCOLN +[RBM2_M:ROCK2] +Morts, Tommy. -[CR18_02:CRED01] -~n~ ~n~ ~n~ ~n~QA Manager ~n~Mark Lloyd +[RBM2_N:ROCK2] +Les Love Fist disparus. Tu sais ce qu'on dit, les meilleurs meurent jeunes... -[CR18_03:CRED01] -~n~ ~n~ ~n~ ~n~Deputy QA Manager ~n~Tim Bates +[RBM2_O:ROCK2] +Tommy, faut que tu sauves les Love Fist! -[CR18_04:CRED01] -~n~ ~n~ ~n~ ~n~QA Supervisor ~n~Kevin Hobson +[RBM2_P:ROCK2] +On a une séance d'autographes dans deux heures et je pense que... -[CR18_05:CRED01] -~n~ ~n~ ~n~ ~n~Lead Tester ~n~Eddie Gibson ~n~ ~n~ ~n~ ~n~Secondary Lead Tester ~n~Mike Bennett +[RBM2_Q:ROCK2] +Et les garçons pensent que le mec va essayer quelque chose de très vilain là-bas. -[CR18_06:CRED01] -~n~ ~n~ ~n~ ~n~Testers ~n~Jonathan Stones, Mike Emeny, ~n~Andy Mason, Lee Johnson, ~n~Carl Young, Matthew Lunnon, ~n~Dan Goddard, Steve McGagh, ~n~Craig Reeve, Joby Luckett +[RBM2_1:ROCK2] +~g~Conduis la limousine à la séance d'autographes et essaye de démasquer le psychopathe . -[CR18_07:CRED01] -~n~ ~n~ ~n~ ~n~Localization Team ~n~ ~n~ ~n~ ~n~Localization Supervisor ~n~Chris Welsh +[RBM2_2:ROCK2] +~r~T'as bousillé la bagnole du groupe! -[CR18_08:CRED01] -~n~ ~n~ ~n~ ~n~Testers ~n~Antoine Cabrol, Dominic Garcia, ~n~Paolo Ceccotti, Ferruccio Cinquemani, ~n~Nicolas Klimoff, Jesús Pérez Rosales ~n~ ~n~ ~n~ ~n~IT Support ~n~Nick McVey +[RBM2_3:ROCK2] +~g~Va à la séance d'autographes! -[CR19_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~SPECIAL THANKS +[RBM2_4:ROCK2] +~g~Attrape le psychopathe! Ne le laisse pas s'échapper! -[CR19_02:CRED01] -~n~ ~n~ ~n~ ~n~Scooter, Ross Wallace, ~n~Steve Taylor, Kevin Wong, ~n~Kevin Bolt, John Haime, +[RBM2_5:ROCK2] +~r~Tu l'as perdu, imbécile! -[CR19_03:CRED01] -~n~ ~n~Dave Watson, Thomas French, ~n~James Arthur, Martin Connor, ~n~Brendon McDonald, Julie Wemyss, +[RBM2_7:ROCK2] +~r~Les fans ont été attaqués, le psychopathe ne se montrera pas! -[CR19_04:CRED01] -~n~ ~n~Raff Crolla, James Duffy, ~n~Kim Gurney, Andrew Ness, ~n~Andy Brooks (Gearbox), Alan Mcgregor, +[RBM2_8:ROCK2] +~r~Les agents de sécurité ont été attaqués, le psychopathe ne se montrera pas! -[CR19_05:CRED01] -~n~ ~n~Chris McCallum, Fred, Narns, ~n~Alan, Taruki, Red, ~n~Big Foot, Rita Liberator, ~n~Elliot Torres +[PSYCH_1:ROCK2] +Je veux voir les Love Fist morts! -[CR19_06:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~THANKS +[PSYCH_2:ROCK2] +Les Love Fist ont gâché ma vie! -[CR19_07:CRED01] -~n~ ~n~ ~n~ ~n~Deborah Mannis-Gardner ~n~and Mark Schwartz. ~n~Randy Acker, Karen Adams, ~n~Mark Ainley, Robin Albers, +[RBM2_I:ROCK2] +Ferme-la un peu. C'est pas parce que Jezz encule les moutons... -[CR19_08:CRED01] -~n~ ~n~Duncan Baker, Armen Boladian, ~n~Tanya Bridges, Richard Brown, ~n~Matt Brookman, Elena Byington, +[RBM2_R:ROCK2] +Oh, ferme-la! -[CR19_09:CRED01] -~n~ ~n~Ed Butts, Rob Cairns, ~n~Mike Callaghan, Joseph Carlone, ~n~Kevin Carson, Jason Chin, +[RBM2_D:ROCK2] +Je plaisante pas. C'est pas des conneries, mec, tu piges? -[CR19_10:CRED01] -~n~ ~n~Allison Cipris, Alimah Deen, ~n~James Ellis, Helen English, ~n~Nasko Fejza, Scott Gardner, +[RBM2_J:ROCK2] +C'est le truc de la fusée d'amour, tu sais? -[CR19_11:CRED01] -~n~ ~n~Jochem Gerrits, ~n~Laurie Goldstein Thomas Golubic, ~n~Nick Guarino, Jon Handle, ~n~Millie Hysu, Robert Jo, +{=================================== MISSION TABLE ROCK3 ===================================} -[CR19_12:CRED01] -~n~ ~n~Paul Johannes, Gavin Johnson, ~n~Curtis A. Jones, Jennifer Justice, ~n~Rod Kotler, Diana La Pointe, +[RBM3_A:ROCK3] +Tommy! Le psychopathe est de retour! -[CR19_13:CRED01] -~n~ ~n~Michael Lau, Jim Long, ~n~Alex De Maegd, John Massa, ~n~Kendall Minter, Steve Morgan, +[RBM3_B:ROCK3] +Qu'est-ce qui se passe? -[CR19_14:CRED01] -~n~ ~n~Giorgio Moroder, Suzanne Moss, ~n~Melissa Munana, Kirin Murphy, ~n~Kurosh Nasseri, +[RBM3_C:ROCK3] +Ce psychopathe ne laissera jamais les Love Fist tranquilles! -[CR19_15:CRED01] -~n~ ~n~Gwen Niles Sean Ogden ~n~aka DJ Nightshade, ~n~Robin Orlowski, Jonathan Palmer, ~n~Tanvi Patel, Jane Peterer, +[RBM3_D:ROCK3] +Tu l'as pas tué, mon pote et il est revenu. -[CR19_16:CRED01] -~n~ ~n~Mark Picchiotti, Rob Playford, ~n~Dan Quan, R. Ramnarayan, ~n~Mary Beth Roberts, ~n~Virgil Roberts, Lindsay Rodman, +[RBM3_E:ROCK3] +Ouais, ouais et le truc c'est que... -[CR19_17:CRED01] -~n~ ~n~Jim Romano, Craig Roseberry, ~n~Gerry Rosenblatt, RZA, ~n~Ali Samii, Alan Scholefield, +[RBM3_F:ROCK3] +Le truc, c'est qu'on a besoin de quelqu'un de confiance pour conduire la limousine, -[CR19_18:CRED01] -~n~ ~n~Christopher Scott, Suzi Scott, ~n~Fredro Scruggs, Jennefer Showalter, ~n~Alan Skiena, Saskia Slegers, +[RBM3_G:ROCK3] +parce que ce timbré continue à nous menacer! -[CR19_19:CRED01] -~n~ ~n~Fran Spero, Lem Springsteen, ~n~David Steel, Jane Ventom, ~n~Christian Wiseman, Debi Wylde, +[RBM3_I:ROCK3] +On chie tous dans nos frocs, mec. -[CR19_20:CRED01] -~n~ ~n~Donna Young, Richie Zito +[RBM3_J:ROCK3] +Ok, les gars, du calme, je vais m'en occuper... + +[RBM3_K:ROCK3] +Normalement, j'ai mieux à foutre que de faire le taxi pour une bande d'Ecossais bisexuels bourrés, + +[RBM3_L:ROCK3] +mais dans votre cas, je vais faire une exception. + +[ROK3_03:ROCK3] +Autant pas faire dans la demi-mesure, alors. + +[ROK3_04:ROCK3] +Hé, Tommy, change la musique! + +[ROK3_08:ROCK3] +Ca commence à me faire chier, cette histoire. + +[ROK3_09:ROCK3] +Garde juste le pied au plancher! + +[ROK3_61:ROCK3] +Faut qu'on trouve la bombe! + +[ROK3_28:ROCK3] +Je vais bientôt jouer de la basse en enfer... + +[ROK3_30:ROCK3] +Que quelqu'un fasse quelque chose! + +[ROK3_32:ROCK3] +Ok, toi monsieur le dur à cuire, fais quelque chose! + +[ROK3_34:ROCK3] +Willy pourrait juste sucer le boomshine à la paille. + +[ROK3_37:ROCK3] +Passez une paille à Willy! + +[ROK3_41:ROCK3] +Quel fil, Tommy? + +[ROK3_42:ROCK3] +Le vert. + +[ROK3_43:ROCK3] +Y'en a pas de vert. Ou alors celui-la est vert? + +[ROK3_44:ROCK3] +Est-ce qu'un de ces fils te semble vert? + +[ROK3_49:ROCK3] +Ca fait des années que je te supporte! + +[ROK3_51:ROCK3] +Une grosse poufiasse hurlante... + +[ROK3_52:ROCK3] +Ouais! + +[ROK3_53:ROCK3] +Ferme-la et arrache un fil! + +[ROK3_54:ROCK3] +Lequel? + +[ROK3_55:ROCK3] +Celui-là... + +[ROK3_56:ROCK3] +Non! + +[ROK3_57:ROCK3] +Hé, on est ok, on a pas sauté, les potes! Tommy, mon pote bravo. Et Rock and Roll! + +[ROK3_58:ROCK3] +On a pas un concert où aller? Un racket à faire? Des fans à insulter? + +[ROK3_59:ROCK3] +LOVE FIST! + +[ROK3_60:ROCK3] +T'as fini avec cette bouteille? + +[RBM3_4:ROCK3] +~r~Tu as tué les Love Fist! + +[RBM3_6:ROCK3] +DETONATION : + +[RBM3_1:ROCK3] +~g~Conduis les Love Fist jusqu'au concert. + +[RBM3_2:ROCK3] +Si tu essayes de quitter la voiture tant que la bombe est armée, elle explosera. + +[RBM3_3:ROCK3] +Si la jauge de détonation devient pleine, la bombe explose. + +[RBM3_8:ROCK3] +Plus tu conduis vite, plus la jauge de détonation diminue. + +[RBM3_7:ROCK3] +~g~BOMBE DESAMORCEE! + +[ROK3_6A:ROCK3] +~g~Love Fist. Vous avez fini de polluer les ondes! + +[ROK3_6B:ROCK3] +~g~Je vous ai donné l'occasion de devenir mes amis. Je vais maintenant vous offrir celle de mourir! + +[ROK3_62:ROCK3] +alors on a pensé te montrer notre Temple du rock- + +[ROK3_63:ROCK3] +Que tu te fasses une idée de la fureur des Love Fist! + +[ROK3_64:ROCK3] +Ecoute-toi toi même, mon pote. C'est de la daube! + +[ROK3_65:ROCK3] +Hé, à tous les gosses, c'est un temple et nous sommes les prêtres! + +[ROK3_66:ROCK3] +Ouais, eh ben, si les gosses aiment leurs prêtres à moitié saouls et complètement sourds, + +[ROK3_67:ROCK3] +c'est leur problème. + +[ROK3_68:ROCK3] +Ah, merde, la bande de la cassette est encore bouffée. + +[ROK3_69:ROCK3] +Si ça continue, faudra jouer en live. + +[ROK3_70:ROCK3] +Ooooh merde! Mes intestins... + +[ROK3_74:ROCK3] +Ah, tiens, qu'est-ce que c'est que ça? Tommy, mets cette cassette. + +[ROK3_01:ROCK3] +Mon pote, c'est enfin l'heure d'un verre bien mérité. + +[ROK3_02:ROCK3] +La salle de concert est à une centaine de mètres plus loin. + +[ROK3_05:ROCK3] +Je me sens bizarre quand ma tête ne tambourine pas. + +[ROK3_07:ROCK3] +Tommy, faut que tu sauves le groupe! + +[ROK3_29:ROCK3] +Tommy, continue de foncer, mec! + +[ROK3_31:ROCK3] +Que quelqu'un fasse quelque chose... C'est quoi ces conneries? J'ai déjà vu des minettes plus courageuses. + +[ROK3_33:ROCK3] +Ecoute, mec. Moi, je joue d'un instrument, j'y connais rien aux bombes. + +[ROK3_35:ROCK3] +Ouais, j'ai entendu dire que t'étais doué pour ce genre de trucs! + +[ROK3_38:ROCK3] +Une paille? Hé, ici, c'est le bus de tournée des Love Fist! + +[ROK3_39:ROCK3] +Où c'est que tu veux que je trouve une paille? + +[ROK3_46:ROCK3] +J'aurais dû te larguer quand j'en avais l'occasion. + +[ROK3_47:ROCK3] +Capitaliste! + +[ROK3_48:ROCK3] +Arriviste! + +[ROK3_73:ROCK3] +Jezz écoute la cassette, + +[RBM3_9:ROCK3] +Si tu t'arrêtes ou conduis trop lentement, la jauge de détonation augmente. + +[ROK3_50:ROCK3] +Ferme-la, pauvre abruti! + +[ROK3_36:ROCK3] +Hé, j'étais raide défoncé cette nuit-là, et tu le sais bien! + +[RBM3_H:ROCK3] +Je chie dans mon froc, mec. Je veux ma maman! + +[ROK3_45:ROCK3] +Oh, je vois la mort dans les cartes! Tout est vert! + +[ROK3_6C:ROCK3] +~g~Si tu ralentis, la limousine explosera et les GROS TOCARDS CHEVELUS avec! + +[ROK3_71:ROCK3] +On doit continuer. Merci encore, Tommy! T'as assuré, mec! A plus! + +[ROK3_1:ROCK3] +Enfin, mec, voici l'heure d'un verre bien mérité. La salle est juste à quelques mètres d'ici. + +[ROK3_2:ROCK3] +Tu m'en sers un grand alors. Hé, Tommy, change de musique, mec. + +[ROK3_3:ROCK3] +Je pète les plombs si je secoue pas la tête. Hé, regarde, c'est quoi ça? Tommy, mets cette cassette. + +[ROK3_4:ROCK3] +Love Fist. Vous avez fini de polluer les ondes. Je vous ai donné une chance de devenir mes amis. + +[ROK3_5:ROCK3] +Maintenant vous allez mourir. Essayez de freiner et c'est la fin! Paf, plus de limousine et plus de GROS NASES CHEVELUS non plus. + +[ROK3_6:ROCK3] +Tommy, mec, tu dois sauver le groupe! J'en ai marre de ces conneries. Enlève pas ton pied de la pédale, mec! + +[ROK3_7:ROCK3] +On doit trouver la bombe! On peut pas continuer à rouler toute la journée? Ouais, quoi, on a plein de trucs à boire... + +[ROK3_8:ROCK3] +La bombe, elle serait pas dans le moteur? Va falloir qu'on s'arrête pour la désamorcer! Merde, mec, on va tous crever! J'vais m'bourrer la gueule! + +[ROK3_9:ROCK3] +Hé, on est dans la mouise, mon pote! Tu trouveras pas ta réponse dans la boisson! Tire-toi de là! + +[ROK3_10:ROCK3] +Hé, y'a des fils qui sortent de la bouteille de vodka! C'est pas de la vodka, c'est du BOOMSHINE! + +[ROK3_11:ROCK3] +AAAAAHHHHHH! Elle va exploser! AAAAAAAAAAAHHHHH!!!!!!!!!! + +[ROK3_12:ROCK3] +On m'avait prévenu que l'alcool me perdrait. J'ai déjà vu ça à la télé. Il suffit de tirer un de ces fils, mais lequel? J'en sais foutre rien, mec! + +[ROK3_13:ROCK3] +Putain, j'en sais rien! Willy, dis quelque chose. J'vais jouer de la basse en enfer. + +[ROK3_14:ROCK3] +Tommy, mec, continue de rouler à fond la caisse. Que quelqu'un fasse quelque chose! Ouais, c'est ça. + +[ROK3_15:ROCK3] +'Que quelqu'un fasse quelque chose'. Putain, c'est quoi ces conneries. J'ai connu des tantes plus braves. Vas-y le gros dur, fais quelque chose! + +[ROK3_16:ROCK3] +Ecoute, mec, je suis musicien moi, j'sais pas comment ça fonctionne les bombes. Willy a qu'à sucer le boomshine à la paille. + +[ROK3_17:ROCK3] +Ouais, on m'a dit que ça, tu savais faire. J'étais tout émoustillé ce soir-là, comme tu le sais! + +[ROK3_18:ROCK3] +T'as qu'à filer une paille à Willy! Une paille? C'est le bus de tournée des Love Fist! + +[ROK3_19:ROCK3] +Où est-ce que je vais bien pouvoir trouver une paille? Quel fil, Tommy? Le vert. Y'en a pas de vert. + +[ROK3_20:ROCK3] +Où peut-être qu'il est vert celui-là? T'en vois un vert, toi? + +[ROK3_21:ROCK3] +Oh non! On va crever! Je vois la vie en vert! J'aurais dû me débarrasser de toi qu'en j'en avais l'occasion. + +[ROK3_22:ROCK3] +Chasse la gloire! Capitaliste! Ca fait des années que je te soutiens. Ferme-là, tafiole! + +[ROK3_23:ROCK3] +Une grosse chialeuse, ouais, ferme-là et tire le putain de fil! Lequel? Celui-là... + +[ROK3_24:ROCK3] +NON! On est pas morts. On a pas sauté, mec! + +[ROK3_25:ROCK3] +Tommy, bien joué, mec. Rock and roll, mon pote! On a pas un concert à donner, nous? + +[ROK3_26:ROCK3] +Amasser du blé? Abuser des minettes? LOVE FIST! + +[ROK3_27:ROCK3] +T'as fini avec cette bouteille? + +{=================================== MISSION TABLE SERG1 ===================================} + +[TEX1_A:SERG1] +Entre et pose ton cul sur une des banquettes. + +[TEX1_B:SERG1] +Putain, mon père avait l'habitude de dire qu'à cheval donné, on ne regarde pas les dents et il l'a jamais fait! + +[TEX1_C:SERG1] +Tu veux une larme de bon vieux whisky? + +[TEX1_D:SERG1] +Non merci. + +[TEX1_E:SERG1] +Un mec qui aime avoir les idées claires, c'est bien. + +[TEX1_F:SERG1] +En ce moment, mes affaires tournent pas comme elles le devraient... + +[TEX1_G:SERG1] +C'est la merde! Et je veux nettoyer une partie de cette merde! T'es avec moi? + +[TEX1_H:SERG1] +Euh, ouais. + +[TEX1_I:SERG1] +En fait, j'ai besoin d'un mec obstiné pour me débarrasser d'une merde. + +[TEX1_J:SERG1] +T'as l'air du genre persuasif. + +[TEX1_K:SERG1] +La persuasion c'est ma spécialité. + +[TEX1_L:SERG1] +Bon, ce mec sera au country club du golf. + +[TEX1_M:SERG1] +Ils autorisent pas les flingues, alors ses gardes du corps en auront pas. + +[TEX1_N:SERG1] +Va me massacrer ce salopard. + +[TEX1_O:SERG1] +Tiens, voilà ta carte de membre, mais va falloir te trouver des fringues plus appropriées. + +[TEX1_2:SERG1] +~g~Maintenant, direction le Leaf Links Golf Club. + +[TEX1_0:SERG1] +~g~La cible est à ta portée, en train de jouer au golf. Fais en sorte que ce soit sa dernière partie! + +[TEX1_3:SERG1] +C'est qui ce mec? Occupez-vous de lui! + +[TEX1_6:SERG1] +Quel beau cul! + +[TEX1_7:SERG1] +C'est moi, ça? + +[TEX1_8:SERG1] +Chaque fois que tu ouvres ton caddie, tu reçois automatiquement un club de golf si ton emplacement d'arme de corps à corps est vide. + +[TEX1_9:SERG1] +Attrapez-le! + +[TEX1_10:SERG1] +Tuez-moi ce dingue! + +[TEX1_1:SERG1] +~g~Va chercher des fringues de golfeur chez Jocksport's. + +{=================================== MISSION TABLE SERG2 ===================================} + +[TEXEXIT:SERG2] +~g~Maintenant, casse-toi de Little Haiti! + +[TEX_2A:SERG2] +~g~Parfait! Ils t'ont repéré! + +[TEX_2B:SERG2] +~r~Imbécile! Les gens doivent VOIR un cubain faire le coup! + +[TEX_2C:SERG2] +~g~Va te trouver des fringues de cubain dans Little Havana! + +[TEX_2D:SERG2] +~g~Maintenant, liquide le chef de gang haïtien au salon funéraire Romero! + +[TEX2_A:SERG2] +Tommy, voici Donald Love. Donald, Tommy Vercetti, + +[TEX2_B:SERG2] +la dernière crapule à débarquer ici. + +[TEX2_C:SERG2] +Ouais... Euh... + +[TEX2_D:SERG2] +Donald, ferme-la et écoute, t'apprendras peut-être quelque chose. + +[TEX2_E:SERG2] +Bon. Il y a rien de mieux qu'une bonne guerre des gangs pour faire baisser les prix de l'immobilier. + +[TEX2_F:SERG2] +A part une catastrophe, peut-être, comme une peste biblique ou un truc dans le genre. + +[TEX2_G:SERG2] +Mais ça serait aller un peu trop loin, dans le cas présent. + +[TEX2_H:SERG2] +Tu piges, tête de gland? + +[TEX2_I:SERG2] +Un chef du gang haïtien est mort y'a pas longtemps. C'est apparemment un coup des Cubains, mais personne en est sûr. + +[TEX2_J:SERG2] +Alors on va arranger ça! Tu te déguises en Cubain + +[TEX2_K:SERG2] +et tu fonces foutre le bordel aux funérailles. Tu leur balances la sauce et tu dégages vite fait. + +[TEX2_L:SERG2] +T'as compris, Donald? + +[TEX2_M:SERG2] +C'est comme faire entrer le renard dans le poulailler, hein? + +[TEX2_N:SERG2] +Et puis on attend tranquillement que les prix s'écroulent. + +{=================================== MISSION TABLE SERG3 ===================================} + +[TEX3_A:SERG3] +Regarde un peu, mon pote. J'ai un problème et je compte sur ton aide. + +[TEX3_B:SERG3] +Je suis pas constructeur. + +[TEX3_C:SERG3] +Ben, je pensais surtout à tes talents de démolisseur. + +[TEX3_D:SERG3] +Bon, là, c'est le développement prévu, et ça, + +[TEX3_E:SERG3] +c'est la propriété sur laquelle on a des vues. + +[TEX3_F:SERG3] +T'essayes de me dire que ce nouveau bloc de bureaux est comme qui dirait sur le chemin. + +[TEX3_G:SERG3] +T'as tout compris. + +[TEX3_H:SERG3] +Bon, je vais aller faire un tour en ville pendant un moment + +[TEX3_I:SERG3] +et si la construction de ces bureaux devait faire face à de subits et insurmontables problèmes structurels, alors je... + +[TEX3_J:SERG3] +En tant qu'honnête citoyen, vous vous sentiriez obligé d'intervenir + +[TEX3_K:SERG3] +pour la réhabilitation d'un important secteur de la ville? + +[TEX3_L:SERG3] +Où on peut en trouver d'autres, des mecs dans ton genre? + +[TEX3_1:SERG3] +~g~Utilise l'hélico télécommandé pour transporter des bombes sur les quatre cibles du bâtiment que tu dois détruire. + +[TEX3_2:SERG3] +~g~Tu dois larguer une bombe sur chaque cible, et ce, dans n'importe quel ordre. + +[TEX3_5:SERG3] +~g~Si tu largues une bombe sans succès, tu peux la récupérer pour un nouvel essai. + +[TEX3_7:SERG3] +~g~Tu a alors 7 minutes pour larguer toutes les autres bombes! + +[TEX3_8:SERG3] +~g~Tu as raté la cible! Récupère la bombe et réessaye! + +[TEX3_10:SERG3] +~g~Largue la bombe sur la cible. + +[TEX3_11:SERG3] +Cibles restantes: + +[TEX3_17:SERG3] +~r~Tu as dépassé le temps imparti et le bâtiment n'est pas détruit. + +[TEX3_18:SERG3] +~r~Ton hélico télécommandé a été détruit! Comment vas-tu faire pour transporter les bombes, maintenant? + +[TEX3_19:SERG3] +~r~Tu as largué ta bombe dans l'eau! Tu as besoin des 4 bombes pour détruire le bâtiment! + +[TEX3_20:SERG3] +~g~Ton hélico télécommandé est presque hors de portée! Retourne au bâtiment et termine le travail! + +[TEX3_21:SERG3] +~r~Ton hélico télécommandé est hors de portée! + +[TEX3_24:SERG3] +Appuie sur ~h~~k~~VEHICLE_LOOKLEFT~ ~w~pour faire pivoter l'hélico dans le sens inverse des aiguilles d'une montre. + +[TEX3_25:SERG3] +Appuie sur ~h~~k~~VEHICLE_LOOKLEFT~ ~w~pour faire pivoter l'hélico dans le sens des aiguilles d'une montre. + +[TEX3_27:SERG3] +~g~L'escalier central mène à tous les étages du bâtiment. + +[TEX3_31:SERG3] +~r~Tu as détruit la camionnette qui contenait l'hélico télécommandé et les bombes! + +[TEX3_32:SERG3] +Tu peux ~h~regarder derrière~w~ toi en ~h~appuyant simultanément sur ~k~~VEHICLE_LOOKLEFT~ et ~k~~VEHICLE_LOOKRIGHT~~w~. + +[TEX3_4:SERG3] { reVC update } +~g~Pour larguer une bombe, appuie sur la~h~ ~k~~VEHICLE_FIREWEAPON~~w~. + +[TEX3_29:SERG3] { reVC update } +Pour larguer une bombe, appuie sur la~h~ ~k~~VEHICLE_FIREWEAPON~. + +[TEX3_26:SERG3] +Appuie sur la ~h~~k~~VEHICLE_BRAKE~ ~w~pour réduire la vitesse du rotor et ainsi faire~h~ descendre l'hélicoptère. + +[TEX3_22:SERG3] +Appuie sur la ~h~~k~~VEHICLE_ACCELERATE~ ~w~pour augmenter la vitesse du rotor et ainsi faire~h~ monter l'hélicoptère. + +[TEX3_16:SERG3] +~g~Va jusqu'au camion ~w~TOPFUN ~g~ près du bâtiment à démolir. + +[TEX3_33:SERG3] +Une fois que tu as ramassé une bombe, le radar t'indique la position de la cible par rapport à l'hélico. + +[TEX3_34:SERG3] +Le ~h~point triangulaire vers le haut ~w~indique que la cible se trouve ~h~au-dessus ~w~de l'hélicoptère radiocommandé. + +[TEX3_35:SERG3] +Le ~h~point triangulaire vers le bas ~w~indique que la cible se trouve ~h~en dessous ~w~de l'hélicoptère radiocommandé. + +[TEX3_36:SERG3] +Le ~h~point carré ~w~indique que la cible se trouve ~h~au même niveau ~w~que l'hélicoptère radiocommandé. + +[TEX3_6:SERG3] +~g~Une fois que tu as ramassé une bombe pour la première fois, le compte à rebours s'enclenche. + +[TEX3_28:SERG3] +Pour ~h~ramasser une bombe~w~, manoeuvre l'hélico radiocommandé à côté. Il ne peut transporter qu'une seule bombe à la fois. + +[TEX3_30:SERG3] +~g~Pour ramasser une bombe, manoeuvre l'hélico radiocommandé à côté. Il ne peut transporter qu'une seule bombe à la fois. + +[TEX3_12:SERG3] +~g~Bombe posée! Plus que 3 cibles! Va chercher une autre bombe! + +[TEX3_13:SERG3] +~g~Bombe posée! Plus que 2 cibles! Va chercher une autre bombe! + +[TEX3_14:SERG3] +~g~Bombe posée! Plus qu'une cible! Va chercher une autre bombe! + +[TEX3_15:SERG3] +~r~Compte à rebours enclenché! ~g~Tu dois poser les ~w~4 bombes ~g~avant la fin du temps imparti! + +[TEX3_37:SERG3] +Pousse le ~h~joystick analogique droit vers le haut ~w~pour vitesse la vitesse du rotor et ainsi faire ~h~ monter l'hélicoptère. + +[TEX3_38:SERG3] { reVC update } +{Pousse le ~h~~k~~VEHICLE_ACCELERATE~ ~w~pour augmenter la réduire du rotor et ainsi faire ~h~ descendre l'hélicoptère.} +Pousse le ~h~joystick analogique droit vers la bas ~w~pour augmenter la réduire du rotor et ainsi faire ~h~ descendre l'hélicoptère. + +[TEX3_39:SERG3] +~g~Appuie sur la touche ~h~~k~~VEHICLE_HANDBRAKE~ ~g~pour larguer une bombe. + +[TEX3_40:SERG3] +Appuie sur la touche ~h~~k~~VEHICLE_HANDBRAKE~ ~w~pour larguer une bombe. + +[TEX3_23:SERG3] +Appuyer sur les touches ~h~~k~~VEHICLE_TURRETUP~~w~ et ~h~~k~~VEHICLE_TURRETDOWN~~w~ pour orienter l'hélicoptère dans la direction souhaitée. + +{=================================== MISSION TABLE TAXI1 ===================================} + +[FARES:TAXI1] +CLIENTS: + +[TAXI1:TAXI1] +Cherche une course. + +[TSCORE2:TAXI1] +~1~$ + +[IN_ROW:TAXI1] +~1~ DE SUITE! Bonus : ~1~$ + +[TAXI3:TAXI1] +~r~Ton client est parti terrorisé! + +[TAXI7:TAXI1] +~r~Ta voiture est endommagée. Fais-la réparer. + +[TAXI4:TAXI1] +La course est finie! + +[TAXI5:TAXI1] +BONUS DE VITESSE! + +[TAXI6:TAXI1] +La mission taxi est finie + +[TAXIH1:TAXI1] +Arrête-toi près d'un piéton mis en évidence pour qu'il monte, puis conduis-le à destination avant la fin du temps imparti. + +[FARE1:TAXI1] +~g~Destination ~w~'le Pole Position Club' ~g~à Ocean Beach. + +[FARE3:TAXI1] +~g~Destination ~w~'le Marina' ~g~à Ocean Beach. + +[FARE4:TAXI1] +~g~Destination ~w~'Ammu-Nation' ~g~à Ocean Beach. + +[FARE5:TAXI1] +~g~Destination ~w~'la quincaillerie' ~g~à Washington Beach. + +[FARE6:TAXI1] +~g~Destination ~w~'le centre commercial de North Point' ~g~à Vice Point. + +[MFARE1:TAXI1] +~g~Destination ~w~'Ammu-Nation' ~g~dans le Centre. + +[MFARE2:TAXI1] +~g~Destination ~w~'le Terminal' ~g~à l'aéroport International Escobar. + +[WFARE3:TAXI1] +~g~Destination ~w~'Sunshine Autos' ~g~dans Little Havana. + +[WFARE4:TAXI1] +~g~Destination ~w~'les taxis Kaufman' ~g~dans Little Haiti. + +[WFARE5:TAXI1] +~g~Destination ~w~'la quincaillerie' ~g~dans Little Havana. + +[WFARE6:TAXI1] +~g~Destination ~w~'Howlin Petes Bike Emporium' ~g~dans le Centre. + +[FARE7:TAXI1] +~g~Destination ~w~'Les bijoutiers' ~g~à Vice Point. + +[FARE8:TAXI1] +~g~Destination ~w~'la plage' ~g~à Ocean Beach. + +[FARE9:TAXI1] +~g~Destination ~w~'la plage' ~g~à Washington Beach. + +[FARE10:TAXI1] +~g~Destination ~w~'la plage' ~g~à Vice Point. + +[FARE11:TAXI1] +~g~Destination ~w~'l'hôpital' ~g~à Ocean Beach. + +[FARE12:TAXI1] +~g~Destination ~w~'l'hôpital' ~g~à Vice Point. + +[FARE13:TAXI1] +~g~Destination ~w~'le commissariat de police' ~g~à Washington Beach. + +[FARE14:TAXI1] +~g~Destination ~w~'le commissariat de police' ~g~à Vice Point. + +[FARE15:TAXI1] +~g~Destination ~w~'le restaurant de pizza' ~g~à Vice Point. + +[WFARE7:TAXI1] +~g~Destination ~w~'le commissariat de police' ~g~à Little Havana. + +[WFARE8:TAXI1] +~g~Destination ~w~'le commissariat de police' ~g~à Downtown. + +[WFARE9:TAXI1] +~g~Destination ~w~'l'hôpital' ~g~à Downtown. + +[WFARE10:TAXI1] +~g~Destination ~w~'l'hôpital' ~g~à Little Havana. + +[WFARE11:TAXI1] +~g~Destination ~w~'le stade' ~g~à Downtown. + +[WFARE12:TAXI1] +~g~Destination ~w~'le restaurant de pizza' ~g~à Little Haiti. + +[WFARE13:TAXI1] +~g~Destination ~w~'le restaurant de pizza' ~g~à Downtown. + +[WFARE14:TAXI1] +~g~Destination ~w~'les docks' ~g~à Viceport. + +[WFARE15:TAXI1] +~g~Destination ~w~'la pharmacie' ~g~à Little Haiti. + +[FARE2:TAXI1] +~g~Destination ~w~'le Malibu club' ~g~à Vice Point. + +{=================================== MISSION TABLE TAXICUT ===================================} + +[TAXC_A:TAXICUT] +J'imagine que t'es le nouveau proprio. + +[TAXC_B:TAXICUT] +D'où tu sors? La Mafia? Le Cartel? T'as pas l'air mexicain... + +[TAXC_C:TAXICUT] +Quoi qu'il en soit, tu ferais mieux de continuer avec le barratin comme quoi les choses vont changer, + +[TAXC_D:TAXICUT] +peut-être même menacer des conducteurs... + +[TAXC_E:TAXICUT] +Vas-y mollo avec Ted là-bas, on vient juste de lui soigner son hernie. + +[TAXC_F:TAXICUT] +Eh bien, ouais. Les choses vont changer dans le coin, madame. + +[TAXC_G:TAXICUT] +Arrête tes conneries, petit. Vaut mieux que tu me laisses faire. + +[TAXC_H:TAXICUT] +Ca fait des années que je suis dans ce genre de biz. + +[TAXC_I:TAXICUT] +Ecoutez tous. + +[TAXC_J:TAXICUT] +On a une nouvelle direction et les choses vont encore changer dans le coin. + +[TAXC_K:TAXICUT] +Notre nouvelle direction, la... + +[TAXC_L:TAXICUT] +Tu fais partie de quel gang? + +[TAXC_M:TAXICUT] +En fait, je fais pas partie d'un gang... + +[TAXC_N:TAXICUT] +C'est quoi ton foutu nom, petit? + +[TAXC_O:TAXICUT] +Vercetti, Tommy Vercetti. + +[TAXC_P:TAXICUT] +Notre nouvelle direction, le gang Vercetti, + +[TAXC_Q:TAXICUT] +va veiller à nous éviter les emmerdes. + +[TAXC_R:TAXICUT] +Capiche? Terminé! + +[TAXC_S:TAXICUT] +Qu'est-ce que t'as pensé du 'capiche'? Moi, j'ai bien aimé le 'capiche'. + +[TAXC_T:TAXICUT] +Bon, alors c'est comme ça que ça marchait avant + +[TAXC_U:TAXICUT] +et on va continuer à faire tourner l'entreprise comme ça. + +[TAXC_V:TAXICUT] +Si on a des ennuis avec une compagnie concurrente, tu leur flanques une dérouillée. + +[TAXC_W:TAXICUT] +Puis ils nous flanquent une dérouillée. + +[TAXC_X:TAXICUT] +puis tu leur flanques une dérouillée, + +[TAXC_Y:TAXICUT] +et cetera et cetera. T'as pigé? + +[TAXC_Z:TAXICUT] +Euh, ouais, je crois... + +[TAXC_A1:TAXICUT] +Prends simplement un taxi au garage si tu te sens de bosser. + +{=================================== MISSION TABLE TAXIWA1 ===================================} + +[OUTTIME:TAXIWA1] +~r~T'es trop lent, mec, trop lent! + +[TAX1_1:TAXIWA1] +Ok, on a un client rupin qui a besoin d'être ramassé à Starfish island, ça intéresse quelqu'un? + +[TAX1_2:TAXIWA1] +Ici, Tommy, je prends! + +[TAX1_3:TAXIWA1] +C'est mon client, dégage! + +[TAX1_4:TAXIWA1] +Allez, vite, monte! + +[TAX1_5:TAXIWA1] +Ok, ok, mais ne me faites pas de mal! + +[TAXW1_1:TAXIWA1] +~g~Va prendre le V.I.P. sur Starfish Island. + +[TAXW1_2:TAXIWA1] +~g~Ramène le V.I.P.! Bousille l'autre bagnole! + +[TAXW1_3:TAXIWA1] +~r~Le V.I.P. est mort! + +[TAXW1_4:TAXIWA1] +~r~Le V.I.P. a été déposé! + +[TAXW1_6:TAXIWA1] +~g~Emmène le V.I.P. à l'aéroport! + +{=================================== MISSION TABLE TAXIWA2 ===================================} + +[TAX2_1:TAXIWA2] +Appel à toutes les voitures, on perd des clients dans toute la ville! Qu'est-ce que vous foutez, les gars? + +[TAX2_2:TAXIWA2] +Les taxis VC nous les prennent! Ils ont trop de voitures, on peut pas rivaliser! + +[TAX2_3:TAXIWA2] +Vercetti, si t'es en ville en train d'écouter, va falloir mettre quelques taxis VC hors circuit ou c'est la faillite! + +[TAXW2_1:TAXIWA2] +~g~Détruis 3 taxis concurrents! + +{=================================== MISSION TABLE TAXIWA3 ===================================} + +[TAX3_1:TAXIWA3] +Voiture 13, on a une demoiselle Cortez à prendre dans le centre, elle vous a spécialement demandé. + +[TAX3_2:TAXIWA3] +Ok, je prends. Voiture 13 en course! + +[TAX3_3:TAXIWA3] +Hmmmm, aucun signe de Mercedes... + +[TAXW3_3:TAXIWA3] +~g~Bousille le taxi leader! + +[TAXW3_2:TAXIWA3] +~g~Reste vivant jusqu'à la fin du temps imparti. + +[TAX_AS1:TAXIWA3] +COMPAGNIE DE TAXIS ACQUISE + +[TAX_AS2:TAXIWA3] +~G~Les taxis Kaufman génère dorénavant un revenu de $~1~ maximum. Pense à récupérer le fric régulièrement. + +[TAX3_4:TAXIWA3] +L'heure est venue pour l'ange gardien des taxis Kaufman de froisser de la tôle! + +[TAX3_5:TAXIWA3] +Hé mec, j'vais te bousiller ta caisse! + +{ reVC updates } +{ new languages } +[FEL_JAP] +JAPONAIS + +[FEL_POL] +POLONAIS + +[FEL_RUS] +RUSSE + +{ new display menus } +[FET_GFX] +GRAPHICS SETUP + +[FED_MIP] +MIP MAPPING + +[FED_AAS] +ANTI ALIASING + +[FED_FIL] +TEXTURE FILTERING + +[FED_BIL] +BILINEAR + +[FED_TRL] +TRILINEAR + +[FED_WND] +WINDOWED + +[FED_FLS] +FULLSCREEN + +[FEM_CSB] +CUTSCENE BORDERS + +[FEM_SCF] +SCREEN FORMAT + +[FEM_ISL] +MAP MEMORY USAGE + +[FEM_LOW] +LOW + +[FEM_MED] +MEDIUM + +[FEM_HIG] +HIGH + +[FEM_2PR] +PS2 ALPHA TEST + +[FEC_FRC] +FREE CAM + +{ Linux joy detection } +[FEC_JOD] +DETECT JOYSTICK + +[FEC_JPR] +Press any key on the joystick of your choice that you want to use on the game, and it will be selected. + +[FEC_JDE] +Detected joystick + +{ mission restart } +[FET_RMS] +REJOUER MISSION + +[FESZ_RM] +REJOUER? + +[FED_VPL] +VEHICLE PIPELINE + +[FED_PRM] +PED RIM LIGHT + +[FED_RGL] +ROAD GLOSS + +[FED_CLF] +COLOUR FILTER + +[FED_WLM] +WORLD LIGHTMAPS + +[FED_MBL] +MOTION BLUR + +[FEM_SIM] +SIMPLE + +[FEM_NRM] +NORMAL + +[FEM_MOB] +MOBILE + +[FED_MFX] +MATFX + +[FED_NEO] +NEO + +[FEM_PS2] +PS2 + +[FEM_XBX] +XBOX + +[FEC_IVP] +INVERT PAD VERTICALLY + +[FEM_NON] +NONE + +[FEC_DS2] +DUALSHOCK 2 + +[FEC_DS3] +DUALSHOCK 3 + +[FEC_DS4] +DUALSHOCK 4 + +[FEC_360] +XBOX 360 CONTROLLER + +[FEC_ONE] +XBOX ONE CONTROLLER + +[FEC_TYP] +GAMEPAD TYPE + +[FET_AGS] +GAMEPAD SETTINGS + +[FEM_AUT] { aspect ratio related } +AUTO [DUMMY] THIS LABEL NEEDS TO BE HERE !!! diff --git a/utils/gxt/german.txt b/utils/gxt/german.txt index 79df0b1..f5ff5e2 100644 --- a/utils/gxt/german.txt +++ b/utils/gxt/german.txt @@ -1,1406 +1,117 @@ -[LETTER1] -abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789"$,.'-?!!SDBF +{ + New strings are at the bottom of file. + Do not change the order of strings. + You can fix the typos of existing translation but please refrain from + unnecessary edits like rephasing because you think it suits better for your taste. +} -[DEFNAM] -Claude---------------------- +[RAMPAGE] +AMOKLAUF!! -[IN_VEH] -~w~Hey! Zurück ins ~b~Fahrzeug! +[RAMP_F] +AMOKLAUF FEHLGESCHLAGEN!! -[IN_VEH2] -~w~Du brauchst eine Karre für diesen Job! +[RAMP_P] +AMOKLAUF BESTANDEN!! -[IN_BOAT] -~w~Du brauchst ein Boot für diesen Job! +[RAMP_A] +ALLE AMOKLÃUFE BESTANDEN!! -[HEY] -~w~Keine Alleingänge. Halt die Gang beisammen! +[PAGE_01] +Dein Job: ~1~ Gang-Mitglieder in 2 Minuten! -[HEY2] -~w~Nicht aufteilen. Halt die Leute zusammen! +[PAGE_02] +Zerstöre ~1~ Fahrzeuge in 2 Minuten! -[HEY3] -~w~Du hast deinen besten Mann verloren. Los, zurück! Hol 8-Ball! +[PAGE_03] +Erledige ~1~ Gang-Mitglieder in 2 Minuten im Vorbeifahren! -[HEY6] -~w~Du stehst mit deiner Ehre für den Yakuza Kanbu ein. Du musst ihn beschützen! +[PAGE_04] +Überfahre ~1~ Gang-Mitglieder in 2 Minuten! -[HEY7] -~w~Ein Mann mehr kann nicht schaden. Los, zurück. Hol deinen Kontaktmann ab! +[PAGE_05] +Dein Job: ~1~ Gang-Mitglieder in 2 Minuten! -[HEY9] -~w~Du willst wissen, was so geredet wird? Sprich mit deinem Kontaktmann! - -[GATE_1] -~w~Die Sindaccos öffnen die Tore nur für Sindacco-Wagen. - -[HELPA] -~w~Das ist dein ~h~Versteck. - -[HELPB] -~w~Bist du nicht auf einer Mission, kannst du speichern, indem du das ~h~Speicher-Icon~w~ aufnimmst - die Uhr wird dann um 6 Stunden vorgestellt. - -[HELPC] -~w~Fahrzeuge in der ~h~Garage nebenan~w~ werden beim Speichern für dich aufbewahrt. - -[HELPD] -Zum Verlassen des Verstecks, stell dich in die ~h~Markierung. - -[HELP0] -~w~Drücke~h~ ~k~ ~VEEE~~w~, um in ein Fahrzeug ein- oder auszusteigen. - -[HELP1] -~w~Halte in der Mitte der ~h~gelben Markierung. - -[HELP3] -~w~Du kannst nur kurze Zeit sprinten, ohne zu ermüden. - -[HELP4] -~w~Benutze~h~ ~k~ ~VEACC~ ~w~zum ~h~Beschleunigen. Benutze~h~ ~k~ ~VESTR~ ~w~zum Steuern. - -[HELP5] -~w~Drücke~h~ ~k~ ~VEBRK~ ~w~zum ~h~Bremsen~w~, oder zum ~h~Zurücksetzen~w~. - -[HELP6] -~w~Drücke die~h~ ~k~ ~VEHB~~w~, um die ~h~Handbremse~w~ anzuziehen. - -[HELP7] -~w~Halte~h~ ~k~ ~PDLT~~w~, um mit einem Präzisionsgewehr zu zielen. - -[HELP8] -~w~Mit~h~ ~k~ ~SNZI~ ~w~und~h~ ~k~ ~SNZO~ ~w~kannst du beim Zielen ~h~heran- und herauszoomen. - -[HELP10] -~w~Der ~h~gelbe Stern~w~ zeigt an, dass du ~h~gesucht wirst~w~ - Die Polizei wird versuchen, dich zu verhaften. - -[HELP11] -~w~Je mehr Sterne, umso energischer werden Gesetzeshüter gegen dich vorgehen. - -[HELP12] -~w~Stell dich in die ~h~gelbe Markierung~w~, um eine Mission zu starten. - -[HELP13] -~w~Achte auf Wege, die nicht auf dem ~h~Radar~w~ angezeigt werden und nutze sie zu deinem Vorteil! - -[HELP14] -~w~Benutze das ~h~Radar~w~, um dich zu orientieren - folge dem ~h~gelben Punkt~w~, um das ~h~Versteck~w~ zu finden. - -[HELP16] -~w~Benutze~h~ ~k~ ~VESTR~ ~w~zum Steuern. - -[HELP17] -~w~Phil Cassidy's - Ware von größerem Kaliber: Demnächst neue Lieferung! - -[HELP18] -~w~Phil Cassidy's Fully Cocked Gun Shop hat neue Ware geliefert bekommen! - -[HELP18B] -~w~Phil Cassidy's hat jetzt die ~h~Minigun~w~ vorrätig! - -[HELP19A] -~w~Um ein ~h~Drive-by~w~ auszuführen, halte die~h~ ~k~ ~VELL~ ~w~oder die~h~ ~k~ ~VELR~ ~w~und feuere mit~h~ ~k~ ~VEWEP~. - -[HELP19C] -~w~Ein Drive-by kannst du nur ausführen, wenn du eine ~h~Maschinenpistole~w~ hast. - -[HELP19D] -~h~Auf Motorrädern ~w~kannst du durch Drücken von~h~ ~k~ ~VEWEP~ nach vorn schießen~w~. - -[HELP19F] -~w~Du kannst nur nach vorn schießen, wenn du eine ~h~Maschinenpistole~w~ hast. - -[HELP20] -~w~Du hast ~h~Polizeischmiergeld~w~ gefunden. Das verringert deinen ~h~Fahndungslevel~w~ um einen Stern! - -[HELP21] -~w~Drücke~h~ ~k~ ~PDCWE~~w~, um zu Fuß Waffen zu wechseln. - -[HELP22] -~w~Um ~h~Vincenzos Lagerhaus~w~ zu finden, folge dem ~h~V~w~ auf dem Radar. - -[HELP23] -~w~Ein ~h~nach unten zeigendes Dreieck~w~ bedeutet, dass sich das ~h~Ziel in geringerer Höhe~w~ als du befindet. - -[HELP24] -~w~Halte~h~ ~k~ ~VELL~ ~w~oder~h~ ~k~ ~VELR~~w~, um im Fahrzeug nach ~h~links oder rechts~w~ zu sehen. Halte beide, um nach ~h~hinten~w~ zu sehen. - -[HELP25] -~w~Drücke die~h~ ~k~ ~CVEIW~~w~, um den ~h~Blickwinkel~w~ zu verändern. - -[HELP26] -~w~Spring auf ein Boot und drücke~h~ ~k~ ~VEEE~~w~, um hinein zu gelangen. - -[HELP27] -~w~In der Nähe eines Boots drücke~h~ ~k~ ~VEEE~~w~, um an Bord zu gehen. - -[HELP29] -~w~Drücke~h~ ~k~ ~VEHN~~w~, um zu ~h~hupen. - -[HELP30] -~w~Mit der~h~ ~k~ ~VECRS~ ~w~kannst du verschiedene ~h~Radiosender~w~ einstellen. - -[HELP33] -~w~Jetzt, wo die Killer angeheuert worden sind, werden sie den Job durchziehen, egal wie lange es dauert. - -[HELP34] -~w~Halte~h~ ~k~ ~VELB~~w~, um in einem Auto nach hinten zu sehen. - -[HELP38] -~w~Erledigst du jemanden, der eine Waffe hat, wird er sie fallen lassen. - -[HELP40] -~w~Gehst du zu Fuß, benutze~h~ ~k~ ~PDLOO~~w~, um dich umzusehen. - -[HELP58] -~w~Halte~h~ ~k~ ~PDLT~~w~, um ~h~ein Ziel zu erfassen~w~, und drücke~h~ ~k~ ~PDFW~ ~w~zum Feuern! - -[HELP59] -~w~Hast du ein Ziel erfasst, drücke~h~ ~k~ ~PDCTL~~w~, um es zu wechseln. - -[HELP60] -~w~Manche Fässer explodieren, wenn du auf sie schießt - aber halte Abstand! - -[TANK] -~h~~k~ ~VEWEA~~w~, um mit der Kanone des Rhino zu zielen.~h~ ~k~ ~VEWEP~ ~w~zum Feuern. - -[ANSWER] -~w~Drücke die~h~ ~k~ ~ANS~~w~, um an dein Handy zu gehen und~h~ ~k~ ~VEEE~~w~, um aufzulegen. - -[BOMB] -~w~Fährst du in die Bombenwerkstatt, wird 8-Ball für ~h~$500~w~ eine ~h~Bombe~w~ an deinem Wagen anbringen. - -[BRIDGE1] -~w~Callahan Bridge: Im Bau. Geplante Fertigstellung: Mai 1998 - -[STRIK_1] -~w~Wenn der Streik beendet ist, wirst du mit der ~h~Fähre~w~ nach Staunton Island fahren können. - -[SPRAY] -~w~Beim ~h~Pay 'n' Spray~w~ wirst du deinen ~h~Fahndungslevel~w~ los und dein Fahrzeug wird ~h~repariert ~w~und ~h~umgespritzt~w~. Kostenpunkt: ~h~$100. - -[S_TRN_1] -~w~Mit der ~h~U-Bahn~w~ kannst du in Liberty City herumfahren. Drücke~h~ ~k~ ~VEEE~~w~, um in eine U-Bahn ~h~ein- ~w~oder ~h~auszusteigen~w~. - -[TUBE1] -~w~Wenn der Bahnhof öffnet, kannst du eine ~h~U-Bahn~w~ nach Staunton Island nehmen. - -[TUBE2] -~w~Du kannst zum ~h~Francis International Airport ~w~fahren, wenn dieser Bahnhof öffnet. - -[TUBE_2] -~w~Um in eine ~h~U-Bahn~w~ zu steigen, drücke~h~ ~k~ ~VEEE~. - -[SPRAY1] -~w~Parkst du im ~h~Pay 'n' Spray~w~, so wirst du deinen ~h~Fahndungslevel~w~ los und dein Fahrzeug wird ~h~repariert ~w~und ~h~umgespritzt~w~. Normalerweise kostet das ~h~$100~w~ - diesmal gratis. - -[HELPE31] -~w~Während des Spiels werden stets neue Outfits für den Spieler verfügbar und müssen bei Mr. Benz abgeholt werden. - -[HELPE32] -~w~Während des Spiels hat der Spieler die Möglichkeit, bei Ammu-Nation großkalibrigere Waffen zu kaufen. - -[HELPCOM] -~w~Neue Outfits im Versteck freigeschaltet! - -[HELP41] -~w~Parke im ~h~Pay 'n' Spray~w~, um dein Auto reparieren und umspritzen zu lassen. Die ~h~Sprühdose~w~ auf dem Radar führt dich zum ~h~Pay 'n' Spray. - -[PAGEB1] -~w~Die ~h~Pistole~w~ ist jetzt in deinem Versteck verfügbar! - -[PAGEB10] -~w~Du hast alle versteckten Päckchen gefunden! Hier hast du einen ~h~$50.000-Bonus! - -[EXPO_W] -~w~Love Media braucht einen von denen! - -[FERRY_2] -~w~Komm wieder, wenn eine Fähre angelegt hat. - -[FERRY_3] -~w~Dein Fahrzeug passt nicht auf die Fähre! - -[FERRY_4] -~w~Gesuchte Verbrecher dürfen nicht auf die Fähre! - -[FERRY_5] -~w~Du brauchst ~h~$25~w~ für ein Fährticket. Komm wieder, wenn du genug Geld hast. - -[FERRY_6] -~w~Während einer Mission kannst du nicht die Fähre nehmen. - -[FERR_SK] -~w~Drücke~h~ ~k~ ~TRSK~~w~, um den Rest der Fahrt zu überspringen. - -[FERR_C1] -~w~Fähre nach Staunton. Fahrpreis: ~h~$25~w~. Drücke~h~ ~k~ ~TGSUB~~w~, um ein Ticket zu kaufen. - -[FERR_C2] -~w~Fähre nach Portland. Fahrpreis: ~h~$25~w~. Drücke~h~ ~k~ ~TGSUB~~w~, um ein Ticket zu kaufen. - -[A_H1] -~w~~k~ ~AMBUY~ ~w~zum Kaufen. ~n~~k~ ~AMEXI~ ~w~zum Beenden. - -[A_UZI_A] -~w~Ammu-Nation hat jetzt Micro SMGs auf Lager! - -[AMMU] -~w~Wenn eine neue Lieferung eintrifft, gibt es wieder Waffen bei ~h~Ammu-Nation~w~. Sorry, dass Sie umsonst hier waren. - -[WANT_A] -~w~Wirst du ~h~'verhaftet'~w~, so wirst du zum nächsten Polizeirevier gebracht. - -[WANT_B] -~w~Passiert dir das auf einer Mission, ist diese fehlgeschlagen und die Cops nehmen dir alle Waffen weg und kassieren Schmiergeld von dir. - -[WANT_C] -~w~Du wirst nur ~h~'verhaftet'~w~, wenn du einen ~h~Fahndungslevel~w~ hast - dargestellt durch eine Reihe von Sternen am oberen Bildschirmrand. - -[WANT_D] -~w~Je mehr Sterne du hast, desto entschiedener werden die Gesetzeshüter dich verfolgen. - -[WANT_E] -~w~Es gibt Wege, deinen Fahndungslevel zu verringern - halte die Augen danach offen. - -[WANT_F] -~w~Bist du mit einem Fahrzeug unterwegs, wirst du deinen Fahndungslevel bei einem ~h~Pay 'n' Spray~w~ los. - -[HEAL_A] -~w~Wenn du ~h~'außer Gefecht'~w~ bist, wirst du zur nächsten Klinik gebracht. - -[HEAL_B] -~w~Du verlierst alle Waffen und eine etwaige Mission ist fehlgeschlagen. Außerdem musst du die Behandlung bezahlen. - -[HEAL_C] -~w~Dein ~h~Gesundheitszustand~w~ wird durch den roten Balken oben rechts angezeigt. - -[HEAL_D] -~w~Es gibt Möglichkeiten, sich zu kurieren oder zu schützen - halte die Augen danach offen. - -[H_WE_01] -~w~Gehe über eine Waffe, um sie aufzuheben. Du kannst Waffen nur zu Fuß an dich nehmen. - -[H_WE_02] -~w~Hast du bereits eine Waffe dieses Typs, dann drücke~h~ ~k~ ~PUCF~~w~, um sie durch die neue zu ersetzen. - -[PU_CF] -~w~Drücke die~h~ ~k~ ~PUCF~~w~, um diese Waffe an dich zu nehmen. Eine etwaige Waffe gleichen Typs geht verloren. - -[CLOTHA] -Benutze~h~ ~k~ ~AMMOV~~w~, um Bekleidung anzusehen. Umziehen ~n~mit~h~ ~k~ ~AMBUY~~w~. Abbrechen mit~h~ ~k~ ~AMEXI~~w~. - -[CLOTHB] -~w~Du kannst hier jederzeit deine Kleidung wechseln. - -[SIREN_1] -~w~Um die ~h~Sirene eines Einsatzfahrzeuges~w~ ein- oder auszuschalten, drücke schnell die~h~ ~k~ ~VEHN~. - -[FHOSE_1] -~w~Halte~h~ ~k~ ~VEWEP~~w~, um die Löschkanone einzusetzen. - -[PHOTO1] -~w~Halte~h~ ~k~ ~PDLT~~w~, um durch den Sucher der Kamera zu schauen. - -[PHOTO2] -~w~Während du die Kamera benutzt, kannst du mit~h~ ~k~ ~SNZI~ ~w~und~h~ ~k~ ~SNZO~ ~w~heran- und heraus~h~zoomen~w~. - -[PHOTO3] -~w~Drücke~h~ ~k~ ~PDFW~~w~, um ein anvisiertes Motiv zu fotografieren. - -[BENZ_H1] -~w~Das ~h~Hemdensymbol~w~ auf dem Radar führt dich zu ~h~Mr. Benz' Bekleidungsgeschäft. - -[BENZ_LE] -~w~Der ~h~Leone-Anzug~w~ ist jetzt im Versteck verfügbar. - -[BENZ_GU] -~w~Das ~h~Avenging Angel-Kostüm~w~ ist jetzt im Versteck verfügbar. - -[BENZ_CH] -~w~Die ~h~Chauffeurslivree~w~ ist jetzt im Versteck verfügbar. - -[BENZ_TU] -~w~Der ~h~Smoking~w~ ist jetzt im Versteck verfügbar. - -[ATUTOR] -~w~Zum Ein- und Ausschalten von Krankenwagen-Missionen drücke~h~ ~k~ ~TGSUB~. - -[CTUTOR] -~w~Zum Ein- und Ausschalten von Bürgerwehr-Missionen drücke~h~ ~k~ ~TGSUB~. - -[FTUTOR] -~w~Zum Ein- und Ausschalten von Feuerwehr-Missionen drücke~h~ ~k~ ~TGSUB~. - -[TRATUT1] -~w~Zum Ein- und Ausschalten von Müllabfuhr-Missionen drücke~h~ ~k~ ~TGSUB~. - -[TTUTOR] -~w~Zum Ein- und Ausschalten von Taxi-Missionen drücke~h~ ~k~ ~TGSUB~. - -[A_COMP2] -~w~Krankenwagen-Mission: Level 12 abgeschlossen! Laufen ermüdet dich nie mehr! - -[FIREPRO] -~w~Feuerwehr-Mission: Level 12 abgeschlossen! Du bist jetzt feuerfest! - -[RCHELP] -~w~Zum ~h~Sprengen~w~ deines ferngesteuerten Autos drücke~h~ ~k~ ~VEWEP~. - -[TAXIH1] -~w~Halte neben einem ~h~markierten Fußgänger~w~, um ihn einsteigen zu lassen, dann bring ihn schnell an sein Fahrtziel. - -[TIPHLP] -~w~Der ~h~Trinkgeld-Balken~w~ sinkt mit zunehmender ~h~Fahrtzeit~w~ und wenn dein Taxi ~h~beschädigt~w~ wird. - -[ANG_E3] -~w~Suche in Chinatown nach anderen Avenging Angels. - -[ANGOUT] -~w~Komm wieder, wenn du ein ~h~Avenging Angel~w~-Kostüm trägst. - -[ANGCOM2] -~w~Avenging Angel-Missionen Staunton: Level 15 abgeschlossen! Du verlierst nun kein Geld mehr, wenn du verhaftet wirst! - -[ANGCOM3] -~w~Avenging Angel-Missionen Shoreside: Level 15 abgeschlossen! In deinem Versteck wartet ein 'Spezial-Fahrzeug' auf dich! - -[TVOHELP] -~w~Komm wieder, wenn du die ~h~Hockey-Maske~w~ trägst. - -[TIMER] -Diese Mission hat ein Zeitlimit. Du musst sie beendet haben, bevor die Zeit um ist. - -[GARAGE] -Fahr den Wagen in die Garage, dann geh nach draußen. - -[TRASH] -~g~Du hast dein Fahrzeug ziemlich geschrottet! Lass es reparieren! - -[WRECKED] -~r~Das Fahrzeug ist Schrott! - -[SPOOK] -SCHRECK-O-METER - -[SPOTTED] -~r~Sie haben dich bemerkt! - -[REWARD] -~w~Belohnung: $~1~ - -[GAMEOVR] -GAME OVER - -[Z] -Z-Achse Wert: ~1~ - -[DEAD] -AUSSER GEFECHT! - -[BUSTED] -VERHAFTET! - -[GOODBOY] -~w~$50 Braver-Bürger-Bonus! - -[NUMBER] -~1~ - -[SCORE] -$~1~ - -[LOADCAR] -LADE FAHRZEUG... (ABBRECHEN MIT L-Taste) - -[CARSOFF] -Deaktivierte Fahrzeuge. - -[CARS_ON] -Aktivierte Fahrzeuge. - -[TEXTXYZ] -Schreibe Koordinaten in Datei... - -[CHEATON] -Cheat Modus AN - -[CHEATOF] -Cheat Modus AUS - -[IMPORT1] -Geh nach draußen und warte auf dein Fahrzeug. - -[KE_PLYR] -Spieler - -[KE_CTCS] -Kontaktleute - -[KE_WEPS] -Waffen - -[KE_ADR] -Adrenalin - -[KE_BRIB] -Schmiergeld - -[KE_HLTH] -Gesundheit - -[KE_KILF] -Spezialauftrag - -[KE_ARM] -Panzerung - -[KE_USJ] -M-Stunt - -[KE_PKG] -Verstecktes Päckchen - -[KE_INFO] -Information - -[DAM] -Schaden - -[KILLS] -Hits - -[TIME] -Timer - -[STOPS] -Stops - -[BULL] -Goldbarren - -[EVID] -Beweismittel - -[HEALTH] -Auto - -[COLLECT] -Gesammelt - -[LEVEL] -Level - -[SALES] -Verkäufe - -[CITYZON] -Liberty City - -[VICE_C] -Liberty City - -[IND_ZON] -Portland - -[PORT_W] -Callahan Point - -[PORT_S] -Atlantic Quays - -[PORT_E] -Portland Harbor - -[PORT_I] -Trenton - -[S_VIEW] -Portland View - -[CHINA] -Chinatown - -[EASTBAY] -Portland Beach - -[LITTLEI] -Saint Mark's - -[REDLIGH] -Rotlichtviertel - -[TOWERS] -Hepburn Heights - -[HARWOOD] -Harwood - -[ROADBR1] -Callahan Bridge - -[ROADBR2] -Callahan Bridge - -[TUNNELP] -Porter Tunnel - -[BOMB1] -8-Balls Werkstatt - -[COM_ZON] -Staunton Island - -[STADIUM] -Aspatria - -[STADIU2] -Aspatria - -[STADIU3] -Aspatria - -[HOSPI_2] -Rockford - -[UNIVERS] -Liberty Campus - -[CONSTRU] -Fort Staunton - -[PARK] -Belleville Park - -[COM_EAS] -Newport - -[SHOPING] -Bedford Point - -[SHOP2] -Bedford Point - -[SHOP3] -Bedford Point - -[YAKUSA] -Torrington - -[SUB_ZON] -Shoreside Vale - -[AIRPORT] -Francis Intl. Airport - -[PROJECT] -Wichita Gardens - -[SUB_IND] -Pike Creek - -[SWANKS] -Cedar Grove - -[BIG_DAM] -Cochrane Dam - -[SUB_ZO2] -Shoreside Vale - -[SUB_ZO3] -Shoreside Vale - -[CAR_1] -Krankenwagen - -[CAR_2] -Feuerwehrwagen - -[CAR_3] -Streifenwagen - -[CAR_4] -Enforcer - -[CAR_5] -Barracks - -[CAR_6] -Rhino - -[CAR_7] -FBI Cruiser - -[CAR_8] -Securicar - -[CAR_9] -Moonbeam - -[CAR_10] -Coach - -[CAR_11] -Flatbed - -[CAR_12] -Linerunner - -[CAR_13] -Trashmaster - -[CAR_14] -Patriot - -[CAR_15] -Mr Whoopee - -[CAR_16] -Mule - -[CAR_17] -Yankee - -[CAR_18] -Pony - -[CAR_19] -Bobcat - -[CAR_20] -Rumpo - -[CAR_21] -Blista - -[CAR_22] -Dodo - -[CAR_23] -Bus - -[CAR_24] -Sentinel - -[CAR_25] -Cheetah - -[CAR_26] -Banshee - -[CAR_27] -Stinger - -[CAR_28] -Infernus - -[CAR_29] -Esperanto - -[CAR_30] -Kuruma - -[CAR_31] -Stretch Limo - -[CAR_32] -Perennial - -[CAR_33] -Landstalker - -[CAR_34] -Manana - -[CAR_35] -Idaho - -[CAR_36] -Stallion - -[CAR_37] -Taxi - -[CAR_38] -Cabbie - -[CAR_39] -Buggy - -[SINDACO] -Sindacco Argento - -[HEARSE] -Hearse - -[LANDSTK] -Landstalker - -[IDAHO] -Idaho - -[STINGER] -Stinger - -[LINERUN] -Linerunner - -[PEREN] -Perennial - -[SENTINL] -Sentinel - -[PATRIOT] -Patriot - -[FIRETRK] -Feuerwehrwagen - -[TRASHM] -Trashmaster - -[STRETCH] -Stretch Limo - -[MANANA] -Manana - -[INFERNS] -Infernus - -[BLISTA] -Blista - -[PONY] -Pony - -[MULE] -Mule - -[CHEETAH] -Cheetah - -[AMBULAN] -Krankenwagen - -[FBICAR] -FBI Cruiser - -[MOONBM] -Moonbeam - -[ESPERAN] -Esperanto - -[TAXI] -Taxi - -[KURUMA] -Kuruma - -[BOBCAT] -Bobcat - -[WHOOPEE] -Mr Whoopee - -[BFINJC] -BF Injection - -[POLICAR] -Streifenwagen - -[ENFORCR] -Enforcer - -[SECURI] -Securicar - -[BANSHEE] -Banshee - -[PREDATR] -Predator - -[BUS] -Bus - -[RHINO] -Rhino - -[BARRCKS] -Barracks OL - -[BARRACK] -Barracks OL - -[TRAIN] -Zug - -[HELI] -Helikopter - -[DODO] -Dodo - -[COACH] -Coach - -[CABBIE] -Cabbie - -[STALION] -Stallion - -[RUMPO] -Rumpo - -[RCBANDT] -RC Bandit - -[BELLYUP] -Triaden-Fisch-Van - -[MRWONGS] -Mr Wongs - -[MAFIACR] -Leone Sentinel - -[YARDICR] -Yardie Lobo - -[YAKUZCR] -Yakuza Stinger - -[DIABLCR] -Diablo Stallion - -[COLOMCR] -Kartell Cruiser - -[HOODSCR] -Hoods Rumpo XL - -[AEROPL] -Flugzeug - -[SPEEDER] -Speeder - -[REEFER] -Reefer - -[PANLANT] -Panlantic - -[FLATBED] -Flatbed - -[YANKEE] -Yankee - -[BORGNIN] -Bickle '76 - -[TOYZ] -TOYZ - -[MCLARN] -Lancer MF1 - -[SHELBY] -Hellenbach GT - -[SUBARU] -Impreza WRX - -[SUPRA] -Supra - -[SKYLINE] -Skoiloine - -[CYCLONE] -Cyclone GT - -[ESPRIT] -V8 Ghost - -[MINI] -Tommy - -[HOTROD] -Thunder-Rodd - -[CAMPVAN] -Wahlkampf-Rumpo - -[BALLOT] -Stimmzettel-Van - -[GHOST] -Ghost - -[ANGEL] -Angel - -[ANGEL2] -Avenger - -[PIZZABO] -Pizzaboy - -[NOODLBO] -Nudelboy - -[FAGGIO] -Faggio - -[FREEWAY] -Freeway - -[SANCHEZ] -Sanchez - -[SANCH2] -Manchez - -[F_PASS1] -~w~Feuer gelöscht! Belohnung: $~1~ - -[F_RANGE] -~r~Du bist außer Reichweite des Feuerwehrfunks. Fahr näher an eine Feuerwache heran! - -[C0TGSUB] -die R3-Taste - -[C0VESTR] -den linken Analog-Stick oder die Richtungstasten Links und Rechts - -[C1VESTR] -den linken Analog-Stick - -[C2VESTR] -linken Analog-Stick oder Richtungstasten Links und Rechts - -[C3VESTR] -linken Analog-Stick - -[C2VEHB] -~T~ - -[C3VEHB] -L1-Taste - -[C0VEHN] -L3-Taste - -[C0VELL] -L2-Taste - -[C1VELL] -L2-Taste - -[C2VELL] -L2-Taste - -[C3VELL] -L2-Taste - -[C0VELR] -R2-Taste - -[C1VELR] -R2-Taste - -[C2VELR] -R2-Taste - -[C3VELR] -R2-Taste - -[C0VELB] -die L2-Taste + die R2-Taste - -[C1VELB] -die L2-Taste + die R2-Taste - -[C2VELB] -L2-Taste + R2-Taste - -[C3VELB] -L2-Taste + R2-Taste - -[C0VECRS] -L1-Taste - -[C1VECRS] -SELECT-Taste - -[C0VEWEI] -dem linken Analog-Stick oben/unten oder den Richtungstasten Oben und Unten - -[C1VEWEI] -dem linken Analog-Stick oben/unten - -[C2VEWEI] -linken Analog-Stick oben/unten oder Richtungstasten Oben und Unten - -[C3VEWEI] -linken Analog-Stick oben/unten - -[C0PDCWE] -die L2-Taste und die R2-Taste - -[C1PDCWE] -die L2-Taste und die R2-Taste - -[C0PUCF] -L1-Taste - -[C1PUCF] -L1-Taste - -[C2PUCF] -~T~ - -[C3PUCF] -~O~ - -[C0PDLT] -die R1-Taste - -[C1PDLT] -die R1-Taste - -[C2PDLT] -R1-Taste - -[C3PDLT] -L1-Taste - -[C0PDCTL] -die L2-Taste und die R2-Taste - -[C1PDCTL] -die L2-Taste und die R2-Taste - -[C2PDCTL] -L2-Taste und R2-Taste - -[C3PDCTL] -L2-Taste und R2-Taste - -[C0CVEIW] -SELECT-Taste - -[C1CVEIW] -Richtungstasten Oben und Unten - -[C2CVEIW] -SELECT-Taste - -[C3CVEIW] -SELECT-Taste - -[C0PDBAK] -R3-Taste - -[C1PDBAK] -R3-Taste - -[C2PDBAK] -R3-Taste - -[C3PDBAK] -R3-Taste - -[C0PDLO1] -L-Taste - -[C1PDLO1] -L-Taste - -[C2PDLO1] -L-Taste - -[C3PDLO1] -L-Taste - -[C0PDLO2] -Analog-Pad - -[C2PDLO2] -Analog-Pad - -[C0ANS] -L1-Taste - -[C1ANS] -L1-Taste - -[C2ANS] -L1-Taste - -[C3ANS] -L1-Taste - -[WEATHER] -WETTER ÄNDERN - -[WEATHE2] -WETTER NORMAL - -[GA_4] -~w~Autobomben kosten $500 pro Stück. - -[GA_5] -~w~In deinem Fahrzeug ist schon eine Autobombe. - -[GA_6] -~w~Park die Karre, mach sie durch Drücken von~h~ ~k~ ~PED_FIREWEAPON~ ~w~scharf, und dann HAU AB! - -[GA_7] -~w~Mach die Bombe mit ~h~ ~k~ ~PED_FIREWEAPON~~w~ scharf. Dann geht sie hoch, wenn der Wagen angelassen wird. - -[GA_8] -~w~Benutze den Zünder, um die Bombe hochgehen zu lassen. - -[GA_9] -Du hast ~1~ von zehn Spezialautos beschafft. - -[GA_10] -Hübsche Karre. Hier sind deine $~1~. - -[GA_11] -Das Modell haben wir schon. Das können wir nicht gebrauchen! - -[GA_12] -Bombe ist scharf - -[GA_13] -Saubere Arbeit. Wenn du alle auf der Liste abgeliefert hast, kriegst du einen Bonus. - -[GA_14] -Du hast alle Karren geliefert. SEHR GUT! Hier, für dich. - -[GA_15] -~w~Hoffentlich gefällt dir die neue Farbe. - -[GA_17] -~w~Neuer Motor und neue Lackierung! - -[GA_19] -An dem Modell haben wir kein Interesse. - -[GA_20] -Von der Sorte haben wir mehr als genug. Da kommen wir nicht ins Geschäft. - -[GA_22] -~w~In ein Motorrad kannst du keine Bombe einbauen. - -[GA_23] -~w~Autobombe eingebaut - Material und Arbeit: $500 - -[GA_24] -~w~Autobombe eingebaut - die geht aufs Haus! - -[CR_1] -~w~Der Kran kann dieses Fahrzeug nicht anheben. - -[PU_MONY] -~w~Du hast nicht genug Geld. - -[PAUSED] -PAUSE - -[FEB_STA] -Statistiken - -[FEB_MAP] -Karte - -[FEB_BRI] -Infos - -[FEB_CON] -Steuerung - -[FEB_AUD] -Audio - -[FEB_DIS] -Anzeige - -[FEB_LAN] -Sprache - -[FEP_STA] -STATISTIKEN - -[FEP_MAP] -KARTE - -[FEP_BRI] -INFOS - -[FEP_CON] -STEUERUNG - -[FEP_AUD] -AUDIO - -[FEP_DIS] -ANZEIGE - -[FEP_LAN] -SPRACHE: - -[FEF_ST1] -Wer ist der Härteste? - -[FEF_ST2] -Wie viel Chaos hast du angerichtet? - -[FEF_BR1] -Du blickst nicht mehr durch? - -[FEF_CO1] -Taste dich ran, Mann! - -[FEF_SA1] -Keep your place in the pile! - -[FEF_SA2] -Spiele laden und speichern - -[FEF_AU1] -Volle Dröhnung gefällig? - -[FEF_AU2] -Radiosender und Soundeffekte auswählen - -[FEF_DI1] -Andere Optik? - -[FEF_DI2] -Spiel für deinen Fernseher optimieren - -[FEF_LA1] -Was für ein Gefasel! - -[FEF_LA2] -Welches Idiom liegt dir denn so? - -[FEM_ON] -EIN - -[FEM_OFF] -AUS - -[FEM_YES] -Ja - -[FEM_NO] -Nein - -[FEM_NON] -Kein(e) - -[FEI_SEL] -Auswahl - -[FEI_TAR] -Ziel An/Aus - -[FEI_BAC] -Zurück - -[FEI_RES] -Fortsetzen - -[FEI_NAV] -Bewegen - -[FEI_BTX] -/ - -[FEI_BTT] -" - -[FEI_STA] -START - -[FEI_BTD] -analog - -[FEI_BTU] -;= - -[FEI_R1B] -L \ R - -[FEI_SCR] -Scrollen - -[FEI_ZOO] -Zoom - -[FEH_STA] -STATISTIKEN - -[FEH_CON] -STEUERUNG - -[FEH_AUD] -AUDIO - -[FEH_LAN] -SPRACHE - -[FEH_SGA] -NEUES SPIEL STARTEN - -[FET_SG] -SPIEL SPEICHERN - -[FEH_BRI] -INFO - -[FEH_DIS] -ANZEIGE - -[FEH_MAP] -KARTE - -[FEM_OK] -OK - -[FEC_CRO] -Ducken - -[FE_MLG] -KARTENLEGENDE +[SENTXS] +Sentinel XS [MAP_LEG] -LEGENDE: +Legende + +[VCNMAV] +VCN Maverick [LG_01] Position des Spielers +[LG_02] +Avery Carrington + +[LG_03] +Biker-Kontaktpunkt + +[LG_04] +Colonel Cortez + +[LG_05] +Ricardo Diaz + +[LG_06] +Kent Paul + +[LG_07] +Rechtsanwalt + +[LG_08] +Phil Cassidy + +[LG_09] +Bootswerft + +[LG_10] +Malibu Club + +[LG_11] +Kubaner + +[LG_12] +Filmstudio + [LG_13] -Ammu-Nation +AmmuNation + +[LG_14] +Haitianer + +[LG_15] +Eisenwarenladen [LG_16] Versteck +[LG_17] +Eiscreme + +[LG_18] +Kaufman-Taxis + +[LG_19] +Love Fist + +[LG_20] +Druckerei + +[LG_21] +Immobilie + [LG_22] Pay 'n' Spray [LG_23] -Mr. Benz +Bekleidungsgeschãft + +[LG_24] +Tommys Villa [LG_25] Telefon @@ -1421,7 +132,7 @@ Radiosender Fever 105 Radiosender VRock [LG_31] -VCPR Radio Station +Polizeifunk-Zentrale [LG_32] Radiosender Espantoso @@ -1432,800 +143,1490 @@ Radiosender Emotion 98.3 [LG_34] Radiosender Wave 103 -[LG_35] -Ziel - [LG_36] Sun Yard [LG_37] -Strip Club +Stripper-Bar -[LG_38] -8-Ball +[MAP_YAH] +DU BIST HIER -[LG_39] -Kirche zum Beichten +[TAXSHRT] +~g~Du kannst dieses Kaufman-Taxi nehmen, statt selbst Auto zu fahren. Das kostet dich $9. -[LG_40] -Ma Cipriani +[MOB_09D] +Vielleicht hab ich Leo ja erledigt und mir sein Handy genommen. Hast du schon mal daran gedacht, du Penner? -[LG_41] -Donald Love - -[LG_42] -JD O'Toole - -[LG_43] -Salvatore Leone - -[LG_44] -Maria - -[LG_45] -McAffrey - -[LG_46] -Toshiko Kasen - -[LG_47] -Vincenzo Cilli - -[LG_48] -Bombenwerkstatt - -[LG_49] -Bekleidungsgeschäft - -[LG_50] -Phil Cassidy's - -[LG_51] -Bedrohung - -[LG_52] -Freund - -[LG_53] -Gegenstand - -[LG_54] -Spieler-Ziel - -[FEO_CON] -Steuerungs-Setup - -[FEO_AUD] -Audio-Setup - -[FEO_DIS] -Anzeigen-Setup - -[FEO_LAN] -Sprachen-Setup - -[FEO_PLA] -Spieler-Setup - -[FEB_PMB] -Vorherige Missionsinfos: - -[FEC_NA] -Nicht belegt - -[FEC_CWL] -Eine Waffe nach links - -[FEC_CWR] -Eine Waffe nach rechts - -[FEC_CW] -Waffenauswahl - -[FEC_CT] -Zielauswahl - -[FEC_TAR] -Zielen - -[FEC_MOV] -Bewegung - -[FEC_CAM] -Blickwinkel ändern - -[FEC_PAU] -Pause - -[FEC_ENV] -In Fahrzeug einsteigen - -[FEC_JUM] -Springen - -[FEC_ATT] -Angreifen/Feuern - -[FEC_RUN] -Rennen - -[FEC_FPC] -Umherschauen - -[FEC_LL] -Nach links schauen - -[FEC_LB1] -Schau - -[FEC_LB2] -nach hinten - -[FEC_LB] -Nach hinten schauen - -[FEC_LR] -Nach rechts schauen - -[FEC_HOR] -Hupe - -[FEC_VES] -Fahrzeugsteuerung - -[FEC_RSC] -Radiosender wechseln - -[FEC_BRA] -Bremsen/Zurücksetzen - -[FEC_HAB] -Handbremse - -[FEC_CAW] -Fahrzeugwaffe - -[FEC_ACC] -Beschleunigen - -[FEC_SMT] -Spezialmission - -[FEC_CCF] -KONFIGURATION: - -[FEC_CF1] -KONFIG. 1 - -[FEC_CF2] -KONFIG. 2 - -[FEC_CF3] -KONFIG. 3 - -[FEC_CF4] -KONFIG. 4 - -[FEC_CDP] -TYP: - -[FEC_ONF] -ZU FUSS - -[FEC_INC] -IM FAHRZEUG - -[FEC_VIB] -VIBRATION: - -[FEC_ILU] -KAMERA INVERTIEREN: - -[FEC_SWP] -SPIELER-BEWEGUNG: - -[FEC_AS] -Analog-Pad - -[FEC_DP] -Richtungstasten - -[FEA_SFX] -LAUTSTÄRKE SFX: - -[FEA_OUT] -Tonausgabe: - -[FEA_ST] -Stereo - -[FEA_MNO] -Mono - -[FEA_CTD] -Achtung! Für dieses Feature muss DTS-kompatible Hardware angeschlossen sein. Weiter? - -[FEA_DTS] -DTS - -[FEA_RSS] -RADIOSENDER: - -[FEA_NON] -Radio aus - -[FED_BRI] -HELLIGKEIT: - -[FED_TRA] -UNSCHÄRFE-FX: +[FE_MLG] +KARTENLEGENDE [FED_RDR] -RADAR-MODUS: +RADAR-MODUS [FED_HUD] -HUD-MODUS: +HUD-MODUS -[FED_RDM] -KARTE & SYMBOLE +[FED_RDL] +GROSS [FED_RDB] NUR SYMBOLE -[FEL_ENG] -ENGLISCH - -[FEL_FRE] -FRANZÖSISCH - -[FEL_GER] -DEUTSCH - -[FEL_ITA] -ITALIENISCH - -[FEL_SPA] -SPANISCH - -[FED_DBG] -Menu Debug - -[FED_RID] -Reload IDE - -[FED_RIP] -Reload IPL - -[FED_PAH] -Parse Heap - -[FED_RCD] -CCullZones::RecalculateCullZoneData - -[FED_DFL] -CTheScripts::DbgFlag - -[FED_DLS] -Big White Debug Light Switched - -[FED_SPR] -Show Ped Road Groups - -[FED_SCR] -Show Car Road Grups - -[FED_SCZ] -Show Cull Zones - -[FED_DSR] -Debug Streaming Requests - -[FED_SCP] -gbShowCollisionPolys - -[FEM_MCM] -Memory Card Menu - -[FEM_RMC] -Register MemCard One - -[FEM_TFM] -Test Format MemCard One - -[FEM_TUM] -Test UnFormat MemCard One - -[FEM_CRD] -Create Root Dir - -[FEM_CLI] -Create And Load Icons - -[FEM_FFF] -Fill First File with Guff - -[FEM_SOG] -Save Only The Game - -[FEM_CES] -Check Every 0kB4 Save - -[FEM_STG] -Das Spiel speichern - -[FEM_STS] -Save The Game under GTA3 name - -[FEM_CPD] -Create copy protected mag directory - -[FEM_MC2] -Memory Card Menu 2 - -[FEM_TS] -Test Save: - -[FEM_TL] -Test Load: - -[FEM_TD] -Test Delete: - -[FEM_SL0] -Spielstand 0 - -[FEM_SL1] -Spielstand 1 nicht vorhanden - -[FEM_SL2] -Spielstand 2 nicht vorhanden - -[FEM_SL3] -Spielstand 3 nicht vorhanden - -[FEM_SL4] -Spielstand 4 nicht vorhanden - -[FEM_SL5] -Spielstand 5 nicht vorhanden - -[FEM_SL6] -Spielstand 6 nicht vorhanden - -[FEM_SL7] -Spielstand 7 nicht vorhanden - -[FES_LOA] -SPIEL LADEN - -[ST_TIME] -Spielzeit bei diesem Spiel - -[ST_OVTI] -Gesamtspielzeit - -[NUMSHV] -Wie oft gespeichert - -[PL_STAT] -Spielerstatistiken - -[PE_WAST] -Von dir abservierte Personen - -[PE_WSOT] -Von anderen abservierte Personen - -[CAR_EXP] -Explodierte Autos - -[BOA_EXP] -Zerstörte Boote - -[TM_BUST] -Zahl deiner Verhaftungen - -[M_WASTE] -Männliche Zivilisten - -[F_WASTE] -Weibliche Zivilisten - -[PIG_WST] -Cops - -[GNG_WST] -Gang-Mitglieder - -[MED_WST] -Sanitäter - -[FIRE_WS] -Feuerwehrmänner - -[DED_CRI] -Kriminelle - -[DED_DED] -Schnorrer - -[DED_HOK] -Girls - -[HEL_DST] -Zerstörte Helikopter - -[PER_COM] -Absolviert (in Prozent) - -[KGS_EXP] -Sprengstoffverbrauch in kg - -[ACCURA] -Treffsicherheit - -[ELBURRO] -Beste Turismo-Zeit in Sekunden - -[CAR_CRU] -Verschrottete Fahrzeuge - -[HED_EX] -Köpfe - -[ST_HEAD] -Entscheidende Treffer - -[BUL_FIR] -Abgefeuerte Kugeln - -[BUL_HIT] -Kugeln, die trafen - -[SPRAYIN] -Anzahl Lackierungen - -[TM_DED] -Krankenhausbesuche - -[ST_GANG] -Unbeliebteste Gang - -[ST_GNG1] -Leones - -[ST_GNG2] -Triaden - -[ST_GNG3] -Diablos - -[ST_GNG4] -Yakuza - -[ST_GNG5] -Yardies - -[ST_GNG6] -Kolumbianer - -[ST_GNG7] -Hoods - -[ST_GNG8] -Forellis - -[ST_GNG9] -Sindaccos - -[DAYSPS] -Im Spiel verstrichene Tage - -[MMRAIN] -Regenfälle in mm - -[ST_STAR] -Anzahl angehäufter Fahndungssterne - -[ST_STGN] -Anzahl losgewordener Fahndungssterne - -[TOT_DIS] -Zurückgelegte Entfernung in Meilen - -[TOTDISM] -Zurückgelegte Entfernung in Metern - -[DISTBIK] -Mit Motorrad zurückgel. Meilen - -[DISTBIM] -Mit Motorrad zurückgelegte Meter - -[DISTHEL] -Mit Helikopter zurückgel. Meilen - -[DISTHEM] -Mit Helikopter zurückgel. Meter - -[DISTBOA] -Mit Boot zurückgel. Meilen - -[DISTBOM] -Mit Boot zurückgelegte Meter - -[ST_WHEE] -Längste 'Wheelie' Zeit (Sek.) - -[ST_STOP] -Längste 'Stoppie' Zeit (Sek.) - -[ST_2WHE] -Längste Zeit auf zwei Rädern (Sek.) - -[ST_WHED] -Längste 'Wheelie' Distanz (m) - -[ST_STOD] -Längste 'Stoppie' Distanz (m) - -[ST_2WHD] -Längste Distanz auf zwei Rädern (m) - -[ST_FAPD] -Längster 'Flug' nach Motorradsturz (m) +[FED_HUF] +INFOS EIN- & AUSBLENDEN [FEST_HV] Höchstes Bürgerwehr-Missions-Level -[FIRELVL] -Höchstes Feuerwehr-Missions-Level +[BRIBE1] +Du hast soeben Polizei-Bestechungsgeld aufgenommen, dein Fahndungslevel verringert sich damit um einen Stern. -[ST_STOR] -Stores Knocked Off +[CLOHELP] +Saubere Klamotten!! -[ST_ASSI] -Erfolgreich ausgeführte Attentate +[SUNSHIN] +Sunshine Autos -[ST_FTIM] -Flugstunden +[CHERRYP] +Cherry Popper Eiscreme -[ST_FASH] -Fashion Budget +[KAUFCAB] +Kaufman-Taxis -[ST_WEAP] -Waffenbudget +[BOATYAR] +Die Bootswerft -[ST_PROP] -Budget für Immobilien +[WANT_L] +Dein Fahndungslevel ist bis auf weiteres aufgehoben. Solltest du ein Verbrechen begehen, wãhrend die Sterne blinken, wird dein volles Fahndungslevel wieder aktiv. -[ST_DAMA] -Gesamtwert zerstörter Sachen +[PICK1] +Kugelsichere Weste im Ocean View Hotel angeliefert! -[ST_AUTO] -Budget für Reparaturen und Lackierung +[HOTRNG] +HOTRING -[MXCARD] -Weitester Irrsinns-Sprung (in Fuß) +[BLODRNG] +CHAOS-DERBY -[MXCARJ] -Höchster Irrsinns-Sprung (in Fuß) +[DIRTRNG] +DIRTRING -[MXCARDM] -Weitester Irrsinns-Sprung (m) +[FEC_ABR] +Beschleunigen, Bremsen oder Zurücksetzen -[MXCARJM] -Höchster Irrsinns-Sprung (m) +[FEI_BTU] +; = - -[MXFLIP] -Max. Anzahl Saltos bei Irrsinns-Sprung +[FEI_SCR] +Scrollen -[MXJUMP] -Max. Drehung bei Irrsinns-Sprung +[SKUMBUY] +Skumole Shack gekauft: $ ~1~ -[FST_MFR] -Bevorzugter Radiosender +[SKUM_L] +Drücke die ~h~L1-Taste~w~, um Skumole Shack zu kaufen. Preis: $~1~ -[FST_LFR] -Unbeliebtester Radiosender +[SKUM_T] +Drücke die ~t~"-Taste~w~, um Skumole Shack zu kaufen. Preis: $~1~ -[BSTSTU] -Bester Irrsinns-Stunt bisher: +[SKUM_C] +Drücke die ~o~|-Taste~w~, um Skumole Shack zu kaufen. Preis: $~1~ -[INSTUN] -Irrsinns-Stunt +[LG_35] +Ziel -[PRINST] -Super Irrsinns-Stunt +[IN_VEH] +~g~Hey! Zurück ins Auto!! -[DBINST] -Doppelter Irrsinns-Stunt +[HEY] +~g~Keine Alleingãnge. Halt die Gang beisammen! -[DBPINS] -Super-Doppel-Irrsinns-Stunt +[HELP3] +Du kannst nur kurze Zeit sprinten, ohne müde zu werden. -[TRINST] -Dreifacher Irrsinns-Stunt +[HELP4_D] +Drücke den~h~ rechten Analog-Stick nach oben, um zu ~h~beschleunigen. -[PRTRST] -Super-Dreifach-Irrsinns-Stunt +[HELP5_D] +Zieh den ~h~rechten Analog-Stick~w~ zurück, um zu ~h~bremsen~w~, oder um ~h~zurückzusetzen~w~, wenn das Fahrzeug steht. -[QUINST] -Vierfacher Irrsinns-Stunt +[HELP7_A] +Halte die~h~ ~k~~PED_LOCK_TARGET~ ~w~gedrückt, um mit dem Prãzisionsgewehr zu zielen. -[PQUINS] -Super-Vierfach-Irrsinns-Stunt +[HELP7_D] +Halte die~h~ ~k~~PED_LOCK_TARGET~ ~w~gedrückt, um mit dem Prãzisionsgewehr zu zielen. -[NOSTUC] -Bisher keine Irrsinns-Stunts geschafft +[HELP10] +Dieser Stern zeigt an, dass du von der Polizei gesucht wirst. -[NOUNIF] -Monster-Stunts geschafft +[HELP11] +Je mehr Sterne, desto dringender wirst du gesucht. -[NOUNGM] -Monster-Stunts insgesamt +[HELP13] +Manchmal musst du vielleicht Wege finden, die das Radar nicht zeigt. -[NMISON] -Begonnene Missionen +[TIMER] +Diese Mission hat ein Zeitlimit. Du musst sie beendet haben, bevor die Zeit um ist. -[NMMISP] -Erfüllte Missionen +[HORN] +~g~Drück auf die Hupe. -[PASDRO] -Beförderte Fahrgäste +[NOMONEY] +~g~Du brauchst mehr Cash! -[MONTAX] -Mit Taxi verdientes Geld +[REWARD] +BELOHNUNG $~1~ -[CARSLD] -Verkaufte Autos +[M_FAIL] +MISSION FEHLGESCHLAGEN! -[MONCAR] -Einnahmen aus Autoverkäufen +[M_PASS] +MISSION ERFÜLLT! $~1~ -[BIKESLD] -Verkaufte Motorräder +[DEAD] +AUSSER GEFECHT! -[MONBIKE] -Einnahmen aus Motorradverkäufen +[BUSTED] +VERHAFTET! -[CARSEXP] -Für Love Media gefundene Autos +[WEATHE1] +WETTER AUF SONNIG UMSTELLEN -[SLTVLVL] -Höchstes Slash-TV Missions-Level +[WEATHE2] +WETTER AUF SEHR SONNIG UMSTELLEN -[SLTVKIL] -Bei Slash-TV erledigte Gegner +[WEATHE3] +WETTER AUF BEWÖLKT UMSTELLEN -[MONTRS] -Einnahmen aus Müllabfuhr +[WEATHE4] +WETTER AUF REGNERISCH UMSTELLEN -[HTMKLD] -Killer erledigt +[WEATHE5] +WETTER AUF NEBLIG UMSTELLEN -[GDAMSP] -Anzahl absolvierter Avenging Angel-Missionen +[WEATHE6] +WETTER NORMAL -[HGAJD] -Opfer bei Avenging Angel-Missionen +[NUMBER] +~1~ -[BNDRACE] -RC-Rennen +[LOADCAR] +LADE FAHRZEUG... (ABBRECHEN MIT L1) -[FSTTRT] -Höchste Restzeit bei 'Triaden-Trial' +[CARSOFF] +Deaktivierte Fahrzeuge. -[HGHTRC] -Höchste Einnahmen bei 'Triaden-Trial' +[CARS_ON] +Aktivierte Fahrzeuge. -[FSTHRT] -Bestzeit bei Helikopter-Rennen +[TEXTXYZ] +Schreibe Koordinaten in Datei... -[BHLPOS] -Bestplatzierung bei Helikopter-Rennen +[CHEATON] +Cheat Modus AN -[TMSOUT] -Kleidungswechsel +[CHEATOF] +Cheat Modus AUS -[BSRPS0] -'Low Rider Rumble' +[IMPORT1] +Geh nach draußen und warte auf dein Fahrzeug. -[BSRPS1] -'Deimos Dash' +[PAGEB11] +Flammenwerfer in Versteck angeliefert. -[BSRPS2] -'Wi-Cheetah Run' +[WANT_A] +Verhaftet wirst du nur, wenn die Polizei nach dir ~h~fahndet. -[BSRPS3] -'Rotlicht-Racing' +[WANT_B] +Dein ~h~Fahndungslevel~w~ wird durch die Reihe von Sternen oben rechts auf dem Bildschirm dargestellt. -[BSRPS4] -'Torrington TT' +[WANT_C] +Du hast jetzt einen ~h~Fahndungslevel~w~ von eins... -[BSRPS5] -'Gangsta GP' +[WANT_D] +zwei... -[DBIKE0] -Kurs 1 +[WANT_E] +drei... -[DBIKE1] -Kurs 2 +[WANT_F] +Steigt dein ~h~Fahndungslevel~w~, wirst du von besser ausgebildeten Polizisten gejagt. -[DBIKE2] -Kurs 3 +[WANT_G] +Wirst du ~h~verhaftet~w~, wirst du zum nãchsten Polizeirevier gebracht. -[DBIKE3] -Kurs 4 +[WANT_H] +Die Cops werden dir alle Waffen abnehmen und kassieren ein wenig Bestechungsgeld von dir. -[DBIKE4] -Kurs 5 +[WANT_I] +Wenn dir das auf einer Mission passiert, ist die Mission fehlgeschlagen. -[DBIKE5] -Kurs 6 +[WANT_J] +Im Verlauf des Spiels wirst du Möglichkeiten entdecken, deinen Fahndungslevel zu reduzieren. -[DBIKE6] -Kurs 7 +[WANT_K] +Wenn du in einem Wagen sitzt, werden ~h~LACKIEREREIEN~w~ den Fahndungslevel ~h~annullieren. -[DBIKE7] -Kurs 8 +[HEAL_B] +Wenn du ~h~'außer Gefecht'~w~ bist, wirst du zur nãchsten Klinik gebracht. -[DBIKE8] -Kurs 9 +[HEAL_C] +Du verlierst alle Waffen, und die Ãrzte knöpfen dir ein wenig Cash für die Behandlung ab. -[DBIKE9] -Kurs 10 +[HEAL_E] +Je lãnger du spielst, desto mehr Wege wirst du finden, dich selbst zu verarzten oder zu schützen. -[DBIKEHE] -Krasses Gelände +[SAVE1] +Stell dich in die Markierung. So kannst du dein ~h~Spiel speichern~w~. Wãhrend einer Mission kannst du nicht speichern. -[DBIKEBP] -Beste Platzierung +[SAVE2] +Jedes Fahrzeug, das in dieser Garage abgestellt wird, wird für dich aufbewahrt, wenn das Spiel gespeichert wird. -[DBIKEFL] -Schnellste Runde +[AMMU] +Betritt den Ammu-Nation, um eine Waffe zu kaufen. -[DBIKEFT] -Bestzeit +[R_TIME] +ZEIT: -[ST_PHOT] -Geknipste Fotos +[PROP_1] +Du hast nicht genug Cash für dieses Objekt. -[ST_PIZZ] -Ausgelieferte Pizzas +[PROP_2] +Wãhrend einer Mission kannst du keine Objekte kaufen. -[ST_NOOD] -Ausgelieferte Nudelsnacks +[IND_ZON] +Vice City Beach -[MO_TOUR] -Einnahmen durch Touristen +[COM_ZON] +Vice City Mainland -[TA_TOUR] -Zu Sehenswürdigkeiten geführte Touristen +[BEACH1] +Ocean Beach -[SC_SCRA] -High-Score bei 'Schrottplatz-Challenge' +[BEACH2] +Washington Beach -[SC_9MM] -High-Score bei 'Jagdszenen in 9mm' +[BEACH3] +Vice Point -[SC_SCOO] -High-Score bei 'Scooter Shooter' +[GOLFC] +Leaf Links Golfclub -[DAYPLC] -Tagesetat der Polizei +[STARI] +Starfish Island -[SEAGULL] -Abgeschossene Möwen +[DOCKS] +Viceport -[CRIMRA] -RANG +[HAVANA] +Little Havana + +[HAITI] +Little Haiti + +[PORNI] +Prawn Island + +[DTOWN] +Downtown + +[VICE_C] +Vice City + +[A_PORT] +Escobar Inter. Airport + +[JUNKY] +Schrottplatz + +[PISTOL] +Pistole + +[PYTHON] +.357 + +[UZI] +Uz-1 + +[TEC9] +Tec 9 + +[M4] +M4 + +[INGRAM] +Mac + +[MP5] +MP + +[RUGER] +Kruger + +[SNIPE] +Prãzisionsgewehr + +[GRENADE] +Granaten + +[SHOTGN1] +Schrotflinte + +[SHOTGN2] +S.P.A.S. 12 + +[SHOTGN3] +Abgesãgte Schrotflinte + +[ARMOUR] +Kugelsichere Weste + +[LASER] +.308 Prãzisionsgewehr + +[BASEBAT] +Baseballschlãger + +[HAMMER] +Hammer + +[SCREWD] +Schraubenzieher + +[CLEVER] +Fleischerbeil + +[MACHETE] +Machete + +[KNIFE] +Messer + +[KATANA] +Katana + +[CHAINSA] +Kettensãge + +[G_COST] +$~1~ + +[CAR_1] +Krankenwagen + +[MALIBU] +Malibu Club + +[MANSION] +Diaz' Haus + +[TMANS] +Vercetti Estate + +[STRIP] +Pole Position Club + +[MALL1] +North Point Einkaufszentrum + +[BANKINT] +El Banco Corrupto Grande + +[RANGE] +Schießstand + +[POL_HQ] +Vice City Polizeihauptquartier + +[INT_B] +Ein alter Freund + +[INTB_1] +~g~Begib dich in die Anwaltskanzlei. + +[LAW_1] +Die Party + +[LAW_2] +Dunkle Gassen + +[LAW_3] +Die Geschworenen + +[LAW_4] +Aufruhr + +[COL_1] +Der Verrãter + +[COL_2] +Kugelhagel im Einkaufszentrum + +[COL_3] +Die Schutzengel + +[COL_4] +Zu Befehl, Sir! + +[COL_5] +Alle Mann an Deck! + +[COK_1] +Die Jagd + +[COK_2] +Phnom Penh '86 + +[COK_3] +Das schnellste Boot + +[COK_4] +Angebot & Nachfrage + +[KENT_1] +Die Befreiungsaktion + +[ASS_1] +Pizza Mortale + +[BUD_1] +Fette Beute + +[BUD_2] +Zoff in der Bar + +[BUD_3] +Cop-Land + +[CAP_1] +Der Eintreiber + +[FIN_1] +Freunde und andere Feinde + +[BANK_1] +Kein Entkommen? + +[BANK_2] +Der Scharfschütze + +[BANK_3] +Der Fahrer + +[BANK_4] +Der Coup + +[CNT_1] +Der Singvogel + +[CNT_2] +Der Kurier + +[PORN_1] +Alle meine Pferdchen + +[PORN_2] +Der Dildo-Jet + +[PORN_3] +Ein Mann namens Martha + +[PORN_4] +Heiße Lightshow + +[TAX_1] +Kaufman-Taxis + +[TAXI_1] +V.I.P + +[TAXI_2] +Konkurrentenjagd + +[TAXI_3] +Das Taxi-Inferno + +[ICE_1] +Eiscreme und andere Leckereien + +[TEX_1] +Schlagende Argumente + +[TEX_2] +Das Begrãbnis + +[TEX_3] +Schutt und Asche + +[PHIL_1] +Der Waffenschieber + +[PHIL_2] +TNT-Whiskey + +[BIKE_1] +Wheels of Steel + +[BIKE_2] +Chaos-City + +[BIKE_3] +Big Bakers Bike + +[ROCK_1] +Love Juice + +[ROCK_2] +Der Psychokiller + +[ROCK_3] +Die PR-Tour + +[ROCK_4] +Love Fist! + +[HAT_1] +Mysteriöses Pulver + +[HAT_2] +Fliegende Bomben + +[HAT_3] +Schmutzige Methoden + +[CUB_1] +Stunt-Boot-Action + +[CUB_2] +Kanonenfutter + +[CUB_3] +Die Seeschlacht + +[CUB_4] +Trojanisches Voodoo + +[JOB_1] +Der Pizza-Lieferant + +[JOB_2] +Ein bedauerlicher Unfall + +[JOB_3] +Die rasende Schrottfabrik + +[JOB_4] +Trouble am Check-In + +[JOB_5] +Gefeuert! + +[ANSWER] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um den Anruf auf deinem Handy entgegenzunehmen. + +[MOB_01A] +Hey, mein Alter! Paul hier. Ich hãtte da vielleicht was für dich, aber das müssen wir unter vier Augen besprechen. + +[MOB_01B] +Ich bin im Malibu und lass es mir gutgehen. + +[MOB_01C] +Ich denke, ich hab einen gut bei dir, wenn du das hörst, Kumpel. Bis gleich. + +[MOB_02A] +Hey! Hallo, Tommy? Tommy! + +[MOB_02B] +In der Druckerei ist irgendwas im Busch. Fahr mal rüber und kümmere dich darum. + +[MOB_02C] +Es scheint ziemlichen Ãrger zu geben. Ich muss Schluss machen. + +[MOB_03A] +Mr. Vercetti? Ich habe hier einen unterschriebenen Wisch, + +[MOB_03B] +der besagt, dass Sie alle Schulden von 'BJ's Autos' übernehmen. + +[MOB_03C] +Nach BJ's plötzlichem Verschwinden hab ich keine andere Wahl, + +[MOB_03D] +als Sie für seine Verbindlichkeiten zur Rechenschaft zu ziehen. + +[MOB_03E] +Bis Sie die volle Summe beglichen haben, + +[MOB_03F] +sollte Ihnen klar sein, dass Vice City ein heißes Pflaster für Sie ist. + +[MOB_04A] +Wie geht's, mein Alter? + +[MOB_04B] +Ich hab vergessen, dir zu sagen, dass wir für das Konzert noch ein paar Ordner brauchen. + +[MOB_04C] +Da gibt's so 'ne Biker-Gang, die wãr super für die Publicity. + +[MOB_04D] +Wenn du mir das arrangierst, besorg ich dir 'n VIP-Pass für den Abend. Ok? + +[MOB_05A] +Gut gemacht, Tommy. Schön, den Ofen wiederzuhaben. + +[MOB_05B] +Sag Mr. Kent Paul, dass er seine Ordner für das Konzert kriegt. + +[MOB_05C] +Du hast mein Wort darauf. + +[MOB_05D] +Halt die Ohren steif. + +[MOB_06A] +Tommy, man hört so allerlei über dich, mein Junge. + +[MOB_06B] +Wenn du willst, kocht Tante Poulet dir ein leckeres Süppchen, dann kannst du mal abschalten, hm? + +[MOB_06C] +Komm doch die Tage mal bei mir vorbei, ok, Tommy? + +[MOB_08A] +Tommy, ich dachte mir, du könntest meinen Rat als Geschãftsmann brauchen. + +[MOB_08B] +Wenn du ein Unternehmen am Laufen hast, musst du einmal pro Woche die Einnahmen kassieren gehen. + +[MOB_08C] +Sonst werden deine Leute übermütig und versuchen, in die eigene Tasche zu wirtschaften. Ok? + +[MOB_08D] +Hey, ich weiß selbst, wie man so was macht, Ken, ok? + +[MOB_08E] +Ok, ok. Ich weiß ja, dass du Bescheid weißt. + +[MOB_08F] +Ich meinte ja nur, damit du weißt, dass ich im Zweifelsfall auch Bescheid weiß. + +[MOB_08G] +Nur für alle Fãlle, mein Alter! + +[MOB_08H] +Wenn du meinst, Ken... + +[MOB_09A] +Hey, Leo! Ich hab Arbeit für dich! + +[MOB_09B] +Hier ist nicht Leo. + +[MOB_09C] +Hey, wenn Leo erfãhrt, dass du mit seinem Handy telefonierst, bist du fãllig. + +[MOB_09E] +Du hast Leo erledigt? Du musst Mumm haben - willst du für mich arbeiten? + +[MOB_09F] +Komm ins Café von meinem Vater in Little Havana, dann können wir reden. + +[MOB_10A] +Tommy! Du musst mir einen Gefallen tun. + +[MOB_10B] +Steve! Was machen die Dreharbeiten? + +[MOB_10C] +Gut. Ich- ãh, WIR brauchen noch eine Autoverfolgungsjagd, aber unser Budget ist knapp. + +[MOB_10D] +Ich hab in der Stadt verteilt ein paar Karren stehen. Du weißt, was zu tun ist. + +[MOB_10E] +Ok, Steve, ich halt die Augen offen. Bis dann. + +[MOB_11A] +Hallo, Söhnchen. Ich wollte dir kurz 'nen kleinen Tipp geben. + +[MOB_11B] +Hi, Avery. Worum geht's denn? + +[MOB_11C] +Man kann in dieser Stadt viel Geld machen, wenn man die richtigen Immobilien hat. Klingelt's? + +[MOB_11D] +Ich denke schon. + +[MOB_11E] +Also, halt die Augen offen, dann könnte sich dir die ideale Gelegenheit bieten. Bis bald. + +[MOB_11F] +Ciao, Avery. + +[MOB12_A] +Hey, Tommy. Avery hier. Hör mal, ich hab gerade alle Hãnde voll zu tun, + +[MOB12_B] +und ein Bevollmãchtigter von mir müsste zu den Gator Keys eskortiert werden. + +[MOB12_C] +Ich will da ein Stück Land kaufen und schick ihn hin, um den Deal abzuschließen. + +[MOB12_D] +Könntest du dafür sorgen, dass er gut dort ankommt? + +[MOB12_E] +Mach ich doch glatt, Avery. Wo soll ich ihn abholen? + +[MOB12_F] +Er hat gerade noch an der Baustelle zu tun. Hol ihn doch am besten dort ab. + +[MOB12_G] +Kein Problem. Bis dann, Avery. + +[MOB13_A] +Vercetti? VERCETTI!! Verdammt, Mann, Sie müssen mir helfen! + +[MOB13_B] +Mr. Moffat? Wie geht's der Familie? + +[MOB13_C] +Zur Hölle mit Ihnen, hören Sie! + +[MOB13_D] +Tja, war nett, mit Ihnen zu plaudern... + +[MOB13_E] +WARTEN SIE! Vercetti - Tommy, kann ich Tommy zu Ihnen sagen? + +[MOB13_F] +Wir sind beide Geschãftsleute. Sie erkennen doch ein gutes Geschãft sofort, oder? + +[MOB13_G] +Ich hab keine Zeit für Palaver. Kommen Sie zum Punkt. + +[MOB13_H] +GELD. Geld ist der Punkt, verdammt! + +[MOB13_I] +Ich bin den Kerlen nochmal entwischt, aber sie sitzen mir im Nacken. Die machen sich einen Spaß daraus! + +[MOB13_J] +Ich bin in einer Telefonzelle, irgendwo in diesem verdammten Loch. + +[MOB13_K] +Holen Sie mich hier raus, bevor sie mich schnappen und-... oh Gott... + +[MOB13_L] +Ich bin leider ausgebucht bis-... + +[MOB13_M] +Nein! Verarschen Sie mich nicht, haben Sie Erbarmen! Kein Mensch hat das verdient! + +[MOB13_N] +Ich flehe Sie an, Tommy, auf den Knien flehe ich Sie an! Bitte... + +[MOB13_O] +Naja, ich könnte 'nen kurzen Abstecher machen. Vielleicht finde ich Sie... + +[MOB13_P] +Oh Gott, sie kommen! Um Himmels Willen, beeilen Sie sich! + +[MOB_14A] +Hey, Tommy, hör zu, das wird dir gefallen. + +[MOB_14B] +Ein Vögelchen hat mir gesteckt, dass das Vice City-Spezialkommando in einem renommierten Finanzinstitut ein Schließfach hat. + +[MOB_14C] +Da sind die Schmiergelder drin, die sie über die Jahre kassiert haben. + +[MOB_14D] +So 'ne Art Altersversorgung für die ganze Mannschaft. + +[MOB_14E] +Sollte dir diese Info je helfen, dir was von dem Kuchen anzueignen, + +[MOB_14F] +würdest du dich sicher verpflichtet fühlen, mir 'n Stück davon abzugeben? + +[MOB_14G] +Ich werd dich nicht vergessen. Danke, Kent. + +[MOB_14H] +'Paul'heiße ich, Scherzkeks. Ich KOMME aus Kent, Nãhe London. + +[MOB_14I] +Mein geographisches Wissen über England ist eben nicht mehr, was es war. + +[MOB15_A] +Tommy, Alter. Hier ist Paul aus Kent. + +[MOB15_B] +Unten im Malibu, da sind ein paar Keulen, die haben ein Auge auf dich geworfen. + +[MOB15_C] +Ich verstehe nur Bahnhof. + +[MOB15_D] +Hasen. Miezen. Na, Puppen, eben. Coole Babes, keine Professionellen, oder so. + +[MOB15_E] +Du solltest mal kommen und sie dir ansehen. + +[MOB16_A] +Tommy, hier Paul. Wie geht's, mein Freund? + +[MOB16_B] +Was willst du, Paul? Ich brauch keine getürkten Designer-Klamotten. + +[MOB16_C] +Sehr witzig. Du weißt, dass ich mit getürkter Ware nichts am Hut habe. + +[MOB16_D] +Wollte nur hören, ob ich nicht 'ne Rolle in einem von deinen Filmen kriegen könnte. + +[MOB16_E] +In England habe ich viel einschlãgiges Zeug gedreht. + +[MOB16_F] +Ich hab mehr zu bieten als du, mein Alter. + +[MOB16_G] +Paul, danke für das Angebot. Ich komm auf dich zurück. + +[MOB16_H] +Lass mich nicht hãngen. Denk dran, was ich alles für dich getan habe. + +[MOB16_I] +Das versuch ich ja grade zu vergessen. + +[MOB17_A] +Tommy Vercetti. Wie geht's, großer Meister? + +[MOB17_B] +Man hört so einiges über dich. Bist jetzt 'ne große Nummer in der Stadt, hã? + +[MOB17_C] +Paul, du bist betrunken. + +[MOB17_D] +Nein, du Trottel, ich bin nicht betrunken. + +[MOB17_E] +Hab mir nur ein paar Ladungen Stoff gegeben, war seit ein paar Tagen nicht im Bett. + +[MOB17_F] +Und du brauchst mich nicht dumm anzureden. + +[MOB17_G] +Ich bin nicht irgendwer. Wer hat dir denn in dieser Stadt den Weg geebnet? Ich! + +[MOB17_H] +Tatsãchlich? + +[MOB17_I] +Tatsãchlich! + +[MOB17_J] +Paul, reg dich ab. Ich hatte viel zu tun. Sei kein Idiot. + +[MOB17_K] +Ich bin kein Idiot. Das haben sie schon im Jugendknast gesagt. + +[MOB17_L] +Wenn du Ãrger haben willst, Freundchen, den kannst du haben! + +[MOB17_M] +Tommy, bitte! Du warst meine große Hoffnung. Bitte, mach dich nicht lustig über mich! + +[MOB17_N] +Paul, schlaf mal 'ne Runde. Im Ernst. + +[MOB18_A] +Tommy, hier Paul. Wie geht's, Alter? Hey, ich dachte mir, das musst du hören... + +[MOB18_B] +Echt der Hammer. Du glaubst nicht, was mir für 'ne Puppe über den Weg gelaufen ist. + +[MOB18_C] +'ne Bordsteinschwalbe, oder sowas. Unten in Little Havana. + +[MOB18_D] +Sagt, sie heißt Mercedes oder so ãhnlich. Wahnsinn, Alter. Die Puppe musst du dir geben. + +[MOB18_E] +Da würde 'nen Toter Hormonkoller kriegen. Sie sagt, ich wãr der beste, den sie je hatte. + +[MOB18_F] +Halt die Augen nach ihr offen. Bis dann. + +[MOB19_A] +Tommy, hier KP - Kent Paul. Ich hab lãuten hören, dass jemand dich leimen will. + +[MOB19_B] +Also, sei wachsam, mein Freund. Und kein Sterbenswörtchen, dass du das von mir weißt. + +[MOB_20A] +Hallo, Tommy. Hier Paul. Ich höre, dass du ein paar Leuten auf den Schlips getreten bist. + +[MOB_20B] +Irgendjemand sieht es anscheinend nicht gern, dass du auf einmal den großen Zampano spielst. + +[MOB_20C] +Also, sag nicht, ich hãtte dich nicht gewarnt. Es rãcht sich, wenn man's übertreibt. + +[MOB_20D] +Jedenfalls ist angeblich ein Kopfgeld auf dich ausgesetzt und es ist schon jemand hinter dir her. + +[MOB_20E] +Also pass auf dich auf. Und vergiss mich nicht ganz. + +[MOB71_A] +Tommy, Thomas, hier Cortez. Wie geht's? + +[MOB71_B] +Es bleibt spannend. Und selbst? + +[MOB71_C] +Ein ewiger Kampf, Tommy. Entschuldigen Sie die schlechte Verbindung, wir hatten wieder einen Putschversuch. + +[MOB71_D] +Es gibt keine anspruchsvollere Geliebte als das Volk. + +[MOB71_E] +Seit ich aus Vice City zurück bin, gab's drei Revolutionen und vier Staatsstreiche. + +[MOB71_F] +Zum Glück bin ich jedesmal befördert worden. + +[MOB71_G] +Ich wollte Sie wegen Mercedes etwas fragen. + +[MOB71_H] +OK. Was ist mit ihr? + +[MOB71_I] +Ich hör Geschichten über sie und weiß nicht, was ich davon halten soll. + +[MOB71_J] +Vielleicht wollen mich alle demütigen. + +[MOB71_K] +Vielleicht wird sie übermütig, seit ich weg musste, sagen Sie mir nur eins, Tommy. Ist das wahr?. + +[MOB71_L] +sagen Sie mir nur eins, Tommy. Ist das wahr? + +[MOB71_M] +Ist was wahr? + +[MOB71_N] +Die Geschichten, die ich höre? Will sie wirklich Anwãltin werden? + +[MOB71_O] +Welche Schande, Tommy. Wir Cortez sind eine stolze Familie und würden nie einer Tochter erlauben, Anwãltin zu werden. + +[MOB71_P] +Sagen Sie mir, dass es nicht wahr ist. Das ertrage ich nicht. + +[MOB71_Q] +Colonel, ich versichere Ihnen, dass Mercedes niemals Anwãltin wird. Keine Angst. + +[MOB71_R] +Danke, Tommy - das wãre zu viel der Schande. Sie ist eine Dame, keine Schmarotzerin. + +[MOB71_S] +Ich weiß, Colonel + +[MOB71_T] +Tommy, Sie müssen jetzt entschuldigen, gerade kommt der neue Innenminister. + +[MOB71_U] +Ich hab seinen Vater vor Jahren bei einem Putschversuch erledigt. Ich muss mich gut mit ihm stellen. Wiederhören. + +[MOB22_A] +Tommy, Sie erweisen sich als sehr nützlich, mein Freund. + +[MOB22_B] +Danke, Cortez. Was ist mit meinem Deal? + +[MOB22_C] +Tommy, ich mühe mich ohne Unterlass, um diesem Sumpf von elenden Lügen und Intrigen auf den Grund zu gehen. + +[MOB22_D] +Sie haben mein Wort darauf. Einstweilen möchte ich + +[MOB22_E] +Ihnen den Dank meines Volkes aussprechen, für das Sie so viel getan haben. + +[MOB_25A] +Tommy, hier Cortez. Die Franzosen machen mir Ãrger. Und wie. + +[MOB_25B] +Verdammte Heuchler! Jahrhundertelang beuten sie arme Lãnder aus und mich schimpfen sie einen Dieb! + +[MOB_25C] +Ich brauche dingend Ihre Hilfe. + +[MOB_25D] +Beeilen Sie sich. Ich brauche Sie. Ich hasse die Franzosen. + +[MOB_26A] +Hallo, Tommy? + +[MOB_26B] +Ja? + +[MOB_26C] +Baker hier. Wollte dir nur sagen, der Gig hat Spaß gemacht. + +[MOB_26D] +Danke, auch im Namen der Gang. Eins sollst du wissen: + +[MOB_26E] +Du hast unsern Respekt. Halt die Nase im Wind, Junge. + +[MOB_29A] +Hallo? Spreche ich mit Mr. Tommy Vercetti? + +[MOB_29B] +Ja. + +[MOB_29C] +Ich hab mir sagen lassen, du wãrst der richtige Mann, wenn man Kroppzeug am Hals hat. + +[MOB_29D] +Vielleicht... + +[MOB_29E] +Tja, ich hab 'ne regelrechte Plage am Hals. Haitianer, überall. + +[MOB_29F] +Mein Name ist Umberto Robina und es wãr mir recht, wenn du baldmöglichst ins Café Robina kãmst. + +[MOB_29G] +Diesmal haben's die Haitianer nãmlich zu weit getrieben. + +[MOB_29H] +Test + +[MOB_30A] +Tommy, hier Umberto Robina. + +[MOB_30B] +Wie lãuft das Café? + +[MOB_30C] +Oh, bestens. Sagenhaft, Tommy, sagenhaft. Keine Memmen, Tommy, nur echte Mãnner. Und wunderschöne Frauen! + +[MOB_30D] +Ich wollte nur sagen, für mich und Paps bist du jetzt einer von uns. Ein Kubaner. + +[MOB_30E] +Du bist ein ganzer Kerl. Du hast Mumm in den Knochen. + +[MOB_30F] +Danke, Umberto. Seit ich aus dem Knast raus bin, hat das keiner zu mir gesagt. Bis dann. + +[MOB_33A] +Tommy, Phil hier. Spar dir die sentimentalen Worte, hör mir einfach zu, ok? + +[MOB_33B] +Also, ich brau hier 'nen extra starken TNT-Whiskey und ich wollte fragen, ob du mal 'nen Schluck probieren willst. + +[MOB_33C] +Im Ernst, Tommy, wenn du 'nen Drink willst, oder 'ne Wand abbeizen musst - das Zeug macht einen Mann aus dir. + +[MOB_33D] +Bei mir hat's jedenfalls gewirkt, auch wenn ich jetzt auf einem Auge nichts mehr sehe. Ich warte auf dich. + +[MOB_34A] +Tommy, war ein Vergnügen, mit dir zu arbeiten. So einen Spaß hatte ich seit Vietnam nicht mehr. + +[MOB_34B] +Also, falls du je irgendwas brauchst, ruf mich an, ok? + +[MOB_34C] +Ich vergesse keinen, mit dem ich in der Schlacht war. + +[MOB_34D] +Und ich kann dir bestimmt irgendwann helfen, ok? + +[MOB_35A] +Tommy, die Wunde verheilt gut. Ist nur komisch: + +[MOB_35B] +da hab ich auf 6 Schlachtfeldern gekãmpft und nie 'n Kratzer abgekriegt und dann das! + +[MOB_35C] +Jetzt bin ich der einarmige Phil. Hab aber 'n gutes Arsenal an Handfeuerwaffen, also bin ich auch mit Arm ab nicht arm dran. + +[MOB_35D] +Also hör auf mit der sentimentalen Scheiße und hol dir 'nen Drink, ok! + +[MOB_36A] +Tommy, hier Phil. Wollte mich bedanken, dass du mich da rausgehauen hast. + +[MOB_36B] +Verdammte Vietnamesen. Wo du hinschaust ein Hinterhalt. + +[MOB_36C] +Die Wunde heilt gut. Und jetzt kassiere ich meine Versehrtenrente endlich völlig zurecht. Danke, Kumpel. + +[MOB_40A] +Hey, Tommy, hier Sonny. Was macht die Sonnenbrãune? + +[MOB_40B] +Ich hab keine Sonnenbrãune. + +[MOB_40C] +Naja, mein Geld hast du jedenfalls auch nicht. Daher frag ich mich, + +[MOB_40D] +was treibst du eigentlich die ganze Zeit, Tommy? Sag doch mal? + +[MOB_40E] +Ich bin auf der Suche nach deinem Geld, Sonny. Keine Sorge. + +[MOB_40F] +Ich mach mir aber Sorgen, Tommy, ich kann nicht anders. + +[MOB_40G] +Ich hab nãmlich anscheinend mit zu viel unzuverlãssigen Menschen zu tun. + +[MOB_40H] +Sei du bitte kein unzuverlãssiger Mensch, Tommy. + +[MOB_40I] +Tu dir und mir einen Gefallen. Ich freu mich, von dir zu hören. + +[MOB_41A] +Tommy, kennst du mich noch? + +[MOB_41B] +Hey, Sonny. + +[MOB_41C] +Ja genau, Sonny. Wir sind doch alte Freunde, + +[MOB_41D] +aber du schreibst nie, rufst nie an. Willst du denn nicht mehr mein Freund sein? + +[MOB_41E] +Ich hab alle Hãnde voll zu tun, die Sache zu regeln. Und du bist auch keine große Hilfe. + +[MOB_41F] +Ach, ich bin also schuld? Ja, ich hab gehört, dass du zu tun hast... + +[MOB_41G] +Musst Drogenbarone erledigen, ihre Geschãfte übernehmen. + +[MOB_41H] +Vergiss mich nicht, Tommy. Ich verspreche dir nãmlich, dass ich dich nicht vergesse... + +[MOB_42A] +Tommy. + +[MOB_42B] +Sonny. + +[MOB_42C] +Anscheinend hörst du neuerdings schlecht, deshalb frag ich dich jetzt nochmal: + +[MOB_42D] +Tommy, wo ist die verdammte Kohle? Wo ist der verdammte Stoff und wo ist mein Anteil an deinem neuen Geschãft? + +[MOB_42E] +Du hãltst mich zum Narren, Tommy, ich find's bloß nicht zum Lachen. + +[MOB_43A] +Tommy, Tommy, Tommy, Sonny hat gerade angerufen, dãmmert dir was? + +[MOB_43B] +Ich weiß nicht, wie das mit dir ist, aber wenn mir jemand droht, dass er meine Familie umbringt, + +[MOB_43C] +dann macht mir das eine Scheißangst. Was gedenkst du zu unternehmen? + +[MOB_43D] +Nur die Ruhe, Ken, alles wird cool. + +[MOB_43E] +Ich BIN ruhig. So ruhig wie man sein kann, wenn man um sein Leben fürchtet! + +[MOB_43F] +Ken, ich muss mich gerade auf was anderes konzentrieren. + +[MOB_43G] +Wir kümmern uns zu gegebener Zeit um Forelli. + +[MOB_43H] +Ich bin ruhig. Hör ich mich nicht ruhig an? Muss die Todesangst sein, die auf die Stimme schlãgt. + +[MOB45_A] +Tommy, wir müssen miteinander reden. + +[MOB45_B] +Wo liegt das Problem, Lance? + +[MOB45_C] +Bei dir, mein Freund: Ich finde, du gibst mir keinen fairen Anteil. + +[MOB45_D] +Noch dazu hast du mich vor den Jungs blamiert. Das kann ich nicht auf mir sitzen lassen. + +[MOB45_E] +Lance, das siehst du falsch. Du hast Fehler gemacht. + +[MOB45_F] +Tommy, ich bin nicht dein Laufbursche. Nicht dein Lakai. + +[MOB45_G] +Lance, alles ist ok, solange du keinen Mist baust. Und sollte ICH Mist bauen, steh ich dafür gerade. + +[MOB45_H] +Tommy, ich hab alles für dich getan und du trittst mich mit Füßen. Mach das doch nicht. + +[MOB45_I] +Lance, ich betrüg dich nicht und falle dir nicht in den Rücken, ok? + +[MOB45_J] +Reiß dich zusammen. Es ist schwer genug, ohne dass du mir die Ohren vollheulst. + +[MOB45_K] +Vertrau mir, hörst du. Hörst du? + +[MOB45_L] +Ja, Tommy, aber ich halt das nicht mehr lange aus. + +[MOB45_M] +Lance, komm mir bloß nicht so, ich warne dich. + +[MOB45_N] +Reg dich ab, mach ein paar Tage frei, dann unterhalten wir uns, ok? + +[MOB46_A] +Tommy - Lance. + +[MOB46_B] +Ja? + +[MOB46_C] +Kein 'Schön, dass du anrufst, Lance!' Kein freundliches Wort? Was soll das? + +[MOB46_D] +Ich habe gerade zu tun, Lance. Was willst du? + +[MOB46_E] +Nichts. Ich wollte dir nur sagen, wir kriegen das hin. + +[MOB46_F] +Du und ich, ohne Probleme. Du verstehst mich? + +[MOB46_G] +Wir müssen es hinkriegen. Sonst sind wir erledigt, Lance. + +[MOB46_H] +Wir stecken schon viel zu tief drin. Aber danke für den Anruf. Du hörst von mir. + +[MOB_47A] +Tommy - Lance. Wir stecken in der Patsche. Du musst sofort kommen. + +[MOB52_A] +Hey, Leo, ich glaube, wir haben einen Kãufer für Diaz' Ware. + +[MOB52_B] +Du musst ihn anrufen und den Deal in die Wege leiten, ok? + +[MOB52_C] +Wo bist du gerade? + +[MOB52_D] +Ist irgendwas, Leo? Du hörst dich so komisch an. + +[MOB52_E] +Sag mir, wo du bist. + +[MOB52_F] +Verdammt, wer ist da dran? Gib mir Leo! + +[MOB52_G] +Leo ist 'ne Weile verreist, ich vertrete ihn. + +[MOB52_H] +Zum Teufel mit dir! + +[MOB54_A] +Hi, Tommy! + +[MOB54_B] +Hi, Mercedes. Wie geht's? + +[MOB54_C] +Ich hab 'ne neue Wohnung in Vice Point. + +[MOB54_D] +Vielleicht kommst du mich ja mal besuchen. + +[MOB54_E] +Klar, gern. Also, bis spãter. + +[MOB55_A] +Tommy, ich bin's. + +[MOB55_B] +Hi, Mercedes. + +[MOB55_C] +Tommy, mir ist so langweilig. Wann hast du denn mal Zeit für mich? + +[MOB55_D] +Was soll denn das heißen? + +[MOB55_E] +Ich weiß, du hast so viel zu tun, musst Leute beseitigen und bestechen. + +[MOB55_F] +Aber ich will mal wieder Spaß haben. Also vergiss mich nicht, hörst du? + +[MOB56_A] +Tommy, es heißt, du hast Ricardo Diaz erledigt. + +[MOB56_B] +In seinem Haus ist ein Feuer ausgebrochen. + +[MOB56_C] +Ich glaube, er hatte ein Acrylhemd an und ist verbrannt. + +[MOB56_D] +Tommy, ich bin so stolz auf dich. Ich wusste, du bist ein echter Mann. + +[MOB56_E] +Und er war ein Mistkerl. Ich bin so stolz, dass du mein Freund bist. + +[MOB56_F] +Ich weiß, du hast zu tun, du musst schließlich die Stadt erobern. + +[MOB56_G] +Aber vergiss mich nicht, hörst du? + +[MOB57_A] +Ich bin's, Mercedes. Ich liebe dich nicht mehr, Tommy. + +[MOB57_B] +Wirklich nicht mehr. Du bist nicht mehr nett zu Mercedes. + +[MOB57_C] +Du behandelst mich nicht mehr wie eine Dame. Du ignorierst mich und ich hasse dich. + +[MOB57_D] +Ich bestehe darauf, dass du sofort zu mir kommst! + +[MOB58_A] +Tommy. + +[MOB58_B] +Hey, Mercedes. + +[MOB58_C] +Selber hey, du toller Hecht. Ich bin sauer auf dich, Tommy. + +[MOB58_D] +Schick mich nie mehr zu diesem Jezz Torrent. + +[MOB58_E] +So ein Jammerlappen. Mittendrin fãngt er an zu weinen wegen seinem Hündchen, + +[MOB58_F] +das gestorben ist, als er 7 war, und dass seine Mama ihn nie lieb hatte. + +[MOB58_G] +Und Tommy - privat lãuft er in Perücke und BH rum. + +[MOB58_H] +Ich bin nicht gut auf dich zu sprechen! + +[MOB59_A] +Oh, Tommy. Ich bin's, Mercedes. + +[MOB59_B] +Ich wollte dir nur sagen, es ist ganz toll beim Film. + +[MOB59_C] +Wenn du nochmal etwas für mich hast, sag Bescheid. + +[MOB59_D] +Wirklich. Ich wollte immer Schauspielerin werden. + +[MOB59_E] +Ich denke, ich lerne viel über die Dramaturgie. + +[MOB59_F] +Es ist so lehrreich! Vielen, vielen Dank. Bis bald. Adios. + +[MOB_99] +Geh zu der Telefonzelle vor Ort. + +[MOB_98] +Geh zu der Telefonzelle vor Ort. + +[MOB_97] +Geh zu der Telefonzelle vor Ort. + +[MOB_96] +Geh zu der Telefonzelle vor Ort. + +[MOB_95] +Geh zu der Telefonzelle vor Ort. + +[A_TIME] ++~1~ Sekunden + +[F_RANGE] +~g~Du bist außer Reichweite des Feuerwehrfunks. Fahr nãher an eine Feuerwache heran! + +[DODO_FT] +Du bist ~1~ Sekunden geflogen! + +[GA_8] +Benutze den Zünder, um die Bombe hochgehen zu lassen. + +[GA_10] +Hübsche Karre. Hier sind deine $~1~. + +[GA_11] +So eine Karre haben wir schon. Die können wir nicht gebrauchen. + +[GA_12] +Bombe ist scharf. + +[GA_13] +Auf dich ist Verlass. Wenn du alle, die auf der Liste stehen, abgeliefert hast, kriegst du einen Bonus. + +[GA_14] +Du hast alle georderten Karren geliefert. Sehr gut. Hier, für dich. + +[GA_15] +Hoffentlich gefãllt dir die neue Farbe. + +[GA_16] +Das Umspritzen ist gratis. + +[GA_19] +An dem Modell haben wir kein Interesse. + +[GA_20] +Von der Sorte haben wir schon mehr als genug. Sorry, da kommen wir nicht ins Geschãft. [CHASE] Größtes Medieninteresse bisher [CHASE1] -Keins +Null [CHASE2] Minimal @@ -2239,14 +1640,20 @@ Lokalblatt Seite 7 [CHASE5] Lokalblatt Titelseite +[CHASE6] +Vice Courier einspaltig + +[CHASE7] +Vice Courier Titelseite + [CHASE8] -Lokal-TV 3-Uhr-News +Lokalsender 3-Uhr-Nachrichten [CHASE9] -Lokal-TV 20-Uhr-News +Lokalsender 20-Uhr-Nachrichten [CHASE10] -Lokal-TV Live-Berichterstattung +Lokalsender Live-Berichterstattung [CHASE11] UFA Today Seite 12 @@ -2281,518 +1688,806 @@ Weltereignis [CHASE21] Stoff aus dem Legenden sind -[WHEEL01] -~w~ZWEIRAD BONUS: $~1~ Distanz: ~1~,~1~m Zeit: ~1~ Sekunden +[CR_1] +Kran kann dieses Fahrzeug nicht anheben. -[WHEEL02] -~w~ZWEIRAD BONUS: $~1~ Distanz: ~1~ Fuß Zeit: ~1~ Sekunden +[PU_MONY] +Du hast nicht genug Geld. -[WHEEL06] -~w~WHEELIE BONUS: $~1~ Distanz: ~1~,~1~m Zeit: ~1~ Sekunden +[CO_ALL] +Du hast sie alle geliefert. Hier, für dich. -[WHEEL07] -~w~WHEELIE BONUS: $~1~ Distanz: ~1~ Fuß Zeit: ~1~ Sekunden +[FEM_ON] +AN -[WHEEL11] -~w~STOPPIE BONUS: $~1~ Distanz: ~1~,~1~m Zeit: ~1~ Sekunden +[FEM_OFF] +AUS -[WHEEL12] -~w~STOPPIE BONUS: $~1~ Distanz: ~1~ Fuß Zeit: ~1~ Sekunden +[FEM_YES] +Ja -[GMSTOR] -Game Store +[FEM_NO] +Nein -[PREBRF] -Vorherige Missionsinfos +[FEM_RET] +Wiederholen -[CNTLS] -Steuerung +[FEC_NA] +Nicht verfügbar -[MUSMEN] -Musik/SFX +[FEC_CWL] +Eine Waffe nach links -[GAMSET] -Spieleinstellungen +[FEC_CWR] +Eine Waffe nach rechts -[LANGUA] -Sprache +[FEC_LOF] +Nach vorne sehen -[DSPLAY] -Anzeige +[FEC_TAR] +Zielen -[DEBUGM] -Debug Menu +[FEC_MOV] +Bewegung -[QUITOP] -Optionen verlassen +[FEC_CAM] +Blickwinkel -[CONTRL] -Konfiguration d. Steuerung +[FEC_PAU] +Pause + +[FEC_ENV] +In Fahrzeug einsteigen + +[FEC_JUM] +Springen + +[FEC_ATT] +Angreifen oder Waffe abfeuern + +[FEC_RUN] +Rennen + +[FEC_FPC] +Subjektive Kamera + +[FEC_LL] +Nach links sehen + +[FEC_LB] +Nach hinten sehen + +[FEC_LR] +Nach rechts sehen + +[FEC_HOR] +Hupe + +[FEC_VES] +Fahrzeugsteuerung + +[FEC_BRA] +Bremsen oder rückwãrts fahren + +[FEC_HAB] +Handbremse + +[FEC_CAW] +Fahrzeugwaffe + +[FEC_ACC] +Beschleunigen + +[FEC_CCF] +Konfiguration : + +[FEC_CF1] +Konfig. 1 + +[FEC_CF2] +Konfig. 2 + +[FEC_CF3] +Konfig. 3 + +[FEC_CF4] +Konfig. 4 + +[FEC_CDP] +Controller-Anzeige : + +[FEC_ONF] +Zu Fuß + +[FEC_INC] +Im Auto + +[FEC_VIB] +Vibration : + +[FEL_ENG] +Englisch + +[FEL_FRE] +Französisch + +[FEL_GER] +Deutsch + +[FEL_ITA] +Italienisch + +[FEL_SPA] +Spanisch + +[FED_DBG] +Menu Debug + +[FED_RID] +Reload IDE + +[FED_RIP] +Reload IPL + +[FED_PAH] +Parse Heap + +[FED_DFL] +CTheScripts::DbgFlag + +[FED_DLS] +Big White Debug Light Switched + +[FED_SPR] +Show Ped Road Groups + +[FED_SCR] +Show Car Road Grups + +[FED_SCZ] +Show Cull Zones + +[FED_DSR] +Debug Streaming Requests + +[FED_SCP] +gbShowCollisionPolys + +[PL_STAT] +Spielerstatistiken + +[PE_WAST] +Von dir abservierte Personen + +[PE_WSOT] +Von anderen abservierte Personen + +[TM_BUST] +Zahl deiner Verhaftungen + +[GNG_WST] +Gang-Mitglieder + +[DED_CRI] +Kriminelle + +[PER_COM] +Absolviert (in Prozent) + +[KGS_EXP] +Sprengstoffverbrauch in kg + +[ACCURA] +Treffsicherheit + +[ST_WEAP] +Waffen-Budget + +[ST_PROP] +Budget für Objekte + +[ST_AUTO] +Budget für Autoreparaturen und Lackierung + +[ST_PHOT] +Von dir gemachte Fotos + +[ST_LOAN] +Besuche von Kredithaien + +[ST_STOR] +Geknackte Lãden + +[ST_MOVI] +Film-Stunts + +[ST_PIZZ] +Gelieferte Pizzas + +[ST_GARB] +Getãtigte Müllfuhren + +[ST_ICEC] +Verkaufte Eiscreme + +[TOP_SHO] +Beste Schießstand-Punktzahl + +[SHO_RAN] +Schießstand-Rangliste + +[SEAGULL] +Abgeschossene Möwen + +[PROPOWN] +Objekte in deinem Besitz + +[ST_TIME] +Gespielte Zeit + +[ST_FTIM] +Flugstunden + +[ST_PRAN] +Piloten-Rating + +[ST_RAN0] +Anfãnger + +[ST_RAN1] +Navigator + +[ST_RAN2] +Co-Pilot + +[ST_RAN3] +Halb-Profi + +[ST_RAN4] +Könner + +[ST_RAN5] +Profi + +[ST_RAN6] +Ass + +[ST_RAN7] +Roter Baron + +[ST_DRWN] +Gefütterte Fische + +[ST_FASH] +Kleidungsbudget + +[ST_DAMA] +Zerstörte Objekte + +[TM_DED] +Krankenhausbesuche + +[DAYSPS] +Im Spiel verstrichene Tage + +[NUMSHV] +Besuche in Versteck + +[MXCARD] +Weitester IRRSINNS-Sprung (in Fuß) + +[MXCARJ] +Höchster IRRSINNS-Sprung (in Fuß) + +[MXCARDM] +Weitester IRRSINNS-Sprung (m) + +[MXCARJM] +Höchster IRRSINNS-Sprung (m) + +[MXFLIP] +Max. Anzahl Salti + +[MXJUMP] +Max. Drehungen im Sprung + +[BUL_FIR] +Verschossene Kugeln + +[BUL_HIT] +Kugeln, die trafen + +[SPRAYIN] +Anzahl Lackierungen + +[BSTSTU] +Bester IRRSINNS-Stunt bisher + +[INSTUN] +Irrsinns-Stunt + +[PRINST] +Super Irrsinns-Stunt + +[DBINST] +Doppelter Irrsinns-Stunt + +[DBPINS] +Super-Doppel-Irrsinns-Stunt + +[TRINST] +Dreifacher Irrsinns-Stunt + +[PRTRST] +Super-Dreifach-Irrsinns-Stunt + +[QUINST] +Vierfacher Irrsinns-Stunt + +[PQUINS] +Super-Vierfach-Irrsinns-Stunt + +[NOSTUC] +Bisher keine Irrsinns-Stunts geschafft + +[NOUNIF] +Monster-Stunts geschafft + +[NMISON] +Begonnene Missionen + +[PASDRO] +Ans Ziel beförderte Fahrgãste + +[MONTAX] +Mit Taxi verdientes Geld + +[DAYPLC] +Tagesetat für Polizei + +[CRIMRA] +Rang: + +[STPR_1] +Malibu Club + +[STPR_2] +Druckerei + +[STPR_3] +Filmstudio + +[STPR_4] +Eiscremefabrik + +[STPR_5] +Autohaus + +[STPR_6] +Taxiunternehmen + +[STPR_7] +Bootswerft [SET1EN] Konfig. 1 aktiviert -[SET1] -Konfig. 1 - -[SET2EN] -Konfig. 2 aktiviert - -[SET2] -Konfig. 2 - -[SET3EN] -Konfig. 3 aktiviert - -[SET3] -Konfig. 3 - -[SET4EN] -Konfig. 4 aktiviert - -[SET4] -Konfig. 4 - -[GOBACK] -Zurück - -[SOUND] -SOUND - -[MUSVOL] -Lautstärke Musik - -[SFXVOL] -Lautstärke SFX - -[SCROPT] -BILDSCHIRMOPTIONEN - -[CTRSCR] -Bildschirm zentrieren - -[SCRFOR] -Bildschirmformat - -[GMSVLQ] -SPEICHERN/LADEN/BEENDEN - -[GMREST] -Spiel neu starten - -[GMLOAD] -Spiel laden - [GMSAVE] Spiel speichern -[NOGMSV] -Du kannst nur in deinem Versteck speichern. - -[DLFILE] -Grand Theft Auto Dateien löschen - -[CHFILE] -ZU LADENDE DATEI AUSWÄHLEN - -[CHFIDL] -ZU LÖSCHENDE DATEI AUSWÄHLEN - -[SVCONF] -SPEICHERBESTÄTIGUNG - -[SVFNAM] -Dateiname des gespeicherten Spiels: - -[LANGSL] -SPRACHAUSWAHL - -[ENGLIS] -Englisch - -[GERMAN] -Deutsch - -[ITALIA] -Italienisch - -[FRENCH] -Französisch - -[SPAIN] -Spanisch - -[RELIDE] -ReLoadIde - -[RELIPE] -ReLoadIpl - -[PARSHP] -Parse Heap - -[DBGFON] -CTheScripts::DbgFlag On - -[DBFOFF] -CTheScripts::DbgFlag Off - -[BGWHON] -Big White Debug Light Switched On - -[BGWOFF] -Big White Debug Light Switched Off - -[DSTRON] -Debug Streaming Requests On - -[DSTROFF] -Debug Streaming Requests Off - -[PDRGON] -ShowPedRoadGroups On - -[PRGOFF] -ShowPedRoadGroups Off - -[CRRGON] -ShowCarRoadGroups On - -[CRGOFF] -ShowCarRoadGroups Off - -[CLZOON] -Show Cull Zones On - -[CLZOOF] -Show Cull Zones Off - -[SHPLON] -gbShowCollisionPolys On - -[SHPLOF] -gbShowCollisionPolys Off - -[CULREC] -CCullZones::RecalculateCullZoneData() - -[FORMM1] -FormatMemCard 1 (teststuff) - -[UNFRM1] -UnFormatMemCard 1 (teststuff) - -[GORLEV] -Gewalt-Level - -[SICASS] -Mittel - -[SICSIC] -Hoch - -[SCASSL] -Gewalt-Level 'mittel' gewählt - -[SCSCSL] -Gewalt-Level 'hoch' gewählt - -[PRVMEN] -Vorherige Missionsinfos - -[FORMEN] -Formatierungsmenü - -[MEMTST] -MemoryCardTest screen - -[REGCAR] -Register MemoryCard One - -[TEFONE] -Test Format MemCard One - -[TEUFON] -Test UnFormat MemCard One - -[CRROOT] -CreateRootDir - -[CRLDIC] -Create and Load Icons - -[FLFSGF] -Fill First File With Guff - -[PUSAVE] -Save Only the game - -[CHEVOK] -CheckEveryOkB4Save - -[SVGMON] -SaveTheGame - -[CNTSAV] -Spiel kann nicht gespeichert werden. Mitten in Mission. - -[CNCSAV] -Spiel kann nicht gespeichert werden. Du bist im Auto. - -[CRMGSV] -Create copy protected magazine directory - -[MGSVCN] -MagazineDirectory Created - -[MGSVNC] -MagazineDirectory Not Created - -[YES] -Ja - -[NO] -Nein - -[X] -x - -[LAST] -Letzte Nachricht. - -[GS_STYL] -SPIEL-STIL: - -[GS_FFAL] -JEDER FÜR SICH - -[GS_LOC] -SPIEL-ORT: - -[GS_SLMT] -SCORE-LIMIT: - -[GS_KLMT] -HIT-LIMIT: - -[GS_TLMT] -ZEIT-LIMIT: - -[GS_ULMT] -KEIN LIMIT - -[GS_PRUP] -POWERUPS: - -[GS_RACE] -RENNEN: - -[GS_LAPS] -RUNDEN: - -[GS_OK] -OK - -[FEH_MP] -MULTIPLAYER - -[FEMP_J] -Mitspielen - -[FEMP_CS] -CHARAKTER: - -[FEMP_PS] -SPIELER-EINSTELLUNGEN - -[FEMP_GS] -SPIELAUSWAHL - -[FEMP_NG] -EIN NEUES SPIEL STARTEN - -[SVRLIST] -HOST-LISTE - -[SVRINFO] -HOST-DETAILS - -[SVRNAME] -NAME: - -[NO_SVRS] -SUCHE NACH HOSTS - -[NO_PLRS] -SUCHE NACH SPIELERN - -[NO_NAME] -KEIN NAME - -[NO_WIFI] -Um ein Multiplayer-Spiel zu spielen, musst du den WLAN-Schalter zuerst auf AN stellen. - -[FEMP_SG] -SPIEL STARTEN - -[FEMP_S] -Start - -[FEMP_WS] -Warte darauf, dass Host Spiel startet... - -[SVRLOST] -Verbindung mit Host wurde unterbrochen. - -[NOSVRS] -Konnte keinen Host finden. - -[MP_WARN] -Bei Start eines Multiplayer-Spiels gehen alle Fortschritte seit der letzten Speicherung verloren. - -[FEDS_XB] -Auswählen - [FEDS_TB] Zurück -[FEDS_ST] -START-Taste - WEITER - [FEST_OO] von -[FED_SUB] -UNTERTITEL: - [FEC_TUC] Geschützsteuerung -[FEC_SM3] -Spezialmission aktivieren (R3-Taste) - [FEC_RS3] -Radiosender auswählen (L3-Taste) +Radiosender auswãhlen (L3-Taste) [FEC_HO3] Hupe (L3-Taste) -[FIRST] -~g~1. +[C_FAIL] +Bürgerwehr-Mission beendet! -[SECOND] -~g~2. +[C_ESCP] +~r~Der Verdãchtige ist entwischt! -[THIRD] -~g~3. +[C_VIGIL] +BÜRGERWEHR BONUS!! -[FOURTH] -~g~4. - -[NOCONTE] -Bitte stecken Sie einen Analog Controller (DUALSHOCK®) oder einen Analog Controller (DUALSHOCK®2) in Controller-Anschluss 1 um fortzufahren. - -[WRCONT] -Der Controller in Controller-Anschluss 1 wird nicht unterstützt. GTA: Liberty City Stories benötigt einen Analog Controller (DUALSHOCK®) oder einen Analog Controller (DUALSHOCK®2). - -[WRCONTE] -Der Controller in Controller-Anschluss 1 wird nicht unterstützt. GTA: Liberty City Stories benötigt einen Analog Controller (DUALSHOCK®) oder einen Analog Controller (DUALSHOCK®2). +[HEAL_A] +Dein ~h~Gesundheitszustand~w~ wird rechts oben auf dem Bildschirm in Orange angezeigt. [WRONGCD] -Falsche DVD/CD-ROM. ~n~Bitte die DVD/CD-ROM für GTA:Liberty City Stories einlegen. +Falsche DVD. Bitte legen Sie die richtige DVD ein. [NOCD] -Die DVD/CD-Lade ist leer. ~n~Bitte die DVD/CD-ROM für GTA:Liberty City Stories einlegen. +Die DVD-Lade ist leer. Bitte DVD einlegen. [OPENCD] -Die DVD/CD-Lade ist offen. Bitte die DVD/CD-Lade schließen. +Die DVD-Lade ist offen. Bitte schließen. + +[CDERROR] +Fehler beim Lesen der 'Grand Theft Auto: Vice City' DVD. [RESTART] -Neues Spiel wird gestartet. +Neues Spiel wird gestartet [GA_3] -~w~Umspritzen kostet $100! +Keine Gratisjobs mehr. Umspritzen kostet $100! + +[GA_1] +Hey, so was heißes rühre ich nicht an! [GA_1A] -~w~Komm wieder, wenn du nicht so viel zu tun hast... +Komm wieder, wenn du nicht so viel zu tun hast... -[AWAY] -~r~Er ist verschwunden! +[HELP9_C] +Drücke die~h~ ~k~~PED_FIREWEAPON~~w~, um das Prãzisionsgewehr ~h~abzufeuern~w~. -[GA_6B] -~w~Park die Karre, mach sie durch Drücken von~h~ ~k~ ~PDFW~ ~w~scharf, und dann HAU AB! +[TAXI2] +~r~Die Zeit ist um! -[GA_7B] -Mach die Bombe mit~h~ ~k~ ~PDFW~~w~ scharf. Sie geht hoch, wenn der Wagen angelassen wird. +[PAGEB13] +Gesundheits-Powerups in Versteck angeliefert. + +[PAGEB14] +Adrenalin in Versteck vorrãtig. [FESZ_CA] Abbrechen -[FESZ_QU] -Beenden - -[FESZ_L1] -Spiel gespeichert! - -[FESZ_L2] -Spiel gespeichert unter: - -[FESZ_OK] -OK - -[FES_LGA] -Spiel laden - -[FES_DGA] -SPIELDATEN LÖSCHEN - [FES_NGA] -NEUES SPIEL +Neues Spiel [FES_CAN] Abbrechen [FESZ_QL] -Alle nicht gespeicherten Daten des aktuellen Spiels werden verloren gehen. Laden fortsetzen? +Alle nicht gespeicherten Daten des aktuellen Spiels werden verloren gehen. Ladevorgang fortsetzen? [FESZ_QD] -Diesen Spielstand wirklich löschen? +Dieses gespeicherte Spiel wirklich löschen? [FESZ_QO] -Diesen Spielstand wirklich überschreiben? +Dieses gespeicherte Spiel wirklich überschreiben? [FESZ_QR] Wirklich ein neues Spiel beginnen? Alle Daten seit dem letzten Speichern werden verloren gehen. Weiter? -[FESZ_QS] -SPEICHERN FORTSETZEN? +[T4X4_1] +'PCJ Rallye' -[T4X4_2A] -~g~Du hast ~y~2 Minuten~g~, um ~y~12~g~ Checkpoints abzufahren! ~g~Die ~y~REIHENFOLGE IST BELIEBIG. +[BMX_1] +'Krasses Gelãnde' -[T4X4_2B] -~1~ von 12! +[BMX_2] +'Teststrecke' -[T4X4_2C] -~y~PASSIERE~g~ den ersten Checkpoint, dann läuft die Zeit. ~g~Jeder Checkpoint bringt dir ~y~10 SEKUNDEN~g~. +[BMXFAIL] +~r~Du hast es nicht geschafft, einen neuen Rekord aufzustellen! + +[BMX_REC] +~g~Neuer Rekord:~1~ !! + +[T4X4_3] +'CHECKPOINT FIEBER' + +[MM_1] +'PYLONEN-RALLYE' [T4X4_F] ~r~Du hast gekniffen! Schon überfordert? -[UPSIDE] -~r~Du hast dich überschlagen! +[LANDSTK] +Landstalker + +[IDAHO] +Idaho + +[STINGER] +Stinger + +[LINERUN] +Linerunner + +[PEREN] +Perennial + +[SENTINL] +Sentinel + +[RIO] +Rio + +[PATRIOT] +Patriot + +[FIRETRK] +Feuerwehrwagen + +[TRASHM] +Trashmaster + +[STRETCH] +Stretch Limo + +[MANANA] +Manana + +[INFERNS] +Infernus + +[VOODOO] +Voodoo + +[PONY] +Pony + +[MULE] +Mule + +[CHEETAH] +Cheetah + +[AMBULAN] +Krankenwagen + +[FBICAR] +FBI Washington + +[MOONBM] +Moonbeam + +[ESPERAN] +Esperanto + +[TAXI] +Taxi + +[WASHING] +Washington + +[BOBCAT] +Bobcat + +[WHOOPEE] +Mr Whoopee + +[BFINJC] +BF Injection + +[HUNTER] +Hunter + +[POLICAR] +Polizei + +[ENFORCR] +Enforcer + +[SECURI] +Securicar + +[BANSHEE] +Banshee + +[PREDATR] +Predator + +[BUS] +Bus + +[RHINO] +Rhino + +[BARRCKS] +Barracks OL + +[CUBAN] +Kubanischer Hermes + +[HELI] +Helikopter + +[DODO] +Dodo + +[COACH] +Coach + +[CABBIE] +Cabbie + +[STALION] +Stallion + +[RUMPO] +Rumpo + +[RCBANDT] +RC Bandit + +[ROMERO] +Romeros Leichenwagen + +[PACKER] +Packer + +[ADMIRAL] +Admiral + +[SQUALO] +Squalo + +[SEASPAR] +Sea Sparrow + +[PIZZABO] +Pizza Boy + +[GANGBUR] +Gang Burrito + +[TROPIC] +Tropic + +[SPEEDER] +Speeder + +[REEFER] +Reefer + +[FLATBED] +Flatbed + +[YANKEE] +Yankee + +[CADDY] +Caddy + +[ZEBRA] +Zebra Cab + +[TOPFUN] +Top Fun + +[SKIMMER] +Skimmer + +[PCJ600] +PCJ 600 + +[PHOENIX] +Phoenix + +[FAGGIO] +Faggio + +[FREEWAY] +Freeway + +[RCBARON] +RC Baron + +[RCRAIDE] +RC Raider + +[GLENDAL] +Glendale + +[OCEANIC] +Oceanic + +[SANCHEZ] +Sanchez + +[SPARROW] +Sparrow + +[LOVEFIS] +Love Fist + +[COASTG] +Küstenwache + +[DINGHY] +Dinghy + +[HERMES] +Hermes + +[SABRE] +Sabre + +[SABRETU] +Sabre Turbo + +[WALTON] +Walton + +[REGINA] +Regina + +[COMET] +Comet + +[DELUXO] +Deluxo + +[BURRITO] +Burrito + +[SPAND] +Spandex Express + +[MARQUIS] +Marquis + +[BAGGAGE] +Baggage Handler + +[KAUFMAN] +Kaufman-Taxi + +[COASTMA] +Küstenwachen-Maverick + +[MAVERIC] +Maverick + +[RANCHER] +Rancher + +[FBIRANC] +FBI Rancher + +[VIRGO] +Virgo + +[GREENWO] +Greenwood + +[HOTRING] +Hotring Racer + +[BLISTAC] +Blista Compact [FEST_DF] -Zu Fuß zurückgel. Meilen +Zu Fuß zurückgel. Strecke (Meilen) [FEST_DC] -Mit Auto zurückgel. Meilen +Mit Auto gefahrene Strecke (Meilen) [FESTDFM] -Zu Fuß zurückgelegte Meter +Zu Fuß zurückgelegte Strecke (Meter) [FESTDCM] -Mit Auto zurückgelegte Meter +Mit Auto gefahrene Strecke (Meter) + +[TOT_DIS] +Insgesamt zurückgel. Strecke (Meilen) + +[TOTDISM] +Insgesamt zurückgel. Strecke (Meter) + +[DISTHEL] +Mit Helikopter geflogene Strecke (Meilen) + +[DISTHEM] +Mit Helikopter geflogene Strecke (Meter) + +[DISTBOA] +Mit Boot zurückgel. Strecke (Meilen) + +[DISTBOM] +Mit Boot zurückgel. Strecke (Meter) [FEST_LS] Mit Krankenwagen gerettete Menschen @@ -2803,23 +2498,14 @@ Kriminelle bei Bürgerwehr-Mission [FEST_FE] Gelöschte Feuer gesamt -[FEST_LF] -Längster Flug in Dodo - -[FEST_BD] -Bestzeit Bombenentschärfung - [FEST_RP] -Erfüllte Spezialaufträge - -[FEST_CN] -Höchste Restzeit bei 'Karmageddon' - -[FEST_TR] -Meiste Hits bei 'RC Triaden-Terror' +Bestandene Amokfahrten [FEST_MP] -Erfüllte Missionen +Erledigte Missionen + +[FEST_BB] +Schnelle Autos, Schnelles Geld: [FEST_H0] Meiste Checkpoints @@ -2827,416 +2513,1577 @@ Meiste Checkpoints [FEST_GC] Geschrottete Gang-Autos: +[FEST_H1] +Im Dschungel der Diablos + +[FEST_H2] +Mafia-Massaker + +[FEST_H3] +Der Casino-Coup + +[FEST_H4] +Rock'n'Roll mit Rumpo + [USJ] -~w~MONSTER-STUNT-BONUS! - -[USJ_FAL] -~w~MONSTER-STUNT MISSGLÜCKT - -[HM1_1] -~g~Fertige 20 Purple Nines in 2 Min. 30 Sek. ab. - -[KM1_8A] -Drücke~h~ ~k~ ~PDFW~ ~w~zum ~h~Zünden der Bombe~w~. Aber geh vorher in Deckung! - -[KM1_8D] -Drücke~h~ ~k~ ~PDFW~ ~w~zum ~h~Zünden der Bombe~w~. Aber geh vorher in Deckung! +MONSTER-STUNT-BONUS! [RATNG1] -UNBESCHOLTENER BÜRGER +Unbescholtener Bürger [RATNG2] -DURCHSCHNITTSTYP +Durchschnittstyp [RATNG3] -FALSCHPARKER +Falschparker [RATNG4] -LADENDIEB +Ladendieb [RATNG5] -ROWDY +Rowdy [RATNG6] -LAUFBURSCHE +Laufbursche [RATNG7] -TASCHENDIEB +Taschendieb [RATNG8] -KLEPTOMANE +Kleptomane [RATNG9] -INFORMANT +Informant [RATNG10] -SPITZEL +Spitzel + +[RATNG11] +Verrãter [RATNG12] -HOCHSTAPLER +Hochstapler [RATNG13] -BETRÜGER +Betrüger [RATNG14] -SCHIEBER +Schieber [RATNG15] -FALSCHSPIELER +Falschspieler [RATNG16] -SCHLÄGER +Schlãger [RATNG17] -STRASSENGAUNER +Straßengauner [RATNG18] -GAUNER +Gauner [RATNG19] -HALUNKE +Halunke [RATNG20] -OUTLAW +Outlaw [RATNG21] -SCHURKE +Schurke [RATNG22] -KURIER +Kurier [RATNG23] -GANGSTER +Gangster [RATNG24] -OBERGANGSTER +Obergangster [RATNG25] -GALGENVOGEL +Galgenvogel [RATNG26] -EX-KNACKI +Ex-Knacki [RATNG27] -SCHWERER JUNGE +Schwerer Junge [RATNG28] -PROFI +Profi [RATNG29] -DRAHTZIEHER +Drahtzieher [RATNG30] -FAHRER +Fahrer [RATNG31] -SOLDAT +Soldat [RATNG32] -GORILLA +Gorilla [RATNG33] -KOPFGELDJÄGER +Kopfgeldjãger [RATNG34] -MANN FÜRS GROBE +Mann fürs Grobe [RATNG35] -RONIN +Ronin [RATNG36] -ABRÄUMER +Abrãumer [RATNG37] -HIT-MAN +Hit-Man [RATNG38] -PARTNER +Partner [RATNG39] -METZGER +Butcher [RATNG40] -TROUBLESHOOTER +Troubleshooter [RATNG41] -ATTENTÄTER +Attentãter [RATNG42] -ADJUTANT +Adjutant [RATNG43] -GEMACHTER MANN +Gemachter Mann [RATNG44] -RECHTE HAND +Rechte Hand [RATNG45] -VOLLSTRECKER +Vollstrecker [RATNG46] -LEUTNANT +Leutnant [RATNG47] -VIZE-BOSS +Vize-Boss [RATNG48] -CAPO +Capo [RATNG49] -BOSS +Boss [RATNG50] -OBERBOSS +Oberboss [RATNG51] -DON +Don [RATNG52] -PATE - -[TRAIN_1] -Kurowski Station - -[TRAIN_2] -Rothwell Station - -[TRAIN_3] -Baillie Station - -[SUBWAY1] -Portland Station - -[SUBWAY2] -Rockford Station - -[SUBWAY3] -Staunton South Station - -[SUBWAY4] -Shoreside Terminal - -[DETON] -DETONATION - -[RCBOMB1] -RC Triaden-Terror - -[RECORD] -~w~Neuer Rekord - ~1~ Opfer! - -[NRECORD] -~r~Du hast den bisherigen Rekord von ~1~ Opfern nicht verbessert! - -[RCBOMBF] -~r~Du bist aus dem Van gestiegen! - -[RC_2] -Du hast 2 Minuten, um so viele Mafia-Autos wie möglich zu sprengen! - -[RC_3] -Du hast 2 Minuten, um so viele Yakuza-Autos wie möglich zu sprengen! - -[RC_4] -Du hast 2 Minuten, um so viele Yardie-Autos wie möglich zu sprengen! - -[RC_5] -Du hast 2 Minuten, um so viele Hood-Autos wie möglich zu sprengen! - -[RC_6] -Du hast 2 Minuten, um so viele Kartell-Autos wie möglich zu sprengen! - -[RAMPKA] -~w~Du brauchst ein Fahrzeug für diesen Spezialauftrag. +King of the City [PAGE_00] -. - -[TURTXT] -Bleihaltige 'Spritztour'! - -[TURPASS] -~w~'Spritztour' vorbei! - -[TUR3D] -~w~Auto - -[FTFRENZ] -Feuerwehr-Spezialauftrag +.. [WELCOME] WILLKOMMEN IN [TSCORE] -~w~GESAMTEINKÜNFTE: $~1~ +EINKÜNFTE: $~1~ -[PBOAT_1] -Drücke~h~ ~k~ ~VEWEP~~w~, um die Bordkanonen abzufeuern. +[PBOAT_2] { reVC update } +Drücke die ~h~~k~~VEHICLE_FIREWEAPON~~w~, um die Bordkanonen abzufeuern. -[HM2_1] -Zerstöre die gepanzerten Fahrzeuge mit den Buggies. Zur Zündung drücke~h~ ~k~ ~VEWEP~~w~. +[HJSTAT] +Distanz: ~1~.~1~m Höhe: ~1~.~1~m Saltos: ~1~ Drehungen: ~1~_ -[HM2_1A] -Zerstöre die gepanzerten Fahrzeuge mit den Buggies. Zur Zündung drücke~h~ ~k~ ~VEWEP~~w~. +[HJSTATW] +Distanz: ~1~.~1~m Höhe: ~1~.~1~m Saltos: ~1~ Drehungen: ~1~_ Und was für eine Landung! -[HM2_2] -~r~Du hast nicht alle gepanzerten Fahrzeuge zerstört! - -[HM2_6] -~g~Gepanzertes Fahrzeug zerstört! - -[FESZ_UC] -ABBRECHEN - -[FEDS_SM] -L1, R1-MENÜ WECHSELN - -[FEDS_AS] -;=-AUSWAHL ÄNDERN - -[FEDSAS2] -<>-AUSWAHL ÄNDERN - -[FEDS_SS] -L1, R1-AUSWAHL ÄNDERN - -[FEDSSC1] -;-SCHNELLER BILDLAUF - -[FEDSSC2] -=-BILDLAUF STOP - -[FES_LOF] -Laden fehlgeschlagen. - -[FES_SLO] -GESPEICHERTE DATEI - -[FES_ISC] -IST BESCHÄDIGT - -[FESZ_TI] -Z1 SPEICHERN - -[FESZ_SA] -Spiel speichern - -[MC_LDFL] -Laden fehlgeschlagen! - -[MC_NWRE] -Spiel wird neu gestartet. - -[BIFP_1] -~w~Autsch! 'Flug'-Weite: ~1~,~1~m - -[BIFP_1F] -~w~Autsch! 'Flug'-Weite: ~1~ Fuß - -[DIAB1_5] -ZEIT: - -[F_FAIL1] -~r~Feuerwehr-Mission beendet. - -[F_CANC] -~r~Feuerwehr-Mission abgebrochen! - -[F_FAIL3] -~r~Du kommst zu spät! - -[F_FAIL4] -~r~Einer der Insassen ist gestorben! - -[F_FAIL5] -~r~Eins der Autos wurde zerstört! - -[F_FAIL6] -~r~Das Auto wurde zerstört! - -[F_EXTIN] -Brände - -[A_CANC] -~r~Krankenwagen-Mission abgebrochen! - -[ALEVEL] -~w~Krankenwagen-Mission Level ~1~ - -[A_FAIL1] -~r~Krankenwagen-Mission beendet. +[ATUTOR] +Drücke die ~h~~k~~TOGGLE_SUBMISSIONS~~w~, um Krankenwagen-Missionen an- oder abzuschalten. [FEST_HA] -Höchstes Krankenwagen-Missions-Level - -[A_SAVES] -~w~GERETTETE MENSCHEN: ~1~ +Höchster Krankenwagen-Missions-Level [C_KILLS] -~w~ERLEDIGTE KRIMINELLE: ~1~ +KRIMINELLE: ~1~ -[F_START] -~b~Brennendes Fahrzeug ~w~in der Gegend von ~a~ gemeldet. Lösche den Brand. +[HJSTATF] +Distanz: ~1~Fuß Höhe: ~1~Fuß Saltos: ~1~ Drehungen: ~1~_ -[F_STAR1] -~b~Brennende Fahrzeuge ~w~in der Gegend von ~a~ gemeldet. Lösche die Brände. +[HJSTAWF] +Distanz: ~1~Fuß Höhe: ~1~Fuß Saltos: ~1~ Drehungen: ~1~_ Und was für eine Landung! -[F_REWAR] -~w~BRAND GELÖSCHT! Level ~1~ abgeschlossen! Belohnung: $~1~ +[CRED001] +ROCKSTAR NORTH + +[CRD001A] +STUDIO DIRECTOR + +[CRD001B] +ANDREW SEMPLE + +[CRED002] +PRODUCER + +[CRD002A] +DEVELOPMENT DIRECTOR + +[CRED003] +LESLIE BENZIES + +[CRED004] +ART DIRECTOR + +[CRED005] +AARON GARBUT + +[CRED006] +TECHNICAL DIRECTORS + +[CRED007] +OBBE VERMEIJ + +[CRED008] +ADAM FOWLER + +[CRED010] +ANDREW DUTHIE + +[CRED011] +CRAIG FILSHIE + +[CRED012] +WILLIAM MILLS + +[CRED013] +CHRIS ROTHWELL + +[CRD013A] +IMRAN SARWAR + +[CRD013B] +JAMES WORRALL + +[CRD013C] +JOHN HAIME + +[CRED014] +WRITTEN BY + +[CRED015] +JAMES WORRALL + +[CRED016] +PAUL KUROWSKI + +[CRED017] +DAN HOUSER + +[CRED018] +LEAD CHARACTER DESIGNER + +[CRD018A] +CHARACTER DESIGNER + +[CRED019] +IAN MCQUE + +[CRD019A] +TOKS SOLARIN + +[CRD019B] +ALAN DAVIDSON + +[CRED020] +LEAD ANIMATOR + +[CRED021] +ALEX HORTON + +[CRD022A] +ANIMATORS + +[CRED022] +LEE MONTGOMERY + +[CRD022B] +DUNCAN SHIELDS + +[CRD022C] +GUS BRAID + +[CRED023] +VEHICLE DESIGNERS + +[CRD023A] +JOLYON ORME + +[CRD023B] +ALAN DUNCAN + +[CRD024A] +LEAD VEHICLE DESIGNER + +[CRED024] +PAUL KUROWSKI + +[CRED025] +MAP DESIGNERS + +[CRED026] +ADAM COCHRANE + +[CRED027] +NIK TAYLOR + +[CRED028] +GARY MCADAM + +[CRED029] +KEIRAN BAILLIE + +[CRED030] +ALISDAIR WOOD + +[CRED031] +ANDREW SOOSAY + +[CRD031A] +STEVEN MULHOLLAND + +[CRD031B] +WAYLAND STANDING + +[CRD031C] +CAMPBELL J. DICK + +[CRD031D] +GRAPHIC DESIGNER + +[CRD031E] +STUART PETRI + +[CRED032] +LEAD PROGRAMMER + +[CRD032A] +PROGRAMMERS + +[CRED033] +ALEXANDER ROGER + +[CRED034] +GRAEME WILLIAMSON + +[CRED035] +BARANE CHAN + +[CRED036] +DEREK PAYNE + +[CRED037] +GORDON YEOMAN + +[CRD037A] +ALAN CAMPBELL + +[CRD037B] +MARK HANLON + +[CRD037C] +ANDRZEJ MADAJCZYK + +[CRED038] +LEAD MUSIC PRODUCER + +[CRED039] +CRAIG CONNER + +[CRED040] +STUART ROSS + +[CRED041] +LEAD AUDIO ENGINEER + +[CRED042] +ALLAN WALKER + +[CRD041A] +AUDIO ENGINEER + +[CRD041B] +AUDIO + +[CRD042A] +WILL MORTON + +[CRED043] +AUDIO PROGRAMMER + +[CRED044] +RAYMOND USHER + +[CRED045] +TEST MANAGER + +[CRED046] +CRAIG ARBUTHNOTT + +[CRED047] +LEAD QA + +[CRED048] +NEIL CORBETT + +[CRED049] +KEVIN WONG + +[CRED050] +QA + +[CRED051] +DAVID BEDDOES + +[CRED052] +DAVID WATSON + +[CRED053] +BARRY CLARK + +[CRED054] +ROSS SPARROW + +[CRED055] +JAMES ALLAN + +[CRED056] +NEIL MEIKLE + +[CRD056A] +GEORGE WILLIAMSON + +[CRD056B] +MATT JONES + +[CRD056C] +ROB HARBOUR + +[CRD056D] +TOM WHITTAKER + +[CRED057] +LEAD TECHNICAL SUPPORT + +[CRED058] +LORRAINE ROY + +[CRD057A] +TECHNICAL SUPPORT + +[CRED059] +CHRISTINE CHALMERS + +[CRD060A] +OFFICE SUPPORT + +[CRD060B] +KIM GURNEY + +[CRD060C] +CASSIE OLIVER + +[CRED060] +ROCKSTAR NEW YORK + +[CRED061] +EXECUTIVE PRODUCER + +[CRED062] +SAM HOUSER + +[CRED063] +PRODUCER + +[CRED064] +DAN HOUSER + +[CRED065] +VP OF DEVELOPMENT + +[CRED066] +JAMIE KING + +[CRED067] +CHIEF TECHNOLOGY OFFICER + +[CRED068] +GARY J. FOREMAN + +[CRED069] +ASSOCIATE PRODUCER + +[CRED070] +JEREMY POPE + +[CRD071A] +DIRECTOR OF QUALITY ASSURANCE + +[CRD072A] +JEFF ROSA + +[CRED071] +MUSIC SUPERVISOR + +[CRED072] +TERRY DONOVAN + +[CRED073] +PRODUCTION TEAM + +[CRED074] +TERRY DONOVAN + +[CRED075] +JENNIFER KOLBE + +[CRED076] +JENEFER GROSS + +[CRED077] +LAURA PATERSON + +[CRED078] +JEFF CASTANEDA + +[CRED079] +JERONIMO BARRERA + +[CRED080] +CARLY SLATER + +[CRED081] +JUNG KWAK + +[CRED082] +BRIAN WOOD + +[CRED083] +RENAUD SEBANNE + +[CRED084] +RICHARD KRUGER + +[CRD084A] +DANIEL EINZIG + +[CRD084B] +JACEN BURROWS + +[CRD084C] +LINN PR + +[CRD084D] +COVER ART + +[CRD084E] +STEPHEN BLISS + +[CRED085] +KENT PAUL'S 80 NOSTALGIA ZONE + +[CRED086] +WRITTEN BY DAN HOUSER + +[CRD086A] +PRODUCED BY ADAM TEDMAN + +[CRED087] +WWW.KENTPAUL.COM AND WWW.VICECITY.COM + +[CRED088] +CREATED BY + +[CRD088A] +ADAM TEDMAN + +[CRD088B] +DAVID YU + +[CRD088C] +JERRY LUNA + +[CRD088D] +STUART PETRI + +[CRD088E] +MICHAEL CARNEVALE + +[CRD088F] +GREG LAU + +[CRD088G] +FUTABA HAYASHI + +[CRED089] +QA MANAGER + +[CRED090] +CRAIG ARBUTHNOTT + +[CRED091] +LEAD ANALYST + +[CRED092] +ADAM DAVIDSON + +[CRD092A] +JOE HOWELL + +[CRD092B] +MARC FERNANDEZ + +[CRED093] +GAME ANALYST + +[CRED094] +RICHARD HUIE + +[CRED095] +ROCKSTAR TEST TEAM + +[CRED096] +LANCE WILLIAMS + +[CRED097] +JOE GREENE + +[CRED098] +BRIAN PLANER + +[CRD098A] +ELIZABETH SATTERWHITE + +[CRD098B] +JAMEEL VEGA + +[CRD098C] +MIKE HONG + +[CRED099] +LEE CUMMINGS + +[CRED100] +STORY + +[CRED101] +JAMES WORRALL + +[CRED102] +DAN HOUSER + +[CRED103] +ADAM TEDMAN + +[CRED104] +PAUL YEATES + +[CRED105] +JENEFER GROSS + +[CRED106] +LAURA PATERSON + +[CRED107] +CUT SCENES + +[CRED108] +WRITTEN BY DAN HOUSER AND JAMES WORRALL + +[CRED109] +AUDIO DIRECTED BY DAN HOUSER AND NAVID KHONSARI + +[CRED110] +PRODUCED BY JAMIE KING + +[CRD110A] +TALENT PROCUREMENT: JAMIE KING, SEAN MACALUSO + +[CRED111] +CAST + +[CRD111A] +SUPPORTING CHARACTERS + +[CRED112] +TOMMY VERCETTI - RAY LIOTTA + +[CRED113] +KEN ROSENBERG - WILLIAN FICHTNER + +[CRED114] +SONNY FORELLI - TOM SIZEMORE + +[CRED115] +STEVE SCOTT - DENNIS HOPPER + +[CRED116] +AVERY CARRINGTON - BURT REYNOLDS + +[CRED117] +RICARDO DIAZ - LUIS GUZMAN + +[CRED118] +LANCE VANCE - PHILIP MICHAEL THOMAS + +[CRED119] +COLONEL JUAN CORTEZ - ROBERT DAVI + +[CRED120] +UMBERTO ROBINA - DANNY TREJO + +[CRED121] +PHIL CASSIDY - GARY BUSEY + +[CRED122] +MITCH BAKER - LEE MAJORS + +[CRED123] +MERCEDES CORTEZ - FAIRUZA BALK + +[CRED124] +KENT PAUL - DANNY DYER + +[CRED125] +JEZZ TORRENT - KEVIN MCKIDD + +[CRED126] +TAXI CONTROLLER - DEBORAH HARRY + +[CRED127] +CANDY SUXX - JENNA JAMESON + +[CRED128] +BJ SMITH - LAWRENCE TAYLOR + +[CRED129] +AUNTIE POULET - YOUREE CLEOMILI HARRIS + +[CRED130] +SUPPLIER - ARMANDO RIESCO + +[CRED131] +COUGAR - BLAYNE PERRY + +[CRED132] +HILARY - CHARLES TUCKER + +[CRED133] +CONGRESSMAN ALEX SHRUB - CHRIS LUCAS + +[CRED134] +OLD MAN KELLY - GEORGE DICENZO + +[CRD134A] +CAM JONES - GREG SIMS + +[CRD134B] +PSYCHO - HUNTER PLATIN + +[CRD134C] +MAUDE THE ICE CREAM LADY - JANE GENNARO + +[CRD134D] +JETHRO - JOHN ZURHELLEN + +[CRD134E] +GONZALES - JORGE PUPO + +[CRD134F] +DWAYNE - NAVID KHONSARI + +[CRD134G] +DICK - PETER MCKAY + +[CRD134H] +MIKE THE GOON & PORN GUY - ROBERT CIHRA + +[CRD134I] +PERCY - RUSSELL FOREMAN + +[CRED135] +MOTION CAPTURE + +[CRED136] +ANIMATED BY + +[CRD136A] +TECHNICAL DIRECTION BY ALEX HORTON + +[CRED137] +DIRECTED BY + +[CRD137A] +DIRECTED BY NAVID KHONSARI + +[CRED138] +PRODUCED BY + +[CRD138A] +PRODUCED BY JAMIE KING + +[CRD138B] +RENAUD SEBBANE + +[CRED139] +RECORDED AT PERSPECTIVE STUDIOS, BROOKLYN + +[CRED140] +MOTION CAPTURE ACTORS + +[CRD140A] +BLAYNE PERRY + +[CRD140B] +JONATHON SALE + +[CRD140C] +CHARLES TUCKER + +[CRD140D] +EDDIE MARRERO + +[CRD140E] +WILLIAM MCCALL + +[CRD140F] +JORGE PUPO + +[CRD140G] +ROBERT JACKSON + +[CRD140H] +TARA RADCLIFFE + +[CRD140I] +JENIFER GAMBETESE + +[CRD140J] +KRIS ACHEVARRIA + +[CRD140K] +ALI ORDOUBADI + +[CRD140L] +KAHLEEM POOLE + +[CRED141] +PEDESTRIAN DIALOGUE + +[CRD141A] +WRITTEN BY DAN HOUSER, MARC FERNANDEZ, GILLIAN TELLING AND NAVID KHONSARI + +[CRD141B] +WITH HELP FROM JEREMY POPE, LANCE WILLIAMS, AND JENNY JEMISON + +[CRED142] +WRITTEN BY + +[CRD142A] +DAN HOUSER AND JAMES WORRALL + +[CRED143] +DIRECTED BY DAN HOUSER, CRAIG CONNER, MARC FERNANDEZ, AND ALLAN WALKER + +[CRED144] +PRODUCED BY RENAUD SEBANNE + +[CRED145] +PEDESTRIANS + +[CRED146] +ADAM DAVIDSON, ADAM WATKINS, ALEJANDRO K. BROWN, ALEX ANTHONY SIOUKAS, ALEX GARCIA, + +[CRED147] +ALICE SALTZMAN, ALISON CIHRA, AMY SALIMA, AMY SALZMAN, ANDREA VIDELA, ANTHONY ATTI, + +[CRED148] +ANTHONY RIVERA, BIJAN SHAMS, BLAYNE PERRY, BRETT BISOGNO, BREYE MATA, BRIAN PANEN, + +[CRED149] +BROCK VODER, CAREY BERTINI, CHARISSE LAMBERT, CHRIS DIFAT, CHRIS REISENBERGER, + +[CRED150] +CHRISTOPHER BRODAY, CHRISTOPHER CARRO, CYNTHIA GREENE, DAMARIES LOPEZ, DAN LEE, + +[CRED151] +DAN SCHNEIDER, DAN TOYAMA, DAVID DEAN CHALTFIELD, JR., DAVID HARRISON, DAVID WILEY, + +[CRED152] +DEBORAH COLLINS, DEBRANDA CHANEY-GILES, DEMETRA KOUKOULAS, DENISE ROSADO, + +[CRED153] +DEVIN BENNETT, DEVIN WINTERBOTTOM, DORIS WOO, DOUGLAS HARRISON, DUNCAN COUTTS, + +[CRED154] +DUPE AJAYI, EDWIN AVELLANEDA, ELIZABETH HOWELL, ELIZABETH SATTERWHITE, ERIC NAGLE, + +[CRED155] +ESTEBAN KARPLUS, F. FONT, FUTABA HAYASHI, GENE HILGREEN, GERALD COSGROVE, + +[CRED156] +GERARD LUNA, GILLIAN TELLING, GREGG CARLUCCI, GREGORY CLERVOIX, GREGORY SCHWEIZER, + +[CRED157] +HADLEY TOMICKI, J. ROSSETT, JAMEEL VEGA, JASON JONES, JEFF ROSA, JENNIFER JEMISON, + +[CRED158] +JEREMY TAGGERT, JESSICA RIDER, JOSEPH GREENE,JOSEPH HOWELL, KATE DUKICH, + +[CRED159] +KEL O'NEILL, KEVIN HOPKINS, LADAWN JAMES, LANCE WILLIAMS, LAURA BUBBLES, + +[CRED160] +LAURA PATTERSON, LEE CUMMINGS, LETICIA L. YOUNG, LINDSAY KENNEDY, LISA ORITZ, + +[CRED161] +LORNA JORDAN, LUCIO AMADIO, MARCO FERNANDEZ, MARIKO TANAKA, MARLON MATTHEWS, + +[CRED162] +MARY TELLING, MASAYOSHI MITSUYAMA, MATTHEW CHUNG, MAX ALLSTADT, MAX BOGDANOV, + +[CRED163] +MELISSA ALVAREZ, MICHAEL MAY, MICHAEL ROTHSTEIN, MIGUEL VIDAL, MIKE FEDERLINE, + +[CRED164] +NATALIE DESCALZO, N'GAI MEMBERS, NICOLAS MALLO, NOELLE SADLER, NORBERT MORIVAN, + +[CRED165] +OSWALD GREENE, JR., PETER MCKAY, PETER APPEL, PRESTON SAVARESE, RAFAEL GONZALES, + +[CRED166] +RANDY JOHNSON, REY CONCEPCION, RICHARD KROGER, ROB TIBBS, ROBERT JACKSON, + +[CRED167] +ROBERT SCHULER, ROSS A. MCINTYRE, RUSSELL FOREMAN, RUTH NUNEZ, SALVADORE SUAZO, + +[CRED168] +SAM WHITE, SANTOS GONZALES, SCOTT SMITH, SEYMOUR FRAILMAN, SPELMAN BRAUMAN, + +[CRED169] +STEPHANIE TELLING, STEVE KNEZEVICH, STEVE ROBERT, SUMIKO YASUDA, SUSAN LEWIS, + +[CRED170] +SYLVIA COLACIOS, TOMOKO MIYAZAKI, TRON, VERDEL HALE, YVES MONDESIR, ZENO LEINFELDER, + +[CRED171] +DAVID BEDDOES, CHRISTINE CHALMERS, BARRY CLARK, NEIL CORBETT, KIM GURNEY, NEIL MEIKLE, + +[CRED172] +CASSIE OLIVER, LORRAINE ROY, DAVID WATSON, KEVIN WONG, WILL MORTON + +[CRED175] +ADAM DAVIDSON + +[CRED176] +LANCE WILLIAMS + +[CRED177] +NEIL MCCAFFREY + +[CRED178] +LAURA PATERSON + +[CRED179] +REY CONCEPCION + +[CRED180] +CHARLES HEROLD + +[CRED181] +ANDREW GREENWALD + +[CRED182] +JAMES MIELKE + +[CRED183] +PETER SUCIU + +[CRED184] +ALEX ODULIO + +[CRED185] +DON NKRUMAH + +[CRED186] +KENDALL PITTMAN + +[CRED187] +SAL SUAZO + +[CRED188] +EREK MATEO + +[CRED189] +CHRIS DIFATE + +[CRED190] +LEILA MILTON + +[CRED191] +DARREN ZOLTOWSKI + +[CRED192] +VIRGINIA SMITH + +[CRED193] +KEVIN CASSIN + +[CRED194] +JASON SHIGEMORI + +[CRED195] +KELLY KINSELLA + +[CRED196] +MOLLIE STICKNEY + +[CRED197] +STANTON SARJEANT + +[CRED198] +LAURA WALSH + +[CRED199] +MARK GARONE + +[CRED200] +JOANNA SLY + +[CRED201] +ELIZABETH HOWELL + +[CRED202] +ANA HERCULES + +[CRED203] +SHIRLEY IRICK + +[CRED204] +KASHONA FIELDS + +[CRED205] +JOEL M. LILJE + +[CRED206] +JOHN DIBENEDETTO + +[CRED207] +NANCY GILES + +[CRED208] +RYAN CROY + +[CRED209] +JENNIFER KOLBE + +[CRED210] +LIAM BURKE + +[CRED211] +SIGRID PREISSL + +[CRED212] +ANITA FITZSIMONS + +[CRED213] +PHILIPPA RASELLI + +[CRED214] +WIL QUESNEL + +[CRED215] +FALKO BURKERT + +[CRED216] +SARA SEWELL + +[CRED217] +RADIO STATIONS AND MUSIC + +[CRED218] +MUSIC CONSULTANCY + +[CRD218A] +HEINZ HENN + +[CRD218B] +STUART ROSS + +[CRED219] +SOUNDTRACK CO-ORDINATOR + +[CRED220] +TERRY DONOVAN + +[CRED221] +PRODUCER FOR ROCKSTAR GAMES + +[CRED222] +DAN HOUSER AND LAZLOW + +[CRED223] +PRODUCER FOR ROCKSTAR NORTH + +[CRED224] +CRAIG CONNER + +[CRED225] +ALLAN WALKER + +[CRED226] +LAZLOW + +[CRED227] +DJ BANTER AND IMAGING + +[CRED228] +WRITTEN BY DAN HOUSER AND LAZLOW + +[CRED229] +FLASH FM + +[CRD229A] +TONI-MARIA CHAMBERS + +[CRD229B] +IMAGING VOICE AND PRODUCTION-JEFF BERLIN + +[CRED230] +SPECIAL THANKS TO + +[CRED231] +TOMMY MOTTOLA, + +[CRED232] +MICHELLE ANTHONY, + +[CRED233] +STEVE BARNETT, + +[CRED234] +CHUCK FLECKENSTEIN, + +[CRED235] +RITA LIBERATOR + +[CRED236] +MARTIN & CLAIRE LOGAN + +[CRED237] +SANDRA HUTTON + +[CRED238] +CHRISTINE DAVIDSON + +[CRED239] +ALAN, RED & BIGFOOT + +[CRED240] +LE T + +[CRED241] +COLIN DONALD + +[CRED242] +KERRY STALLWOOD + +[CRED243] +ALAN MCGREGOR + +[CRED244] +CHRIS MORTON + +[CRED245] +EMIL BUSSE + +[CRED246] +EMILY BAILLIE + +[CRED247] +KEVIN ARCHIBALD + +[CRED248] +MORAG KERR + +[CRED249] +CATH WALKER + +[CRED250] +ISO BAR + +[CRED251] +WATERLINE + +[CRED252] +NEWS CAFE + +[CRD251A] +THE POND + +[CRD252A] +PIVO + +[CRED253] +BUDGET VIDEO RENTALS + +[CRED254] +LORNA'S SCOOTER + +[CRED255] +GARETH MURFIN + +[CRED256] +ADDITIONAL ART + +[CRED257] +TONY PORTER + +[CRED258] +CRAIG MOORE + +[CRED259] +CUT SCENE LIP-SYNC ANIMATION + +[CRED260] +COSGROVE HALL FILMS + +[CRED261] +PRODUCER - OWEN BALLHATCHET + +[CRED262] +SENIOR ANIMATOR - JON TURNER + +[CRED263] +ANIMATORS - RICHARD DRUMM + +[CRED264] +DAVE BROWN + +[CRED265] +MAIR THOMAS + +[CRED266] +PRASHANT PATEL + +[CRED267] +AUDIO TECHNOLOGY CONSULTANT + +[CRED268] +RIK EDE FOR GAMESOUND LTD. + +[CRED269] +DTS INTEGRATION SUPPORT + +[CRED270] +TED LAVERTY FOR DTS + +[CRED271] +CHRIS GREER FOR DTS + +[CRED272] +JASON PAGE FOR SCEE + +[CRED273] +RESEARCH AND ANALYSIS + +[CRED274] +VROCK + +[CRED275] +DJ: LAZLOW AS HIMSELF + +[CRED276] +IMAGING VOICE-JOE KELLY + +[CRED277] +IMAGING PRODUCTION-JONATHAN HANST + +[CRED278] +WAVE 103 + +[CRED279] +DJ: ADAM FIRST-JAMIE CANFIELD + +[CRED280] +IMAGING VOICE-JEN SWEENEY + +[CRED281] +IMAGING PRODUCTION-JONATHAN HANST + +[CRED282] +FEVER 105 + +[CRED283] +DJ: OLIVER 'LADYKILLER' BISCUIT-JULIUS DYSON + +[CRED284] +IMAGING VOICE MALE-ED MCMANN + +[CRED285] +IMAGING VOICE FEMALE-SHAWNEE SMITH + +[CRED286] +IMAGING PRODUCTION- LISTEN KITCHEN + +[CRED287] +EMOTION 98.3 + +[CRED288] +DJ: FERNANDO- FRANK CHAVEZ + +[CRED289] +IMAGING VOICE-JEN SWEENEY + +[CRED290] +IMAGING PRODUCTION-JONATHAN HANST + +[CRED291] +RADIO ESPANTOSO + +[CRED292] +DJ: PEPE-TONY CHILRODES + +[CRED293] +WILDSTYLE + +[CRED294] +DJ: MISTER MAGIC AS HIMSELF + +[CRED295] +IMAGING VOICE-FRANK SILVESTRO + +[CRED296] +IMAGING PRODUCTION-LAZLOW + +[CRED297] +KCHAT + +[CRED298] +WRITTEN BY DAN HOUSER AND LAZLOW + +[CRED299] +PRODUCED AND EDITED BY LAZLOW + +[CRED300] +DJ AMY SHECKENHAUSEN -LEYNA WEBER + +[CRED301] +JEZ TORRENT-KEVIN MCKIDD + +[CRED302] +MANDY -COLLEEN CORBETT + +[CRED303] +MICHELLE CARAPADIS-MARY BIRDSONG + +[CRED304] +MR.ZOO-CARL DOWLING + +[CRED305] +GETHSEMANEE-LYNN LIPTON + +[CRED306] +CLAUDE MAGINOT-JOHN MAUCERI + +[CRED307] +BJ SMITH-LAWRENCE TAYLOR + +[CRED308] +THOR-FRANK FAVA + +[CRED309] +RADIO CALLERS + +[CRED310] +COUZIN ED, JOSH CLARK, JASON BUHRMESTER, JUAN ALLER, WAYNE OLIVER, SUSAN LEWIS, GILLIAN TELLING, TOM MURRAY, MIKE FERRANTE SR., EMMANUEL GOLDSTEIN, DAN HOUSER, NICK MANDELOS, GERRY COSGROVE, MIKE PALERMO, PORKCHOP, KEITH BROADAS + +[CRED311] +LEWIS, GILLIAN TELLING, TOM MURRAY, MIKE FERRANTE SR., EMMANUEL GOLDSTEIN, + +[CRED312] +DAN HOUSER, NICK MANDELOS, GERRY COSGROVE, MIKE PALERMO, PORKCHOP, + +[CRED313] +KEITH BROADAS + +[CRED314] +VCPR + +[CRED315] +WRITTEN BY DAN HOUSER AND LAZLOW + +[CRED316] +PRODUCED BY LAZLOW + +[CRED317] +MAURICE CHAVEZ-PHILLIP ANTHONY RODRIGUEZ + +[CRED318] +JONATHAN FREELOADER- PATRICK OLSEN + +[CRED319] +MICHELLE MONTANIUS-KELLY GUEST + +[CRED320] +REP. ALEX SHRUB- CHRIS LUCAS + +[CRED321] +CALLUM CRAYSHAW- SEAN MODICA + +[CRED322] +JOHN F. HICKORY- LJ GANSEN + +[CRED323] +PASTOR RICHARDS- DAVID GREEN + +[CRED324] +JAN BROWN- MAUREEN SILLIMAN + +[CRED325] +BARRY STARK- RENAUD SEBBANE + +[CRED326] +JENNY LOUISE CRAB- MARY BIRDSONG + +[CRED327] +KONSTANTINOS SMITH- KONSTANTINOS.COM + +[CRED328] +JEREMY ROBARD-PETER SILVESTRO + +[CRED329] +RADIO COMMERCIALS + +[CRED330] +WRITTEN BY DAN HOUSER AND LAZLOW + +[CRED331] +PRODUCED BY LAZLOW + +[CRED332] +ADDITIONAL JINGLES PRODUCED BY CRAIG CONNER + +[CRED333] +COMMERCIAL VOICES: + +[CRED334] +ADAM DAVIDSON, ALEX ANTHONY, ALICE SALTZMAN, AMY SALZMAN, KATE DUKICH, + +[CRED335] +ARAN RONICLE, BARB JONES, BEN KRECH, BRIAN THOMAS, BROCK YODER, CHRIS + +[CRED336] +FERRANTE, CRAIG CONNER, DAVE RYAN, DAVID GREEN, DORIS WOO, DOUGLAS + +[CRED337] +HARRISON, ED MCMANN, FRANK CHAVEZ, FRANK FAVA, GENE HILGREEN, GREG + +[CRED338] +SCHWEIZER, HUNTER PLATIN, JAMES FERRANTE, JEFF BERLIN, JEFF ROSA, JOE KELLY, + +[CRED339] +JOHN MAUCERI, JOSH CLARK, JULIE WEMYSS, KEVIN STRALEY, KIM GURNEY, LANCE + +[CRED340] +WILLIAMS, LAURA PATERSON, LAZLOW, LISA ORTIZ, LORNA JORDAN, LUCIEN JONES, + +[CRED341] +MAUREEN SILLIMAN, MIKE FERRANTE JR., PETE GUSTIN, PETER SILVESTRO, RAFF + +[CRED342] +CROLLA, RANDY JOHNSON, RICHARD KRUGER, RON REEVE, SHELLEY MILLER, SKY, TJ ALLARD + +[CRD344A] +AUDIO RECORDED AT DIGITAL ARTS STUDIOS, + +[CRED344] +NYC, TRACK 9 STUDIOS, NYC, + +[CRED345] +WEDDINGTON MULTIMEDIA, LOS ANGELES, + +[CRD345A] +SYNC SOUND, NYC AND RADIO LAZLOW, LONG ISLAND. + +[CRED346] +THANKS TO AXEL ERICSON AND WON LEE AT DIGITAL ARTS, PAUL VASQUEZ AT TRACK 9 STUDIOS, JOHN BOWEN AND JOHN HASSLER AT SYNC SOUND + +[CRED347] +MARK LLOYD + +[CRED348] +TIM BATES + +[CRED349] +KIT BROWN + +[CRED350] +ANDY MASON + +[CRED351] +PHIL DEANE + +[CRED352] +PHIL ALEXANDER + +[CRED353] +MATT HEWITT + +[CRED354] +DENBY GRACE + +[CRED355] +ANTOINE CABROL + +[CRED356] +JONATHAN STONES + +[CRED357] +MIKE BLACKBURN + +[CRED358] +TIM MCGAFF [CINCAM] Cinematic-Kamera -[FEDS_AM] -<>-MENÜ WECHSELN +[RC4] +'ROCK'N ROLL MIT RUMPO' -[KABOOM] -KA-WUMM! - -[SPLAT] -PLATT! - -[PANCAK] -IM EIMER! - -[SOAKED] -FERTIG! - -[HEAD] -Head Radio - -[DBL_CLF] -Double Clef FM - -[FLASHB] -Flashback FM - -[RISE] -Rise FM - -[LIPS] -Lips 106 - -[CHAT] -Chatterbox FM - -[K_JAH] -K-Jah Radio - -[GAM_FM] -Game Radio FM - -[MSX_FM] -MSX FM +[LEGAL] +~g~Schalte die kriminelle Bedrohung aus! [GA_2] -~w~Neuer Motor und neue Lackierung: $100 +Neuer Motor und neue Lackierung. Die Cops werden dich nicht identifizieren! + +[HELP15] +Wenn zu Fuß unterwegs, drücke die ~h~~k~~PED_LOOKBEHIND~~w~, um ~h~nach hinten zu sehen~w~. Benutze den ~h~rechten Analog-Stick~w~, um dich ~h~umzusehen~w~. + +[FEC_LB4] +Nach hinten sehen (R3-Taste) [PERPIC] -Gefundene versteckte Päckchen +Versteckte Pãckchen gefunden + +[CO_ONE] +Verstecktes Pãckchen ~1~ von ~1~ [GA_21] -~w~In dieser Garage bringst du keine Fahrzeuge mehr unter. +In dieser Garage bringst du keine Autos mehr unter. [CHEAT1] Cheat aktiviert @@ -3259,14 +4106,8 @@ Geld-Cheat [CHEAT7] Wetter-Cheat -[FEDS_BA] -"-Taste - ZURÜCK - -[FED_WIS] -BREITWAND: - [USJ_ALL] -~w~ALLE MONSTER-STUNTS ABSOLVIERT! +ALLE MONSTER-STUNTS ABSOLVIERT! [JAN] Jan @@ -3275,7 +4116,7 @@ Jan Feb [MAR] -Mär +Mãr [APR] Apr @@ -3310,12021 +4151,5061 @@ Dez [BONUS] ~g~BONUS $~1~ -[TAXI_M] -'Taxifahrer' +[HORN1] +Drück die ~h~~k~~VEHICLE_HORN~~w~, um zu ~h~hupen. -[COP_M] -'Bürgerwehr' +[HORN2] +Drück die ~h~~k~~VEHICLE_HORN~~w~, um zu ~h~hupen. -[FIRE_M] -'Feuerwehrmann' - -[AMBUL_M] -'Sanitäter' - -[HJ_IS] -~w~IRRSINNS-STUNT-BONUS: $~1~ - -[HJ_PIS] -~w~SUPER IRRSINNS-STUNT-BONUS: $~1~ - -[HJ_DIS] -~w~DOPPELTER IRRSINNS-STUNT-BONUS: $~1~ - -[HJ_PDIS] -~w~SUPER-DOPPEL-IRRSINNS-STUNT-BONUS: $~1~ - -[HJ_TIS] -~w~DREIFACHER IRRSINNS-STUNT-BONUS: $~1~ - -[HJ_PTIS] -~w~SUPER-DREIFACH-IRRSINNS-STUNT-BONUS: $~1~ - -[HJ_QIS] -~w~VIERFACHER IRRSINNS-STUNT-BONUS: $~1~ - -[HJ_PQIS] -~w~SUPER-VIERFACH-IRRSINNS-STUNT-BONUS: $~1~ - -[HJBAD] -~w~Grausige Landung - fast hättest du $~1~ gewonnen! - -[HJUP] -Takeoff health: ~1~ - -[HJDOWN] -Landing health: ~1~ - -[FESZ_LS] -Laden erfolgreich. - -[CEDBUG1] -!!Debug Event!! - -[CEDBUG2] -!!Player is dead or not playing!! - -[CEDBUG3] -!!Player is in INDUSTRIAL level!! - -[CEDBUG4] -Trying to make COLLECTIVE with ~1~ - -[CEDBUG5] -Debug Value: ~1~ - -[CEDBUG6] -Debug Values: A: ~1~ B: ~1~ - -[CEDBUG7] -Debug Values: A: ~1~ B: ~1~ C: ~1~ - -[LINE] -This is Line ~1~ - -[MRACE08] -~w~Komm wieder, wenn du eine Karre hast! - -[MRACE01] -~w~Warte auf ein paar Gegner und dann hupe, um das Rennen zu starten! - -[MRACE02] -~w~Das Rennen beginnt, wenn der erste Spieler hupt. - -[MRACE05] -~r~DU HAST VERLOREN! - -[MRACE07] -~r~Du bist tot! Du Loser! - -[MRACE06] -~r~Du Flasche hast aufgegeben! - -[MRACE09] -~w~Fahr das Rennen weiter! - -[MRACE10] -~w~Du hast (ein Rennen ohne Gegner) gewonnen! - -[MRACEPO] -Platzierung - -[MRCPU03] -DU HAST ALLEN EINGEHEIZT! - -[MRCPU04] -DU STEHST IN FLAMMEN! ( ------- TRASHMASTER ODD-JOB MISSION ------- ) - -[TRASH1] -Turbo-Müll - -[TRASH1A] -~w~Hole die Tonnen ab und bring den Müll zur Mülldeponie. - -[TRASH1C] -~w~Die Zeit läuft, wenn du die erste Tonne abholst. Die REIHENFOLGE IST BELIEBIG. - -[TRASH1G] -~r~Überfordert? Das war eine Leistung für den Müll! - -[TRASH1H] -~r~Die Zeit ist um! - -[TRASH1J] -~r~Du bist zu weit von deiner Route abgewichen! - -[TRASH1K] -~w~Hol die ~g~Tonnen~w~ ab! - -[TRASH1L] -~w~Fahr zurück zur ~y~Mülldeponie! - -[TRASH1M] -~w~Müll abgeholt! +~1~ Sekunden - -[PCJINFO] -~w~Fahr alle 25 ~y~Checkpoints~w~ in ~1~ Sekunden ab. - -[PCJFAIL] -~r~Du hast die Zeit von ~1~ Sek. nicht schlagen können! - -[PCJPROM] -~w~Du hast ~1~ Sekunden, um wieder auf das ~b~Motorrad~w~ zu steigen! - -[PCJPRO1] -~w~Du hast ~1~ Sekunde, um wieder auf das ~b~Motorrad~w~ zu steigen! - -[PCJDEST] -~r~Motorrad zerstört! - -[PCJRET] -~r~Du bist nicht wieder aufs Motorrad gestiegen. - -[PCJTIME] -~r~Die Zeit ist um! - -[PCJCHEC] -~w~Checkpoint ~1~ von ~1~ - -[TRRACE1] -~w~Für jeden abgefahrenen Checkpoint erhältst du einen Zeitbonus... - -[TRRACE3] -~w~Du bist mit einer Restzeit von ~1~ Sek. ins Ziel gekommen! - -[TRRACE4] -~w~Du hast ~1~ von ~1~ Checkpoints als Erster erreicht. - -[TRRACE5] -~w~Das bringt dir $~1~ ein! - -[TRRACE6] -~w~SUPER! Du hast alle Checkpoints als Erster erreicht! Das bringt $1000 Bonus! - -[TRRACE7] -~r~Du hast die Strecke verlassen! - -[TRRACE8] -~r~Dein Motorrad wurde zerstört! - -[TRRACE9] -~r~Du bist nicht rechtzeitig zu deinem Motorrad zurückgekehrt! - -[TRRAC10] -~r~Du hast dein Motorrad verloren! - -[TRRAC11] -~r~Die Zeit ist um! - -[ANG] -Avenging Angels - -[ANG_1] -~w~Hey, Kumpel! Wir säubern diese Stadt vom Verbrechen! - -[ANG_2A] -Drücke~h~ ~k~ ~TGSUB~~w~, um dich den Avenging Angels anzuschließen. - -[ANG_3] -~w~Du und ich könnten diese Stadt alleine aufmischen, aber, äh... holen wir lieber Hilfe, für alle Fälle. - -[ANG_3A] -~w~Bleib neben anderen Avenging Angels stehen, damit sie sich deiner Truppe anschließen. - -[ANG_4] -~w~Yo! Ich bin bei diesem Sauhaufen, um Gesocks aufzumischen. Also los! - -[ANG_5] -~w~Ich bin dabei... - -[ANG_6] -~w~Machen wir ein paar Dreckschweine fertig! - -[ANG_7] -~w~Gesocks aufmischen ist geil! - -[ANG_7A] -~w~Ist das nicht der Hammer?! - -[ANG_7B] -~w~Wir dulden keine Schläger-Gangs auf unseren Straßen! - -[ANG_7C] -~w~Nicht vor meiner Haustür! - -[ANG_7D] -~w~Wird Zeit, dass wir zurückschlagen! - -[ANG_7E] -~w~Wir sind das Gesetz in dieser Stadt! - -[ANG_8] -Zeit - -[ANG_9] -~w~Zeit verlängert! - -[ANG_10] -~r~Die Zeit ist um! - -[ANG_11] -~w~In der Nähe lungert 'ne Meute von 'unerwünschten Elementen' rum... erteilen wir ihnen eine Lektion. - -[ANG_12] -~w~Ein Lynchmob macht Terz auf der Straße! Stellen wir die Idioten ruhig! - -[ANG_13] -~w~Was ist aus dieser Stadt geworden? Denken die Leute, wir hätten Versammlungsfreiheit? Denen zeigen wir's! - -[ANG_13A] -~w~Eine üble Gang wurde beobachtet, wie sie auf der Straße Leute schikaniert hat... - -[ANG_14] -~w~Es wurde wieder ein Verbrechen gemeldet... los! - -[ANG_16] -~w~Es wurden Leute beim Falschparken beobachtet! LOS, KOMMT! - -[ANG_16A] -~w~Ich kenn ein paar Typen, die führen immer was im Schilde. Wird Zeit, dass wir denen eine Abreibung verpassen! - -[ANG_OBJ] -~w~Zieh die unruhestiftende ~r~Gang~w~ aus dem Verkehr. - -[ANG_17] -~w~Gute Arbeit, Kumpel! Dank dir ist diese Gegend sicher. Fürs Erste jedenfalls... - -[ANG_18] -~w~Sie hauen ab! - -[ANG_19] -~w~Suche einen Avenging Angel und stell dich neben ihn, um deine nächste Mission zu erhalten. - -[ANG_20] -~w~Sie suchen das Weite! - -[ANG_21] -~w~Sie dürfen nicht entkommen! - -[VIC1] -Home Sweet Home - -[VIC2] -Slacker - -[VIC3] -Payback-Time - -[VIC4] -Snuff-Movie - -[VIC5] -Eingekesselt - -[VIC6] -Hot Wheels - -[VIC7] -Portland Kettensägen-Maskerade - -[MAR1] -Shopping-Koller - -[MAR2] -Immer Ärger mit Maria - -[MAR3] -Preis-Titten - -[MAR4] -Biker-Trouble - -[MAR5] -Überdosis Trouble - -[SAL1] -Das Angebot - -[SAL2] -Nutten-Express - -[SAL3] -Einschüchterungstaktik - -[SAL4] -Achterbahnfahrt - -[SAL5] -Gratis Stoff - -[SAL6] -Sindacco-Sabotage - -[SAL7] -Trouble mit den Triaden - -[SAL8] -Mr. Leone und sein Chauffeur - -[JDT1] -Pferdchenkontrolle - -[JDT2] -Die Razzia - -[JDT3] -Eine brisante Situation - -[JDT4] -Explodierende 'Dolls' - -[JDT5] -Salvatores Rettung - -[JDT6] -Die Kanonen von Leone - -[JDT7] -Ruhe vor dem Sturm - -[JDT8] -Der Capo in spe - -[MAC1] -Das Riesen-'Baby' - -[MAC2] -Big Stress in Little China - -[MAC3] -Too Much-o Sucho - -[MAC4] -'Schweine'-Fleisch - -[MAC4_0] -Casa - -[MAC5] -Der verstoßene Sohn - -[SALH1] -Kurzer Prozess - -[SALH2] -Arrivederci, Paulie! - -[SALH3] -Shogun Showdown - -[SALH4] -Salvatores Gerichtstermin - -[SALH4_V] -~r~v1.1 - -[SALH5] -Das Sizilianische Gambit - -[SALH5_V] -~r~v1.1 - -[DONH1] -Bauherrenmodell Panlantic - -[DONH2] -Presse-Pressing - -[DONH3] -Auferstehung bis zum Abwinken - -[DONH4] -Bastelzaster - -[DONH5] -Fall auf Knall - -[DONH6] -Love auf der Flucht - -[TOSH1] -Waffen raffen - -[TOSH2] -Knetenfete - -[TOSH2F0] -~r~Ein Van hat den Yakuza-Komplex erreicht! - -[TOSH2F1] -~r~Der Konvoi hat den Yakuza-Komplex erreicht! - -[TOSH2F2] -~r~Du hast die Geldtransporter nicht zerstört! - -[TOSH2M0] -~w~Einer weniger! - -[TOSH2M1] -~w~Noch einer weniger! - -[TOSH3] -Rendezvous mit dem Tod - -[TOSH4] -Kazukis Kassensturz - -[PO_MOB1] -~w~Toni? Hier ist deine Ma! - -[POMOB1A] -~w~Wie lange bist du schon wieder in der Stadt? - -[POMOB1B] -~w~Wieso kommst du mich nicht besuchen? - -[POMOB1C] -~w~Was ist nur los mit dir? - -[POMOB1D] -~w~Ich bin deine Mutter, Himmel noch mal! Wirklich! - -[PO_MOB2] -~w~Hallo, Fiffi! Hier Maria. - -[PO_MOB3] -~w~Hey, Toni! Hier JD. - -[POMOB3A] -~w~Es heißt überall, dass du bald 'ne große Nummer wirst. - -[POMOB3B] -~w~Ich hoffe, du vergisst deinen alten Kumpel JD nicht, wenn du ganz oben bist. Okay? - -[POMOB4A] -~w~Was willst du, verflucht? - -[POMOB4B] -~w~Jemand, der dir deine Wäsche abholt? Oder dir den Arsch abwischt? - -[POMOB4C] -~w~Hab dich nicht so. Hör mal, mir tut das alles Leid... - -[POMOB4F] -~w~Ein schönes Stück Arsenkuchen? - -[POMOB4G] -~w~Vergiss es. - -[POMOB4I] -~w~Salvatore hat davon erfahren und meinte, wir sollten beide erwachsen werden. - -[POMOB4J] -~w~Und das versuch ich hiermit gerade. Es tut mir Leid. Komm! - -[PO_MOB5] -~w~Toni? Hier Salvatore. - -[POMOB5A] -~w~Wir haben schweren Ärger! Beweg deinen Arsch her, pronto! - -[PO_MOB6] -~w~Anthony? Hier Salvatore. - -[POMOB6A] -~w~Hast du Maria gesehen? - -[ST_MOB8] -~w~Ja? - -[STMOB8A] -~w~Toni? Hier Sal. - -[STMOB8B] -~w~Ich muss mit dir reden. Aber diesen Scheiß-Handys trau ich nicht. - -[STMOB8C] -~w~Ich ruf dich in der Telefonzelle vor dem Gericht an. - -[ST_MOB1] -~w~Toni. Donald hier. - -[STMOB1A] -~w~Da wäre eine dringende Sache, bei der ich deine... besonderen Talente brauche. - -[STMOB1B] -~w~Komm bitte baldmöglichst zu mir ins Büro. - -[ST_MOB2] -~w~Ja? - -[STMOB2A] -~w~Cipriani? Ich bin's, McAffrey. - -[STMOB2B] -~w~Ich hab Neuigkeiten, die Salvatore interessieren könnten. - -[STMOB2C] -~w~Komm zu unserem üblichen Treffpunkt. - -[ST_MOB3] -~w~Ja? - -[STMOB3A] -~w~Sal hier. - -[STMOB3B] -~w~Hör zu, die Forellis hatten Bürgermeister Hole in der Tasche. - -[STMOB3D] -~w~Ich kenn 'nen Geschäftsmann - große Nummer - der würd alles tun, um Bürgermeister zu werden. - -[STMOB3E] -~w~Er ist ein komplettes Arschloch, also geeignet für das Amt. - -[STMOB3F] -~w~Ich hab ihm gesagt, du sorgst dafür, dass er die Wahl gewinnt... für uns! - -[ST_MOB4] -~w~Hallo. - -[STMOB4A] -~w~Toni. Ich bin's, Sal. - -[STMOB4B] -~w~Ich riech, dass die Forellis hinter der Scheiße stecken, in der ich sitze. - -[STMOB4C] -~w~Was ich wissen will, ist: warum haben sie dafür gesorgt, dass mir der Bürgermeister die Hölle heiß macht? - -[STMOB4D] -~w~Hör zu, wir treffen uns unten am Pier. - -[STMOB4E] -~w~Und betreiben ein bisschen Recherche. - -[ST_MOB5] -~w~Yo! - -[STMOB5B] -~w~Fahr rüber zur Telefonzelle in Torrington. - -[STMOB5C] -~w~Wir müssen reden. - -[STMOB5D] -~w~Fahr auf dem Weg noch bei einem Geschäftsfreund von mir in Aspatria vorbei. - -[STMOB5E] -~w~Er wird uns helfen, die Sindaccos und Forellis unter Druck zu setzen. - -[ST_MOB6] -~w~Ja? - -[STMOB6A] -~w~Toni? Hier Sal. - -[STMOB6B] -~w~Fahr zur Telefonzelle auf dem Liberty Campus. - -[STMOB6C] -~w~Es ist wichtig. - -[ST_MOB7] -~w~Ja? - -[STMOB7A] -~w~Toni? Sal hier. - -[STMOB7B] -~w~Fahr rüber nach Belleville, zu der Telefonzelle dort. - -[STMOB7C] -~w~Du musst dringend was für mich erledigen. - -[ST_MOB9] -~w~Hier Toni Cipriani. - -[STMOB9A] -~w~Toni? Hier ist deine Ma. - -[STMOB9B] -~w~Ich hab's eben gehört. Du bist Capo geworden. - -[STMOB9C] -~w~...Ich habe keine Sekunde an dir gezweifelt, mein Sohn! - -[STMOB9D] -~w~...und wo du dich jetzt endlich bewährt hast, - -[STMOB9E] -~w~ruf ich die Killer zurück, die ich auf dich angesetzt hatte. - -[STMOB9F] -~w~Vergessen wir das Ganze. - -[STMOB9G] -~w~Schließlich hab ich ja nur dein Bestes gewollt. - -[STMOB9H] -~w~Ah, was sind das für Söhne, die ihre Mutter so weit bringen? - -[STMOB9I] -~w~Bis bald, mein Sohn. Vergiss deine alte Ma nicht. - -[STMO10] -~w~Ja? - -[STMO10A] -~w~Hey, Großmaul. McAffrey hier. - -[STMO10B] -~w~Das FBI ist deinem Boss Salvatore draufgekommen. - -[STMO10C] -~w~Und die sind stinksauer. - -[STMO10D] -~w~Die hängen ihm jetzt ungefähr jedes Verbrechen in dieser Stadt an. - -[STMO10E] -~w~Also, wir kennen uns nicht. Klar? - -[SH_MOB1] -~w~Toni...? - -[SHMOB1A] -~w~Sal? Bist du das? - -[SHMOB1B] -~w~Hey, Schnauze! Ich sprech mit meinem Anwalt! - -[SHMOB1C] -~w~Toni? ...Ich meine, äh... Lionel? - -[SHMOB1D] -~w~Hör zu. Sie haben mich erwischt. Ist das zu fassen? - -[SHMOB1E] -~w~Ich steck schwer in der Scheiße. - -[SHMOB1F] -~w~Also beweg deinen Arsch hierher, du musst was für mich erledigen. - -[SHMOB1G] -~w~...Lionel? - -[SH_MOB2] -~w~Ja? - -[SHMOB2A] -~w~Toni? Hier Donald. - -[SHMOB2B] -~w~Nein, warte! Leg nicht auf! - -[SHMOB2C] -~w~Ich hab ein sehr verlockendes Angebot für dich... - -[SHMOB2D] -~w~Komm bitte zu meinem augenblicklichen... ähm... Wohnsitz und ich erklär dir alles. - -[SHMOB2E] -~w~Toni...? - -[SHMOB2F] -~w~Bitte, Toni, hab Erbarmen. Ich ruf mit meinem letzten Groschen a-... - -[SH_MOB3] -~w~Ist da Mr. Cipriani? - -[SHMOB3A] -~w~Wer ist da? Woher haben Sie meine Nummer? - -[SHMOB3B] -~w~Geht man mit dem nötigen Willen zu Werke, so erreicht man allerlei. - -[SHMOB3C] -~w~Das brauche ich ja Ihnen nicht zu sagen, Mr. Cipriani. - -[SHMOB3D] -~w~Ich benötige Ihre Hilfe in einer delikaten Angelegenheit. - -[SHMOB3E] -~w~Und für diese Hilfe werden Sie reich belohnt. - -[SHMOB3F] -~w~Alles Weitere, wenn Sie bei meiner Wohnung in Torrington eintreffen. - -[SH_MOB4] -~w~Toni! Hier ist Sal! - -[SHMOB4A] -~w~Du hast es geschafft! Nicht zu fassen! - -[SHMOB4B] -~w~Wir sind fast aus dem Schneider! - -[SHMOB4C] -~w~Komm zu mir. Wir müssen nur noch ein paar Kleinigkeiten regeln. - -[SH_MOB5] -~w~Toni? Donald hier. - -[SHMOB5A] -~w~Wenn der Panlantic-Deal zustande kommen soll, müssen wir, ähm... - -[SHMOB5B] -~w~wie drück ich das am vorsichtigsten aus... - -[SHMOB5C] -~w~ein kleines Areal in Fort Staunton 'räumen'. - -[SHMOB5D] -~w~Mit 'wir' meinen Sie mich, stimmt's? - -[SHMOB5E] -~w~Toni, du hast mich durchschaut. - -[SHMOB5F] -~w~Fahr zu 8-Ball. Er kann uns das nötige Werkzeug sicher beschaffen. - -[SHMOB5G] -~w~I'm sure he can provide us with the necessary hardware. - -[SH_MOB6] -~w~Mein Alter? Hier ist 8-Ball. - -[SHMOB6A] -~w~Dein Werkzeug liegt abholbereit. - -[AHIT_H0] -~w~Hast du nicht mehr drauf, Arschgesicht? - -[AHIT_H1] -~w~Zum Kuckuck! Wann geben die Idioten endlich auf? - -[AHIT_H2] -~w~Leck mich am Arsch, Wichskopf! - -[AHIT_H3] -~w~Langsam geht ihr mir auf den Sack! - -[AHIT_BI] -~w~Sei auf der Hut! Einer von Mas Killern ist in der Nähe! - -[AHIT_TA] -~w~Halte die Augen offen! Einer von Mas gedungenen Mördern ist in der Nähe! - -[AHIT_BU] -~w~Pass auf! Einer von Mas Killern ist im Anmarsch! - -[AHIT_AM] -~w~Vorsicht! Einer von Mas Auftragskillern hat dich gesehen! - -[AHIT_VA] -~w~Sei wachsam! Einer von Mas Killern ist in der Gegend! - -[AHIT_PO] -~w~Gib Acht! Einer von Mas Killern will dich aufs Korn nehmen! - -[AHIT_CA] -~w~Pass auf! Einer von Mas Attentätern nähert sich dir! - -[K_TKT] -Schrottplatz-Challenge - -[K_TK2] -~w~Fahr durch die Markierungen, um Punkte zu sammeln. - -[K_TK4] -~w~Sammle möglichst viele Punkte, bevor die Zeit abgelaufen ist! - -[K_CD] -~w~Du hast ~1~ Sekunden, um zu deinem ~b~Motorrad~w~ zurückzukehren! - -[K_TKP1] -~w~1 Punkt! - -[K_TKP2] -~w~2 Punkte! - -[K_TKP3] -~w~3 Punkte! - -[K_SC] -Punkte - -[K_SCX] -~w~Du hast ~1~ Punkte erzielt! - -[K_SCX1] -~w~Du hast 1 Punkt erzielt! - -[K_HSC1] -~w~Neuer High Score von ~1~ Punkten! - -[K_HSC2] -~r~Du konntest den High Score von ~1~ Punkten nicht übertreffen. - -[KRUSH] -Du bekommst nun viermal so viel Geld, wenn du die Schrottpresse benutzt. - -[KRUSH2] -Du bekommst nun achtmal so viel Geld, wenn du die Schrottpresse benutzt. - -[TURFAIL] -~r~JOB BEENDET! - -[TKR1] -Jagdszenen in 9mm - -[TKR2] -Scooter Shooter - -[TCKILL] -Hits - -[TCHEAL] -Schaden - -[TC2_1] -~r~Du hast deinen Fahrer umgebracht! - -[TC2_2] -~r~Fahrzeug zerstört! - -[TC2_3] -~r~Die Zeit ist um! - -[TC_T_E] -~w~Ziel eliminiert! $~1~ - -[TUP_BR] -~w~Eliminiere so viele ~r~Ziele ~w~wie möglich innerhalb des Zeitlimits. - -[TUP_BR2] -~w~Eliminiere mehr als ~1~ ~r~Ziele ~w~für einen neuen High Score! - -[TUP_AD] -~w~Du hast 3 Adrenalin-Pillen. Drücke die R1-Taste, um eine zu nehmen. - -[TUPSC1] -~w~Neuer High Score von ~1~ Hits! - -[TUPSC2] -~r~Du konntest den High Score von ~1~ Hits nicht übertreffen. - -[MPWCS1] -The Wedding List - -[MPWCS2] -Hey, wie geht's? - -[MPWCS3] -Hör mal, mein Sohn Joey heiratet! - -[MPWCS4] -Ich hab ein klasse Mädchen für ihn ausgesucht, genau wie meine Maria... Kann's kaum erwarten, die beiden bekannt zu machen. - -[MPWCS5] -Ich will nur nicht, dass sie ihn mit einem von den Schrottkarren rumfahren sieht, die er in seiner Werkstatt zusammenflickt. - -[MPWCS6] -Deshalb gehst du mal in der Stadt nach einem anständigen Auto schauen. - -[MPWCS7] -Soll dein Schaden nicht sein. - -[MPTCS1] -Tanks for the Memories - -[MPTCS2] -Hier Sal. Ich brauch einen, der die Bullen ablenkt und das machst du. - -[MPTCS3] -Ich hab am anderen Ende der Stadt einen Panzer stehen. Richte ordentlich Verwüstung damit an! - -[MPTCS4] -Die Leute sollen denken, sie hätten auf General Pattons Grab gepinkelt. - -[MPTCS5] -Dieses Ablenkungsmanöver ist sehr wichtig. Deshalb hab ich auch noch andere engagiert, um das Ding zu fahren. - -[MPTCS6] -...aber ich zahl nur den, der am längsten hinterm Steuer hockt. - -[MPRCS1] -Street Rage - -[MPRCS2] -Hier spricht Salvatore Leone! Euer nimmermüder Wohltäter. - -[MPRCS3] -Glaubt dem Staatsanwalt kein Wort! - -[MPRCS4] -Ich bin ein guter und großzügiger Freund Liberty Citys. Deshalb sponsere ich dieses tolle Rennen heute. - -[MPRCS5] -Wie viel kostet mich der Scheiß? - -[MPRCS6] -WAS?! Holt den Notarzt! Ich hab Herzstechen! - -[MPHPCS2] -Hier Sal... das FBI hat mein Telefon angezapft, deshalb kein Klartext - -[MPHPCS3] -Unter dem Telefon ist eine Aktentasche voller Präsidentenporträts und eine Liste mit Namen. Jetzt rate, was ich will... - -[MPHPCS4] -Warte! Nicht, dass du jetzt das Geld an die Wichser auf der Liste verteilst! - -[MPHPCS5] -Ich meine... der Anblick von RADIESCHEN, der hat doch was... - -[MPHPCS6] -Warte! Nicht, dass du jetzt Radieschen kaufst! Die sollen sich die von... ähm... - -[MPHPCS7] -Ach, leg die Wichser auf der Liste einfach alle um! - -[DEB0] -DEBUG 0 - -[DEB1] -DEBUG 1 - -[DEB2] -DEBUG 2 - -[DEB3] -DEBUG 3 - -[DEB4] -DEBUG 4 - -[NUM0] -DEBUG 0 (~1~) - -[NUM1] -DEBUG 1 (~1~) - -[NUM2] -DEBUG 2 (~1~) - -[NUM3] -DEBUG 3 (~1~) - -[NUM4] -DEBUG 4 (~1~) - -[CARS] -'Autohändler' - -[BIKE] -'Motorradhändler' - -[RACE_0] -Platzierung - -[RACE_FL] -~w~LETZTE RUNDE - -[RACE_X0] -~w~Schnapp dir ein Auto und fahr zur ~y~Startlinie! - -[RACE_X1] -~w~Schnapp dir ein Motorrad und fahr zur ~y~Startlinie! - -[RACE_X2] -~w~Du brauchst ein Auto für dieses Rennen! - -[RACE_X3] -~w~Du brauchst ein Motorrad für dieses Rennen! - -[RACE_X4] -~w~Du hast ~1~ Sekunden, um ein Auto zu finden. - -[RACE_X5] -~w~Du hast ~1~ Sekunden, um ein Motorrad zu finden. - -[RACE_X6] -~w~Du hast 1 Sekunde, um ein Auto zu finden. - -[RACE_X7] -~w~Du hast 1 Sekunde, um ein Motorrad zu finden. - -[RACE_T0] -~r~Du bist nicht Erster geworden! - -[RACE_T1] -~r~Du wirst disqualifiziert, weil du dein Auto verlassen hast. - -[RACE_T2] -~r~Einer der Fahrer ist gestorben - das Rennen wird abgeblasen! - -[RACE_T3] -~r~Du wirst disqualifiziert, weil du dein Motorrad verlassen hast. - -[RACE_Y3] -~w~3 - -[RACE_Y2] -~w~2 - -[RACE_Y1] -~w~1 - -[RACE_Y] -~w~LOS! - -[RACE_Z1] -~w~1. PLATZ - -[RACE_Z2] -~w~2. PLATZ - -[RACE_Z3] -~w~3. PLATZ - -[RACE_Z4] -~w~LETZTER PLATZ - -[RACE_R1] -~w~REKORD: ~1~:~1~~1~ NEUER REKORD! - -[RACE_R2] -~w~NEUER REKORD! - -[RACE_S0] -~w~ZEIT: ~1~:~1~~1~ - -[RACE_S1] -~w~BESTE RUNDE: ~1~:~1~~1~ - -[RAC1] -Low Rider Rumble - -[RAC2] -Deimos Dash - -[RAC3] -Wi-Cheetah Run - -[BIK1] -Rotlicht-Racing - -[BIK2] -Torrington TT - -[BIK3] -Gangsta GP - -[TT1] -Krasses Gelände - -[TT1_A1] -~w~< STRECKE ~1~ > - -[TT1_B1] -~w~Strecken-Ziel: ~1~:~1~ - -[TT1_B1A] -~w~Strecken-Ziel: ~1~:0~1~ - -[TT1_B2] -~w~Streckenbestzeit: ~1~:~1~ - -[TT1_B2A] -~w~Streckenbestzeit: ~1~:0~1~ - -[TT1_B3] -~w~Rundenbestzeit: ~1~:~1~ - -[TT1_B3A] -~w~Rundenbestzeit: ~1~:0~1~ - -[TT1_B4] -~w~~1~:~1~ - -[TT1_B4A] -~w~~1~:0~1~ - -[TT1_B5] -~w~Neuer Streckenrekord! ~1~:~1~ - -[TT1_B5A] -~w~Neuer Streckenrekord! ~1~:0~1~ - -[TT1_L] -~r~Nicht verfügbar. - -[A_PISTO] -~w~< Pistole > - -[A_UZI] -~w~< Micro SMG > - -[A_AK] -~w~< AK > - -[A_SNIPE] -~w~< Präzisionsgewehr > - -[A_GRENA] -~w~< Granaten > - -[A_ARMOU] -~w~< Kugelsichere Weste > - -[A_ROCKE] -~w~< Raketenwerfer > - -[A_SHOTG] -~w~< Schrotflinte > - -[A_M4] -~w~< M4 > - -[A_FLAME] -~w~< Flammenwerfer > - -[A_MINIG] -~w~< Minigun > - -[A_COST] -~w~Preis: ~h~$~1~ - -[A_COST2] -~w~Preis: ~h~$~1~ ~n~ ~r~Deine augenblickliche Waffe wird durch diese ersetzt. - -[A_COST3] -~w~Preis: ~h~$~1~ ~n~ ~r~Deine kugelsichere Weste ist in guter Verfassung. - -[A_COST4] -~w~Preis: ~h~$~1~ ~n~ ~r~Das kannst du dir nicht leisten. - -[A_STOCK] -~r~Nicht vorrätig. - -[A_VIC4] -~w~Eine Pistole kostet normalerweise $240, aber die geht auf Vincenzo. - -[A_DONS4] -~w~Donald Love hat dafür schon bezahlt. - -[A_NEDS4] -~w~Irgendein Kirchentyp hat einen davon für dich reservieren lassen. - -[A_TALK1] -~w~Ich hab alles, was man zur Selbstverteidigung braucht. - -[A_TALK2] -~w~Brauchen Sie auch 'nen Waffenschein? - -[A_TALK3] -~w~Ausweis ist nicht nötig. Sie sehen vertrauenswürdig aus. - -[A_TALK4] -~w~Probieren Sie doch unseren Schießstand hinterm Haus aus. - -[BENZ_GO] -~w~Wechsle deine Kleidung! - -[PIZ_B01] -~w~Du hast ~1~ Sekunde, um zu dem ~b~Pizza-Moped~w~ zurückzukehren! - -[PIZ_B02] -~w~Du hast ~1~ Sekunden, um zu dem ~b~Pizza-Moped~w~ zurückzukehren! - -[PIZ_F04] -~r~Du bist nicht rechtzeitig zu dem Pizza-Moped zurückgekehrt! - -[NDL_B01] -~w~Du hast ~1~ Sekunde, um zu dem ~b~Nudel-Moped~w~ zurückzukehren! - -[NDL_B02] -~w~Du hast ~1~ Sekunden, um zu dem ~b~Nudel-Moped~w~ zurückzukehren! - -[NDL_F04] -~r~Du bist nicht rechtzeitig zu dem Nudel-Moped zurückgekehrt! - -[EXPO_D] -~w~Hier, Finderlohn: $~1~! Wenn du alle auf der Liste abgeliefert hast, gibt's einen Bonus! - -[PUPSPN] -~w~POWERUP ERSCHIENEN! - -[PUPMEGA] -~y~MEGA-SCHADEN! - -[PUPREGN] -~y~SCHNELLERHOHLUNG! - -[PUPINVS] -~y~UNSICHTBARKEIT! - -[PUPFREZ] -~y~RAKETEN-SPECIAL! - -[MPK] -erledigte - -[MPKHEAD] -mit einem entscheidenden Treffer! - -[MPNEED] -braucht nur noch - -[MPNAME] -Name - -[MPSCORE] -Score - -[MPPING] -Ping - -[MPCPS] -Checkpoints - -[MPTIME] -Zeit - -[MPBONUS] -Bonus - -[MPQG] -Spiel beenden? - -[MPQUIT] -Beenden - -[MPCONT] -Fortsetzen - -[MPHIGH] -Längste Zeit - -[MPBY] -von - -[MPOVER] -Game Over - -[MPFIRST] -war als Erster fertig - -[MPWITH] -siegt mit $ - -[MPHP05] -~w~5 Sekunden, bis einer markiert wird. - -[MPHP04] -~w~4 Sekunden, bis einer markiert wird. - -[MPHP03] -~w~3 Sekunden, bis einer markiert wird. - -[MPHP02] -~w~2 Sekunden, bis einer markiert wird. - -[MPHP01] -~w~1 Sekunde, bis einer markiert wird. - -[RCRANGE] -~w~Außer Reichweite! - -[CAD5_AA] -Sal hier. - -[CAD5_AB] -Diese Forellis haben mich geärgert! Dafür werden sie bezahlen! - -[CAD5_AC] -Ich will, dass du ihre edelsten Karren klaust... - -[CAD5_AD] -...und sie zu ihren Hauptkonkurrenten beim Sindacco-Autohof bringst. - -[CAD5_AE] -Aber sorg dafür, dass die Forellis nicht aus Rache irgendwelche Sindacco-Karren klauen. - -[CAD5_AF] -Capiche? - -[CAD4_AA] -Ich bin's, Sal. - -[CAD4_AB] -Ich bin Franco Forelli was schuldig, und du wirst mir helfen, die Schuld zu begleichen. - -[CAD4_AC] -Drüben im Sindacco-Autohof haben sie ein paar richtig edle Karren. - -[CAD4_AD] -Ich will, dass du die alle klaust und sie zum Forelli-Parkplatz bringst. - -[CAD4_AE] -Und sorg dafür, dass keine Forelli-Fahrzeuge gestohlen werden, während du dort bist. - -[CAD4_AF] -Hey, vermassle das bloß nicht. - -[MPC_000] -Toni - -[MPC_001] -'Lionel' - -[MPC_002] -Cipriani - -[MPC_003] -Chauffeur - -[MPC_004] -13. - -[MPC_005] -Smoking Toni - -[MPC_006] -Fury - -[MPC_007] -The King - -[MPC_008] -Cocks - -[MPC_009] -Flitzer - -[MPC_010] -'T' - -[MPC_011] -Dragon - -[MPC_012] -JD - -[MPC_013] -Der Sexsklave - -[MPC_014] -Avery - -[MPC_015] -Choc-Choc - -[MPC_016] -8-Ball - -[MPC_017] -Maria - -[MPC_018] -'Hamfists' - -[MPC_021] -Nr. 1 - -[MPC_023] -Hung Lo - -[MPC_025] -Yamazaki - -[MPC_031] -Officer '69' - -[MPC_032] -Der Spezialist - -[MPC_034] -G.I. Jones - -[MPC_035] -Sam - -[FEA_FM0] -HEAD RADIO - -[FEA_FM1] -DOUBLE CLEF FM - -[FEA_FM2] -K-JAH - -[FEA_FM3] -RISE FM - -[FEA_FM4] -LIPS 106 - -[FEA_FM5] -RADIO DEL MUNDO - -[FEA_FM6] -MSX 98 - -[FEA_FM7] -FLASHBACK FM - -[FEA_FM8] -THE LIBERTY JAM - -[FEA_FM9] -LCFR - -[MRACELA] -Runde - -[DTB_01] -~w~Verteidige eure Basis gegen feindliche Angreifer. - -[DTB_02] -~w~Verteidige eure Autos unter allen Umständen. - -[CAD2_AB] -~w~Gute Nachrichten - die Forellis und die Sindaccos gehen sich gerade wieder an die Gurgel! - -[CAD2_AC] -~w~Beide wollen sämtliche Autohäuser in Liberty übernehmen. - -[CAD2_AD] -~w~Und da wir vorige Woche den Forellis 'assistiert' haben... - -[CAD2_AE] -~w~...sollen jetzt die Sindaccos zu ihrem Recht kommen. - -[CAD2_AF] -~w~Hilf den Sindaccos, den Forelli-Autohof auszuräumen. - -[POMOB6B] -~w~Ich schwör's dir, die Schlampe lässt sich nur blicken, wenn sie wieder Geld braucht! - -[POMOB2A] -~w~Salvatore hat mir deine Nummer gegeben... naja, ich hab sie in seinem Adressbuch gefunden. Aber egal! - -[POMOB2B] -~w~Du bist doch sein neuer Fiffi, oder? Und ich will mit dir Gassi gehen. - -[POMOB2C] -~w~Ich erwarte dich in Kürze. - -[GS_RGUN] -MIT WAFFEN STARTEN: - -[TUSHTK] -Angel auf Abwegen - -[SC_WICH] -High-Score bei 'Angel auf Abwegen' - -[NE_WIFI] -Ein Netzwerkfehler ist aufgetreten. Der WLAN-Schalter ist AUS. Bitte schalte den WLAN-Schalter AN, um Multiplayer-Spiele zu spielen. - -[BNDRAC0] -Thrashin' RC - -[BNDRAC1] -Ragin' RC - -[BNDRAC2] -Chasin' RC - -[GS_G1] -LIBERTY CITY SURVIVOR - -[GS_G2] -STREET RAGE - -[GS_G3] -PROTECTION RACKET - -[GS_G4] -GET STRETCH - -[GS_G5] -TANKS FOR THE MEMORIES - -[GS_G6] -THE HIT LIST - -[GS_G7] -THE WEDDING LIST - -[TRCR1] -~w~1 - -[TRCR2] -~w~2 - -[TRCR3] -~w~3 - -[TRCRGO] -~w~LOS! - -[GA_16] -~w~Das Umspritzen ist gratis. - -[NEW_TAX] -~w~Taxi-Mission abgeschlossen! Mean Street Taxis haben ein neues Fahrzeug zu ihrem Depot in Trenton geliefert bekommen! - -[EXPO_2] -~w~Wenn du ihnen die Fahrzeuge, die sie brauchen, in gutem Zustand lieferst, erhältst du eine Belohnung. - -[FEMP_NC] -Netzwerkverbindungen werden aufgebaut...Bitte warten - -[C1TGSUB] -die R3-Taste - -[C2TGSUB] -R3-Taste - -[C3TGSUB] -~S~ - -[C2VEHN] -R1-Taste - -[C2VECRS] -L3-Taste - -[C3VECRS] -~O~ - -[C2PDCWE] -L2-Taste und R2-Taste - -[C3PDCWE] -L2-Taste und R2-Taste - -[BENZ_LA] -~w~Die ~h~Anwalts-Aufmachung~w~ ist jetzt im Versteck verfügbar. - -[BENZ_TR] -~w~Deine ~h~Freizeitkleidung~w~ ist jetzt im Versteck verfügbar. - -[SLH1_OU] -~w~Du wirst eine ~h~Anwalts-Aufmachung~w~ brauchen, um zu Sal gelassen zu werden. - -[SLH1_OR] -~w~Du brauchst eine ~h~Anwalts-Aufmachung~w~, um Sal besuchen zu können. - -[L_TRN_1] -~w~Mit der ~h~Hochbahn~w~ kannst du in Portland herumfahren. Drücke~h~ ~k~ ~VEEE~~w~, um in einen Zug ein- oder auszusteigen. - -[HELP2] -~w~Drücke~h~ ~k~ ~PDSPR~~w~, um zu ~h~sprinten. - -[STMOB5A] -~w~Toni, Sal. - -[SCH_TK7] -~r~Du hast den Schrottplatz verlassen. - -[STMOB3C] -~w~Aber jetzt tanzt das Rathaus bald nach unserer Pfeife. - -[SALH3A] -~w~Besorg ein Fahrzeug für Donald. - -[MPCASH] -Geld - -[MPCARS] -Autos - -[CRUSHED] -Schrottwert $~1~ - -[BENZ_BO] -~w~Zieh dir im Versteck frische ~h~Unterwäsche~w~ an. - -[BENZ_EL] -~w~Der ~h~King-Overall~w~ ist jetzt im Versteck verfügbar. - -[BENZ_CO] -~w~Ein ~h~Cox-Maskottchen-Kostüm~w~ ist jetzt im Versteck verfügbar. - -[BENZ_HE] -~w~Avenging Angel-Mission: Shoreside - Level 15 abgeschlossen! Das ~h~Superheldenkostüm~w~ ist jetzt im Versteck verfügbar. - -[BENZ_DR] -~w~Das ~h~Dragon-Outfit~w~ ist jetzt im Versteck verfügbar. - -[TRTIT] -Triaden-Trial - -[TRRACE2] -~w~Vorsicht! Die Wong-Brüder sehen fies aus... - -[MPTOTAL] -Gesamtzeit - -[TOUR_W6] -~w~Einzigartiger gepanzerter Landstalker in deinem Versteck angeliefert. Du solltest ihn in deiner Garage aufbewahren! - -[OUTFITS] -Freigeschaltete Outfits - -[MPHPMAR] -ist als Ziel markiert worden. - -[FEC_CWT] -Waffen/Ziele auswählen - -[EXPO_1] -~w~Love Media braucht Preise zum Verschenken für ihre 'Koole-Karren- Verschenk'-Konkurrenz! - -[PCJLAP] -~w~Neuer Rekord von ~1~ Sekunden! - -[MPBLCAR] -Blaues Auto: - -[MPRDCAR] -Rotes Auto: - -[RAMP_A] -~w~ALLE SPEZIALAUFTRÄGE ERFÜLLT! $~1~ - -[FET_SAV] -Spiel speichern - -[FET_WRN] -Achtung! Einer oder mehrere Cheats wurden aktiviert. Dies könnte Auswirkungen auf den Spielstand haben. Es wird empfohlen, dieses Spiel nicht zu speichern. - -[HELP39] -~w~Mit~h~ ~k~ ~VEWEI~ ~w~verlagerst du dein Gewicht auf einem Motorrad. +[HORN3] +Drück die ~h~~k~~VEHICLE_HORN~~w~, um zu ~h~hupen. [FEC_EXV] -Fahrzeug verlassen +In Fahrzeug ein- und aussteigen. -[MPCOLL] -PKW ZU SAMMELN: +[TAXI_M] +'TAXIFAHRER' -[FEMP_HG] -SPIEL HOSTEN +[COP_M] +'BÜRGERWEHR' -[FEMP_JG] -MITSPIELEN +[FIRE_M] +'FEUERWEHRMANN' -[K_TK3] -~w~1 Punkt für ~g~grün~w~, 2 Punkte für ~y~gelb~w~ und 3 Punkte für ~r~rot. +[AMBUL_M] +'SANITÃTER' -[FEMP_GJ] -SPIEL ZUM MITSPIELEN AUSWÄHLEN +[HJ_IS] +IRRSINNS-STUNT-BONUS: $~1~ -[FEMP_H] -HOST: +[HJ_PIS] +SUPER IRRSINNS-STUNT-BONUS: $~1~ -[FEMP_P] -SPIELER: +[HJ_DIS] +DOPPELTER IRRSINNS-STUNT-BONUS: $~1~ -[FEMP_HN] -EIN NEUES SPIEL HOSTEN +[HJ_PDIS] +SUPER-DOPPEL-IRRSINNS-STUNT-BONUS: $~1~ -[PO_MOB4] -~w~Hey, ich bin's, Vincenzo. +[HJ_TIS] +DREIFACHER IRRSINNS-STUNT-BONUS: $~1~ -[POMOB4D] -~w~Los. Komm bei mir vorbei. Ich hab was für dich. +[HJ_PTIS] +SUPER-DREIFACH-IRRSINNS-STUNT-BONUS: $~1~ -[POMOB4E] -~w~Ach, ja? Was denn? Ein Paar Zementstiefel? +[HJ_QIS] +VIERFACHER IRRSINNS-STUNT-BONUS: $~1~ -[POMOB4H] -~w~Nein. Komm, Toni, was da passiert ist, tut mir echt Leid. +[HJ_PQIS] +SUPER-VIERFACH-IRRSINNS-STUNT-BONUS: $~1~ -[FEMP_F] -VOLL +[FESZ_LS] +Ladevorgang beendet. -[FEMP_R] -STANDARD WIEDERHERSTELLEN +[HELI_1A] +Teste dein Können mit dem 'Sparrow'. Probiere, wie schnell du den Kurs abfliegen kannst. -[YOU] -DU +[HELI_1B] +Kurs absolviert! -[NE_POW] -Ein Netzwerk-Fehler ist aufgetreten. Der POWER-/HOLD-Schalter wurde AUSGESCHALTET. +[HELIODD] +Helikopter-Jobs -[FEMP_SQ] -Wirklich ein Multiplayer-Spiel starten? +[LAW] +DIE ANWALTSMISSIONEN -[BIKETXT] -~w~Hogs & Cogs hat nur zwischen 08:00 Uhr und 18:00 Uhr offen. Komm dann wieder! +[LAW1_1] +~g~Besorge dir neue Sachen in Rafaels Shop. -[RACE_2] -Zeit +[LAW4_6] +Nieder mit der Geschãftsleitung! -[FEF_CO2] -Wähle das Steuerungs-Setup, das zu deinem Spielstil am besten passt +[LAW4_7] +Tod den Bossen! -[TYREPOP] -Zerschossene Reifen +[LAW4_8] +Kampf, Kampf, Kampf, Kampf! -[FE_INIP] -Initialisiere und lade Pausenmenü. Bitte warten. +[LAW4_9] +Mehr Urlaub, weniger Arbeit! -[DON4EX3] -~w~Nimmst du Schecks? +[LAW4_11] +Kampf, Kampf, Kampf, Kampf! -[CRUSH] -~w~Mach Geld mit Schrott! Bestimmte Fahrzeuge werden verschrottet, wenn sie in der von Reifen markierten Zone abgestellt werden. +[LAW4_12] +Es lebe die Revolution! -[ANG_15] -~w~Eine Bande Idioten hat einem armen Kerl das Auto geklaut... denen zeigen wir's! +[GENERAL] +DIE COLONEL-MISSIONEN -[CDERROR] -Bitte warten... +[GEN3_4] +Tommy Vercetti. Los, komm... -[FEC_LOF] -Nach vorne schauen +[GEN3_13] +Was ist los, Mann?! Steig auf das Dach gegenüber im Hof bevor sie kommen! -[FEC_LFA] -Schauen/Feinzielen +[GEN3_17] +Mist! Willst du mich umbringen?! -[MPHELP] -HILFE +[GEN3_21] +~g~Er hat Diaz' Geld! Stelle ihn und hole es zurück! -[C1VEHN] -L1-Taste +[GEN3_24] +~r~Diaz hat's erwischt! Du hast versagt! -[C3VEHN] -L3-Taste +[GEN3_26] +~r~Du hast Diaz erwischt! -[MPOBJ] -MISSIONSZIEL: +[GEN3_27] +~r~Du hast Diaz' Bodyguards erwischt! -[MPLEG] -RADARLEGENDE: +[GEN3_31] +~g~Begib dich zum Übergabeort und pass auf Diaz auf. -[GS_O1] -Jeder für sich! Erledige die anderen Spieler! +[GEN3_32] +~g~Begib dich zu deinem Beobachtungsposten auf dem Dach des Gebãudes gegenüber von Lance. -[GS_O2] -Fahr die Checkpoints ab und erreiche die Ziellinie als Erster. +[COKE] +DIE KOKS-BARON-MISSIONEN -[GS_OD3] -Verteidige die vier Limos in eurer Basis vor heranrückenden Angreifern. +[COK1_3] +Ich hoffe, du brichst dir das Genick! -[GS_O6] -Erledige schnellstmöglich den 'markierten' Spieler. Der 'Markierte' muss überleben, so lange er kann. +[COK1_6] +Ich hab diese Idioten satt! -[GS_O7] -Schnapp dir über die Stadt verstreute Autos, dann fahr sie in die bereitstehenden Container. +[COK2_7] +Siehst du diese Bojen? Versuch, die Lichter auszuschießen. -[FHOSE_2] -~h~~k~ ~VEWEA~~w~, um mit der Kanone zu zielen. +[COK2_10] +Eines ist sicher: Du schießt besser als du laberst. -[MPI01] -POWERUP +[COK2_11] +Danke. Du bist ein echter Charmeur. -[MPI02] -GESUNDHEIT +[COK2_12] +Ich weiß, Tommy. -[MPI03] -PANZERUNG +[COK2_18] +Stehst du auf Kenny Loggins? -[MPI04] -WAFFE +[COK2_19] +Mann, ich liebe diese Scheibe. -[SPIDER] -Deimos SP +[COK2_26] +~r~Du hast Lance erwischt! -[PONTIAC] -Phobos Vt +[COK3_1] +Nicht schießen, Mann! -[FORELLI] -Forelli ExSess +[COK3_2] +Was ist in dem Zeug drin? -[AHIT_LO] -Fürs Erste bist du ihn vielleicht los, aber er wird wiederkommen, um den Job zu beenden. +[COK3_3] +Er klaut das Boot. Mist! -[FEM_ROF] -Radio aus +[COK3_4] +Hilfe! Irgendein Irrer stiehlt das Boot, Mann! -[GA_1] -~w~Das soll wohl 'n Witz sein! Das Ding rühr ich nicht an! +[COK4_W] +Uff! Das ist der letzte. -[TRA_NEX] -Nächster Halt: +[COK4_X] +Ich lass die Mühle an. -[TRA_CUR] -Derzeitiger Halt: +[COK4_Y] +Ich glaube, wir haben ein paar neue Freunde. -[PAGEB2] -~w~Die ~h~Schrotflinte~w~ ist jetzt in deinem Versteck verfügbar! +[COK4_2] +Ja. -[PAGEB3] -~w~Die ~h~Kugelsichere Weste~w~ ist jetzt in deinem Versteck verfügbar! +[COK4_6] +Weißt du, wo's lang geht? -[PAGEB4] -~w~Die ~h~SMG~w~ ist jetzt in deinem Versteck verfügbar! +[COK4_7] +Haben wir uns verfahren? -[PAGEB5] -~w~Die ~h~.357~w~ ist jetzt in deinem Versteck verfügbar! +[COK4_8] +Wir haben Konkurrenz bekommen! -[PAGEB6] -~w~Das ~h~M4~w~ ist jetzt in deinem Versteck verfügbar! +[COK4_9] +Knöpf sie dir vor! -[PAGEB7] -~w~Das ~h~Präzisionsgewehr mit Laservisier~w~ ist jetzt in deinem Versteck verfügbar! +[COK4_9A] +Zeit für den Lance Vance Dance! -[PAGEB8] -~w~Der ~h~Flammenwerfer~w~ ist jetzt in deinem Versteck verfügbar! +[COK4_10] +Die sind Kleinholz! Und Fischfutter. -[PAGEB9] -~w~Der ~h~Raketenwerfer~w~ ist jetzt in deinem Versteck verfügbar! +[COK4_11] +Geschafft! Die anderen Schiffchen taugen nicht viel. -[PAGE_01] -Erledige ~1~ Triaden in 2 Minuten! +[COK4_17] +Die wollen's wissen! -[PAGE_02] -Sprenge ~1~ Fahrzeuge in 2 Minuten! +[COK4_18] +Ich hab nasse Füße! WIR KRIEGEN WASSER INS BOOT! -[PAGE_03] -Heize ~1~ Diablos in 2 Minuten ein! +[COK4_21] +Achtung, Brücke! -[PAGE_04] -Erledige ~1~ Leone-Mafiosi in 2 Minuten! +[COK4_22] +Raus! Das Ding geht hoch! -[PAGE_05] -Fackle ~1~ Fahrzeuge in 2 Minuten ab! +[COK4_23] +Gut geschossen. -[PAGE_06] -Dein Job: ~1~ Fußgänger in 2 Minuten! +[COK4_29] +~r~Du hast Lance erwischt! -[PAGE_07] -Zerstöre ~1~ Fahrzeuge in 2 Minuten! +[ASS1_6] +Geh nur, Tommy, ich komm schon zurecht! -[PAGE_08] -Dein Job: ~1~ Fußgänger in 2 Minuten! +[ASS1_7] +Das ist für euch, ihr verdammten Mörder!! -[PAGE_09] -Heize ~1~ Yakuza in 2 Minuten ein! +[ASS1_8] +Ich komm hier nicht weg! -[PAGE_10] -Erledige ~1~ Forellis in 2 Minuten! +[ASS1_9] +Ich bin da, Tommy! -[PAGE_11] -Dein Job: ~1~ Fußgänger in 2 Minuten! +[ASS1_10] +Hey, das ist aber ein herzallerliebstes Beet. -[PAGE_12] -Dein Job: ~1~ Fußgänger in 2 Minuten! +[ASS1_11] +Hey Tommy, krieg ich ein Zimmer mit Blick auf die Bucht? -[PAGE_13] -Erledige ~1~ Yakuza in 2 Minuten! +[ASS1_12] +Schön hohe Decken hat's hier... -[PAGE_15] -Dein Job: ~1~ Fußgänger in 2 Minuten! +[ASS1_3] +Lance! Ich brauche Deckung! -[PAGE_16] -Zerstöre ~1~ Fahrzeuge in 2 Minuten! +[ASS1_4] +Diaz muss drinnen sein! -[PAGE_17] -Dein Job: ~1~ Fußgänger in 2 Minuten! +[ASS1_5] +Lance! -[PAGE_18] -Zerstöre ~1~ Fahrzeuge in 2 Minuten! +[ASS1_15] +~g~Stürme die Villa und erledige Diaz! -[PAGE_20] -Dein Job: ~1~ Fußgänger in 2 Minuten! +[ASS1_17] +~g~Es führen mehrere Wege in die Villa. -[MPI05] -FEIND +[TAXWAR] +TAXI-KRIEG-MISSIONEN -[MPI07] -CHECKPOINT +[NOTAXI] +~g~Du brauchst ein Kaufman-Taxi, um diese Mission zu aktivieren. -[MPI08] -NÄCHSTER +[TAXW1_5] +~g~Du musst in einem Kaufman-Taxi sitzen! -[MPI09] -ZIELLINIE +[TAX2_4] +Auf geht's, Tommy. -[MPI10] -FAHRER +[TAX2_5] +Polier ihm die Visage. -[MPI11] -BASIS +[TAX2_6] +Der hat nicht mal eine Lizenz. -[MPI12] -FEINDBASIS +[TAX2_7] +Verdammte Limo-Services. -[MPI13] -PANZER +[TAXW3_1] +~g~Hole Mercedes ab. -[MPI14] -DER MARKIERTE +[RACE1] +~g~3...2...1...LOS, LOS, LOS! -[MPI15] -AUTO +[RACE2] +~g~3 -[MPI16] -CONTAINER +[RACE3] +~g~2 -[FEI_LEG] -Legende An/Aus +[RACE4] +~g~1 -[SR_ON] -Jetzt da du dir im Straßenrennzirkus einen Namen gemacht hast, achte auf Herausforderer, die dich kontaktieren wollen. +[RACE5] +~g~LOS! -[FEC_FRA] -Manuelles Zielen +[FIRST] +~b~1. -[KAR_ON] -Schnapp dir das Feuerwehrauto wieder, wenn du versuchen willst, deine Bestzeit zu unterbieten. +[SECOND] +~b~2. -[DON2EX5] -~w~8-Ball rührt keinen Finger, solange du ihm nicht $20.000 zahlst +[THIRD] +~b~3. -[PCJTIT] -VORWÄRTS, Faggio! +[FOURTH] +~b~4. -[FEA_MUS] -LAUTSTÄRKE RADIO: +[RACETM] +~b~ZEIT: ~1~:~1~ -[FEST_GO] -Bestzeit bei 'Vorwärts Faggio' +[RACETM2] +~b~ZEIT: ~1~:0~1~ -[RC_1] -~w~Erledige mehr als ~1~ Triaden - jeder einzelne bringt dir einen Zeitbonus! +[RACEFA] +~r~Du hast das Rennen verloren! -[EXPO_C] -~w~Danke! Du hast alle geliefert. Vor deiner Wohnung in Newport wartet ein netter Bonus auf dich! +[TEX1_5] +~r~Er ist entkommen! -[TRRACE0] -~w~Rase durch die ~y~Checkpoints~w~ und komm lebendig am Streckenende an! +[SEG3_1] +ZEIT: -[RACE_P1] -~w~1. +[SEG3_2] +~g~Begib dich zu dem Transporter mit dem RC Raider und den Zeitzünder-Bomben. -[RACE_P2] -~w~2. +[SEG3_3] +~g~Du musst den RC Raider benutzen, um 4 Bomben zu 4 Zielzonen auf dem Grundstück zu bringen. -[RACE_P3] -~w~3. +[SERG3_5] +~g~Du kannst immer nur 1 Bombe transportieren und kannst erfolgreich platzierten Bomben nicht wieder aufnehmen. -[RACE_P4] -~w~4. +[SEG3_7] +~g~Sobald du die ERSTE Bombe platziert hast, lãuft der Timer des Zeitzünders an. Du musst dann alle Bomben innerhalb dieses Zeitraums platzieren. -[OUTF_00] -~w~Freizeitkleidung +[SEG3_8] +~g~Alle 4 Bomben müssen in den 4 Zielzonen platziert werden, um die Mission zu erfüllen und das Gebãude zu demolieren. -[OUTF_01] -~w~Leone-Anzug +[SEG3_9] +~g~Zielzone getroffen! Noch 3 Bomben. -[OUTF_03] -~w~Avenging Angels-Tarnanzug +[SEG3_10] +~g~Zielzone getroffen! Noch 2 Bomben. -[OUTF_04] -~w~Chauffeurslivree +[SEG3_11] +~g~Zielzone getroffen! Noch 1 Bombe. -[OUTF_05] -~w~Anwaltsanzug +[SEG3_12] +~r~Ziel verfehlt. Hol dir eine Bombe! -[OUTF_06] -~w~Smoking +[SEG3_13] +~g~Wirf die Bombe in einer Zielzone ab. -[OUTF_07] -~w~'The King'-Overall +[SEG3_14] +~r~Die Zeit ist um. Demolierung des Gebãudes fehlgeschlagen. -[OUTF_08] -~w~Cox-Maskottchen-Kostüm +[SEG3_15] +~r~Dein RC Raider ist zerstört. Wie willst du jetzt die Bomben transportieren? -[OUTF_09] -~w~Unterwäsche +[AVERY] +AVERY-MISSIONEN -[OUTF_10] -~w~Superheldenkostüm +[ASM] +ATTENTÃTERMISSIONEN -[OUTF_11] -~w~'Dragon'-Overall +[ASM_1] +ATTENTÃTERMISSION 1 -[SLTVMON] -Bei Slash-TV insgesamt verdientes Geld +[ASM1_1] +~g~Mr. Teal, Ihre Hilfe bei der Beseitigung der Landeier war ãußerst wertvoll. Ich habe noch mehr Arbeit, die eine eher 'zupackende' Art verlangt. Ihr nãchster Job klebt unter dem Telefon. -[DBIKEAI] -Größte Sprunghöhe (m) +[ASM1_2] +~g~Begib zu dich dem Fernsprecher vor dem Einkaufszentrum in Washington. -[MPC_039] -Vincenzo +[ASM1_3] +~g~Carl Pearson, Pizza-Lieferant. Er darf seine Lieferungen nicht durchführen. -[MPC_040] -Salvatore +[ASM1_4] +~g~Schalte den Pizza-Lieferanten aus, bevor er seine Lieferungen abschließt. -[MPC_041] -Toshi +[ASM_2] +ATTENTÃTERMISSION 2 -[MPC_042] -Toshiko +[ASM_3] +ATTENTÃTERMISSION 3 -[MPC_043] -Ophelia Lardaz +[ASM3_A] +Marcus Hammond, Franco Carter, Dick Tanner, Nick Kong und Stuntman Driver gehören zu einem europãischen Syndikat und planen einen Überfall. -[MPC_044] -Ed Banger +[ASM3_B] +Sie sind alle bereits in Position. Schalten Sie sie aus, bevor es losgeht. Sie haben 9 Minuten. Ich habe in der Nãhe Waffen deponiert, die Sie brauchen werden. -[MPC_045] -Robin Emblind +[ASM3_1] +~g~Hol dir die Waffe, die Mr. Black für dich deponiert hat. -[MPC_046] -Mrs. Menalot +[ASM3_2] +~g~Geh nicht zu dicht an die Zielperson heran, sonst bemerkt sie dich. -[MPC_047] -Hugh Jazz +[ASM3_3] +~g~Es geht schneller, wenn du dir eine günstige Position nahe ihrem Standort suchst und zuschlãgst, ohne gesehen zu werden. -[MPC_048] -Wayne +[ASM3_4] +~g~Er hat dich gesehen. Du musst ihn irgendwie ausschalten! -[MPC_049] -Paulie +[ASM3_5] +~g~Marcus Hammond befindet sich bei den Werbetafeln in Washington Beach. -[MPC_050] -Anne Job +[ASM3_6] +~g~Franco Carter befindet sich bei DBP Security nahe dem Ocean Drive. -[MPC_051] -Randy Boner +[ASM3_7] +~g~Dick Tanner ist in der Nãhe des Juweliers in Vice Point. -[MPC_052] -Owen Monie +[ASM3_8] +~g~Nick Kong befindet sich nãhe Washington Beach. -[MPC_053] -Ekant Sing +[ASM3_9] +~g~Stuntman Driver ist in Washington. -[MPC_054] -M.T. Head +[ASM3_10] +Du hast nicht alle ausgeschaltet. -[MPC_055] -Rick O'Shea +[ASM_4] +ATTENTÃTERMISSION 4 -[MPC_056] -Arden Long +[ASM4_1] +~g~Hol dir das Gewehr, das im Laub vor dem Flughafen-Terminal für dich deponiert wurde. -[MPC_057] -Ann Thrax +[ASM4_2] +~g~Verfehle dein Ziel nicht, du alarmierst sonst die Leibwãchter. Und bleib auf Distanz, damit er dich nicht bemerkt. -[MPC_058] -Fay Slift +[ASM4_3] +~g~Beobachte die Frau über den Check-in-Schaltern im Terminal. TU IHR NICHTS. -[MPC_059] -Mona Lott +[ASM4_4] +~g~Erledige den Mann, dem sie den Aktenkoffer gibt, aber erst, NACHDEM ER IHN GENOMMEN HAT. Hole den Koffer und bringe ihn ins Ammu-Nation Downtown. -[C0VEACC] -~X~ +[ASM4_5] +Hol dir den Aktenkoffer. -[C1VEACC] -~X~ +[ASM4_6] +~g~Bring den Aktenkoffer ins Ammu-Nation Downtown. -[C2VEACC] -~X~ +[ASM4_7] +~r~Du hast die Frau erwischt, du Idiot! -[C3VEACC] -rechten Analog-Stick oben +[ASM4_8] +~r~Die Zielperson hat gehört, wie du geschossen hast. Der Deal ist geplatzt! -[C0VEBRK] -~S~ +[ASM4_9] +~r~Die Zielperson hat das Flugzeug bestiegen! -[C1VEBRK] -~S~ +[ASM4_11] +~r~Die Zielperson hat dich gesehen! Der Deal ist geplatzt! -[C2VEBRK] -~S~ +[ASM4_13] +~g~Er hat dich bemerkt und flieht. Schalte ihn aus und hol dir den Aktenkoffer! -[C3VEBRK] -rechten Analog-Stick unten +[ASM4_14] +~g~Der Distanz-Balken am oberen rechten Bildschirmrand zeigt dir, wie nahe du der Zielperson bist. Lass ihn nicht voll werden, sonst sieht sie dich. -[C0VEHB] -R1-Taste +[ASM_5] +ATTENTÃTERMISSION 5 -[C1VEHB] -R1-Taste +[KICK] +KICKSTART -[C0VEEE] -~T~ +[KICK1_3] +~g~Anzahl, wie oft der Fuß abgesetzt wurde: ~1~ -[C1VEEE] -~T~ +[KICK1_4] +~g~Zeitstrafe: ~1~ Sekunden -[C2VEEE] -L1-Taste +[BANK] +BANK-MISSIONEN -[C3VEEE] -~T~ +[BANK1] +BANK-MISSION 1 -[C0VEWEP] -~O~ +[BANK2] +BANK-MISSION 2 -[C1VEWEP] -~O~ +[BJM2_21] +~g~Triff so viele Ziele als möglich, solange deine Munition reicht. -[C2VEWEP] -~O~ +[BANK3] +BANK-MISSION 3 -[C3VEWEP] -R1-Taste +[BJM3_1] +~g~Besorg dir ein schnelles Auto und fahre an den Start. -[C0PDSPR] -~X~ +[BNK4_2A] +Die Mechaniker haben das Baby super hergerichtet. -[C1PDSPR] -~X~ +[BNK4_3G] +Oh, Mist, jetzt haben wir die Cops am Hals! -[C0SNZI] -~S~ +[BNK4_3H] +Und wir sind noch nicht mal da. -[C1SNZI] -~S~ +[BNK4_3K] +Also, erst mal müssen wir die Cops abschütteln... -[C0SNZO] -~X~ +[BNK4_3L] +Großer Gott, Tommy, willst du uns alle umbringen?! -[C1SNZO] -~X~ +[BNK4_3N] +Alles, was ich gern habe, geht kaputt! -[C0PDFW] -~O~ +[BNK4_26] +Verdammt! Da sind sie schon! -[C1PDFW] -~O~ +[BNK4_32] +Spreng die Schließfãcher mit Sprengstoff auf. -[C0TRSK] -~X~ +[BNK4_36] +Wo ist Cam? -[C1TRSK] -~X~ +[BNK4_37] +In der Hölle. -[C2TRSK] -~X~ +[BNK4_38] +Das ist der letzte! LOS! LOS! LOS! -[C3TRSK] -~X~ +[BNK_39] +Shit! Wo bleibt Hilary? -[C0AMBUY] -~X~ +[BK4_40A] +Ich werd was für seine Verlustãngste tun! -[C1AMBUY] -~X~ +[BNK4_42] +Hey, Jungs! Los, rein! Ich geb euch Deckung! -[C2AMBUY] -~X~ +[BNK4_43] +Ich hab alles im Griff! FAHR! -[C3AMBUY] -~X~ +[BNK4_44] +Geschafft! Wir sind reich! REICH! -[C0AMEXI] -~T~ +[BNK4_45] +Ein Jammer, dass Cam es nicht gepackt hat. Er war 'n guter Kerl. -[C1AMEXI] -~T~ +[BNK4_46] +Ja. Andererseits, so bleibt mehr für uns! -[C2AMEXI] -~T~ +[BNK4_47] +Sehr richtig! YEEEEHAAAH! -[C3AMEXI] -~T~ +[BNK4_48] +Tommy, eine Massage gefãllig? -[C2PDSPR] -~O~ +[BNK4_49] +Hi, Mercedes. Ja, ich bin ein bisschen verspannt... -[C3PDSPR] -~X~ +[BNK450A] +Was hab ich gesagt, Tommy? Korrupte Bullen müssen sich vorsehen, wenn Kent Paul in der Stadt ist. -[C2SNZI] -~T~ +[BNK450B] +Komm, gib mir 'nen größeren Batzen ab. Na komm. Ich brauch neue Klamotten. -[C3SNZI] -~S~ +[BNK4_51] +Ich finde, du siehst ok aus. -[C2SNZO] -~S~ +[KENT] +KENT PAUL-MISSIONEN -[C3SNZO] -~X~ +[KENT1] +KENT PAUL-MISSION 1 -[C2PDFW] -~X~ +[COUNT] +FÃLSCHER-MISSIONEN -[C3PDFW] -R1-Taste +[COUNT1] +FÃLSCHER-MISSION 1 -[MPC_020] -Rico Garlik +[COUNT2] +FÃLSCHER-MISSION 2 -[MPC_022] -Lou Scannon +[BIKE] +DIE BIKER GANG-MISSIONEN -[MPC_024] -Cruz Vormen +[BIKE1] +BIKER-MISSION 1 -[MPC_026] -Busta Moves +[BIKE2] +BIKER-MISSION 2 -[MPC_027] -Juan Kerr +[BIKE3] +BIKER-MISSION 3 -[MPC_028] -Nick Yakar +[GOAWAY1] +Komm wieder, wenn du die Haiti-Gang-Missionen abgeschlossen hast. -[MPC_029] -Lou Bricant +[HAIT] +DIE HAITI-GANG-MISSIONEN -[MPC_030] -Lance Urwell +[HAIT1] +HAITI-MISSION 1 -[MPC_033] -Agent Ochre +[HAIT2] +HAITI-MISSION 2 -[MPC_036] -Papi Love +[HAIT3] +HAITI-MISSION 3 -[MPC_037] -Lucy Lastic +[HAM3_6] +~g~Verwende das Prãzisionsgewehr, das ich für dich besorgt habe. -[MPC_038] -Bill Durzbum +[ROCK] +DIE ROCKBAND-GANG-MISSIONEN -[MPISCOL] -Pickup aufgenommen +[ROK1_4] +~g~Ok, ich glaube, das ist es, was du suchst... -[MPSTART] -Spiel wird gestartet... +[ROK1_1E] +~g~Das kostet mehr als du hast! -[MRACEC1] -~w~1... +[ROK1_1F] +~g~Komm wieder, wenn du die Kohle hast. -[MRACEC2] -~w~2... +[RBM2_6] +~g~Wow! Die ist 'n Kerl! Halt ihn auf! -[MRACEC3] -~w~3... +[ROCK3] +ROCKBAND-MISSION 3 -[MPC_019] -Phil DeGirth +[ROK3_6D] +~r~und IHR UND EUER KOPFPUTZ mit dazu! -[GDA_HL] -Höchstes Avenging Angel-Level +[ROK3_40] +Neben dem Kühler für die Babynahrung? -[MP_SNEW] -Bitte lade oder starte ein neues Singleplayer- oder Multiplayer-Spiel. +[RBM3_5] +~g~Bring Love Fist zu ihrem Auftritt. -[DON2EX9] -~r~Ned~w~ haut ab! Lass dich nicht abhängen! +[CUBANM] +DIE KUBA-GANG-MISSIONEN -[FEI_CHA] -Team wechseln +[CUBAN1] +KUBA-MISSION 1 -[FES_RES] -SPIELEINSTELLUNGEN ZURÜCKSETZEN +[CUBAN2] +KUBA-MISSION 2 -[FESZ_QT] -Wirklich alle Einstellungen für Steuerung, Audio und Anzeige zurücksetzen? Fortfahren? +[CUB2_10] +~r~Du sollst Haitianer ausschalten, keine Kubaner! -[FEH_LOA] -SPIEL +[CUBAN3] +KUBA-MISSION 3 -[MPEMPTY] -Leer +[CUBAN4] +KUBA-MISSION 4 -[FEMP_SN] -SPIEL STARTEN (2 oder mehr Spieler benötigt) +[CUB4_04] +~r~Du hast die Basis alarmiert. Jetzt kommen wir niemals rein! -[JD_SUIT] -~w~JD kann dir keine Arbeit geben, wenn du wie ein Leone angezogen bist! +[CUB4_05] +~r~Du solltest doch im Auto bleiben. Jetzt lassen sie uns niemals rein. -[SAVD_SH] -Versteck. +[CUB4_25] +Okay, los geht's. -[SAVD_DY] -Tag +[PROT] +SCHUTZGELD-MISSIONEN -[SAVD_CO] -absolviert. +[PRO1_02] +~g~Verlasse das Einkaufszentrum. -[SAVD_AL] -Portland safehouse. Day 71, $57640. 17% complete. +[PRO3_06] +~g~Hãng die Cops ab. -[SAV_SLT] -Neuer Spielstand +[PORN] +PORNO-MISSIONEN -[POMOB6C] -~w~Komm gleich mal bei mir vorbei. Ich hab Arbeit für dich. +[PORN1] +PORNO-MISSION 1 -[ANG_2] -~w~Drücke~h~ ~k~ ~TGSUB~~w~, um Avenging Angel-Missionen an- oder abzuschalten. +[POR1_03] +~r~Candy ist erledigt! -[TVHELP] -~w~Drücke~h~ ~k~ ~TGSUB~~w~, um SLASH TV-Missionen an- oder abzuschalten. +[PORN2] +PORNO-MISSION 2 -[PAGERA] -~w~Das ~h~M60~w~ ist jetzt in deinem Versteck verfügbar! +[PORN3] +PORNO-MISSION 3 -[CO_ALL] -~w~Alle versteckten Päckchen gefunden! +[POR3_18] +Man hat dich bemerkt! -[CO_ONE] -~w~Verstecktes Päckchen ~1~ von ~1~ gefunden! +[PORN4] +PORNO-MISSON 4 -[PAGE_14] -Erledige ~1~ kolumbianische Gangster in 2 Minuten! +[POR4_04] +~g~Die Büros liegen auf der anderen Seite dieses Tors. -[PAGE_19] -Dein Job: ~1~ kolumbianische Gangster in 2 Minuten! +[PHIL] +PHIL-MISSIONEN -[ANG_22] -~r~Avenging Angel-Missionen abgebrochen. +[PHIL1] +PHIL-MISSION 1 -[SLATVQO] -~r~Slash TV-Mission abgebrochen. - -[C0FREE1] -L3-Taste - -[C1FREE1] -L3-Taste - -[C2FREE1] -L3-Taste - -[C3FREE1] -L3-Taste - -[C0FREE2] -linken Analog-Stick - -[C2FREE2] -linken Analog-Stick - -[ANGCOM1] -~w~Avenging Angel-Mission: Portland - Level 15 abgeschlossen! Das einzigartige 'Avenger'-Motorrad wurde in deinem Versteck angeliefert! - -[K_CE] -~w~Du hast ~1~ Sekunde, um zu deinem ~b~Motorrad~w~ zurückzukehren! - -[HELP31] -~w~Wirst du während einer Mission ~h~'verhaftet'~w~ oder ~h~'außer Gefecht'~w~ gesetzt, erscheint dieses ~h~Taxi~w~. - -[LOSER] -~y~VERLIERER! - -[RCRHELP] -~w~Drücke~h~ ~k~ ~TGSUB~~w~, um das ~h~Rennen zu beenden~w~.~h~ ~k~ ~VEWEP~~w~, um dein ferngesteuertes Auto zum letzten Checkpoint zurückzusetzen. - -[SRC_ON] -Jetzt, da du dir im Underground- Autorennzirkus einen Namen gemacht hast, werden Herausforderer versuchen, dich zu kontaktieren. - -[SRB_ON] -Jetzt, da du dir im Underground- Motorradrennzirkus einen Namen gemacht hast, werden Herausforderer versuchen, dich zu kontaktieren. - -[RACE_R0] -~w~BISHERIGER REKORD: ~1~:~1~~1~ - -[POMOB3C] -~w~Hey, schau mal wieder vorbei, Alter. - -[MPHPCS1] -The Hit List - -[MPWLGOC] -Steig aus dem Auto. - -[MPWLLTC] -Verlass den Container. - -[MPWLDTC] -Liefere das Auto ab. - -[MPWLCD] -Auto geliefert. - -[MPWLNGC] -Jetzt schnapp dir die Autos. - -[MPAUTO] -EINMAL ABSPIELEN - -[MRACEGO] -~w~LOS - -[MRACE04] -DU BIST DER SIEGER - -[MRACEWI] -hat das Rennen gewonnen - -[MRCPU01] -~y~SOFORT-REPARATUR - -[DTB01] -müssen die Autos verteidigen - -[DTB02] -müssen die Autos zerstören - -[DTB03] -haben ein Auto verloren - -[DTB04] -haben ein Auto zerstört - -[MPWIN] -gewinnt - -[MPKSELF] -ist außer Gefecht - -[MPMORE] -Hits - -[MP1MORE] -Hit - -[MPSTRT] -gestartet - -[MPTANK] -hat den Panzer - -[MPONE] -muss nur noch ein Auto beschaffen - -[MPDEL] -hat ein Auto geliefert - -[MPGOCAR] -Finde das Auto - -[MPGOGAR] -Liefere das Auto ab - -[MPDEST] -Zielfahrzeug zerstört - -[MPLEFT] -hat das Spiel verlassen - -[MPHPGO2] -~w~Du bist als Ziel markiert worden - -[MPHPKI] -~w~Du hast einen Killer erledigt - -[LOCKON] -Anvisiert - -[MPHPGO] -~w~Eliminiere den Markierten - -[MPTNK] -Schnapp dir den Panzer - -[MRCPU02] -DU HAST ALLEN DIE REIFEN GEPLÄTTET - -[MRCPU05] -DEINE REIFEN SIND KAPUTT - -[MRCPU06] -~y~Gute Reifen - -[WINNER] -~Y~SIEGER - -[MPDRAW] -~w~UNENTSCHIEDEN - -[MPDADDY] -JETZT BIST DU DER KING. - -[MPRUN] -BEHERRSCHEN DIESE STADT. - -[MPBITCH] -WER IST HIER DER KING, TÖLE? - -[FEMP_SM] -Grand Theft Auto mit Freunden oder zufällig in der Nähe stehenden, schrägen Fremdlingen spielen. - -[MPYL] -DU LOSER! - -[MPTMWIN] -SIND JETZT DIE OBERMACKER! - -[GS_SCAR] -FAHRZEUG: - -[GS_MIN] -Minute - -[GS_MINS] -Minuten - -[MPTNKGA] -Du hast den Panzer, harter Bursche. - -[MPTNKGB] -Jetzt sieh zu, dass du ihn behältst. - -[GS_TYPE] -SZENARIO: - -[CLILOST] -Verbindung zu anderen Spielern ist unterbrochen. - -[ONEHPC] -100 Prozent absolviert! In Fort Staunton wartet ein kleines Geschenk auf dich. - -[MPBLTM] -sindaccos - -[MPRDTM] -forellis - -[MTN_1] -Sindaccos - -[MTN_2] -Forellis - -[MPRDCAP] -Auto wurde erobert - -[MPBLCAP] -Auto wurde erobert - -[MPRDST] -Auto wurde gestohlen - -[MPBLST] -Auto wurde gestohlen - -[MPBLEST] -Auto wurde gestohlen - -[MPRDRET] -haben ihr Auto wieder - -[MPBLRET] -haben ihr Auto wieder - -[MPRDPOS] -Auto ist außer Position - -[MPBLPOS] -Auto ist außer Position - -[GS_TEAM] -GANG BEITRETEN: - -[FEMP_TS] -DEINE GANG: - -[MPTEAM] -Gang - -[GS_OA3] -Zerstöre in der Basis der feindlichen Gang vier Limos. - -[GS_O4] -Klau das Auto der feindlichen Gang und bring es zu eurer Basis. Verteidige gleichzeitig das Auto eurer Gang. - -[MPI06] -GANG-MITGLIED - -[FEMP_ST] -SPIEL STARTEN (1 oder mehr Spieler pro Gang benötigt) - -[HELP32] -~w~Gegen eine kleine Gebühr (falls du kein Geld hast auch gratis) bringt es dich zum ~h~Kontaktpunkt~w~ deiner letzten Mission. - -[BENZ_HO] -~w~Die ~h~Latzhose~w~ ist jetzt im Versteck verfügbar. Komm abends in der Latzhose hierher zurück, um bei SlashTV teilzunehmen. - -[SLATXT] -~w~Komm zwischen 18:00 Uhr und 5:00 Uhr in der Latzhose hierher zurück, um bei SlashTV teilzunehmen. - -[OUTF_02] -~w~Latzhose - -[CAN_CON] -~w~Drücke nochmal~h~ ~k~ ~TGSUB~~w~, um die Mission abzubrechen. - -[GNG1] -LEONES - -[GNG2] -TRIADEN - -[GNG3] -DIABLOS - -[GNG4] -YAKUZA - -[GNG5] -YARDIES - -[GNG6] -KOLUMBIANER - -[GNG7] -HOODS - -[GNG8] -SINDACCOS - -[GNG9] -FORELLIS - -[GNG0] -SIZILIANER - -[MP_GNG1] -GANG 1: - -[MP_GNG2] -GANG 2: - -[GS_TEMS] -GANG-KRIEG - -[CARS_O] -~w~Capital Autos in Harwood sucht einen neuen Verkäufer, falls du dir was nebenbei verdienen willst. - -[CARTXT] -~w~Capital Autos hat nur zwischen 08:00 Uhr und 18:00 Uhr offen. Komm dann wieder! - -[GS_TO1] -Erledige die feindliche Gang! - -[MPTNEED] -brauchen nur noch - -[MPTWIN] -gewinnen - -[BADTEAM] -Eine der Gangs hat keine Spieler mehr übrig. - -[RACELAP] -Runde - -[GS_D1] -ERLEBE DEN GAME-SHOW-KLASSIKER NEU! DER URBANE DARWINISMUS IST WIEDER DA. - -[GS_D2] -WER KANN AM BESTEN FAHREN (ODER BESCHEISSEN)? - -[GS_D3] -SCHÜTZE EURE AUTOS VOR FIESLINGEN UND VANDALEN. - -[GS_D4] -KLAU DAS AUTO DER FEINDLICHEN GANG UND VERLACHE SIE. - -[GS_D5] -WER IST AM SCHÄRFSTEN AUF DEN PANZER? - -[GS_D6] -DER MARKIERTE MUSS ERLEDIGT WERDEN. - -[GS_D7] -MACH KOHLE MIT AUTOHANDEL. - -[HELP61] -~w~Wenn das ~h~Dreieck nach oben zeigt~w~, ist das ~h~Ziel über dir~w~. Ein ~h~Rechteck~w~ bedeutet, das ~h~Ziel ist in gleicher Höhe mit dir. - -[ST_DRWN] -Gefütterte Fische - -[RACE_T4] -~r~Du wurdest disqualifiziert, weil du kein Auto gefunden hast. - -[RACE_T5] -~r~Du wurdest disqualifiziert, weil du kein Motorrad gefunden hast. - -[PCJ600] -PCJ-600 - -[FEC_HBB] -Handbremse~h~ ~k~ ~VEACC~ ~w~und~h~ ~k~ ~VEBRK~ - -[HJSTAT] -~w~Distanz: ~1~,~1~m Höhe: ~1~,~1~m Saltos: ~1~ Drehung: ~1~° - -[HJSTATW] -~w~Distanz: ~1~,~1~m Höhe: ~1~,~1~m Saltos: ~1~ Drehung: ~1~° Und was für eine Landung! - -[HJSTATF] -~w~Distanz: ~1~,~1~ Fuß Höhe: ~1~,~1~ Fuß Saltos: ~1~ Drehung: ~1~° - -[HJSTAWF] -~w~Distanz: ~1~,~1~ Fuß Höhe: ~1~,~1~ Fuß Saltos: ~1~ Drehung: ~1~° Und was für eine Landung! - -[MPUNLK] -Neuer Multiplayer-Inhalt freigeschaltet. Beschäme andere Spieler mit dem ganzen Zeug, das du freigeschaltet hast! - -[MPUNLKA] -Alle Multiplayer-Inhalte freigeschaltet. Beschäme andere Spieler mit dem ganzen Zeug, das du freigeschaltet hast! - -[TOUR] -Erst knipsen, dann starten - -[NDL1_A] -Nudel-Dödel +[PHIL2] +PHIL-MISSION 2 [PIZ1_A] -Pizza-Flitzer +PIZZABOTEN-MISSION -[GS_SCUT] -INTRO ABSPIELEN: +[PIZ1_03] +~g~Fahr zurück zum Pizza-Service für weitere Bestellungen. -[TR_00] -RENNEN EINS +[PIZ1_04] +~g~Hier sind die neuen Bestellungen. -[TR_01] -RENNEN ZWEI +[PIZ1_10] +Drücke die ~h~R3-Taste~w~, um die Pizza-Missionen abzubrechen. -[TR_02] -RENNEN DREI +[CNTBUY1] +Druckerei gekauft: $ ~1~ -[TR_03] -RENNEN VIER +[CARBUY] +Autohaus gekauft: $ ~1~ -[TR_04] -RENNEN FÜNF +[PORNBUY] +Filmstudio gekauft: $ ~1~ -[TR_05] -RENNEN SECHS +[ICEBUY] +Eiscremefabrik gekauft: $ ~1~ -[TR_06] -RENNEN SIEBEN +[TAXIBUY] +Taxiunternehmen gekauft: $ ~1~ -[TR_07] -RENNEN ACHT +[BANKBUY] +Malibu Club gekauft: $ ~1~ -[CHSE] -VERFOLGUNGSJAGD +[BOATBUY] +Bootswerft gekauft: $ ~1~ -[NOCHANG] -Während dieser Mission kannst du keine Outfits wechseln. +[PRNT_NO] +Zurzeit kannst du die Druckerei nicht kaufen. Komm spãter wieder. -[OUTF_12] -Antonio +[CAR_NO] +Zurzeit kannst du das Autohaus nicht kaufen. Komm spãter wieder. -[OUTF_13] -Trainingsklamotten +[PORN_NO] +Zurzeit kannst du das Filmstudio nicht kaufen. Komm spãter wieder. -[OUTF_14] -Goodfella +[ICE_NO] +Zurzeit kannst du die Eiscremefabrik nicht kaufen. Komm spãter wieder. -[OUTF_15] -Mr. Smart +[TAXI_NO] +Zurzeit kannst du das Taxiunternehmen nicht kaufen. Komm spãter wieder. -[BENZ_AN] -~w~Das ~h~Antonio-Outfit~w~ ist jetzt im Versteck verfügbar. +[BANK_NO] +Zurzeit kannst du den Malibu Club nicht kaufen. Komm spãter wieder. -[BENZ_SW] -~w~Die ~h~Trainingsklamotten~w~ sind jetzt im Versteck verfügbar. +[BOAT_NO] +Zurzeit kannst du die Bootswerft nicht kaufen. Komm spãter wieder. -[BENZ_GD] -~w~Das ~h~Goodfella-Outfit~w~ ist jetzt im Versteck verfügbar. +[PRNT_R3] +Drücke R3, um die Druckerei zu kaufen. Preis: $~1~ -[BENZ_WI] -~w~Das ~h~Mr. Smart-Outfit~w~ ist jetzt im Versteck verfügbar. +[CAR_R3] +Drücke R3, um das Autohaus zu kaufen. Preis: $~1~ -[RAMPAGE] -SPEZIALAUFTRAG +[PORN_R3] +Drücke R3, um das Filmstudio zu kaufen. Preis: $~1~ -[GS_TTGT] -PANZER-ZEIT: +[ICE_R3] +Drücke R3, um die Eiscremefabrik zu kaufen. Preis: $~1~ -[GS_O5] -Du gewinnst, wenn du am längsten im Panzer überlebst. Beschädige den Panzer, um ihn einem anderen Spieler wegzunehmen. +[TAXI_R3] +Drücke R3, um das Taxiunternehmen zu kaufen. Preis: $~1~ -[HELP28] -~w~Um eine ~h~Explosivwaffe~w~ zu werfen, drücke~h~ ~k~ ~PDFW~. ~w~Je länger du~h~ ~k~ ~PDFW~ ~w~gedrückt hältst, umso weiter fliegt die Waffe. +[BANK_R3] +Drücke R3, um den Malibu Club zu kaufen. Preis: $~1~ -[RATNG53] -Ehrloser Schuft +[BOAT_R3] +Drücke R3, um die Bootswerft zu kaufen. Preis: $~1~ -[RATNG54] -Betrügerische Ratte +[COL2_6] +Keine Bewegung, amerikanisches Imperialistenschwein! -[RATNG55] -Hai +[COL2_6B] +Das ist Eigentum des französischen Staates. -[RATNG56] -Falscher Fuffziger +[COL2_6C] +Her damit! -[RATNG57] -Der Pate aller Lügner +[COL3_A] +Thomas, schön, dass Sie da sind. -[RATNG11] -BLUTSAUGER +[COL3_B] +Verzeihen Sie, dass ich direkt zum Geschãftlichen komme. -[CHASE6] -Liberty Tree Seite 2 +[COL3_C] +Diaz bat mich, eine kleine Transaktion für ihn zu überwachen. -[CHASE7] -Liberty Tree Titelseite +[COL3_D] +Hoffentlich lãuft es diesmal besser als zuletzt. -[AUTOLD] -Es wird vom Memory Stick™ geladen, bitte Memory Stick™ nicht entfernen oder System ausschalten. +[COL3_E] +Deshalb wende ich mich ja an Sie, mein Freund. -[LDFAIL] -Laden fehlgeschlagen. Gespeicherte Daten sind beschädigt. +[COL3_F] +Ich habe im Parkhaus ein wenig Artillerie deponiert. -[MEMCHKA] -Memory Stick™ wurde nicht gefunden. Mindestens +[COL3_G] +Holen Sie sich die und beschützen Sie Diaz' Mãnner bei der Übergabe. -[MEMCHKB] -wird benötigt, um Spieldaten zu speichern. +[COL4_2] +Ich weiß nicht, Sir! -[MEMCHKC] -Nicht genug Speicherplatz auf dem Memory Stick™. Mindestens +[COL4_5] +Sir, zu Befehl, Sir! -[MEMCHKD] -wird benötigt, um Spieldaten zu speichern. +[COL4_10] +Gehen wir ein paar Donuts essen. -[M_FAIL] -MISSION FEHLGESCHLAGEN! +[COL4_16] +Fahrzeug wird weggeschafft, Sir! -[M_OVER] -MISSION BEENDET! +[COL4_25] +Selbstzerstörung des Fahrzeugs eingeleitet! -[M_PASS] -~Y~MISSION ERFÜLLT! ~n~$~1~ +[COL5_6] +Mercedes - dieses Kind bringt mich noch ins Grab. -[M_PASSN] -~Y~MISSION ERFÜLLT! +[COL5_8] +Verdammte Bande! -[MRACE11] -~w~Beschaff dir ein Fahrzeug, um das Rennen zu beenden +[COL5_5] +Nehmt das, Franzosenschweine! -[FEI_LE1] -Legende an +[CNT2_1] +Macht ihn fertig! -[FEI_LE2] -Legende aus +[CNT2_2] +Hol die Platten! -[FEI_TA1] -Spieler-Ziel an +[CNT2_3] +Beschütze den Kurier! -[FEI_TA2] -Spieler-Ziel aus +[FINKILL] +Ok, Jungs, macht ihn fertig! -[C1FREE2] -linken Analog-Stick +[FIN_1A] +Komm her, du hinterhãltiger Dreckskerl! -[C3FREE2] -linken Analog-Stick +[FIN_1B] +Jetzt bist du fãllig, du mieser Verrãter! -[FEA_MP3] -EIGENE SONGS: +[FIN_1C] +Das wird dein letzter 'Dance', Lance Vance! -[FEA_NA] -NICHT VERFÜGBAR +[FIN_2B] +Ach, wirklich? -[MPC_060] -Antonio +[FIN_2C] +Der dumme Spruch war schon im Kindergarten alt! -[MPC_061] -Training Toni +[FIN_3] +Keiner da, um dich rauszuhauen, diesmal, hã, Tommy? -[MPC_062] -Goodfella +[FIN_4] +Du bist am Ende, Tommy. -[MPC_063] -Mr. Smart +[FIN_5] +Du hast dich auf die falsche Seite geschlagen, Lance... -[MPC_064] -Kazuki +[FIN_6] +Sonny ist oben am Safe mit MEINEM Geld... -[NUMDBL1] -DEBUG 1 (~1~) (~1~) +[FIN_10] +Sonny? SONNY! Jetzt bist du fãllig! -[SVRMBRS] -SPIELER-LISTE: +[FIN_11A] +Du hast mir 15 Jahre gestohlen, Sonny. -[RAMP_P] -SPEZIALAUFTRAG ERFÜLLT! +[FIN_11B] +Und das wirst du mir jetzt büßen! -[RAMP_F] -SPEZIALAUFTRAG GESCHEITERT! +[FIN_12A] +Du kapierst es immer noch nicht, oder? -[MPWLPAC] -hat sich ein Ziel-Auto geschnappt. +[FIN_12B] +Dein Arsch gehört mir, Tommy. -[MPWLDAC] -hat ein Ziel-Auto abgeliefert. +[FIN_12C] +Diese 15 Jahre hast du anstelle von mir abgesessen! -[LDWAIT] -Drücke ~X~, um fortzufahren. +[FIN_13] +Schnappt ihn euch. Er hat nie was begriffen. -[LOADING] -Ladevorgang... Bitte warten. +[RACES_4] +3 -[RACEP1] -1. +[RACES_5] +2 -[RACEP2] -2. +[RACES_6] +1 -[RACEP3] -3. +[RACES_7] +LOS! -[RACEP4] -4. +[RACES_9] +Zeit: ~1~:~1~ -[RACEP5] -5. +[RACES] +ZEIT: -[RACEP6] -6. +[RACES17] +Neue Bestzeit: ~1~:~1~ -[FEA_UT] -Unbekannter Track +[RACES18] +PREISGELD: $~1~ -[LOADIN2] -Ladevorgang... +[RACES20] +Neue Bestzeit: ~1~:0~1~ -[DNH5_X2] -~r~Du hast nicht alle Bomben angebracht. +[RACES21] +Zeit: ~1~:0~1~ -[MRACE12] -DU HAST +[RCH1_1] +~g~Benutze den ferngesteuerten Helikopter, den RC Raider, um die Checkpoints zu PASSIEREN. -[MRACE13] -SEKUNDEN, UM EIN FAHRZEUG ZU FINDEN +[RCH1_2] +~g~Die CHECKPOINTS sind überall auf dem Flughafen verteilt. -[MRACE14] -SEKUNDE, UM EIN FAHRZEUG ZU FINDEN +[RCH1_3] +~g~Du hast ~c~8 MINUTEN~g~, um alle ~c~20 zu passieren! -[DTB_03] -~w~Das Team, das seine Autos am längsten verteidigt, gewinnt. +[RCH1_5] +Zeit -[PUPCOL] -hat ein Powerup aufgenommen. +[RCRC1_2] +~g~Begib dich zur Startlinie! -[TNKCSE] -Beschädige den Panzer, um ihn einem anderen Spieler wegzunehmen. +[RCRC1_4] +~g~3 -[TNKTM] -Du gewinnst, wenn du am längsten im Panzer überlebst. +[RCRC1_5] +~g~2 -[MPFAIL] -FEHLGESCHLAGEN +[RCRC1_6] +~g~1 -[GS_LOC2] -SPIEL-ORT: +[RCRC1_7] +~g~LOS! -[DTBSWPA] -So lange wurden die Sindaccos abgewehrt: +[RCRC1_8] +~g~Absolvierte Zeit: ~1~ Sekunden -[DTBSWPB] -Jetzt zerstöre ihre Autos in kürzerer Zeit. +[RCPL1_1] +~g~Liefere dir mit 3 anderen RC Barons ein CHECKPOINT-RENNEN. -[DTBSWPC] -So lange hat es gedauert, die Forelli-Autos zu zerstören: +[RCPL1_2] +~g~Du musst durch die ~o~MITTLERE MARKIERUNG ~g~hindurch, um einen Checkpoint zu passieren. -[DTBSWPD] -Jetzt verteidige eure Autos länger. +[RCPL1_3] +~g~Begib dich zur Startlinie! -[CHANOP] -Option ändern +[ICC1_O] +Was ist denn in Sie gefahren? -[MPSSCT] -CASH-VORGABE: +[FEA_2SP] +2 Boxen -[F_RANG2] -~r~Der Feuerwehrfunk funktioniert nicht in der U-Bahn! +[FEA_4SP] +Mehr als 2 Boxen -[T_RANG2] -~r~In der U-Bahn gibt es keinen Müll abzuholen! +[FEA_EAR] +Kopfhörer -[T_RANGE] -~r~Hier gibt es keinen Müll abzuholen! +[FEA_NAH] +KEINE AUDIO HARDWARE -[FEU_YES] -JA +[FET_APP] +ÜBERNEHMEN -[FEU_NO] -NEIN +[FES_SKN] +SKIN-NAME -[HELP43] -~w~Mit der Handbremse kannst du das Boot schneller wenden. +[FES_DAT] +DATUM -[RACE_T6] -~r~Eines der Fahrzeuge wurde zerstört - das Rennen wird abgeblasen! +[FES_SET] +Skin verwenden -[FED_POS] -BILDSCHIRMPOSITION - -[FES_DSS] -Zu löschenden Spielstand auswählen: - -[FES_LSS] -Zu ladenden Spielstand auswählen: - -[FES_DSC] -Löschen erfolgreich. Zum Fortfahren OK wählen. - -[FES_DEL] -Spiel löschen - -[FES_DGM] -SPIEL LÖSCHEN - -[ITBEG] -Am Anfang... - -[FET_LG] -SPIEL LADEN - -[FES_SCG] -Aktuelles Spiel speichern? +[FET_DEF] +Standard wiederherst. [FESZ_QZ] Dieses Spiel wirklich speichern? +[FES_SCG] +Laufendes Spiel speichern? + +[FES_LCG] +Spiel laden und weiterspielen? + +[FEC_FIR] +Feuern + +[FEC_NWE] +Nãchste Waffe + +[FEC_PWE] +Vorherige Waffe + +[FEC_FOR] +Vorwãrts + +[FEC_BAC] +Rückwãrts + +[FEC_LEF] +Links + +[FEC_RIG] +Rechts + +[FEC_ZIN] +Heranzoomen + +[FEC_ZOT] +Hinauszoomen + +[FEC_EEX] +Ein-/Aussteigen + +[FEC_RAD] +Radio + +[FEC_SUB] +Spezialmission + +[FEC_CMR] +Blickwinkel ãndern + +[FEC_JMP] +Springen + +[FEC_SPN] +Sprinten + +[FEC_HND] +Handbremse + +[FEC_LOL] +Nach links sehen + +[FEC_LOR] +Nach rechts sehen + +[FEC_NTR] +Nãchstes Ziel + +[FEC_PTT] +Vorheriges Ziel + +[FEC_LBA] +Nach hinten sehen + +[FEC_CEN] +Kamera zentrieren + +[FET_CCN] +Classic + +[FET_SCN] +Standard + +[FET_CFT] +ZU FUSS + +[FET_CCR] +IN FAHRZEUG + +[FET_CAC] +AKTION + +[FEC_IBT] +- + +[FEC_MXO] +MXB1 + +[FEC_MXT] +MXB2 + +[FEC_UNB] +NICHT BEL. + +[FEC_TFL] +Links sehen + Geschütz L + +[FEC_TFR] +Rechts sehen + Geschütz R + +[FEC_MWF] +MAUSRAD AUFW. + +[FEC_MWB] +MAUSRAD ABW. + +[FEC_ORR] +oder + +[FEC_NUS] +NICHT VERWENDET + +[FEC_LUD] +Aufw. sehen + +[FEC_LDU] +Abw. sehen + +[FEC_CMP] +COMBO: L+R SEHEN + +[LAW_1A] +law_1a + +[LAW_1B] +law_1b + +[LAW_2A] +law_2a + +[LAW_2B] +law_2b + +[FEH_STA] +STATISTIKEN + +[FEH_LOA] +LADEN + +[FEH_CON] +STEUERUNG + +[FEH_AUD] +AUDIO + +[FEH_DIS] +ANZEIGE + +[FEH_LAN] +SPRACHE + +[FEH_SGA] +NEUES SPIEL STARTEN + +[FEO_CON] +Controller-Setup + +[FEO_AUD] +Audio-Setup + +[FEO_DIS] +Anzeigen-Setup + +[FEO_LAN] +Sprachen-Setup + +[FEO_PLA] +Spieler-Setup + +[FEA_OUT] +Ausgabe + +[FEA_ST] +Stereo + +[FEA_DTS] +DTS + +[FEA_RSS] +Radiosender + +[FEA_NON] +RADIO AUS + +[FEA_FM0] +WILDSTYLE + +[FEA_FM1] +FLASH FM + +[FEA_FM2] +KCHAT + +[FEA_FM3] +FEVER 105 + +[FEA_FM4] +VROCK + +[FEA_FM5] +VCPR + +[FEA_FM7] +EMOTION 98.3 + +[FEA_FM8] +WAVE 103 + +[FED_BRI] +Helligkeit + +[FED_TRA] +Unschãrfe-FX + +[FED_SUB] +Untertitel + +[FED_WIS] +Breitbild + +[FED_POS] +Anzeige-Position + +[FEP_RES] +Fortsetzen + +[FEP_STG] +Spiel starten + +[FEP_STA] +Statistiken + +[FEP_BRI] +Missionsinfos + +[FEP_OPT] +Optionen + +[FEP_QUI] +Spiel beenden + +[FES_LOA] +Spiel laden + +[FES_DEL] +Spiel löschen + +[FEC_CSU] +Controller-Setup + +[FEC_RED] +Steuerung ãndern + +[FEC_MOU] +Maus-Einstellg. + +[DISTGOL] +Mit Golfwagen zurückgel. Entfernung (Meilen) + +[DISTGOM] +Mit Golfwagen zurückgel. Entfernung (Meter) + +[ST_FAVR] +Lieblings-Radiosender + +[ST_WSTR] +Unbeliebtester Radiosender + +[ST_FAVV] +Lieblingsfahrzeug + +[ST_STAR] +Anzahl angehãufter Fahndungssterne + +[ST_HEAD] +Anzahl Köpfe + +[ST_GANG] +Unbeliebteste Gang + +[ST_STGN] +Anzahl losgewordener Fahndungssterne + +[TYREPOP] +Zerschossene Reifen + +[TYRESLA] +Aufgeschlitzte Reifen + +[ST_BRK] +Erledigte Gegner im Chaos-Derby + +[ST_LTBR] +Lãngste Zeit im Chaos-Derby (Sekunden) + +[ST_GNG1] +Kubaner + +[ST_GNG2] +Haitianer + +[ST_GNG3] +Möchtegern-Gangster + +[ST_GNG4] +Diaz' Gang + +[ST_GNG5] +Sicherheitsbeamte + +[ST_GNG6] +Biker-Gang + +[ST_GNG7] +Vercetti-Gang + +[ST_GNG8] +Golfer + +[FEA_FM6] +ESPANTOSO + +[ST_ASSI] +Ausgeführte Attentãtermissionen + +[DISTBIK] +Mit Motorrad zurückgel. Strecke (Meilen) + +[DISTBIM] +Mit Motorrad zurückgel. Strecke (Meter) + +[HOTEL] +Ocean View Hotel + +[KICK1_9] +VERBLEIBENDE CHECKPOINTS: + +[FIN_B6] +Du hast nicht genug Geld, um diese Mission zu beginnen. + +[TEX3_9] +~g~Steuere den Helikopter über eine Bombe, um sie aufzunehmen. + +[HELP22] +Begib dich zu dem grünen Haus-Symbol auf dem Radar. + [FES_SSC] -Speichern erfolgreich. Zum Fortfahren OK wählen. +Daten wurden gespeichert. Weiter mit OK. -[FEM_NTF] -Die Memory Card (8MB) (für PlayStation®2) in MEMORY CARD-Steckplatz 1 ist nicht formatiert. - -[FES_CFM] -Formatiert Memory Card (8MB) (für PlayStation®2) in MEMORY CARD-Steckplatz 1. Memory Card (8MB) (für PlayStation®2) und Controller nicht entfernen und die Konsole nicht zurückstellen oder abschalten. - -[FES_LOQ] -Laden gescheitert! Der Spielstand auf der Memory Card (8MB) (für PlayStation®2) in MEMORY CARD-Steckplatz 1 ist nicht mit diesem Spiel kompatibel. Bitte einen anderen Spielstand laden. Spiel wird jetzt neu gestartet. - -[FEM_NTH] -Keine Memory Card (8MB) (für PlayStation®2) in MEMORY CARD-Steckplatz 1 eingelegt. - -[FES_CMP] -Speichern gescheitert! Bitte überprüfen Sie die Memory Card (8MB) (für PlayStation®2) in MEMORY CARD-Steckplatz 1 und versuchen Sie es noch einmal. - -[FESZ_FO] -Die Memory Card (8MB) (für PlayStation®2) in MEMORY CARD-Steckplatz 1 ist nicht formatiert. Möchten Sie sie jetzt formatieren? - -[FES_NOC] -Keine Memory Card (8MB) (für PlayStation®2) in MEMORY CARD-Steckplatz 1 eingelegt. - -[FES_LOE] -Laden gescheitert! Bitte überprüfen Sie die Memory Card (8MB) (für PlayStation®2) in MEMORY CARD-Steckplatz 1 und versuchen Sie es noch einmal. Spiel wird jetzt neu gestartet. - -[FES_DEE] -Löschen gescheitert! Bitte überprüfen Sie die Memory Card (8MB) (für PlayStation®2) in MEMORY CARD-Steckplatz 1 und versuchen Sie es noch einmal. - -[SLONFM] -Formatieren gescheitert! Bitte überprüfen Sie die Memory Card (8MB) (für PlayStation®2) in MEMORY CARD-Steckplatz 1 und versuchen Sie es noch einmal. - -[SLONDR] -Ungenügend Speicherplatz auf der Memory Card (8MB) (für PlayStation®2) in MEMORY CARD-Steckplatz 1. Bitte legen Sie eine Memory Card (8MB) (für PlayStation®2) mit mindestens 330 KB freiem Speicherplatz in MEMORY CARD-Steckplatz 1 ein, um Spieldaten zu speichern. - -[SLNSP] -Ungenügend Speicherplatz auf der Memory Card (8MB) (für PlayStation®2) in MEMORY CARD-Steckplatz 1. Zum Speichern der Spieldaten werden auf der Memory Card (8MB) (für PlayStation®2) in MEMORY CARD-Steckplatz 1 mindestens 101 KB zusätzlicher freier Speicherplatz benötigt. - -[SLONNF] -Die Memory Card (8MB) (für PlayStation®2) in MEMORY CARD-Steckplatz 1 ist nicht formatiert. Möchten Sie sie jetzt formatieren? - -[FESZ_FF] -Formatieren gescheitert! Bitte überprüfen Sie die Memory Card (8MB) (für PlayStation®2) in MEMORY CARD-Steckplatz 1 und versuchen Sie es noch einmal. - -[MCDNSP] -Keine Memory Card (8MB) (für PlayStation®2) in MEMORY CARD-Steckplatz 1 eingelegt. Zum Speichern der Spieldaten legen Sie bitte eine Memory Card (8MB) (für PlayStation®2) mit mindestens 330 KB freiem Speicherplatz ein. Wollen Sie das Spiel trotzdem starten? - -[MCGNDP] -Ungenügend Speicherplatz auf der Memory Card (8MB) (für PlayStation®2) in MEMORY CARD-Steckplatz 1. Zum Speichern der Spieldaten werden mindestens 330 KB freier Speicherplatz benötigt. Wollen Sie das Spiel trotzdem starten? - -[MCGNSP] -Ungenügend Speicherplatz auf der Memory Card (8MB) (für PlayStation®2) in MEMORY CARD-Steckplatz 1. Zum Speichern der Spieldaten werden auf der Memory Card (8MB) (für PlayStation®2) in MEMORY CARD-Steckplatz 1 mindestens 101 KB zusätzlicher freier Speicherplatz benötigt. Wollen Sie das Spiel trotzdem starten? - -[FESZ_WR] -Speichert Daten. Memory Card (8MB) (für PlayStation®2) in MEMORY CARD-Steckplatz 1 und Controller nicht entfernen und die Konsole nicht zurückstellen oder abschalten. - -[FELD_WR] -Lädt Daten. Memory Card (8MB) (für PlayStation®2) in MEMORY CARD-Steckplatz 1 und Controller nicht entfernen und die Konsole nicht zurückstellen oder abschalten. - -[FEDL_WR] -Löscht Daten. Memory Card (8MB) (für PlayStation®2) in MEMORY CARD-Steckplatz 1 und Controller nicht entfernen und die Konsole nicht zurückstellen oder abschalten. - -[C0VEWEA] -Rechter Analog-Stick - -[C1VEWEA] -Rechter Analog-Stick - -[C2VEWEA] -Rechter Analog-Stick - -[C3VEWEA] -Richtungstasten - -[C0PDLOO] -den rechten Analog-Stick - -[C1PDLOO] -den rechten Analog-Stick - -[C2PDLOO] -Rechter Analog-Stick - -[C3PDLOO] -Rechter Analog-Stick - -[C0AMMOV] -den linken Analog-Stick oder die Richtungstasten - -[C1AMMOV] -den linken Analog-Stick oder die Richtungstasten - -[C2AMMOV] -Linker Analog-Stick oder Richtungstasten - -[C3AMMOV] -Linker Analog-Stick oder Richtungstasten - -[FEC_ACB] -Beschleunigen/Bremsen - -[FEM_SL8] -Spielstand 8 nicht vorhanden - -[FES_SAV] -SPIEL SPEICHERN - -[FES_FMS] -Formatieren erfolgreich. - -[MCDNCK] -Memory Card (8MB) (für PlayStation®2) in MEMORY CARD-Steckplatz 1 wird überprüft. Memory Card (8MB) (für PlayStation®2) und Controller nicht entfernen und die Konsole nicht zurückstellen oder abschalten. +[FES_DSC] +Daten wurden gelöscht. Weiter mit OK. [FESZ_QC] -Diese beschädigte Datei wirklich überschreiben? +Dieses beschãdigte Spiel überschreiben? -[NOCONT] -Bitte schließen Sie einen Analog Controller (DUALSHOCK®) oder einen Analog Controller (DUALSHOCK®2) an Controller-Anschluss 1 an, um fortzufahren. +[FES_CHE] +Achtung! Ein oder mehrere Cheats sind aktiviert, dies kann sich auf die Speicherung auswirken. Es wird empfohlen, dieses Spiel nicht zu speichern. -[FES_LCF] -Laden gescheitert! Bitte überprüfen Sie die Memory Card (8MB) (für PlayStation®2) in MEMORY CARD-Steckplatz 1 und versuchen Sie es noch einmal. +[FET_SG] +SPIEL SPEICHERN -[DBGHELP] -~h~DEBUG MENU~w~ Select Item with ~h~left button & right button. ~w~Press ~h~X button ~w~to launch. Press ~h~TRIANGLE button ~w~to quit menu. +[FEH_BRI] +MISSIONSINFO -[DBGSEL1] -Level Skip Menu +[FEH_MAP] +KARTE -[DBGSEL2] -Car Viewer +[FEM_OK] +OK -[DBGSEL3] -Character Viewer +[FEC_CRO] +Ducken -[DBGSEL4] -Building Viewer +[FEC_CR3] +Ducken (L3-Taste) -[DBGSEL5] -Weapon Cheat +[FEC_SMT] +Spezialmission -[DBGSEL6] -Player Cheat +[FEC_SM3] +Spezialmission (R3-Taste) -[DBGSEL7] -Weather and Time Changer +[FEC_RSC] +Radiosender -[DBGSEL8] -Marketing Camera +[ST_PR01] +Flieger -[DBGSEL9] -MoCap Menu +[ST_PR02] +Luftwaffensoldat -[DBGSE10] -USJ Editor +[ST_PR03] +Gefreiter -[DBGSE11] -Toggle Player Coordinates +[ST_PR04] +Unteroffizier -[DBGFIL0] -Ped Selector +[ST_PR05] +Leutnant -[DBGFIL1] -Car Selector +[ST_PR06] +Stabsunteroffizier -[PLCHLD] -Placeholder: mission will complete in 5 seconds +[ST_PR07] +Hauptmann -[PLCHLD2] -Placeholder Cutscene +[ST_PR08] +Könner -[PLCHLD3] -Placeholder (MOCAP) Cutscene +[ST_PR09] +Profi -[LS_MAC] -Ma Cipriani stream +[ST_PR10] +Roter Baron -[LS_JDT] -J.D. O'Toole stream +[ST_PR11] +Wildgans -[LS_SAL] -Salvatore stream +[ST_PR12] +Viper -[LS_COMP] -Completed all Missions in this stream +[ST_PR13] +Falke -[TEMP1] -Number: ~1~ +[ST_PR14] +Adler -[LS2_H1] -Use ~h~analog up & down ~w~to select story stream. Use ~h~analog left & right ~w~to select mission. Use ~h~L button & R button ~w~to select an island. Press ~h~X button ~w~to start mission. Press ~h~TRIANGLE button ~w~to exit. +[ST_PR15] +Blitz -[LS2_H2] -You cannot use levelskip when you are ~h~on a mission. +[ST_PR16] +Tornado -[LS2_VIC] -~y~Vincenzo Cilli -~g~ ~a~ +[ST_PR17] +Taifun -[LS2_MAC] -~y~Ma Cipriani -~g~ ~a~ +[ST_PR18] +Luftwaffengeneral -[LS2_JDT] -~y~J.D. O'Toole -~g~ ~a~ +[ST_PR19] +Ass -[LS2_SAL] -~y~Salvatore -~g~ ~a~ +[FET_LG] +SPIEL LADEN -[LS2_MAR] -~y~Maria -~g~ ~a~ +[CAR_EXP] +Straßenfahrzeuge zerstört -[LS2_NED] -~y~Ned Burner -~g~ ~a~ +[BOA_EXP] +Boote zerstört -[LS2_DON] -~y~Donald Love -~g~ ~a~ +[HEL_DST] +Flugzeuge & Helikopter zerstört -[LS2_RAY] -~y~Ray Machowski -~g~ ~a~ +[STFT_01] +Schnellste Zeit bei 'Wheels of Steels' -[LS2_TOS] -~y~Toshiko Kasen -~g~ ~a~ +[STFT_02] +Schnellste Zeit bei 'Der Fahrer' -[FREEON] -Time Frozen +[STFT_03] +Schnellste Zeit auf Gelãndemotorradstrecke -[FREEOFF] -Time Unfrozen +[STFT_04] +Schnellste Zeit bei Modellflugzeug-Rennen -[WTC_INS] -Use ~h~analog up & down ~w~to change weather. Use ~h~analog left & right ~w~to change hour. Press ~h~TRIANGLE button ~w~to exit. Press ~h~SQUARE button ~w~to freeze time. +[STFT_05] +Schnellste Zeit mit den ferngesteuerten Autos -[WTC_TIM] -TIME: ~1~:00 +[STFT_06] +Schnellste Zeit bei Helikopter-Rennen -[WTC_WE0] -WEATHER: CLOUDY +[STFT_07] +Schnellste Zeit bei 'Todeskaracho' -[WTC_WE1] -WEATHER: EXTRA COLOURS +[STFT_08] +Schnellste Zeit bei 'Ocean Drive' -[WTC_WE2] -WEATHER: EXTRA SUNNY +[STFT_09] +Schnellste Zeit bei 'Küsten-Rallye' -[WTC_WE3] -WEATHER: FOGGY +[STFT_10] +Schnellste Zeit bei 'Capital Cruise' -[WTC_WE4] -WEATHER: HURRICANE +[STFT_11] +Schnellste Zeit bei 'Tour!' -[WTC_WE5] -WEATHER: RAINY +[STFT_12] +Schnellste Zeit bei 'V.C. Endurance' -[WTC_WE6] -WEATHER: SNOW +[STHC_01] +High-Score bei Schießstand-Mission -[WTC_WE7] -WEATHER: SUNNY +[STHC_02] +Beste Trefferquote am Schießstand (in Prozent) -[CVHELP] -Use ~h~up button and down button ~w~to change character. Use ~h~left button and right button ~w~to rotate camera. HOLD ~h~SQUARE ~w~to zoom in (toggles upper and lower body). Press ~h~TRIANGLE ~w~to quit character viewer. +[STHC_03] +Anzahl getãtigter Drogendeals -[VMENU1] ---------- Select a Viewer --------- --- ~h~Car~w~ - Character - Building -- +[HELP24] +Du kannst jetzt Auftrãge vom Colonel annehmen. -[VMENU2] ---------- Select a Viewer --------- --- Car - ~h~Character~w~ - Building -- +[HELP25] +Du kannst jetzt Auftrãge von Avery Carrington annehmen. -[VMENU3] ---------- Select a Viewer --------- --- Car - Character - ~h~Building~w~ -- +[HELP29] +Außerhalb eine Mision kannst du zu dem Bekleidungsgeschãft gehen. -[CV_C] -COMPARISON MODEL +[HELP30] +Wenn du neue Klamotten kaufst, reduziert sich dein Fahndungslevel auf null. -[CV_0] -ROW: -- MODEL: player +[ASM4_24] +Entfernung: -[CV_1] -ROW: 114 MODEL: cop +[RBM1_6] +~g~Bring Mercedes und den 'Love Juice' zu der Band ins Aufnahmestudio. -[CV_2] -ROW: 115 MODEL: swat +[RBM1_3] +NICHT MEHR BENÖTIGT -[CV_3] -ROW: 116 MODEL: fbi +[HAM1_5] +NICHT MEHR BENÖTIGT -[CV_4] -ROW: 117 MODEL: army +[RBM1_11] +NICHT MEHR BENÖTIGT -[CV_5] -ROW: 118 MODEL: medic +[HELP31] +Um aus dem fahrenden Fahrzeug zu schießen, sieh zuerst mit ~k~~VEHICLE_LOOKLEFT~ oder ~k~~VEHICLE_LOOKRIGHT~ nach links oder rechts. -[CV_6] -ROW: 119 MODEL: fireman +[HELP34] +Du brauchst eine Maschinenpistole für einen 'Drive-By'. -[CV_7] -ROW: 71 MODEL: male01 +[STRIP_1] +~r~Nicht genug Cash, du windiger Geizhals! -[CV_9] -ROW: 120 MODEL: taxi_d +[EXIT_1] +~k~~PED_SPRINT~ zum Beenden. -[CV_10] -ROW: 2 MODEL: pimp +[ASM1_B] +Ihr nãchster Auftrag klebt unter dem Telefon. -[CV_11] -ROW: 13 MODEL: criminal01 +[ASM1_C] +Ich habe noch mehr Arbeit, die eine eher 'zupackende' Art verlangt. -[CV_12] -ROW: 14 MODEL: criminal02 +[SCARF] +Apartment 3c -[CV_13] -ROW: 15 MODEL: male02 +[LAW4_10] +Reiche Manager sind Schweine! -[CV_14] -ROW: 16 MODEL: male03 +[RCH1_6] +~g~Benutze den ferngesteuerten Helikopter, um Checkpoints überall auf dem Flughafen abzufliegen. -[CV_15] -ROW: 121 MODEL: fatmale01 +[RCH1_9] +~b~GESAMTZEIT: ~1~:~1~ -[CV_16] -ROW: 17 MODEL: fatmale02 +[RCH1_10] +~b~GESAMTZEIT: ~1~:0~1~ -[CV_17] -ROW: 18 MODEL: female01 +[WHEEL01] +ZWEIRAD DOPPELBONUS: $ ~1~ Distanz: ~1~.~1~m Zeit: ~1~ Sekunden -[CV_18] -ROW: 19 MODEL: female02 +[WHEEL02] +ZWEIRAD DOPPELBONUS: $ ~1~ Distanz: ~1~ Fuß Zeit: ~1~ Sekunden -[CV_19] -ROW: 20 MODEL: female03 +[WHEEL03] +ZWEIRAD BONUS: $ ~1~ Zeit: ~1~ Sekunden -[CV_20] -ROW: 21 MODEL: fatfemale01 +[WHEEL04] +ZWEIRAD BONUS: $ ~1~ Distanz: ~1~.~1~m -[CV_21] -ROW: 22 MODEL: fatfemale02 +[WHEEL05] +ZWEIRAD BONUS: $ ~1~ Distanz: ~1~ Fuß -[CV_22] -ROW: 23 MODEL: prostitute +[WHEEL06] +WHEELIE BONUS: $ ~1~ Distanz: ~1~.~1~m Zeit: ~1~ Sekunden -[CV_23] -ROW: 24 MODEL: prostitute2 +[WHEEL07] +WHEELIE BONUS: $ ~1~ Distanz: ~1~ Fuß Time: ~1~ Sekunden -[CV_24] -ROW: 25 MODEL: p_man1 +[WHEEL08] +WHEELIE BONUS: $ ~1~ Zeit: ~1~ Sekunden -[CV_25] -ROW: 26 MODEL: p_man2 +[WHEEL09] +WHEELIE BONUS: $ ~1~ Distanz: ~1~.~1~m -[CV_26] -ROW: 27 MODEL: p_wom1 +[WHEEL10] +WHEELIE BONUS: $ ~1~ Distanz: ~1~.~1~ Fuß -[CV_27] -ROW: 28 MODEL: p_wom2 +[WHEEL11] +VOLLBREMSUNGSBONUS: $ ~1~ Distanz: ~1~.~1~m Zeit: ~1~ Sekunden -[CV_28] -ROW: 29 MODEL: ct_man1 +[WHEEL12] +VOLLBREMSUNGSBONUS: $ ~1~ Distanz: ~1~ Fuß Zeit: ~1~ Sekunden -[CV_29] -ROW: 30 MODEL: ct_man2 +[WHEEL13] +VOLLBREMSUNGSBONUS: $ ~1~ Zeit: ~1~ Sekunden -[CV_30] -ROW: 31 MODEL: ct_wom1 +[WHEEL14] +VOLLBREMSUNGSBONUS: $ ~1~ Distanz: ~1~.~1~m -[CV_31] -ROW: 32 MODEL: ct_wom2 +[WHEEL15] +VOLLBREMSUNGSBONUS: $ ~1~ Distanz: ~1~ Fuß -[CV_32] -ROW: 33 MODEL: li_man1 +[ROK3_72] +Love Fist! -[CV_33] -ROW: 34 MODEL: li_man2 +[ROK3_74] +Ah, seht mal, was ist das? Hey, Tommy, leg mal dieses Band ein. -[CV_34] -ROW: 35 MODEL: li_wom1 - -[CV_35] -ROW: 36 MODEL: li_wom2 - -[CV_36] -ROW: 37 MODEL: docker1 - -[CV_37] -ROW: 38 MODEL: docker2 - -[CV_38] -ROW: 39 MODEL: scum_man - -[CV_39] -ROW: 40 MODEL: scum_wom - -[CV_40] -ROW: 41 MODEL: worker1 - -[CV_41] -ROW: 42 MODEL: worker2 - -[CV_42] -ROW: 43 MODEL: b_man1 - -[CV_43] -ROW: 44 MODEL: b_man2 - -[CV_44] -ROW: 67 MODEL: b_man3 - -[CV_45] -ROW: 45 MODEL: b_wom1 - -[CV_46] -ROW: 46 MODEL: b_wom2 - -[CV_47] -ROW: 70 MODEL: b_wom3 - -[CV_48] -ROW: 47 MODEL: mod_man - -[CV_49] -ROW: 48 MODEL: mod_wom - -[CV_50] -ROW: 49 MODEL: st_man - -[CV_51] -ROW: 50 MODEL: st_wom - -[CV_52] -ROW: 51 MODEL: fan_man1 - -[CV_53] -ROW: 52 MODEL: fan_man2 - -[CV_54] -ROW: 53 MODEL: fan_wom - -[CV_55] -ROW: 54 MODEL: hos_man - -[CV_56] -ROW: 55 MODEL: hos_wom - -[CV_57] -ROW: 56 MODEL: const1 - -[CV_58] -ROW: 57 MODEL: const2 - -[CV_59] -ROW: 58 MODEL: shopper1 - -[CV_60] -ROW: 59 MODEL: shopper2 - -[CV_61] -ROW: 60 MODEL: shopper3 - -[CV_62] -ROW: 61 MODEL: stud_man - -[CV_63] -ROW: 62 MODEL: stud_wom - -[CV_64] -ROW: 63 MODEL: cas_man - -[CV_65] -ROW: 64 MODEL: cas_wom - -[CV_79] -ROW: 123 MODEL: gang01 LEONE_A - -[CV_80] -ROW: 124 MODEL: gang02 LEONE_B - -[CV_81] -ROW: 69 MODEL: gang03 TRIAD_A - -[CV_82] -ROW: 3 MODEL: gang04 TRIAD_B - -[CV_83] -ROW: 4 MODEL: gang05 DIABLO_A - -[CV_84] -ROW: 5 MODEL: gang06 DIABLO_B - -[CV_85] -ROW: 68 MODEL: gang07 YAKUZA_A - -[CV_86] -ROW: 6 MODEL: gang08 YAKUZA_B - -[CV_87] -ROW: 7 MODEL: gang09 YARDIE_A - -[CV_88] -ROW: 8 MODEL: gang10 YARDIE_B - -[CV_89] -ROW: 9 MODEL: gang11 COLOMBIAN_A - -[CV_90] -ROW: 10 MODEL: gang12 COLOMBIAN_B - -[CV_91] -ROW: 11 MODEL: gang13 HOOD_A - -[CV_92] -ROW: 12 MODEL: gang14 HOOD_B - -[CV_93] -ROW: 89 MODEL: gang15 Forelli thug1 - -[CV_94] -ROW: 90 MODEL: gang16 Forelli thug2 - -[CV_95] -ROW: 88 MODEL: gang17 Sindacco thug1 - -[CV_96] -ROW: 89 MODEL: gang18 Sindacco thug2 - -[CV_109] -ROW: 65 MODEL: SAL_01 Salvatore (Mob Don) - -[CV_110] -ROW: 66 MODEL: RAY_01 Ray (Bad Cop) - -[CV_111] -ROW: 72 MODEL: VINC_01 Vincenzo Cilli - -[CV_112] -ROW: 73 MODEL: GRDANG1 Avenging Angel - -[CV_113] -ROW: 74 MODEL: NED_01 Ned Burner (Reporter) - -[CV_114] -ROW: 75 MODEL: MASTOR Massimo Torrini (Assassin) - -[CV_115] -ROW: 76 MODEL: TOOL_01 JD O'Toole - -[CV_116] -ROW: 77 MODEL: Not used Fthr Kenny - -[CV_117] -ROW: 78 MODEL: GRDANG2 Avenging Angel 2 - -[CV_118] -ROW: 79 MODEL: M_HOLE Mayor RC Hole - -[CV_119] -ROW: 80 MODEL: FRANFOR Franco Forelli - -[CV_120] -ROW: 81 MODEL: KAZUKI Kazuki Kasen - -[CV_121] -ROW: 82 MODEL: PAULIE Paulie Sindacco - -[CV_122] -ROW: 83 MODEL: HOPPER Jane Hopper - -[CV_123] -ROW: 84 MODEL: AVERY Avery Carrington - -[CV_124] -ROW: 85 MODEL: CASA Giovanni Casa - -[CV_125] -ROW: 86 MODEL: BABY Giovanni Casa (baby) - -[CV_126] -ROW: 87 MODEL: MCAFFRY Det. Leon McAffrey - -[CV_127] -ROW: 92 MODEL: EIGHT 8Ball - -[CV_128] -ROW: 93 MODEL: MAR_01 Maria - -[CV_129] -ROW: 94 MODEL: LOVE_01 Donald Love - -[CV_130] -ROW: 95 MODEL: MICKEYH Mickey H - -[CV_131] -ROW: 96 MODEL: WAYNE Wayne (Biker Dude) - -[CV_132] -ROW: 97 MODEL: BIKER1 Biker Dude 1 - -[CV_133] -ROW: 98 MODEL: BIKER2 Biker Dude 2 - -[CV_134] -ROW: 99 MODEL: DONOVAN O'Donovan - -[CV_135] -ROW: 100 MODEL: KAS_01 Toshiko Kasen (kimono) - -[CV_136] -ROW: 101 MODEL: WKAS_01 Toshiko Kasen (western) - -[CV_137] -ROW: 104 MODEL: JDMADE JD O'Toole - Made Man - -[CV_138] -ROW: 106 MODEL: THUG_01 Sicilian Thug 1 - -[CV_139] -ROW: 107 MODEL: THUG_02 Sicilian Thug 2 - -[CV_140] -ROW: 109 MODEL: CAMP_MAN Campaign Worker - -[CV_141] -ROW: 110 MODEL: CAMP_WOM Campaign Worker 2 - -[CV_142] -ROW: 111 MODEL: MIGUEL Miguel - -[CV_143] -ROW: 112 MODEL: DELIASS Deli Assistant - -[CV_144] -ROW: 113 MODEL: HOBO_01 Donald Love 2 - -[CV_68] -ROW: 122 MODEL: HITMAN Hitman - -[CV_146] -ROW: 125 MODEL: HOLEJOG Mayor RC Hole (Jogging outfit) - -[CV_147] -ROW: 126 MODEL: Chauff Chauffeur - -[CV_148] -ROW: 128 MODEL: plr2 (Lawyer) - -[CV_149] -ROW: 129 MODEL: plr3 (Travel clothes) - -[CV_150] -ROW: 130 MODEL: plr4 (Chauffeur) - -[CV_151] -ROW: 131 MODEL: plr5 (Hockey mask) - -[CV_152] -ROW: 132 MODEL: plr6 (Tuxedo) - -[CV_153] -ROW: 133 MODEL: plr7 (Avenging Angel) - -[CV_154] -ROW: 134 MODEL: plr8 (The King of Rock'n Roll) - -[CV_155] -ROW: 135 MODEL: plr9 (Cock's Mascot) - -[CV_156] -ROW: 136 MODEL: plr10 (Boxer Shorts) - -[CV_157] -ROW: 137 MODEL: plr11 (Bad Super Hero) - -[CV_158] -ROW: 138 MODEL: plr12 (Dragon) - -[CV_159] -ROW: 139 MODEL: PHILC Phil Cassidy - -[CV_160] -ROW: 140 MODEL: GREASE Grease Zuko - -[CV_161] -ROW: 141 MODEL: GUN_ASS Gun assistant - -[CV_162] -ROW: -- MODEL: JD_shot JD shot dead - -[CV_163] -ROW: -- MODEL: BODYBAG bodybag - -[CV_164] -ROW: 142 MODEL: SAL_CON Sal Convict - -[VV_131] -ID:131 MODEL: Landstalker (TBC) - -[VV_135] -ID:135 MODEL: Perenial (TBC) - -[VV_138] -ID:138 MODEL: Firetruck - -[VV_141] -ID:141 MODEL: Manana (TBC) - -[VV_148] -ID:148 MODEL: FBI Car (TBC) - -[VV_152] -ID:152 MODEL: Kuruma (TBC) - -[VV_164] -ID:164 MODEL: Dodo (TBC) - -[VV_169] -ID:169 MODELL: Rc Bandit - -[VV_170] -ID:170 MODEL: BellyUp (Triad) (TBC) - -[VV_172] -ID:172 MODEL: Leone Sentinel (TBC) - -[VV_174] -ID: 174 MODEL: Yakuza (TBC) - -[VV_179] -ID:179 MODEL: Flatbed (TBC) - -[VV_181] -ID:181 MODEL: Borgnine Taxi (TBC) - -[VV_188] -ID: 188 MODEL: Sindacco Argento (TBC) - -[VV_189] -ID: 189 MODEL: Forelli Lexcess (TBC) - -[VV_192] -ID:192 MODEL: Speeder (TBC) - -[BV_H1] -Press CIRCLE to swap building model. - -[BV_0A] -ROW: 2 - Portland. Safehouse Exterior. Press CIRCLE to swap. - -[BV_0B] -ROW:24 - Portland. Safehouse Interior. Press CIRCLE to swap. - -[BV_1] -ROW: 3 - Portland. Ferry Terminal. - -[BV_2A] -ROW: 4 - Portland. Callahan Bridge 1. Press CIRCLE to swap. - -[BV_2B] -ROW: 4 - Portland. Callahan Bridge 2. Press CIRCLE to swap. - -[BV_3] -ROW: 5 - Portland. Les Cargo Freighter. - -[BV_4A] -ROW: 6 - Portland. Doll's House Brothel 1. Press CIRCLE to swap. - -[BV_4B] -ROW: 6 - Portland. Doll's House Brothel 2. Press CIRCLE to swap. - -[BV_5] -ROW: 7 - Portland. Tower Block. - -[BV_6] -ROW: 8 - Portland. Eddie's Garage. - -[BV_7] -ROW: 9 - Portland. Bowler's Fist Pub. - -[BV_8] -ROW:10 - Portland. Hepburn Heights. - -[BV_9] -ROW:11 - Portland. Short Stay Hotel. - -[BV_10] -ROW:12 - Portland. Car Dealership. - -[BV_11] -ROW:13 - Portland. Bus Graveyard. - -[BV_12A] -ROW:14 - Portland. Drugs Warehouse 1 (awaiting approval). Press CIRCLE to swap. - -[BV_12B] -ROW:14 - Portland. Drugs Warehouse 2 (awaiting approval). Press CIRCLE to swap. - -[BV_13] -ROW:15 - Portland. Ma Cipriani's Restaurant. - -[BV_14] -ROW:17 - Portland. Basketball Court, Callahan. - -[BV_15] -ROW:18 - Portland. Bike Shop. - -[BV_16] -ROW:19 - Portland. Building near Basketball Court. - -[BV_17A] -ROW:20 - Portland. Luigi's Nightclub 1. - -[BV_17B] -ROW:20 - Portland. Luigi's Nightclub 2. - -[BV_17C] -ROW:20 - Portland. Luigi's Nightclub 3. - -[BV_18] -ROW:21 - Portland. Casa's Gourmet Deli. - -[BV_19] -ROW:22 - Portland. Rusty Ship. - -[BV_20] -ROW:23 - Portland. Door for Shopfront. - -[BV_21] -ROW:25 - Staunton. Casino. - -[BV_22] -ROW:26 - Staunton. Phil Cassidy's Store. - -[BV_23] -ROW:27 - Staunton. Zip store. - -[BV_24] -ROW:28 - Staunton. Container Park. - -[BV_25] -ROW:29 - Staunton. Ferry Terminal. - -[BV_26A] -ROW:30 - Staunton. Fort Staunton 1 NORTH. - -[BV_26B] -ROW:30 - Staunton. Fort Staunton 2 NORTH. - -[BV_27A] -ROW:30 - Staunton. Fort Staunton 1 SOUTH. - -[BV_27B] -ROW:30 - Staunton. Fort Staunton 2 SOUTH. - -[BV_28] -ROW:31 - Ferry - Not Visible At Present. - -[BV_29A] -ROW:32 - Staunton. Safehouse Exterior (unchanged). Press CIRCLE to swap. - -[BV_29B] -ROW:32 - Staunton. Safehouse Interior. Press CIRCLE to swap. - -[BV_30] -ROW:33 - Staunton. Steps Added To Building. - -[BV_31] -ROW:34 - Portland. Outbuilding. - -[BV_32A] -ROW:34 - Shoreside. Safehouse Exterior (unchanged). Press CIRCLE to swap. - -[BV_32B] -ROW:34 - Shoreside. Safehouse Interior. Press CIRCLE to swap. - -[BV_33] -Not in Doc - Staunton - Warehouse Interior (not internally approved). - -[BV_34A] -Not in Doc - Staunton - Church Exterior. Press CIRCLE to swap. - -[BV_34B] -Not in Doc - Staunton - Church Interior for scripted cutscene. Press CIRCLE to swap. - -[MODWOR] -Modify World Speed - -[MODTIT] -Changing World Speed - -[NEDS2] -Himmelfahrt und Hochkaräter - -[NEDS3] -Karmageddon - -[NEDS4] -Götzendämmerung - -[DONS1] -Der Leichenhauskandidat - -[GAR_WIL] -Fahr das Auto in die Garage. - -[DONS2] -Stimmenfang - -[DONS3] -Wahlkrampf - -[DONS4] -'Glimm'-Zettel - -[DONS5] -Love & Blei - -[DONS6] -Zettelwirtschaft - -[DONS7] -Schlechtes Vitamin B - -[DONS7AA] -Toni, du musst mir helfen! - -[DONS7AB] -O'Donovan hat Beweise für meine Verbindung zu Salvatore. Es ist aus! - -[DONS7AC] -Ruhig Blut. Beweise verschwinden jeden Tag. - -[DONS7AD] -Und Richter, Zeugen und Geschworene sowieso. - -[DONS7AE] -Gut, dass du das so siehst. - -[DONS7AF] -Einer meiner Leute ist dem Mann mit dem Beweismaterial gefolgt. - -[DONS7AG] -Er erwartet dich unter der Überführung in Newport. - -[SALS1] -Auf ins Grüne - -[SALS2] -Feuertaufe für Toni - -[SALS3] -In Flagranti - -[SALS4] -Rettungsdienste - -[SALS5] -Friedensmisshandlungen - -[SALS6] -Sarg für 'nen Singvogel - -[RAYS1] -Sayonara Sindaccos - -[RAYS2] -Yardie-'Party' - -[RAYS3] -Crazy '69' - -[RAYS4] -Yardie-Schutzengel - -[RAYS5] -Waffenschiebung - -[MC_01] -MOCAP Scenes - -[MC_02] -Während du den Cutscene-Selector benutzt, kannst du keine Mission ausführen. - -[MC_04] -Wähle die gewünschte Cutscene aus und drücke X. Drücke DREIECK zum Abbrechen. - -[MC_03] -~g~Cutscene-Name - Script-Name~w~ - -[MC_S01] -1. Biker - mar4 - -[MC_S02] -2. Bonevoy - jdt1 - -[MC_S03] -3. Campain - dons3 - -[MC_S04] -4. Cashchp - tosh4 - -[MC_S05] -5. Contban - sal5 - -[MC_S06] -6. Crazy69 - rays3 - -[MC_S07] -7. Cuttest - none - -[MC_S08] -8. Deadly - tosh1 - -[MC_S09] -9. Donprob - donh6 - -[MC_S10] -10. Drivnmr - sal8 - -[MC_S11] -11. Electon - dons7 - -[MC_S12] -12. Homswet - vic1 - -[MC_S13] -13. Hotwhel - vic6 - -[MC_S14] -14. Kidnapp - jdt5 - -[MC_S15] -15. Landgrb - donh1 - -[MC_S16] -16. Morgue - dons1 - -[MC_S17] -17. Overdos - mar5 - -[MC_S18] -18. Rufjust - salh1 - -[MC_S19] -19. Sayonar - rays1 - -[MC_S20] -20. sicilan - salh5 - -[MC_S21] -21. Theofer - sal1 - -[MC_S22] -22. Intro - -[MC_S23] -23. Final - -[MC_S24] -24. Final_2 - -[NEDS1] -L.C. Confidential - -[WILGAR2] -Steig aus dem Auto und geh nach draußen. - -{=================================== MISSION TABLE SAL1 ===================================} - -[SAL1_M1:SAL1] -~w~Salvatore will mit Ihnen reden. - -[SAL1_M2:SAL1] -~w~Ich spiele Salvatores Spielchen nicht mit. - -[SAL1_M3:SAL1] -~w~Danke für die Spende, Kleiner... bis bald mal. - -[SAL1_M5:SAL1] -~w~Hey! - -[SAL1_D1:SAL1] -~w~Hey! Streikbrecher! - -[SAL1_D2:SAL1] -~w~Schnappt ihn euch! - -[SAL1_D3:SAL1] -~w~Da ist er! - -[SAL1_D4:SAL1] -~w~Er ist da drüben! - -[SAL1_E1:SAL1] -~w~Flüchte von den Docks! - -[SAL1_A1:SAL1] -~w~Triff dich mit der Gewerkschaftsvorsitzenden, Jane Hopper, bei den ~y~Portland Docks. - -[THEO_01:SAL1] -Ey, Boss, geht's gut? - -[THEO_02:SAL1] -Sehe ich so aus? - -[THEO_03:SAL1] -Nein. - -[THEO_04:SAL1] -Sag mal, hast du nur Scheiße im Hirn? - -[THEO_05:SAL1] -Immer sagst du, was sowieso klar ist. - -[THEO_06:SAL1] -Unglaublich, mit was für Typen ich mich abgeben muss. - -[THEO_07:SAL1] -Entschuldigung. - -[THEO_08:SAL1] -Ich entschuldige mich. Du bist einer meiner getreuesten Verbündeten. - -[THEO_09:SAL1] -Was du getan hast, macht dich wie einen Sohn für mich. Mehr als mein Sohn, - -[THEO_10:SAL1] -mehr als jeder Sohn. - -[THEO_11:SAL1] -Deine Mutter ist zu beneiden. - -[THEO_12:SAL1] -So sagt man. - -[THEO_13:SAL1] -Anthony, Männer wie wir sind passé. - -[THEO_14:SAL1] -Wir sind Dinosaurier. Dodos. Dildos. Oder sowas. - -[THEO_15:SAL1] -Sogar in meiner eigenen Familie habe ich das Gefühl, von 12 Judassen umgeben zu sein. - -[THEO_16:SAL1] -Ich meine, hör dir das an: - -[THEO_17:SAL1] -Da bitte ich 'nen Gewerkschaftsboss, noch dazu 'ne Tussi, um 'nen Gefallen - -[THEO_18:SAL1] -und sie verlangt Geld von mir! - -[THEO_19:SAL1] -Dabei wollte ich nur für 24 Stunden Zugang zu den Docks, während der Streik lief - - -[THEO_20:SAL1] -den ich mitorganisiert hatte, damit meine Jungs Drogen entladen konnten - - -[THEO_21:SAL1] -und jetzt bringt sie diese Scheiße! - -[THEO_22:SAL1] -Dabei sind das Leute, für die ich persönlich gekämpft habe, - -[THEO_23:SAL1] -für die ich getötet habe. Ehrliche Leute. - -[THEO_26:SAL1] -Eine Schande. Wir sind erledigt, wir Ehrenmänner wie du und ich. - -[THEO_27:SAL1] -Hör zu, Toni, ich möchte, dass du ihr etwas bringst. - -[THEO_28:SAL1] -Sie lassen sich sowas von 'ner Tussi bieten? - -[THEO_29:SAL1] -Was bleibt mir vorerst übrig? - -[THEO_30:SAL1] -Hör mal, bring ihr die Knete und sag ihr, dass ich sie sprechen will. - -[THEO_31:SAL1] -Los. - -[THEO_24:SAL1] -- Und so danken sie es mir? ~n~ - Beleidigend ist das. - -{=================================== MISSION TABLE SAL2 ===================================} - -[SAL2_N:SAL2] -Girls - -[SAL2_A0:SAL2] -~w~Ist das einer von deinen neuen Fiffis, Sal? - -[SAL2_A1:SAL2] -~w~Mr. Leone? - -[SAL2_A2:SAL2] -~w~Toni! Come sta? - -[SAL2_A3:SAL2] -~w~Schön, dass du da bist. Du musst etwas für mich erledigen... - -[SAL2_A4:SAL2] -~w~Wenn die Schlampe von der Gewerkschaft nicht will, dann aber vielleicht ihre Jungs. Capiche? - -[SAL2_A:SAL2] -~w~Sammle 6 ~b~Nutten~w~ auf und bring sie zu den Streikposten bei den Portland Docks. - -[SAL2_B0:SAL2] -~w~Süßer, ich steh nicht auf so'n 'Zwei-für-einen'-Scheiß! - -[SAL2_B1:SAL2] -~w~Wenn du mehr Platz hast, dann kannst du mal auf mir Platz nehmen! Ich fahr nicht auf dem Dachgepäckträger! - -[SAL2_D0:SAL2] -~w~Bist du allein, Sweetie? - -[SAL2_D1:SAL2] -~w~Hey, Hübscher, hast du Lust auf ein bisschen Spaß? - -[SAL2_D2:SAL2] -~w~Schnuckelchen... wie wär's denn mit uns beiden? - -[SAL2_D3:SAL2] -~w~Lust auf 'ne kleine Privatparty, Süßer? - -[SAL2_D4:SAL2] -~w~Hey, Baby, willst du dich amüsieren? - -[SAL2_D5:SAL2] -~w~Hi, Süßer! Ich bin Candy! - -[SAL2_F0:SAL2] -~w~Hey! Ich komm auch mit! - -[SAL2_F1:SAL2] -~w~Also, nur wir zwei Hübschen, hä? - -[SAL2_F2:SAL2] -~w~Machen wir's jetzt, oder was? - -[SAL2_F3:SAL2] -~w~Lust auf 'ne kleine Privatparty? - -[SAL2_F4:SAL2] -~w~Oh, Mann, jetzt hab dich nicht so. - -[SAL2_F5:SAL2] -~w~Ich will nur ein bisschen Fez mit dir machen! - -[SAL2_G0:SAL2] -~w~Bring sie zu den ~y~Streikposten! - -[SAL2_G1:SAL2] -~w~Bring die Girls zu den ~y~Streikposten! - -[SAL2_G2:SAL2] -~w~Kümmere dich um den ~r~Freier! - -[SAL2_G3:SAL2] -~w~Kümmere dich um die ~r~Freier! - -[SAL2_G4:SAL2] -~w~Hol mehr ~b~Girls! - -[SAL2_H:SAL2] -~w~Lust auf 'ne kleine Privatparty, Süßer? - -[SAL2_P:SAL2] -~w~Viel Spaß, Jungs! Das spendiert Salvatore Leone! - -[SAL2_I0:SAL2] -~w~Such dir selber 'n Girl, Arschgesicht! Die gehört mir! - -[SAL2_I1:SAL2] -~w~Hey! Bist du ein Spanner, oder was! - -[SAL2_I3:SAL2] -~w~Hey! Wer ist das, verdammt? Den schnappen wir uns! - -[SAL2_I5:SAL2] -~w~Hey, Freundchen, hinten anstellen! Wir waren zuerst da. - -[SAL2_I7:SAL2] -~w~Du bist der Beste! Nicht aufhören... oh, ja, Daddy! - -[SAL2_I9:SAL2] -~w~Also, an die Arbeit... - -[SAL2_K0:SAL2] -~w~Leg dich nie mit Toni Cipriani an! - -[SAL2_K1:SAL2] -~w~Komm! Mach schon! - -[SAL2_K2:SAL2] -~w~Mach schon, Mädchen! Beweg den Arsch! - -[SAL2_C0:SAL2] -~w~Hey! Komm zurück, Baby! ...Ich beiß nicht! - -[SAL2_C1:SAL2] -~w~Hey! Baby! Wo willst du hin? - -[SAL2_L0:SAL2] -~w~Ich warte hier nicht den ganzen Tag, Arschloch! - -[SAL2_L1:SAL2] -~w~Schätzchen, meine Zeit kostet Geld! - -[SAL2_X0:SAL2] -~r~Die Zeit ist um! - -[SAL2_X1:SAL2] -~r~Du hast zu viele Nutten erledigt! - -[SAL2_X2:SAL2] -~r~Du hast die Dockarbeiter angegriffen. Jetzt vertrauen sie dir nie mehr! - -[SAL2_X3:SAL2] -~r~Du hast die Girls der Dockarbeiter angegriffen. Jetzt vertrauen sie dir nie mehr! - -[SAL2_G5:SAL2] -~w~Sieht so aus, als hättest du einen Verehrer. - -[SAL2_I8:SAL2] -~w~Süße, du willst doch nicht ins Kittchen, oder? - -[SAL2_I6:SAL2] -~w~Ja! Ja! ... - -[SAL2_M:SAL2] -~w~Versuch, sie möglichst nicht umzubringen. Finde ein anderes ~b~Girl! - -[SAL2_W1:SAL2] -~w~Du hast nur bis 0~1~:~1~ Uhr Zeit, bevor die Streikposten Schichtwechsel haben! - -[SAL2_W2:SAL2] -~w~Du hast nur bis ~1~:~1~ Uhr Zeit, bevor die Streikposten Schichtwechsel haben! - -[SAL2_G6:SAL2] -~w~Halte in der ~y~gelben Markierung~w~, um die Girls abzusetzen. - -[SAL2_G7:SAL2] -~w~Störe den Freier, damit das ~b~Girl~w~ aus dem Auto steigt. - -[SAL2_B:SAL2] -~w~Es passen keine Girls mehr in dein Auto. - -{=================================== MISSION TABLE SAL3 ===================================} - -[SAL3_A0:SAL3] -~w~Toni! Wie geht's dir, mein Junge? - -[SAL3_A1:SAL3] -~w~Du siehst mager aus. Kocht dir deine Mama nichts Anständiges? - -[SAL3_A2:SAL3] -~w~Mir geht's gut, Mr. Leone. - -[SAL3_A3:SAL3] -~w~Hör mal, diese Gewerkschaftler - die nerven mich langsam. - -[SAL3_A5:SAL3] -~w~aber wir müssen ein paar von den 'weniger einsichtigen' Gewerkschaftsfunktionären mehr Druck machen. - -[SAL3_B0:SAL3] -~w~Jag den ~r~Gewerkschaftsfunktionären~w~ Angst ein, damit sie kapieren! - -[SAL3_B3:SAL3] -~w~Die sollen ab jetzt tun, was sie gesagt bekommen. - -[SAL3_BA:SAL3] -~w~Sie sind verrückt, Mann! Ich will keinen Ärger mehr! - -[SAL3_CA:SAL3] -~w~Was soll das? Sind Sie verrückt? - -[SAL3_DA:SAL3] -~w~Das Auto war bis auf zwei Raten abbezahlt! Du Hurensohn! - -[SAL3_BB:SAL3] -~w~Ab sofort tust du, was man dir sagt! - -[SAL3_CB:SAL3] -~w~Misch dich nicht in Leone-Angelegenheiten! - -[SAL3_A4:SAL3] -~w~Anscheinend kommen zwar manche inzwischen zur Vernunft, - -[SAL3_A6:SAL3] -~w~Verstehst du, was ich meine? - -[SAL3_B1:SAL3] -~w~Wie willst du dein Argument anbringen, wenn sie alle tot sind? Bring keine weiteren ~r~Gewerkschaftsbosse~w~ um! - -[SAL3_B2:SAL3] -~r~Du solltest sie einschüchtern, nicht umbringen! - -[SAL3_B4:SAL3] -~w~Such dir einen anderen ~r~Gewerkschaftsboss~w~, um ihm Vernunft beizubringen. - -{=================================== MISSION TABLE SAL5 ===================================} - -[SAL5_D3:SAL5] -~w~Fahr das ~h~Fahrzeug ~w~in die Garage. - -[SAL5_D4:SAL5] -~w~Steig aus und lass das Fahrzeug in der ~h~Garage. - -[SAL5_B:SAL5] -~w~Beschaff dir einen Viersitzer und lade ein paar Mann als ~b~Verstärkung~w~ ein. - -[SAL5_C:SAL5] -~w~Du brauchst einen Viersitzer. - -[SAL5_C0:SAL5] -~w~Hol dir ~b~Verstärkung. - -[SAL5_C1:SAL5] -~w~Du brauchst ein Fahrzeug mit mehr Sitzplätzen für mehr ~b~Verstärkung. - -[SAL5_C2:SAL5] -~w~Fahr zu den ~y~Portland Docks. - -[SAL5_AA:SAL5] -~w~Heeey... Alter... ich warte schon seit Stunden auf dich! - -[SAL5_AB:SAL5] -~w~Hör auf zu meckern, Miguel. Hast du den Stoff? - -[SAL5_AG:SAL5] -~w~...hast du unser Geld? - -[SAL5_AH:SAL5] -~w~Klar... - -[SAL5_AI:SAL5] -~w~Was? - -[SAL5_AJ:SAL5] -~w~Du scheiß Latinoarsch! - -[SAL5_C8:SAL5] -~w~Steig in das ~b~Drogenfahrzeug~w~ und dann nichts wie weg hier! - -[SAL5_C9:SAL5] -~w~Bring das Fahrzeug zu ~y~Salvatores Garage. - -[SAL5_D1:SAL5] -~w~Steig wieder in das ~b~Fahrzeug! - -[SAL5_D2:SAL5] -~r~Die Drogen wurden zerstört! - -[SAL5_AF:SAL5] -~w~Hehehe! Ich mag dich, Toni. Du hast große Eier - wie ein Stier! - -[SAL5_C3:SAL5] -~w~Schüttle die Cops ab! - -[SAL5_D5:SAL5] -~r~Die Drogen wurden beschlagnahmt! - -[SAL5_AD:SAL5] -~w~Hey, ich bin ein vielbeschäftigter Mann, Toni. Das nächste Mal verkauf ich an 'nen anderen! - -[SAL5_AE:SAL5] -~w~Ja. Ich bezweifle, dass du einen findest, der so viel zahlt wie wir. - -[SAL5_D6:SAL5] -~w~Erledige die ~r~Drogendealer. - -[CONT_01:SAL5] -Halt's Maul, undankbares Miststück. - -[CONT_06:SAL5] -Sonst fasst du mich ja in letzter Zeit nicht an. - -[CONT_07:SAL5] -Warum sollte ich dich Miststück anfassen? - -[CONT_08:SAL5] -Ich mag keine Gebrauchtwaren. - -[CONT_09:SAL5] -Du ekelst mich an. - -[CONT_12:SAL5] -Bitte! Weißt du, was? - -[CONT_15:SAL5] -Hallo, Toni. - -[CONT_16:SAL5] -Ich will meine Kohle, alter Sack! - -[CONT_17:SAL5] -Hau ab, du Flittchen. - -[CONT_18:SAL5] -Hey, Anthony, du Retter in der Not. - -[CONT_19:SAL5] -Weiber - was will man machen, hm? - -[CONT_20:SAL5] -Zum Glück kann ich einem im Leben trauen - dir, Toni. - -[CONT_21:SAL5] -Du bedeutest mir wirklich viel. Hab ich dir das je gesagt? - -[CONT_22:SAL5] -Krieg erst mal einen hoch, alter Drecksack! - -[CONT_23:SAL5] -Bei dir Schlampe nicht. Öffentliche Klos machen mich nicht an. - -[CONT_24:SAL5] -Es ist wichtig, also hör zu. Wir beide haben jetzt allein das Sagen. - -[CONT_25:SAL5] -Wir haben diese Idioten vertrieben. - -[CONT_26:SAL5] -Woher willst du das wissen? Du bist doch lieber mit Kerlen zusammen! - -[CONT_27:SAL5] -Und du bist nur zufrieden, wenn du mit runtergezogenem Schlüpfer - -[CONT_28:SAL5] -gegen 'ne Wand gelehnt stehst! - -[CONT_29:SAL5] -Mensch, es gibt Karnickel, die weniger rammeln als du! - -[CONT_33:SAL5] -Jedenfalls erwarte ich 'ne Lieferung du weißt schon was. - -[CONT_34:SAL5] -Die Sache wird uns - dich und mich - ganz groß machen. - -[CONT_35:SAL5] -Es dürfte alles glatt laufen. - -[CONT_36:SAL5] -Ich brauche nur jemanden, dem ich vertrauen kann, der's für mich abwickelt. - -[CONT_37:SAL5] -Na gut, Toni, wir sprechen uns später. - -[CONT_38:SAL5] -Und noch was - mir ist noch nie 'ne Puppe mit 'nem Hydraulik-Slip untergekommen. - -[CONT_39:SAL5] -Nicht zu fassen! Warum hab ich sie geheiratet? - -[CONT_40:SAL5] -Ich wollte 'ne Schlampe und heirate 'ne Nutte! - -[CONT_41:SAL5] -In 'nem früheren Leben hab ich jemanden echt sauer gemacht, - -[CONT_42:SAL5] -so viel steht fest. - -[CONT_02:SAL5] -- Noch ein Wort und ich schick dich für 'ne Woche ins Krankenhaus. ~n~ - Ja klar, du Flachwichser. - -[CONT_04:SAL5] -- Willst du mal wieder zuschlagen? ~n~ - Ich sollte dir... - -[CONT_10:SAL5] -- Ich ekel dich an?! ~n~ - Jawohl! - -[CONT_13:SAL5] -- Mein Vater hatte Recht damit, dass du nur ein widerlicher Fettsack bist... ~n~ - Ja, ja, ja... - -[CONT_43:SAL5] -- Hör zu, es ist wichtig... ~n~ - Ach, leck mich doch, Salvatore Leone, - -[CONT_31:SAL5] -- du schwanzloser, prügelnder, italienischer Scheißkerl! ~n~ - Lecken soll ich dich? Bestimmt nicht. Das macht doch sonst jeder! - -{=================================== MISSION TABLE SAL4 ===================================} - -[SAL4_I1:SAL4] -~w~Dieser Streik geht weiter, bis die Stadt uns Garantien gibt! - -[SAL4_I2:SAL4] -~w~Mafiosi! Denken, die Gewerkschaft würde nach ihrer Pfeife tanzen - von wegen! - -[SAL4_I3:SAL4] -~w~Mir machen die keine Angst! - -[SAL4_I4:SAL4] -~w~Ich hab mehr Mumm als die alle zusammen! - -[SAL4_I5:SAL4] -~w~Hör dir den Scheiß an. - -[SAL4_I6:SAL4] -~w~Ich sollte die Schlampe umnieten lassen. Die verscheißert mich! - -[SAL4_I7:SAL4] -~w~Na, was die kann, kann ich auch. - -[SAL4_I8:SAL4] -~w~Toni, du überbringst eine Nachricht für mich! - -[SAL4_A2:SAL4] -~w~Jetzt zieh den ~r~Chauffeur~w~ aus dem Verkehr. - -[SAL4_A3:SAL4] -~w~Hey! - -[SAL4_A4:SAL4] -~w~Steig in die ~b~Limo. - -[SAL4_A5:SAL4] -~w~Fahr mit der Limousine zum ~y~Radiosender! - -[SAL4_A6:SAL4] -~w~Jetzt warte auf Hopper. - -[SAL4_A7:SAL4] -~w~Stell die Limo wieder auf ihren Platz. Hopper darf keinen Verdacht schöpfen. - -[SAL4_B1:SAL4] -~w~Harwood Fährhafen und zwar flott! - -[SAL4_B2:SAL4] -~w~Wie Sie wünschen! - -[SAL4_C1:SAL4] -~w~Jag Hopper eine Heidenangst ein! - -[SAL4_C2:SAL4] -Angst - -[SAL4S1:SAL4] -~w~Hey, langsam, wir fahren hier kein Rennen! - -[SAL4S2:SAL4] -~w~Ist das auch der richtige Weg? - -[SAL4S3:SAL4] -~w~Hey, Sie sind gar nicht mein Fahrer! - -[SAL4S4:SAL4] -~w~Verdammt, wer sind Sie?! - -[SAL4S5:SAL4] -~w~Halt's Maul! - -[SAL4S6:SAL4] -~w~Ab sofort tust du genau das, was Salvatore Leone dir sagt! - -[SAL4S7:SAL4] -~w~Capiche? - -[SAL4S8:SAL4] -~w~Da... damit machen Sie mir keine Angst! - -[SAL4S9:SAL4] -~w~Abwarten! - -[SAL4S10:SAL4] -~w~Lassen Sie mich sofort aussteigen! - -[SAL4S11:SAL4] -~w~Bitte! Sie bringen uns beide um! - -[SAL4S12:SAL4] -~w~Neeeiiin! - -[SAL4S13:SAL4] -~w~Womit habe ich das verdient? - -[SAL4_F1:SAL4] -~w~Wo ist meine Limousine? - -[SAL4_F2:SAL4] -~w~Sie sind nicht mein Fahrer. Ich rufe die Polizei! - -[SAL4_F3:SAL4] -~r~Zu spät, Hopper ist dir draufgekommen! - -[SAL4_F4:SAL4] -~w~Salvatore kann mich kreuzweise! - -[SAL4_F5:SAL4] -~r~Die Limousine wurde zerstört! - -[SAL4_F6:SAL4] -~r~Hopper ist tot! - -[SAL4_F7:SAL4] -~r~Hopper ist entkommen! - -[SAL4_F8:SAL4] -~r~Die verbeulte Limousine hat Hopper verschreckt. - -[SAL4_F9:SAL4] -~r~Hopper wurde verschreckt. - -[SAL4_P1:SAL4] -~w~Okay! Okay! Ich habe genug! - -[SAL4P1A:SAL4] -~w~Ich tue, was Sie wollen. - -[SAL4_P2:SAL4] -~w~Bring Hopper zu den Streikposten am ~y~Fährhafen. - -[SAL4_P3:SAL4] -~w~Und denken Sie an unsere kleine Abmachung, Lady! - -[SAL4_H1:SAL4] -~w~Eine Mischung aus Tempo, Karambolagen und Stunt-Sprüngen sollte Hopper gefügig machen. - -[SAL4_F0:SAL4] -~r~Zu spät! Hopper hat den Radiosender verlassen! - -[SAL4_A:SAL4] -~w~Du musst zu dem ~y~Radiosender~w~, bevor Hopper ihn um 0~1~:00 Uhr verlässt. - -[SAL4_A1:SAL4] -~w~Du musst zu dem ~y~Radiosender~w~, bevor Hopper ihn um ~1~:00 Uhr verlässt. - -{=================================== MISSION TABLE SAL6 ===================================} - -[SAL6_A0:SAL6] -~w~Toni, wir haben Ärger! Großen Ärger! - -[SAL6_A1:SAL6] -~w~Was ist los, Sal? - -[SAL6_A3:SAL6] -~w~Die machen uns fertig! - -[SAL6_A4:SAL6] -~w~Da haben wir gerade einen Krieg hinter uns und PÄNG! - stecken wir mitten im nächsten! - -[SAL6_A5:SAL6] -~w~Ich sag's dir - gerade wo's aufwärts ging! Mir klebt ein scheiß Fluch am Leib! - -[SAL6_A6:SAL6] -~w~Hey, keine Sorge, Boss! Ich kümmere mich darum. - -[SAL6_AA:SAL6] -~w~Sal hat die Waffen, die du brauchst, in der Garage deponiert. - -[SAL6_B:SAL6] -~w~Schlage die ~r~Diablos~w~ zurück, ehe alle Leone-Gangster tot sind! - -[SAL6_1:SAL6] -~w~Es sind nur noch ~1~ Leones am Leben! - -[SAL6_2:SAL6] -~w~Es ist nur noch 1 Leone am Leben! - -[SAL6_C1:SAL6] -~w~Wir werden hier massakriert, Toni! - -[SAL6_C2:SAL6] -~w~Für so'n Scheiß krieg ich zu wenig bezahlt, Mann! - -[SAL6_C3:SAL6] -~w~Du bist irre, Toni! Wir gehen alle drauf! - -[SAL6_E1:SAL6] -~w~Sal? - -[SAL6_E2:SAL6] -~w~Toni! Ist es vorbei? Wie lief's? - -[SAL6_E3:SAL6] -~w~Sieht nicht gut aus, Sal. - -[SAL6_E4:SAL6] -~w~Ein paar Jungs konnte ich retten, aber es gab vorher schon zu viele Verluste. - -[SAL6_E5:SAL6] -~w~Ich glaub, den Teil der Stadt verlieren wir. - -[SAL6_E6:SAL6] -~w~Nur über meine Leiche! Noch ist es nicht vorbei! - -[SAL6_E7:SAL6] -~w~Gar nichts verlier ich! Die Leones geben niemals klein bei! - -[SAL6_E8:SAL6] -~w~Hast du gehört, Toni? - -[SAL6_E9:SAL6] -~w~Hab verstanden, Sal. - -[SAL6_G0:SAL6] -~r~Alle Leone-Leute sind tot. - -[SAL6_Z1:SAL6] -Leones - -[SAL6_Z2:SAL6] -Diablos - -[SAL6_X0:SAL6] -Got threat - -[SAL6_X1:SAL6] -Had threat - -[SAL6_X2:SAL6] -Find threat - -[SAL6_X3:SAL6] -Complain - -[SAL6_C0:SAL6] -~w~Lass die Wichser! Verschwinden wir schleunigst hier! - -[SAL6_A2:SAL6] -~w~Wo soll das noch enden? Die Diablos haben in Hepburn einen Großangriff auf uns gestartet! - -{=================================== MISSION TABLE SAL7 ===================================} - -[SAL7_01:SAL7] -~w~Hey, Sal! - -[SAL7_02:SAL7] -~w~Toni! Wie findest du mein neues Auto? - -[SAL7_05:SAL7] -~w~Ein Prachtstück, hä? Luxusausstattung, das Beste vom Besten. - -[SAL7_A6:SAL7] -~w~...ach so, Midlife-Krise! - -[SAL7_07:SAL7] -~w~Schnauze! Toni, hör zu. - -[SAL7_08:SAL7] -~w~In meinem Lagerhaus am Callahan Point liegt ein Riesenhaufen Geld. Das müsste abgeholt werden. - -[SAL7_10:SAL7] -~w~Außer dir trau ich da keinem. - -[SAL7_11:SAL7] -~w~Mädels, wollt ihr den ganzen Tag quatschen, oder fahren wir? - -[SAL7_12:SAL7] -~w~Verdammt, Weib! Hab ich dir erlaubt, den Mund aufzumachen? - -[SAL7_20:SAL7] -~w~Komm! Beeil dich! - -[SAL7_21:SAL7] -~w~Okay... - -[SAL7_22:SAL7] -~w~Los geht's! - -[SAL7_23:SAL7] -~w~Hey, Toni! Come sta? - -[SAL7_30:SAL7] -~w~Du musst zu dem ~y~Lagerhaus. - -[SAL7_40:SAL7] -~w~Hol Salvatores gesamtes Geld raus, ehe es in Flammen aufgeht! - -[SAL7_50:SAL7] -~w~Bring die Beute zu ~y~Salvatore. - -[SAL7_NM:SAL7] -~w~Geh wieder rein! Du hast noch nicht das ganze ~g~Geld. - -[SAL7_E1:SAL7] -~w~Macht ihn fertig! - -[SAL7_E2:SAL7] -~w~Stirb! - -[SAL7_E3:SAL7] -~w~Da ist einer! - -[SAL7_E4:SAL7] -~w~Ich sehe ihn! - -[SAL7_T1:SAL7] -~w~Zurück! - -[SAL7_T2:SAL7] -~w~Wie schmeckt dir das! - -[SAL7_T3:SAL7] -~w~Na, komm! - -[SAL7_T4:SAL7] -~w~Friss das! - -[SAL7_F1:SAL7] -~r~Du hast Salvatores Geld nicht rechtzeitig geborgen! - -[SAL7_06:SAL7] -~w~Was stinkt denn da so? - -[SAL7_42:SAL7] -~w~Hol dir das ~g~Geld~w~, bevor es zu brennen anfängt! - -{=================================== MISSION TABLE SAL8 ===================================} - -[SAL8_VE:SAL8] -~r~v1.2 - -[SAL8_11:SAL8] -~w~Hol ein Auto, Toni, wir fahren wohin... - -[SAL8_12:SAL8] -~w~Fahr Richtung Fähranlegestelle. - -[SAL812A:SAL8] -~w~Aber die streiken noch... es gehen keine Fähren. - -[SAL812B:SAL8] -~w~Fahr einfach. Überlass das Denken mir. - -[SAL8_14:SAL8] -~w~Heiliger Bimbam! Hier wimmelt's nur so von Bullen! Nichts wie weg hier, verdammt! - -[SAL8_15:SAL8] -~w~Wo fahren wir hin? - -[SAL8_16:SAL8] -~w~Callahan Bridge! - -[SAL816A:SAL8] -~w~Die Callahan Bridge ist noch nicht fertig! - -[SAL816B:SAL8] -~w~Gleich sind aber wir 'fertig', wenn du nicht fährst! Gib Gas! - -[SAL816C:SAL8] -~w~Fahr zur ~y~Callahan Bridge. - -[SAL8_17:SAL8] -~w~Was soll das, verdammt? - -[SAL8_18:SAL8] -~w~Toni! Wir brauchen ein Auto! - -[SAL818A:SAL8] -~w~Ich hab nicht vor, zu Fuß zu gehen! - -[SAL8_19:SAL8] -~w~Du hast ~b~Salvatore~w~ zurückgelassen. Hol ihn! - -[SAL8_20:SAL8] -~w~Bring uns hier weg! - -[SAL8_22:SAL8] -~w~Toni, du hast es geschafft! Ich wusste, auf dich ist Verlass! - -[SAL822B:SAL8] -Hör zu, ich kenn einen sicheren Ort, wo wir 'ne Weile untertauchen können. - -[SAL822C:SAL8] -Komm, fahren wir. - -[SAL8_25:SAL8] -~w~Du musst alles aus der Scheißkarre rausholen! Drück drauf, Toni! - -[SAL825A:SAL8] -~w~OH, SHIIIIIIIIIIIIIT! - -[SAL8_26:SAL8] -Sprungtempo - -[SAL8_27:SAL8] -~w~Ja. Da wären wir. - -[SAL8_28:SAL8] -~w~Ich seh mich mal um. Verschaff mir 'nen Überblick. - -[SAL828A:SAL8] -~w~Vielleicht sehen wir uns dann später wieder hier. - -[SAL8_29:SAL8] -~r~Sal ist tot! - -[SAL829A:SAL8] -~w~Die Cops haben dich entdeckt! - -[SAL831:SAL8] -~w~Versteck in Staunton jetzt verfügbar! - -[SAL833:SAL8] -~w~Hau vor den Cops ab! - -[SAL823A:SAL8] -~w~Oder vielleicht doch nicht? - -[SAL8_24:SAL8] -~w~Obwohl die U-Bahn- und Fährlinien den Betrieb offiziell wieder aufgenommen haben, - -[SAL824A:SAL8] -~w~setzen militante Arbeiter ihre Blockade in Teilen der Stadt fort. - -[SAL824B:SAL8] -~w~Die Hebebrücke zwischen Staunton Island und Shoreside Vale wurde geschlossen. - -[SAL824C:SAL8] -~w~Die Streikenden misstrauen den Versprechungen der Stadtverwaltung bezüglich der Zukunft der Fähren. - -[SAL824D:SAL8] -~w~Ein kleiner Lichtblick: die Callahan Bridge nähert sich ihrer Fertigstellung. - -[SAL824E:SAL8] -~w~Aber dieser Liberty City-Pendler hatte das Warten satt. - -[SAL8_23:SAL8] -~w~Die Arbeitskampfmaßnahmen, die Portland vom Rest der Stadt abgeschnitten hatten, sind endlich beendet. - -[SAL812C:SAL8] -~w~Fahr zur ~y~Fähranlegestelle. - -[SAL8WAN:SAL8] -Die Cops wollen Salvatore UNBEDINGT! Das Fahrzeug umzuspritzen, wird sie nur kurze Zeit von seiner Fährte ablenken. - -[SAL8_21:SAL8] -~w~Fahr zu der ~y~Brücke! - -[SAL830:SAL8] -~w~Begib dich zu dem ~y~Versteck. - -[SAL822A:SAL8] -~w~Ich könnte dich küssen, wenn du rasiert wärst! - -[SAL832:SAL8] -~w~Du brauchst einen fahrbaren Untersatz! - -[DRIV_01:SAL8] -Also? - -[DRIV_02:SAL8] -Also was? - -[DRIV_03:SAL8] -Stell dich nicht blöd, Kleiner. - -[DRIV_06:SAL8] -Ich weiß, was du über mich verbreitest. - -[DRIV_07:SAL8] -Du hältst mich für dämlich, hä? - -[DRIV_08:SAL8] -Stimmt das? - -[DRIV_09:SAL8] -Boss, ich hab gar nichts über Sie verbreitet. - -[DRIV_10:SAL8] -Ach, Scheiße. Ich weiß auch nicht, was mit mir los ist. - -[DRIV_11:SAL8] -Herr im Himmel. - -[DRIV_12:SAL8] -Ich leide langsam unter Verfolgungswahn, Toni. Scheiße. - -[DRIV_13:SAL8] -Nur, weil ich glaube, dass alle mich hassen, heißt das nicht, dass es nicht stimmt, verstehst du? - -[DRIV_14:SAL8] -Das Schwein von Bürgermeister will mich fertig machen! - -[DRIV_15:SAL8] -Er will mir jede Scheiße in die Schuhe schieben, die im Viertel passiert ist. - -[DRIV_16:SAL8] -Und nicht nur das, was auf meine Kappe geht, sondern alles. - -[DRIV_17:SAL8] -Komm, nehmen wir uns der Sache an. - -[DRIV_04:SAL8] -- Das hab ich schon gemacht, als deine Mutter noch anschaffen ging. ~n~ - Was ist denn los? - -{=================================== MISSION TABLE JDT1 ===================================} - -[JDT1_CA:JDT1] -~w~Ich bin mir sicher, dass die Girls mich übers Ohr hauen. - -[JDT1_CB:JDT1] -~w~Wir sollten uns mal in der Gegend umsehen, was da los ist. - -[JDT1_DA:JDT1] -~w~Da ist eins meiner Girls! - -[JDT1_DB:JDT1] -~w~Hey! Die kenn ich. - -[JDT1_DC:JDT1] -~w~Die ist eins von meinen Girls. - -[JDT1_DD:JDT1] -~w~Das ist eins von unseren Girls. - -[JDT1_DE:JDT1] -~w~Das Girl da... - -[JDT1_DF:JDT1] -~w~Halt bei ihr an. - -[JDT1_DG:JDT1] -~w~Halt neben der an. - -[JDT1_DH:JDT1] -~w~Reden wir mal mit ihr. - -[JDT1_DI:JDT1] -~w~Park neben ihr. - -[JDT1_DJ:JDT1] -~w~Fahr zu ihr hin. - -[JDT1_MA:JDT1] -~w~Hi, JD. Das wollte ich gerade bei dir abliefern, ehrlich! - -[JDT1_MB:JDT1] -~w~Jesus! Traust du mir nicht mehr, JD? - -[JDT1_MC:JDT1] -~w~Hey, JD. War 'n schlechter Tag... mehr hab ich nicht. - -[JDT1_MD:JDT1] -~w~Big Brother's watching, oder wie? Hier hast du dein Scheißgeld! - -[JDT1_ME:JDT1] -~w~Hey, JD. Hier hab ich dein Geld. - -[JDT1_MF:JDT1] -~w~Hast du gedacht, ich liefere das nicht bei dir ab, oder was? - -[JDT1_MG:JDT1] -~w~Überwachst du uns jetzt alle, JD? - -[JDT1_MH:JDT1] -~w~Alles da... kannst ja nachzählen! - -[JDT1_EA:JDT1] -~w~Hey! Der Zuhälter kassiert eins von meinen Girls ab! - -[JDT1_EB:JDT1] -~w~Hol mir das Geld zurück, Toni! - -[JDT1_EC:JDT1] -~w~Was macht der Zuhälter da, verdammt? - -[JDT1_ED:JDT1] -~w~Er sackt mein Geld ein! - -[JDT1_EE:JDT1] -~w~Schnapp ihn dir, Toni! - -[JDT1_45:JDT1] -~w~Hol dir von dem Zuhälter das ~g~Geld. - -[JDT1_46:JDT1] -~w~Der Zuhälter ist entkommen! - -[JDT1_FA:JDT1] -~w~Das ist eins von meinen Girls in dem Auto! - -[JDT1_FB:JDT1] -~w~Setz langsam zu dem ~b~Auto~w~ zurück, ganz nahe, damit ich mir das ansehen kann. - -[JDT1_FC:JDT1] -~w~...schön langsam, wir wollen sie schließlich nicht stören! - -[JDT1_FD:JDT1] -~w~Näher... - -[JDT1_FE:JDT1] -~w~Näher... - -[JDT1_FF:JDT1] -~w~Langsam... - -[JDT1_IA:JDT1] -~w~Zum Kuckuck, Toni! Du hast sie verscheucht! - -[JDT1_GA:JDT1] -~w~Jesus, Toni! Ich seh überhaupt nichts! - -[JDT1_75:JDT1] -~w~Warte bis das ~b~Girl~w~ JD ihr Geld gibt! - -[JDT1_HA:JDT1] -~w~...oh, ja! - -[JDT1_HB:JDT1] -~w~Weiter, Baby! - -[JDT1_HC:JDT1] -~w~So ist's gut. So ist's gut. - -[JDT1_HD:JDT1] -~w~...oh, JA! - -[JDT1_HE:JDT1] -~w~Das ist wunderbar! - -[JDT1_HF:JDT1] -~w~Sind wir hier fertig? - -[JDT1_JA:JDT1] -~w~Gute Arbeit, Toni! - -[JDT1_JB:JDT1] -~w~Glaub nicht, dass die Girls mir auf dieser Schicht noch mal Ärger machen. - -[JDT1_LA:JDT1] -~w~Toni! Das hast du sauber vermasselt! - -[JDT1_LB:JDT1] -~w~Ich fahre zurück zum Club! - -[JDT1_ML:JDT1] -~w~Es sind noch $~1~ abzukassieren! - -[JDT1O01:JDT1] -~w~Steig in JDs ~b~Van. - -[JDT1O02:JDT1] -~w~Du hast ~b~JD~w~ zurückgelassen. Hol ihn! - -[JDT1O03:JDT1] -~w~Warte bis ~b~JD~w~ eingestiegen ist. - -[JDT1O04:JDT1] -~w~Such im Rotlichtviertel nach JDs Girls. - -[JDT1O05:JDT1] -~w~Fahr zurück zu ~y~JDs Club. - -[JDT1O07:JDT1] -~w~Halte neben dem ~b~Girl. - -[JDT1O08:JDT1] -~w~Erledige den ~r~Zuhälter. - -[JDT1O09:JDT1] -~w~Kassiere eins von JDs ~b~Girls~w~ ab. - -[JDT1_F1:JDT1] -~r~JDs Van wurde zerstört! - -[JDT1_F2:JDT1] -~r~JD ist tot! - -[JDT1_F3:JDT1] -~r~Du hast während der Schicht nicht genug Geld abkassiert! - -[JDT1_D1:JDT1] -~w~JDs Girls arbeiten im ~y~Rotlichtviertel.~w~ Fahr dorthin zurück! - -[JDT1_F4:JDT1] -~r~Es sind zu viele von JDs Girls draufgegangen! - -[JDT1_KA:JDT1] -~w~Was zum Teufel war das? - -[JDT1_KB:JDT1] -~w~Haben wir irgendwas gerammt? - -[JDT1_KC:JDT1] -~w~Pass auf die Karre auf, Toni! - -[JDT1_81:JDT1] -~w~Du hast den Freier verschreckt! Er will keine Zuschauer! - -[JDT1O10:JDT1] -~w~Nähere dich dem ~b~Auto~w~ in der Gasse. - -[JDT1O11:JDT1] -~w~Hupe, damit sie auf dich aufmerksam werden! - -[JDT1O12:JDT1] -~w~Je länger du das Girl anschaffen lässt, desto mehr Geld nimmt sie ein. - -[JDT1_MO:JDT1] -Schulden - -[JDT1_H1:JDT1] -~w~Drücke die ~k~ ~VEHN~, um zu hupen. - -[JDT1_WA:JDT1] -~w~Beeilung! Die Schicht der ~b~Mädchen~w~ endet um ~1~:~1~! - -[JDT1_WB:JDT1] -~w~Beeil dich! Die Schicht der Mädchen endet um ~1~:~1~! - -[JDT1O06:JDT1] -~w~Kassiere JDs Geld von seinen Nutten. Mach schnell, ihre Schicht endet um ~1~:~1~. - -[JDT1_WC:JDT1] -~w~Beeilung! Die Schicht der ~b~Mädchen~w~ endet um ~1~:0~1~! - -[JDT1_WD:JDT1] -~w~Beeilung! Die Schicht der Mädchen endet um ~1~:0~1~! - -[JDT1P06:JDT1] -~w~Kassiere JDs Geld von seinen Nutten. Mach schnell, ihre Schicht endet um ~1~:0~1~. - -[BONE_01:JDT1] -Hey, JD! Komm raus! - -[BONE_02:JDT1] -Hey, JD, du Perversling, komm raus, verdammt, - -[BONE_03:JDT1] -sonst komm ich rein und brech dir die Knochen! - -[BONE_04:JDT1] -Ich komm ja schon... aber nicht so. - -[BONE_05:JDT1] -Hey, Toni, que pasa? Lass dich drücken. - -[BONE_06:JDT1] -Du bist ganz klebrig! - -[BONE_07:JDT1] -Och, die haben mich mit dem Stripperinnenzeug eingeschmiert. - -[BONE_08:JDT1] -Die stehen drauf. Die schmieren's überall hin und... also, wie geht's denn so? - -[BONE_09:JDT1] -Scheiße, was hast du denn an? - -[BONE_10:JDT1] -Das? In Liebesdingen mag ich's gewagt. - -[BONE_11:JDT1] -Da... experimentiere ich gern, weißt du? - -[BONE_16:JDT1] -Tja, das ist so 'ne Sache. Man will uns bescheißen. - -[BONE_17:JDT1] -Okay, warte kurz hier. - -[BONE_18:JDT1] -Ich zieh mir schnell dieses, äh... Teil aus. - -[BONE_19:JDT1] -Hey, Raven, kannst den Doppeldildo wegräumen. - -[BONE_20:JDT1] -Toni, wir zwei machen jetzt 'ne Spritztour. - -[BONE_21:JDT1] -Wir müssen uns ein bisschen was angucken... Okay! Okay! - -[BONE_12:JDT1] -- Ist doch nichts dabei, hm? Darfst zugucken, wenn du willst. ~n~ - Halt's Maul, verdammt, du bist ja krank. - -[BONE_14:JDT1] -- Reg dich ab, Toni... ~n~ - Wo ist meine Kohle? - -{=================================== MISSION TABLE JDT2 ===================================} - -[JDT2_I1:JDT2] -~w~Gott sei Dank, dass du da bist, Toni! - -[JDT2_I2:JDT2] -~w~Eben hab ich 'nen Tipp gekriegt, dass die Cops 'ne Razzia hier planen! - -[JDT2_I3:JDT2] -~w~Und? Du hast doch 'ne Lizenz. - -[JDT2_I4:JDT2] -~w~Aber nicht für alles, was hier so abläuft! - -[JDT2_I5:JDT2] -~w~Salvatore ist hier. Stattet meinen Mädchen einen... 'Freundschaftsbesuch' ab... verstehst du? - -[JDT2_I6:JDT2] -~w~Wir müssen ihn wegschaffen, ehe die Bullen kommen! - -[JDT2_I7:JDT2] -~w~Er wartet draußen auf dich! - -[JDT2_I8:JDT2] -~w~Es wird nie langweilig. - -[JDT2_05:JDT2] -~w~Schaff mich hier weg, verdammt! - -[JDT2_06:JDT2] -~w~Toni? Häng die Bullen ab! Hab keine Lust, die mit nach Hause zu schleppen! - -[JDT2_A1:JDT2] -~w~Steig in das ~b~Auto. - -[JDT2_A2:JDT2] -~w~Vergiss nicht ~b~Salvatore!~w~ Kehr um und hol ihn! - -[JDT2_A3:JDT2] -~w~Bring Salvatore ~y~nach Hause. - -[JDT2_A5:JDT2] -~r~Salvatore ist tot! - -[JDT2_C1:JDT2] -~w~Das war gute Arbeit vorhin. Du gefällst mir. Schon immer. - -[JDT2_C2:JDT2] -~w~Danke, Mr. Leone. - -[JDT2_C3:JDT2] -~w~Weißt du, ich finde, Vincenzo belegt dich zu sehr mit Beschlag. - -[JDT2_C4:JDT2] -~w~Ich könnte einen guten Mann wie dich gebrauchen. - -[JDT2_C5:JDT2] -~w~Ruf mich gelegentlich mal an. Onkel Sal kümmert sich um dich. - -[JDT2_A9:JDT2] -~r~Salvatore wurde verhaftet! - -[JDT2_B2:JDT2] -~w~Häng die Cops ab! - -[JDT2_A6:JDT2] -~w~Du musst zurück zu Salvatores ~b~Auto~w~, ehe die Cops ihn schnappen! - -[JDT2_F1:JDT2] -~r~Du hast Salvatore verloren! - -[JDT2_A4:JDT2] -~w~Fahr Salvatore vom Club weg und häng die Cops ab! - -{=================================== MISSION TABLE JDT3 ===================================} - -[JDT3_AA:JDT3] -~w~Hey, Toni, ich kann gerade nicht. Bin... beschäftigt. - -[JDT3_AB:JDT3] -~w~Wieso? Was ist da drin los? ...und was zur Hölle stinkt hier so? - -[JDT3_AC:JDT3] -~w~Weißt du, Toni, wir verköstigen heute Leute mit äh... Sonderwünschen. - -[JDT3_AD:JDT3] -~w~Das wird 'ne Internet-Goldgrube! - -[JDT3_AE:JDT3] -~w~Kümmer du dich lieber um Leones Spielhölle oben in Saint Mark's. - -[JDT3_AG:JDT3] -~w~Die ist den Sindaccos ein Dorn im Auge. - -[JDT3_AH:JDT3] -~w~Es heißt, sie wollen das Ding hochjagen. - -[JDT3_B:JDT3] -~w~Erledige die ~r~Sindacco-Saboteure! - -[JDT3_C:JDT3] -~r~Sie~w~ haben eine Bombe vor dem ~y~Casino~w~ deponiert! - -[JDT3_D:JDT3] -Detonation - -[JDT3_E:JDT3] -~w~Noch ein paar von denen und das ~y~Casino~w~ ist nicht mehr! - -[JDT3_F:JDT3] -~w~Noch eine und das ~y~Casino~w~ ist hin! - -[JDT3_H:JDT3] -~w~Es kommen noch mehr ~r~Sindaccos~w~! Halte sie auf! - -[JDT3_I:JDT3] -~w~Die Truck-Bombe ist scharf! - -[JDT3_J:JDT3] -~w~Das ~y~Casino~w~ ist gerettet. Verschwinde jetzt! - -[JDT3_K:JDT3] -~w~Sie müssen den Truck manipuliert haben - man kann nicht hochschalten! - -[JDT3_L:JDT3] -~r~Sindacco-Verstärkung~w~ ist auf dem Weg zum ~y~Casino! - -[JDT3_M:JDT3] -~w~Die ~r~Sindaccos~w~ haben noch nicht aufgegeben. Es kommen noch mehr! - -[JDT3_N:JDT3] -~w~Sie steigen aus. Lass keine ~r~Sindaccos~w~ entkommen! - -[JDT3_O:JDT3] -Sicherheitsabstand - -[JDT3_P:JDT3] -~w~Die Sindaccos lassen eine riesige Truck-Bombe anrollen. Sie wollen das Casino auf einen Schlag vernichten! - -[JDT3_Q:JDT3] -~w~Verteidige das ~y~Casino. - -[JDT3_R:JDT3] -~w~Fahr zum ~y~Casino. - -[JDT3_S:JDT3] -~w~Verhindere, dass die ~r~Truck-Bombe~w~ das ~y~Casino~w~ zerstört! - -[JDT3_T:JDT3] -~w~Fahr den ~r~Truck~w~ vom ~y~Casino~w~ weg, bevor er hochgeht! - -[JDT3_BA:JDT3] -~w~Toni? Hier JD. - -[JDT3_BB:JDT3] -~w~Ich hör gerade, dass ein paar Sindacco-Gorillas auf dem Weg zu dir sind. - -[JDT3_BC:JDT3] -~w~Und sie sind schwer bewaffnet! - -[JDT3_BD:JDT3] -~w~Pass auf dich auf! - -[JDT3_BE:JDT3] -~w~Danke, JD! - -[JDT3_BF:JDT3] -~w~Gut zu wissen. - -[JDT3_G:JDT3] -~r~Das Casino wurde zerstört! - -{=================================== MISSION TABLE JDT4 ===================================} - -[JDT4_3:JDT4] -~w~Die Sindaccos, die das Doll's House bewachen, trauen nur ~h~Sindacco-Wagen. - -[JDT4_A1:JDT4] -~w~Hat Klasse. Auch wenn du am Spieltisch verlierst, die Weiber sind 'n Hauptgewinn da! - -[JDT4_B0:JDT4] -~w~Such dir ein geeignetes Fahrzeug und bau eine Bombe ein. - -[JDT4_B1:JDT4] -~w~Steig wieder in das ~b~Fahrzeug~w~ mit der Bombe. - -[JDT4_B3:JDT4] -~w~Jetzt steig aus und verschwinde hier. - -[JDT4_B4:JDT4] -~w~Zünde die Bombe! - -[JDT4_B5:JDT4] -~w~Fahr zur ~h~Bombenwerkstatt~w~ und lass eine Bombe in das Fahrzeug einbauen. - -[JDT4_B6:JDT4] -~w~Geh nicht zu nah ran! - -[JDT4_C0:JDT4] -~r~Du warst zu nahe bei der Explosion. - -[JDT4_C1:JDT4] -~w~Die geht auf JD! - -[JDT4_D0:JDT4] -~w~Wer ist das? - -[JDT4_D2:JDT4] -~w~Muss ein Neuer sein. - -[JDT4_0:JDT4] -COUNTDOWN - -[JDT4_1:JDT4] -~w~In das Ding kannst du keine Bombe einbauen! - -[JDT4_2:JDT4] -~w~Das ~h~Bomben-Symbol~w~ auf dem Radar führt dich zu ~h~8-Balls Bombenwerkstatt. - -[JDT4_A0:JDT4] -~w~Toni, die Sindaccos haben da so'n Laden - Das 'Dolls House'. - -[JDT4_AA:JDT4] -~w~Ist ein Casino UND Bordell in einem. - -[JDT4_A2:JDT4] -~w~Hehe! Und mit dem Laden steht und fällt ihre ganze Organisation hier. - -[JDT4_A3:JDT4] -~w~Wenn man die Bude, äh... plattmachen würde, weißt du, äh... in die Luft jagt, oder so... - -[JDT4_A4:JDT4] -~w~ich sag dir, dann würde Salvatore uns die Füße küssen! - -[JDT4_D1:JDT4] -~w~Den kenn ich nicht... - -[JDT4_B2:JDT4] -~w~Nimm das Fahrzeug und park es in der ~y~Garage~w~ beim 'Doll's House'. - -[JDT4_B7:JDT4] -~w~Fahr vorsichtig. Wenn du es zu sehr beschädigst, explodiert es! - -[JDT4_B8:JDT4] -~w~Parke das Fahrzeug in der ~y~Garage~w~ des 'Doll's House'. - -[JDT4_4:JDT4] -~w~Drücke~h~ ~k~ ~PDFW~~w~, um die Bombe ~h~detonieren~w~ zu lassen. - -[JDT4_B9:JDT4] -~w~Die Sindaccos haben die Bombe entschärft! - -{=================================== MISSION TABLE JDT5 ===================================} - -[JDT5_B0:JDT5] -~w~Das ist einer von den Typen, die Salvatore entführt haben! - -[JDT5_D0:JDT5] -~w~Wo ist er? Im Kofferraum? - -[JDT5_D1:JDT5] -~w~Gut. Wir bringen ihn zur Schrottpresse. Der Boss will ihn flacher als 'ne Pizza haben. - -[JDT5_E:JDT5] -~w~Rette Salvatore aus dem ~b~Auto~w~, bevor es verschrottet wird! - -[JDT5_E0:JDT5] -~w~Sie haben dich entdeckt! - -[JDT5_E1:JDT5] -~w~Das ~b~Auto~w~ ist unbewacht! Nimm es dir! - -[JDT5_E2:JDT5] -~w~Bring das Auto zu ~y~Salvatores Villa. - -[JDT5_E3:JDT5] -~w~Steig wieder in das ~b~Auto. - -[JDT5_F0:JDT5] -~w~Mmmphhh - mmmphhh - mpphh - -[JDT5_F3:JDT5] -~w~Mmpphh - arrgghh - mmpphh - -[JDT5_F4:JDT5] -~w~Mmpphh - arrgghh - arrggghh - arrg - -[JDT5_F5:JDT5] -~w~Yarrgghh - yarrgh - mmpphh - -[JDT5_G0:JDT5] -~w~Was war denn das für eine Fahrerei? Wolltest du mich umbringen? - -[JDT5_G1:JDT5] -~w~Mr. Leone. Boss. Tut mir Leid. - -[JDT5_G2:JDT5] -~w~Was soll ich sagen? - -[JDT5_G4:JDT5] -~w~Denen reiß ich das Herz aus dem Leib! Das ist noch nicht vorbei! - -[JDT5_G5:JDT5] -~w~Heiliger Strohsack, Toni - du hast mir den Arsch gerettet! Sag Sal zu mir! - -[JDT5_X0:JDT5] -~r~Einen Toten kann man schlecht verfolgen. - -[JDT5_X1:JDT5] -~r~Du hast ihn verloren! - -[JDT5_F1:JDT5] -~w~Sind Sie das, Mr. Leone? Ich bin's, Toni. - -[JDT5_F2:JDT5] -~w~Machen Sie sich keine Sorgen. Ich schaff Sie hier raus! - -[JDT5_G3:JDT5] -~w~Hurensöhne! Die glauben, die können das mit mir machen! - -[JDT5_X2:JDT5] -~r~Sal hat nicht überlebt! - -[JDT5_X4:JDT5] -~r~Er hat dich bemerkt. Jetzt wirst du Sal nie finden! - -[JDT5_X3:JDT5] -~r~Salvatore wurde zerquetscht! - -[JDT5_C:JDT5] -~w~Folge dem ~r~Auto~w~, aber unauffällig. - -[JDT5_0:JDT5] -~w~Wenn du auf das Auto schießt, könntest du Salvatore treffen! - -[JDT5_H0:JDT5] -~w~Folge dem ~r~Wagen,~w~ aber nicht zu dicht. - -[JDT5_H1:JDT5] -~w~Du bist zu dicht dran! - -[JDT5_H2:JDT5] -~w~Fall nicht zu weit zurück, damit du den ~r~Wagen~w~ nicht verlierst. - -[JDT5_H3:JDT5] -~w~Du bist zu weit entfernt! - -[KIDN_01:JDT5] -JD! - -[KIDN_02:JDT5] -Toni! Gott sei Dank bist du da. - -[KIDN_03:JDT5] -Ich schwitz wie mein Onkel auf 'nem Schulhof - ich dreh gleich durch. - -[KIDN_06:JDT5] -Das darf doch nicht wahr sein! Er schneidet mir die Eier ab - -[KIDN_07:JDT5] -und klemmt sie in 'nen Schraubstock. Oder umgekehrt. - -[KIDN_08:JDT5] -Das ist fast so wie damals, als das FBI meine Festplatte gefilzt hat. - -[KIDN_13:JDT5] -Großer Gott, ich fass es nicht... - -[KIDN_14:JDT5] -Dabei konnte ich überhaupt nichts dafür! - -[KIDN_15:JDT5] -Aber du kennst Salvatore. Der hetzt mir die Sitte auf den Hals. - -[KIDN_16:JDT5] -Das wird wie bei meiner Anzeige wegen Unzucht mit Minderjährigen. - -[KIDN_17:JDT5] -Hast du mal wegen Unzucht mit Minderjährigen gesessen, Mann? - -[KIDN_18:JDT5] -Die gehen beim Duschen auf dich los! - -[KIDN_19:JDT5] -Herrgott, dabei war sie 18! Diesmal wird's schlimmer! - -[KIDN_20:JDT5] -Hör auf zu sabbern, du Schwanzlutscher! Was ist passiert?! - -[KIDN_04:JDT5] -- Was machen wir jetzt? ~n~ - Wieso? Was ist? - -[KIDN_11:JDT5] -- Nein, nein... Weißt du, ich hab zu viel... ~n~ - Was ist denn los? - -[KIDN_09:JDT5] -Oh, ich hab Herzrasen. Hast du mal ein Valion? - -[KIDN_10:JDT5] -Oder ein Rohapnin? Oder... - -[KIDN_21:JDT5] -Sie haben Salvatore entführt, als er aus dem Club kam. - -[KIDN_23:JDT5] -Warum sagst du mir das nicht gleich, statt mich mit Scheiße vollzulabern? Komm. - -{=================================== MISSION TABLE JDT6 ===================================} - -[JDT6_A0:JDT6] -~w~Gott sei Dank! Toni. - -[JDT6_A1:JDT6] -~w~JD? Hey, ich bin im Hinterhof vom... - -[JDT6_A2:JDT6] -~w~Ich weiß. Hab dich reingehen sehen. Hab gebetet, dass du auftauchst! - -[JDT6_A3:JDT6] -~w~Salvatore rast vor Wut! - -[JDT6_A6:JDT6] -~w~Pass auf, dass Salvatore nichts passiert. - -[JDT6_0:JDT6] -Salvatore - -[JDT6_1:JDT6] -~r~Salvatore ist nicht durchgekommen. - -[JDT6_3:JDT6] -~w~Salvatore ist in ~1~ Sekunden hier. - -[JDT6_5:JDT6] -~w~Beschütze ~b~Salvatore~w~ vor den ~r~Sindaccos. - -[JDT6_6:JDT6] -~w~Einer von ~b~Salvatores Leibwächtern~w~ ist tot! - -[JDT6_7:JDT6] -~b~Salvatores Leibwächter~w~ sind beide tot! - -[JDT6_8:JDT6] -~w~Die Bullen! - -[JDT6_10:JDT6] -~w~Such dir einen guten Standort, ehe Salvatore kommt. - -[JDT6_11:JDT6] -~w~Wo willst du hin? Salvatore braucht Schutz im Rotlichtviertel. - -[JDT6_12:JDT6] -Salvatore trifft ein - -[JDT6_D1:JDT6] -~w~Hey... - -[JDT6_D4:JDT6] -~w~Da hat einer 'nen Dollar verloren! - -[JDT6_C0:JDT6] -~w~Mehr habt ihr nicht zu bieten? - -[JDT6_C1:JDT6] -~w~Na kommt! - -[JDT6_C2:JDT6] -~w~Ihr kämpft wie Schwächlinge! - -[JDT6_C3:JDT6] -~w~Auch was gefällig? - -[JDT6_C4:JDT6] -~w~Friss das! - -[JDT6_C5:JDT6] -~w~Ihr elenden Dreckschweine! - -[JDT6_C6:JDT6] -~w~Mama wär stolz auf mich! - -[JDT6_A4:JDT6] -~w~Er kommt hierher, um jeden Sindacco, den er findet, persönlich zu erledigen... - -[JDT6_A5:JDT6] -~w~...also bin ich verduftet. Hör zu, ich hab auf dem Dach gegenüber ein Gewehr deponiert. - -[JDT6_9:JDT6] -~w~Hol dir das ~g~Präzisionsgewehr~w~ auf dem Dach. - -{=================================== MISSION TABLE JDT7 ===================================} - -[JDT7_VE:JDT7] -~r~v1.00 - -[JDT7_02:JDT7] -~w~Erst hat Salvatore 'aufgeräumt' in dem Laden, hä... und jetzt renoviert er ihn dir sogar! - -[JDT7_03:JDT7] -~w~Das gehört jetzt mir ganz allein, Toni. - -[JDT703A:JDT7] -~w~Diese Sindacco-Schwanzlutscher haben alle 'nen Arschtritt gekriegt. - -[JDT7_04:JDT7] -~w~Hör zu, es heißt, die Sizilianer wollen 'nen Frieden zwischen den Familien aushandeln. - -[JDT7_4A:JDT7] -~w~Da ist jetzt gerade so'n Obermotz bei Sal. - -[JDT7_4B:JDT7] -~w~Die Sache ist nur, Sal traut dem Braten nicht. - -[JDT7_4C:JDT7] -~w~Er möchte, dass jemand dort vorbeischaut und dem Kerl folgt. Guckt, wo er hingeht. - -[JDT7_06:JDT7] -~r~Du hast den Helikopter nicht rechtzeitig erreicht. Massimo ist schon weg! - -[JDT7_07:JDT7] -~w~Folge ~r~Massimo.~w~ Verlier ihn nicht! - -[JDT7_08:JDT7] -~r~Er~w~ geht dir durch die Lappen! - -[JDT7_09:JDT7] -~r~Du hast Massimo entkommen lassen! - -[JDT7_10:JDT7] -~w~Der Helikopter scheint zu landen - geh nicht zu nah ran, sonst verschreckst du sie. - -[JDT7_11:JDT7] -~r~Du warst zu nahe. Man hat dich entdeckt! - -[JDT7_14:JDT7] -~r~Er~w~ verschwindet... folge ~r~ihm~w~ wieder... - -[JDT7_15:JDT7] -~w~Massimo~w~ scheint da oben zu landen... - -[JDT7_16:JDT7] -~w~Du musst ~y~näher ran... - -[JDT7_17:JDT7] -~r~Du bist aufgeflogen! - -[JDT7_21:JDT7] -~w~Du bist entdeckt worden! Erledige die ~r~Triaden! - -[JDT7_12:JDT7] -~w~Come siamo rimasti d'accordo, - -[JDT712A:JDT7] -~w~wenn ihr meinen Geschäftsfreunden die Arbeit abnehmt, werdet ihr reich belohnt. - -[JDT7_13:JDT7] -~w~...Hepburn Heights wird den Diablos gehören. - -[JDT7_18:JDT7] -~w~...also beschäftigt quei bastardi dei Leone unten in Portland, - -[JDT718A:JDT7] -und wenn meine Geschäftsfreunde diese Stadt kontrollieren, wird man es euch danken. - -[JDT718B:JDT7] -Ci pensiamo noi. - -[JDT7_20:JDT7] -~w~Da drüben! Das ist ein Leone! - -[JDT7_22:JDT7] -Entfernung - -[JD_FIN:JDT7] -~w~Erledige die ~r~Triaden! - -[JDT7_05:JDT7] -~w~Du musst zu ~y~Salvatores Villa~w~, ehe Massimo sich auf den Weg macht! - -[JDT7O07:JDT7] -~w~Du musst zu ~y~Salvatores Villa.~w~ Massimo bricht um ~1~:~1~ Uhr auf. - -[JDT7O08:JDT7] -~w~Es ist fast ~1~:~1~ Uhr. Massimo bricht gleich auf! - -{=================================== MISSION TABLE JDT8 ===================================} - -[JDT8_A0:JDT8] -~w~Toni... heute ist es soweit! Heute werd ich zum Capo ernannt! - -[JDT8_A1:JDT8] -~w~JD, der 'Unbestechliche'? Gott steh uns bei! - -[JDT8_A2:JDT8] -~w~Darauf habe ich lange gewartet... ohne dich wär es nicht dazu gekommen, Toni. - -[JDT8_A3:JDT8] -~w~Hey, ich fang gleich an zu weinen! Hör auf! - -[JDT8_A4:JDT8] -~w~Hey, Mickey! Wie geht's? - -[JDT8_A5:JDT8] -~w~Ich steig hinten ein... okay? - -[JDT8_C:JDT8] -~w~Steig in das ~b~Auto~w~ und fahr JD zu seiner Ernennung zum Capo. - -[JDT8_C2:JDT8] -~w~Steig wieder ins ~b~Auto. - -[JDT8_C3:JDT8] -~w~Fahr zu der ~y~Zeremonie. - -[JDT8_B0:JDT8] -~w~Ich sag's dir, Toni, ich kann's noch gar nicht fassen! - -[JDT8_B1:JDT8] -~w~Ich hab so lange gewartet. - -[JDT8_B2:JDT8] -~w~Jahrelang hab ich für die Sindaccos malocht - und nichts! - -[JDT8_B3:JDT8] -~w~Die Bastarde haben mich kleingehalten, - -[JDT8_B5:JDT8] -~w~Aber Salvatore - Gott segne ihn - für den spielt so 'ne Kleinigkeit keine Rolle. - -[JDT8_B6:JDT8] -~w~Ich sag's dir! - -[JDT8_B7:JDT8] -~w~Das ist Wahnsinn! - -[JDT8_B8:JDT8] -~w~Toni, ich bin so aufgeregt! - -[JDT8_B9:JDT8] -~w~Toni, ich weiß gar nicht, was ich mit mir anstellen soll, so aufgeregt bin ich! - -[JDT8_BA:JDT8] -~w~Schau mich an, ich kann mein Glück noch gar nicht fassen! - -[JDT8_BB:JDT8] -~w~Endlich, hä, Toni? Ein Capo zu werden! - -[JDT8_D1:JDT8] -~w~Wo ist Salvatore? - -[JDT8_D2:JDT8] -~w~Toni, die erste Runde geht auf mich... - -[JDT8_H0:JDT8] -~w~Hey, der Kerl war 'ne scheiß Ratte! - -[JDT8_H1:JDT8] -~w~Er hat seinen eigenen Boss verraten! Schande, sowas! - -[JDT8_H2:JDT8] -~w~Salvatore hätte dem Wichser nie trauen können. - -[JDT8_H3:JDT8] -~w~Versenk die Scheißkarre im Fluss! - -[JDT8_H4:JDT8] -~w~Unterwegs kannst du mich absetzen. - -[JDT8_J:JDT8] -~w~Steig in das ~b~Auto~w~ und fahr Mickey nach Hause. - -[JDT8_J1:JDT8] -~w~Die Cops haben dich mit dem Auto entdeckt! - -[JDT8_J2:JDT8] -~w~Die Cops haben dich mit dem ~b~Auto~w~ entdeckt! - -[JDT8_J3:JDT8] -~w~Steig wieder in das ~b~Auto! - -[JDT8_J4:JDT8] -~w~Setz Mickey bei ihm ~y~zuhause~w~ ab. - -[JDT8_K0:JDT8] -~w~Verdammt, ich verschwinde hier! - -[JDT8_K1:JDT8] -~w~Denk dran, versenk die Karre im Fluss. - -[JDT8_F:JDT8] -~w~Versenk das Auto im Fluss. - -[JDT8_F1:JDT8] -~w~Versenk das ~b~Auto~w~ im Fluss. - -[JDT8_G5:JDT8] -~r~JD ist tot! - -[JDT8_G6:JDT8] -~r~Mickey ist tot! - -[JDT8_G8:JDT8] -~r~Du hättest das Auto im Fluss versenken sollen. - -[JDT8_X0:JDT8] -~w~Wo willst du hin, Toni? - -[JDT8_X3:JDT8] -~w~Wir verspäten uns. - -[JDT8_X1:JDT8] -~w~Wenn die Cops die Karre so sehen, dann halten sie uns garantiert an! - -[JDT8_X2:JDT8] -~w~Die Zeremonie ist in Harwood. - -[JDT8_A6:JDT8] -~w~Toni... heute ist es soweit! - -[JDT8_A7:JDT8] -~w~Heute werd ich zum Capo ernannt! - -[JDT8_A8:JDT8] -~w~JD, der 'Unbestechliche'? - -[JDT8__1:JDT8] -~w~Darauf habe ich lange gewartet... - -[JDT8__2:JDT8] -~w~Ohne dich wär es nicht dazu gekommen, Toni. - -[JDT8_A9:JDT8] -~w~Gott steh uns bei! - -[JDT8_D0:JDT8] -~w~Hey, sind wir da? - -[JDT8_B4:JDT8] -~w~nur weil ich ein bisschen irisches Blut in den Adern habe. - -[JDT8_G7:JDT8] -~r~Deine Fahrgäste sind tot! - -[JDT8_C4:JDT8] -~w~Schalte die ~r~Sindacco-Killer~w~ aus, ehe sie JD erledigen! - -[JDT8_0:JDT8] -~w~Das Auto umzuspritzen bringt dir etwas Zeit, aber sobald die Cops die Leiche auf dem Beifahrersitz sehen, werden sie dir wieder im Nacken sitzen. - -[JDT8_K:JDT8] -~w~Oh, Daddy, nein! - -[JDT8_BC:JDT8] -~w~Toni, Mann, du musst dich abregen. - -[JDT8_C5:JDT8] -~w~Erledige die ~r~Sindacco-Killer. - -{=================================== MISSION TABLE MAC1 ===================================} - -[MAC1_AA:MAC1] -~w~Ma? - -[MAC1_AB:MAC1] -~w~Ich bin's! Ich bin wieder da! - -[MAC1_AC:MAC1] -~w~Toni?... Verflucht, wo hast du gesteckt? - -[MAC1_AM:MAC1] -~w~Und die ganze Zeit, wo du weg warst, nicht ein Anruf! - -[MAC1_AD:MAC1] -~w~Haben die keine Telefone, da wo du warst? - -[MAC1_AE:MAC1] -~w~Ach, komm, Ma! Du weißt, dass ich nicht anrufen konnte! - -[MAC1_AF:MAC1] -~w~Ein richtiger Mann hätte seine Mutter angerufen. - -[MAC1_AG:MAC1] -~w~Du könntest dir ein Beispiel an Giovanni Casa nehmen. - -[MAC1_AN:MAC1] -~w~Er ruft seine Mutter jeden Tag an. - -[MAC1_AH:MAC1] -~w~Das ist ein anständiger Mann. - -[MAC1_AO:MAC1] -~w~Und seine sizilianische Wurst ist die beste der Stadt! - -[MAC1_AI:MAC1] -~w~Casa! Ma, das ist kein anständiger Mann. Das ist ein Perverser! - -[MAC1_AJ:MAC1] -~w~Das ist doch nur üble Nachrede! Was für ein Mann bist du denn, Toni? - -[MAC1_AK:MAC1] -~w~Okay, Ma, wenn du meinst. - -[MAC1_AL:MAC1] -~w~Vielleicht besuch ich Giovanni mal... mal sehen, was er so treibt. - -[MAC1_HA:MAC1] -~w~Ich glaube, mir steht der Sinn nach Liebe! - -[MAC1_17:MAC1] -~w~Beweise deiner Ma, dass Giovanni Casa ein Schwein ist! - -[MAC1_B:MAC1] -~w~Fahr zu deiner ~y~Wohnung ~w~und hol deine Kamera. - -[MAC1_B0:MAC1] -~w~Fahr zu ~y~Casa's Deli. - -[MAC1B2:MAC1] -~w~Gutes Foto! Bring das jetzt deiner ~y~Ma! - -[MAC1_B3:MAC1] -~w~Schleich dich an ~r~Casa~w~ ran und mach das kompromittierende Foto! - -[MAC1_B5:MAC1] -~w~Verschrecke ~r~ihn~w~ nicht. - -[MAC1_B6:MAC1] -~r~Der Film ist voll! Und du hast kein kompromittierendes Foto von Casa, um es deiner Ma zu zeigen. - -[MAC1_B7:MAC1] -~w~Hol deine ~g~Kamera. - -[MAC1_C0:MAC1] -~w~Geh nicht zu nah ran, sonst schöpft ~r~Casa~w~ Verdacht! - -[MAC1_C1:MAC1] -~r~Du hast ihn verschreckt! Jetzt kriegst du das Foto nie! - -[MAC1_C2:MAC1] -~r~Etwas hat Casa verschreckt! - -[MAC1_C3:MAC1] -~r~Du hast Casa verloren! - -[MAC1_C4:MAC1] -~r~Casa ist hinüber! - -[MAC1_C5:MAC1] -~w~Du bist zu nah dran an ~r~Casa! - -[MAC1_C6:MAC1] -~w~Verlier ~r~Casa~w~ nicht! - -[MAC1_D0:MAC1] -~w~Scheint, als sei Casa fündig geworden. - -[MAC1_JA:MAC1] -~w~Okay, Ladies! Zeit für die Brust! - -[MAC1_JB:MAC1] -~w~Wer will meine Mammi sein? - -[MAC1_JC:MAC1] -~w~O je! - -[MAC1_IA:MAC1] -~w~Okay, Ladies, gebt mir 'ne Minute, ja? - -[MAC1_IB:MAC1] -~w~Ich zieh mir schnell was an, was mehr zu mir passt. - -[MAC1_CA:MAC1] -~w~Baby will schmusen! - -[MAC1_CB:MAC1] -~w~Ich hab Kaki gemacht! - -[MAC1_DA:MAC1] -~w~Lutsch meinen Schnulli! Lutsch ihn! - -[MAC1_EA:MAC1] -~w~Hey, kommt, Mädels! Stellt euch nicht so an! - -[MAC1_FA:MAC1] -~w~SHIT! Da ist jemand! - -[MAC1_FB:MAC1] -~w~Schnell! In den Van! - -[MAC1_GA:MAC1] -~w~Oh, Gott! Oh, Gott! - -[MAC1_GB:MAC1] -~w~SCHAU - MICH - NICHT - AN! - -[MAC1_BA:MAC1] -~w~Hey, Ma! - -[MAC1_BB:MAC1] -~w~Schau dir mal das Foto an! Da ist dein 'anständiger Mann' Giovanni Casa drauf... mit einer Scheißwindel an! - -[MAC1_BC:MAC1] -~w~So verbringst du also deine Zeit? - -[MAC1_BD:MAC1] -~w~Schleichst im Wald herum und machst Fotos von Leuten? - -[MAC1_BE:MAC1] -~w~Was ist los mit dir, Antonio? Ich muss mich ja schämen für dich! - -[MAC1_BF:MAC1] -~w~Aber... - -[MAC1_BG:MAC1] -~w~Und Windel hin oder her, trotzdem ist er ein anständigerer Mann als du! - -[MAC1_B8:MAC1] -~w~Jetzt geh nach draußen. - -[MAC1_B1:MAC1] -~w~Folge ~r~Casa~w~, aber nicht zu dicht. - -[MAC1_C7:MAC1] -~w~Zoome an ~r~Casa~w~ heran und mach das Foto, das ~r~ihn~w~ kompromittiert. - -[MAC1_D1:MAC1] -~w~Bleib an ~r~Casa~w~ dran. Das könnte eine gute Fotogelegenheit werden. - -{=================================== MISSION TABLE MAC2 ===================================} - -[MAC2_AA:MAC2] -~w~Ma!... Ma!... Komm, Ma... rede mit mir! - -[MAC2_AB:MAC2] -~w~Es gibt hier keine 'Ma' mehr für dich, du Feigling! - -[MAC2_AC:MAC2] -~w~Mir machst du nichts vor, ich weiß, warum du nicht wieder hier einziehst! - -[MAC2_AD:MAC2] -~w~Du hast Angst vor irgendwelchen Triaden! - -[MAC2_AE:MAC2] -~w~Dein Vater - ruhe er in Frieden - hätte sich von niemandem aus seinem Heim vertreiben lassen! - -[MAC2_AF:MAC2] -~w~Aber Ma! - -[MAC2_AG:MAC2] -~w~Aber im Gegensatz zu dir war dein Vater auch nicht feige! - -[MAC2_AH:MAC2] -~w~Bis du den Triaden nicht Respekt eingebläut hast, bist du nicht mehr mein Sohn! - -[MAC2_AI:MAC2] -~w~Höchstens eine Tochter, aber nicht mein Sohn! - -[MAC2_B1:MAC2] -~w~Zeig Ma, dass du keine Angst vor den Triaden hast. Knöpf dir die ~r~zwei Triadenbanden~w~ in Chinatown vor! - -[MAC2_I1:MAC2] -~w~In dem kugelsicheren ~r~Fisch-Van~w~ ist ein Triadenanführer. Ramm ihn von der Straße! - -[MAC2_I2:MAC2] -~w~Der ~r~Transporter ~w~fährt - und verliert seine Ladung! Vorsicht! - -[MAC2_I3:MAC2] -~w~Sie steigen aus! Mach die ~r~Triaden~w~-Schweine fertig! - -[MAC2_I4:MAC2] -~w~Du bist entdeckt worden! Erledige sämtliche ~r~Triadenbanden-Mitglieder! - -[MAC2_I5:MAC2] -~w~Du bist auf ~r~Triaden~w~-Gebiet. Sei vorsichtig! - -[MAC2_I6:MAC2] -~w~Eine erledigt, eine übrig. Jetzt zeig's der anderen ~r~Bande! - -[MAC2_BA:MAC2] -~w~Yeah! Schaust du zu, Ma?! - -[MAC2_BB:MAC2] -~w~Ich bin Toni Cipriani, und ich mach euch fertig! - -[MAC2_BC:MAC2] -~w~Merkt euch den Namen, Fischköpfe! - -{=================================== MISSION TABLE MAC3 ===================================} - -[MAC3_A0:MAC3] -~w~Ma? Ich bin wieder da... - -[MAC3_A1:MAC3] -~w~Guck dich mal an! Du bist ganz mager! - -[MAC3_A2:MAC3] -~w~Würdest du noch bei deiner Mutter wohnen, wie sich das für einen Sohn gehört, würdest du anständig essen! - -[MAC3_A3:MAC3] -~w~Und was du für Autos fährst! - -[MAC3_A4:MAC3] -~w~Ich muss mich für dich schämen, Antonio, wirklich. - -[MAC3_A5:MAC3] -~w~Die Leute müssen denken, ich hätte dich nicht anständig erzogen! - -[MAC3_A6:MAC3] -~w~Was soll ich machen, Ma? Du weißt, ich tu alles für dich. - -[MAC3_A7:MAC3] -~w~Dieser Sucho fährt heute in der Stadt ein Rennen. - -[MAC3_A8:MAC3] -~w~Von dem könntest du dir eine Scheibe abschneiden! - -[MAC3_A9:MAC3] -~w~Der hat noch Achtung vor seiner Mutter. - -[MAC3_AA:MAC3] -~w~Wenn dein Vater noch da wäre - der würde das Rennen gewinnen, - -[MAC3_AB:MAC3] -~w~UND diesem Sucho sein hämisches Grinsen austreiben! - -[MAC3_AC:MAC3] -~w~Ja, er würde ihm Blei zu fressen geben! - -[MAC3_AD:MAC3] -~w~Ah, dein Vater war ein richtiger Mann! Der hatte Mumm! - -[MAC3_B0:MAC3] -~w~Beweise, dass du mehr drauf hast als Sucho. Gewinn das Rennen, dann erledige ihn. - -[MAC3_C0:MAC3] -~w~Du hast ~r~Sucho~w~ besiegt, jetzt erledige ihn! - -[MAC3_C1:MAC3] -~r~Er~w~ versucht abzuhauen! - -[MAC3_X0:MAC3] -~r~Sucho ist dir entkommen! - -[MAC3_C2:MAC3] -~r~Sucho~w~ haut ab! - -{=================================== MISSION TABLE MAC4 ===================================} - -[MAC4_A0:MAC4] -~w~Ma! ... Ma! ... bist du da? - -[MAC4_A1:MAC4] -~w~Mit dir rede ich nicht mehr, Toni! - -[MAC4_A2:MAC4] -~w~Du beschämst deine sizilianische Abkunft! - -[MAC4_A3:MAC4] -~w~Seit du das Foto von Casa gemacht hast, zahlt er kein Schutzgeld mehr. - -[MAC4_A4:MAC4] -~w~Und was unternimmst du deswegen? - -[MAC4_A5:MAC4] -NICHTS! - -[MAC4_A6:MAC4] -~w~Dein Vater hätte längst Hackfleisch aus ihm gemacht! - -[MAC4_A8:MAC4] -~w~aber mit den Ciprianis legst du dich nur an, wenn was in dir steckt! - -[MAC4_A9:MAC4] -~w~Ich wünschte, du hättest was von dem, was in ihm steckt! - -[MAC4_AA:MAC4] -~w~Du wünschtest, ich hätte was von dem, was in ihm steckt? - -[MAC4_AB:MAC4] -~w~Okay, Ma, wie du willst! - -[MAC4_B:MAC4] -~w~Fahr bei ~y~Giovanni Casa's Deli~w~ vorbei und 'überrede' ihn zu einer kleinen Spazierfahrt. - -[MAC4_B0:MAC4] -~w~Hi, Toni... wie geht's dir? - -[MAC4_B1:MAC4] -~w~Was gibt's? - -[MAC4_B2:MAC4] -~w~Hat's dir die Sprache verschlagen? - -[MAC4_B3:MAC4] -~w~Wir beide müssen was besprechen, Casa... - -[MAC4_B4:MAC4] -~w~Aber irgendwo, wo wir unter uns sind. - -[MAC4_C:MAC4] -~w~Lass ~r~Casa~w~ nicht lebend entkommen. - -[MAC4_C1:MAC4] -~w~Ich zahl das Schutzgeld, Toni! Ich schwör's dir! - -[MAC4_C2:MAC4] -~w~Oh, komm, Toni! Du kriegst von mir, was du willst! - -[MAC4_C3:MAC4] -~w~Ich mach alles, was du willst, Toni! Alles! Aber tu mir nichts! - -[MAC4_D1:MAC4] -~w~Okay! Okay! Du hast mich! - -[MAC4_D2:MAC4] -~w~Okay! Okay! Ich geb auf! Ich geb auf! Aber tu mir nichts mehr! - -[MAC4_D3:MAC4] -~w~Komm mit, Arschgesicht! - -[MAC4_E0:MAC4] -~w~Bring Casa zum ~y~Sägewerk. - -[MAC4_E1:MAC4] -~w~Geh nicht weg von ~b~Casa! - -[MAC4_F0:MAC4] -~w~Und... äh... wo gehen wir hin? - -[MAC4_F1:MAC4] -~w~Du bist mir doch wieder gut, oder, Toni? - -[MAC4_F2:MAC4] -~w~...Ich beschaff das Geld, das ich euch schulde... ehrlich! - -[MAC4_F3:MAC4] -Ich brauch nur ein bisschen Zeit! - -[MAC4_F4:MAC4] -~w~Mag deine Ma immer noch scharfe Würste? - -[MAC4_F5:MAC4] -Ich besorg ihr welche, kein Problem! - -[MAC4_G0:MAC4] -~w~Also... ähm... was willst du mit mir besprechen, Toni? - -[MAC4_G1:MAC4] -~w~Geht's um das Schutzgeld? - -[MAC4_G2:MAC4] -~w~Darum geht's doch, oder? - -[MAC4_G3:MAC4] -~w~...Toni? - -[MAC4_G4:MAC4] -~w~Darüber können wir doch reden, stimmt's, Toni? - -[MAC4_G6:MAC4] -~w~Die Leute reden heutzutage viel zu wenig miteinander, Toni. - -[MAC4_G7:MAC4] -~w~Stell dich da hin und halt's Maul, Casa. - -[MAC4_G8:MAC4] -~w~Okay, Toni! Aber das... das ist mir gar nicht geheuer. - -[MAC4_G9:MAC4] -~w~Hey! Sei vorsichtig damit, Toni! Das ist der Schalter für... - -[MAC4_GA:MAC4] -~w~AAARRRGGGHHHHHHHH! - -[MAC4_GB:MAC4] -~w~Verschwinde schleunigst! - -[MAC4_H:MAC4] -~w~In dem ~b~Van~w~ wartet 'Hack a la Casa' für Würstchen sizilianischer Art darauf, zu Casa's Deli gebracht zu werden. - -[MAC4_H1:MAC4] -~w~Fahr die Lieferung zu ~y~Casa's Deli. - -[MAC4_H2:MAC4] -~w~Lass den ~b~Van~w~ nicht dort stehen! - -[MAC4_H3:MAC4] -~w~Häng die Cops ab! - -[MAC4_I0:MAC4] -~w~Eine Sonderlieferung Wurstbrät? - -[MAC4_I1:MAC4] -~w~Davon hat mir keiner was gesagt! - -[MAC4_I2:MAC4] -~w~Wuh! Welchen Zoo haben wir denn diesmal beklaut? - -[MAC4_I3:MAC4] -~w~Hier hinten ist jede Menge Fleisch! - -[MAC4_I4:MAC4] -~w~...Hmm! Lecker! Okay, nehm ich. - -[MAC4_I6:MAC4] -~w~Wenn er das erfährt, dreht er durch! - -[MAC4_I7:MAC4] -~w~Und dann bin ich dran! - -[MAC4_X0:MAC4] -~r~Das ging zu schnell und schmerzlos für einen Sizilianer-Mord! - -[MAC4_X1:MAC4] -~r~Du hast die Lieferung nicht getätigt! - -[MAC4_X2:MAC4] -~r~Casa ist dir entwischt! - -[MAC4_E2:MAC4] -~w~Verlass das ~y~Sägewerk~w~ nicht! - -[MAC4_I5:MAC4] -~w~Gut, dass Casa nicht hier ist. - -[MAC4_G5:MAC4] -~w~Klar! Man kann doch über alles reden! - -[MAC4_CN:MAC4] -~w~Ruft die Polizei! - -[MAC4_CO:MAC4] -~w~Zu Hilfe! - -[MAC4_CP:MAC4] -~w~Hol doch jemand Hilfe! - -[MAC4_CQ:MAC4] -~w~Hilfe! - -[MAC4_CR:MAC4] -~w~Hilf mir doch jemand! - -[MAC4_CS:MAC4] -~w~Holt mich hier raus! - -[MAC4_A7:MAC4] -~w~Casa mag ein bisschen verquer sein, - -[MAC4_C0:MAC4] -~w~Können wir das nicht wie vernünftige Menschen regeln, Toni? - -[MAC4_1:MAC4] -~w~Geh näher an ~r~Casa ~w~ran, indem du dich von hinten an ~r~ihn ~w~heranschleichst. - -{=================================== MISSION TABLE MAC5 ===================================} - -[MAC5_AA:MAC5] -~w~Ma? Bist du da? - -[MAC5_AB:MAC5] -~w~Toni? ...Ich bin am Telefon... - -[MAC5_AC:MAC5] -~w~...Ja, jetzt ist er da... okay. Ich halte ihn so lange hin. Ciao. - -[MAC5_AD:MAC5] -~w~Toni? Bist du wieder hier, um deiner Mutter weh zu tun, hä? - -[MAC5_AE:MAC5] -~w~Den ganzen Tag hast du wieder Rambo gespielt. - -[MAC5_AF:MAC5] -~w~Nie besuchst du mich, bringst nie nette Mädchen nach Hause. - -[MAC5_AG:MAC5] -~w~Aber was für eine will dich schon haben? So käsig und mager wie du bist! - -[MAC5_AH:MAC5] -~w~Du bringst mich noch ins Grab, so viel Sorgen und Schande machst du mir. ~w~Aber damit ist jetzt Schluss. - -[MAC5_AI:MAC5] -~w~Ab sofort... sind wir geschiedene Leute. - -[MAC5_AJ:MAC5] -~w~Ich hab Auftragskiller auf dich angesetzt. Es geht nicht anders, Antonio... - -[MAC5_AK:MAC5] -~w~...du warst immer ein ungehorsamer Junge. - -[MAC5_AL:MAC5] -~w~Was!? Ma! - -[MAC5_AM:MAC5] -~w~Es ist das Beste so, mein Sohn... versuch wenigstens, wie ein Mann zu sterben! - -[MAC5_AN:MAC5] -~w~Mach mir nicht noch mehr Schande! - -[MAC5_B1:MAC5] -~w~Mas Auftragskiller sind da! - -[MAC5_B2:MAC5] -~w~Zeig Ma, dass du ihren ~r~Killern~w~ über bist. Erledige sie alle! - -[MAC5_B3:MAC5] -~w~Jetzt sind sie richtig wütend! Erledige ~r~sie. - -[MAC5_B4:MAC5] -~w~Die ~r~Killer~w~ wissen, dass du hier bist. Du musst weit weg aus Saint Mark's! - -[MAC4_B6:MAC5] -~w~Es kommen noch mehr ~r~Killer~w~! Verschwinde aus Saint Mark's. Sie wissen, wo du bist! - -[MAC4_B7:MAC5] -~w~GRANATE! WEG HIER! - -[MAC5_C1:MAC5] -~w~ Fürs Erste bist du sie los. Aber jetzt, wo sie angeheuert worden sind, werden sie den Job durchziehen, egal wie lange es dauert. - -[MAC5_C2:MAC5] -~w~Sei gewarnt... sie KOMMEN wieder! - -[HM1:MAC5] -~w~Sie geben nicht auf! Es kommen noch mehr ~r~Killer~w~. Mach sie fertig! - -[HM2:MAC5] -~w~Vorsicht! Es sind ~r~Killer~w~ im Anmarsch. Erledige sie! - -[HM3:MAC5] -~w~Es nähern sich noch mehr ~r~Killer~w~. Puste sie weg! - -[HM4:MAC5] -~w~Es sind noch mehr ~r~Killer~w~ unterwegs! Schalte sie aus! - -[MAC5_B5:MAC5] -~w~Knöpf dir die übrigen ~r~Killer~w~ vor, aber halte dich von Saint Mark's fern! - -{=================================== MISSION TABLE MAR1 ===================================} - -[MAR1M1:MAR1] -~w~Du hast dich verspätet! Typisch Mann! - -[MAR1M2:MAR1] -~w~Ich will shoppen gehen und du fährst mich. - -[MAR1M3:MAR1] -~w~Ich werd mich göttlich amüsieren. Und wenn du dabei draufgehst! - -[MAR1M4:MAR1] -~w~Ich bin nur noch nicht fertig zurechtgemacht. - -[MAR1M5:MAR1] -~w~Ach, scheiß drauf! Ich seh traumhaft aus. Komm, Toni! - -[MAR1_B:MAR1] -~w~Bring Maria zu dem ~y~Geschäft. - -[MAR1_D:MAR1] -~w~Warte hier, Schnucki, es dauert nicht lange... - -[MAR1_D2:MAR1] -~w~Ich wollte doch nur sehen, wie es bei Tageslicht aussieht! - -[MAR1_E:MAR1] -~w~Nichts wie weg hier! - -[MAR1_E3:MAR1] -~w~Fahr zurück und hol ~b~Maria. - -[MAR1_F:MAR1] -~w~Das war lustig! Aber ich brauche noch ein paar andere Sachen. - -[MAR1_G:MAR1] -~w~Lass den Motor laufen... - -[MAR1_GB:MAR1] -~w~Komm, Maria! Kein Geklaue mehr! - -[MAR1_GC:MAR1] -~w~Ach, Unsinn, Toni-Baby! Das war doch nur ein Missverständnis vorhin! - -[MAR1_G2:MAR1] -~w~Ich sag Ihnen, ich hab da drin nichts versteckt! - -[MAR1_H:MAR1] -~w~Bring mich nach Hause! - -[MAR1_I:MAR1] -~w~Lass mich hier und ich sorg dafür, dass Salvatore dir die Eier abschneidet! - -[MAR1_J:MAR1] -~r~Maria ist tot! O Schmerz! - -[MAR1_K:MAR1] -~w~Toni, Süßer, ich hatte einen Heidenspaß heute. - -[MAR1_K2:MAR1] -~w~Komm doch nachher wieder, dann können wir uns noch mehr amüsieren. - -[MAR1_K3:MAR1] -~w~Bis später, Hübscher! - -[MAR1_L:MAR1] -~w~Die Cops sind hinter uns her! Häng die mal bloß ab! - -[MAR1_L2:MAR1] -~w~Ich glaube, wir haben sie abgehängt! Fahren wir shoppen! - -[MAR1_M:MAR1] -~w~HALT! DIEBIN! - -[MAR1EXT:MAR1] -~w~Bring Maria zurück zu ihrer ~y~Wohnung. - -[MAR1_1:MAR1] -KEIN(E) - -[MAR1_D3:MAR1] -~w~Nehmen Sie Ihre verdammten Pfoten weg! - -[MAR1_G3:MAR1] -~w~Lassen Sie mich los! - -[MAR1_E2:MAR1] -~w~Häng die Bullen ab! - -{=================================== MISSION TABLE MAR2 ===================================} - -[MAR2_AA:MAR2] -~w~Hör auf! Einer von Salvatores Fiffis fährt mich gleich rüber... - -[MAR2_AB:MAR2] -~w~...oh, ein Charmeur. - -[MAR2_AC:MAR2] -~w~Vielleicht ein bisschen dünn. - -[MAR2_AE:MAR2] -~w~Hör zu, ich will Party machen, aber die Vorräte sind alle. - -[MAR2_AF:MAR2] -~w~Hast du denn Puder da? 'Nasenpuder', hm? - -[MAR2_AG:MAR2] -~w~Super. Ciao! - -[MAR2_AH:MAR2] -~w~Komm, Toni. Ich muss dringend wohin. - -[MAR2_BA:MAR2] -~w~Hast du kein Auto? - -[MAR2_BB:MAR2] -~w~Fahren wir. Mein Dealer wartet nicht ewig auf mich. - -[MAR2_3F:MAR2] -~w~Bring Maria zu ihrem ~y~Dealer. - -[MAR2_BC:MAR2] -~w~Da sind sie. Halt hinter ihnen an. Braver Junge. - -[MAR2_GA:MAR2] -~w~Du wartest hier. - -[MAR2_GB:MAR2] -~w~Irgendwie gefällt mir das nicht. - -[MAR2_GC:MAR2] -~w~Süß, du machst dir Sorgen. Aber ich bin Salvatores Mädchen, mir passiert nichts. - -[MAR2_GE:MAR2] -~w~Mit euch geh ich nirgendwohin! Für wen haltet ihr euch, verdammt? - -[MAR2_GF:MAR2] -~w~Fahr! - -[MAR2_GG:MAR2] -~w~Toni! - -[MAR2_GH:MAR2] -~w~Oh, Shit! - -[MAR2_19:MAR2] -~w~Erledige die ~r~Sindaccos! - -[MAR2_EA:MAR2] -~w~Zufrieden? - -[MAR2_EB:MAR2] -~w~Toni Cipriani. Mein Held! - -[MAR2_EC:MAR2] -~w~Weißt du was? Genug amüsiert für heute. Fahr mich heim, Tiger. - -[MAR2_HA:MAR2] -~w~Tja, äh, hast du Lust, mit raufzukommen... auf 'n Kaffee, oder so? - -[MAR2_HB:MAR2] -~w~Lass gut sein. - -[MAR2_HC:MAR2] -~w~Sicher? Tja, ruf mich mal an. - -[MAR2_O2:MAR2] -~w~Bring Maria zurück zu ihrer ~y~Wohnung. - -[MAR2_CA:MAR2] -~w~Mach schon, Toni! - -[MAR2_CB:MAR2] -~w~Um Himmels Willen, Toni, schnell! - -[MAR2_CC:MAR2] -~w~Rette mich, Toni! - -[MAR2_CD:MAR2] -~w~Hilfe! - -[MAR2_CE:MAR2] -~w~Mach schooooon! - -[MAR2_FA:MAR2] -~w~Und von wem krieg ich jetzt meinen Stoff? - -[MAR2_FB:MAR2] -~w~Du bist ein Idiot, Toni! - -[MAR2_LM:MAR2] -~w~Du hast ~b~Maria~w~ zurückgelassen. Hol sie. - -[MAR2_MD:MAR2] -~r~Maria ist tot. - -[MAR2_WA:MAR2] -~w~Die ~r~Dealer~w~ entkommen! - -[MAR2_DM:MAR2] -~r~Du hast die Dealer verloren! - -[MAR2_DA:MAR2] -~w~Schöner Held bist du! - -[MAR2_DF:MAR2] -~r~Du hast Marias Dealer vertrieben! - -[MAR2_18:MAR2] -~w~Ramme das ~r~Sindacco-Auto~w~, um Maria zu retten! - -[MAR2_AD:MAR2] -~w~...Genau. - -{=================================== MISSION TABLE MAR3 ===================================} - -[MAR3_A0:MAR3] -~w~Lieber Toni, ich habe mich als Hauptpreis bei einem Straßenrennen gemeldet. - -[MAR3_A1:MAR3] -~w~Wenn Salvatore das erfährt, kriegen wir beiden tierischen Ärger. - -[MAR3_A2:MAR3] -~w~Also komm schnell und rette meinen Arsch... dann gehört er vielleicht sogar dir! - -[MAR3_A3:MAR3] -~w~Für immer dein, Maria. - -[MAR3_E0:MAR3] -~w~Komm, Maria. Fahren wir. - -[MAR3_E1:MAR3] -~w~Na, endlich! Der harte Kerl traut sich ran. - -[MAR3_E2:MAR3] -~w~Hör mal, Maria, du gehörst Salvatore... - -[MAR3_E3:MAR3] -~w~Ich gehör mir allein! - -[MAR3_E4:MAR3] -~w~...du bist so ein verdammter Spießer! - -[MAR3_E5:MAR3] -~w~Komm, Wayne! Hauen wir auf den Putz! - -{=================================== MISSION TABLE MAR4 ===================================} - -[MAR4_B1:MAR4] -~w~Du findest Wayne bei seiner Gang in ~y~Chinatown. - -[MAR4_B2:MAR4] -~w~Fahr hin und mach ihn alle! - -[MAR4_C1:MAR4] -~r~Wayne~w~ flieht! Schnapp dir ein Motorrad und mach ihn fertig! - -[MAR4_C3:MAR4] -~w~Er hängt dich ab! Lass ~r~Wayne ~w~nicht entkommen! - -[MAR4_D1:MAR4] -~w~Bist du Wayne? - -[MAR4_D2:MAR4] -~w~Wer will das wissen? - -[MAR4_D3:MAR4] -~w~Ich bin ein Freund von Maria. - -[MAR4_D4:MAR4] -~w~...Frauen zu verprügeln, bringt dich auf Touren, hä? - -[MAR4_D5:MAR4] -~w~Die Schlampe hatte es verdient! - -[MAR4_D6:MAR4] -~w~Ja? Dann bist du jetzt dran! - -[MAR4_D7:MAR4] -~w~Schnappt ihn! - -[MAR4_T1:MAR4] -~w~Na komm, Großmaul! - -[MAR4_T2:MAR4] -~w~Du hast doch nichts drauf! - -[MAR4_T3:MAR4] -~w~Du fährst wie ein Amateur! - -[MAR4_T4:MAR4] -~w~Wenn du näher rankommst, kannst du mich am Arsch lecken! - -[MAR4_F1:MAR4] -~r~Du hast Wayne entkommen lassen! - -[MAR4_P1:MAR4] -~w~Du hast den Penner gekriegt! - -[MAR4_H1:MAR4] -Wayne - -[MAR4_C4:MAR4] -~w~Verlier ~r~Wayne~w~ nicht. Stelle ihn und mach ihn fertig! - -[BIK_01:MAR4] -Was hast du denn jetzt wieder eingepfiffen? - -[BIK_02:MAR4] -Nichts. - -[BIK_03:MAR4] -Was war's diesmal, hä? - -[BIK_04:MAR4] -Schnee? Downer? Glückspillen? Ein bisschen zuviel Koks? - -[BIK_08:MAR4] -Wer hat das getan? - -[BIK_09:MAR4] -Keiner. - -[BIK_10:MAR4] -Wer war das? - -[BIK_11:MAR4] -Ein Typ, mit dem ich was hab. Wayne. - -[BIK_12:MAR4] -Mit dem du was hast? Du bist die Frau vom Boss! - -[BIK_13:MAR4] -Sei nicht so spießig, Toni. Außerdem besorgt er mir 'n geiles Speed. - -[BIK_14:MAR4] -Es baut mich auf. - -[BIK_15:MAR4] -Und macht einen echt scharf in der Kiste. - -[BIK_16:MAR4] -Halt's Maul. Warum hat er dir das angetan, - -[BIK_17:MAR4] -dieser tote Flachwichser Wayne? - -[BIK_18:MAR4] -Ich hab ihm gesagt, dass ich 'nen anderen liebe. - -[BIK_19:MAR4] -Ich hab ihm von uns erzählt, Toni. - -[BIK_22:MAR4] -Wo finde ich diesen Wayne? - -[BIK_23:MAR4] -Er dealt in 'ner Bar in Chinatown. - -[BIK_24:MAR4] -Ich liebe dich, Toni Cipriani. - -[BIK_06:MAR4] -- Hat die Mischung nicht gestimmt? ~n~ - Halt den Mund, Toni! - -[BIK_05:MAR4] -Nicht genug Dizeopam? - -[BIK_20:MAR4] -- Und dann hat er mich verprügelt! ~n~ - Es gibt kein 'uns'! Bist du bescheuert? - -{=================================== MISSION TABLE MAR5 ===================================} - -[MAR5_EA:MAR5] -~w~Warum hast du mich hier hergebracht? - -[MAR5_EB:MAR5] -~w~Hier ist mein Zeug nicht... hier ist Wayne immer rumgehangen. - -[MAR5_EC:MAR5] -~w~...Jetzt fällt's mir ein - ich hab ein paar Zaps in Hepburn Heights gebunkert! - -[MAR5_ED:MAR5] -~w~Hey, das ist diese Schlampe, Maria! Und der Wichser, der Wayne umgelegt hat! - -[MAR5_AA:MAR5] -~w~Ich hab das Zap hinter der Mülltonne versteckt! - -[MAR5_AB:MAR5] -~w~Shit! Die Müllabfuhr war da! - -[MAR5_AC:MAR5] -~w~Warte! Mir fällt ein, dass ich in meiner Wohnung noch was habe! - -[MAR5_AD:MAR5] -~w~Bist du dir diesmal sicher? - -[MAR5_AE:MAR5] -~w~Natürlich bin ich mir sicher! - -[MAR5_BA:MAR5] -~w~Ich meinte Salvatores Wohnung! Bei Salvatore! - -[MAR5_BB:MAR5] -~w~Verdammt noch mal, Maria! - -[MAR5_FA:MAR5] -~w~Was bist'n du für ein Fahrer? Das hat ja ewig gedauert! Ich hätte mit Überdosis draufgehen können. - -[MAR5_FB:MAR5] -~w~Wie seh ich denn aus! Ich brauch neue Klamotten, und ein Lifting, das volle Programm! - -[MAR5_FC:MAR5] -~w~Süßer... hast du eigentlich Geld? - -[MAR5_FD:MAR5] -~w~Äh... nicht wirklich. - -[MAR5_FE:MAR5] -~w~Und was gräbst du mich dann an, verdammt? Ich bin Salvatores Mädchen! - -[MAR5_FF:MAR5] -~w~Und der stinkt vor Geld! Bagger mich bloß nie wieder an! - -[MAR5_CA:MAR5] -~w~(Stöhnen) - -[MAR5_CB:MAR5] -~w~Oh, Shit, ich glaub, ich muss kotzen. - -[MAR5_CC:MAR5] -~w~Ich bin echt verdammt high, Toni! - -[MAR5_CD:MAR5] -~w~Mir geht's gar nicht gut. - -[MAR5_CE:MAR5] -~w~Du fährst zu schnell! Und zu langsam! - -[MAR5_NC:MAR5] -~b~Maria~w~ kann kaum noch laufen. Beschaff ein Fahrzeug! - -[MAR5_ND:MAR5] -~w~Maria kann kaum noch laufen. Beschaff ein Fahrzeug! - -[MAR5_DA:MAR5] -~w~Dich machen wir alle, Mann! - -[MAR5_DB:MAR5] -~w~Du und die Schlampe sind heute Nacht fällig! - -[MAR5_DC:MAR5] -~w~War ein großer Fehler, dich mit uns anzulegen! - -[MAR5_LM:MAR5] -~w~Du hast ~b~Maria~w~ zurückgelassen. Hol sie. - -[MAR5_O1:MAR5] -~w~Bring Maria zu dem Diner beim ~y~Callahan Point. - -[MAR5_O2:MAR5] -~w~Bring Maria nach ~y~Hepburn Heights. - -[MAR5_O3:MAR5] -~w~Bring Maria zu ~y~ihrer Wohnung. - -[MAR5_O4:MAR5] -~w~Bring Maria zu ~y~Salvatores Villa. - -[MAR5_O5:MAR5] -~w~Fahr zurück und hol ~b~Maria. - -[MAR5_MD:MAR5] -~r~Maria ist tot! - -[MAR5_O6:MAR5] -~w~Hol ~b~Maria. - -[OVER_01:MAR5] -Oh, hey, Süßer. Ich dachte schon, du kommst nie. - -[OVER_02:MAR5] -Was ist los mit dir? - -[OVER_03:MAR5] -Upps! Nichts, Baby, alles bestens. - -[OVER_04:MAR5] -Du spinnst wohl! Steh auf! Was hast du denn diesmal eingepfiffen? - -[OVER_05:MAR5] -Eingepfiffen? Nicht viel. - -[OVER_06:MAR5] -Na ja, ein bisschen Opium, ein bisschen LSD. - -[OVER_07:MAR5] -Ach, und so geile Pillen, die ich jetzt aus Holland kriege. - -[OVER_08:MAR5] -Total rein! Mir geht's super. - -[OVER_09:MAR5] -Von wegen. - -[OVER_10:MAR5] -Ich nehme 'n Zap, dann geht's wieder. - -[OVER_11:MAR5] -Die sind da irgendwo. - -[OVER_12:MAR5] -Was sind 'Zaps'? - -[OVER_13:MAR5] -Du weißt nicht, was 'Zaps' sind? - -[OVER_14:MAR5] -Och, Toni, du bist so spießig. - -[OVER_17:MAR5] -Ich brauch 'n Zap, sonst geh ich drauf! - -[OVER_18:MAR5] -Ich hab 'ne Überdosis erwischt. - -[OVER_19:MAR5] -Besorg mir ein Zap, Toni. - -[OVER_20:MAR5] -Ich hab sie im Diner am Callahan Point vergessen. - -[OVER_21:MAR5] -Was hockst du noch rum? Los! - -[OVER_15:MAR5] -- Toni, ich liebe dich. ~n~ - Lass den Blödsinn. - -{=================================== MISSION TABLE VIC1 ===================================} - -[VIC1I11:VIC1] -~w~Ich hab 'ne nette kleine Bude für dich, Toni. - -[VIC1I12:VIC1] -~w~Die ist wie für dich geschaffen. - -[VIC1I13:VIC1] -~w~Da fahren wir als Erstes hin. - -[VIC1I14:VIC1] -~w~Zu gütig. - -[VIC1_3:VIC1] -~w~Fahr Vincenzo zu seinem ~y~Lagerhaus. - -[VIC1_4:VIC1] -~w~Steig wieder in das ~b~Auto. - -[VIC1_5:VIC1] -~w~Fahr Vincenzo ins ~y~Versteck. - -[VIC1_6:VIC1] -~w~Stell dich in die gelbe Markierung am ~y~Eingang. - -[VIC1_7:VIC1] -~w~Nimm das Bekleidungssymbol auf, um dich umzuziehen. - -[VIC1_8:VIC1] -~w~Geh wieder raus zu Vincenzo. - -[VIC1_9:VIC1] -~w~Bring Vincenzo zu den ~y~Atlantic Quays. - -[VIC1_9A:VIC1] -~w~Jetzt fahr mich nach Hause. - -[VIC1_10:VIC1] -~w~Steig in das ~b~Auto. - -[VIC1_D1:VIC1] -~w~Mann, fährst du'n Scheißdreck zusammen, Toni! - -[VIC1_D2:VIC1] -~w~Pass auf die Scheißkarre auf! - -[VIC1_D3:VIC1] -~w~Toni, hör auf, mich zu verscheißern und fahr vernünftig, du Wichser! - -[VIC1_C1:VIC1] -~w~Da wären wir, Toni. 'Home, sweet home'. Hübsch, nicht? - -[VIC1_C2:VIC1] -~w~In dem Dreckloch soll ich wohnen? - -[VIC1_C3:VIC1] -~w~Oh! Ich finde, es passt zu dir. - -[VIC1_C4:VIC1] -~w~Jetzt beleidigst du den guten, alten Vincenzo aber. - -[VIC1_C5:VIC1] -~w~Okay, Großmaul, schwing deinen Arsch da rauf und zieh dir was Anständiges an. - -[VIC1_C6:VIC1] -~w~Ich hab nicht ewig Zeit, also beeil dich. - -[VIC1_C7:VIC1] -~w~Hey, Wohnungen kosten Geld, Toni. - -[VIC1_C8:VIC1] -~w~Also vergiss nicht, wer hier die Rechnungen bezahlt. - -[VIC1_C9:VIC1] -~w~ICH! Daddy Vincenzo hier. - -[VIC1C10:VIC1] -~w~Und deshalb arbeitest du ab sofort für mich. - -[VIC1C11:VIC1] -~w~Dass du mir also bald wieder hier aufkreuzt. - -[VIC1_F:VIC1] -~r~Vincenzo ist tot. - -[HOMS_01:VIC1] -Hey... also da ist er, hm? - -[HOMS_02:VIC1] -Hör zu, Toni, ich weiß, du hast gute Arbeit für uns geleistet - -[HOMS_03:VIC1] -und ich weiß, du warst lange auf Tauchstation, - -[HOMS_04:VIC1] -deshalb trittst du mal eine Weile kürzer, hmm? - -[HOMS_05:VIC1] -Vincenzo kümmert sich um dich. - -[HOMS_06:VIC1] -Brauchst du Geld, frag ihn. - -[HOMS_07:VIC1] -Brauchst du 'nen Job, besorgt dir Lucky was. - -[HOMS_08:VIC1] -Kann man mehr von der Familie verlangen? - -[HOMS_09:VIC1] -So gut hat's nicht mal mein Sohn. - -[HOMS_10:VIC1] -Aber Mr. Leone, verbindet uns nicht was? - -[HOMS_11:VIC1] -Ich hab viel für diese Familie getan. - -[HOMS_12:VIC1] -Und jetzt machen Sie mich zum Befehlsempfänger von diesem... diesem... - -[HOMS_13:VIC1] -Das finde ich einfach nicht richtig. - -[HOMS_14:VIC1] -Toni, ich weiß, was du getan hast und keiner ist dankbarer als ich. Ehrlich. - -[HOMS_15:VIC1] -Aber dass du hier reinspazierst - -[HOMS_16:VIC1] -und meine Anweisungen in Frage stellst, ist, offengesagt, - -[HOMS_17:VIC1] -unangebracht. Capiche? - -[HOMS_18:VIC1] -Verstehe, Boss. - -[HOMS_19:VIC1] -Wenn du also was brauchst, melde dich bei Vincenzo an dem Atlantic Quay. - -[HOMS_20:VIC1] -Er kümmert sich um dich, stimmt's, Lucky? - -[HOMS_21:VIC1] -Natürlich, Boss. Ist doch klar. - -[HOMS_22:VIC1] -Weißt du, was? Fahren wir gleich hin. - -{=================================== MISSION TABLE VIC2 ===================================} - -[VIC2M2:VIC2] -Die faule Sau hat seit Tagen keine Kohle mehr abgeliefert. - -[VIC2M3:VIC2] -Vielleicht braucht er 'n bisschen Ansporn, damit er den Arsch hochkriegt und was arbeitet. - -[VIC2M4:VIC2] -Scheiß Einstellung, der Kerl... erinnert mich irgendwie an dich. - -[VIC2M5:VIC2] -~w~Was willst du damit sagen? - -[VIC2M6:VIC2] -Ich will damit gar nichts SAGEN! - -[VIC2M7:VIC2] -Ich BEFEHLE dir damit, dafür zu sorgen, dass das Arschloch endlich anfängt, Kohle ranzuschleifen! - -[VIC2_B:VIC2] -~w~Beschaff dir ein Fahrzeug. - -[VIC2OB1:VIC2] -~w~Bring den Dealer zur ~y~Arbeit. - -[VIC2_C:VIC2] -~w~Du brauchst ein Fahrzeug, um ihn zu seinem Revier zu bringen! - -[VIC2_D:VIC2] -~w~Hol Vincenzos Dealer im ~y~St. Mark's Distrikt~w~ ab. - -[VIC2_E:VIC2] -~w~Vincenzo meint, du wärst zu feige, um dein Revier zu bearbeiten? - -[VIC2_E2:VIC2] -~w~Hey, Mann! Ich bin kein Feigling! - -[VIC2_EX:VIC2] -~w~Ich... äh... ich war nur krank! - -[VIC2_E3:VIC2] -~w~Ab morgen arbeite ich wieder... oder vielleicht ab übermorgen. - -[VIC2_E4:VIC2] -~w~Ich glaube, du arbeitest ab heute wieder... ob's dir passt oder nicht! - -[VIC2_F:VIC2] -~w~Hey! Lass mich hier nicht stehen! Das ist 'ne üble Gegend, Mann! - -[VIC2_F2:VIC2] -~w~Du hast ~b~Vincenzos Dealer ~w~zurückgelassen. Fahr ihn holen. - -[VIC2_G:VIC2] -~w~Hey, ich hab's Vinnie schon gesagt... Chinatown ist inzwischen zu heiß für die Leones. - -[VIC2_G2:VIC2] -~w~Die Sindaccos machen sich da breit! Ich bin ein toter Mann, wenn ich da aufkreuze! - -[VIC2_G3:VIC2] -~w~Klar... klar... - -[VIC2_G4:VIC2] -~w~Ich sag dir doch, Mann, da dealen jetzt die Sindaccos. - -[VIC2_G5:VIC2] -~w~Mir geht's echt gar nicht gut... ich glaub, ich hab Fieber, oder so. - -[VIC2_H:VIC2] -~w~Halte neben ~b~dem Dealer. - -[VIC2_I:VIC2] -~w~Oh, Mann... - -[VIC2_J:VIC2] -~r~Vincenzos Dealer ist hinüber! - -[VIC2_K:VIC2] -~w~Bring Vincenzos Dealer nach ~y~Chinatown. - -[VIC2_1:VIC2] -KEIN(E) - -[VIC2M1:VIC2] -Wir haben einen Dealer, der für uns Nord-Chinatown versorgt. - -{=================================== MISSION TABLE VIC3 ===================================} - -[VIC3_H1:VIC3] -~w~Halte~h~ ~k~ ~PDLT~~w~, um ein ~h~Ziel zu erfassen~w~ und drücke~h~ ~k~ ~PDFW~~w~, um anzugreifen! - -[VIC3_H2:VIC3] -~w~Drücke~h~ ~k~ ~PDFW~~w~, um den ~h~Dealer~w~ anzugreifen. - -[VIC3O2:VIC3] -~w~Fahr nach ~y~Chinatown. - -[VIC3O3:VIC3] -~w~Erledige den ~r~Dealer. - -[VIC3_1:VIC3] -~w~Vincenzo hat dir dafür ein nützliches Geschenk hinterlassen. - -[VIC3_BA:VIC3] -~w~Halt dich von Leone-Gebiet fern, Arschloch! - -[VIC3_BB:VIC3] -~w~Hast du noch nicht genug, Arschgesicht? - -[VIC3_BC:VIC3] -~w~In dieser Stadt dealen die Leones! Sonst keiner! Ist das klar, ihr Sindacco-Wichser? - -[VIC3_6:VIC3] -~w~Die Sindaccos dealen in ganz Chinatown. - -[VIC3_AA:VIC3] -~w~Vinnie? - -[VIC3_AB:VIC3] -~w~Zum Kuckuck, Toni! Kann ich nie meine Ruhe haben? - -[VIC3_AD:VIC3] -~w~Ich kann eh schon nicht kacken, da kann ich dich nicht auch noch gebrauchen. - -[VIC3_AE:VIC3] -~w~Aber wo du schon mal da bist - ich hab immer noch kein Geld gesehen - -[VIC3_AF:VIC3] -~w~von diesem Dealer. Und weißt du, warum? - -[VIC3_AG:VIC3] -~w~Ich bin ganz Ohr. - -[VIC3_AJ:VIC3] -~w~Die Sindaccos haben angefangen zu dealen und das auf Leone-Gebiet! - -[VIC3_AK:VIC3] -~w~Hast du vor, das zu dulden, Toni? - -[VIC3_AL:VIC3] -~w~Ich will, dass du nach Chinatown fährst! - -[VIC3_AM:VIC3] -~w~Okay, 'Boss'. Wird gemacht. - -[VIC3_AN:VIC3] -~w~Oh, Gott, warum ist denn hier nie Klopapier, verflucht noch mal? - -[VIC3_AH:VIC3] -~w~Weil er tot ist, du Idiot. Jemand hat ihn umgelegt. - -[VIC3O4:VIC3] -~r~Die Sindaccos~w~ dealen in ganz Chinatown. Erteile ihnen eine Lektion, die sie nie mehr vergessen! - -{=================================== MISSION TABLE VIC4 ===================================} - -[VIC4_H2:VIC4] -~w~Die ~h~Sprühdose~w~ auf dem Radar führt dich zum ~h~Pay 'n' Spray. - -[VIC4_A2:VIC4] -~w~Stell dich in die ~h~Markierung~w~, um dir das Waffenangebot anzusehen. - -[VIC4_A3:VIC4] -~w~Benutze~h~ ~k~ ~AMMOV~~w~, um verschiedene Waffen auszuwählen. - -[VIC4_A4:VIC4] -~w~Kaufe die ausgewählte Waffe durch Drücken von~h~ ~k~ ~AMBUY~ ~w~- aber nur, wenn du genug Geld hast! - -[VIC4_A6:VIC4] -~w~Es gibt acht verschiedene Waffentypen. - -[VIC4_A7:VIC4] -~w~Du kannst pro Waffentyp immer nur eine bei dir tragen: Eine Pistole, eine Schrotflinte, usw. - -[VIC4_H1:VIC4] -~w~Das ~h~Waffensymbol~w~ auf dem Radar führt dich zu ~h~Ammu-Nation. - -[VIC4_H3:VIC4] -~w~Das ~h~Waffensymbol~w~ auf dem Radar führt dich wieder zu ~h~Ammu-Nation. - -[VIC4_AB:VIC4] -~w~Wie könnt ich den vergessen? - -[VIC4_AD:VIC4] -~w~Das Interessante ist, er möchte jetzt gern ein Leone werden. - -[VIC4_AE:VIC4] -~w~Der Wichser hat die Wahl gehabt! - -[VIC4_AG:VIC4] -~w~Hallo, Hirn...-zelle! Mann, Sal meinte zwar, du wärst ein dummer Schläger, - -[VIC4_AH:VIC4] -~w~aber dass einer gleich so dumm sein kann... - -[VIC4_AJ:VIC4] -~w~Er wird unser Informant bei denen. - -[VIC4_AK:VIC4] -~w~Die Sache hat nur einen Haken. - -[VIC4_AL:VIC4] -~w~So ein Sindacco-Gorilla hat ihn am Gängelband. - -[VIC4_AM:VIC4] -~w~Und dieses kleine Hindernis sollst du aus dem Weg räumen - -[VIC4_AN:VIC4] -~w~und JD auf unsere Seite ziehen. Capiche? - -[VIC4_2:VIC4] -~w~Nimm das ~g~Handy~w~ als Beweis, dass du den Job erledigt hast. - -[VIC4_BA:VIC4] -~w~Toni... oh, du hast mir eben ein super Snuff-Video geliefert! - -[VIC4_BB:VIC4] -~w~JD? Du hast das gesehen? DU HAST MICH GEFILMT?! - -[VIC4_BC:VIC4] -~w~Och, ich... das ist nur für den Heimgebrauch! - -[VIC4_BD:VIC4] -~w~Ich kann's kaum erwarten, dass wir im selben Team sind! - -[VIC4_BE:VIC4] -~w~Freu dich mal nicht zu früh. Du schuldest mir immer noch Geld. - -[VIC4_BF:VIC4] -~w~Nimm die Karre von dem Sindacco als Anzahlung, hä? - -[VIC4_BG:VIC4] -~w~Spritz sie um, dann erkennt sie keiner. - -[VIC4_BH:VIC4] -~w~Ich kümmere mich um die Leiche. - -[VIC4_CA:VIC4] -~w~Hey! Mach die Fliege! - -[VIC4_CB:VIC4] -~w~Du hast hier nichts verloren! - -[VIC4_61:VIC4] -~w~Steig in das ~b~Auto. - -[VIC4_62:VIC4] -~w~Fahr zum Pay 'n' Spray. - -[VIC4_DC:VIC4] -~r~JD sagte, du sollst das Auto umspritzen lassen! - -[VIC4_PR:VIC4] ---ring ring-- - -[VIC4O1A:VIC4] -~w~Geh ~y~rein. - -[VIC4_O2:VIC4] -~w~Kauf dir eine Pistole. - -[VIC4_O4:VIC4] -~w~Erledige den ~r~Sindacco-Gorilla. - -[VIC4_FA:VIC4] -~r~Jetzt verkauft er dir keine Knarre mehr! - -[VIC4_O3:VIC4] -~w~Fahr zu der ~y~Baustelle. - -[VIC4_AC:VIC4] -~w~Der führt jetzt eine von den Sindaccos kontrollierte Titten-Bar - ich meine, einen Herrenclub. - -[VIC4_AA:VIC4] -~w~Hey, erinnerst du dich an JD O'Toole? - -[VIC4_AI:VIC4] -~w~Über JD können wir erfahren, was die Sindaccos so planen. - -[HELP42:VIC4] -~w~Drücke während des Zielens die~h~ ~k~ ~FREE1~~w~, um den ~h~manuellen Zielmodus~w~ zu aktivieren und benutze dann den~h~ ~k~ ~FREE2~ ~w~zum Anvisieren. - -[VIC4_A1:VIC4] -~w~Besorg dir beim nächsten ~y~Ammu-Nation~w~ eine Knarre. - -[VIC4_O1:VIC4] -~w~Begib dich wieder zu ~y~Ammu-Nation~w~ und besorg dir eine Knarre. - -[VIC4_1:VIC4] -~w~Der ~r~Sindacco-Schläger~w~ ist auf der Rückseite der Baustelle. Erledige ihn! - -{=================================== MISSION TABLE VIC5 ===================================} - -[VIC5_H:VIC5] -Leones - -[VIC5_I0:VIC5] -~w~Ach, du bist es. - -[VIC5_I1:VIC5] -~w~Ja, wer hätte das gedacht - ich bin's. Was sagt man dazu? - -[VIC5_I2:VIC5] -~w~Dazu sag ich dir folgendes, Großmaul: - -[VIC5_I3:VIC5] -~w~Ein paar von unseren Leuten haben ein völlig idiotensicheres Ding vermasselt. - -[VIC5_I4:VIC5] -~w~Zu blöd für 'nen popeligen Überfall, die Volldeppen! - -[VIC5_I5:VIC5] -~w~Jetzt haben die Bullen sie in Chinatown eingekesselt. - -[VIC5_I6:VIC5] -~w~Kacke! Warum bin ich nur von lauter Idioten umgeben? - -[VIC5_I7:VIC5] -~w~Keine Ahnung... 'Wie der Herr...'? - -[VIC5_I8:VIC5] -~w~An dir ist ein Komiker verloren gegangen! - -[VIC5_I9:VIC5] -~w~Mal sehen, ob du das auch lustig findest: - -[VIC5I10:VIC5] -~w~Du wirst diese Scheiße nämlich für mich aufräumen! - -[VIC5I11:VIC5] -~w~Also hau die Idioten da raus und schaff sie mir her! - -[VIC5_F1:VIC5] -~r~Eins der Gang-Mitglieder ist tot. - -[VIC5_G0:VIC5] -~w~Besorg dir einen Viersitzer. - -[VIC5_O1:VIC5] -~w~Fahr ~b~Vincenzos Männer~w~ retten. - -[VIC5_O2:VIC5] -~w~Hau ~b~die Gang~w~ da raus! - -[VIC5_O3:VIC5] -~w~Häng die Cops ab! - -[VIC5_O4:VIC5] -~w~Fahr die Gang zu ~y~Vincenzos Bude. - -[VIC5_O5:VIC5] -~w~Halte ~b~die Gang~w~ zusammen! - -[VIC5_O6:VIC5] -~w~Du brauchst ein Fahrzeug mit mehr Platz! - -[VIC5_G1:VIC5] -~w~Was machen wir jetzt? - -[VIC5_G2:VIC5] -~w~Wir sind am Arsch! - -[VIC5_G3:VIC5] -~w~Für den Drecksack von Vincenzo geh ich nicht in den Knast! - -[VIC5_G4:VIC5] -~w~Hauen wir ab hier, verdammt! - -[VIC5_G5:VIC5] -~w~Warte auf mich! - -[VIC5_G6:VIC5] -~w~Gib Gas, Toni! - -[VIC5_E1:VIC5] -~w~Also, habt ihr das Geld? - -[VIC5_E2:VIC5] -~w~Jeden Cent, Boss... - -[VIC5_E3:VIC5] -~w~Hey, hören Sie, wir konnten echt nichts machen... - -[VIC5_E4:VIC5] -~w~...ihr konntet echt nichts machen... - -[VIC5_E5:VIC5] -~w~Es ist scheiße gelaufen, schlimmer hätt's nicht kommen können... - -[VIC5_E6:VIC5] -~w~Was meinst du... ist es jetzt besser oder schlimmer? - -[VIC5_E7:VIC5] -~w~Wenn ihr mir noch mal ein Ding in den Sand setzt, wird's für euch auch schlimmer! - -[VIC5_E8:VIC5] -~w~Jetzt räumt die Scheiße da weg und geht mir aus den Augen! - -[VIC5_E9:VIC5] -~w~Ich muss mal telefonieren. - -[VIC5E10:VIC5] -~w~Ich schwör bei Gott, Toni, seit du zurückgekommen bist, hab ich 'ne Pechsträhne. - -[VIC5E11:VIC5] -~w~Du bist ein verdammter Unglücksbringer! - -{=================================== MISSION TABLE VIC6 ===================================} - -[VIC6_BA:VIC6] -~w~Anhalten! - -[VIC6_BB:VIC6] -~w~Keine Bewegung, Arschloch! - -[VIC6_P0:VIC6] -~w~Hol Vincenzos ~b~Auto~w~ ab. - -[VIC6_P1:VIC6] -~w~Eine Polizeifalle! Schaff das Auto da weg! - -[VIC6_P2:VIC6] -~w~Häng die Cops ab! - -[VIC6_P3:VIC6] -~w~Du hast die Cops abgehängt! ~w~Bring das Auto jetzt zu Vincenzos ~y~Garage. - -[VIC6_P4:VIC6] -~w~Zeig Vincenzo, dass du dir nichts mehr von ihm gefallen lässt - verschrotte sein ~b~Auto! - -[VIC6_P5:VIC6] -~w~Steig wieder in Vincenzos ~b~Auto! - -[VIC6_P6:VIC6] -~w~Bring das Auto zu Vincenzos ~y~Garage. - -[VIC6_PA:VIC6] -~r~Du hast das Auto zerstört! - -[VIC6_D1:VIC6] -~w~Steig in das ~b~Auto. - -[VIC6_D3:VIC6] -~w~Fahr es zur ~y~Schrottpresse. - -[VIC6_D4:VIC6] -~w~Steig aus und lass die Schrottpresse ihre Arbeit tun. - -[VIC6_D5:VIC6] -~r~Du hättest das Auto verschrotten sollen! - -[VIC6_AA:VIC6] -~w~Hey, Toni, was macht das Auto? - -[VIC6_AB:VIC6] -~w~Du Hurensohn, Vinnie! Du hast mich reingelegt! - -[VIC6_AC:VIC6] -~w~Reingelegt? REINGELEGT? - -[VIC6_AD:VIC6] -~w~Als du in diese Stadt zurückkamst, hattest du nichts! NICHTS! - -[VIC6_AE:VIC6] -~w~Ich habe dir geholfen, du undankbarer Bastard! - -[VIC6_AF:VIC6] -~w~Mit einer Wohnung und einem Job! - -[VIC6_AG:VIC6] -~w~Und für diese Großzügigkeit erwarte ich, dass du ab und zu ein Risiko eingehst. - -[VIC6_AH:VIC6] -~w~Ich bin nämlich nicht die Wohlfahrt, klar? Und nicht dein Sugardaddy. - -[VIC6_AI:VIC6] -~w~Dann hat die Polizei das Auto also beobachtet! Scheiß auf die Polizei! - -[VIC6_AJ:VIC6] -~w~Wenn ich dir einen Auftrag erteile, führst du ihn aus. Capiche? - -[VIC6_AK:VIC6] -~w~Oh, ja, ich hab kapiert, Vinnie. - -[VIC6_AL:VIC6] -~w~Ich hab kapiert, dass ich wie Dreck behandelt werde, solange ich für dich arbeite. - -[VIC6_AM:VIC6] -~w~Ich hab schon Dinger gedreht, da hast du noch Mädchen den Rock hochgeschaut. - -[VIC6_AN:VIC6] -~w~Steck dir deinen Drecksjob an den Hut, 'Boss'. Ich kündige! - -[VIC6_AO:VIC6] -~w~Toni, du machst einen großen... - -[VIC6_D2:VIC6] -~w~Halte in der ~y~Markierung. - -[HOTW_01:VIC6] -Klar, Mamma, ich ruf dich später an. - -[HOTW_28:VIC6] -Vincenzo! - -[HOTW_02:VIC6] -Ja, natürlich. Natürlich bin ich ein braver Junge. - -[HOTW_03:VIC6] -Hab dich lieb. - -[HOTW_04:VIC6] -Hey, Cheryl, Süße, lass mal gut sein. - -[HOTW_05:VIC6] -Da. Und jetzt verschwinde. - -[HOTW_06:VIC6] -Kleines Wundertütchen für dich. - -[HOTW_11:VIC6] -Du bist widerlich. Kennst du keine Achtung? - -[HOTW_12:VIC6] -Achtung? Ich nenn's Vielseitigkeit, Antonio. - -[HOTW_15:VIC6] -Wenn nicht, kann ich Ray bitten, bei dir einzuspringen. - -[HOTW_16:VIC6] -Arschloch! - -[HOTW_17:VIC6] -Ich verarsch dich doch nur. Reg dich ab. - -[HOTW_18:VIC6] -Hör zu, du musst mir einen Gefallen tun. - -[HOTW_19:VIC6] -Meine Mädels brauchen Stoff. Ich hab 'n Auto voll davon in Trenton stehen. - -[HOTW_20:VIC6] -Hol die Kiste und ruf mich an. - -[HOTW_21:VIC6] -Bin ich dein Chauffeur? Leck mich. - -[HOTW_22:VIC6] -Hör zu, hör zu, hör zu... - -[HOTW_23:VIC6] -Ich würd's selber machen, aber das FBI beobachtet mich. - -[HOTW_24:VIC6] -Ich pass schon auf dich auf. Ehrlich. - -[HOTW_25:VIC6] -Außerdem gibt's hier 'ne Rangordnung, capiche? Jetzt sei ein braver Junge! - -[HOTW_07:VIC6] -- Hey, wer liebt dich, Engelchen? ~n~ - Du, Vinnie. - -[HOTW_09:VIC6] -- War das deine Mutter am Apparat? ~n~ - Ja. - -[HOTW_13:VIC6] -- Lässt du dir nicht gern von 'ner scharfen Braut einen blasen? ~n~ - Was? - -{=================================== MISSION TABLE VIC7 ===================================} - -[VIC7_VE:VIC7] -~r~v1.01 - -[VIC7_1:VIC7] -~w~Vinnie, ich bin's! Wo steckst du, verdammt? Was soll das? - -[VIC7_2:VIC7] -~w~Toni? Come sta? Ich wusste, dass du anrufst. - -[VIC7_3:VIC7] -~w~Hör zu, ich bin bei den Portland Docks. - -[VIC7_3A:VIC7] -~w~Wir kriegen 'ne große Lieferung rein. Mach, dass du herkommst. Ich bin auf dem großen Frachter. - -[VIC7_3B:VIC7] -~w~Ich weiß nicht, Vinnie... ich hab zu tun. - -[VIC7_3D:VIC7] -~w~Aber von jetzt an sind wir Partner, okay? Nein, noch viel mehr... wir sind Brüder! - -[VIC7_3E:VIC7] -~w~Also, komm. Was meinst du? Salvatore wünscht es sich. - -[VIC7_3F:VIC7] -~w~Okay. Salvatore zuliebe. - -[VIC7_3G:VIC7] -~w~Aber wenn du noch mal diesen 'Daddy'-Scheiß abziehst, bist du ein toter Mann. - -[VIC7_4:VIC7] -~w~Hahaha! Ich schlitz dich auf, Kleiner! - -[VIC7_4A:VIC7] -~w~Triff Vincenzo auf dem ~y~Frachter. - -[VIC7_5:VIC7] -~w~Stiiirrrb! - -[VIC7_6:VIC7] -~w~Hahahahahaha! - -[VIC7_7:VIC7] -~w~Ist der verblödete Scheißkerl tot? - -[VIC7_8:VIC7] -~w~Ich muss dich leider enttäuschen, Vinnie. - -[VIC7_9:VIC7] -~w~Du Hurensohn! Kannst du nicht endlich verrecken? - -[VIC7_10:VIC7] -~w~Du hättest nicht zurückkommen sollen, Toni. - -[VIC710A:VIC7] -~w~Ich hab mir für Salvatore die Finger wund geschuftet. - -[VIC710B:VIC7] -~w~Und dann kommst du wieder anspaziert und ich hör von ihm nur noch: Toni dies, Toni das! - -[VIC7_11:VIC7] -~w~Das ist meine Stadt, Toni! MEINE STADT! - -[VIC711A:VIC7] -~w~Und du nimmst sie mir nicht weg! - -[VIC7_12:VIC7] -~w~Das werd ich genießen. - -[VIC7_4B:VIC7] -~w~Sieht menschenleer aus. Geh an Bord des ~y~Schiffes. - -[VIC7_13:VIC7] -~w~Begib dich zum ~y~Ausgang. - -[VIC7_3C:VIC7] -~w~Ich weiß, dass ich dich wie 'n Arschloch behandelt habe. Tut mir auch ehrlich Leid. - -[VIC7HUL:VIC7] -~w~Geh runter in den ~y~Rumpf. - -{=================================== MISSION TABLE SALS1 ===================================} - -[SALS1_1:SALS1] -KEIN(E) - -[SALS1_6:SALS1] -Beseitige ~r~Bürgermeister R.C. Hole! - -[SALS1_7:SALS1] -Schnapp dir das ~g~Handy des Bürgermeisters! - -[SALS1_8:SALS1] -~r~Der Bürgermeister joggt nicht mehr. - -[SALS1_9:SALS1] -~r~Der Bürgermeister ist entkommen. - -[SALS110:SALS1] -Bring das Handy zu ~y~Salvatore. - -[SALS111:SALS1] -Waffe weg oder ich schieße! - -[SALS112:SALS1] -Sie haben Verdacht geschöpft! Der ~r~Bürgermeister~w~ haut ab! - -[SS1_AA:SALS1] -Ich bin's, Toni. - -[SS1_AB:SALS1] -Diese Bürgermeistersau verarscht mich. Das lass ich mir nicht bieten! - -[SS1_AC:SALS1] -Reg dich ab, Sal. Ich werd versuchen, ihn aus dem Verkehr zu ziehen. - -[SS1_AD:SALS1] -Bist ein guter Junge, Toni. Dein Vater wäre stolz auf dich. - -[SS1_AE:SALS1] -Hör zu, der Fettsack von Bürgermeister müsste beim Joggen im Park sein. - -[SS1_AF:SALS1] -Sorg dafür, dass ihm die Luft ausgeht... für immer! - -[SS1_AG:SALS1] -Und schnapp dir sein Handy! - -[SS1_AH:SALS1] -Dann sehen wir, mit wem er telefoniert hat. - -[SALS1AA:SALS1] -Ich bin's, Toni. - -[SALS1AB:SALS1] -Diese Bürgermeistersau verarscht mich. - -[SALS1AC:SALS1] -Das lass ich mir nicht bieten! - -[SALS1AD:SALS1] -Reg dich ab. Ich zieh ihn aus dem Verkehr. - -[SALS1AE:SALS1] -Bist ein guter Junge, Toni. - -[SALS1AF:SALS1] -Der Fettsack müsste beim Joggen im Park sein. - -[SALS1AG:SALS1] -Sorg dafür, dass ihm die Luft ausgeht. Für immer! - -[SALS1AH:SALS1] -Ach, und schnapp dir sein Handy! - -[SALS1AI:SALS1] -Dann sehen wir, mit wem er telefoniert hat. - -[SALS1C1:SALS1] -Waffe weg, Sir! - -[SALS1C2:SALS1] -Halt oder ich schieße! - -[SALS1C3:SALS1] -Keine Bewegung! - -[SALS1C4:SALS1] -Seien Sie kein Idiot! - -[SALS113:SALS1] -~r~Das Handy des Bürgermeisters wurde zerstört. - -[SALS114:SALS1] -Vorsicht! Sie schießen, wenn du bewaffnet im Park auftauchst. - -{=================================== MISSION TABLE SALS2 ===================================} - -[SALS2_1:SALS2] -~w~Geh zum ~b~Auto. - -[SALS2_2:SALS2] -~w~Fahr zum ~y~Treffpunkt. - -[SALS2_3:SALS2] -~w~Steig wieder ins ~b~Auto. - -[SALS2_4:SALS2] -~r~Mickey ist draufgegangen! - -[SALS2_5:SALS2] -~r~Ein Mann von Salvatore ist draufgegangen! - -[SALS2AA:SALS2] -Toni, - -[SALS2AB:SALS2] -ein paar von den Jungs kommen nachher bei dir vorbei. - -[SALS2AC:SALS2] -Sieh zu, dass du da bist, wenn sie kommen. - -[SALS2AD:SALS2] -Ciao, Salvatore. - -[SALS2CA:SALS2] -Hey, Toni. - -[SALS2CC:SALS2] -Los, steig ein. Du fährst. - -[SALS2CD:SALS2] -Mickey, was ist denn los? - -[SALS2CE:SALS2] -Ach, komm, Cipriani, meinst du, ich will dich umnieten? - -[SALS2BA:SALS2] -Salvatore ist da unten. - -[SALS2BC:SALS2] -Toni, mein Junge, - -[SALS2BD:SALS2] -heute ist dein großer Tag! - -[SALS2BE:SALS2] -Oh, Salvatore. Mr. Leone. - -[SALS2BF:SALS2] -Auf den Tag hat meine Mamma gewartet. - -[SALS2CB:SALS2] -Steig ein, komm, wir fahren wohin. - -[SALS2BB:SALS2] -Madonn' mia, worauf wartest du? - -[SALS2AF:SALS2] -Hey, Toni, danke. Du hörst von mir. - -{=================================== MISSION TABLE SALS3 ===================================} - -[SALS3_1:SALS3] -KEIN(E) - -[SALS3_2:SALS3] -Schaden - -[SALS313:SALS3] -~r~Der Berater des Bürgermeisters ist hinüber! - -[SALS314:SALS3] -~r~Salvatore ist hinüber! - -[SALS3AA:SALS3] -Toni, steig ein! - -[SALS3AB:SALS3] -Wo fahren wir hin? - -[SALS3AC:SALS3] -Zu einem Plausch mit dem Assistenten des Bürgermeisters über Franco Forelli. - -[SALS3BA:SALS3] -Runter von meinem Boot! - -[SALS3BB:SALS3] -Du kommst mit. - -[SALS3BC:SALS3] -Was fällt Ihnen ein! - -[SALS3BD:SALS3] -Beeil dich, der Sicherheitsdienst guckt zu! - -[SALS3CA:SALS3] -Toni, Vorsicht! Schützen auf den Felsen! - -[SALS3CB:SALS3] -Schützen vor dir! - -[SALS3CC:SALS3] -Vorsicht, rechts, Toni! - -[SALS3CD:SALS3] -Links, Toni, links! - -[SALS3CE:SALS3] -Schützen auf der Mole da! - -[SALS3CF:SALS3] -Scheiße, der Sicherheitsdienst tanzt im Hubschrauber an! - -[SALS3DA:SALS3] -Der Bürgermeister wär ohne Francos Okay nicht mal scheißen gegangen! - -[SALS3DB:SALS3] -Der Bürgermeister war nicht gekauft! - -[SALS3DC:SALS3] -Halt, halt, ihr habt Recht. - -[SALS3DE:SALS3] -Die Sizilianer? Wieso? - -[SALS3DF:SALS3] -Sie haben Franco gekauft und wollen Krieg zwischen den Familien in Liberty. - -[SALS3DG:SALS3] -Wenn sich alles beruhigt hat, übernehmen sie die Macht. - -[SALS3DH:SALS3] -Toni, ich ruf dich gleich an. - -[SALS3DI:SALS3] -Aber erst muss ich diesen Scheißhaufen entsorgen! - -[SALS3DD:SALS3] -Diese Sizilianer... die haben Franco dazu überredet. - -{=================================== MISSION TABLE SALS4 ===================================} - -[SALS4_1:SALS4] -KEIN(E) - -[SALS4BA:SALS4] -Ja. - -[SALS4BB:SALS4] -Gott sei Dank bist du rangegangen! - -[SALS4BC:SALS4] -Was gibt's, Sal? - -[SALS4BD:SALS4] -Ich bin in Fort Staunton, die Forellis ausspionieren und jetzt dampft die Kacke! - -[SALS4BE:SALS4] -Die Sindaccos eröffnen den Krieg gegen die Forellis - -[SALS4BF:SALS4] -und ich stecke mitten in dem Gemetzel drin! - -[SALS4BG:SALS4] -Ich bin sofort da. - -[SALS4BH:SALS4] -Nimm die Limo. Sie ist gepanzert. Wir werden sie brauchen! - -[SALS4AA:SALS4] -Toni, nichts wie weg hier! - -[SALS4AB:SALS4] -Bring mich zur Limo! - -[SALS4AE:SALS4] -Gut, ich hab 'ne Wohnung in Newport. Fahr mich hin! - -[SALS4AF:SALS4] -Hey, Toni, danke. Ich melde mich. - -[SAL4_1:SALS4] -Hol Mr. Leones ~b~Limo. - -[SAL4_2:SALS4] -~r~Du hast den Wagen zerstört! - -[SAL4_3:SALS4] -Fahr den Wagen nach ~y~Fort Staunton. - -[SAL4_4:SALS4] -~r~Du hast Salvatore sterben lassen! - -[SAL4_6:SALS4] -~b~Salvatore~w~ ist in der Gasse. - -[SAL4_9:SALS4] -Begib dich zur ~y~Garage. - -[SAL4_11:SALS4] -Du hast ~b~Salvatore ~w~zurückgelassen! - -[SAL4_12:SALS4] -Versperrt! Lass die Limo stehen und geh zu Fuß hin. - -[SAL4_13:SALS4] -Steig in die ~b~Limo. - -[SAL4_14:SALS4] -Bring Salvatore und die Limo zur ~y~Garage~w~ in Newport. - -[SAL4_15:SALS4] -Such ~b~Salvatore! - -[SAL4_16:SALS4] -Bring Salvatore zur ~b~Limo. - -[SAL4_17:SALS4] -Warte, bis ~b~Salvatore~w~ in der Limo ist! - -{=================================== MISSION TABLE SALS5 ===================================} - -[SALS5_1:SALS5] -~w~Drücke~h~ ~k~ ~VEACC~ ~w~um Paul Sindaccos Auto zu steuern. - -[SALS5_2:SALS5] -~w~Erledige die ~r~Forellis~w~ am Treffpunkt, ehe Sindacco das Steuergerät entdeckt. - -[SALS5_3:SALS5] -~r~Paul Sindacco ist tot! - -[SALS5_4:SALS5] -~r~Salvatores Van wurde zerstört! - -[SALS5_5:SALS5] -~r~Sindacco ist am Treffpunkt! - -[SALS5_6:SALS5] -~w~Los, zum ~b~Van. - -[SALS5_7:SALS5] -~w~Restzeit - -[SALS5_8:SALS5] -~r~Sindacco hat das Steuergerät entdeckt! - -[SALS5_9:SALS5] -~w~Die Satellitensteuerung von Sindaccos Auto reagiert bei dir verzögert. - -[SALS510:SALS5] -Schaden - -[SALS5AA:SALS5] +[POR1_19] Hey! -[SALS5AB:SALS5] -Toni, ich bin's. Ich hab was für dich. +[DESPERA] +Desperado -[SALS5AC:SALS5] -Es wird dir mordsmäßig Spaß machen. +[MOB_99A] +Begib dich zu dem Fernsprecher neben dem Einkaufszentrum in Washington Beach. -[SALS5AD:SALS5] -Was soll ich erledigen, Sal? +[MOB_98A] +Begib dich zu dem Fernsprecher in Vice Point. -[SALS5AE:SALS5] -Um die Ecke steht ein Van. +[MOB_96A] +Begib dich zu dem Fernsprecher beim Flughafen-Terminal. -[SALS5AF:SALS5] -Ruf mich an, wenn du ihn findest. +[MOB_95A] +Begib dich zu dem Fernsprecher in Little Havana. -[SALS5BA:SALS5] -Okay, Sal, ich bin im Van. +[BNK1_1] +Kann ich Ihnen helfen, Sir? -[SALS5BB:SALS5] -Gut. Wir haben an Paulie Sindaccos Auto rumgebastelt. +[BNK1_2] +Der Typ ist verkleidet! -[SALS5BC:SALS5] -Was mach ich jetzt? +[BNK1_3] +Er ist verrückt geworden! -[SALS5BD:SALS5] -Paulie trifft sich mit den Forellis, +[BNK1_4] +Wer zum Teufel sind Sie? -[SALS5BE:SALS5] -um 'nen Waffenstillstand auszuhandeln. +[BNK1_5] +Wo ist Ihre Dienstmarke? -[SALS5BF:SALS5] -Mit dem Apparat im Van kannst du Paulies Auto fernsteuern +[BNK1_6] +Da sind sie! Feuer frei! -[SALS5BG:SALS5] -und ihnen dazwischenfunken. +[MOB_24A] +Hallo, spricht da Mr. Vercetti? -[SALS5CA:SALS5] -Hä?! +[MOB_24B] +Ja. -[SALS5CC:SALS5] -Großer Gott, Hilfe! +[MOB_24C] +Hier Cortez. Sie waren bei meiner Party. -[SALS5CD:SALS5] -Aus dem Weg! +[MOB_24D] +Ja. Ich erinnere mich. -[SALS5CF:SALS5] -Helft mir doch! +[MOB_24E] +Mr. Vercetti, es war höchst unglücklich, was da bei der Abwicklung Ihres Geschãfts vorgefallen ist. -[SALS5CG:SALS5] -Mein Auto ist besessen! +[MOB_24F] +Ich weiß. -[SALS5CE:SALS5] -Die Karre will mich umbringen! +[MOB_24G] +Sie sollen wissen, dass ich und meine Leute alles tun, um der Sache auf den Grund zu gehen. -[SALS5CB:SALS5] -Hey, was ist denn jetzt los? +[MOB_24H] +Falls Sie mit mir persönlich sprechen wollen, finden Sie mich auf dem Schiff. Guten Tag, Senor. -{=================================== MISSION TABLE SALS6 ===================================} +[BNK2_6] +Der Typ ist geisteskrank! -[SALS601:SALS6] -~w~Sal hat ein ~b~Boot ~w~für dich am Südwestpier liegen. Fang den Klugscheißer ab. +[ANGEL] +Angel -[SALS602:SALS6] -~w~Er fährt entlang der Küste. Schnapp ~r~ihn! +[CUBJET] +Kubanischer Jetmax -[SALS603:SALS6] -~r~Er ~w~fährt zu Franco Forelli! +[SANDKIN] +Sandking -[SALS604:SALS6] -~r~Der Klugscheißer hat Fort Staunton erreicht. +[POLMAV] +Polizei-Maverick -[SALS605:SALS6] -~r~Er ist entkommen! +[BOXVILL] +Boxville -[SALS606:SALS6] -~r~Er ~w~entkommt zu Fuß! +[BENSON] +Benson -[SALS607:SALS6] -~w~Er entkommt in einem ~r~gestohlenen Auto! +[HOTRINA] +Hotring Racer -[SALS608:SALS6] -~r~Ohne Boot kannst du ihn nicht verfolgen! +[HOTRINB] +Hotring Racer -[SALS6AA:SALS6] -Hallo. +[BLOODRA] +Chaos-Derby Banger -[SALS6AC:SALS6] -Forelli-Sindacco-Fehde. +[BLOODRB] +Chaos-Derby Banger -[SALS6AD:SALS6] -Er ist jetzt zu Franco Forelli unterwegs. +[MAFIACR] +Mafia Cruiser -[SALS6AE:SALS6] -Für uns ist es von großem Vorteil, wenn Franco nichts erfährt +[COP_M2] +'EINSATZ IN VICE CITY' -[SALS6AF:SALS6] -und dieser Krieg weitergeht. +[COP_M3] +'DONNER ÜBER VICE CITY' -[SALS6AG:SALS6] -Mach das Plappermaul unschädlich. +[BNK3_2] +Ich fahre nicht für dich, niemals. Das erzãhle ich in der Therapie. -[SALS6AH:SALS6] -Wird erledigt, Sal. +[FEM_SL1] +Datei 1 nicht vorhanden -[SALS6AB:SALS6] -Toni, so'n Klugscheißer hat rausgekriegt, dass die sizilianische Mafia hinter der Forelli-Sindacco-Fehde steckt. +[FEM_SL2] +Datei 2 nicht vorhanden -[SLS6_20:SALS6] -~w~Er will zurück zu Franco Forelli, erledige ~r~ihn ~w~! +[FEM_SL3] +Datei 3 nicht vorhanden -[SLS6_21:SALS6] -~w~Erledige ~r~ihn ~w~! +[FEM_SL4] +Datei 4 nicht vorhanden -{=================================== MISSION TABLE NEDS1 ===================================} +[FEM_SL5] +Datei 5 nicht vorhanden -[NEDS1_1:NEDS1] -Das FBI ist unterwegs, um einen gefälschten Bericht über Spitzensportler in Empfang zu nehmen. +[FEM_SL6] +Datei 6 nicht vorhanden -[NEDS1_2:NEDS1] -Gelangt der Bericht in die Hände des FBI, landen unschuldige Menschen im Knast. +[FEM_SL7] +Datei 7 nicht vorhanden -[NEDS1_3:NEDS1] -Du sollst den Bericht abfangen und mir bringen, damit ich ihn sicher verwahren kann. +[FEM_SL8] +Datei 8 nicht vorhanden -[NEDS1_4:NEDS1] -Du benötigst ein FBI-Fahrzeug. +[FEA_CHA] +Tonausgabe wird auf STEREO umgeschaltet. Bitte warten... -[NEDS1_5:NEDS1] -Auf dem Highway wurde ein bewaffneter Raubüberfall vereitelt. Das FBI ist am Tatort. +[FEA_CHD] +Achtung! Sie schalten die Tonausgabe von STEREO auf DTS um. Bitte warten... -[NEDS1_6:NEDS1] -Klau ihr Auto und fahr zur Übergabestelle, ehe es zu spät ist. +[FEI_SEL] +Auswahl -[NEDS1_8:NEDS1] -Steig wieder ins ~b~FBI-Auto! +[FEI_BAC] +Zurück -[NEDS1_9:NEDS1] -Fahr zum ~y~Übergabeort. +[FEI_RES] +Weiter -[NEDS111:NEDS1] -Häng die Cops ab! +[FEI_NAV] +Navigieren -[NEDS113:NEDS1] -Ich hab den versprochenen Bericht. +[FEI_BTX] +/-Taste - -[NEDS114:NEDS1] -Hä? Hier ist schon ein Agent!? +[FEI_BTT] +"-Taste - -[NEDS115:NEDS1] -Noch ein FBI-Auto? Moment! Sie sind ein Hochstapler! +[FEI_STA] +START-Taste - -[NEDS116:NEDS1] -Stoppe den ~r~Informanten! +[FEI_BTD] +; = > < - -[NEDS117:NEDS1] -Hol dir den ~g~Bericht. +[FEI_STO] +Stop -[NEDS118:NEDS1] -Bring den Bericht zur ~y~Liberty Tree Redaktion. +[MOB_68A] +Tommy, Alter, ich hab eine Überraschung für dich. -[NEDS119:NEDS1] -~r~Das FBI-Auto kannst du dir abschminken. +[MOB_68B] +Ich bin im Aufnahmestudio mit ein paar super Musikern. -[NEDS120:NEDS1] -~r~Du bist zu spät gekommen! Der Informant hat dem FBI den Bericht gegeben! +[MOB_68C] +Warum kommst du nicht kurz vorbei? -[NEDS121:NEDS1] -Gute Arbeit, Toni. Gott findet Wohlgefallen an dir. +[MOB_68D] +Kannst dir denken, dass es sich lohnt, oder? Bis dann. -[NEDS122:NEDS1] -Bei mir gerät er nicht in falsche Hände. +[OUTFT1] +Straße -[NEDS123:NEDS1] -Tschüs. +[OUTFT2] +Abendgarderobe -[NEDS124:NEDS1] -~r~Der Bericht ist im Eimer! +[OUTFT3] +Overall -[NEDS1AA:NEDS1] -Vergib mir, Vater, denn ich habe gesündigt... +[OUTFT4] +Country Club -[NEDS1AB:NEDS1] -Scheiße, der Teufel hat dich am Wickel, Antonio. +[OUTFT5] +Havana -[NEDS1AE:NEDS1] -Ein armer Sünder hat gebeichtet, einen Dopingbericht über Spitzensportler frei erfunden zu haben. +[OUTFT6] +Cop -[NEDS1AF:NEDS1] -Wenn du verhinderst, dass er ihn dem FBI übergibt, wären die Karrieren Unschuldiger gerettet. +[OUTFT7] +Bankrãuber -[NEDS1AG:NEDS1] -Wird erledigt, Vater. +[OUTFT8] +Freizeit -[NEDS1BA:NEDS1] -Sie sind früh da. +[OUTFT9] +Mr. Vercetti -[NEDS1BB:NEDS1] -Ich kenne Sie nicht. Wo ist John-O? +[OUTFT10] +Trainingsanzug -[NEDS1BC:NEDS1] -John-O? Er konnte nicht kommen. +[OUTFT13] +MC Tommy -[NEDS1BD:NEDS1] -Hey, da ist John-O! +[CAR_AS1] +AUTOHAUS ERWORBEN -[NEDS1BE:NEDS1] -Her damit! +[CAR_AS2] +~g~Sunshine Autos generiert nun bis zu $~1~ Einkünfte. Hol dir das Geld regelmãßig ab. -[NEDS1BF:NEDS1] -Scheiße! +[BUYSAVE] +~g~Außerhalb einer Mission kannst du dein Spiel hier umsonst speichern. -[NEDS1AD:NEDS1] -Äh, Letzteres ist eher meine Kragenweite... +[BUYGARG] +~g~Du kannst in dieser Garage auch Autos abstellen. -[NEDS1AC:NEDS1] -Du kannst also entweder Ave Marias beten oder die Drecksarbeit des Herrn verrichten. +[STRPBUY] +Pole Position Club gekauft: $ ~1~ -[NEDS1_7:NEDS1] -Begib dich zum Tatort und klau ein ~b~FBI-Auto~w~. Komm dann vor ~1~:~1~ zum Treffpunkt. +[STRP_R3] +Drücke R3, um den Pole Position Club zu kaufen. Preis: $~1~ -[NEDS125:NEDS1] -Fahr zum Tatort und klau einen ~b~FBI-Wagen~w~, dann sieh zu, dass du vor 0~1~:~1~ Uhr den Treffpunkt erreichst. +[NBMN_R3] +Drücke R3, um Elswanko Casa zu kaufen. Preis: $~1~ -[NEDS126:NEDS1] -Fahr zum Tatort und klau einen ~b~FBI-Wagen~w~, dann sieh zu, dass du vor 0~1~:0~1~ Uhr den Treffpunkt erreichst. +[GA_4] +Autobomben kosten $1000 pro Stück. -[NEDS127:NEDS1] -Fahr zum Tatort und klau einen ~b~FBI-Wagen~w~, dann sieh zu, dass du vor ~1~:0~1~ Uhr den Treffpunkt erreichst. +[GA_5] +In deinem Wagen ist schon eine Autobombe. -{=================================== MISSION TABLE NEDS2 ===================================} +[GA_6] { reVC update } +Park die Karre, mach sie durch Drücken der ~h~~k~~VEHICLE_FIREWEAPON~~w~ scharf und dann HAU AB! -[NEDS2_1:NEDS2] -KEIN(E) +[GA_7] { reVC update } +Mach die Bombe mit der ~h~~k~~VEHICLE_FIREWEAPON~~w~ scharf. Dann geht sie hoch, wenn der Wagen angelassen wird. -[NEDS2AA:NEDS2] -Vergib mir, Vater, denn ich habe gesündigt. +[GA_6B] { reVC update } +Park die Karre, mach sie durch Drücken der ~h~~k~~VEHICLE_FIREWEAPON~~w~ scharf und dann HAU AB! -[NEDS2AB:NEDS2] -Heilige Kacke, Toni, was hast du jetzt angestellt? +[GA_7B] { reVC update } +Mach die Bombe mit der ~h~~k~~VEHICLE_FIREWEAPON~~w~ scharf. Dann geht sie hoch, wenn der Wagen angelassen wird. -[NEDS2AC:NEDS2] -Sie fluchen, Vater. +[MOB_70A] +Tommy, ich bin's, Colonel Cortez. Hören Sie, Sie sind doch ein Mann, der Dinge zu erledigen weiß. -[NEDS2AD:NEDS2] -Stimmt. Ave Maria, voll der Dingsbums. +[MOB_70B] +Sie finden mich auf dem Boot. -[NEDS2AE:NEDS2] -Ein Gestrauchelter hat gebeichtet, Diamantenhehler zu sein. +[PICK2] +.357 in Verstecken angeliefert! -[NEDS2AF:NEDS2] -Schick ihn in die ewige Erlösung, schnapp dir die Klunker, dann gebe ich sie dem Besitzer zurück. +[PICK3] +Kettensãgen in Verstecken angeliefert! -[NB2_2:NEDS2] -Hol dir den ~g~Koffer~w~ und leg alle Gang-Mitglieder um. +[PICK4] +Flammenwerfer in Verstecken angeliefert! -[NB2_3:NEDS2] -Bring den Koffer zur ~y~Liberty Tree Redaktion. +[PICK5] +.308 Prãzisionsgewehr in Verstecken angeliefert! -[NB2_4:NEDS2] -Hol dir den ~g~Koffer! +[PICK6] +Mini-Kanonen in Verstecken angeliefert! -[NB2_1:NEDS2] -Das ist 'ne Falle! +[PICK7] +Raketenwerfer in Verstecken angeliefert! -[NB2_6:NEDS2] -Erledige alle ~r~Wachen! +[PICK8] +Sea Sparrow jetzt bei Vercetti Estate verfügbar! -[NB2_7:NEDS2] -Zerstöre den ~r~Helikopter! +[PICK9] +Panzer jetzt in Army-Kaserne verfügbar! -[NB2_5:NEDS2] -Schalte den ~r~Helikopter~w~ und die ~r~Wachen~w~ aus und hol dir den ~g~Koffer. +[PICK10] +Hunter jetzt in Army-Kaserne verfügbar! -{=================================== MISSION TABLE NEDS3 ===================================} +[CLOTH1] +Abendgarderobe bei Rafaels in Ocean Beach erhãltlich. -[NEDS3AA:NEDS3] -Vergib mir, Vater, denn ich habe gesündigt. +[CLOTH2] +Straßenkleidung in Verstecken angeliefert. -[NEDS3AB:NEDS3] -Toni, verglichen mit deinen degenerierten Mitbürgern bist du ein Heiliger! +[CLOTH3] +Overall bei 'Tooled Up' im North Point Einkaufszentrum erhãltlich. -[NEDS3AC:NEDS3] -Ihre Autos pumpen Satans Darmwinde in die Lungen unserer Kinder! Sie verpesten den Garten Eden! +[CLOTH4] +Country Club-Bekleidung beim Golf Club in Leaf Links erhãltlich. -[NEDS3AD:NEDS3] -Zeige diesen Sündern, dass ihr Tun falsch ist! +[CLOTH5] +Havana-Outfit bei 'Little Havana Streetwear' in Little Havana erhãltlich. -[NEDS3_1:NEDS3] -Fahr mit dem Feuerwehrauto durch die Stadt und verursache möglichst viele Unfälle und Karambolagen. +[CLOTH6] +Polizeiuniform bei Polizeistation in Washington Beach erhãltlich. -[NEDS3_2:NEDS3] -~w~Klau das ~b~Feuerwehrauto. +[CLOTH7] +Freizeitbekleidung bei 'Gash' im North Point Einkaufszentrum erhãltlich. -[NEDS3_3:NEDS3] -~w~Du hast ~1~ Sekunden, um zu dem ~b~Feuerwehrauto~w~ zurückzukehren. +[CLOTH8] +Mr. Vercetti-Outfit bei 'Collar & Cuffs'in Ocean Beach erhãltlich. -[NEDS3_4:NEDS3] -Wertung +[CLOTH9] +Trainingsanzug bei 'Jocksport' in Downtown erhãltlich. -[NEDS3_5:NEDS3] -Fahr los und verursache möglichst viele Unfälle, Karambolagen, Schaden und Chaos! +[CLOTH10] +Bankrãuber-Outfit beim Malibu Club in Vice Point erhãltlich. -[NEDS3_6:NEDS3] -Fußgänger hinüber! +[MOB_62A] +Tommy, hier Ricardo Diaz. Ich wollte dir danken, dass du mich gerettet hast. -[NEDS3_7:NEDS3] -Fahrzeug versunken! +[MOB_62B] +Ich hab den Trottel von Cortez gefragt. Er meint, du wãrst ein Mann für alle Fãlle. Komm doch mal bei mir vorbei. -[NEDS3_8:NEDS3] -Fahrzeug zerstört! +[MOB_62C] +Ich brauche einen Kerl wie dich. Ich hab nãmlich nur Schwachköpfe. -[NEDS3_9:NEDS3] -Fahrzeug-Salto! +[MOB_62D] +Nur lauter Schwachköpfe. Ich mache dich schwer reich. -[NEDS310:NEDS3] -~r~Das Feuerwehrauto wurde zerstört. +[GOAWAY2] +Komm wieder, wenn du die Biker Gang-Missionen abgeschlossen hast. -[NEDS311:NEDS3] -360-Grad-Dreher! +[COL2_9] +Du amerikanischer Idiot! Sie sind dir hierher gefolgt! -[NEDS312:NEDS3] -720-Grad-Dreher! +[LOADCOL] +Lade... -[NEDS313:NEDS3] -1080-Grad-Dreher! +[STFT_17] +Schnellste Zeit bei 'PCJ Rallye' -[NEDS314:NEDS3] -~r~Du hast das Feuerwehrauto verlassen. +[STFT_18] +Schnellste Zeit bei 'Krasses Gelãnde' -[NEDS315:NEDS3] -Überschlagenes Fahrzeug! +[STFT_19] +Schnellste Zeit bei 'Teststrecke' -[NEDS316:NEDS3] -3 Zusammenstöße in Folge! +[NEW_REC] +Neuer Rekord!! ~1~ Minuten und ~1~ Sekunden. -[NEDS317:NEDS3] -4 Zusammenstöße in Folge! +[BMX_HOW] +~g~Fahr zwei Runden auf der Gelãndemotorradstrecke. ~y~Passiere dabei ~g~die ~y~CHECKPOINTS~g~! -[NEDS318:NEDS3] -5 Zusammenstöße in Folge! +[BMXREW1] +~g~Jedes Mal wenn du deine bisherige Bestzeit für die zwei Runden verbesserst, -[NEDS319:NEDS3] -Bonus für Massenkarambolage! +[BMXREW2] +~g~bekommst du eine noch höhere ~y~BELOHNUNG~g~! -[NEDS320:NEDS3] -~r~Du hast die nötige Wertung nicht rechtzeitig erzielt. +[BMXRAIN] +~g~Sieht nach Regen aus... -[NEDS321:NEDS3] -Bonus für Biker-Sturz! +[ITBEG] +Am Anfang... -[NEDS322:NEDS3] -Bonus für krassen Biker-Sturz! +[NBMNBUY] +El Swanko Casa gekauft: $ ~1~ -[NEDS323:NEDS3] -Bonus für Himmelfahrt! +[LNKVBUY] +Links View Apartment gekauft: $ ~1~ -[NEDS324:NEDS3] -Bonus für extra hohe Himmelfahrt! +[HYCOBUY] +Hyman Condo gekauft: $ ~1~ -[NEDS325:NEDS3] -~w~Du hast weniger als 1 Sekunde, um zu dem ~b~Feuerwehrauto~w~ zurückzukehren. +[BUYGARS] +~g~Du kannst in diesen Garagen auch Autos abstellen. -[NEDS326:NEDS3] -Glückwunsch! Geschafft! Du hast noch ~1~ Sekunden Restzeit. +[OCHEBUY] +Ocean Heights Apartment gekauft: $ ~1~ -[NEDS327:NEDS3] -~w~Zerstöre das ~r~Feuerwehrauto.~w~ Hinterlasse keine Spuren. +[WASHBUY] +1102 Washington Street gekauft: $ ~1~ -[NEDS328:NEDS3] -Bonuspunkte gibt es für spektakuläre Zusammenstöße, Saltos, schleudernde oder zerstörte Fahrzeuge. +[VCPTBUY] +3321 Vice Point gekauft: $ ~1~ -[NEDS329:NEDS3] -Fahrzeug-Salto x ~1~ +[HELP6_C] +Drücke die ~h~~k~~VEHICLE_HANDBRAKE~~w~, um die Handbremse anzuziehen. -[NEDS330:NEDS3] -Fahrzeug überschlagen x ~1~ +[HELP2_A] +Drücke die ~h~~k~~PED_SPRINT~~w~, um zu ~h~sprinten. -[NEDS332:NEDS3] -~w~Du hast 1 Sekunde, um zu dem ~b~Feuerwehrauto~w~ zurückzukehren. +[HELP4_A] +Drücke die ~h~~k~~VEHICLE_ACCELERATE~~w~, um zu beschleunigen. -[NEDS333:NEDS3] -Glückwunsch! NEUE BESTZEIT! Noch ~1~ Sekunden Restzeit. +[HELP5_A] +Drücke die ~h~~k~~VEHICLE_BRAKE~~w~, um zu bremsen, oder um zurückzusetzen, wenn das Fahrzeug steht. -[NEDS334:NEDS3] -~w~Zerstöre jetzt das Feuerwehrauto. Hinterlasse keine Spuren. +[HELP8_A] +Drücke die ~h~~k~~PED_SNIPER_ZOOM_IN~~w~, um an das Ziel heranzuzoomen und die ~x~/-Taste~w~,um herauszuzoomen. -[NEDS335:NEDS3] -180-Grad-Dreher! +[PBOAT_1] { reVC update } +Drücke die~h~ ~k~~VEHICLE_FIREWEAPON~~w~, um die Bordkanonen abzufeuern. -[NEDS337:NEDS3] -Fahr mit dem Feuerwehrauto durch die Stadt und verursache bis ~1~:~1~ Uhr möglichst viele Unfälle, Karambolagen und Chaos. +[SEG3_4] { reVC update } +~g~Um Bomben aufzunehmen, steuere den RC Raider einfach nahe an sie heran. Um eine abzuwerfen, drücke die ~h~~k~~VEHICLE_FIREWEAPON~~g~-Taste. -[NEDS338:NEDS3] -Fahr mit dem Feuerwehrauto durch die Stadt und verursache bis ~1~:0~1~ Uhr möglichst viele Unfälle, Karambolagen und Chaos. +[RCR1_3] { reVC update } +~g~Wenn du diese Mission abbrechen willst, drücke die ~h~~k~~VEHICLE_FIREWEAPON~~g~, um dein Auto zu sprengen. -[NEDS339:NEDS3] -Fahr mit dem Feuerwehrauto durch die Stadt und verursache bis 0~1~:~1~ Uhr möglichst viele Unfälle, Karambolagen und Chaos. +[HELP32] { reVC update } +Dann feuere mit der ~h~~k~~VEHICLE_FIREWEAPON~. -[NEDS340:NEDS3] -Fahr mit dem Feuerwehrauto durch die Stadt und verursache bis 0~1~:0~1~ Uhr möglichst viele Unfälle, Karambolagen und Chaos. +[HELP33] { reVC update } +Dann feuere mit der ~h~~k~~VEHICLE_FIREWEAPON~. -[NEDS341:NEDS3] -Verursache bis ~1~:~1~ Uhr möglichst viele Unfälle, Karambolagen und Chaos. +[TTUTOR] +Drücke die ~h~~k~~TOGGLE_SUBMISSIONS~~w~, um Taxi-Missionen an- oder abzuschalten. -[NEDS342:NEDS3] -Verursache bis ~1~:0~1~ Uhr möglichst viele Unfälle, Karambolagen und Chaos. +[TTUTOR2] +Drücke die ~h~~k~~TOGGLE_SUBMISSIONS~~w~, um Taxi-Missionen an- oder abzuschalten. -[NEDS343:NEDS3] -Verursache bis 0~1~:~1~ Uhr möglichst viele Unfälle, Karambolagen und Chaos. +[FTUTOR] +Drücke die ~h~~k~~TOGGLE_SUBMISSIONS~~w~, um Feuerwehrwagen-Missionen an- oder abzuschalten. -[NEDS344:NEDS3] -Verursache bis 0~1~:0~1~ Uhr möglichst viele Unfälle, Karambolagen und Chaos. +[FTUTOR2] +Drücke die ~h~~k~~TOGGLE_SUBMISSIONS~~w~, um Feuerwehrwagen-Missionen an- oder abzuschalten. -[NEDS331:NEDS3] -Verursache möglichst viele Unfälle, Karambolagen und Chaos! +[CTUTOR] +Drücke die ~h~~k~~TOGGLE_SUBMISSIONS~~w~, um Bürgerwehr-Missionen zu aktivieren oder zu deaktivieren. -{=================================== MISSION TABLE NEDS4 ===================================} +[CTUTOR2] +Drücke die ~h~~k~~TOGGLE_SUBMISSIONS~~w~, um Bürgerwehr-Missionen zu aktivieren oder zu deaktivieren. -[NEDS4_1:NEDS4] -KEIN(E) +[HELP8_B] +Drücke die~h~ ~k~~PED_SNIPER_ZOOM_IN~~w~, um ~h~an das Ziel heranzuzoomen ~w~und die~h~ ~k~~PED_SNIPER_ZOOM_OUT~~w~, um ~h~herauszuzoomen~w~. -[NEDS4_2:NEDS4] -~w~Die 3 Promis wollen zu einem Radiosender in der Innenstadt, um vor der Premiere heute Abend ein Interview zu geben. +[ATUTOR3] +Drücke die ~h~~k~~TOGGLE_SUBMISSIONS~~w~, um Krankenwagen-Missionen an- oder abzuschalten. -[NEDS4_3:NEDS4] -~w~Die Schauspielerin Faith W. kommt im Privathubschrauber vom Francis Airport. +[GUN_H1] +~w~Drück die~h~ ~k~~PED_SPRINT~~w~, um zu kaufen. ~w~Drück die~h~ ~k~~VEHICLE_ENTER_EXIT~~w~, um zu gehen. -[NEDS4_4:NEDS4] -~w~Der Schauspieler und Gangster DB-P kommt im Boot von Portland. +[PU_CF3] { reVC update } +Drück die ~h~~k~~PED_ANSWER_PHONE~~w~, um die augenblickliche Waffe in diesem Slot auszutauschen. -[NEDS4_5:NEDS4] -~w~Der alternde, alkoholkranke Schauspieler Black Lightman kommt mit der Limousine von der Entzugsklinik. +[PU_CF4] { reVC update } +Drück die ~h~~k~~PED_ANSWER_PHONE~~w~, um die augenblickliche Waffe in diesem Slot auszutauschen. -[NEDS4_8:NEDS4] -~w~Faith ausgeschaltet. +[HELP9_B] +Drücke die~h~ ~k~~PED_FIREWEAPON~~w~, um das Prãzisionsgewehr ~h~abzufeuern~w~. -[NEDS4_9:NEDS4] -~w~DB-P ausgeschaltet. +[HELP37] +Wenn du doch nicht in ein Auto einsteigen willst, das du im Begriff bist, zu klauen, drück die ~h~~k~~PED_SPRINT~. -[NEDS410:NEDS4] -~w~Black Lightman ausgeschaltet. +[HELP6_A] +Drücke die ~h~~k~~VEHICLE_HANDBRAKE~~w~, um die Handbremse anzuziehen. -[NEDS411:NEDS4] -~w~Alle 3 Promis sind ausgeschaltet. Begib dich zurück zur ~y~Kirche~w~ und melde es dem Beichtvater. +[HELP6_D] +Drücke die ~h~~k~~VEHICLE_HANDBRAKE~~w~, um die Handbremse anzuziehen. -[NEDS412:NEDS4] -~r~Faith hat den Radiosender erreicht! +[HELP26] +Drücke die ~h~~k~~VEHICLE_ENTER_EXIT~~w~, um in ein Fahrzeug ein- oder auszusteigen. -[NEDS413:NEDS4] -~r~DB-P hat den Radiosender erreicht! +[HELP27] +Drücke ~h~~k~~VEHICLE_TURRETUP~~w~ oder ~h~~k~~VEHICLE_TURRETDOWN~~w~ um dein Gewicht auf einem Motorrad zu verlagern. -[NEDS414:NEDS4] -~r~Black Lightman hat den Radiosender erreicht! +[HELP28] +Drücke ~h~~k~~VEHICLE_TURRETUP~~w~ oder ~h~~k~~VEHICLE_TURRETDOWN~~w~ um dein Gewicht auf einem Motorrad zu verlagern. -[NEDS415:NEDS4] -~w~Er wird in einen kugelsicheren Patriot umsteigen. +[HELP35] +Benutze die ~h~~k~~GO_LEFT~~w~ oder ~h~~k~~GO_RIGHT~~w~ um das Fahrzeug zu steuern. -[NEDS417:NEDS4] -~w~Der Patriot ist kugelsicher. +[HELP36] +Benutze die ~h~~k~~GO_LEFT~~w~ oder ~h~~k~~GO_RIGHT~~w~ um das Fahrzeug zu steuern. -[NEDS418:NEDS4] -~w~Gib auf den Schützen Acht. +[HELP42] +Folge dem ~q~rosa Symbol~w~, um zum Hotel zu kommen. -[NEDS421:NEDS4] -~w~Phil Cassidy's Waffenladen ist als Fähnchen auf dem Radar sichtbar. +[HELP19] +Stell dich in die ~q~rosa Markierung~w~, um weiterzumachen. -[NEDS4AA:NEDS4] -Vergib mir, Vater, ich habe wieder gesündigt. +[HELP1] +Halte in der Mitte der ~q~rosa Markierung. -[NEDS4AB:NEDS4] -Und wieder sollst du Erlösung finden, mein Sohn. +[HELP12] +Geh ins Zentrum der ~q~rosa Markierung~w~, um eine Mission zu starten. -[NEDS4AC:NEDS4] -Der Prominentenkult nimmt Auswüchse an! +[SEG3_6] +~g~Um eine Zielzone zu treffen, musst du die Bombe innerhalb der ~q~rosa Markierung~g~ abwerfen. Die Reihenfolge spielt dabei keine Rolle. -[NEDS4AD:NEDS4] -Was sind das für Huren, die im Radio schwafeln, statt redlichen Zeitungsreportern Exklusivinterviews zu geben? +[S_PROMP] +Außerhalb einer Mission kannst du dein Spiel speichern, indem du das ~h~Cassetten-Symbol aufnimmst. -[NEDS4AF:NEDS4] -Vernichte diese Götzen! +[HELP16] +Geh durch die Eingangstür, um das ~h~Ocean View Hotel~w~ zu betreten. -[NEDS4BA:NEDS4] -Ich habe getan, was Sie verlangt haben. +[HELP43] +~g~Begib dich zum ~h~Ocean View Hotel~g~ am Ocean Drive. -[NEDS4BB:NEDS4] -Prima! Die Zeitungsauflage hat sich seit deiner Bekehrung verdreifacht. +[HELI_F1] +~r~Heli-Ceckpoint-Mission abgebrochen! -[NEDS4BC:NEDS4] +[AMMUHLP] +Wenn du Waffen brauchst, geh zu ~h~AmmuNation~w~. Das ~h~Pistolensymbol~w~ auf dem Radar zeigt dir den Weg. + +[HELI_1] +Downtown Heli-Checkpoint + +[HELI_2] +Ocean Beach Heli-Checkpoint + +[HELI_3] +Vice Point Heli-Checkpoint + +[HELI_4] +Little Haiti Heli-Checkpoint + +[FST_MFR] +Lieblings-Radiosender + +[FST_LFR] +Unbeliebtester Radiosender + +[FEI_HOL] +Halten + +[FEI_ZOO] +Zoom + +[FEI_BTR] +> < - + +[FEI_NA] +Nicht verfügbar + +[MESA] +Mesa Grande + +[STRP_NO] +Zurzeit kannst du die Stripper-Bar nicht kaufen. Komm spãter wieder. + +[CHSE] +VERFOLGUNGSJAGD + +[NBMN_L] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um El Swanko Casa zu kaufen. Preis: $~1~ + +[NBMN_T] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um El Swanko Casa zu kaufen. Preis: $~1~ + +[NBMN_C] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um El Swanko Casa zu kaufen. Preis: $~1~ + +[LNKV_L] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um das Links View Apartment zu kaufen. Preis: $~1~ + +[LNKV_T] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um das Links View Apartment zu kaufen. Preis: $~1~ + +[LNKV_C] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um das Links View Apartment zu kaufen. Preis: $~1~ + +[HYCO_L] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um das Hyman Condo zu kaufen. Preis: $~1~ + +[HYCO_T] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um das Hyman Condo zu kaufen. Preis: $~1~ + +[HYCO_C] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um das Hyman Condo zu kaufen. Preis: $~1~ + +[OCHE_L] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um das Ocean Heights Apartment zu kaufen. Preis: $~1~ + +[OCHE_T] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um das Ocean Heights Apartment zu kaufen. Preis: $~1~ + +[OCHE_C] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um das Ocean Heights Apartment zu kaufen. Preis: $~1~ + +[WASH_L] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um 1102 Washington Street zu kaufen. Preis: $~1~ + +[WASH_T] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um 1102 Washington Street zu kaufen. Preis: $~1~ + +[WASH_C] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um 1102 Washington Street zu kaufen. Preis: $~1~ + +[VCPT_L] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um 3321 Vice Point zu kaufen. Preis: $~1~ + +[VCPT_T] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um 3321 Vice Point zu kaufen. Preis: $~1~ + +[VCPT_C] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um 3321 Vice Point zu kaufen. Preis: $~1~ + +[PRNT_L] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um die Druckerei zu kaufen. Preis: $~1~ + +[PRNT_T] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um die Druckerei zu kaufen. Preis: $~1~ + +[PRNT_C] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um die Druckerei zu kaufen. Preis: $~1~ + +[CAR_L] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um das Autohaus zu kaufen. Preis: $~1~ + +[CAR_T] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um das Autohaus zu kaufen. Preis: $~1~ + +[CAR_C] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um das Autohaus zu kaufen. Preis: $~1~ + +[PORN_L] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um das Filmstudio zu kaufen. Preis: $~1~ + +[PORN_T] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um das Filmstudio zu kaufen. Preis: $~1~ + +[PORN_C] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um das Filmstudio zu kaufen. Preis: $~1~ + +[ICE_L] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um die Eiscremefabrik zu kaufen. Preis: $~1~ + +[ICE_T] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um die Eiscremefabrik zu kaufen. Preis: $~1~ + +[ICE_C] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um die Eiscremefabrik zu kaufen. Preis: $~1~ + +[TAXI_L] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um das Taxiunternehmen zu kaufen. Preis: $~1~ + +[TAXI_T] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um das Taxiunternehmen zu kaufen. Preis: $~1~ + +[TAXI_C] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um das Taxiunternehmen zu kaufen. Preis: $~1~ + +[BANK_L] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um den Malibu Club zu kaufen. Preis: $~1~ + +[BANK_T] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um den Malibu Club zu kaufen. Preis: $~1~ + +[BANK_C] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um den Malibu Club zu kaufen. Preis: $~1~ + +[BOAT_L] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um die Bootswerft zu kaufen. Preis: $~1~ + +[BOAT_T] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um die Bootswerft zu kaufen. Preis: $~1~ + +[BOAT_C] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um die Bootswerft zu kaufen. Preis: $~1~ + +[STRP_L] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um den Pole Position Club zu kaufen. Preis: $~1~ + +[STRP_T] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um den Pole Position Club zu kaufen. Preis: $~1~ + +[STRP_C] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~, um den Pole Position Club zu kaufen. Preis: $~1~ + +[STOCK] +~r~nicht vorrãtig + +[HELP14] +Um das Büro des Anwalts zu finden, folge dem ~h~'L'~w~ auf dem Radar. + +[BOAT_AS] +~g~Die Bootswerft generiert nun bis zu $~1~ Einkünfte. Hol dir das Geld regelmãßig ab. + +[BOAT_A2] +BOOTSWERFT-MISSIONEN ERFÜLLT + +[BOAT_N] +Checkpoint Charlie + +[BOAT_P] +~g~Sammle die Pãckchen ein, ehe die Zeit um ist. + +[FEI_R1B] +R1- \ R2-Taste - + +[HELP9_A] +Drücke die ~h~~k~~PED_FIREWEAPON~~w~-Taste, um das Prãzisionsgewehr abzufeuern. + +[HELP21] +Drücke die ~h~~k~~VEHICLE_ENTER_EXIT~~w~-Taste, um in ein Fahrzeug ein- oder auszusteigen. + +[CREAM] +Stoff-Auslieferung + +[UMBERTO] +Café Robina + +[PU_CF1] +Drück die ~h~~k~~PED_ANSWER_PHONE~~w~-Taste, um diese Waffe aufzunehmen. Falls du schon eine Waffe von diesem Typ hast, wird sie durch die neue ersetzt. + +[FED_RDM] +KARTE & SYMBOLE + +[FEC_ILU] +Kamera invertieren : + +[NITRO] +Alle Taxis haben jetzt einen Jumper-Turbo! Du musst nur die Taste für die Hupe drücken. + +[RATNG53] +Windei + +[RATNG54] +Niete + +[RATNG55] +Hacker + +[RATNG56] +Mogelpaket + +[RATNG57] +Totaler Lügner + +[STHC_04] +High-Score beim Fußball-Hochhalten + +[STHC_05] +Bestes Hotring-Resultat + +[STFT_13] +Schnellste Zeit bei Downtown Heli-Checkpoint + +[STFT_14] +Schnellste Zeit Ocean Beach Heli-Checkpoint + +[STFT_15] +Schnellste Zeit bei Vice Point Heli-Checkpoint + +[STFT_16] +Schnellste Zeit bei Little Haiti Heli-Checkpoint + +[STFT_21] +Schnellste Zeit bei Hotring + +[STFT_22] +Schnellste Rundenzeit bei Hotring + +[STFT_20] +Schnellste Zeit bei 'Pylonen-Rallye' + +[HELP44] +Halte in der ~q~rosa Markierung. + +[HELP45] +Drücke die ~h~~k~~PED_DUCK~~w~ um dich zu ducken. Dadurch erhöht sich die Treffsicherheit der Waffen, die du hãltst. + +[RCR1_5] +RC Bandit-Rennen + +[RCPL1_7] +RC Baron-Rennen + +[RCH1_11] +RC Raider Checkpoint-Jagd + +[FEA_CTD] +Achtung! Für diesen Modus muss DTS-kompatible Hardware angeschlosen sein. Fortfahren? + +[FEM_STE] +AUF STEREO EINSTELLEN + +[FEM_UDY] +AUF DTS EINSTELLEN + +[GREET] +Grüße aus... + +[LANCE_1] +Hey, Mann, fahr vorsichtiger! + +[LANCE_2] +Hey, pass doch auf, was du machst! + +[LANCE_3] +Hey, wo fahren wir jetzt hin? + +[LANCE_4] +Was machen wir jetzt? + +[LAW4_15] +Mehr Geld! + +[MERC_5] +Schönes Auto, Mr. Vercetti. + +[MERC_26] +SCHNELLER, SCHNELLER, SCHNELLER! + +[MERC_27] +Vorsichtig, Tommy, ich hab mir erst letzten Monat die Nase korrigieren lassen. + +[MERC_28] +Tommy, fahr vorsichtig. + +[MERC_29] +Tommy, fahr langsamer. + +[MERC_30] +Tommy, bring jemand anders um, aber bitte nicht mich. + +[MERC_31] +Tommy, Baby, bring mich nicht um! + +[MERC_32] +Tommy, ich bin froh, dass du dieses Auto gestohlen hast! + +[MERC_40] +Ich hatte so viel Spaß. + +[MERC_43] +Adios, mein Engel. + +[MERC_44] +Und mach schön weiter Bodybuilding, hörst du? + +[MERC_45] +Ciao, mein Hübscher. + +[COL5_17] +Oh, Gott, sie haben einen Helikopter! + +[COL5_18] +Schießt den Helikopter ab! + +[COL5_19] +Tommy, schießen Sie den Helikopter ab! + +[COL5_20] +Da kommt er wieder! Schießt den Helikopter ab! + +[COL5_21] +Sieh dir diesen riesigen Helikopter an! + +[COL5_22] +Da kommt er wieder! + +[FEA_DSM] +Achtung! Dieses Spiel ist auf DTS-Tonausgabe eingestellt. Dazu muss DTS-kompatible Hardware angeschlossen sein. Bitte wãhlen Sie, ob Sie mit DTS oder STEREO-Tonausgabe fortfahren wollen. + +[STFT_23] +Schnellste Zeit bei Checkpoint Carlie + +[HELP50] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~-Taste, um die Spielerfigur von hinten zu sehen. + +[HELP51] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~-Taste, um die Spielerfigur von hinten zu sehen. + +[HELP52] +Drücke die ~h~~k~~PED_ANSWER_PHONE~~w~-Taste, um die Spielerfigur von hinten zu sehen. + +[HELP53] +Benutze die ~h~~k~~PED_CYCLE_WEAPON_LEFT~~w~-Taste und die ~h~~k~~PED_CYCLE_WEAPON_RIGHT~~w~-Taste, um zwischen deinen Waffen zu wechseln. + +[HELP46] +Es gibt acht verschiedene Waffentypen. + +[HELP47] +Du kannst von jedem Waffentyp immer nur eine bei dir tragen - also einen Typ Pistole, einen Typ Schrotflinte, usw. + +[HELP54] +~w~Preis: $~1~ ~r~Deine augenblickliche Waffe wird ersetzt, wenn du diese kaufst. + +[HELP2A2] +Drücke die ~h~~k~~PED_SPRINT~~w~-Taste, um zu ~h~sprinten. + +[HLPSN_A] +Das Prãzisionsgewehr ermöglicht dir, an dein Ziel heranzuzoomen und auf größere Distanz mit hoher Genauigkeit zu schießen. + +[HLPSN_B] +Halte die~h~ ~k~~PED_LOCK_TARGET~~w~-Taste gedrückt, um mit dem Prãzisionsgewehr zu ~h~zielen~w~. + +[HLPSN_C] +Halte die~h~ ~k~~PED_LOCK_TARGET~~w~-Taste gedrückt, um mit dem Prãzisionsgewehr zu ~h~zielen~w~. + +[HLPSN_D] +Drücke die ~h~~k~~PED_SNIPER_ZOOM_IN~~w~-Taste, um ~h~an das Ziel heranzuzoomen ~w~und die~h~ ~k~~PED_SNIPER_ZOOM_OUT~~w~,um ~h~herauszuzoomen~w~. + +[HLPSN_E] +Drücke die ~h~~k~~PED_FIREWEAPON~~w~-Taste, um das Prãzisionsgewehr ~h~abzufeuern~w~. + +[HLPSN_F] +Drücke die ~h~~k~~PED_FIREWEAPON~~w~-Taste, um das Prãzisionsgewehr ~h~abzufeuern~w~. + +[HLPSN_G] +Drücke die ~h~~k~~PED_FIREWEAPON~~w~-Taste, um das Prãzisionsgewehr ~h~abzufeuern~w~. + +[PLANE_H] +Benutze die ~h~~k~~VEHICLE_ACCELERATE~~w~-Taste, um zu beschleunigen. Links bzw. Rechts für Richtungswechsel. + +[PLANE_4] { reVC update } +{Benutze die ~h~~k~~VEHICLE_ACCELERATE~~w~-Taste, um zu beschleunigen. Links bzw. Rechts für Richtungswechsel.} +Benutze den rechten Analog-Stick, um zu beschleunigen. Ziehe den linken Analog-Stick, um zu steigen oder drücke ihn nach vorn, um zu sinken. Links bzw. Rechts für Richtungswechsel. + +[HELP55] +Drücke die ~h~~k~~PED_FIREWEAPON~~w~-Taste, um den Küchenchef anzugreifen. + +[STPR_8] +Pole Position Club + +[STPR_9] +3321 Vice Point + +[STPR_10] +Links View Apartment + +[STPR_11] +El Swanko Casa + +[STPR_12] +1102 Washington Street + +[STPR_13] +Ocean Heights Apartment + +[STPR_14] +Skumole Shack + +[STPR_15] +Hyman Condo + +[RCCANX] +~r~Flugzeug-Mission abgebrochen. + +[CLT_HL2] +Wenn du neue Kleider aufnimmst, werden dadurch Fahndungslevel von einem bis zwei Sternen annulliert. + +[CRED009] +MISSION DESIGN + +[CRED359] +LEE JOHNSON + +[CRED360] +HENDRIK LESSER + +[CRED361] +PASQUALE STACCHIOTTI + +[CRED362] +ENRIQUE FERNANDEZ + +[CRED363] +PAUL BYERS + +[CRED364] +MIKE EMENY + +[CRED365] +ROB DUNKIN + +[CRED366] +CHARLIE KINLOCH + +[CRED367] +KEVIN HOBSON + +[CRED368] +JIM CREE + +[MOB_66A] +Tommy, Tommy, Tommy, wieso bist du wieder zurückgekommen? + +[MOB_66B] +Ich hab dir doch gesagt, wir wollen dich hier nicht mehr sehen. + +[MOB_67A] +Tommy, ich glaube, du solltest dich hier nicht mehr blicken lassen, hörst du? + +[MOB_67B] +Die Haitianer sind nicht sehr gut auf dich zu sprechen. + +[MOB_18A] +Tommy, hier Paul. Wie geht's, Alter? Hey, ich dachte mir, das musst du hören... + +[MOB_18B] +Echt der Hammer. Du glaubst nicht, was mir für 'ne Puppe über den Weg gelaufen ist. + +[MOB_18C] +'ne Bordsteinschwalbe, oder sowas. Unten in Little Havana. + +[MOB_18D] +Sagt, sie heißt Mercedes oder so ãhnlich. + +[MOB_18E] +Wahnsinn, Alter. Die Puppe musst du dir geben. + +[MOB_18F] +Da würde 'nen Toter Hormonkoller kriegen. Sie sagt, ich wãr der beste, den sie je hatte. + +[MOB_18G] +Halt die Augen nach ihr offen. Bis dann. + +[MOB_72A] +Tommy, ich bin's, Lance. Du hãltst jetzt mal den Rand, Tommy, ich hab nãmlich keine Zeit für Geschwãtz. + +[MOB_72B] +Interessiert mich auch nicht, was du zu sagen hast. Warum auch? Ich bin dir doch sowieso scheißegal, stimmt's? + +[MOB_72C] +Du solltest dich mehr um mich kümmern. Mir einen fairen Anteil geben. Weißt du... + +[MOB_72D] +Tommy... hör mal, Mann, es tut mir leid. Nur... + +[MOB_72E] +ich werd schon mein Leben lang immer nur von oben herab behandelt, wie ein kleines Kind. + +[MOB_72F] +Mein Bruder hat das auch immer gemacht. Bitte, mein Alter, mach du das nicht. + +[MOB_72G] +Ich muss auflegen. + +[MOB_63A] +Tommy, hier Earnest. Earnest Kelly. + +[MOB_63B] +Wie geht's? + +[MOB_63C] +Ganz gut. Werd zum Laufen 'nen Stock brauchen, müsste aber bald wieder arbeiten können. + +[MOB_63D] +Gut. + +[MOB_63E] +Ich hab das mit Lance gehört. Was für ein Schwein, hã? + +[MOB_63F] +Ja. + +[MOB_63G] +Trau nie einem Mann, der im Pyjama auf der Straße herumlãuft. Gut, dass du ihn erledigt hast. Ich hoffe, es war nicht kurz und schmerzlos. + +[MOB_63H] +Eher nicht. Ich hãtte nur nicht gedacht, dass er so einer ist... + +[MOB_63I] +Tommy, für einen wildgewordenen Irren bist du ziemlich naiv. Ich bin bald wieder an der Arbeit, dann bring ich dir mal ein paar Sachen übers Leben bei, ok? + +[MOB_63J] +Lass dir Zeit, Earnest. Pass auf dich auf. + +[MOB_16A] +Tommy, hier Paul. Wie geht's, mein Freund? + +[MOB_16B] +Was willst du, Paul? Ich brauch keine getürkten Designer-Klamotten. + +[MOB_16C] +Sehr witzig. Du weißt, dass ich mit getürkter Ware nichts am Hut habe. Wollte nur hören, ob ich nicht 'ne Rolle in einem von deinen Filmen kriegen könnte. + +[MOB_16D] +In England habe ich damals viel einschlãgiges Zeug gedreht. Ich hab mehr zu bieten als du, mein Alter. + +[MOB_16E] +Paul, danke für das Angebot. Ich komm auf dich zurück. + +[MOB_16F] +Lass mich nicht hãngen. Denk dran, was ich alles für dich getan habe. + +[MOB_16G] +Das versuch ich ja grade zu vergessen. + +[MOB_17A] +Tommy Vercetti. Wie geht's, großer Meister? Man hört so einiges über dich. Bist jetzt 'ne große Nummer in der Stadt, hã? + +[MOB_17B] +Paul, du bist betrunken. + +[MOB_17C] +Nein, du Trottel, ich bin nicht betrunken. Hab mir nur ein paar Ladungen Stoff gegeben, war seit ein paar Tagen nicht im Bett. + +[MOB_17D] +Und du brauchst mich nicht dumm anzureden. Ich bin nicht irgendwer. Wer hat dir denn in dieser Stadt den Weg geebnet? Ich! + +[MOB_17F] +Tatsãchlich? + +[MOB_17G] +Komm mir nicht so! Ich hab dich mit den ganzen Leuten bekanntgemacht. Hab dir gezeigt, wie der Hase lãuft, hab alles mögliche für dich getan, und so dankst du es mir?! + +[MOB_17H] +Du ignorierst mich. Du gibst mir keine Chance, mitzumischen, nach allem, was ich für dich getan habe! Hãltst du mich für einen Schwachkopf? + +[MOB_17I] +Paul, reg dich ab. Ich hatte viel zu tun. Sei kein Idiot. + +[MOB_17J] +Ich bin kein Idiot. Das haben sie schon im Jugendknast gesagt. Wenn du Ãrger haben willst, Freundchen, den kannst du haben! + +[MOB_17K] +Tommy, bitte! Du warst meine große Hoffnung. Bitte, mach dich nicht lustig über mich! + +[MOB_17L] +Paul, schlaf mal 'ne Runde. Im Ernst. + +[MOB_73A] +Tommy, hier Steve. + +[MOB_73B] +Hey, Steve. + +[MOB_73C] +Hey, aber wie! Du bist ein Genie! Ich bin ein Genie! Sie lieben uns alle. Wir brechen alle Rekorde, mein Alter. + +[MOB_73D] +Uns winken ganz große Filmpreise. Jetzt kann ich endlich meinen alten Herrn ins Heim stecken und ihm sagen, er soll die Klappe halten. + +[MOB_73E] +Ãh, das ist cool, Steve. + +[MOB_73F] +Cool? Mann, das ist heiß! Heiß! H.E.I.ß! Er hat nie an mich geglaubt. Hat immer gedacht, ich wãre kein Künstler, und jetzt hab ich's geschafft! + +[MOB_73G] +Ich bin der größte Porno-Regisseur aller Zeiten, mein Freund. Wollte dir nur sagen, es ist mir eine Freude, dich kennengelernt zu haben. + +[MOB_73H] +Danke, Steve. + +[MOB_73I] +Ich liebe dich, Baby. Bleib bloß genau so wie du bist, ok? + +[MOB_73J] +Werd's mir merken. Ciao, Steve. + +[BOLLOX] +Drücke die ~o~R1~w~-Taste, um eine Bombe abzuwerfen. Drücke die ~t~"~w~-Taste zum Abbrechen. + +[BRID_OP] +Sturmwarnung vorüber. Alle Brücken zum Festland sind wieder geöffnet. + +[BRID_CL] +Sturmwarnung: Alle Brücken zum Festland sind gesperrt. + +[LG_38] +Ziel + +[ASSET_C] +POLE POSITION ERWORBEN! + +[ASSET_D] +~g~Der Pole Position Club sorgt nun für ein Einkommen von bis zu $~1~ pro Tag. Hol dir dein Geld regelmãssig! + +[ST_WHEE] +Lãngste 'Wheelie' Zeit (sekunden) + +[ST_STOP] +Lãngste 'Stoppie' Zeit (sekunden) + +[ST_2WHE] +Lãngste 2 Rad Zeit (sekunden) + +[ST_WHED] +Lãngste 'Wheelie' Distanz (m) + +[ST_STOD] +Lãngste 'Stoppie' Distanz (m) + +[ST_2WHD] +Lãngste 2 Rad Distanz (m) + +[OUTFT11] +Trainer + +[OUTFT12] +Frankie + +[RELOAD] +~g~Du hast die schnell Nachladefãhigkeit gewonnen! + +[APACHE] +Hunter zur Heli Landeplattform am Ocean Beach geliefert. + +[CRED369] +JOHN MCCARDLE + +[CRED370] +DAVID MURDOCH + +[CRED371] +CHRIS BROWN + +[CRED372] +PAUL GREEN + +[CRED373] +KYLE MILNE + +[CUNTY] +Neue Kleider wurden zum Vercetti Estate geliefert! + +[GOODBOY] +$50 'Guter Bürger' Bonus! + +[NEWCONT] +Neuer Kontaktpunkt am Jachthafen am Ocean Beach!! + +[FIRELVL] +Feuerwehr-Mission Level ~1~ + +[HELP56] +Drücke die ~h~~k~~CAMERA_CHANGE_VIEW_ALL_SITUATIONS~~w~-Taste, um den Blickwinkel zu ãndern. + +[HELP57] +Drücke die ~h~~k~~CAMERA_CHANGE_VIEW_ALL_SITUATIONS~~w~-Taste, um den Blickwinkel zu ãndern. + +[HELP58] +Beim Zielen kann durch Drücken der ~h~~k~~PED_CYCLE_TARGET_LEFT~~w~-Taste zwischen Zielen hin- und her gewechselt werden. + +[HELP59] +Beim Zielen kann durch Drücken der ~h~~k~~PED_CYCLE_TARGET_LEFT~~w~-Taste zwischen Zielen hin- und her gewechselt werden. + +[HELP60] +Wenn du wãhrend eines Autodiebstahls die ~h~~k~~PED_SPRINT~ ~w~-Taste drückst, steigst du nicht in das Fahrzeug ein. + +[HELP61] +Du hast jetzt unbegrenzt Munition und doppelte Health für alle Fahrzeuge. + +[CRED374] +KEVIN YUN + +[CRED375] +ERICK COBBS + +[CRED376] +RANDY BLAKE + +[CRED377] +BRANDON LIM + +[CRED378] +BRANDON FENOL + +[CRED379] +MICHAEL MANOLE + +[CRED380] +ALETHEIA SIMONSON + +[CRED381] +JOHN JANSEN + +[FEC_LB1] +Schau + +[FEC_LB2] +nach hinten + +[FEC_LB3] +Nach hinten schauen + +[FEC_R3] +(R3-Taste) + +[FEC_PED] +Steuerung zu Fuß + +[FEC_VEH] +Steuerung in Fahrzeug + +[FEC_FPR] +Steuerung für First-Person + +[FEC_CMM] +Allgemeine Steuerung + +[FEC_PWL] +Nach links + +[FEC_PWR] +Nach rechts + +[FEC_PWF] +Vorwãrts gehen + +[FEC_PWT] +Auf Kamera zugehen + +[FEC_PLB] +Nach hinten schauen + +[FEC_PFR] +Waffe abfeuern + +[FEC_CLE] +Eine Waffe nach links + +[FEC_CRI] +Eine Waffe nach rechts + +[FEC_LKT] +Ziel fixieren + +[FEC_PJP] +Fußgãnger springen + +[FEC_PSP] +Fußgãnger sprinten + +[FEC_PSH] +Fußgãnger schießen + +[FEC_TLF] +Ein Ziel nach links + +[FEC_TRG] +Ein Ziel nach rechts + +[FEC_CCM] +Kamera hinter Spieler zentrieren + +[FEC_SZI] +Mit Prãzisionsgewehr heranzoomen + +[FEC_SZO] +Mit Prãzisionsgewehr herauszoomen + +[FEC_LKL] +First-Person nach links schauen + +[FEC_LRT] +First-Person nach rechts schauen + +[FEC_LUP] +First-Person nach oben schauen + +[FEC_LDN] +First-Person nach unten schauen + +[FEC_LBH] +Aus Fahrzeug nach hinten schauen + +[FEC_LLF] +Aus Fahrzeug nach links schauen + +[FEC_LRG] +Aus Fahrzeug nach rechts schauen + +[FEC_HRN] +Hupe + +[FEC_HBR] +Handbremse + +[FEC_ACL] +Gas geben + +[FEC_BRK] +Bremsen + +[FEC_TSM] +Spezialmissionen An/Aus + +[FEC_CRD] +Radiosender wechseln + +[FEC_ENT] +In Fahrzeug Ein-/Aussteigen + +[FEC_WPN] +Waffe abfeuern + +[FEC_PAS] +Pause + +[FEC_FPO] +First Person Weapons Toggle. + +[FEC_SMS] +Mauszeiger An/Aus + +[FEC_CMS] +Blickwinkel wechseln. + +[FEC_TSS] +Screen Shot + +[FEC_DBG] +Debug-Menü + +[FEC_TGD] +Mit Pad zwischen Spiel- u. Debug-Modus wechseln + +[FEC_TDO] +Debug-Kamera Aus + +[FEC_IVH] +Maus horizontal invertieren + +[FEC_MSL] +MAUSTASTE L + +[FEC_MSM] +MAUSTASTE M + +[FEC_MSR] +MAUSTASTE R + +[FEC_QUE] +??? + +[FEC_TWO] +Nur zwei Tastaturtasten erlaubt + +[FEC_OMS] +Nur eine Maustaste erlaubt + +[FEC_OJS] +Nur ein Joystick-Button pro Aktion erlaubt + +[FEC_PTL] +"Ziel fixieren" u. "Waffenauswahl links" gleichzeitig drücken. + +[FEC_PTR] +"Ziel fixieren" u. "Waffenauswahl rechts" gleichzeitig drücken. + +[FEC_LBC] +"Nach links schauen" u. "Nach rechts schauen" gleichzeitig drücken. + +[FEC_JBO] +JOY ~1~ + +[FEC_WAR] +Achtung! + +[FEC_OKK] +OK + +[FEC_DLF] +Löschen fehlgeschlagen. + +[FEC_SVU] +Speichern fehlgeschlagen. + +[FEC_LUN] +Laden fehlgeschlagen. Datei beschãdigt. Bitte löschen. + +[FEC_PAD] +Gamepad + +[FEC_JOY] +Joystick + +[FES_CSA] +Wãhlen Sie eine Skin aus der Liste aus: + +[FET_HRD] +STANDARDEINSTLLG. WIEDERHERGESTELLT + +[FET_MST] +MAUSSTEUERUNG + +[FEC_STR] +NUM STERN + +[FET_MIG] +LINKS,RECHTS,MAUSRAD ZUR EINSTLLG. + +[FET_CIG] +RÜCKT. ZUM LÖSCHEN - LMT,RETURN ZUM ÃNDERN + +[FET_DSN] +Standard-Player Skin.bmp + +[FET_RSO] +ORIGINAL-EINSTELLG. WIEDERHERGESTELLT + +[FET_RSC] +HARDWARE NICHT VERFÜGBAR - ORIGINAL-EINSTELLG. WIEDERHERGESTELLT + +[FEA_3DH] +AUDIO HARDWARE + +[FEA_SPK] +BOXEN KONFIGURATION + +[FEM_LOD] +DISTANZ-DARSTELLG. + +[FEM_VSC] +FRAME SYNC + +[FEM_FRM] +FRAME LIMITER + +[FEM_MM] +HAUPTMENÜ + +[FED_RES] +BILDSCHIRMAUFLSG. + +[FET_CTL] +CONTROLLER-SETUP + +[FET_OPT] +OPTIONEN + +[FEC_MSH] +MAUSEMPFINDLICHKEIT + +[FEC_IVV] +MAUS VERTIKAL INVERTIEREN + +[FET_MTI] +MAUS STEURUNGSKONFIG. + +[FEC_FNC] +F~1~ + +[FEC_IRT] +EINFG + +[FEC_DLL] +ENTF + +[FEC_HME] +POS1 + +[FEC_END] +ENDE + +[FEC_PGU] +BILD AUF + +[FEC_PGD] +BILD AB + +[FEC_UPA] +AUF + +[FEC_DWA] +AB + +[FEC_LFA] +LINKS + +[FEC_RFA] +RECHTS + +[FEC_NUM] +NUM + +[FEC_NMN] +NUM~1~ + +[FEC_FWS] +NUM / + +[FEC_PLS] +NUM + + +[FEC_MIN] +NUM - + +[FEC_DOT] +NUM , + +[FEC_NLK] +NUMLOCK + +[FEC_ETR] +ENT + +[FEC_SLK] +ROLLEN + +[FEC_PSB] +UNTBR + +[FEC_BSP] +RÜCKT. + +[FEC_TAB] +TAB + +[FEC_CLK] +CAPSLOCK + +[FEC_RTN] +RET + +[FEC_LSF] +LUMSCHALT + +[FEC_RSF] +RUMSCHALT + +[FEC_LCT] +LSTRG + +[FEC_RCT] +RSTRG + +[FEC_LAL] +LALT + +[FEC_RAL] +RALT + +[FEC_LWD] +LWIN + +[FEC_RWD] +RWIN + +[FEC_WRC] +WINKLICK + +[FEC_SPC] +LEERT. + +[WIN_TTL] +GTA VC + +[WIN_95] +GTA VC lãuft nicht unter Windows 95 + +[WIN_DX] +GTA VC benötigt mind. DirectX Version 8.1 + +[FET_EIG] +KANN DIESER AKTION KEINE STEUERUNG ZUWEISEN + +[FET_DAM] +DYNAMISCHE AKUSTIK + +[FEQ_SRE] +Wirklich beenden? Alle Daten seit dem letzten Speichern werden verlorengehen. Weiter? + +[FEQ_SRW] +Spiel wirklich beenden? + +[FET_QG] +SPIEL BEENDEN + +[FEN_STA] +SPIEL STARTEN + +[REPLAY] +WIEDERHOLUNG + +[FET_PAU] +PAUSENMENÜ + +[FEC_ANS] +Aktion + +[CVT_MSG] +Texturen werden in optimales Format für Ihre Grafikkarte konvertiert + +[FEC_SFT] +UMSCHALT + +[CVT_ERR] +Kein Platz mehr auf der Festplatte. Bitte schaffen Sie Speicherplatz, bevor Sie fortfahren. ESC zum Abbrechen. + +[FEH_VMP] +KARTE ANSEHEN + +[FES_DEE] +Löschen fehlgeschlagen! Bitte noch einmal versuchen. + +[FES_CMP] +Speichern fehlgeschlagen! Bitte noch einmal versuchen. + +[FESZ_WR] +Spiel wird gespeichert. Bitte warten... + +[FELD_WR] +Spiel wird geladen. Bitte warten... + +[FEDL_WR] +Gespeichertes Spiel wird gelöscht. Bitte warten... + +[PCRESRT] +Neues Spiel wird gestartet. Bitte warten... + +[FET_STI] +Standard-Steuerung + +[FET_CTI] +Classic-Steuerung + +[FET_PS] +SPIELER-SKIN SETUP + +[FEH_NA] +OPTION NICHT VERFÜGBAR + +[FEH_MPH] +MAUS, CURSOR ZUM BEWEGEN - BILD AUFW., BILD ABW., MAUSRAD ZUM ZOOMEN, L - LEGENDE + +[FEA_MP3] +MP3 PLAYER + +[NO_PCCD] +Bitte legen Sie die GTA Vice City Disk ein, oder drücken Sie ESC zum Abbrechen + +[FEH_SSA] +CURSOR ZUM BEWEGEN - S UM ZU SPEICHERN + +[FES_CMI] +LETZTE ERFÜLLTE MISSION + +[FET_STS] +STATISTIKEN GESPEICHERT IN 'STATS.HTML' + 'STATS.TXT' + +[WIN_VDM] +Nicht genug verfügbarer Grafikspeicher für GTA Vice City vorhanden + +[FEC_ERI] +Fehler! Eine oder mehrere Aktionen haben keine Tastenbelegungen. Bitte alle Aktionen belegen. + +[FEC_TFU] +Geschütz + nach hinten neigen + +[FEC_TFD] +Geschütz + nach vorne neigen + +[FET_RIG] +WÃHLEN SIE EINE NEUE TASTENBELEGUNG FÜR DIESE AKTION + +[FEA_NM3] +KEINE MP3-DATEIEN GEFUNDEN + +[FEA_MPB] +MP3 LAUTSTÃRKE-BOOST + +[FEA_MUS] +LAUTSTÃRKE MUSIK + +[FEA_SFX] +LAUTSTÃRKE SFX + +[FEA_ADP] +AUTOMATISCHE HARDWARE ERKENNUNG + +{=================================== MISSION TABLE AMBULAE ===================================} + +[A_COMP1:AMBULAE] +Krankenwagen-Missionen abgeschlossen: $ ~1~ + +[ATUTOR2:AMBULAE] +~g~Fahre die Patienten VORSICHTIG in die Klinik. Jede Erschütterung verringert ihre Überlebenschancen. + +[A_FULL:AMBULAE] +~r~Krankenwagen voll!! + +[A_FAIL2:AMBULAE] +~r~Deine Bummelei war tödlich für den Patienten! + +[A_FAIL3:AMBULAE] +~r~Der Patient ist tot!! + +[A_PASS:AMBULAE] +Gerettet! + +[A_COMP2:AMBULAE] +Du ermüdest nie! + +[A_CANC:AMBULAE] +~r~Krankenwagen-Mission abgebrochen! + +[A_COMP3:AMBULAE] +Krankenwagen-Missionen abgeschlossen! Du wirst beim Rennen nie ermüden! + +[ALEVEL:AMBULAE] +Krankenwagen-Mission Level ~1~ + +[A_FAIL1:AMBULAE] +Krankenwagen-Mission beendet. + +[A_SAVES:AMBULAE] +GERETTETE MENSCHEN: ~1~ + +{=================================== MISSION TABLE ASSIN1 ===================================} + +[ASM1_5:ASSIN1] +~r~Er hat seine Lieferungen abgeschlossen! + +[ASM1_6:ASSIN1] +Weitere Lieferungen: + +[ASM1_7:ASSIN1] +~g~Carl Pearson, Pizza-Lieferant. Schalte ihn aus, bevor er seine Lieferungen abschließt. + +[ASM1_A:ASSIN1] +Mr. Teal, Ihre Hilfe bei der Beseitigung der Landeier war ãußerst wertvoll. Ich habe noch mehr Arbeit, die eine eher 'zupackende' Art verlangt. + +[ASM1_D:ASSIN1] +Mr. Teal, Ihre Hilfe bei der Beseitigung der Landeier war ãußerst wertvoll. + +{=================================== MISSION TABLE ASSIN2 ===================================} + +[ASM2_1:ASSIN2] +~g~Mrs. Dawson verlãsst bald den Juwelier in Vice Point. Schalte sie aus. Es muss wie ein Autounfall aussehen. + +[ASM2_3:ASSIN2] +~g~Das Fahrzeug wird explodieren! Hau ab! + +[ASM2_4:ASSIN2] +~r~Du hast ihr Auto beschãdigt, obwohl sie nicht drin saß! Jetzt wird sie nicht einsteigen! + +[ASM2_5:ASSIN2] +~r~Sie ist entwischt! + +[ASM2_6:ASSIN2] +~r~Du warst zu nah am Unfallort! + +[ASM2_7:ASSIN2] +~g~Keine Waffen! Es soll wie ein Unfall aussehen! Drãnge sie stattdessen von der Fahrbahn! + +[ASM2_8:ASSIN2] +~g~Das ganze muss wie ein Unfall aussehen. Benutze keine Waffen. + +[ASM2_9:ASSIN2] +Du brauchst einen fahrbaren Untersatz für diesen Job. + +[ASM2_10:ASSIN2] +~g~Wenn ihr Auto in Flammen aufgeht, entferne dich so weit wie möglich von der Unfallstelle. + +[ASM2_11:ASSIN2] +Hilfe! + +[ASM2_12:ASSIN2] +Hilf mir doch jemand! + +[ASM2_13:ASSIN2] +Oh Gott! + +[ASM2_A:ASSIN2] +Mein Kompliment für die gute Arbeit, Mr. Teal. Mein Kunde war sehr zufrieden. + +[ASM2_2:ASSIN2] +Health: + +{=================================== MISSION TABLE ASSIN3 ===================================} + +[ASM3_11:ASSIN3] +ZEIT: + +[ASM3_C:ASSIN3] +Eine europãische Gang plant einen Überfall auf eine Bank in Vice City. Meinen Arbeitgebern wãre sehr daran gelegen, dass das nicht passiert. + +[ASM3_D:ASSIN3] +Alle Mitglieder der Gang haben eine Tarnung, solange sie sich hier in Vice City aufhalten. Manche haben Jobs, andere geben sich als Touristen aus. + +[ASM3_E:ASSIN3] +Infos über alle Zielpersonen und ihre wahrscheinlichen Aufenthaltsorte kleben unter dem Telefon. + +[ASM3_14:ASSIN3] +~g~Dick Tanner hãlt sich bei DBP Security am Ocean Drive auf. + +[ASM3_15:ASSIN3] +~g~Marc Hammond und Franco Carter halten sich in der Nãhe des Juwelierladens in Vice Point auf. + +[ASM3_16:ASSIN3] +~g~Nick Kong hãlt sich in der Nãhe von Washington Beach auf. + +[ASM3_18:ASSIN3] +~g~Geh nicht zu nahe an deine Zielperson heran, sonst entdeckt sie dich und du musst hinter ihr herjagen. + +[ASM3_19:ASSIN3] +~g~Er hat dich gesehen! Schalte ihn aus! + +[ASM3_20:ASSIN3] +~g~Sie haben dich gesehen! Schalte alle beide aus! + +[ASM3_21:ASSIN3] +~r~Du hast nicht alle Mitglieder der Gang rechtzeitig erledigt! + +[ASM3_22:ASSIN3] +~g~Geh nicht zu nahe an deine Zielpersonen heran, sonst entdecken sie dich und versuchen zu fliehen. + +[ASM3_12:ASSIN3] +~g~In der Nãhe sind einige Waffen für dich deponiert worden, falls du sie brauchen solltest. Du hast ~h~9 MINUTEN~g~, um alle Gang-Mitglieder auszuschalten. + +[ASM3_13:ASSIN3] +~g~Mike Griffin arbeitet an einer Plakatwand in Washington. + +[ASM3_17:ASSIN3] +~g~Charlie Dilson fãhrt mit dem Motorrad in Washington herum. + +{=================================== MISSION TABLE ASSIN4 ===================================} + +[ASM4_10:ASSIN4] +~g~Du warst anscheinend nicht der einzige, der hinter dem Aktenkoffer her war. Bring ihn schnell ins Ammu-Nation! + +[ASM4_12:ASSIN4] +Distanz: + +[ASM4_15:ASSIN4] +~g~Nimm das Prãzisionsgewehr zu deiner Rechten. + +[ASM4_16:ASSIN4] +~g~Behalte die Frau auf der Empore im Auge. Sie wird die Rolltreppe hinuntergehen und die Zielperson nach der Uhrzeit fragen. + +[ASM4_17:ASSIN4] +~g~Schalte die Zielperson aus, NACHDEM die Frau mit ihr gesprochen hat. Aber erledige nicht die Frau. + +[ASM4_18:ASSIN4] +~g~Wenn die Zielperson ausgeschaltet ist, nimm ihren Aktenkoffer und bringe ihn zum Ammu-Nation in Downtown. + +[ASM4_19:ASSIN4] +~g~Halte Abstand von der Zielperson. Die Entfernungs-Anzeige rechts oben am Bildschirm zeigt an, wie nahe du an der Zielperson bist. + +[ASM4_20:ASSIN4] +~g~Lass den Anzeigebalken nicht an den Anschlag geraten, sonst sieht dich die Zielperson. + +[ASM4_21:ASSIN4] +~g~Schnapp dir den Aktenkoffer! + +[ASM4_22:ASSIN4] +~g~Bring den Aktenkoffer zum Ammu-Nation in Downtown. + +[ASM4_23:ASSIN4] +~g~Er hat dich entdeckt und versucht zu fliehen. Erledige ihn und schnapp dir den Aktenkoffer! + +[ASM4_25:ASSIN4] +~r~Du hast die Frau ausgeschaltet, du Idiot! + +[ASM4_26:ASSIN4] +~r~Die Zielperson hat das Flugzeug bestiegen! + +[ASM4_27:ASSIN4] +~r~Die Zielperson hat dich gesehen! Du hãttest Abstand halten sollen! + +[ASM4_28:ASSIN4] +~r~Die Zielperson hat dich gesehen! Er hat gehört, wie du geschossen hast! + +[ASM4_29:ASSIN4] +~r~Schalte ihn erst aus, wenn er mit der Frau gesprochen hat! + +[ASM4_A:ASSIN4] +Es wird Zeit für dickere Brocken, Mr. Teal. Unter dem Busch zu Ihrer Rechten ist ein Gewehr. + +[ASM4_B:ASSIN4] +Behalten Sie die Frau auf der Empore über dem Check-In im Auge. Sie wird durch die Menge gehen und jemanden nach der Uhrzeit fragen. + +[ASM4_C:ASSIN4] +Sie müssen die betreffende Person ausschalten, ihren Aktenkoffer nehmen und ihn zu der Adresse, die unter dem Telefon klebt, bringen. + +{=================================== MISSION TABLE ASSIN5 ===================================} + +[ASM5_A:ASSIN5] +Auf dem Dach der Cherry Popper-Eiscremefabrik findet eine Übergabe von wertvoller Ware statt. + +[ASM5_B:ASSIN5] +Erledigen Sie alle Beteiligten, klauen Sie die Ware und bringen Sie sie zum Heliport am Flughafen. + +[ASM5_C:ASSIN5] +Links von Ihnen ist ein Tor, das zur Rückseite der Fabrik führt. + +[ASM5_1:ASSIN5] +~g~Geh auf das Gelãnde hinter der Cherry Popper-Eiscremefabrik und dann auf das Dach, wo der Deal abgewickelt wird. + +[ASM5_2:ASSIN5] +~g~Schnapp dir die Ware und bring sie zum Heliport am Flughafen. + +[ASM5_3:ASSIN5] +~g~Bring die Ware zum Heliport am Flughafen! + +{=================================== MISSION TABLE BANKJ1 ===================================} + +[WANTED1:BANKJ1] +~g~Schüttle die Cops ab. Verringere deinen Fahndungslevel. + +[BJM1_A:BANKJ1] +Tommy! Hey, Tommy, sieh mal, das ist super! Ich hab eine Minibar einbauen lassen! + +[BJM1_B:BANKJ1] +Wir haben unten eine ausgewachsene Bar, Ken. + +[BJM1_C:BANKJ1] +Ja, ja, wie auch immer. Tja, ich hab die Tafel besorgt, die du haben wolltest. + +[BJM1_D:BANKJ1] +Ah, das ist der Lohn des Jurastudiums: Die Fãhigkeit, Anweisungen auszuführen. + +[BJM1_E:BANKJ1] +Also, ich brauche einen Safeknacker. + +[BJM1_F:BANKJ1] +Oh, ok, mal nachdenken...Safeknacker, Safeknacker...Ich hab's! Du wirst begeistert sein! + +[BJM1_G:BANKJ1] +Aah, nicht dieser Schwachkopf. Der sitzt doch. + +[BJM1_H:BANKJ1] +Wo sitzt er denn? + +[BJM1_I:BANKJ1] +In einer Zelle in einem Polizeirevier. Er wartet auf seine Verlegung. + +[BJM1_J:BANKJ1] +Ich glaube fast, er kommt auf Bewãhrung raus... + +[BJM1_1:BANKJ1] +~g~Befreie Cam Jones aus der Haft! + +[BJM1_3:BANKJ1] +~g~In der Umkleide des Reviers findest du etwas Nützliches. + +[BJM1_21:BANKJ1] +~g~Die Key Card zu den Zellen findet sich im Obergeschoss des Reviers. + +[BNK1_7:BANKJ1] +Cam Jones? + +[BNK1_8:BANKJ1] +Ich hol dich hier raus. + +[BNK1_10:BANKJ1] +Ja, der bin ich... + +[BNK1_11:BANKJ1] +Ganz wie du meinst! + +[BNK1_13:BANKJ1] +Ich ziehe einen Job durch, und du bist mein Safeknacker. + +[BNK1_14:BANKJ1] +Besser als in 'ner Zelle zu verrotten! + +[BJM1_22:BANKJ1] +~g~Bring Cam nach Hause! + +[BJM1_23:BANKJ1] +~g~Du brauchst zunãchst die Magnetkarte für die Tür! + +[BNK1_12:BANKJ1] +Hãng die Bullen ab und bring mich nach Hause! + +[BJM1_20:BANKJ1] +Die Waffe weg oder es passiert was! + +[BJM1_5:BANKJ1] +Zutritt ab hier nur für befugtes Personal. + +[BJM1_2:BANKJ1] +~r~Du solltest Cam die Freiheit bringen, nicht den Tod! + +[BJM1_4:BANKJ1] +Er ist bewaffnet! Erledigt ihn! + +{=================================== MISSION TABLE BANKJ2 ===================================} + +[BJM2_A:BANKJ2] +Wir brauchen einen Überfall-Experten. Kennt ihr einen? + +[BJM2_B:BANKJ2] +Hey, Tommy, Tommy, Tommy, das Zeug bringt dich nach vorn, Mann. + +[BJM2_C:BANKJ2] +WoooOOOooo! + +[BJM2_D:BANKJ2] +Ich könnte dein Experte sein! Überfall! Überfall! + +[BJM2_E:BANKJ2] +Du bist kein Experte, du bist ein Idiot. + +[BJM2_F:BANKJ2] +Mach dir 'nen Drink und halt die Klappe. + +[BJM2_G:BANKJ2] +Hey, aus dem Weg! + +[BJM2_H:BANKJ2] +Cam, was meinst du? + +[BJM2_I:BANKJ2] +Tja, der beste Schütze in der Stadt ist ein Kerl namens Cassidy. + +[BJM2_J:BANKJ2] +Ach ja? + +[BJM2_K:BANKJ2] +Ja. Soldat, oder wenigstens hãlt er sich dafür. + +[BJM2_L:BANKJ2] +Ich bezweifle, dass er je bei der Army war, aber er kann mit der Knarre umgehen. + +[BJM2_M:BANKJ2] +Wahrscheinlich ist er in der Schießanlage. + +[BJM2_2A:BANKJ2] +Bist du Phil Cassidy? + +[BJM2_2B:BANKJ2] +Wieso? + +[BJM2_2C:BANKJ2] +Ich suche einen, der mit der Kanone umgehen kann. Was ich hier so sehe, überzeugt mich nicht. + +[BJM2_2D:BANKJ2] +Jungchen, ich schieße dir auf 25 Meter eine Fliege vom Kopf. + +[BJM2_2E:BANKJ2] +Ach wirklich? + +[BJM2_2F:BANKJ2] +Ja. Hab ich bei der Army gelernt. + +[BJM2_2G:BANKJ2] +Ist Fliegen-Schießen so beliebt in der Army? Gut, dass ich keine Steuern zahle. + +[BJM2_2H:BANKJ2] +Sollte das witzig sein, Jungchen? + +[BJM2_2I:BANKJ2] +Ha ha ha ha ha! + +[BJM2_2J:BANKJ2] +Lass uns schießen. + +[BJM2_1:BANKJ2] +~g~Begib dich nach Downtown ins Ammu-Nation und sprich mit Phil Cassidy. + +[BJM2_3:BANKJ2] +TREFFERQUOTE: ~1~% + +[BJM2_4:BANKJ2] +PUNKTE RUNDE EINS: ~1~ + +[BJM2_6:BANKJ2] +PUNKTE RUNDE ZWEI: ~1~ + +[BJM2_7:BANKJ2] +GESAMTPUNKTZAHL FÜR DAS SCHIESSEN: ~1~ + +[BJM2_9:BANKJ2] +~g~Begib dich zum Startpunkt für Runde Zwei. + +[BJM2_11:BANKJ2] +~r~Phil ist erledigt! + +[BJM2_12:BANKJ2] +~r~Einer der Schützen ist erledigt! + +[BJM2_14:BANKJ2] +~g~Begib dich zum nãchsten Areal! + +[BJM2_15:BANKJ2] +PUNKTE: + +[BJM2_17:BANKJ2] +~g~Sprich mit Phil. + +[BJM2_18:BANKJ2] +ZU SCHLAGEN: + +[BJM2_19:BANKJ2] +~g~Triff innerhalb des Zeitlimits so viele Ziele wie du kannst! + +[BJM2_22:BANKJ2] +~r~Du hast den Schießstand verlassen! + +[BJM2_23:BANKJ2] +~g~Wenn du den Schießstand wãhrend des Wettbewerbs verlãsst, ist die Mission gescheitert. + +[BJM2_24:BANKJ2] +~g~Das nahegelegenste Ziel bringt 1 Punkt. + +[BJM2_25:BANKJ2] +~g~Das mittlere Ziel bringt 2 Punkte. + +[BJM2_27:BANKJ2] +~g~Alle Ziele dieser Runde bringen 1 Punkt. + +[BNK2_2:BANKJ2] +ZIELEN 3-2-1 FEUER! + +[BNK2_3:BANKJ2] +AREAL KLAR! + +[BNK2_4:BANKJ2] +Huuuiii! + +[BNK2_5:BANKJ2] +Der trãfe nicht mal ein Scheunentor. + +[BNK2_7:BANKJ2] +Also, was ist jetzt, hilfst du mir bei dem Job? + +[BNK2_8:BANKJ2] +Jungchen, so wie du schießt, würde ich dich sogar heiraten. + +[BNK2_9A:BANKJ2] +Junge, deine Sprüche und deine Hirngespinste kannst du dir sonst wohin stecken. Du bist ein lausiger Schütze. + +[BNK2_9B:BANKJ2] +Du bist ein lausiger Schütze. + +[BJM2_28:BANKJ2] +PUNKTE RUNDE DREI: ~1~ + +[BJM2_20:BANKJ2] +~g~Geht dir die ~w~Zeit ~g~oder die ~w~Munition ~g~aus, ist die Runde beendet! + +[BJM2_26:BANKJ2] +~g~Das am weitesten entfernte Ziel bringt 3 Punkte. + +[BNK2_1:BANKJ2] +SCHARFE MUNITION + +[RANGE_1:BANKJ2] +PUNKTZAHL SCHIESS-RUNDE:~1~ + +[BJM2_2:BANKJ2] +~g~Um die Runde zu beenden, drücke die ~h~~k~~PED_JUMPING~. + +[BJM2_N:BANKJ2] +Nur die Ruhe. + +{=================================== MISSION TABLE BANKJ3 ===================================} + +[BJM3_A:BANKJ3] +Langsam fügt sich alles sehr schön zusammen hier. + +[BJM3_B:BANKJ3] +Was ist der Plan, Tommy? Was geht ab, Amigo? + +[BJM3_C:BANKJ3] +Der Plan ist, dass du dich wie ein Vollidiot benimmst. Wir brauchen einen Fahrer. + +[BJM3_D:BANKJ3] +Tommy, ich mach's. Ich kann fahren. + +[BJM3_E:BANKJ3] +Nimm Hilary, Boss, nicht diesen Labersack von einem Rechtverdreher. + +[BJM3_F:BANKJ3] +Hilary ist der beste. So schnell wie den hast noch keinen fahren sehen. Ich rufe ihn mal an. + +[BJM3_G:BANKJ3] +Hey, Hil, hier Phil. Wie lãuft's? Nein, sag nichts. Dazu haben wir spãter Zeit. Tust du mir einen Gefallen? + +[BJM3_H:BANKJ3] +Ich hab hier einen Typ aus dem Norden. Nein, ich glaub, er war nicht beim Militãr. Aber er braucht einen Fahrer. + +[BJM3_I:BANKJ3] +Für einen Job. Ok, verstehe. + +[BJM3_J:BANKJ3] +Was hat er gesagt? + +[BJM3_K:BANKJ3] +Er macht's. Kein Problem. Na ja, ein kleines vielleicht: Er leidet unter Verlustãngsten. + +[BJM3_L:BANKJ3] +Er arbeitet anscheinend nicht für Leute, die ihn nicht schlagen können. Hat was mit seiner Mutter zu tun. + +[BJM3_M:BANKJ3] +Jedenfalls will er erst ein Rennen gegen dich fahren. Er wartet draußen auf dich. + +[BJM3_2A:BANKJ3] +Bist du Tommy? Klar bist du Tommy, ich meine, + +[BJM3_2B:BANKJ3] +wieso sollte sonst einer mit mir reden wollen? + +[BJM3_2C:BANKJ3] +Ok. Das ganze lãuft so ab: + +[BJM3_2D:BANKJ3] +Ich fahre für dich, WENN und NUR WENN du selbst anstãndig fãhrst. + +[BJM3_2E:BANKJ3] +Verlierst du mich, verzeihe ich dir das nie. + +[BJM3_2:BANKJ3] +Hilary ist erledigt! + +[BJM3_4:BANKJ3] +~g~Du brauchst ein Auto, um mitzumachen. + +[BNK3_1:BANKJ3] +Ok, ich fahre für dich. Aber bitte, behandle mich schlecht. + +[BNK3_3A:BANKJ3] +Illegales Straßenrennen bei Vice Point. + +[BNK3_3B:BANKJ3] +An alle Einsatzkrãfte. + +[BNK3_3C:BANKJ3] +Straßenrennen sind verboten und illegal! + +{=================================== MISSION TABLE BANKJ4 ===================================} + +[BNK4_A:BANKJ4] +~w~Ihr seht Gentlemen, das wird leicht verdientes Geld für uns. + +[BNK4_B:BANKJ4] +~w~Ernsthaft, Tommy, du solltest dir überlegen, Anwalt zu werden. + +[BNK4_C:BANKJ4] +~w~Was zum Geier rauchst du eigentlich, Mann? Das ist kein simpler Plan. + +[BNK4_D:BANKJ4] +~w~Ach, wer braucht schon simple Plãne? + +[BNK4_E:BANKJ4] +~w~Der Kommunismus, das war ein simpler Plan. Hat Russland aber nicht viel genützt, hah? + +[BNK4_F:BANKJ4] +~w~Ganz ruhig. Mit einem Team wie diesem ist das alles kein Problem. + +[BNK4_G:BANKJ4] +~w~Cam übernimmt den Safe. Phil? Wir beide kümmern uns um die Sicherheit, und Hilary fãhrt den Fluchtwagen. + +[BNK4_H:BANKJ4] +~w~Ãh, hast du nicht jemanden vergessen? Jemanden, der dir unzãhlige Male geholfen hat in dieser Stadt? Jemanden...? + +[BNK4_I:BANKJ4] +~w~Ken...Ken, richtig. Ken wãscht das Geld für uns und stellt schon mal die Drinks kalt. + +[BNK4_J:BANKJ4] +~w~Ich verstehe nicht, was ich hier soll. + +[BNK4_K:BANKJ4] +~w~Ist doch ganz einfach. Warst du noch nie im Kino? + +[BNK4_L:BANKJ4] +~w~Wir latschen in die Bank rein, fuchteln mit den Knarren rum und gehen stinkreich wieder raus. + +[P_DEAD:BANKJ4] +~r~Phil ist erledigt!! + +[C_DEAD:BANKJ4] +~r~Cam ist erledigt!! + +[H_DEAD:BANKJ4] +~r~Hilary ist erledigt!! + +[P_HIND:BANKJ4] +~r~Du hast Phil verloren! + +[C_HIND:BANKJ4] +~r~Cam wurde abgehãngt! + +[H_HIND:BANKJ4] +~r~Hilary wurde im Stich gelassen! + +[GETCAR:BANKJ4] +Steig in den Fluchtwagen und führe den Plan aus! + +[TRASHED:BANKJ4] +~r~DU HAST DEN FLUCHTWAGEN GESCHROTTET!! + +[BNK4_1:BANKJ4] +Ich fahre. + +[BNK4_2:BANKJ4] +Na prima. Beifahrer. Wenn ich das in der Therapie erzãhle. + +[BNK4_3A:BANKJ4] +Hey, pass auf, wo du hinfãhrst, Tommy! + +[BNK4_3B:BANKJ4] +Tommy, Hilary macht sich so breit! + +[BNK4_3C:BANKJ4] +Stimmt gar nicht! + +[BNK4_3D:BANKJ4] +Doch! + +[BNK4_3E:BANKJ4] +Hey, Klappe, ihr zwei, oder ihr könnt zu Fuß gehen. + +[BNK4_3F:BANKJ4] +Ja, Hilary. + +[BNK4_3I:BANKJ4] +Herrgott, Phil, hör auf, mit diesem Ding rumzufuchteln! + +[BNK4_3J:BANKJ4] +Ja, am Ende geht das noch ins Auge! + +[BNK4_3M:BANKJ4] +Mein Baby! Alles Schrott! + +[BNK4_3O:BANKJ4] +Du hãngst zu sehr an der Illusion der Ewigkeit. + +[BNK4_3P:BANKJ4] Was? -[NEDS4BD:NEDS4] -Danke nochmals für deine Hilfe, Toni! +[BNK4_3Q:BANKJ4] +Du denkst, alles bleibt ewig. -[NEDS4BE:NEDS4] -Scheiße, was soll das? +[BNK4_3R:BANKJ4] +Jugend, geliebte Menschen, Pizza, -[NEDS4BF:NEDS4] -WER SIND SIE? +[BNK4_3S:BANKJ4] +Alles geht mal vorbei, und das musst du akzeptieren. -[NEDS422:NEDS4] -Besorg dir bei Phil Cassidy's Fully Cocked Gun Shop einen Raketenwerfer. +[BNK4_3T:BANKJ4] +Hey, du hast recht. Danke, Cam. -[NEDS4_7:NEDS4] -~w~Du musst verhindern, dass die ~r~Promis~w~ den Radiosender LCFR erreichen! +[BNK4_3U:BANKJ4] +Nichts zu danken. -[NEDS416:NEDS4] -~w~Du musst verhindern, dass die ~r~Promis~w~ den Radiosender LCFR erreichen! +[BNK4_3V:BANKJ4] +Hey, Tommy, wieso halten wir? -[NEDS419:NEDS4] -~w~Schwere Waffen bekommst du in Phil Cassidy's Fully Cocked Gun Shop. +[BNK4_4A:BANKJ4] +~w~Hilary, fahr ein bisschen um den Block. -[NEDS420:NEDS4] -~w~Vater Ned hat einen Raketenwerfer gekauft. Hol ihn bei Phil Cassidy's Fully Cocked Gun Shop ab. +[BNK4_5:BANKJ4] +~w~Ok, Tommy, ok. -[NEDS4_6:NEDS4] -~w~Schwere Waffen bekommst du in Phil Cassidy's Fully Cocked Gun Shop. +[BNK4_6:BANKJ4] +~w~DIES IST EIN ÜBERFALL! -{=================================== MISSION TABLE DONS1 ===================================} +[BNK4_7:BANKJ4] +~w~KEINER BEWEGT SICH! -[MORG_01:DONS1] -2-2-3, 3-2-3, 4-2-3, 5-2-3-... +[BNK4_8:BANKJ4] +~w~ALLE AN DIE WAND! -[MORG_02:DONS1] -Antonio! Wie schön, dich zu sehen! +[BNK4_9:BANKJ4] +Phil, halt die Stellung! -[MORG_03:DONS1] -Was ist los? +[BNK4_10:BANKJ4] +Verstanden! -[MORG_04:DONS1] -Wir geben eine Party, mein lieber Junge. +[BNK4_11:BANKJ4] +Los Cam, der Tresor ist oben... -[MORG_05:DONS1] -Eine Leichenhausparty! +[BK4_12A:BANKJ4] +Verdammt, das ist ein Flange 9000! -[MORG_08:DONS1] -Was soll das sein, verdammt, 'ne Leichenhausparty? +[BK4_12B:BANKJ4] +Könnte Stunden dauern, den zu knacken. -[MORG_09:DONS1] -Das wird heute ein Mordsabend. +[BK4_12C:BANKJ4] +Oder 5 Minuten, wenn du den Manager findest. -[MORG_10:DONS1] -Doch zuerst müssen wir die Gäste abholen. +[BNK4_13:BANKJ4] +Ich seh nach, wo er sich verkrochen hat. -[MORG_11:DONS1] -Los, bevor sich unsere Gäste zu Tode langweilen. +[BK4_14A:BANKJ4] +Phil, alles im grünen Bereich? -[MORG_12:DONS1] -Ungeschickt formuliert! +[BNK4_15:BANKJ4] +Klar. Im dunkelgrünen Bereich. -[MORG_13:DONS1] -Sie sind nämlich schon tot. +[BNK4_16:BANKJ4] +Du da! Mitkommen! -[MORG_14:DONS1] -Unser Ehrengast macht gerade einen kleinen Ausflug in die Pathologie. +[BNK4_17:BANKJ4] +Ok! Ok! Nicht schießen! -[MORG_15:DONS1] -Lassen wir ihn nicht warten. +[BNK4_18:BANKJ4] +ICH SAGTE, KEINER RÜHRT SICH! -[MORG_06:DONS1] -- Die erste der Saison. ~n~ - Moment, Moment, Moment... +[BK4_19A:BANKJ4] +Der Safe hat eine Zeitsperre, -[DONS1_1:DONS1] -Kein(e) +[BK4_19B:BANKJ4] +ihr könnt ebenso gut gleich aufgeben! -[DL1_A:DONS1] -Ich gebe eine Leichenhausparty und du sollst die "Gäste" abholen. +[BK4_20A:BANKJ4] +Ach, die Zeitsperre kann ich umgehen. -[DL1_2:DONS1] -~r~Du hast das Auto zerstört. +[BK4_20B:BANKJ4] +Dann brauchen wir nur noch deinen Code und alles ist in Butter! -[DL1_3:DONS1] -Die Cops sind alarmiert. Werde deinen Fahndungslevel los! +[BNK4_21:BANKJ4] +Bleib hier. Wenn du Zicken machst, bist du Fischfutter, klar? -[DL1_4:DONS1] -Bring das Auto in Donalds ~y~Garage. +[BNK422A:BANKJ4] +Cam, wie lange noch? -[DL1_6:DONS1] -~r~ Der Leichenwagen hat das Polizeirevier erreicht. +[BK4_23A:BANKJ4] +Gib mir noch 3 Minuten! -[DL1_9:DONS1] -Fahr das Auto in die Lackiererei. +[BK4_24A:BANKJ4] +Ich seh mal nach Phil. Bin gleich wieder da. -[DL1_5:DONS1] -Klau den ~b~Leichenwagen~w~, ehe er sein Ziel erreicht. +[BK4_24B:BANKJ4] +Ich hab gesagt, Finger weg vom Alarm! -{=================================== MISSION TABLE DONS2 ===================================} +[BNK4_25:BANKJ4] +Das Spezialkommando muss gleich hier sein! -[DONS2AA:DONS2] -D.L.? +[BNK4_27:BANKJ4] +Ich könnte ein bisschen Hilfe brauchen, Tommy! -[DONS2AB:DONS2] -Toni! +[BNK4_28:BANKJ4] +Vice City Spezialkommando! Sie sind umzingelt! -[DONS2AC:DONS2] -Was macht der Wahlkampf? +[BNK4_29:BANKJ4] +Umzingelt? HA HA HA HAAAAAaaa! -[DONS2AD:DONS2] -Es ist fünf vor zwölf und jede einzelne Stimme zählt! +[BNK4_30:BANKJ4] +Die scheißen sich ein, die korrupten Schweine! -[DONS2AE:DONS2] -O'Donovans Helfer bearbeiten die umkämpften Wahlbezirke gnadenlos. +[BK4_31A:BANKJ4] +Tommy, der Tresor ist offen! -[DONS2AF:DONS2] -Wir haben auch einen Lautsprecherwagen - also ab, die Werbetrommel rühren! +[BK4_34A:BANKJ4] +Ok, wir haben die Pensionskasse der Bullen. Los, raus hier! -[DONS2BA:DONS2] -O'Donovan zum Bürgermeister! +[BK4_34B:BANKJ4] +Ok, ihr habt es so gewollt. Ihr hattet eure letzte Chance! -[DONS2BB:DONS2] -O'Donovan macht Schluss mit der Korruption! +[BK4_35A:BANKJ4] +Die stürmen den Laden! -[DONS2BC:DONS2] -O'Donovan, der Bürgermeister Ihres Vertrauens! +[BK4_35B:BANKJ4] +In Deckung! -[DONS2BD:DONS2] -Gegen das Verbrechen, für O'Donovan! +[BNK4_94:BANKJ4] +~w~Ok, Jungs. Jeder hãlt sich an den Plan . -[DONS2BE:DONS2] -Wählt Gerechtigkeit! Wählt O'Donovan! +[BM_DEAD:BANKJ4] +~r~Du brauchst den Bank Manager lebend!! -[DONS2CA:DONS2] -O'Donovan hat drei Ehefrauen! +[ASSET_A:BANKJ4] +BANK-MISSIONEN ERFÜLLT! -[DONS2CB:DONS2] -Wer ist fett und verfressen? O'Donovan! +[ASSET_B:BANKJ4] +~g~Der Malibu Club generiert nun bis zu $~1~ Einkünfte. Hol dir das Geld regelmãßig ab. -[DONS2CC:DONS2] -O'Donovan ist ein Junkie! +[IDIOT:BANKJ4] +~r~Na super - angezogen wie ein Irrer durch die Gegend laufen und Aufmerksamkeit erregen, IDIOT! -[DONS2CD:DONS2] -O'Donovan will Analverkehrspflicht einführen! +{=================================== MISSION TABLE BARON1 ===================================} -[DONS2CE:DONS2] -O'Donovan ist ein Kommunist! +[COK1_A:BARON1] +Komm schon, Brauner, komm! -[DONS2CF:DONS2] -O'Donovan zieht die Slips seiner Tochter an! +[COK1_B:BARON1] +Dãmlicher Klepper! Dich mach ich einen Kopf kürzer! -[DONS2CG:DONS2] -O'Donovan macht Striptease vor Schweinen! +[COK1_C:BARON1] +Wer ist der Blödmann? -[DONS2CH:DONS2] -O'Donovan hasst Amerika! +[COK1_D:BARON1] +Tommy Vercetti, Sie erinnern sich. -[DONS2CI:DONS2] -Love schafft Steuer für Reiche ab! +[COK1_E:BARON1] +Tschuldigung, ich bin etwas nervös. Vertrau niemals einem verdammten Pferd! -[DONS2CJ:DONS2] -Love für Pathologie-Unterricht an Schulen! +[COK1_F:BARON1] +Du machst deine Sache gut. Du arbeitest jetzt für mich. -[DONS2CK:DONS2] -Donald Love für allgemeinen Leichenhauszugang! +[COK1_H:BARON1] +Wie gesagt, Amigo, du arbeitest für mich. Basta. So ein Mistkerl hat mich betrogen. -[DONS2CL:DONS2] -Donald Love ist ein Kriegsheld! +[COK1_I:BARON1] +Er denkt, ich weiß nicht, wie viel Geld mir zusteht. Aber 3% zu klauen ist genauso schlimm wie 100% zu klauen. -[DONS2CM:DONS2] -Wer Love wählt, wählt Zufriedenheit! +[COK1_J:BARON1] +Niemand haut mich übers Ohr. NIEMAND!! -[DONS2CN:DONS2] -Donald Love: kein Pardon für Vegetarier! +[COK1_K:BARON1] +Folge ihm von seiner Wohnung aus und sieh nach, wo er hin will. Spãter erledigen wir ihn. -[DONS2_1:DONS2] -~w~Steig in den ~b~Van. - -[DONS2_3:DONS2] -~w~O'Donovan hat seine ~r~Vans~w~ losgeschickt, um sich die Stimmen zurückzuholen! - -[DONS2_4:DONS2] -~r~Du hast nicht genug Stimmen geholt! - -[DONS2_6:DONS2] -~w~Restzeit - -[DONS2_7:DONS2] -~w~Steig wieder in den ~b~Van~w~ und setze die Mission fort. - -[DONS2_9:DONS2] -~w~O'Donovan hat noch einen ~r~Van~w~ losgeschickt! - -[DONS210:DONS2] -~w~Bezirke gewonnen - -[DONS211:DONS2] -~r~Du hast alle Wahlbezirke verloren! - -[DONS212:DONS2] -~r~Du hast es nicht geschafft, die Gegner auszuschalten! - -[DONS2_2:DONS2] -~w~Fahr die ~y~Checkpoints der umkämpften Wahlbezirke~w~ ab, um dort Stimmen zu gewinnen. - -[DONS215:DONS2] -~w~Du hast einen ~y~Bezirk~w~ an O'Donovan verloren! - -[DONS216:DONS2] -~w~Verhindere, dass O'Donovan alle ~y~Bezirke~w~ zurückgewinnt! - -[DONS213:DONS2] -~w~Jetzt wo du genug Bezirke hast, schalte die ~r~gegnerischen Vans~w~ aus, um zu verhindern, dass O'Donovan Bezirke dazugewinnt. - -[DONS2_8:DONS2] -~w~Gewinne mindestens 5 der ~y~Wahlbezirke. - -[DONS214:DONS2] -~w~Du hast weniger als 5 ~y~Bezirke~w~. Erobere sie zurück! - -[DONS217:DONS2] -~w~Hol dir zusätzliche Bezirke für eine höhere Belohnung. - -[DONS2_5:DONS2] -~r~Der Lautsprecherwagen wurde zerstört. - -[DONS218:DONS2] -~w~Gewinne mindestens 5 der ~y~Wahlbezirke~w~ vor ~1~:~1~ Uhr. - -[DONS219:DONS2] -~w~Gewinne mindestens 5 der ~y~Wahlbezirke~w~ vor 0~1~:~1~ Uhr. - -[DONS220:DONS2] -~w~Gewinne mindestens 5 der ~y~Wahlbezirke~w~ vor 0~1~:0~1~ Uhr. - -[DONS221:DONS2] -~w~Gewinne mindestens 5 der ~y~Wahlbezirke~w~ vor ~1~:0~1~ Uhr. - -[DONS230:DONS2] -~w~Jetzt wo du genug Bezirke hast, schalte den ~r~gegnerischen Van~w~ aus, um zu verhindern, dass O'Donovan Bezirke dazugewinnt. - -{=================================== MISSION TABLE DONS3 ===================================} - -[CAMP_01:DONS3] -Antonio! Que pasa, amigo? - -[CAMP_02:DONS3] -Don, Sie wissen, dass ich Italiener und kein Spanier bin. - -[CAMP_03:DONS3] -Natürlich, wie dumm von mir. Ich liebe einfach alle romanischen Sprachen. - -[CAMP_04:DONS3] -Gott, ist das lecker. - -[CAMP_05:DONS3] -Schmeckt wie Hühnchen, nur irgendwie, äh, mit mehr Biss. - -[CAMP_06:DONS3] -Möchtest du was? - -[CAMP_07:DONS3] -Ich hab schon gegessen. - -[CAMP_08:DONS3] -Schade. Schmeckt fantastisch. - -[CAMP_09:DONS3] -Ich lasse gleich weitere Delikatessen auftischen... - -[CAMP_10:DONS3] -Wär ein gefundenes Fressen für die Liberalen, natürlich, - -[CAMP_11:DONS3] -doch was verstehen die von den wahren Freuden des Lebens? - -[CAMP_12:DONS3] -Weltläufigkeit und Demokratie konnten es noch nie so recht miteinander. - -[CAMP_13:DONS3] -Hören Sie, Don, wir müssen diese Wahl gewinnen. - -[CAMP_14:DONS3] -Deshalb müssen wir sichergehen, dass es keine Leichen im Keller gibt, - -[CAMP_15:DONS3] -wenn Sie mich verstehen. - -[CAMP_16:DONS3] -Alles klar. - -[CAMP_17:DONS3] -Ich meine damit... - -[CAMP_18:DONS3] -Was machen wir mit diesem O'Donovan, der als Strohmann für die... - -[CAMP_19:DONS3] -der für die Forellis antritt? - -[CAMP_20:DONS3] -Der Mann hat 'ne Menge prominente Wahlhelfer, - -[CAMP_21:DONS3] -lauter verblendete Sozialromantiker, wenn Sie mich verstehen. - -[CAMP_22:DONS3] -Wir müssen ihren Glauben an die Demokratie ins Wanken bringen. - -[CAMP_23:DONS3] -Sie meinen, ich soll ihnen die Zähne rausschlagen? - -[CAMP_24:DONS3] -Ach, deine Leidenschaft, Antonio, ist... grandios. - -[CAMP_25:DONS3] -Sie ist so, ähm, wagnerianisch! Verstehst du? Arrivederci, amigo. - -[CAMP_26:DONS3] -Humphries, trag die Kaldaunen auf! - -[DONS3_1:DONS3] -Toni muss die gegnerischen Wahlhelfer loswerden, um den Wahlkampf des Forelli-Kandidaten O'Donovan möglichst wirkungslos zu machen. - -[DONS3_2:DONS3] -~w~Erledige die gegnerischen ~r~Wahlhelfer. - -[DONS3_3:DONS3] -~r~Zu spät. Die Zeit ist um. - -[DONS3_4:DONS3] -Diese ~r~Wahlkampfhelfer ~w~wären erledigt. Mach die nächsten fertig. - -[DONS3_5:DONS3] -~w~Erledige die gegnerischen ~r~Wahlkampfhelfer ~w~vor ~1~:~1~ Uhr - -[DONS3_6:DONS3] -~w~Erledige die gegnerischen ~r~Wahlkampfhelfer ~w~vor ~1~:0~1~ Uhr - -[DONS3_7:DONS3] -~w~Erledige die gegnerischen ~r~Wahlkampfhelfer ~w~vor 0~1~:~1~ Uhr - -[DONS3_8:DONS3] -~w~Erledige die gegnerischen ~r~Wahlkampfhelfer ~w~vor 0~1~:0~1~ Uhr - -{=================================== MISSION TABLE DONS4 ===================================} - -[DONS410:DONS4] -Fahr zum ~y~Lagerhaus der Forellis~w~ und verbrenne ihre Stimmzettel! - -[DONS411:DONS4] -Verbrenne die ~r~Stimmzettel~w~ und zerstöre die ~r~Druckmaschinen! - -[DONS412:DONS4] -Zerstöre die ~r~Druckmaschine! - -[DONS413:DONS4] -Verbrenne ALLE ~r~Stimmzettel! - -[DONS414:DONS4] -Zerstöre die restlichen ~r~Forelli-Vans! - -[DONS416:DONS4] -~r~Ein Forelli-Van ist entkommen! Die Forellis können die Wahl manipulieren. - -[DONS418:DONS4] -Noch ~r~~1~ Paletten~w~ gefälschter Stimmzettel sind übrig. - -[DONS419:DONS4] -Nur noch ~r~1 Palette~w~ gefälschter Stimmzettel ist übrig. - -[DONS420:DONS4] -Zerstöre den letzten ~r~Forelli-Van! - -[DONS421:DONS4] -Die Druckmaschine ist zerstört! Zerstöre jetzt die andere ~r~Druckmaschine! - -[DONS422:DONS4] -Die Druckmaschine ist zerstört! - -[DONS423:DONS4] -Hau jetzt ab! - -[DONS424:DONS4] -Zerstöre die ~r~Druckmaschinen! - -[DS4_AA:DONS4] -So viele Menschen, so viel Geld. Man muss nur zugreifen. - -[DS4_AB:DONS4] -Ich blick bei Politik nicht durch. - -[DS4_AC:DONS4] -Wer tut das schon? Ist alles nur Bluff und Korruption. - -[DS4_AD:DONS4] -Die Forellis sind stille Teilhaber der Firma, die die neuen Wahlautomaten herstellt. - -[DS4_AE:DONS4] -Nicht gut, oder? - -[DS4_AF:DONS4] -Trauen können wir ihnen keinesfalls. - -[DS4_AG:DONS4] -Das Beste wäre, sie hätten alle einen SCHWEREN Defekt, verstehst du? - -[DONS4H1:DONS4] -Schwere Waffen bekommst du in Phil Cassidy's Fully Cocked Gun Shop. - -[DONS4AA:DONS4] -Antonio! Schön, dich zu sehen. - -[DONS4AB:DONS4] -Ich bin wahrlich kein Demokrat, aber Wahlbetrug geht selbst mir zu weit. - -[DONS4AC:DONS4] -Weißt du, dass die Forellis stille Teilhaber der Firma sind, die die neuen Wahlautomaten herstellt? - -[DONS4AD:DONS4] -Nicht gut, oder? - -[DONS4AE:DONS4] -Trauen können wir ihnen keinesfalls. - -[DONS4AF:DONS4] -Das Beste wäre, sie hätten alle einen SCHWEREN Defekt, verstehst du? - -[DONS4_8:DONS4] -Fahr zu Phil Cassidy's Fully Cocked Gun Shop. - -[DONS4H2:DONS4] -Phil Cassidy's Fully Cocked Gun Shop ist als Fähnchen auf dem Radar sichtbar. - -[DONS427:DONS4] -Jetzt verschwinde aus Fort Staunton! - -[DONS4_9:DONS4] -Phil Cassidy's Fully Cocked Gun Shop rüstet dich mit dem Nötigen aus, um den Forelli-Wahlkampf lahmzulegen. - -[DONS417:DONS4] -In Phil Cassidy's Fully Cocked Gun Shop gibt es noch einen Flammenwerfer. - -[DONS425:DONS4] -Hol den Flammenwerfer von Phil Cassidy's Fully Cocked Gun Shop. - -[DONS426:DONS4] -~r~Der Verkäufer ist hinüber! - -[DONS4H3:DONS4] -Donald Love hat einen Flammenwerfer gekauft. Hol ihn an der Kasse ab. - -{=================================== MISSION TABLE DONS5 ===================================} - -[DONS5_7:DONS5] -Beschütze Donalds Limo! - -[DONS5_9:DONS5] -~r~Donald Love ist hinüber! - -[DONS513:DONS5] -Schaden Limo - -[DONS516:DONS5] -Steig in die ~b~Limo. - -[DONS517:DONS5] -Du hast ~b~Donald Love~w~ zurückgelassen! - -[DONS519:DONS5] -Bring Donald zu seinem ~y~Versteck! - -[DONS520:DONS5] -Erledige die ~r~Angreifer! - -[DONS521:DONS5] -Steig in die ~b~Limo. - -[DS5_AA:DONS5] -Ich hasse Rummel, aber der gehört nun mal dazu, was? - -[DS5_AB:DONS5] -Leider ja. - -[DS5_AC:DONS5] -Die Forellis werden versuchen, mich umzunieten, nicht? - -[DS5_AD:DONS5] -Keine Angst, ich fahr mit gezückter Knarre. - -[DS5_AE:DONS5] -Nun gut, Augen zu und durch. - -[DS5_BA:DONS5] -Scheiße! Das gibt's nicht! - -[DS5_BB:DONS5] -Keine Panik, ich kümmere mich um die Ärsche! - -[DS5_BC:DONS5] -Im Kofferraum liegt ein Gewehr! - -[DS5_BD:DONS5] -Sperren Sie ab, es dauert nicht lange! - -[DS5_CA:DONS5] -Okay, wir können. - -[DS5_CB:DONS5] -Da ist noch ein Killer hinter uns her! - -[DS5_DA:DONS5] -Als Einsiedler kann ich keinen Wahlkampf führen. - -[DS5_DB:DONS5] -Eventuell müssen wir eine andere Taktik erwägen. - -[DONS522:DONS5] -Bring Donald zurück zu seinem ~y~Gebäude! - -{=================================== MISSION TABLE DONS6 ===================================} - -[DONS6_1:DONS6] -KEIN(E) - -[DS6_00:DONS6] -Folge dem ~b~Stimmzettel-Van. - -[DS6_01:DONS6] -Warte, bis der ~b~Kurier ~w~die Übergabe vorgenommen hat. - -[DS6_02:DONS6] -Hol dir die Stimmzettel von dem ~r~Kurier. - -[DS6_03:DONS6] -Erledige den ~r~Kurier. - -[DS6_04:DONS6] -Nimm das ~g~Päckchen. - -[DS6_05:DONS6] -Folge dem ~b~Stimmzettel-Van~w~ weiter. - -[DS6_06:DONS6] -~r~Du hast einen Kurier vor der Übergabe erledigt! - -[DS6_07:DONS6] -Du hast eine Übergabe verpennt, eine zweite darfst du nicht verpassen! - -[DS6_08:DONS6] -~r~Du hast eine zweite Übergabe verpasst. Das Wahlergebnis steht fest! - -[DS6_09:DONS6] -Du hast ihn verschreckt! - -[DS6_10:DONS6] -~r~Der Van wurde zerstört! - -[DS6_11:DONS6] -Die Zeit ist um! - -[DS6_12:DONS6] -~r~Der Van ist dir entwischt! - -[DS6_13:DONS6] -~r~Ohne Fahrer kann der Van nicht fahren! - -[DS6_15:DONS6] -~r~Du hast den Fahrer verschreckt. Jetzt erwischst du ihn nie! - -[DS6_16:DONS6] -~1~ - -[DS6_17:DONS6] -~w~Der Fahrer ist tot. Fahr den Van zu ~y~Donalds Garage. - -[DONS6AA:DONS6] -Schlechte Nachricht, Toni! - -[DONS6AB:DONS6] -Was ist? - -[DONS6AC:DONS6] -Laut Hochrechnung steht es Kopf an Kopf. - -[DONS6AD:DONS6] -Zeit für Plan B. - -[DONS6AE:DONS6] -Wir müssen die noch nicht ausgezählten Stimmzettel klauen und durch unsere eigenen ersetzen. - -[DONS6AF:DONS6] -Wie standen Sie noch mal zu Wahlbetrug? - -[DONS6AG:DONS6] -Ach, halt den Mund! - -[DS6_14:DONS6] -Hol die ~g~Stimmzettel~w~. Du darfst sie nicht liegen lassen! - -[DS6_66:DONS6] -~r~Du hast das Auto des Kuriers vor der Übergabe zerstört! - -[DS6_18:DONS6] -Du hast einen Kurier vor der Übergabe erledigt! Erledige nicht noch weitere! - -[DS6_21:DONS6] -Beeil dich! Es findet eine weitere Übergabe statt! - -[DS6_22:DONS6] -Du hast die erste Übergabe verpasst, eine weitere darfst du nicht verpassen! - -[DS6_23:DONS6] -Du hast die zweite Übergabe verpasst, eine weitere darfst du nicht verpassen! - -[DS6_24:DONS6] -Du hast die dritte Übergabe verpasst, eine weitere darfst du nicht verpassen! - -[DS6_25:DONS6] -Du hast die vierte Übergabe verpasst, eine weitere darfst du nicht verpassen! - -[DS6_26:DONS6] -Du hast den Kurier vor der Übergabe vertrieben! Vertreibe nicht noch einen! - -[DS6_28:DONS6] -~r~Du hast es vermasselt! Jetzt kann die Wahl nicht mehr manipuliert werden! - -{=================================== MISSION TABLE DONS7 ===================================} - -[ELEC_01:DONS7] -Hey, Don, ich hab das Schlamassel beseitigt. - -[ELEC_02:DONS7] -Jetzt dürfte alles glatt gehen. - -[ELEC_03:DONS7] -Ach, wirklich? - -[ELEC_04:DONS7] -Mit der Mafia sind Sie nicht mehr in Verbindung zu bringen. - -[ELEC_05:DONS7] -Ihre Weste ist blütenweiß. Sie könnten Papst werden. - -[ELEC_07:DONS7] -Obwohl keine nachweislichen Verbindungen zwischen Donald Love - -[ELEC_08:DONS7] -und dem organisierten Verbrechen bestehen, - -[ELEC_09:DONS7] -scheint seine Freundschaft mit Mafiosi wie Toni Cipriani - -[ELEC_11:DONS7] -den Wählern ein beträchtlicher Dorn im Auge zu sein. - -[ELEC_12:DONS7] -Seit einigen Stunden fallen seine Quoten in den Keller. - -[ELEC_13:DONS7] -Man wähnt ihn wohl untauglich für das Amt... - -[ELEC_14:DONS7] -Untauglich! Deinetwegen... - -[ELEC_15:DONS7] -Ja. Das ist nur deine Schuld. - -[ELEC_16:DONS7] -Meine Schuld? - -[ELEC_17:DONS7] -Oh ja. - -[ELEC_18:DONS7] -Meine Schuld? - -[ELEC_19:DONS7] -Dabei habe ich solche Opfer für diese Stadt gebracht! - -[ELEC_20:DONS7] -Und weißt du, was von Anfang an mein Schwachpunkt war? - -[ELEC_21:DONS7] -Bescheidenheit! Ich bin ruiniert. - -[ELEC_22:DONS7] -Bankrott! 20 Mio Dollar versenkt. - -[ELEC_23:DONS7] -Futsch... bankrott...erledigt! Arrivederci! Bankrott! - -[ELEC_06:DONS7] -Papst! Sieh mal. - -[DONS7_1:DONS7] -O'Donovan bringt Donald Love mit Salvatore Leone in Verbindung. Loves politische Karriere steht auf dem Spiel. Toni muss die Beweise vernichten. - -[DONS7_2:DONS7] -~w~Klau den ~b~Van~w~ mit dem Beweismaterial. - -[DONS7_3:DONS7] -~r~Du hast den Kontaktmann erledigt. - -[DONS7_4:DONS7] -~w~Fahr den Van zum ~y~Übergabeort. - -[DONS7_5:DONS7] -~w~Steig wieder in den ~b~Van. - -[DONS7_7:DONS7] -Steig ins ~b~Auto des Kontaktmanns. - -[DONS7CA:DONS7] -Toni! - -[DONS7CB:DONS7] -Das Beweismaterial ist in dem Van da vorn. - -[DONS7CC:DONS7] -Du musst gewaltsam eindringen. - -[DONS7CD:DONS7] -Fahr den Van zu D.L. - -[DONS7CE:DONS7] -Viel Glück! - -[DONS713:DONS7] -~w~Park den Van in der ~y~Garage. - -[DONS714:DONS7] -~r~Du hast den Van zerstört! - -[RMN_AA:DONS7] -Heute Abend gibt es Anlass zum Feiern, denn der Arbeitskampf, der Liberty City lahm legte, - -[RMN_AB:DONS7] -wurde endlich beendet. - -[RMN_AC:DONS7] -Sämtliche U-Bahnen und Fähren haben den Betrieb wieder aufgenommen. - -[RMN_AD:DONS7] -Auch die Brücke, die Staunton Island mit Shoreside Vale verbindet, ist wieder geöffnet. - -[RMN_AE:DONS7] -Die Streikenden legten ihre Transparente nieder und begaben sich wieder an ihre Arbeitsplätze, - -[RMN_AF:DONS7] -nachdem der neu ins Amt gewählte Bürgermeister O'Donovan ihnen folgende Garantie gab: - -[RMN_AG:DONS7] -Als Ihr Bürgermeister verbürge ich mich für den dauerhaften Fortbestand des Fährbetriebs in Liberty City. - -[RMN_AH:DONS7] -Doch für manchen klingt sein Versprechen wenig überzeugend - -[RMN_AI:DONS7] -angesichts der unverminderten Bautätigkeiten am Porter Tunnel. - -[DONS7_6:DONS7] -~w~Triff dich mit Donald Loves ~b~Kontaktmann~w~ unter der Überführung in Newport. - -{=================================== MISSION TABLE RAYS1 ===================================} - -[SAYO_01:RAYS1] -Dann bist du die lästige Hämorrhoide? - -[SAYO_02:RAYS1] -Wie bitte? - -[SAYO_03:RAYS1] -Du hast 'n Haufen wichtige Leute ziemlich sauer gemacht. - -[SAYO_04:RAYS1] -Leon McAffrey, LCPD. - -[SAYO_05:RAYS1] -Ich hab keine Ahnung, wovon Sie reden. - -[SAYO_06:RAYS1] -Ich bin in der Gastronomiebranche. - -[SAYO_07:RAYS1] -Wie du willst, Schlaumeier. - -[SAYO_08:RAYS1] -Ist mir scheißegal, wenn ihr Arschlöcher euch gegenseitig umpusten wollt. - -[SAYO_09:RAYS1] -Mich interessiert nur mein Anteil. - -[SAYO_12:RAYS1] -Mein Anteil! Wo ist er? - -[SAYO_13:RAYS1] -In deinem Arsch, du Witzfigur. - -[SAYO_14:RAYS1] -Hör auf mit dem Scheiß, sonst lass ich dich, deine Bekannten und ihre Verwandten, - -[SAYO_15:RAYS1] -dein ganzes Heimatkaff über die Klinge springen. - -[SAYO_16:RAYS1] -Reg dich ab. Geh 'ne Runde vögeln. - -[SAYO_17:RAYS1] -Wir sind gleichberechtigte Geschäftspartner. - -[SAYO_18:RAYS1] -Ich halte euch die Bullen und Mafiajäger vom Hals, - -[SAYO_19:RAYS1] -und ihr haltet mich angemessen bei Kasse. - -[SAYO_20:RAYS1] -Und woher weiß ich, dass ich nicht zur wandelnden - -[SAYO_21:RAYS1] -Weihnachtsgans für jeden korrupten Cop zwischen hier und Vice City werde? - -[SAYO_22:RAYS1] -Mit mir kriegt ihr die Stadt unter eure Kontrolle. - -[SAYO_23:RAYS1] -Dafür verlange ich Kohle und Erkenntlichkeit. - -[SAYO_24:RAYS1] -Los, Toni, machen wir 'ne kleine Tour. - -[SAYO_25:RAYS1] -Wir fahren zu deinen alten Freunden, den Sindaccos. - -[SAYO_10:RAYS1] -- Ich mag Männer mit Prinzipien. ~n~ - Ich auch. Ich fahr auf alle ihre Beerdigungen mit heißen Puppen in schnellen Autos. - -[RS1_YK:RAYS1] -Schaden - -[RS1_01:RAYS1] -Beseitige die ~r~Sindaccos. - -[RS1_02:RAYS1] -~r~Das Auto wurde zerstört! - -[RS1_03:RAYS1] -~r~Die Yakuza wurden massakriert! - -[RS1_04:RAYS1] -~w~Erledige ein paar ~r~Sindaccos~w~, damit sie dich bemerken. - -[RS1_05:RAYS1] -~w~Steig in Leons ~b~Auto. - -[RS1_06:RAYS1] -~w~Fahr ins ~y~Sindacco-Gebiet. - -[RS1_07:RAYS1] -~w~Geh wieder zum ~b~Auto. - -[RS1_10:RAYS1] -~r~Du hast Leon umgelegt! - -[RAYS1AA:RAYS1] -Gut, ich fahre und du ballerst los! - -[RAYS1AB:RAYS1] -Ich denke, die Yakuza erledigen die grobe Arbeit? - -[RAYS1AC:RAYS1] -Nur wer sich anpasst, überlebt, Cipriani! - -[RAYS1BA:RAYS1] -Scheiße, die Sache wird Wellen schlagen. - -[RAYS1BB:RAYS1] -Ich muss mich dünne machen. Bis demnächst, Toni. - -[RAYS1CA:RAYS1] -Augen geradeaus, Toni! - -[RAYS1CB:RAYS1] -Hinter uns, Toni, hinter uns! - -[RAYS1CC:RAYS1] -Vorsicht, links! - -[RAYS1CD:RAYS1] -Rechts, Toni, rechts! - -[RAYS1CE:RAYS1] -Steig wieder ein! - -[RAYS1CF:RAYS1] -Pass gefälligst auf! - -[RAYS1OS:RAYS1] +[COK1_1:BARON1] Oh, Shit! -{=================================== MISSION TABLE RAYS2 ===================================} +[COK1_2:BARON1] +Zu langsam, Opa! -[RS2_02:RAYS2] -~w~Schwing dich auf ein ~b~Motorrad! +[COK1_4:BARON1] +Versager. -[RS2_03:RAYS2] -~w~Locke die Motorradfahrer in die ~y~Todeszone! +[COK1_5:BARON1] +Ich würde einen Zahn zulegen, du Mistsack! -[RS2_04:RAYS2] -~w~Kehr um! Du darfst keine ~r~Forellis ~w~zurücklassen! +[COK1_8:BARON1] +~g~Schnell! Schnapp dir einen Untersatz und folge ihm! -[RS2_05:RAYS2] -~w~Steig auf das ~b~Motorrad! +[COK1_9:BARON1] +~r~Du sollst ihn verfolgen, nicht umlegen! -[RS2_06:RAYS2] -~r~Du musst die Forellis mit dem Motorrad weglocken. +[COK1_10:BARON1] +~r~Begib dich zum Haus des Diebes und such das Geldversteck. -[RS2_07:RAYS2] -~r~Die Yardies wollten selber Forelli-Hackepeter machen. +[COK1_11:BARON1] +~g~Schau durch sein Fenster. -[RS2_08:RAYS2] -~r~Kein Yardie hat überlebt! +[COK1_7:BARON1] +~g~Er ist aufs Dach geflohen. Bleib ihm auf den Fersen, aber erledige ihn nicht. -[RS2_09:RAYS2] -~1~ +[COK1_G:BARON1] +Ich arbeite gegen Geld. -[RS2_10:RAYS2] -~r~Ohne Motorräder können sie dich nicht verfolgen! +{=================================== MISSION TABLE BARON2 ===================================} -[RAYS2AA:RAYS2] -Hast dir Zeit gelassen, Toni. +[COK2_A:BARON2] +Was bist du eigentlich für ein inkompetenter Narr? -[RAYS2AB:RAYS2] -Sie können mich mal kreuzweise. +[COK2_B:BARON2] +NARR! NARR! NARR! NARR! -[RAYS2AD:RAYS2] -Nett. Hör zu. +[COK2_C:BARON2] +Tommy- -[RAYS2AE:RAYS2] -Die Yardies strecken die Gierfinger nach Forelli-Gebiet in Newport aus. +[COK2_D:BARON2] +Was, Ricardo? -[RAYS2AF:RAYS2] -Fahr hin und locke die Forelli-Schergen zum Krankenhaus in Rockford. +[COK2_E:BARON2] +Diese Idioten - dauernd wollen sie einen reinlegen. -[RAYS2AG:RAYS2] -Die Yardies werden auf sie warten. +[COK2_F:BARON2] +Das ist der Fehler an dieser Branche. -[RAYS2AH:RAYS2] -Was springt für Sie raus? +[COK2_G:BARON2] +Was soll denn das? Aaaaah! -[RAYS2AI:RAYS2] -Ich schulde denen was. Bis dann. +[COK2_H:BARON2] +Diese Mistkerle haben mich bitter enttãuscht. -[RS2_11:RAYS2] -Töte keinen von den Forellis! +[COK2_I:BARON2] +Bald denkt jeder Depp, er kann in Vice City Koks verkaufen. -[RS2_12:RAYS2] -Mach ~r~sie ~w~fertig! +[COK2_J:BARON2] +Was kommt als nãchstes, hah? Die verstunkene Mafia?! -[RS2_01:RAYS2] -~w~Klau ein ~b~Motorrad~w~ der Forellis. Aber töte keinen von ihnen. +[COK2_K:BARON2] +Diese Bandengegend ist eine Festung ohne Mauern. -[RAYS2DB:RAYS2] -Ja. Kommt, machen wir sie fertig! +[COK2_L:BARON2] +Also: Quentin hier - Quentin! QUENTIN! -[RS2_13:RAYS2] -~r~Es sind zu viele Yardies umgekommen! +[COK2_M:BARON2] +Er fliegt dich über das Areal. -{=================================== MISSION TABLE RAYS3 ===================================} +[COK2_N:BARON2] +Heb ihr Nest aus! -[CRAZ_01:RAYS3] -Mit welcher Schandtat in meinem früheren Leben hab ich Sie verdient? +[COK2_O:BARON2] +Was soll denn das? -[CRAZ_02:RAYS3] -Ray, Sie sind 40 Jahre alt und haben von Nichts 'ne Ahnung. +[COK2_P:BARON2] +Was willst du hier? -[CRAZ_03:RAYS3] -Wie sind Sie bloß so weit gekommen? +[COK2_Q:BARON2] +Hey, ich hab mich umgehört, und es ist klar, -[CRAZ_04:RAYS3] -Ein Wunder, dass Ihnen noch keiner 'ne Kugel in Ihre Mutter-Theresa-Birne gejagt hat. +[COK2_R:BARON2] +dass Diaz in den Deal reingeplatzt ist und meinen Bruder erledigt hat. -[CRAZ_05:RAYS3] -Nehmen Sie sich in Acht, Leon. +[COK2_S:BARON2] +Und dich erledigt er auch! -[CRAZ_06:RAYS3] -So'n Gerede geht echt zu weit, verdammt! +[COK2_T:BARON2] +Mit Diaz nehm ich's auf! -[CRAZ_07:RAYS3] -Wie? Wollen Sie zu Mammi laufen? +[COK2_U:BARON2] +Nein, hör zu! Ich übernehme Diaz - -[CRAZ_08:RAYS3] -Auf Daddys Schoß hüpfen? +[COK2_V:BARON2] +er beginnt mir zu vertrauen. -[CRAZ_09:RAYS3] -Sich 'nen Kuss abholen? +[COK2_1:BARON2] +Eines versteh ich nicht: Was soll das mit 'Quentin'!? -[CRAZ_10:RAYS3] -Hey, Toni! +[COK2_2:BARON2] +Weiß nicht. Hat mir immer gefallen...Quentin Vance... -[CRAZ_14:RAYS3] -Er sorgt dafür, dass ich alles nach Vorschrift mache. +[COK2_3:BARON2] +Vance? Du heißt wirklich Lance Vance?! -[CRAZ_15:RAYS3] -Toni Cipriani - Ray Machowski. +[COK2_4:BARON2] +Hey! Das hab ich schon in der Schule oft genug gehört! -[CRAZ_16:RAYS3] -Er gehört zu uns. Hey, wir fahren jetzt auf Mafiajagd. +[COK2_5:BARON2] +Hast du so was schon mal aus einem Helikopter abgefeuert? -[CRAZ_17:RAYS3] -Ab mit Ihnen ins Revier, 'nen Bericht schreiben. +[COK2_8:BARON2] +Wo fliegen wir denn hier? -[CRAZ_18:RAYS3] -Braver Junge... Los, Toni. +[COK2_9:BARON2] +Prawn Island. -[CRAZ_19:RAYS3] -Leon, Sie elendes Stück Scheiße. +[COK2_13:BARON2] +'Lance Vance'. Du armer Teufel. -[CRAZ_11:RAYS3] -- Stehen bleiben, Arschloch. ~n~ - Hey, langsam! Darf ich vorstellen: mein neuer Partner, Mr. Hip! +[COK2_14:BARON2] +Ok, wir sind gleich da. -[RAYS3_1:RAYS3] -Hilf den Yakuza, das Forelli-Gebiet in Belleville zu erobern. Der Spieler muss ~1~ Forellis nur mit einer Katana erledigen. +[COK2_15:BARON2] +Wir fliegen ein paar Mal drüber weg. -[RAYS3_2:RAYS3] -~w~Erledige ~1~ ~r~Forellis~w~ nur mit der griffbereiten Katana. +[COK2_16:BARON2] +Schalte so viele Kerle aus wie du kannst. -[RAYS3_3:RAYS3] -Hits +[COK2_17:BARON2] +Dann setze ich dich ab, und du bist auf dich allein gestellt. -[RAYS3_4:RAYS3] -~w~Du musst die ~r~Forellis~w~ mit der Katana erledigen. +[COK2_20:BARON2] +Shit! Das ist ja wie im Krieg hier! Schalt welche von den Schützen aus! -[RAYS3_5:RAYS3] -~w~Du hast keine Katana mehr. Hol dir eine ~g~neue. +[COK2_21:BARON2] +Wir werden getroffen, Mann! -[RAYS3_6:RAYS3] -~r~Die Zeit ist um. +[COK2_22:BARON2] +Reparaturen an dem Kübel hier kosten! Schalt sie aus! -[RAYS3_7:RAYS3] -~w~Erledige ~1~ ~r~Forellis~w~ nur mit der bereitgestellten Katana vor ~1~:~1~ Uhr +[COK2_23:BARON2] +Ok, von jetzt an bist du auf dich alleine gestellt. Viel Glück! -[RAYS3_8:RAYS3] -~w~Erledige ~1~ ~r~Forellis~w~ nur mit der bereitgestellten Katana vor ~1~:0~1~ Uhr +[COK2_24:BARON2] +Zustand Helikopter: -[RAYS3_9:RAYS3] -~w~Erledige ~1~ ~r~Forellis~w~ nur mit der bereitgestellten Katana vor 0~1~:~1~ Uhr +[COK2_25:BARON2] +~g~Hol das Geld auf dem Dach. -[RAYS310:RAYS3] -~w~Erledige ~1~ ~r~Forellis~w~ nur mit der bereitgestellten Katana vor 0~1~:0~1~ Uhr +[COK2_27:BARON2] +Du bist auf MEINEM Gebiet, Mistkerl! -{=================================== MISSION TABLE RAYS4 ===================================} +[COK2_28:BARON2] +Dich mach ich fertig! -[RAYS4_1:RAYS4] -~w~Die Yardies werden in Newport angegriffen. Erledige die angreifenden ~r~Sindaccos. +[COK2_6:BARON2] +Nein. Aber ich kann ja unterwegs ein bisschen üben. -[RAYS4_2:RAYS4] -~w~Sprich mit dem ~b~Boss der Yardie-Gang. +[OPEN_B:BARON2] +Die Straßensperren zum Festland sind aufgehoben worden. -[RAYS4_3:RAYS4] -~w~Folge dem ~b~Boss der Yardie-Gang. +{=================================== MISSION TABLE BARON3 ===================================} -[RAYS4_4:RAYS4] -~r~Ein Yardie wurde umgelegt! +[COK3_A:BARON3] +Das gefãllt euch nicht, was?! -[RAYS4_5:RAYS4] -~w~Beschütze die Yardies, bis der Krankenwagen kommt. +[COK3_B:BARON3] +Ahahahahaa, Ahahahahaa. -[RAYS4_6:RAYS4] -~w~Zurück! Beschütze die Yardies. +[COK3_C:BARON3] +Vorsicht! Passen Sie auf, wo Sie damit hin zielen! -[RAYS4_7:RAYS4] -~w~Räume den Yardies den Weg zum Krankenwagen frei. +[COK3_D:BARON3] +Kein Taubendreck mehr auf MEINEM Dach, was Tommy? -[RAYS4_8:RAYS4] -~w~Geh schon mal vor zum ~y~Krankenwagen. +[COK3_E:BARON3] +Sieht nicht so aus. -[RAYS4AA:RAYS4] -Cipriani, diese Zusammenkünfte müssen aufhören. +[COK3_F:BARON3] +Das kannst du laut sagen. Also, hör zu: -[RAYS4AB:RAYS4] -Meinetwegen. +[COK3_G:BARON3] +Weißt du, wem das schnellste Boot an der Ostküste gehört? -[RAYS4AC:RAYS4] -Zieh nicht so'n Gesicht. +[COK3_H:BARON3] +Nicht wirklich. -[RAYS4AD:RAYS4] -Was haben Sie für mich, McAffrey? +[COK3_I:BARON3] +MIR. Und das soll auch so bleiben. -[RAYS4AE:RAYS4] -Die Yardies tun sich 'n bisschen schwer damit, ihr frisch erworbenes Gebiet in Newport zu halten. +[COK3_J:BARON3] +Jeder Schmuggler von hier bis Caracas hat EINEN Traum: ein schnelleres Boot. -[RAYS4AF:RAYS4] -Die Sindaccos wollen es wohl zurück. +[COK3_K:BARON3] +Es heißt, die Hull Werft hat gerade so ein Boot fertiggestellt, -[RAYS4BA:RAYS4] -Rudyard hat 'ne Kugel abgekriegt! +[COK3_L:BARON3] +für irgendeinen costaricanischen Idioten. -[RAYS4BB:RAYS4] -Wir müssen ihm 'nen Krankenwagen holen! +[COK3_M:BARON3] +Und, Tommy...ICH WILL DIESES BOOT!!! -[RAYS4BC:RAYS4] -Scheiße! Noch mehr Sindacco-Penner! +[COK3_N:BARON3] +Ich glaube, die Tauben sind wieder da. -[RAYS4BD:RAYS4] -Ich hol den Krankenwagen. Hilf du meinen Jungs! +[COK3_O:BARON3] +Ah! Ich dachte, ich hab euch erwischt. Wo kommst du denn her? -[RAYS4BE:RAYS4] -Los, weg hier! +[COK3_P:BARON3] +Tauben! Boom! Aaaaah! -[RAYS4BF:RAYS4] -Da kommt der Krankenwagen! +[COK3_5:BARON3] +~g~Suche den Schalter, um das Boot abzusenken. -[RAYS4BG:RAYS4] -Danke, Mr. Cipriani, wir revanchieren uns! +[COK3_6:BARON3] +~g~Bringe das Boot zur Villa. -{=================================== MISSION TABLE RAYS5 ===================================} +[COK3_7:BARON3] +~r~Du hast das Boot zerstört! -[RAYS5_1:RAYS5] -KEIN(E) +[COK3_8:BARON3] +~g~Begib dich zur Bootswerft an den Docks und klau das schnellste Boot. -[RAYS5AA:RAYS5] -Was? Keine Blumen? +[COK3_9:BARON3] +~g~Jetzt steig in das Boot. -[RAYS5AB:RAYS5] -Wusste nicht, dass Sie Beerdigung haben. +{=================================== MISSION TABLE BARON4 ===================================} -[RAYS5AC:RAYS5] -Du bist ein Scherzkeks, Toni, ein echter Komiker. +[COK4_A:BARON4] +Eject! PLASTIKMÜLL! -[RAYS5AD:RAYS5] -Die Forellis machen ernst. +[COK4_B:BARON4] +Wie kannst du mir das antun? -[RAYS5AE:RAYS5] -Sie verschieben Waffen und reißen sich 'nen Teil davon selbst unter den Nagel. +[COK4_C:BARON4] +Was bildest du dir ein, du mieses Stück Plastikdreck! Aaargh! -[RAYS5AF:RAYS5] -Das riecht nach Ärger. +[COK4_D:BARON4] +VERDAMMT! -[RAYS5AG:RAYS5] -Sie schaffen die Knarren in Trucks nach Fort Staunton. +[COK4_E:BARON4] +Wenn das Ding meinen Lieblings-El-Burro-Film frisst, ist Sense! -[RAYS5AH:RAYS5] -War mir ein Vergnügen. +[COK4_F:BARON4] +Was kann ich noch tun? -[RAYS5AI:RAYS5] -Gleichfalls. +[COK4_G:BARON4] +Ist wahrscheinlich nicht eingesteckt. -[RAY5_2:RAYS5] -Sie holen Verstärkung. +[COK4_H:BARON4] +Was? -[RAY5_3:RAYS5] -~r~Die Forellis haben die Waffen! +[COK4_I:BARON4] +Verdammt. Egal, ich kann mir noch 100 davon kaufen. -[RAY5_4:RAYS5] -Hey, das ist Cipriani! +[COK4_J:BARON4] +Also, Tommy, -[RAY5_5:RAYS5] -Legt ihn um! +[COK4_K:BARON4] +jeden Monat legt ein 'Freiberufler' mit seiner Jacht in Vice City an. -[RAY5_6:RAYS5] -Einen erwischt. Zerstöre jetzt den zweiten ~r~Truck. +[COK4_L:BARON4] +Er verkauft seine Fracht an das erstbeste Schiff. -[RAY5_1:RAYS5] -Zerstöre die ~r~Trucks~w~, ehe sie ihr Ziel erreichen! +[COK4_M:BARON4] +Du schnappst dir das Rennboot, -[RAY5_7:RAYS5] -Zerstöre den ~r~Truck~w~, ehe sie sich genug Munition daraus geholt haben. +[COK4_N:BARON4] +und bist vor allen anderen Pennern bei ihm. -[RAY5_8:RAYS5] -~r~Du hast den Truck nicht rechtzeitig zerstört! +[COK4_O:BARON4] +Dann bringst du die Fracht hierher, ok? -{=================================== MISSION TABLE SALH1 ===================================} +[COK4_P:BARON4] +Lass mich raten. Du dachtest, ich brauche einen Schutzengel. -[SLH1_F1:SALH1] -~r~Du hast einen von den Hoods umgebracht. +[COK4_Q:BARON4] +Ich denke nur, du solltest mich mitnehmen, Mann. -[SLH1_F2:SALH1] -~w~Locke die Forellis heraus, indem du ihre ~r~Autos~w~ kaputtschlägst. +[COK4_R:BARON4] +Du kannst lange den einsamen Macho-Helden markieren, -[SLH1_F3:SALH1] -~w~Zahl es den ~r~Forellis~w~ heim. +[COK4_S:BARON4] +aber eines Tages werde ich dir den Hintern retten -[SLH1_F4:SALH1] -~w~Locke noch mehr Forellis heraus, indem du noch ein ~r~Auto~w~ kaputtschlägst. +[COK4_T:BARON4] +und du wirst mich wahrscheinlich dafür küssen wollen. -[SLH1_F5:SALH1] -~w~Lass die ~b~Hoods~w~ nicht zurück. +[COK4_U:BARON4] +Spinner. -[SLH1_B0:SALH1] -~w~Okay, Vetter. Mischen wir die Stadt auf. +[COK4_V:BARON4] +Hahahaha! -[SLH1_B1:SALH1] -~w~Hey! Komm zurück, Idiot! +[COK4_1:BARON4] +Tommy, wir wissen, es war Diaz, der unseren Deal platzen ließ. -[SLH1_B2:SALH1] -~w~Hey, du Witzbold! Da krieg ich meinen Arsch doch nicht mehr rein! +[COK4_3:BARON4] +Wieso spielen wir dann die Laufburschen für ihn? -[SLH1_B3:SALH1] -~w~Besser so! Denn ohne mich solltet ihr gar nicht erst losfahren! +[COK4_4:BARON4] +Je mehr wir jetzt lernen, desto weniger müssen wir lernen, wenn wir diese Stadt übernehmen! -[SLH1_B4:SALH1] -~w~Verdammt! Das war 'ne enge Kiste, Mann! +[COK4_5:BARON4] +Dein Stil gefãllt mir. Echt erfrischend. -[SLH1_B6:SALH1] -~w~...nimm's nicht persönlich, Toni. +[COK4_12:BARON4] +Pass auf, die kommen von überall -[SLH1_B7:SALH1] -~w~Es wird Zeit, dass die Hoods aufstehen und das Richtige machen! +[COK4_13:BARON4] +Erwischt! Fahr zu Diaz so schnell du kannst! -[SLH1_B8:SALH1] -~w~Kommt! Die machen wir fertig! +[COK4_14:BARON4] +Willst du was abhaben? -[SLH1_C0:SALH1] -~w~Mein Bruder! +[COK4_15:BARON4] +Schönen Gruß an die Fische! -[SLH1_C1:SALH1] -~w~Yo! Trottel! Wo willst du hin? +[COK4_16:BARON4] +Nimm das! Und das! -[SLH1_C2:SALH1] -~w~Und wo soll ich da meinen scheiß Arsch hinpflanzen? +[COK4_19:BARON4] +Gleich kommt's noch dicker! -[SLH1_C3:SALH1] -~w~Besser so! Denn ohne mich solltet ihr gar nicht erst losfahren! +[COK4_20:BARON4] +Da sind Schützen auf dem Pier! -[SLH1_C4:SALH1] -~w~Shiiit! Mann, ging da die Kacke ab! +[COK4_24:BARON4] +Gut geschossen, mein Freund. Du bist ein erstklassiger Psycho. -[SLH1_D0:SALH1] -~w~Hey! Das ist mein Auto! +[COK4_25:BARON4] +Danke sehr. -[SLH1_D1:SALH1] -~w~So gefällt mir das besser! +[COK4_26:BARON4] +Wir sehen uns, Tommy. -[SLH1_E0:SALH1] -~w~Verdammt, was ist hier los? +[COK4_27:BARON4] +Ok, Mr. Lance Vance Dance. -[SLH1_E1:SALH1] -~w~Wir kicken eure Ärsche raus hier! Das ist los! +[COK4_28:BARON4] +~g~Sei vor den anderen Booten bei der Jacht! -[SLH1_X0:SALH1] -Got threat +[COK4_31:BARON4] +~g~Begib dich zum schnellsten Boot auf dem Pier! -[SLH1_X1:SALH1] -Had threat +[COK4_32:BARON4] +~r~Zu langsam! -[SLH1_X2:SALH1] -Find threat +[COK4_33:BARON4] +~r~Du hast das Boot zerstört! -[SLH1_F0:SALH1] -~w~Hol die ~b~Hoods~w~ ab, dann zieh die Aufmerksamkeit der ~r~Forellis~w~ auf dich. +[COK4_34:BARON4] +~g~Zieh diese Boote aus dem Verkehr! -[RUFJ_01:SALH1] -Ihr Anwalt, Mr. Leone. +[COK4_35:BARON4] +Zustand Boot: -[RUFJ_02:SALH1] -Ich weiß schon, wer das ist! +{=================================== MISSION TABLE BARON5 ===================================} -[RUFJ_03:SALH1] -Komm, geh mir nicht auf den Keks. +[PROP_A:BARON5] +OBJEKT ERWORBEN! -[RUFJ_04:SALH1] -Ab mit dir, Kleiner. Bestell deiner Mutter 'nen Gruß von mir, capiche? +[COK4_30:BARON5] +~r~Lance ist erledigt! -[RUFJ_05:SALH1] -Na schön. Sie haben fünf Minuten. +[ASS1_A:BARON5] +Im Kofferraum sind ein paar Kanonen. -[RUFJ_06:SALH1] -Sagen Sie, äh, Lionel, Sie schauen gut aus. +[ASS1_B:BARON5] +Wahnsinn! Wo hast du denn die alle her? -[RUFJ_07:SALH1] -Sehen Sie mich an! +[ASS1_C:BARON5] +Hab ich für schlechte Zeiten zurückgelegt. -[RUFJ_08:SALH1] -Eben noch geachtetes Mitglied der Gesellschaft und jetzt im Knast. +[ASS1_D:BARON5] +Zufrieden? -[RUFJ_09:SALH1] -Da kann mir die Menschenfreundlichkeit echt vergehen! +[ASS1_E:BARON5] +Ja. Und wie! -[RUFJ_10:SALH1] -Gewiss, Mr. Leone. +[ASS1_F:BARON5] +Ihr dãmlichen Idioten! -[RUFJ_11:SALH1] -Wir tun, was in unserer Macht steht, um Sie heraus zu bekommen, +[ASS1_G:BARON5] +Mein schönes Haus -[RUFJ_12:SALH1] -damit Sie sich bald wieder dem Gemeinwohl widmen können. +[ASS1_H:BARON5] +Seht euch an, was ihr angestellt habt! -[RUFJ_13:SALH1] -Natürlich. +[ASS1_I:BARON5] +Das ist für meinen Bruder! -[RUFJ_14:SALH1] -Und dann verklagen wir sie für diese Unverfrorenheit! +[ASS1_J:BARON5] +Ich habe dir vertraut, Tommy. -[RUFJ_15:SALH1] -Diese Arschlöcher, die Sindaccos, oder die Forelli-Schwanzlutscher - wer war's? +[ASS1_K:BARON5] +Ich hãtte was aus dir gemacht... -[RUFJ_16:SALH1] -Wer hat mich verpfiffen? +[ASS1_L:BARON5] +Gute Nacht, Mr. Diaz. -[RUFJ_18:SALH1] -Wir machen sie beide fertig. +[ASS1_1:BARON5] +Bald wimmelt's hier von Arschlöchern. Sei vorsichtig. -[RUFJ_19:SALH1] -Sie haben beide ordentlich Prügel für diese Unverfrorenheit verdient. +[ASS1_2:BARON5] +Keine Panik, Tommy, ich geb dir Deckung. -[RUFJ_22:SALH1] -Danke. Toni, du bedeutest mir wirklich sehr viel, das weißt du. +[ASS1_13:BARON5] +DIAZ?! Ich bin hier, um deinen Laden zu übernehmen! -[RUFJ_23:SALH1] -Kann sein, dass du Unterstützung brauchst. +[ASS1_14:BARON5] +TOMMY! Du Verrãter...Du Idiot! Dich mache ich fix und fertig... -[RUFJ_24:SALH1] -Nimm die Hoods, okay? +[ASS1_16:BARON5] +~g~Erledige Diaz! -[RUFJ_25:SALH1] -Wie Sie meinen, Mr. Leone. +[BUD1:BARON5] +Lance -[RUFJ_26:SALH1] -Gut. Und jetzt raus hier... Lionel. +[ASS1_18:BARON5] +~g~Die Tür ist verschlossen. Versuche es auf einem anderen Weg. -[RUFJ_20:SALH1] -- Die Wichser. ~n~ - Es wird mir ein Vergnügen sein. +[ASS1_19:BARON5] +Da lang! -{=================================== MISSION TABLE SALH2 ===================================} +[ASS1_20:BARON5] +Tommy, ich hab ein Problem mit Quentin, nicht mit dir, Mann! -[SALH2AA:SALH2] -~w~Hey, Sal! Ich bin's... Toni. +{=================================== MISSION TABLE BIKE1 ===================================} -[SALH2AB:SALH2] -~w~Toni! Schön, deine Stimme zu hören, Junge. +[BM1_A:BIKE1] +Wo ist Baker? -[SALH2AC:SALH2] -~w~Die Säcke lassen keinen Besuch zu mir! +[BM1_B:BIKE1] +Ich suche Big Mitch Baker... -[SALH2AD:SALH2] -~w~Hör mal, es gibt 'nen Haufen Zeug zu tun. +[BM1_C:BIKE1] +Wer sucht ihn? -[SALH2AE:SALH2] -~w~Paulie Sindacco, zum Beispiel. Seine Familie ist erledigt in dieser Stadt. +[BM1_D:BIKE1] +Tommy Vercetti. -[SALH2AF:SALH2] -~w~Aber er denkt, er kann einfach abhauen, als ob er keine Verpflichtungen hätte. +[BM1_E:BIKE1] +Vercetti. -[SALH2AG:SALH2] -~w~Wegen dem Drecksack sitz ich im Loch! +[BM1_F:BIKE1] +Du siehst nicht wie ein Bulle aus, das heißt, du hast 1 Minute. -[SALH2AH:SALH2] -~w~Zieh den Hurensohn zur Rechenschaft. +[BM1_G:BIKE1] +Also drück auf die Tube. -[SALH2O1:SALH2] -~w~Fang Paulie Sindacco am ~y~Generatorenhaus~w~ des Cochrane Dam ab. +[BM1_H:BIKE1] +Kent Paul sagt, ihr wãrt interessiert, die Security für einen Gig zu übernehmen, den er plant. -[SALH2F1:SALH2] -~r~Er ist entkommen! Salvatore wird nicht begeistert sein! +[BM1_I:BIKE1] +Kent Paul? Pfff! Kein Wunder, dass er dich schickt. -[SALH2CA:SALH2] -~w~Ihr Idioten! Das ist Toni Cipriani! Macht ihn fertig! +[BM1_J:BIKE1] +Als er das letzte Mal hier war, ist er durch Fenster wieder gegangen - und zwar splitternackt. -[SALH2BA:SALH2] -~w~Hey, Toni! Warum schwimmst du nicht her und leckst mich am Arsch? +[BM1_K:BIKE1] +Seid ihr nun interessiert oder nicht? -[SALH2BB:SALH2] -~w~Hey, hier bin ich, Arschloch! +[BM1_L:BIKE1] +Gefãlligkeiten gibt's nur für Mitglieder. -[SALH2BI:SALH2] -~w~Bestell Salvatore schöne Grüße. Ich schick ihm 'ne Postkarte! +[BM1_M:BIKE1] +Wie kann ich beitreten? -[SALH2BC:SALH2] -~w~Und was machst du jetzt, Trottel? +[BM1_N:BIKE1] +Wir sind hier kein Golfklub, Kleiner. Kannst du 'n Bike fahren? -[SALH2BE:SALH2] -~w~Du bist ein toter Mann! +[BM1_O:BIKE1] +Kannst du auf 'm Barhocker sitzen und saufen? -[SALH2BF:SALH2] -~w~Du bist ein Nichts! +[BM1_P:BIKE1] +Cougar, Zeppelin, checkt mal ab, wie diese Sissy hier fãhrt. -[SALH2BG:SALH2] -~w~Überraschung! Drecksack! +[BM1_2:BIKE1] +~g~Du brauchst eine Freeway oder eine Angel, um mitzumachen! -[SALH2BH:SALH2] -~w~Ladies and gentlemen, Paulie Sindacco has left the building! +[BM1_3:BIKE1] +~r~Die Fahrer wurden angegriffen! -[SALH2BD:SALH2] -~w~Du hast keine Chance, mich zu kriegen, Arschgesicht! +[BIKE1_1:BIKE1] +Ok, Schickimickibürschchen, dann zeig mal, was du drauf hast. -[SALH2O2:SALH2] -~w~Schalte ~r~Paulie Sindacco~w~ aus. Lass ihn nicht entkommen! +[BM1_1:BIKE1] +~g~Schnapp dir eine Freeway oder eine Angel und geh in Startposition. -[SALH2O3:SALH2] -Schnapp dir einen fahrbaren Untersatz und erledige ~r~Paulie~w~ vom Ufer aus. +{=================================== MISSION TABLE BIKE2 ===================================} -{=================================== MISSION TABLE SALH3 ===================================} +[BM2_2:BIKE2] +~g~Du musst den Chaosmesser in der vorgegebenen Zeit vollmachen, um uns zu zeigen, aus welchen Holz du bist! -[SALH3_1:SALH3] -~w~Sal? Wie geht's? +[BM2_4:BIKE2] +~r~Du hast den Chaosmesser nicht rechtzeitig vollgemacht! -[SALH3_2:SALH3] -~w~Scheiß bene! Einfach super! +[BM2_1:BIKE2] +CHAOSMESSER: -[SALH3_3:SALH3] -~w~Erstens: Der neue Bürgermeister hat gedeichselt, dass ich nicht gegen Kaution rauskomme. +[BM2_A:BIKE2] +Ha, ha, ha, hab dich wieder erwischt. -[SALH3_4:SALH3] -~w~Zweitens: Wir stecken immer noch im Krieg mit den verfluchten Triaden und Diablos. +[BM2_B:BIKE2] +Hey, Vercetti. -[SALH3_5:SALH3] -~w~Drittens: Ich hab läuten hören, dass die geschissenen Yakuza die Stadt übernehmen wollen. +[BM2_C:BIKE2] +Cougar meint, du fãhrst ziemlich gut. -[SALH3_6:SALH3] -~w~Ansonsten ist alles in bester Ordnung! +[BM2_D:BIKE2] +Ja, wie lange soll ich noch hier rumgurken? -[SALH3_7:SALH3] -~w~Jahrelang hatte der Mob die Herrschaft und jetzt haben wir alles sauber verschissen! +[BM2_E:BIKE2] +Ich bin ein sehr beschãftigter Mann. -[SALH38:SALH3] -~w~Boss, ich kann das alles richten. +[BM2_F:BIKE2] +Wenn ich mich kloppen soll, damit das klar geht, dann los. -[SALH39:SALH3] -~w~Die Yakuza haben ein Riesenwaffenarsenal in Aspatria. +[BM2_G:BIKE2] +Es geht bei uns nicht nur ums dreinschlagen. Man muss zur Familie gehören. -[SALH310:SALH3] -~w~Die hält jetzt keiner mehr auf! +[BM2_H:BIKE2] +Ja, ich hab schon mal zu einer Familie gehört. Hat nicht funktioniert. -[SALH311:SALH3] -~w~Das werden wir sehen. +[BM2_I:BIKE2] +Klar. Aber unsere Familie kümmert sich um ihre Leute. -[SALH3_A:SALH3] -~w~Fahr zu dem ~y~Yakuza-Gelände. +[BM2_J:BIKE2] +Wir verlangen nicht, dass einer die Drecksarbeit macht und danach 15 Jahre einsitzt. -[SALH3C1:SALH3] -~w~Finde einen Weg auf das ~y~Gelände. +[BM2_K:BIKE2] +Ja, ganz recht. Ich hab meine Hausaufgaben gemacht. -[SALH3C2:SALH3] -~w~Heilige Scheiße! Das gibt's doch nicht! +[BM2_L:BIKE2] +Das hier ist die größte Familie von Außenseitern, Outlaws und Unruhestiftern. -[SALH3C3:SALH3] -~w~Zerstöre den ~r~Panzer! +[BM2_M:BIKE2] +Ein paar von uns wurden sogar von ihrem eigenen Land verraten. -[SALH3C4:SALH3] -~w~Verdammt, was...?! +[BM2_N:BIKE2] +Wãhrend des Vietnamkriegs war ich eingelocht. Miese Sache. -[SALH3C5:SALH3] -~w~Macht ihn fertig! +[BM2_O:BIKE2] +Drum sollst du denen ja zeigen, was Sache ist. -[SALH3C6:SALH3] -~w~Der ~r~Panzer ~w~ist gut geschützt. Normale Waffen können gegen dieses schwere Stück Material nichts ausrichten! +[BM2_P:BIKE2] +Dieses ganze verdammte Land braucht einen Arschtritt, und wir geben ihm diesen Tritt. -[SALH3G1:SALH3] -~w~Hey, Freundchen, da drin ist nichts für dich. +[BM2_Q:BIKE2] +Also los, schnapp dir ein Bike und zeig der Stadt, wie sauer du bist. -[SALH3G2:SALH3] -~w~Zugang nur für Yakuza, wenn ich das recht sehe! - -[SALH3G3:SALH3] -~w~Mach dich vom Acker! - -[SALH3_B:SALH3] -~w~Das Yakuza-Auto hat sie getäuscht! - -[SALH3_C:SALH3] -~w~Fahr auf das ~y~Gelände~w~ und sieh dich um. - -{=================================== MISSION TABLE SALH4 ===================================} - -[SALH4_1:SALH4] -~w~Sal? Bist du da? - -[SALH4_2:SALH4] -~w~Anthony! Ich komme hier raus! - -[SALH42A:SALH4] -~w~Heute ist meine Vorverhandlung! - -[SALH4_3:SALH4] -~w~Super! - -[SALH44C:SALH4] -~w~Ja, Toni. Wenn du meinst. - -[SALH44E:SALH4] -~w~Hey, da kommen die Wachen... Wir sehen uns am Eingang. - -[SALH4_5:SALH4] -~w~Beschaff dir einen Streifenwagen! - -[SALH45A:SALH4] -~w~Du brauchst einen Streifenwagen, sonst wird der Konvoi misstrauisch! - -[SALH4_6:SALH4] -~w~Bring dich vor dem ~y~Polizeirevier~w~ in Stellung. - -[SALH4_7:SALH4] -~w~Heilige Scheiße! - -[SALH4_8:SALH4] -~w~Schütze den ~b~Transporter~w~ und sorg dafür, dass er heil ankommt! - -[SALH4_9:SALH4] -~w~Entferne dich nicht zu weit von dem ~b~Transporter! - -[SALH410:SALH4] -~w~Gleich verlierst du den ~b~Transporter! - -[SALH411:SALH4] -~r~Du hast den Transporter verloren! Sal wurde hingerichtet! - -[SALH412:SALH4] -~r~Der Transporter wurde zerstört! - -[SALH413:SALH4] -~w~Reiz die Bullen nicht - sonst kommt Sal nicht gegen Kaution raus! - -[SALH416:SALH4] -~w~Gib dem ~b~Konvoi~w~ bis zu seinem Ziel Geleitschutz. - -[SALH417:SALH4] -~r~Du hast es vermasselt! Die Cops haben die Vorverhandlung abgesagt! - -[SALH420:SALH4] -~r~Sal wurde getötet! - -[SALH421:SALH4] -~r~Du hast den Transporter verloren! - -[SALH422:SALH4] -~w~Häng die Bullen ab, sonst lenkst du zu viel Aufmerksamkeit auf den Konvoi! - -[SALH424:SALH4] -~w~Zerstöre die ~y~Straßensperre! - -[SALH415:SALH4] -~w~Schön, wieder ein freier Mann zu sein. - -[SALH418:SALH4] -~w~Aber hör zu, ich fahr nach Hause und zieh mir diese stinkenden Lumpen aus, okay? - -[SALH419:SALH4] -~w~Wir treffen uns bei mir. - -[SALH414:SALH4] -~w~Illegale Straßensperre in dieser Gegend gemeldet... - -[SALH44A:SALH4] -~w~Solange ich hier drin sitze, wer soll sie aufhalten? - -[SALH4_4:SALH4] -~w~Ja, aber ich hab den Verdacht, die Sizilianer wollen nicht, dass ich im Gericht ankomme. - -[SALH44B:SALH4] -~w~Hey, da müssen sie erst mal mit mir fertig werden, Sal. - -[SALH44D:SALH4] -~w~Sorg einfach dafür, dass ich zu meinem Gerichtstermin komme! - -{=================================== MISSION TABLE SALH5 ===================================} - -[SALH51A:SALH5] -~w~Gib Gas, Toni! - -[SALH51B:SALH5] -~w~Wenn du mich fragst, haben es die Sizilianer auf den Bürgermeister abgesehen. - -[SALH51C:SALH5] -~w~Wir müssen ihnen zuvorkommen. - -[SALH511:SALH5] -~w~Das sieht nicht gut aus. - -[SALH554:SALH5] -~w~Gib Gas, Toni! - -[SALH512:SALH5] -~w~Du hast ~b~Sal~w~ zurückgelassen - hol ihn! - -[SALH513:SALH5] -~w~Verdammt! Sie sind schon da! - -[SALH560:SALH5] -~w~Mach sie fertig, Toni! - -[SALH561:SALH5] -~w~Ich schnapp mir den Bürgermeister! - -[SALH514:SALH5] -~w~Die elenden Bastarde haben ihn schon! - -[SALH555:SALH5] -~w~Komm, Toni! Hier lang! - -[SALH515:SALH5] -~w~Da sind sie! - -[SALH517:SALH5] -~w~Wo sind die Bastarde hergekommen? - -[SALH556:SALH5] -~w~Hinter uns, Toni! - -[SALH562:SALH5] -~w~Toni, da vorn! - -[SALH519:SALH5] -~w~Toni! Schalte den Hubschrauber aus! - -[SALH522:SALH5] -~w~Die denken, die können sich beim Leuchtturm verstecken! - -[SALH557:SALH5] -~w~Mach die Bastarde fertig! - -[SALH558:SALH5] -~w~Klasse geschossen, Toni! - -[SALH559:SALH5] -~w~Bringen wir die Sache zu Ende. - -[SALH526:SALH5] -~w~Ich fahre! Du hältst sie uns vom Leib! - -[SALH527:SALH5] -~w~Okay, Toni... jetzt gilt's. - -[SALH528:SALH5] -~w~Wie viele von den Bastarden sind auf diesem Felsen? - -[SALH553:SALH5] -~w~Kaum erschießt du einen, schon beißt dir der nächste in den Arsch! - -[SALH523:SALH5] -~r~Du hast Salvatore der Mordlust der Sizilianer ausgeliefert! - -[SALH524:SALH5] -~r~Salvatore wurde getötet! - -[SALH552:SALH5] -~r~Der Bürgermeister wurde getötet! - -[SALH573:SALH5] -~r~Du hast dein Boot zerstört! Du hast sie verloren! - -[SALH516:SALH5] -~w~Take out the guards and then let's get after them in that boat! - -[SALH518:SALH5] -~w~Another ~r~boat~w~ incoming... - -[SALH525:SALH5] -~w~Ha! They've left a rocket launcher on this thing! - -[SALH520:SALH5] -~y~I'll move closer to shore so we're more protected... Take it down! - -[SALH521:SALH5] -~w~Good work! Let's move out! - -[SALH53A:SALH5] -~w~Torini... typisch. - -[SALH53B:SALH5] -~w~Lass ihn los! - -[SALH53C:SALH5] -~w~Der Bürgermeister gehört mir! - -[SALH53D:SALH5] -~w~DIESE STADT gehört mir! - -[SALH53E:SALH5] -~w~Salvatore... - -[SALH53F:SALH5] -~w~Sizilien wollte nie questo schifo di citta. - -[SALH53G:SALH5] -~w~Aber als die Zahlungen ausblieben, was sollten wir machen...? - -[SALH53H:SALH5] -~w~Das war nichts Persönliches. - -[SALH53I:SALH5] -~w~Nichts Persönliches? - -[SALH53J:SALH5] -~w~Nach dem, was ihr mir angetan habt! - -[SALH53K:SALH5] -~w~Ich reiß dir das scheiß Herz aus dem Leib! - -[SALH5TD:SALH5] -~w~Schieß ~r~Massimos Helikopter~w~ ab! - -[SALH5MO:SALH5] -~r~Massimo~w~ verschwindet! - -[SALH5GO:SALH5] -~r~Massimo ist entkommen! - -[SALH571:SALH5] -~w~Du musst zum ~y~Pier. - -[SALH570:SALH5] -~w~Erledige diese ~r~sizilianischen Mafiosi! - -[SALH572:SALH5] -~w~Erledige diesen ~r~sizilianischen Gangster! - -[SALH510:SALH5] -~w~Fahr zum ~y~Rathaus~w~. Und Vorsicht vor sizilianischen Gangstern! - -[SICI_01:SALH5] -Nein, ich melde mich später... - -[SICI_04:SALH5] -Hey, wir sind beide wieder da! - -[SICI_05:SALH5] -Wir haben's geschafft, hm? - -[SICI_06:SALH5] -Stimmt. - -[SICI_07:SALH5] -Wir haben mit den Forellis aufgeräumt. - -[SICI_08:SALH5] -Die Sindaccos haben wir in die Wüste geschickt. - -[SICI_09:SALH5] -Jetzt rufen die Sizilianer an, dass sie Frieden wollen. - -[SICI_10:SALH5] -Den wollen wir alle! Aber meinen, nicht deren scheiß Frieden. - -[SICI_11:SALH5] -Jetzt bin ich am Ruder. - -[SICI_12:SALH5] -Und kein Trottel aus der alten Heimat macht mir Vorschriften. - -[SICI_13:SALH5] -Ich hab ihnen gesagt, sie sollen sich verpissen. - -[SICI_14:SALH5] -Was? War das klug? - -[SICI_15:SALH5] -Hey, ich bin jetzt der Boss. Ich! - -[SICI_16:SALH5] -Fahren wir zum Bürgermeister, damit er die Anklage gegen mich zurückzieht. - -[FIN1_01:SALH5] -Hey, Bürgermeister! - -[FIN1_03:SALH5] -Ja, danke. - -[FIN1_04:SALH5] -Und das heißt... - -[FIN1_05:SALH5] -Äh, dass die Stadt Ihnen dankbar ist? - -[FIN1_06:SALH5] -Noch mal von vorn. - -[FIN1_07:SALH5] -Dass Sie für mich arbeiten, klar? - -[FIN1_08:SALH5] -Ach ja, dass ich für Sie arbeite. - -[FIN1_09:SALH5] -Gut. Rufen Sie uns nicht an, wir rufen Sie an. - -[FIN1_10:SALH5] -Raus mit dir, du Penner. - -[FIN1_11:SALH5] -Danke, Mr. Leone. - -[FIN1_12:SALH5] -Toni, es ist geschafft. Wir zwei haben jetzt das Sagen. - -[FIN1_13:SALH5] -Wir sind ein Team, hm? - -[FIN1_14:SALH5] -Du musst nur noch eine letzte Kleinigkeit für mich tun. - -[FIN1_15:SALH5] -Ich hab ein paar Unannehmlichkeiten am Hals... - -[FIN2_01:SALH5] -Hey, Onkel! Wie geht's? - -[FIN2_02:SALH5] -Siehst gut aus. - -[FIN2_03:SALH5] -Ah, Salvatore. Wir wollten nur Klarheit schaffen. - -[FIN2_04:SALH5] -Ja, Onkel. Das finde ich gut. - -[FIN2_07:SALH5] -Gut, sehr gut. - -[FIN2_08:SALH5] -Verschlagener alter Sack. - -[FIN2_09:SALH5] -Ich trau dem Scheißkerl nicht über den Weg. - -[FIN2_23:SALH5] -Jedem lacht mal das Glück. - -[FIN2_10:SALH5] -Aber wir haben's geschafft. - -[FIN2_11:SALH5] -Ja, wir haben aufgeräumt. Hast echt gute Arbeit geleistet, Toni. - -[FIN2_12:SALH5] -Ich wusste immer, dass du was taugst. Hast mir oft die Haut gerettet. - -[FIN2_13:SALH5] -Ich weiß solche Treue zu schätzen. - -[FIN2_14:SALH5] -Danke. - -[FIN2_15:SALH5] -Ein guter Arbeiter, respektvoll. Das mag ich. - -[FIN2_19:SALH5] -Ist Freundschaft nicht unbezahlbar? - -[FIN2_20:SALH5] -Eine wie die zwischen uns beiden? - -[FIN2_21:SALH5] -Schäm dich! Komm her. - -[FIN2_22:SALH5] -Bist ein guter Junge, aber schäm dich. - -[SICI_02:SALH5] -- Hey, Toni! ~n~ - Sal! Du bist wieder da, wo du hingehörst. - -[FIN2_05:SALH5] -- Dann hast du mit der alten Heimat Frieden geschlossen? ~n~ - Klar, ich und alle meine Leute. - -[FIN2_16:SALH5] -- Also kriegst du die halbe Million, wie versprochen. ~n~ - 'ne halbe? Hast du nicht 'ein paar' gesagt? - -[FIN2_18:SALH5] -Ich habe eine Million gesagt! Aber was soll's? - -[FIN1_02:SALH5] -Wir haben Sie eben vor diesem Haufen irrer Sizilianer gerettet. - -{=================================== MISSION TABLE DONH1 ===================================} - -[DONH1JA:DONH1] -~w~Toni, mein Ex-Mentor Avery Carrington trifft heute im Flieger ein. - -[DONH1JB:DONH1] -~w~Mir ist zu Ohren gekommen, dass er für die Panlantic Corporation arbeitet. - -[DONH1JC:DONH1] -~w~Die tun alles, um an eine 1-A-Immobilie ranzukommen. - -[DONH1JD:DONH1] -~w~Wir müssen seine Grunderwerbspläne in die Finger kriegen. - -[DONH1JE:DONH1] -~w~Häng dich an ihn dran, Toni! - -[DONH1CA:DONH1] -~w~Äh, Toni, wie wär's mit einem Fahrzeug? - -[DONH1DA:DONH1] -~w~Zum Flughafen, Toni. - -[DONH1DB:DONH1] -~w~Jede Minute ist kostbar. - -[DONH1EA:DONH1] -~w~Für diesen Einfall muss ich mich selbst loben. - -[DONH1EB:DONH1] -~w~Ich übertreffe mich mal wieder. - -[DONH1EC:DONH1] -~w~Ich werde damit ein Vermögen machen. - -[DONH1ED:DONH1] -~w~Jawohl, ein Vermögen. - -[DONH1EE:DONH1] -~w~Selbst Avery wäre stolz. - -[DONH1GA:DONH1] -~w~Da ist er! - -[DONH1GB:DONH1] -~w~Leg ihn um, Toni! - -[DONH1GC:DONH1] -~w~Ich brauche die Pläne! - -[DONH1HA:DONH1] -~w~Bitte, Toni. Er entwischt! - -[DONH1IA:DONH1] -~w~Kapitale Leistung, Toni! Wortwörtlich! - -[DONH1IB:DONH1] -~w~Los, begeben wir uns damit in die Sicherheit meines, äh, Refugiums. - -[DONH1O0:DONH1] -~w~Fahr Donald Love zum ~y~Flughafen. - -[DONH1O1:DONH1] -~w~Beseitige ~r~Avery Carrington~w~ und klau die Pläne! - -[DONH1O2:DONH1] -~r~Avery~w~ haut ab! Halte ihn auf! - -[DONH1O3:DONH1] -~r~Avery~w~ nimmt ein anderes Fahrzeug. Lass ihn nicht entkommen! - -[DONH1O4:DONH1] -~r~Avery~w~ haut ab! Schnapp ihn dir! - -[DONH1O5:DONH1] -~w~Hol ~b~Donald Love~w~ ab. - -[DONH1O6:DONH1] -~w~Gute Arbeit! Nimm die ~g~Pläne~w~ auf. - -[DONH1O7:DONH1] -~w~Bring Donald und die Pläne zurück zur ~y~Absteige. - -[DONH1O8:DONH1] -~w~Du hast die ~g~Pläne~w~ verloren! Kehr um und hol sie. - -[DONH1OA:DONH1] -~w~Sie sind hinter dir her! ~r~Avery~w~ haut ab! Leg ihn um! - -[DONH1OB:DONH1] -~w~Du brauchst ein Fahrzeug. - -[DONH1OC:DONH1] -~w~Verliere ~b~Donald~w~ nicht! - -[DONH1OD:DONH1] -~w~Vorsicht! Die Pläne sind futsch, wenn ~r~Averys Auto~w~ zerstört wird, solang er drin sitzt! - -[DONH1OE:DONH1] -~r~Avery Carrington~w~ entkommt. Los, hinterher! - -[DONH1F0:DONH1] -~r~Die Pläne wurden vernichtet! - -[DONH1F1:DONH1] -~r~Avery Carrington ist entkommen! - -[DONH1F2:DONH1] -~r~Donald ist tot! - -[DONH1OF:DONH1] -~r~Avery Carrington~w~ ist fast an seinem Ziel angekommen. Halte ihn auf! - -[DONH1O9:DONH1] -~w~Lass ~b~Donald~w~ nicht zurück! Diese Kolumbianer legen ihn um! - -[DONH1FA:DONH1] -~w~Hmm, die Panlantic lässt Avery offenbar vom Kartell beschützen. - -[LAND_01:DONH1] -Ich weiß, was du denkst, Toni. Hochmut kommt vor dem Fall. - -[LAND_02:DONH1] -Aber das ist nur ein vorübergehendes Tief. - -[LAND_03:DONH1] +[BM2_R:BIKE2] Alles klar. -[LAND_04:DONH1] -Ach, tu nicht so pikiert. +[BM2_3:BIKE2] +~g~Dieser Ton zeigt an, dass du einen Teil gefüllt hast. Mach ihn immer voller. -[LAND_05:DONH1] -Ich weiß, es war ekelhaft von mir, zu sagen, dass es deine Schuld war, +{=================================== MISSION TABLE BIKE3 ===================================} -[LAND_06:DONH1] -doch Hybris ist ein ekelhafter Bettgefährte - fast so eklig wie Termiten. +[BM3_A:BIKE3] +Hi, Mitch. -[LAND_07:DONH1] -Und, glaub mir, ich habe beide genossen. +[BM3_B:BIKE3] +Ah, sieh an, 'Outlaw' Vercetti. -[LAND_08:DONH1] -Wart's ab, wir beide sind bald wieder da! +[BM3_C:BIKE3] +Jetzt will ich sehen, wie du für deine Kumpels kãmpfst. -[LAND_09:DONH1] -Ich war nie weg. +[BM3_D:BIKE3] +Eine Straßengang von hier hat den Fehler gemacht, meinen Hobel zu klauen. -[LAND_10:DONH1] -Wir sitzen in einem Boot, Amigo. +[BM3_E:BIKE3] +Wollten wahrscheinlich zeigen, was für coole Machos sie sind. -[LAND_11:DONH1] -Nein. +[BM3_F:BIKE3] +Ich und die Jungs wollten ihnen eigentlich ein bisschen Respekt einblãuen. -[LAND_12:DONH1] -Bitte! +[BM3_G:BIKE3] +Aber- -[LAND_13:DONH1] -'Bitte'? Vergessen Sie's, Freundchen. +[BM3_H:BIKE3] +-dann dachte ich mir, das wãre doch ein guter Test für dich. -[LAND_18:DONH1] -Komm - ich erzähl's dir im Auto. +[BM3_I:BIKE3] +Bring mir meine Maschine zurück und Paul kriegt seine Security. -[LAND_19:DONH1] -Du hast deins doch dabei? Meins ist, äh, in der Inspektion. +[BM3_2:BIKE3] +~r~Du solltest die Maschine zurückbringen, nicht schrotten! -[LAND_16:DONH1] -- 10% wovon? Davon? Sie sind zu gütig. ~n~ - Nein! Von 'ner richtig großen Sache. +[BM3_3:BIKE3] +~g~Bring die Maschine zur Bar! -[LAND_14:DONH1] -- 'Es war nur deine Schuld.' Erbärmlich. ~n~ - 10%? +[BM3_4:BIKE3] +~g~Setz dich auf die Maschine! -{=================================== MISSION TABLE DONH2 ===================================} +[INTRUDE:BIKE3] +~g~Man hat dich bemerkt! -[DONH2_1:DONH2] -~w~Begib dich zur ~y~Kirche~w~ auf Staunton Island. +[BM3_6:BIKE3] +~g~Sie sind Downtown hinter dem Ammu-Nation. -[DONH2_2:DONH2] -~w~Verprügle den ~r~Reporter ~w~oder erzwinge mit vorgehaltener Waffe die Fotos von ihm. +[BM3_7:BIKE3] +~g~Du brauchst eine schnelle Maschine, um auf das Dach zu gelangen. -[DONH2_3:DONH2] -~w~Du hast Fotos von mir. Wo sind sie? +[BM3_8:BIKE3] +~g~Spring mit dem Bike von diesen Stufen auf das Dach auf der anderen Seite der Straße. -[DONH2_4:DONH2] -~w~Tu mir bitte nichts! +[BM3_1:BIKE3] +~g~Eine Gang hat Mitch Bakers Maschine geklaut. Beschaff sie ihm wieder! -[DONH2_5:DONH2] -~w~Wo sind die verdammten Fotos!? +[BM3_9:BIKE3] +~g~Schnapp dir Mitchs Maschine und mach dich aus dem Staub! -[DONH2_6:DONH2] -~w~Ich weiß nicht, wovon du redest! +{=================================== MISSION TABLE BMX_1 ===================================} -[DONH2_7:DONH2] -~w~Wo sind sie? +[GETBIK2:BMX_1] +Du hast ~1~ Sekunden, um auf ein Gelãndemotorrad zu steigen! -[DONH2_8:DONH2] -~w~Bitte! Nicht! +{=================================== MISSION TABLE BOATBUY ===================================} -[DONH2_9:DONH2] -~w~Mach schon, du Memme! Rück sie raus! +[DRUG_1:BOATBUY] +Hallo? Hal-lo?! Hallo? -[DONH210:DONH2] -~w~Okay! Okay! +[DRUG_13:BOATBUY] +Meister? -[DONH2EX:DONH2] -~w~Du kriegst die Fotos! +[DRUG_2:BOATBUY] +Mach aus. Da kommt einer. -[DONH211:DONH2] -~w~Ich hab den Film in meinem Versteck! +[DRUG_3:BOATBUY] +Tag, Herr Anzugmensch. Sie müssen der neue Eigentümer sein. -[DONH212:DONH2] -~w~Fahr zum ~y~Versteck des Reporters. +[DRUG_4:BOATBUY] +Ja. Welches von den Booten ist das schnellste? -[DONH213:DONH2] -~w~Hilfe! Hilfe! Ich werde entführt! +[DRUG_5:BOATBUY] +Das ist schon im Wasser, Meister. -[DONH214:DONH2] -~w~Hilfe! Er bringt mich um! +[DRUG_6:BOATBUY] +Dachte mir, dass Sie es mal testen wollen. -[DONH215:DONH2] -~w~Ich bin zu begnadet, um zu sterben! +[DRUG_7:BOATBUY] +Das Ding hat jetzt schon 300 PS unter der Haube, Meister. -[DONH216:DONH2] -~w~Ich darf nicht sterben. Mein Roman ist nicht fertig! +[DRUG_8:BOATBUY] +Und mit dem Fiberglas-Rumpf - das Ding pfeift nur so durch die Wellen! -[DONH217:DONH2] -~w~Von so einer Scheiße hat mein Redakteur nichts gesagt! +[DRUG_9:BOATBUY] +In vier Sekunden von null auf sechzig Meilen, Meister. -[DONH218:DONH2] -~w~Rühr keinen Muskel, Arschkrätze! +[DRUG_10:BOATBUY] +Und im Rumpf kriegen Sie so 20 Ladungen vom besten jamaikanischen Gras unter. -[DONH219:DONH2] -~w~Stehen bleiben, du Flachwichser! +[DRUG_11:BOATBUY] +Nur zu, Chef, machen Sie 'ne Spritztour! -[DONH220:DONH2] -~w~Zum Kuckuck nochmal, bleib gefälligst hier! +[DRUG_12:BOATBUY] +Hey Anzugmensch, haben Sie mal Feuer? -[DONH221:DONH2] -~w~Toni! Endlich! +{=================================== MISSION TABLE CAP_1 ===================================} -[DONH222:DONH2] -~w~Ein Reporter hat Averys Exitus beobachtet! +[CAP1_B1:CAP_1] +~g~Die Mafia verlangt Schutzgeld von dir. Stöbere sie auf und erledige sie. -[DONH223:DONH2] -~w~Er hat Fotos! Herrgott, ich bin erledigt! +[CAP1_B2:CAP_1] +~g~Die Mafia verlangt von dir Schutzgeld für die Bootswerft! -[DONH224:DONH2] -~w~Regen Sie sich ab! Wo steckt dieser Reporter? +[CAP1_B3:CAP_1] +~g~Die Mafia verlangt von dir Schutzgeld für die Eiscremefabrik! -[DONH225:DONH2] -~w~Oh Toni, du bist ein Schatz! +[CAP1_B4:CAP_1] +~g~Die Mafia verlangt von dir Schutzgeld für das Autohaus! -[DONH226:DONH2] -~w~Wie es heißt, recherchiert er undercover in der Kirche auf Staunton Island. +[CAP1_B5:CAP_1] +~g~Die Mafia verlangt von dir Schutzgeld für das Taxiunternehmen! -[DONH227:DONH2] -~w~Hol die Fotos und beerdige ihn! +[CAP_01:CAP_1] +Ok, wo brennt's denn? -[DONH228:DONH2] -~r~Ned ist entwischt! +[CAP_02:CAP_1] +Wer war das? -[DONH230:DONH2] -~w~Beseitige ~r~Ned Burner. +[CAP_03:CAP_1] +Tommy... ein paar Mafia-Typen... sie wollen wiederkommen, ihren Anteil abkassieren. -[DONH231:DONH2] -~r~Ned starb, ehe du die Fotos kassiert hast! +[CAP_04:CAP_1] +Ein gewisser Mr. Forello hãtte dir Geld gegeben. Mir geht's schlecht. -[DONH229:DONH2] -Blödsinn! +[CAP_05:CAP_1] +Forelli? SONNY Forelli? -[DONCUTA:DONH2] -~w~Bitte sehr! Ich hab sie noch nicht entwickeln lassen. +[CAP_06:CAP_1] +Ja, so heißt er, glaube ich... ich konnte nichts gegen sie ausrichten. -[DONCUTB:DONH2] -~w~Du Stück Scheiße! +[CAP_07:CAP_1] +Keine Angst, mein Freund, ich mach dir keine Vorwürfe. -[DONH2SM:DONH2] -Angst +[CAP_08:CAP_1] +Bringt ihn ins Krankenhaus. -[DONH233:DONH2] -Schüchtere den Reporter weiter ein. Wenn sein Angstpegel fällt, könnte er versuchen, zu fliehen. +[CAP_09:CAP_1] +Tommy... mach den Kerl 'nen Kopf kürzer für mich... -[DONH2LB:DONH2] -~w~Du hast ~b~den Reporter ~w~zurückgelassen. Du musst ihn holen. +[CAP_10:CAP_1] +Ich mach ihn zwei Köpfe kürzer... -[DONH2LC:DONH2] -~r~Du hast den Reporter verloren. +[CAP1_2:CAP_1] +Du kennst die Regeln, Vercetti! -{=================================== MISSION TABLE DONH3 ===================================} +[CAP1_3:CAP_1] +Mr. Forelli bestellt schöne Grüße! -[DONH3I1:DONH3] -~w~Ich bin wieder da! +[CAP1_4:CAP_1] +Das ist der Harwood Butcher! -[DONH3I2:DONH3] -~w~Zurück von den Toten! Emporgestiegen wie ein Phönix aus der Asche. +[CAP1_5:CAP_1] +Sag Sonny, er soll mir vom Leib bleiben! -[DONH3I3:DONH3] -~w~Wie Lazarus. Jawohl, Lazarus Love! +[CAP1_6:CAP_1] +Vice City gehört nicht mehr ihm, sondern MIR! -[DONH3I4:DONH3] -~w~Bald bin ich wieder reich! +[CAP1_7:CAP_1] +Du glaubst, du kannst mich vom Thron stürzen, Vercetti? -[DONH3I5:DONH3] -~w~Die Panlantic wird mir ein Vermögen dafür zahlen, dass der Deal steigt! +[CAP1_8:CAP_1] +Wir jagen dich bis ans Ende deiner Tage, Vercetti. -[DONH3I6:DONH3] -~w~Wir haben es geschafft, Toni! +[CAP1_9:CAP_1] +Du hast keine Chance, du irrer Idiot! -[DONH3I7:DONH3] -~w~Kann sein. +[CAP1_10:CAP_1] +Ich mach dich fertig, Vercetti. -[DONH3I8:DONH3] -~w~Zeit für eine kleine Soiree mit einer hochexklusiven Gästeliste. +[CAP1_11:CAP_1] +Du warst schon immer ein Schwachkopf. -[DONH3I9:DONH3] -~w~Komm! +[CAP1_12:CAP_1] +Du wirst dran glauben, Vercetti. -[DONH3C1:DONH3] -~w~Wir brauchen ein Transportmittel, Toni. Wir haben nicht viel Zeit. +[CAP1_B6:CAP_1] +~g~Du hast den Eintreiber gefunden, erledige ihn. -[DONH3L1:DONH3] -~w~Du brauchst ~b~Donald.~w~ Kehr um und hol ihn! +[CAP1_B7:CAP_1] +~g~Du hast den Eintreiber verloren. -[DONH3L2:DONH3] -~w~Los, Toni! Wir müssen uns sputen! +[CAP1_B8:CAP_1] +~r~Der Eintreiber verlangt für all deine Geschãfte Schutzgeld. -[DONH3L3:DONH3] -~w~Bring die Leiche zurück! +[CAP1_B9:CAP_1] +~g~Die Mafia verlangt Schutzgeld für das Malibu! -[DONH3_5:DONH3] -~w~Toni, das wird eine todschicke Party. +[CAP1_B0:CAP_1] +~g~Die Mafia verlangt Schutzgeld für das Filmstudio! -[DONH35D:DONH3] -~w~Mit schick toten Gästen. +[CAP1_C2:CAP_1] +~g~Die Mafia ist bei der Bootswerft angekommen! -[DONH35A:DONH3] -~w~Suche eine ~b~Leiche. +[CAP1_C3:CAP_1] +~g~Die Mafia ist bei der Eiscremefabrik angekommen! -[DONH35B:DONH3] -~w~Hol ~b~Averys Leiche. +[CAP1_C4:CAP_1] +~g~Die Mafia ist bei dem Autohaus angekommen! -[DONH35C:DONH3] -~w~Hol ~b~Neds Leiche. +[CAP1_C5:CAP_1] +~g~Die Mafia ist bei dem Taxiunternehmen angekommen! -[DONH3_6:DONH3] -~w~Schaffe Donald und Avery zum ~y~Flughafen. +[CAP1_C9:CAP_1] +~g~Die Mafia ist im Malibu Club angekommen! -[DONH36A:DONH3] -~w~Hey! Bring den Krankenwagen zurück! +[CAP1_C0:CAP_1] +~g~Die Mafia ist im Filmstudio angekommen! -[DONH36B:DONH3] -~w~Avery. +[CAP1_D2:CAP_1] +~g~Die Mafia verlãsst die Bootswerft! -[DONH36C:DONH3] -~w~Was bist du seit unserem letzten Treffen gealtert! +[CAP1_D3:CAP_1] +~g~Die Mafia verlãsst die Eiscremefabrik! -[DONH36D:DONH3] -~w~Du füttertest mich stets mit Perlen der Weisheit +[CAP1_D4:CAP_1] +~g~Die Mafia verlãsst das Autohaus! -[DONH36E:DONH3] -~w~und bald werde ich wieder speisen! +[CAP1_D5:CAP_1] +~g~Die Mafia verlãsst das Taxiunternehmen! -[DONH36F:DONH3] -~w~Mein Gott! Er trägt ein Toupet! +[CAP1_D9:CAP_1] +~g~Die Mafia verlãsst den Malibu Club! -[DONH36G:DONH3] -~w~Toni, bring mich und Avery zu seinem Privatjet am Flughafen. +[CAP1_D0:CAP_1] +~g~Die Mafia verlãsst das Filmstudio! -[DONH3_7:DONH3] -~w~Bring Donald und Ned zum ~y~Flughafen. +[CAP1B10:CAP_1] +Du hast die Eintreiber erledigt. Es kommen weitere. -[DONH37F:DONH3] -~w~Toni, bring mich und Ned zum Flughafen. +{=================================== MISSION TABLE CARBUY ===================================} -[DONH37A:DONH3] -~w~Hey! Der Typ klaut die Leiche! +[CAR1_1:CARBUY] +B.J. Smith. Und Sie müssen Mr. Vercetti sein. -[DONH37B:DONH3] -~w~Ned Burner, Superreporter. +[CAR1_2:CARBUY] +Soll ich Sie herumführen? -[DONH37C:DONH3] -~w~Ach, Ned. Ich gebe Ihnen die Exklusivrechte an +[CAR1_3:CARBUY] +Warum nicht? -[DONH37D:DONH3] -~w~meiner wunderbaren Party. +[CAR1_4:CARBUY] +Tja, ich verkaufe das Autohaus ja eigentlich nur ungern. -[DONH37E:DONH3] -~w~Und ich lade längst nicht jeden auf meine kleine Sause ein. +[CAR1_5:CARBUY] +War meine erste Investition, nachdem ich Football-Profi wurde. -[DONH37G:DONH3] -~w~Die Auswahlkriterien sind tödlich. +[CAR1_6:CARBUY] +Aber es wird Zeit für eine Luftverãnderung. -[DONH3_8:DONH3] -~w~Bring Averys Leiche zum ~y~Flughafen. +[CAR1_7:CARBUY] +Sie verlassen die Stadt? -[DONH3_9:DONH3] -~w~Bring Neds Leiche zum ~y~Flughafen. +[CAR1_8:CARBUY] +Nicht in allzu großer Eile, hoffe ich doch? -[DONH3A1:DONH3] -~w~Schaff Averys gammeligen Kadaver her, ehe uns die Wachleute entdecken. +[CAR1_9:CARBUY] +Nein, ich bereite mich nur auf mein Comeback als Football-Profi vor. Ich hatte schon aufgehört. -[DONH3A2:DONH3] -~w~Seine Obduktion beginnt jeden Augenblick. +[CAR1_10:CARBUY] +Das Geschãft lief nicht allzu gut. -[DONH3N1:DONH3] -~w~Schaff Ned Burners Leiche her, ehe uns die Wachleute entdecken. Er soll jeden Augenblick bestattet werden. +[CAR1_11:CARBUY] +Da haben sich meine Angestellten was einfallen lassen, -[DONH3F1:DONH3] -~r~Love ist tot. +[CAR1_12:CARBUY] +um ein bisschen was 'nebenbei' zu erwirtschaften. -[DONH3F2:DONH3] -~r~Du hast Averys Leiche verloren! +[CAR1_13:CARBUY] +Ich könnte den Laden auch dichtmachen, bevor ich ihn Ihnen verkaufe. -[DONH3F3:DONH3] -~r~Du hast Neds Leiche verloren! +[CAR1_14:CARBUY] +Ich könnte die Bude bei Bedarf sogar abfackeln. -[DONH3C2:DONH3] -~w~Die Airport Security wird Avery Carringtons Hangar um 22:00 Uhr absperren. +[CAR1_15:CARBUY] +Das ist erstklassiger Baugrund hier. -[DONH3F4:DONH3] -~r~Zu spät - die Airport Security hat den Hangar abgesperrt! +[CAR1_16:CARBUY] +Machen Sie sich mal keine Gedanken. -[DONH3F5:DONH3] -~r~Zu spät - die Airport Security hat Donald mit Averys Leiche gefunden! +[CAR1_17:CARBUY] +Der Laden ist genau das, was ich brauche. -[DONH3W1:DONH3] -~w~Beeil dich! Die Airport Security wird Avery Carringtons Hangar um 22:00 Uhr absperren. +[CAR1_18:CARBUY] +Ja. Dann kommen wir also ins Geschãft? -[DONH3F6:DONH3] -~r~Zu spät - die Airport Security hat Donald mit Neds Leiche gefunden! +{=================================== MISSION TABLE CARPAR1 ===================================} -{=================================== MISSION TABLE DONH4 ===================================} +[MM_1_A:CARPAR1] +~g~Passiere ~y~5 checkpoints~r~ OHNE irgendwelche ~r~Hütchen ~g~umzufahren! ~g~Die ~y~REIHENFOLGE IST BELIEBIG. -[DONH4A:DONH4] -~w~Donald schickt mich, 'ne äh, Bestellung abholen. +[CONE_1:CARPAR1] +~r~Du hast ein Hütchen umgefahren!! -[DONH4B:DONH4] -~w~Alles klar. - -[DON4EX1:DONH4] -~w~Ich hab, was ihr braucht. Kostet aber was. - -[DON4EX2:DONH4] -~w~Don meinte, du streckst es vor und er gibt's dir dann zurück. - -[DONH4C:DONH4] -~w~Sicher. - -[DONH4D:DONH4] -~w~Klar! Stell ihn doch zu Händen 'Leck mich' aus. - -[DONH4E:DONH4] -~w~Wo ist die Bestellung? - -[DONH4F:DONH4] -~w~Scheiße, Kleiner. Das dauert, bis sowas zusammengebastelt ist. - -[DON4EX4:DONH4] -~w~Ich melde mich. - -[DONH4G:DONH4] -Mission erfüllt! - -[DONH4_1:DONH4] -KEIN(E) - -[DONH4PS:DONH4] -~w~8-Ball wird sich melden, sobald die Waren fertig sind. - -{=================================== MISSION TABLE DONH5 ===================================} - -[DONH5_0:DONH5] -Van - -[DNH5_A0:DONH5] -~w~Mann, die Karre ist knallvoll, verstehst du? Fahr vorsichtig. - -[DNH5_A1:DONH5] -~w~Ja? Alles bestens. - -[DNH5_A2:DONH5] -~w~Klar. Ich verbinde. - -[DNH5_A3:DONH5] -~w~Toni, noch ein kleiner Job und wir schwimmen im Geld. - -[DNH5_A4:DONH5] -~w~Wir haben Pläne von Fort Staunton studiert. Die Schwachpunkte liegen entlang der alten U-Bahn, die drunter verläuft. - -[DNH5_A5:DONH5] -~w~Super, Don! Da muss ich nur an 100 beknackten Italienern vorbei. - -[DNH5_A6:DONH5] -~w~Einfach den Porter Tunnel entlang, dann findest du den Eingang schon. - -[DNH5_B0:DONH5] -~w~Hey! Du hast hier nichts zu suchen! - -[DNH5_B1:DONH5] -~w~Verschwinde gefälligst! - -[DNH5_C0:DONH5] -~w~Steig in den ~b~Van. - -[DNH5_C4:DONH5] -~w~Bring die ~y~Sprengkörper~w~ an! - -[DNH5_C5:DONH5] -~w~Bring die übrigen ~y~Sprengkörper~w~ an! - -[DNH5_C6:DONH5] -~w~Verschwinde durch den ~y~U-Bahn-Eingang! - -[DNH5_D0:DONH5] -~w~Die Forellis? Was machen die denn hier? - -[DNH5_D1:DONH5] -~w~Lass die Forellis nicht den Van schrotten! - -[DNH5_1:DONH5] -~w~Stoß das Tor mit einem Fahrzeug auf. - -[DONH5_2:DONH5] -~w~Ramm fester gegen das Tor! - -[DNH5_X0:DONH5] -~r~Der Van ist Schrott! - -[DNH5_C1:DONH5] -~w~Steig wieder in den ~b~Van. - -[DNH5_C2:DONH5] -~w~Fahr zu einem der ~y~Eingänge~w~ des Porter Road Tunnels. - -[DNH5_C3:DONH5] -~w~Folge dem ~y~Tunnel. - -[DNH5_E0:DONH5] -~w~Erledige die ~r~Bauarbeiter. - -[DNH5_E1:DONH5] -~w~Erledige den ~r~Bauarbeiter. - -[DNH5_E2:DONH5] -~w~Die Forellis haben dir den Rückweg abgeschnitten. Finde einen anderen ~y~Ausgang. - -[DNH5_E3:DONH5] -~w~Benutze ein Fahrzeug, um durch die Tore zu brettern und den ~y~Ausgang~w~ zu erreichen. - -[DNH5_X1:DONH5] -~r~Die Forellis haben den Van geschrottet! - -[DNH5_W1:DONH5] -~w~Geh nicht zu weit von dem ~b~Van~w~ weg! - -[DNH5_E4:DONH5] -~w~Hinterlasse keine ~r~Zeugen! - -{=================================== MISSION TABLE DONH6 ===================================} - -[DONH6_V:DONH6] -~r~v1.00 - -[DONH6_1:DONH6] -~w~Begib dich zum ~y~Haus. - -[DONH6_5:DONH6] -~w~Oh mein Gott! Toni! Tu was! - -[DONH6_6:DONH6] -~w~Du hast ~1~ Sekunden, um zu dem Anwesen zurückzukehren! - -[DONH6_7:DONH6] -Rückkehrzeit - -[DONH6_8:DONH6] -~r~Du bist nicht zur Villa zurückgekehrt. Donald wurde hingerichtet! - -[DONH610:DONH6] -~w~Besorg ein Auto! - -[DONH611:DONH6] -~w~Du lieber Gott! Noch mehr von denen! - -[DONH624:DONH6] -~w~Gas geben, Toni! - -[DONH612:DONH6] -~w~Geschafft! - -[DONH623:DONH6] -~w~Fahr mich zu Averys Jet. Er und Ned sind noch an Bord, also fliege ich nicht alleine. - -[DONH622:DONH6] -~w~Begib dich zu ~y~Averys Jet. - -[DONH613:DONH6] -~w~Wir müssen zum Flughafen. - -[DONH625:DONH6] -~w~Begib dich zum ~y~Flughafen. - -[DONH615:DONH6] -~w~Du hast ~b~Donald~w~ nicht dabei! Kehr um und hol ihn! - -[DONH619:DONH6] -~r~Donald ist tot! - -[DONH6_9:DONH6] -~w~D.? Kommen Sie! Los! - -[DONH614:DONH6] -~w~Ist die Luft wirklich rein, Toni? - -[DONH616:DONH6] -~w~Oh... mein...GARTEN! - -[DOH616A:DONH6] -~w~Was hast du meinem wunderbaren Garten angetan?! - -[DONH617:DONH6] -~w~D., machen wir den Garten oder die Fliege? Es liegt bei Ihnen. - -[DONH618:DONH6] -~w~Bring mich zum Flughafen! - -[DONH620:DONH6] -~w~Abschiede sind mir zuwider, mein Freund. - -[DOH620A:DONH6] -~w~Sagen wir einfach 'Adieu'. - -[DONH621:DONH6] -~w~D., es war... lehrreich. - -[DONH66S:DONH6] -~w~Du hast ~1~ Sekunde, um zu dem Anwesen zurückzukehren! - -[DONH66A:DONH6] -~w~Beseitige diese ~r~kolumbianischen Gangster! - -[DONP_01:DONH6] -Raupen... Raupe... Raupe... Raup... Nein, das bringt nichts. - -[DONP_02:DONH6] -Ommm. Mist! - -[DONP_03:DONH6] -Es ist zum... Scheiße, hätte ich nur was Kaltes zum Kuscheln, - -[DONP_06:DONH6] -Antonio! Ach, ich bin auf der Suche nach Erleuchtung, - -[DONP_07:DONH6] -aber heute wird daraus wohl nichts. - -[DONP_08:DONH6] -Vielleicht morgen. - -[DONP_09:DONH6] -Sie klangen nervös auf dem Band. - -[DONP_10:DONH6] -Nervös? Ich meditiere. Nervös, moi? - -[DONP_11:DONH6] -Ich bin eins mit dem Universum - unmöglich! - -[DONP_12:DONH6] -Ach, Scheiße, stimmt. - -[DONP_13:DONH6] -Eine Horde Kolumbianer wollte herkommen, - -[DONP_14:DONH6] -um mich gegebenenfalls umzulegen, wenn ich nicht schweige und alle schmiere. - -[DONP_15:DONH6] -Ach so. Das erklärt dann wohl, warum draußen massenhaft Kolumbianer rumlauern. - -[DONP_16:DONH6] -Scheiße! Bitte, Antonio, du musst mich hier rausschaffen! - -[DONP_17:DONH6] -Ich will nicht... Bitte! Ich will nicht sterben! - -[DONP_18:DONH6] -Wohl doch nicht so ganz eins mit dem Universum? - -[DONP_19:DONH6] -Danke, Toni! Ich mach's dir... Ich mach's dir wieder gut, Ehrenwort. - -[DONP_04:DONH6] -- dann wär's so einfach... ~n~ - Was gibt's, D? - -{=================================== MISSION TABLE TOSH1 ===================================} - -[TOSH1AB:TOSH1] -~w~Haltet ihn auf! - -[TOSH1AC:TOSH1] -~w~Schnappt ihn! - -[TOSH1AD:TOSH1] -~w~Knallt ihn ab! - -[TOSH1AA:TOSH1] -~w~Da ist er! - -[TOSH120:TOSH1] -~w~Klau die ~b~Waffenlieferung~w~ der Yakuza in Bedford Point. - -[TOSH121:TOSH1] -~w~Du musst an den ~r~Yakuza-Wachen~w~ vorbei. - -[TOSH122:TOSH1] -~w~Achte auf weitere ~r~Yakuza-Boote. - -[TOSH130:TOSH1] -~w~Bring die Waffen zu ~y~Toshikos Kontaktperson. - -[TOSH131:TOSH1] -~w~Zurück zur ~b~Waffenlieferung. - -[TOSH1BA:TOSH1] -~w~Prima Artillerie hast du da, mein Junge! - -[TOSH1BB:TOSH1] -~w~Ich hab an diesen Docks so viel zu tun, dass ich von hier aus operieren sollte, - -[TOSH1BC:TOSH1] -~w~statt auf der anderen Seite der scheiß Insel! - -[TOSH1BD:TOSH1] -~w~War jedenfalls 'n Knaller! - -[TOSH1DB:TOSH1] -~r~Die Waffen wurden vernichtet! - -[TOSH1PH:TOSH1] -~w~Die Yakuza werden ihre Lieferung bewachen. Du wirst vielleicht erst bei Phil Cassidy vorbeifahren müssen. - -[DEAD_01:TOSH1] -Das soll der knallharte Gangster sein? - -[DEAD_02:TOSH1] -Sie wirken nicht sehr knallhart. - -[DEAD_03:TOSH1] -Danke. - -[DEAD_04:TOSH1] -Wissen Sie, was es heißt, ohne Liebe zu leben, Mr. Toni? - -[DEAD_05:TOSH1] -Dass man mit dem Hass lebt. - -[DEAD_06:TOSH1] -Ich glaub's Ihnen einfach mal. - -[DEAD_07:TOSH1] -Ich hege ernsthaft den Wunsch, einen Menschen zu zerstören, Mr. Cipriani. - -[DEAD_08:TOSH1] -Zerstören, nicht nur zu töten. - -[DEAD_09:TOSH1] -Ich will ihn und seine Organisation schwach und gedemütigt sehen, bevor er stirbt. - -[DEAD_10:TOSH1] -Ich will, dass er leidet. - -[DEAD_11:TOSH1] -Okay. - -[DEAD_12:TOSH1] -Der Mensch, den Sie zerstören sollen, ist mein Mann. Kazuki Kasen. - -[DEAD_13:TOSH1] -Keine Sorge. - -[DEAD_14:TOSH1] -Für Ihre Dienste werden Sie fürstlich entlohnt. - -[DEAD_15:TOSH1] -Und wenn ich ablehne? - -[DEAD_16:TOSH1] -Nein. Während ich seinen Tod lediglich wünsche, brauchen Sie ihn. - -[DEAD_17:TOSH1] -Sie haben ihm doch bereits einen schweren Schlag zugefügt, Mr. Cipriani. - -[DEAD_18:TOSH1] -Nun gut. Er erwartet heute eine weitere Waffenlieferung. - -[DEAD_19:TOSH1] -Ich will, dass Sie ihm diese direkt unter seiner ignoranten Nase wegstehlen. - -{=================================== MISSION TABLE TOSH2 ===================================} - -[TOSH2AA:TOSH2] -~w~Mr. Toni. - -[TOSH2AL:TOSH2] -~w~Ihre Taten haben meinen Mann in enorme Rage versetzt. - -[TOSH2AB:TOSH2] -~w~Sie haben ihn und seine Leute - -[TOSH2AM:TOSH2] -~w~so dumm aussehen lassen wie sie sind. - -[TOSH2AC:TOSH2] -~w~Ich habe mich bemüht. Und jetzt, Prinzessin? - -[TOSH2AE:TOSH2] -~w~Mein Mann transferiert eine beträchtliche Summe von seinem Casino. - -[TOSH2AF:TOSH2] -~w~Sie sollen das gesamte Geld vernichten. - -[TOSH2AG:TOSH2] -~w~Ich wüsste die Kohle verdammt gut anzulegen, Süße. - -[TOSH2AH:TOSH2] -~w~Sein Geld soll vor aller Augen auf der Straße verbrennen. - -[TOSH2AI:TOSH2] -~w~Okay, okay. Wann geht der Transport über die Bühne? - -[TOSH2AJ:TOSH2] -~w~Er ist bereits im Gange. - -[TOSH2AK:TOSH2] -~w~Sie verlassen in diesem Augenblick das Casino. Bitte! Sie haben nicht viel Zeit. - -[TOSH2O0:TOSH2] -~w~Zerstöre alle ~r~Geldtransporter.~w~ Lass keinen zum ~y~Yakuza-Komplex~w~ durch! - -[TOSH2O1:TOSH2] -~w~Sie hauen ab! Lass keinen ~r~Van~w~ entwischen! - -[TOSH2O2:TOSH2] -~w~Du hast sie verschreckt! Lass die ~r~Vans~w~ nicht entwischen! - -[TOSH2E1:TOSH2] -~w~Der ~r~Konvoi~w~ nähert sich dem ~y~Yakuza-Komplex! - -[TOSH2E2:TOSH2] -~w~Ein ~r~Van~w~ ist fast am ~y~Yakuza-Komplex! - -{=================================== MISSION TABLE TOSH3 ===================================} - -[TOSH3M1:TOSH3] -~w~Jemand zu Hause? - -[TOSH3M2:TOSH3] -~w~Mr. Toni? Augenblick, bitte. - -[TOSH3M3:TOSH3] -~w~Mein Mann kocht vor Wut. - -[TOSH3EA:TOSH3] -~w~Er fragt sich, wieso Sie ihn so präzise zu treffen wussten. - -[TOSH3M4:TOSH3] -~w~Wenn er kein Idiot ist, geht ihm bald ein Licht auf. - -[TOSH3M5:TOSH3] -~w~Helfen wir ihm doch. Seine Leute sind alte Klatschbasen. - -[TOSH3EB:TOSH3] -~w~Liefern wir ihnen Gesprächsstoff. - -[TOSH3M6:TOSH3] -~w~Wohin wollen wir? - -[TOSH3M7:TOSH3] -~w~In die Oper. - -[TOSH3M8:TOSH3] -~w~Ich und Oper? Machen Sie Witze? - -[TOSH3M9:TOSH3] -~w~Aber woher denn, Mr. Toni? In die Oper geht doch jeder gern. - -[TOSH3A:TOSH3] -~w~Wenn Sie meinen Wagen vorfahren, holen wir Ihren Smoking ab. - -[TOSH3EC:TOSH3] -~w~Schnell. Die Vorstellung fängt gleich an. - -[TOSH3B:TOSH3] -~w~Fahre ~b~Toshikos Wagen~w~ vor. - -[TOSH3C:TOSH3] -~w~Hol ~b~Toshiko~w~ ab. - -[TOSH3C2:TOSH3] -~w~Hol einen Smoking von ~y~Mr. Benz. - -[TOSH3B3:TOSH3] -~w~Fahr Toshiko zurück zu ihrer ~y~Wohnung. - -[TOSH3B4:TOSH3] -~r~Du hast Toshiko zurückgelassen. - -[TOSH3B2:TOSH3] -Steig wieder in ~b~Toshikos Wagen. - -[TOSH3C3:TOSH3] -~w~Fahr zur ~y~Oper. - -[TOSH3D:TOSH3] -~w~Wo wollen Sie hin? Wir kommen zu spät! - -[TOSH3D2:TOSH3] -~w~Lassen Sie mich bitte nicht hier, Toni-San! - -[TOSH3Z1:TOSH3] -~w~Halten sie mich für einen schlechten Menschen? - -[TOSH3Z2:TOSH3] -~w~Na ja, Prinzessin, ich bin auch kein Heiliger. - -[TOSH3Z3:TOSH3] -~w~Einen Heiligen könnte ich auch nicht brauchen. - -[TOSH3Z4:TOSH3] -~w~Mein Mann ist Samurai, Mr. Toni. - -[TOSH3Z5:TOSH3] -~w~Er ist sehr stark, aber sehr, sehr schlecht. - -[TOSH3Z6:TOSH3] -~w~Er heiratete mich nur, um Wakagashira in Liberty City zu werden. - -[TOSH3Z7:TOSH3] -~w~Geliebt hat er mich nie. Er bevorzugt die Gesellschaft seiner Männer. - -[TOSH3Z8:TOSH3] -~w~Verstehen Sie mich? - -[TOSH3Z9:TOSH3] -~w~Wenn er Ihnen auf die Schliche kommt, bringt er Sie um. Das wissen Sie. - -[TOSH3Z0:TOSH3] -~w~Mich interessiert weder Leben noch Tod, nur noch die Freiheit. - -[TOSH3ZB:TOSH3] -~w~Entspannte Einstellung. - -[TOSH3E:TOSH3] -~w~Italiener- und Japsenblut vermischt sich nicht. - -[TOSH3F:TOSH3] -~w~Außer, beide sind auf dem Pflaster verspritzt! - -[TOSH3G:TOSH3] -~w~Schütze Toshiko und fliehe in ~b~ihrem Wagen. - -[TOSH3H:TOSH3] -~w~Schütze ~b~Toshiko~w~ und bringe sie zurück in ihre ~y~Wohnung. - -[TOSH3S1:TOSH3] -~w~Mein Wagen! - -[TOSH3S2:TOSH3] -~w~Retten Sie uns, Toni! - -[TOSH3S3:TOSH3] -~w~Kommen Sie, Toni! - -[TOSH3S4:TOSH3] -~w~Bringen Sie uns hier fort! - -[TOSH3S5:TOSH3] -~w~Retten Sie mich! - -[TOSH3S6:TOSH3] -~w~Hilfe! - -[TOSH3S7:TOSH3] -~w~Wir schaffen es nicht! - -[TOSH3S8:TOSH3] -HILFE! - -[TOSH3S9:TOSH3] -~r~Toshiko ist tot! - -[TOSH310:TOSH3] -~r~Toshikos Wagen wurde zerstört! - -[TOSH311:TOSH3] -~r~Die Zeit ist um! - -[TOSH3_1:TOSH3] -KEIN(E) - -[TOS3NE1:TOSH3] -~w~Beschütze Toshiko und erledige die ~r~Forelli-Gangster. - -[TOS3NE2:TOSH3] -~w~Flüchte in ~b~Toshikos Auto. - -[TOSH3EI:TOSH3] -~w~Die Oper beginnt um 20:00 Uhr. Verspäte dich nicht! - -{=================================== MISSION TABLE TOSH4 ===================================} - -[TOSH4O2:TOSH4] -~w~Kazukis Helikopter will zum ~y~Casino! - -[TOSH4O4:TOSH4] -~w~Beseitige ~r~Kazuki! - -[TOSH4O5:TOSH4] -~w~Begib dich zu ~y~Toshikos Wohnung. - -[TOSH4_3:TOSH4] -~w~Kazuki kommt in dem Helikopter an! Begib dich zum Helipad und leg ihn um. - -[TOSH4Y1:TOSH4] -~w~Schnappt ihn! - -[TOSH4Y2:TOSH4] -~w~Legt ihn um! - -[TOSH4CA:TOSH4] -~w~Meine Leute beschämen mich, - -[TOSH4CB:TOSH4] -~w~doch es geziemt sich, dass ich dich selbst töte. - -[TOSH4CC:TOSH4] -~w~Ihr zwei! Verschwindet! - -[TOSH4CD:TOSH4] -~w~Ich stoße mein Schwert mit großer Freude in dich hinein. - -[TOSH4CE:TOSH4] -~w~Ja, hab ich auch schon gehört. - -[TOSH4K1:TOSH4] -~w~Erschießt ihn! - -[TOSH4K2:TOSH4] -~w~Legt ihn um! - -[TOSH4_7:TOSH4] -~w~Bringe Toshiko Kazukis Schwert als Beweis, dass er tot ist. - -[TOSH4_8:TOSH4] -~w~Du hast Kazuki verschreckt! Er flieht! Die Chance, ihn zu beseitigen, ist vertan! - -[TOSH4_C:TOSH4] -Kazuki - -[TOSH4AA:TOSH4] -~w~Hallo? - -[TOSH4AB:TOSH4] -~w~Ich nehme ein Bad, Toni-San. - -[TOSH4AC:TOSH4] -~w~Wir haben kaum noch Zeit. - -[TOSH4AD:TOSH4] -~w~Mein Mann weiß jetzt, wer hinter seinen Verlusten steckt. - -[TOSH4AE:TOSH4] -~w~Er kommt, um mich zu töten. Und Sie auch. - -[TOSH4AF:TOSH4] -~w~Ich hab nicht vor, auf ihn zu warten. Wo ist er? - -[TOSH4AG:TOSH4] -~w~In Belleville. Er versammelt seine Leute. - -[TOSH4AJ:TOSH4] -~w~Doch bald wird er herkommen. - -[TOSH4AH:TOSH4] -~w~Sayonara, Süße. - -[TOSH4AI:TOSH4] -~w~Mein Gebet begleitet Sie, Toni-San. Viel Glück. - -[TOSH4F1:TOSH4] -~r~Kazuki lacht dich aus! - -[TOSH4OA:TOSH4] -~w~Erledige Kazukis ~r~Wachen! - -[TOSH4OB:TOSH4] -~w~Fahr zurück zu ~y~Kazukis Casino! - -[TOSH4OC:TOSH4] -~w~Vorsicht - da kommen noch mehr ~r~Yakuza! - -[TOSH4DA:TOSH4] -~w~Erschießt ihn! - -[TOSH4DB:TOSH4] -~w~Erledigt ihn! - -[TOSH4DC:TOSH4] -~w~Erledigt ihn, ihr Arschlöcher! - -[TOSH4O1:TOSH4] -~w~Begib dich zu ~y~Kazukis Versteck~w~ und leg ihn um! - -[TOSH4O3:TOSH4] -~w~Begib dich zum ~y~Helipad! - -[CASH_01:TOSH4] -Tja, Toshiko, jetzt ist es vorbei. - -[CASH_02:TOSH4] -Ja, ja, ich weiß. Hallo, Mr. Toni. - -[CASH_03:TOSH4] -Hey. Tja, Sie haben gesiegt. - -[CASH_04:TOSH4] -Sie haben, was Sie wollten. Alles hat bestens geklappt. - -[CASH_06:TOSH4] -Schön, ja, schön. Wirklich schön. - -[CASH_07:TOSH4] -Jetzt heißt es Zahlemann und Söhne, Süßer. - -[CASH_08:TOSH4] -Beide sind wir Narren und Mörder, Mr. Toni. - -[CASH_09:TOSH4] -Kann schon sein. - -[CASH_10:TOSH4] -Die Welt hat so eine verheerende Wirkung auf die Seele, finden Sie nicht auch, Mr. Toni? - -[CASH_11:TOSH4] -Kann sein. - -[CASH_12:TOSH4] -Aber Sie sind jetzt frei. Sie können nach Costa Rica oder Aruba gehen oder so. - -[CASH_13:TOSH4] -Neu anfangen. Das wollten Sie doch immer. - -[CASH_14:TOSH4] -Ich glaube kaum, dass mir der Sinn nach einem Strandurlaub steht. - -[CASH_15:TOSH4] -Ich habe alles verloren, und das willentlich. - -[CASH_16:TOSH4] -Mir wurde alles gewährt, was ich wollte. - -[CASH_17:TOSH4] -Jetzt will ich nur noch frei sein. - -[CASH_18:TOSH4] -Leben Sie wohl, Toni-San. +[MM_1_C:CARPAR1] +~y~PASSIERE~g~ einen Checkpoint, dann lãuft die Zeit. ~g~Jeder Checkpoint bringt dir ~y~~1~ SEKUNDEN~g~. {=================================== MISSION TABLE COPCAR ===================================} [C_COMP1:COPCAR] -~w~Bürgerwehr-Mission: Level 12 abgeschlossen! Kugelsichere Westen geben dir jetzt erhöhten Schutz! +Bürgerwehr-Mission Level 12 beendet: Deine max. Panzerung erhöht sich auf 150 + +[CLEVEL:COPCAR] +Bürgerwehr-Mission Level ~1~ + +[C_PASS:COPCAR] +BEDROHUNG AUSGERÃUMT: $ ~1~ + +[KILLS:COPCAR] +HITS: [C_BREIF:COPCAR] -~r~Verdächtiger~w~ wurde zuletzt in der Gegend von ~a~ gesichtet. - -[C_BREIG:COPCAR] -~r~Verdächtige~w~ wurden zuletzt in der Gegend von ~a~ gesichtet. - -[C_RANGE:COPCAR] -~r~Du bist außer Reichweite des Polizeifunks. Fahr näher an ein Polizeirevier heran! - -[C_TIMEA:COPCAR] -~w~Zeitbonus! +~1~ Sekunden +~g~Verdãchtiger wurde zuletzt in der Gegend von ~a~ gesichtet. [COPCART:COPCAR] -~w~Du hast ~1~ Sekunden, um zu einem Polizeifahrzeug zurückzukehren, bevor die Mission endet. - -[COPCARU:COPCAR] -~w~Du hast ~1~ Sekunde, um zu einem Polizeifahrzeug zurückzukehren, bevor die Mission endet. +~g~Du hast ~1~ Sekunden, um zu einem Polizeifahrzeug zurückzukehren, bevor die Mission endet. [C_CANC:COPCAR] ~r~Bürgerwehr-Mission abgebrochen! @@ -15332,2125 +9213,5504 @@ Leben Sie wohl, Toni-San. [C_TIME:COPCAR] ~r~Deine Zeit als Gesetzeshüter ist vorbei! -[C_PASS3:COPCAR] -~w~BEDROHUNG AUSGERÄUMT! Belohnung: $~1~ +{=================================== MISSION TABLE COUNT1 ===================================} -[C_LEVEL:COPCAR] -~r~Du hast die Kriminellen entkommen lassen! +[CM1_A:COUNT1] +Mr.Vercetti? Hey. Sie haben die alte Druckerei gekauft? -[C_RANG2:COPCAR] -~r~Der Polizeifunk funktioniert nicht in der U-Bahn! +[CM1_B:COUNT1] +Ja, mein Vater hat an diesen Dingern gearbeitet. -{=================================== MISSION TABLE CARS ===================================} +[CM1_C:COUNT1] +Ich sollte in seine Fußstapfen treten, aber...es ist anders gekommen. -[CARS_10:CARS] -~w~Steig in ein Auto, um die Probefahrt zu starten, oder verlasse den Parkplatz, um die Mission zu beenden. +[CM1_D:COUNT1] +Wollen Sie die alten Maschinen verkaufen, das Werk abreißen? -[CARS_12:CARS] -~w~Verlässt du das Auto, ist die Mission fehlgeschlagen. +[CM1_E:COUNT1] +Ich denke nach, ob wir was drucken sollten. Eine Zeitung, ein Magazin... -[CARS_1:CARS] -~w~Nimm einen der Kunden auf eine Probefahrt mit. +[CM1_F:COUNT1] +Ach, Blödsinn, absoluter Blödsinn. Ich drucke lieber Geld. Ist gar nicht so schwer. -[CARS_2:CARS] -~w~Du musst herausfinden, was der jeweilige Kunde an Performance von einem Auto erwartet. +[CM1_G:COUNT1] +In kleinerem Umfang mache ich das schon seit Jahren. -[CARS_3:CARS] -~w~Zeige dann mittels deiner Fahrkünste, dass das Auto genau das zu bieten hat, was der Kunde sucht. +[CM1_H:COUNT1] +Tatsãchlich? -[CARS_5:CARS] -~w~Beeindrucke den Kunden. +[CM1_I:COUNT1] +Klar. Aber wir brãuchten gute Platten. -[CARS_6:CARS] -~w~Kunde k.o.! Nimm ein anderes Auto. +[CM1_J:COUNT1] +Natürlich! In Florida gibt es schon ein Geldfãlscher-Syndikat. -[CARS_30:CARS] -~w~Fahr zurück zum ~y~Autohandel~w~, um das Geschäft abzuschließen. +[CM1_K:COUNT1] +Ein Syndikat? -[CARS_C1:CARS] -~w~Klasse, Mann, Sie schütteln die Bullen ab, hä? +[CM1_L:COUNT1] +Ja. Hab aber nur gerüchteweise davon gehört. -[CARS_C2:CARS] -~w~Ja! Der Idiot hat's nicht anders gewollt! +[CM1_M:COUNT1] +Ich kenne einen, der kennt sich mit Gerüchten aus... -[CARS_P1:CARS] -~w~Wow! Der Schlitten geht ja Überschall! +[CM1_N:COUNT1] +Hab immer die Abende mit ihm verbracht, die Walzen reinigen. -[CARS_P2:CARS] -~w~Wuhu! +[CM1_2A:COUNT1] +Sieh dir diesen Hintern an! -[CARS_P3:CARS] -~w~Da fährt ja meine Tante schneller! +[CM1_2B:COUNT1] +Tja, Kleine, du weißt nicht, was dir entgeht! -[CARS_P4:CARS] -~w~Hat das Dings Airbags? +[CM1_2C:COUNT1] +Na, alter Freund, wie lãuft's so? -[CARS_M1:CARS] -~w~Ah, was für eine schöne, gemütliche Fahrt. +[CM1_2D:COUNT1] +Was weißt du über Geldfãlscherei? -[CARS_M2:CARS] -~w~Ist Ihnen klar, was die Höchstgeschwindigkeit hier ist?! +[CM1_2E:COUNT1] +'Oh, alles bestens, Paul, und bei dir?' -[CARS_M3:CARS] -~w~Oh, Gott! Sie bringen uns ja um! +[CM1_2F:COUNT1] +Komm her! -[CARS_O1:CARS] -~w~Oh, ja! Endlich kein blöder Asphalt mehr! +[CM1_2G:COUNT1] +Ist ja gut, ist ja gut. Anscheinend bist du schwer beschãftigt. -[CARS_O2:CARS] -~w~Ab in die Wolken, Kumpel! +[CM1_2H:COUNT1] +Über Falschgeld weiß ich nur, dass die Triaden die Platten liefern. -[CARS_O3:CARS] -~w~Cooler Salto, Mann! +[CM1_2I:COUNT1] +Die haben eine Reederei unten bei den Docks. -[CARS_SC:CARS] -~w~Verkauf getätigt. Provision: $~1~. Zeit-Bonus: ~1~ Sekunden. +[CM1_2J:COUNT1] +Der Boss weiß, wann die nãchsten Platten reinkommen. -[CARS_SD:CARS] -~w~Level ~1~ abgeschlossen. Provision: $~1~. Zeit-Bonus: ~1~ Sekunden. +[CM1_2K:COUNT1] +Danke, Paul. -[CARS_IR:CARS] -~1~ HINTEREINANDER! Bonus! $~1~. +[CM1_2L:COUNT1] +Was ist bloß los mit dir, du Wahnsinniger! -[CARS_RE:CARS] -~w~Eine kleine Vergünstigung für unseren Top-Verkäufer! +[CM1_2M:COUNT1] +Gib mir noch einen Drink, hopp! -[CARSIC1:CARS] -~w~Ich brauch einen, in dem sie mich nicht so schnell schnappen, Mann. +[CM1_3:COUNT1] +~g~Man hat dich bemerkt! -[CARSIC2:CARS] -~w~Ich brauch eins, mit dem ich's diesen Gehweg-Pennern zeigen kann. +[CM1_5:COUNT1] +~g~Begib dich zu Kent Paul in den Malibu Club! -[CARSIP1:CARS] -~w~Das Baby sieht schnell aus! +[CNT1_1:COUNT1] +Wer sind Sie? Uff! Aiiee! Nicht ins Gesicht! Nicht ins Gesicht! -[CARSIP2:CARS] -~w~Oh, Mann! Ich wette, die Kiste kann fliegen! +[CM1_1:COUNT1] +~g~Begib dich zum Schiff der Chartered Libertine Lines bei den Docks. -[CARSIM1:CARS] -~w~Es heißt, mit denen kann man schön gemütlich rollen. +[CM1_2:COUNT1] +~g~Der Reedereichef verfügt über die benötigten Informationen. -[CARSIM2:CARS] -~w~Seit meiner Operation brauch ich ein langsameres Auto. +[CNT1_2:COUNT1] +Ok, ich rede ja! Ich rede! -[CARSIO1:CARS] -~w~Geiler Off-Roader! Fahren wir Gelände! +[CM1_6:COUNT1] +~g~Begib dich mit den Informationen zurück in die Druckerei! -[CARSIO2:CARS] -~w~Mein Kumpel legt mit seiner Karre geile Saltos hin - auf so Scheiß steh ich! +{=================================== MISSION TABLE COUNT2 ===================================} -[CARS_N1:CARS] -~w~Die Schrottkarre kauf ich nicht! +[CNT2_B1:COUNT2] +Ok, der Kurier holt die Druckplatten heute vom Hafen ab. -[CARS_N2:CARS] -~w~Haben Sie allen Ernstes geglaubt, ich kauf dieses Wrack! +[CNT2_B2:COUNT2] +Ich fange ihn ab, schnapp mir die Platten, hãng die Cops ab und komm wieder hierher. -[CARS_N3:CARS] -~w~Ihr Gebrauchtwagenhändler seid alle gleich! +[CNT2_B3:COUNT2] +Also, je nachdem wie es lãuft, haben wir -[CARS_Y1:CARS] -~w~Ich nehm's! +[CNT2_B4:COUNT2] +entweder 5 Minuten zum Gelddrucken, bis das Fãlschersyndikat uns findet, oder wir haben alle Zeit der Welt. -[CARS_Y2:CARS] -~w~Das ist das ideale Auto für mich! +[CNT2_B5:COUNT2] +Jedenfalls will ich 5 Minuten nachdem ich hier bin, Scheinchen aus der Presse kommen sehen! -[CARS_Y3:CARS] -~w~Wir kommen ins Geschäft! +[CNT2_B6:COUNT2] +Keine Sorge, Tommy. Wir sind bereit. -[CARS_R1:CARS] -~w~Das Modell gefällt mir, nur die Farbe nicht. +[CNT2_B7:COUNT2] +Ich und die Jungs bleiben in der Nãhe, falls die Cops dir in die Quere kommen. -[CARS_R2:CARS] -~w~Lass das Auto umspritzen! +[CNT2_B8:COUNT2] +Ok. Jeder weiß, was er zu tun hat? Gut. Bis spãter. -[CARS_D1:CARS] -~w~Es gefällt mir, aber es ist ziemlich verbeult! +[CNT2_01:COUNT2] +~g~Der ~r~Kurier~g~ mit den Druckplatten kommt jeden Moment in einem Helikopter an den ~y~Docks~g~ an. -[CARS_D2:CARS] -~w~Lass das Auto reparieren! +[CNT2_02:COUNT2] +~r~Der Kurier mit den Platten ist im Helikopter geflohen. -[CARS_F1:CARS] -~r~Du hast das Auto zerstört! +[CNT2_03:COUNT2] +~r~Der Kurier ist an seinem Ziel angekommen. Du kommst zu spãt! -[CARS_F2:CARS] -~r~Du hast den Kunden umgebracht! +[CNT2_04:COUNT2] +~r~Du hast die Platten in der Explosion zerstört! -[CARS_F3:CARS] -~r~Du hast zu lange gebraucht! Dem Kunden wurde langweilig! +[CNT2_05:COUNT2] +~g~Du hast die Druckplatten. Bring sie in die Druckerei. -[CARS_F4:CARS] -~r~Der Kunde hasst das Auto! +[CNT2_06:COUNT2] +~g~Der Kurier ist hinüber. Hol dir die Platten, ehe dir jemand zuvorkommt. -[CARS_F5:CARS] -~r~Deine Zeit als Autohändler ist vorbei! +[CNT2_07:COUNT2] +~g~Eine der Wachen hat die Platten genommen. Lass ihn nicht entkommen! -[CARS_F6:CARS] -~r~Der Kunde hasst das Auto - du hast es geschrottet! +[CNT2_08:COUNT2] +~g~Der ~r~Kurier~g~ mit den Platten ist an den Docks eingetroffen. -[CARS_F7:CARS] -~r~Der Kunde hasst das Auto - du bist zu schnell gefahren! +[CNT2_4:COUNT2] +Privatangelegenheit. Du hast hier nichts verloren! -[CARS_F8:CARS] -~r~Der Kunde hasst das Auto - du bist zu langsam gefahren! +[CNT2_09:COUNT2] +DRUCKEREI ERWORBEN -[CARS_SA:CARS] -Verkauf +[CNT2_10:COUNT2] +~g~Die Druckerei generiert nun bis zu $~1~ Einkünfte. Hol dir das Geld regelmãßig ab. -[CARS_7:CARS] -~w~Steig in ein ~b~Auto! +[CNT2_11:COUNT2] +~r~Die Platten liegen auf dem Meeresgrund! -[CARS_RF:CARS] -~w~Capital Autos steht jetzt unter deinem 'Schutz'. Hol dir dein Schutzgeld regelmäßig ab. +{=================================== MISSION TABLE CUBAN1 ===================================} -{=================================== MISSION TABLE BIKE ===================================} +[CUB1_A:CUBAN1] +Was ist, Mann? -[BIKE_10:BIKE] -~w~Schwing dich auf ein Bike, um die Probefahrt zu starten, oder verlasse die Gasse, um die Mission zu beenden. +[CUB1_B:CUBAN1] +Hey, langsam, Paps, der ist für mich. Bist du der Bursche? -[BIKE_12:BIKE] -~w~Steigst du aus dem Sattel, ist die Mission fehlgeschlagen. +[CUB1_C:CUBAN1] +Oh ja, du bist der Bursche. Glaub schon. -[BIKE_1:BIKE] -~w~Nimm einen der Kunden auf eine Probefahrt mit. +[CUB1_D:CUBAN1] +Nein, glaub ich nicht. -[BIKE_2:BIKE] -~w~Du musst herausfinden, was der jeweilige Kunde an Performance von einem Motorrad erwartet. +[CUB1_E:CUBAN1] +Ach ja? Komm her du Großmaul. -[BIKE_3:BIKE] -~w~Zeige dann mittels deiner Fahrkünste, dass das Motorrad genau das zu bieten hat, was der Kunde sucht. +[CUB1_F:CUBAN1] +Meinst du, du kannst es mit mir aufnehmen? -[BIKE_5:BIKE] -~w~Beeindrucke den Kunden. +[CUB1_G:CUBAN1] +Meinst du, du kannst mich für blöd verkaufen? -[BIKE_30:BIKE] -~w~Fahr zurück zum ~y~Motorradhandel~w~, um das Geschäft abzuschließen. +[CUB1_H:CUBAN1] +Nein, ich glaube, deine Blödheit reicht für uns beide. -[BIKE_C1:BIKE] -~w~Klasse, Mann, Sie schütteln die Bullen ab, hä? +[CUB1_I:CUBAN1] +Hey, er sagt, du bist dumm, mein Sohn. -[BIKE_C2:BIKE] -~w~Ja! Der Idiot hat's nicht anders gewollt! +[CUB1_J:CUBAN1] +Und ich sage, er ist ein kleines Mãdchen, Paps. -[BIKE_P1:BIKE] -~w~Ja! Das Ding ist unglaublich! +[CUB1_K:CUBAN1] +Sieh dir doch an, wie er angezogen ist. -[BIKE_P2:BIKE] -~w~Super! +[CUB1_L:CUBAN1] +Was ist los? Ist heute Weiberabend? -[BIKE_P3:BIKE] -~w~Komm, können Sie nicht schneller fahren! +[CUB1_M:CUBAN1] +Du willst ein harter Kerl sein und ziehst dich an wie ein Weib? -[BIKE_P4:BIKE] -~w~Vorsicht! +[CUB1_N:CUBAN1] +Hast du auch ein Höschen an, oder was? -[BIKE_M1:BIKE] -~w~Ah, was für eine schöne, gemütliche Fahrt. +[CUB1_O:CUBAN1] +Was hast du gegen Frauen? Ziehst du Mãnner vor? -[BIKE_M2:BIKE] -~w~Ist Ihnen klar, was die Höchstgeschwindigkeit hier ist?! +[CUB1_P:CUBAN1] +Ich liebe Frauen! Ich liebe alle Frauen! Ich liebe meine Mutter, Chico. -[BIKE_M3:BIKE] -~w~Oh, Gott! Sie bringen uns ja um! +[CUB1_Q:CUBAN1] +Ok, ok, ich glaub's dir ja. -[BIKE_O1:BIKE] -~w~Oh, ja! Endlich kein blöder Asphalt mehr! +[CUB1_R:CUBAN1] +Kannst du fahren, Amigo? -[BIKE_O2:BIKE] -~w~Ab in die Wolken, Kumpel! +[CUB1_S:CUBAN1] +Ja...wie eine Frau. -[BIKE_O3:BIKE] -~w~Geile Stunts, Kumpel! +[CUB1_T:CUBAN1] +Sehr witzig. Du gefãllst mir, Großer. Vielleicht kannst du mir helfen. -[BIKE_SC:BIKE] -~w~Verkauf getätigt. Provision: $~1~. Zeit-Bonus: ~1~ Sekunden. +[CUB1_U:CUBAN1] +Vielleicht kannst du beweisen, dass du ein Mann bist. Hah? -[BIKE_IR:BIKE] -~1~ HINTEREINANDER! Bonus! $~1~. +[CUB1_V:CUBAN1] +Schnapp dir das Boot. -[BIKE_RE:BIKE] -~w~Eine kleine Vergünstigung für unseren Top-Verkäufer! +[CUB1_W:CUBAN1] +Zeig mir, dass du ein ganzer Kerl bist, -[BIKE_RF:BIKE] -~w~Hogs & Cogs steht jetzt unter deinem 'Schutz'. Hol dir dein Schutzgeld regelmäßig ab. +[CUB1_X:CUBAN1] +und kein kleines Mãdchen. -[BIKEIC1:BIKE] -~w~Ich brauch eins, mit dem sie mich nicht so schnell schnappen, Mann. +[CUB1_02:CUBAN1] +Ok Mann, behandle es wie eine Frau. -[BIKEIC2:BIKE] -~w~Ich brauch eins, mit dem ich's diesen Gehweg-Pennern zeigen kann. +[CUB1_03:CUBAN1] +Nicht schlecht, du bist ein echter Mann. -[BIKEIP1:BIKE] -~w~Der Ofen sieht schnell aus! +[CUB1_04:CUBAN1] +Mann, du bist ein ganzer Kerl, Amigo. -[BIKEIP2:BIKE] -~w~Ich will was, was Weiber beeindruckt! +[CUB1_05:CUBAN1] +Amigo, du bist ein Mann, Mann. -[BIKEIM1:BIKE] -~w~Es heißt, mit denen kann man schön gemütlich rollen. +[CUB1_06:CUBAN1] +Du willst ein Mann sein, Mann? -[BIKEIM2:BIKE] -~w~Ich hab erst heute den Führerschein gemacht, deshalb brauch ich ein langsameres Bike. +[CUB1_07:CUBAN1] +Du bist ein feiges Würstchen, Kleiner, heul dich bei Mammi aus. -[BIKEIO1:BIKE] -~w~Geile Gelände-Gurke! Fahren wir Off-road! +[CUB1_08:CUBAN1] +Du bist zu nichts zu gebrauchen. Macht einen auf harter Mann, aber fãhrt wie ein Idiot. -[BIKEIO2:BIKE] -~w~Mit dem Ding kann man coole Stunts machen, oder? +[CUB1_09:CUBAN1] +Mann, du bist der Hammer, Mann. Du gefãllst mir. Du gefãllst mir sehr. -[BIKE_N1:BIKE] -~w~Die Schrottmühle kauf ich nicht! +[CUB1_10:CUBAN1] +Du bist gut, Mann. Weil du ein ganzer Kerl bist. Alle meine Freunde sind ganze Kerle. -[BIKE_N2:BIKE] -~w~Haben Sie allen Ernstes geglaubt, ich kauf dieses Wrack! +[CUB1_11:CUBAN1] +Du hast Rico erledigt! -[BIKE_N3:BIKE] -~w~Ihr Gebrauchtmotorradhändler seid alle gleich! +[CUB1_12:CUBAN1] +Fahre durch den ersten Checkpoint, um den Test zu beginnen. -[BIKE_Y1:BIKE] -~w~Ich nehm's! +[CUB1_14:CUBAN1] +Steig wieder ins Boot! -[BIKE_Y2:BIKE] -~w~Das ist das ideale Motorrad für mich! +[CUB1_15:CUBAN1] +Du bist zu langsam, Mann. -[BIKE_Y3:BIKE] -~w~Wir kommen ins Geschäft! +[CUB1_01:CUBAN1] +Hi, ich bin Rico. Bist du der 'ganze Kerl'? -[BIKE_R1:BIKE] -~w~Das Modell gefällt mir, nur die Farbe nicht. +[CUB1_13:CUBAN1] +~g~Du hast drei Minuten, um den Rundkurs zu schaffen. -[BIKE_R2:BIKE] -~w~Lass das Motorrad umspritzen! +{=================================== MISSION TABLE CUBAN2 ===================================} -[BIKE_D1:BIKE] -~w~Es gefällt mir, aber es ist ziemlich verbeult! +[CUB2_25:CUBAN2] +ERLEDIGE ALLE HAITIANER!! -[BIKE_D2:BIKE] -~w~Lass das Motorrad reparieren! +[CUB2_M:CUBAN2] +Wer sich mit mir anlegt, hat sich den stãrksten der Stadt rausgesucht! -[BIKE_F1:BIKE] -~r~Du hast das Motorrad zerstört! +[CUB2_A:CUBAN2] +Eine Kaffee, bitte, Alberto. -[BIKE_F2:BIKE] -~r~Du hast den Kunden umgebracht! +[CUB2_N:CUBAN2] +Kein Problem, Tommy. -[BIKE_F3:BIKE] -~r~Du hast zu lange gebraucht! Dem Kunden wurde langweilig! +[CUB2_B:CUBAN2] +Paps! Es gibt ein Riesenproblem! -[BIKE_F4:BIKE] -~r~Der Kunde hasst das Motorrad! +[CUB2_O:CUBAN2] +Umberto, mein Sohn, was ist passiert? -[BIKE_F5:BIKE] -~r~Deine Zeit als Motorradhändler ist vorbei. +[CUB2_C:CUBAN2] +Die Haitianer! Ich hasse die Haitianer! -[BIKE_F6:BIKE] -~r~Der Kunde hasst das Motorrad - du hast es geschrottet! +[CUB2_D:CUBAN2] +Die haben mir das letzte Mal ans Bein gepinkelt! -[BIKE_F7:BIKE] -~r~Der Kunde hasst das Motorrad - du bist zu schnell gefahren! +[CUB2_E:CUBAN2] +Diese Haitianer. Wir machen sie fertig! -[BIKE_F8:BIKE] -~r~Der Kunde hasst das Motorrad - du bist zu langsam gefahren! +[CUB2_F:CUBAN2] +Aber dazu brauchen wir Hilfe. -[BIKE_B1:BIKE] -~w~Du hast ~1~ Sekunden, um wieder auf das ~b~Motorrad~w~ zu steigen! +[CUB2_G:CUBAN2] +Ich hab dabei schon ein paar Brüder verloren. -[BIKE_B2:BIKE] -~w~Lass den ~b~Kunden~w~ wieder auf das Motorrad steigen! +[CUB2_H:CUBAN2] +Amigo, du fãhrst gut! -[BIKE_B3:BIKE] -~w~Lass den ~b~Kunden~w~ auf das Motorrad steigen! +[CUB2_I:CUBAN2] +Für eine Frau, was? -[BIKE_SA:BIKE] -Verkauf +[CUB2_J:CUBAN2] +Jetzt ist nicht die Zeit für Witze! -[BIKE_7:BIKE] -~w~Steig auf ein ~b~Motorrad! +[CUB2_K:CUBAN2] +Komm, fahr noch mal für mich! -[BIKE_S1:BIKE] -~w~Du hast alle Freeways, die wir vorrätig hatten, verkauft! +[CUB2_L:CUBAN2] +Bring meine Jungs da rüber, und dann erledigen wir diese Haitianer! -[BIKE_S2:BIKE] -~w~Du hast alle PCJ 600, die wir vorrätig hatten, verkauft! +[CUB2_01:CUBAN2] +Da ist nicht genug Platz, Mann, du brauchst ein größeres Auto. -[BIKE_S3:BIKE] -~w~Du hast alle Faggios, die wir vorrätig hatten, verkauft! +[CUB2_02:CUBAN2] +Wir brauchen Verstãrkung aus dem Café! -[BIKE_S4:BIKE] -~w~Du hast alle Sanchez, die wir vorrätig hatten, verkauft! +[CUB2_03:CUBAN2] +~g~Besorg dir ein Auto und hole die Kubaner vor Robinas Café ab. -[BIKE_SN:BIKE] -~w~Es wurde neue Ware angeliefert! +[CUB2_04:CUBAN2] +~g~Setze die Kubaner am Kampfort ab. -{=================================== MISSION TABLE RAC1 ===================================} +[CUB2_05:CUBAN2] +Schalte den feigen Heckenschützen aus! -[RAC1_A0:RAC1] -~w~Wenn du beweisen willst, dass deine Karre keine Schrottmühle ist, dann starte beim nächsten Straßenrennen. +[CUB2_07:CUBAN2] +Die kãmpfen wie Weiber! In Deckung! -{=================================== MISSION TABLE RAC2 ===================================} +[CUB2_09:CUBAN2] +Heckenschütze auf dem Dach! -[RAC2_A0:RAC2] -~w~Hey, es heißt, es findet ein Straßenrennen statt. Fahr deine Karre an die Startlinie. +[CUB2_11:CUBAN2] +~r~Du Idiot! Das Auto hãtten wir gebraucht! -{=================================== MISSION TABLE RAC3 ===================================} +[CUB2_12:CUBAN2] +Hey, Amigo! Schön zu sehen, dass du's geschafft hast! -[RAC3_A0:RAC3] -~w~Gibt kein schnelleres Auto, gibt keinen besseren Fahrer. +[CUB2_13:CUBAN2] +Stinkendes Haitianer-Nest. Das werden wir komplett ausheben! -[RAC3_A1:RAC3] -~w~Ich seh dich dann beim nächsten Straßenrennen... im Rückspiegel. +[CUB2_14:CUBAN2] +ANGRIFF! -{=================================== MISSION TABLE BIK1 ===================================} +[CUB2_15:CUBAN2] +Los, meine Brüder, ANGRIFF!! -[BIK1_A0:BIK1] -~w~Du glaubst, du kannst mich schlagen? Keine Chance! +[CUB2_16:CUBAN2] +Tommy, wir haben unseren mannhaften Mut bewiesen! -[BIK1_A1:BIK1] -~w~Fahr dein Motorrad an die Startlinie und dann geht's los! +[CUB2_17:CUBAN2] +Lass uns diesen Wagen voller Stoff nehmen und abhauen! -{=================================== MISSION TABLE BIK2 ===================================} +[CUB2_18:CUBAN2] +~g~Besorge dir ein Auto und hole die Kubaner ab. -[BIK2_A0:BIK2] -~w~Wenn du glaubst, du kannst mich bei 'nem Rennen schlagen, dann lass deine Reifen sprechen! +[CUB2_19:CUBAN2] +Wir werden kãmpfen wie Mãnner! -[BIK2_A1:BIK2] -~w~Wir sehen uns an der Startlinie. +[CUB2_21:CUBAN2] +Kãmpfen wie ganze Kerle! -{=================================== MISSION TABLE BIK3 ===================================} +[CUB2_22:CUBAN2] +~g~Schalte die restlichen Haitianer aus, damit die Kubaner vorrücken können. -[BIK3_A0:BIK3] -~w~Es ist ganz einfach: Auf zwei Rädern schlägt mich keiner. Legen wir los. +[CUB2_23:CUBAN2] +~g~In Little Haiti wird es von Haitianern wimmeln, die sich an den Kubanern rãchen wollen. Sei vorsichtig. -{=================================== MISSION TABLE TT1 ===================================} +[CUB2_24:CUBAN2] +~g~Kehre mit dem Van zu Robinas Café zurück und parke hinter dem Haus. -[TT1_A0:TT1] -~w~~k~ ~AMBUY~ ~w~zum Teilnehmen. ~n~~k~ ~AMEXI~ ~w~zum Abbrechen. +{=================================== MISSION TABLE CUBAN3 ===================================} -[TT1_0:TT1] -Zeit +[CUB3_A:CUBAN3] +Alberto? Einen Kaffee, Senor? -[TT1_1:TT1] -~w~Neuer Rundenrekord: ~1~:~1~ +[CUB3_B:CUBAN3] +Paps, gib dieser falschen Schlange nichts. -[TT1_1A:TT1] -~w~Neuer Rundenrekord: ~1~:0~1~ +[CUB3_C:CUBAN3] +Du hast zwei Gesichter, Tommy! -[TT1_C1:TT1] -~w~3 +[CUB3_D:CUBAN3] +Du hast entweder zwei Gesichter oder du bist ein Feigling, Kleiner! -[TT1_C2:TT1] -~w~2 +[CUB3_E:CUBAN3] +Die Haitianer, Mann, die lachen mich aus. -[TT1_C3:TT1] -~w~1 +[CUB3_F:CUBAN3] +Ruhig, ruhig. Was gibt es für Probleme? -[TT1_C4:TT1] -~w~LOS! +[CUB3_G:CUBAN3] +Sie lachen mich aus, Tommy. Mich! -[TT1_D1A:TT1] -~w~Höhe: ~1~ Fuß +[CUB3_H:CUBAN3] +Umberto Robina. Die tun, was sie wollen! -[TT1_D2:TT1] -~w~Runde ~1~ - Zeit: ~1~:~1~ +[CUB3_I:CUBAN3] +Die tun nicht, was sie wollen, Umberto. Sie tun, was du sie tun lãsst. -[TT1_D3:TT1] -~w~Runde ~1~ - Zeit: ~1~:0~1~ +[CUB3_J:CUBAN3] +Was? -[TT1_D4:TT1] -~w~Runde +[CUB3_K:CUBAN3] +Soll jemand aus dem Weg gerãumt werden? -[TT1_F2:TT1] -~r~Du hast die Strecke verlassen! +[CUB3_L:CUBAN3] +Ich kann das machen, aber es kostet. -[TT1_F3:TT1] -~r~Du hast das Motorrad geschrottet! +[CUB3_M:CUBAN3] +Ich weiß, wir sind Brüder und alles, aber hier geht's um ein Geschãft. -[TT1_D5A:TT1] -~w~Höhe: ~1~ Fuß - $10 Bonus! +[CUB3_N:CUBAN3] +Tommy. Du bist ein echter Mann. Ein Geschãftsmann, ein Gentleman. -[TT1_D1:TT1] -~w~Höhe: ~1~ Meter +[CUB3_O:CUBAN3] +Die Haitianer, sie erwarten eine Schiffladung Stoff, richtig gutes Zeug. -[TT1_D5:TT1] -~w~Höhe: ~1~ Meter - $10 Bonus! +[CUB3_P:CUBAN3] +Wir schnappen es uns und erledigen sie. -[TT1_2:TT1] -~w~Du hast die Ziel-Zeit unterboten! Nächster Kurs freigeschaltet - $100 Bonus! +[CUB3_Q:CUBAN3] +Du schnappst es dir, ich passe auf dich auf. Wie auf einen Bruder, einen Sohn. -[TT1_3:TT1] -~w~Du hast die Ziel-Zeit unterboten - $100 Bonus! +[CUB3_R:CUBAN3] +Ich glaube, Cash ist mir lieber als auf deinen Knien zu reiten, Amigo. -[TTDONE:TT1] -~w~Alle Kurse absolviert! Du hast die 'Manchez' freigeschaltet. +[CUB3_01:CUBAN3] +Hey, Rico. Nettes Boot. Bist du bereit? -[TT1_2A:TT1] -~r~Du hast die Ziel-Zeit nicht erreicht. +[CUB3_03:CUBAN3] +~g~Sammle alle Aktenkoffer mit Stoff und Geld ein. -[TT1_2B:TT1] -~r~Du hast den Streckenrekord nicht unterbieten können. +[CUB3_04:CUBAN3] +~g~Bringe die Drogen und das Geld zu Umberto. -{=================================== MISSION TABLE RCR ===================================} +[CUB3_05:CUBAN3] +Ja, Tommy. Also, sei ein guter Kapitãn heute. -[RCRACE3:RCR] -~w~Schlage die anderen RC-Fahrzeuge in einem ~1~-Rundenrennen um den Park! +[CUB3_06:CUBAN3] +Mein Boot nützt mir nichts, wenn es durchlöchert ist, ok? -[RCRACE4:RCR] -~w~Schlage die anderen RC-Fahrzeuge in einem ~1~-Rundenrennen um den Flughafen! +[CUB3_07:CUBAN3] +~g~Begib dich zu Rico. Er fãhrt dich zum Treffpunkt. -[RCRACE7:RCR] -~w~Mach dich bereit... +[CUB3_02:CUBAN3] +~g~ERLEDIGE ALLE HAITIANER AUF DEN BOOTEN!! -[RCRLAP5:RCR] -~w~Neuer Rundenrekord: ~1~ Sekunden! +[CUB3_08:CUBAN3] +Oh-oh... eine Bande Kubaner. Wir werden angegriffen! -[RCRLAP6:RCR] -~w~Noch ~1~ Runden! +{=================================== MISSION TABLE CUBAN4 ===================================} -[RCRLAP7:RCR] -~w~Letzte Runde! +[CUB4_A:CUBAN4] +Hey, Ladies. Wisst ihr, was ich mache? -[RCRLTME:RCR] -Rundenzeit +[CUB4_B:CUBAN4] +Ich erledige einen Haitianer. Und dann? -[RCRLOSE:RCR] -~r~Verloren! Du bist und bleibst ein Amateur! +[CUB4_C:CUBAN4] +Dann mache ich Liebe wie ein Mann. -[RCRLOS2:RCR] -~r~Du gewinnst nie ein Rennen, wenn du nicht auf dem Kurs bleibst! +[CUB4_D:CUBAN4] +Weißt du, Kleine? So in der Art. -[RCRTIME:RCR] -~w~Du hast ~h~~1~ ~w~Sekunden, um auf die Strecke zurückzukehren! +[CUB4_E:CUBAN4] +Penner! -[RCRWIN1:RCR] -~w~Gratuliere! Du hast GESIEGT - aber den Rundenrekord nicht verbessert! +[CUB4_F:CUBAN4] +Vollidiot. -[RCRWIN2:RCR] -~w~Dein nächstes Rennen geht über ~1~ Runden! +[CUB4_G:CUBAN4] +Hey, Baby, dich würde ich nicht mit 'ner Kneifzange anfassen! -[RCRWIN3:RCR] -~w~RC-Rennen in Belleville Park, Staunton ist jetzt verfügbar. +[CUB4_H:CUBAN4] +Umberto Robina mag Frauen, keine Ziege mit Rock! -[RCRWIN4:RCR] -~w~RC-Rennen im Shoreside Airport ist jetzt verfügbar. +[CUB4_I:CUBAN4] +Tommy!! Tommy, ich liebe dich, ich liebe dich! Lass uns gehen! -[RCRWIN5:RCR] -~w~Du hast alle Levels geschafft! Jetzt verbessere noch deine Rundenbestzeiten! +[CUB4_J:CUBAN4] +Wohin denn? Kann ich nicht noch einen Kaffee trinken? -[RCR1:RCR] -~w~1 +[CUB4_K:CUBAN4] +Keine Zeit! Außerdem habe ich erst einen getrunken. -[RCR2:RCR] -~w~2 +[CUB4_L:CUBAN4] +Wir nehmen uns die Haitianer vor. -[RCR3:RCR] -~w~3 +[CUB4_M:CUBAN4] +Tommy, wie erledigt man eine Schlange? -[RCRGO:RCR] -~w~LOS! +[CUB4_N:CUBAN4] +Man beißt sie in den Hintern! Hahaha! -[RCBLAP:RCR] -Bisherige Rundenbestzeit: ~1~:~1~ +[CUB4_O:CUBAN4] +Wenn du es sagst, Umberto. -[RCBLAP1:RCR] -Bisherige Rundenbestzeit: ~1~:0~1~ +[CUB4_P:CUBAN4] +Tommy, geh und besorge uns ein kleines haitianisches Auto. -[RCBLA2:RCR] -Rundenrekord: ~1~:~1~ +[CUB4_Q:CUBAN4] +Wenn du es hast, komm zurück und hol meinen Jungen ab -[RCBLA3:RCR] -Rundenrekord: ~1~:0~1~ +[CUB4_R:CUBAN4] +Pepe, und fahre ihn zu den Haitianern. -[RCRRLA1:RCR] -~w~Neuer Rundenrekord: ~1~:~1~ +[CUB4_S:CUBAN4] +Dann begibst du dich zur Laboranlage der Haitianer und verwendest ihr Lösungsmittel als Sprengstoff. -[RCRRLA2:RCR] -~w~Neuer Rundenrekord: ~1~:0~1~ +[CUB4_T:CUBAN4] +Bumm! Bye bye! -[RCRACEA:RCR] -Thrashin' RC +[CUB4_U:CUBAN4] +Umberto, was ist mit dir? -[RCRACEB:RCR] -Ragin' RC +[CUB4_V:CUBAN4] +Oh, ich halte mich raus und passe mit Paps auf das Café auf. -[RCRACEC:RCR] -Chasin' RC +[CUB4_W:CUBAN4] +Er fühlt sich nicht besonders, weißt du. -[RCLE11:RCR] -Thrashin' RC LEVEL 1 +[CUB4_02:CUBAN4] +~g~Die Bomben werden per Zeitzünder auf 45 sek. gestellt sein. -[RCLE12:RCR] -Thrashin' RC LEVEL 2 +[CUB4_07:CUBAN4] +Zum Lösungsmittel geht's hintenrum, Amigo. -[RCLE13:RCR] -Thrashin' RC LEVEL 3 +[CUB4_08:CUBAN4] +Hola, Amigos. -[RCLE21:RCR] -Ragin' RC LEVEL 1 +[CUB4_09:CUBAN4] +Bueno. Haitian Putas. Muerte. -[RCLE22:RCR] -Ragin' RC LEVEL 2 +[CUB4_10:CUBAN4] +Vamos. -[RCLE23:RCR] -Ragin' RC LEVEL 3 +[CUB4_11:CUBAN4] +Genau, vamos. -[RCLE31:RCR] -Chasin' RC LEVEL 1 +[CUB4_12:CUBAN4] +Hey, wir brauchen ein haitianisches Gang-Auto! -[RCLE32:RCR] -Chasin' RC LEVEL 2 +[CUB4_13:CUBAN4] +Oye, suchen wir unsere Muchachos! -[RCLE33:RCR] -Chasin' RC LEVEL 3 +[CUB4_14:CUBAN4] +Folge meinen Compadres. -[RCRACE2:RCR] -~w~Schlage die anderen RC-Fahrzeuge in einem ~1~-Rundenrennen um die Baustelle! +[CUB4_15:CUBAN4] +Ok, nur immer rein... -[RCRWIN6:RCR] -~w~Fahr noch mal und versuch deine Rundenbestzeit zu verbessern. +[CUB4_16:CUBAN4] +Ich lege die Bombe. Gib mir Deckung. -[RCQUIT:RCR] -~r~Batterien gleich leer? +[CUB4_17:CUBAN4] +RENN! -[RCRFAIL:RCR] -~r~Du hast es nicht geschafft, Erster zu werden! +[CUB4_18:CUBAN4] +Mann, das ist ein schönes Viertel hier... -[RCRLAP1:RCR] -~c~1. ~w~RUNDE +[CUB4_19:CUBAN4] +Das ist doch eine Müllhalde, Mann. -[RCRLAP2:RCR] -~c~2. ~w~RUNDE +[CUB4_20:CUBAN4] +Ich kannte mal eine schöne Frau, die hat hier gewohnt. -[RCRLAP3:RCR] -~c~3. ~w~RUNDE +[CUB4_21:CUBAN4] +Die machen gute Pizza hier. -[RCRLAP4:RCR] -~c~4. ~w~RUNDE +[CUB4_22:CUBAN4] +Hey, Mann! Du fãhrst wie ein Verrückter! -[RCRWIN:RCR] -~w~Gratulation. Du hast mit einer Rundenbestzeit von ~1~:~1~ GEWONNEN! $500 Bonus! +[CUB4_23:CUBAN4] +Hast du dich verfahren, Mann? -[RCRWINB:RCR] -~w~Gratulation. Du hast mit einer Rundenbestzeit von ~1~:0~1~ GEWONNEN! $500 Bonus! +[CUB4_24:CUBAN4] +Du hast Pepe vergessen, hole ihn. -{=================================== MISSION TABLE TOUR ===================================} +[CUB4_03:CUBAN4] +~g~Bleib im Wagen, bis er sicher auf dem Gelãnde geparkt ist. -[TOUR_H1:TOUR] -~w~Foto-Tipps: Stell dich ~h~vor~w~ den Touristen, ~h~nicht zu weit weg.~w~ Achte darauf, dass sowohl der ~h~Tourist als auch die Hintergrundszenerie~w~ im Bild ist. +[CUB4_26:CUBAN4] +~g~Nimm dir Pepe, fahr Richtung Norden nach Little Haiti und klaue einen Voodoo. -[TOUR_I2:TOUR] -~w~Für besonders hochwertige Fotos erhältst du eine Bonuszahlung! +[CUB4_27:CUBAN4] +~g~Triff dich mit Rico und den anderen Kubanern. -[TOUR_S0:TOUR] -~w~Du hast noch ~h~~1~~w~ Bilder übrig. +[CUB4_28:CUBAN4] +~g~Triff dich mit den anderen Kubanern bei der haitianischen Drogenfabrik. -[TOUR_S1:TOUR] -~w~Du hast nur noch 1 Bild übrig. Sorg dafür, dass es ein gutes wird! +[CUB4_29:CUBAN4] +~g~Gehe in jede der Markierungen, um an dieser Stelle eine Bombe zu legen. -[TOUR_S2:TOUR] -~w~Verschwende deinen Film nicht! Du hast noch ~h~~1~~w~ Bilder übrig. +[CUB4_30:CUBAN4] +~g~Wenn alle drei Bomben gelegt sind, entferne dich von der Fabrik bevor sie hochgeht. -[TOUR_S4:TOUR] -~w~Du musst den ~b~Touristen~w~ richtig im Bild haben! Du hast noch ~h~~1~~w~ Bilder übrig. +[CUB4_31:CUBAN4] +~g~Mach, dass du von der Fabrik wegkommst!! -[TOUR_F1:TOUR] -~r~Der Tourist ist tot! +[CUB4_32:CUBAN4] +~g~Park den Wagen an der im Radar markierten Stelle und steig aus. -[TOUR_F2:TOUR] -~r~Du hast den Touristen verloren! +[CUB4_06:CUBAN4] +~r~Du bist nicht weit genug von der Basis weggekommen, wir mussten die Detonation abbrechen! -[TOUR_F3:TOUR] -~r~Du hast kein Foto von dem Touristen gemacht! +{=================================== MISSION TABLE FINALE ===================================} -[TOUR_F4:TOUR] -~r~Die Zeit ist um! +[FIN1_01:FINALE] +Was ist los? -[TOUR_F5:TOUR] -~r~Touristen-Mission abgebrochen. +[FIN1_02:FINALE] +Tommy! Ah, gut, gut. Hör zu. Hör zu... -[TOUR_F6:TOUR] -~r~Der Dieb ist mit der Kamera des Touristen entkommen! +[FIN1_03:FINALE] +Ich mag Fische. Ich liebe Fische. -[TOUR_O1:TOUR] -~w~Bring den Touristen zu der ~y~Sehenswürdigkeit. +[FIN1_04:FINALE] +Ich liebe sie als Haustiere oder auch lecker zubereitet. -[TOUR_O2:TOUR] -~w~Lass den ~b~Touristen~w~ nicht zurück! +[FIN1_05:FINALE] +Aber ich liebe sie nicht so sehr, dass ich als Fischfutter im Hafen enden will. -[TOUR_O3:TOUR] -~w~Begleite den ~b~Touristen~w~ zu Fuß zu der Foto-Location. +[FIN1_06:FINALE] +Und jetzt kommen auf einmal deine italienischen Brüder an und wollen mir Zementschuhe verpassen. Und ich... -[TOUR_O4:TOUR] -~w~Mach das Foto mit der Kamera des ~b~Touristen. +[FIN1_07:FINALE] +Halt den Mund, Ken. Setz dich. -[TOUR_O5:TOUR] -~w~Bring den Touristen jetzt zum ~y~Flughafen. +[FIN1_08:FINALE] +Lance, was lãuft hier, verdammt? -[TOUR_O6:TOUR] -~w~Schnell! Die Zeit wird knapp! +[FIN1_09:FINALE] +Deine Freunde aus dem Norden, Tommy. Die sind nicht sehr froh, dass du ihren Mann erledigt hast. -[TOUR_O7:TOUR] -~w~Nimm den ~b~Touristen~w~ mit. +[FIN1_10:FINALE] +Sie kommen heute, um nach dem Rechten zu sehen. -[TOUR_O8:TOUR] -~w~Nimm den nächsten ~b~Touristen~w~ mit, ehe die Zeit um ist. +[FIN1_11:FINALE] +Sie haben lãnger gebraucht, als ich dachte... -[TOUR_O9:TOUR] -~w~Du solltest wirklich den ~b~Touristen~w~ begleiten! Du verschwendest Zeit. +[FIN1_12:FINALE] +Jungs, wir müssen denen ein für alle Mal klar machen, dass das mein Laden ist. MEINER! -[TOUR_OA:TOUR] -~w~Der ~b~Tourist~w~ wartet darauf, dass du ein Foto machst. Beeil dich, die Zeit wird knapp! +[FIN1_13:FINALE] +Ken, hol die erste Ladung von dem Falschgeld und pack 20 Mios in Aktenkoffer. -[TOUR_W1:TOUR] -~w~Lohn: ~h~$~1~~w~ Sorry, kein Bonus dieses Mal. +[FIN1_14:FINALE] +Lance, du trommelst die anderen Jungs zusammen... -[TOUR_W2:TOUR] -~w~Lohn: ~h~$~1~~w~ plus ~h~$~1~~w~ Bonus für ein gutes Foto! +[FIN2_01:FINALE] +Tommy! -[TOUR_W3:TOUR] -~w~Lohn: ~h~$~1~~w~ plus ~h~$~1~~w~ Bonus für ein großartiges Foto! +[FIN2_02:FINALE] +Was ist? Keine Umarmung für deinen alten Freund? -[TOUR_W4:TOUR] -~w~Lohn: ~h~$~1~~w~ plus ~h~$~1~~w~ Bonus für ein exzellentes Foto! +[FIN2_03:FINALE] +Ich war 15 Jahre weg vom Fenster, -[TOUR_W5:TOUR] -~w~Prima! Alle 'Erst knipsen, dann starten'-Missionen abgeschlossen. Du erhältst $~1~ Vollständigkeits-Bonus! +[FIN2_04:FINALE] +bin nicht mehr auf dem Laufenden, was Manieren angeht. -[TOURDAM:TOUR] -~w~SEHENSWÜRDIGKEIT ~1~: ~w~Bring diesen Touristen zum Cochrane Dam und mach ein Foto zum Beweis, dass er dort war! +[FIN2_05:FINALE] +Immer Wut im Bauch, hã, Tommy? -[TOURBRI:TOUR] -~w~SEHENSWÜRDIGKEIT ~1~: ~w~Diese Dame möchte die Callahan Bridge von der Portland-Seite aus sehen. +[FIN2_06:FINALE] +Ich sag's ja, dein Temperament wird dir nochmal schlecht bekommen. -[TOURDRK:TOUR] -~w~SEHENSWÜRDIGKEIT ~1~: ~w~Fotografiere diesen Filmfan vor dem Haus des Schauspielers Black Lightman, in Cedar Grove, Shoreside Vale. +[FIN2_07:FINALE] +In den Koffern sind 20 Millionen... -[TOURSTA:TOUR] -~w~SEHENSWÜRDIGKEIT ~1~: ~w~Fotografiere diesen Sportfan vor dem Liberty Memorial Coliseum in Staunton. +[FIN2_08:FINALE] +Wie viele waren es denn? Zehn? Nein, elf Mãnner. -[TOURCHU:TOUR] -~w~SEHENSWÜRDIGKEIT ~1~: ~w~Geleite dieses Schäfchen zur historischen Liberty Cathedral in Staunton. +[FIN2_09:FINALE] +So kommt man zu dem Spitznamen 'Harwood-Butcher'! Hehehe! -[TOURBCH:TOUR] -~w~SEHENSWÜRDIGKEIT ~1~: ~w~Zeige diesem Touristen den herrlichen Anblick von Portland Rocks Leuchtturm von Portland Beach aus. +[FIN2_10:FINALE] +Ich sollte EINEN Mann für dich erledigen! Die wussten, dass ich komme, Sonny... -[TOURCHI:TOUR] -~w~SEHENSWÜRDIGKEIT ~1~: ~w~Die orientalische Atmosphäre des Chinatown Plaza in Portland ist das exotische Traumziel dieses Touristen. +[FIN2_11:FINALE] +Wie redest du denn mit mir? -[TOURSHO:TOUR] -~w~SEHENSWÜRDIGKEIT ~1~: ~w~Die Freundinnen dieser Touristin sollen glauben, dass sie in der exklusiven Staunton Shopping Mall shoppen war. Mach dort ein Foto von ihr. +[FIN2_12:FINALE] +Wie kommst du darauf, mich für diesen unglücklichen Zufall verantwortlich zu machen? -[TOURCAS:TOUR] -~w~SEHENSWÜRDIGKEIT ~1~: ~w~Hier ist ein Spieler, der vor dem weltberühmten Casino in Staunton fotografiert werden möchte. +[FIN2_13:FINALE] +Nimm einfach das Geld... -[TOURMUS:TOUR] -~w~SEHENSWÜRDIGKEIT ~1~: ~w~Diese Gelehrte möchte ein Foto, das die beeindruckenden Dimensionen des Museums in Staunton zeigt. +[FIN2_14:FINALE] +Holt das Geld! -[TOURHAL:TOUR] -~w~SEHENSWÜRDIGKEIT ~1~: ~w~Dieser Tourist möchte, bevor er abreist, noch einmal das Rathaus in Staunton sehen. +[FIN2_15:FINALE] +Weißt du, Tommy, ich hab für dich getan, was nur ging. Himmel und Hölle in Bewegung gesetzt. -[TOURRED:TOUR] -~w~SEHENSWÜRDIGKEIT ~1~: ~w~Seine Kumpel meinen, er traut sich nicht in einen Strip Club in Portlands Rotlichtviertel. Beweise das Gegenteil! +[FIN2_16:FINALE] +Ich war dein Freund. Ich dachte, du nimmst Vernunft an. Kapierst, was gut fürs Geschãft ist. -[TOURMU0:TOUR] -~w~Der ~r~Dieb~w~ hat die Kamera des Touristen geklaut! Beschaff sie wieder! +[FIN2_17:FINALE] +Ich hab dir vertraut, Tommy, und du hast mich enttãuscht. -[TOURMU1:TOUR] -~w~Ein Gauner weniger, der die Straßen unsicher macht! Nimm die ~g~Kamera. +[FIN2_18:FINALE] +Aber wenigstens einer in deiner mickrigen Organisation weiß, wie man Geschãfte macht. -[TOUR00:TOUR] -~w~Bring den Touristen zum ~y~Cochrane Dam~w~ in Shoreside Vale. +[FIN2_19:FINALE] +Stimmt's, Lance? -[TOUR01:TOUR] -~w~Bring den Touristen zum ~y~Liberty Memorial Coliseum~w~ in Staunton. +[FIN2_20:FINALE] +Sorry, Tommy. So lãuft's in Vice City. So lãuft das Geschãft. -[TOUR02:TOUR] -~w~Bring den Touristen zum ~y~Chinatown Plaza~w~ in Portland. +[FIN2_21:FINALE] +Du hast uns verraten... -[TOUR03:TOUR] -~w~Bring den Touristen zur ~y~Liberty Cathedral~w~ in Staunton. +[FIN2_22:FINALE] +Nein, ich hab DICH verraten, Tommy, nur DICH. -[TOUR06:TOUR] -~w~Bring den Touristen zum ~y~Strip Club~w~ in Portlands Rotlichtviertel. +[FIN2_23:FINALE] +Die echten Piepen sind oben im Safe. -[TOUR07:TOUR] -~w~Bring den Touristen zum ~y~Liberty City Museum~w~ in Staunton. +[FIN2_24:FINALE] +Tommy, wie hast du dir das denn vorgestellt? -[TOUR08:TOUR] -~w~Bring den Touristen zum ~y~Casino~w~ in Staunton. +[FIN2_25:FINALE] +Dachtest du, ich lass mich mit Blüten abspeisen? -[TOUR10:TOUR] -~w~Bring diesen Touristen zum ~y~Rathaus~w~ in Staunton. +[FIN2_26:FINALE] +Dass ich den Schwanz einziehe und abhaue, um nicht das Gesicht zu verlieren? -[TOUR11:TOUR] -~w~Bring diesen Touristen zum ~y~Portland Beach. +[FIN2_27:FINALE] +Nein. -[TOUR04:TOUR] -~w~Bring den Touristen zur ~y~Callahan Bridge~w~, Portland-Seite. +[FIN2_28:FINALE] +Ich wollte dich nur noch ein bisschen ãrgern, bevor ich dich fertig mache. -[TOUR09:TOUR] -~w~Bring den Touristen zum ~y~Haus des Schauspielers Black Lightman~w~, in Cedar Grove, Shoreside Vale. +[FIN3_01:FINALE] +Tommy? -[TOUR_I1:TOUR] -~w~Zeige Touristen Liberty Citys berühmte Sehenswürdigkeiten. +[FIN3_02:FINALE] +Oh Gott, Tommy! Was ist passiert? -[TOUR_IA:TOUR] -~w~Mach dort Andenkenfotos von ihnen. +[FIN3_03:FINALE] +Wonach sieht's denn aus? -[TOUR_IB:TOUR] -~w~Dann bring sie rechtzeitig für ihren Rückflug zum Flughafen. +[FIN3_04:FINALE] +Sieht aus, als wãr dein Anzug ruiniert! -[TOURMEM:TOUR] -~w~SEHENSWÜRDIGKEIT ~1~: ~w~Dieser Veteran will seiner gefallenen Kameraden beim Denkmal im Belleville Park, Staunton gedenken. +[FIN3_05:FINALE] +Und das war ein wunderbarer Anzug! Tommy, Herrgott, was ist passiert? -[TOUR05:TOUR] -~w~Bring den Touristen zum ~y~Liberty City War Memorial~w~ im Belleville Park, Staunton. +[FIN3_06:FINALE] +Kleine Meinungsverschiedenheit mit einem Geschãftsfreund. Wie das so ist. + +[FIN3_07:FINALE] +Wenn ich eine Meinungsverschiedenheit mit einem Geschãftsfreund habe, schick ich ihm einen bösen Brief. + +[FIN3_08:FINALE] +Oder ich pinkle ihm in den Briefkasten, aber ich fang nicht den 3. Weltkrieg an. + +[FIN3_09:FINALE] +Vielleicht solltest du mal zu meinem Therapeuten gehen... + +[FIN3_10:FINALE] +Dieser Dreckskerl von Lance... + +[FIN3_11:FINALE] +Tommy, ich konnte den Kerl ja nie leiden. + +[FIN3_12:FINALE] +Er ist neurotisch, unsicher, selbstsüchtig - Er ist ein Arschloch! + +[FIN3_13:FINALE] +Gut, dass du ihn fertig gemacht hast! + +[FIN3_14:FINALE] +Ich glaub auch nicht, dass wir nochmal Ãrger mit denen aus dem Norden kriegen... + +[FIN3_15:FINALE] +Die aus dem Norden gibt's nãmlich nicht mehr. + +[FIN3_16:FINALE] +Gibt nur noch die im Süden. + +[FIN3_17:FINALE] +Moment, verstehe ich dich richtig, Tommy, Heißt das...? + +[FIN3_18:FINALE] +Na, was meinst du, was das heißt? + +[FIN3_19:FINALE] +Dass wir jetzt die Herren im Haus sind... ich meine, dass DU der Herr im Haus bist. Oh, Tommy... + +[FIN3_20:FINALE] +Weißt du, Ken, das könnte der Beginn einer wunderbaren Geschãftsbeziehung sein... + +[FIN3_21:FINALE] +Schließlich bist du ein hinterlistiger, mieser kleiner Dieb... + +[FIN3_22:FINALE] +und ich bin ein verurteilter Psychopath und Dealer. + +[FIN3_23:FINALE] +Ich weiß. Ist das nicht wunderbar? + +[FIN_B1:FINALE] +~g~Erledige den Verrãter ~y~Vance~g~. + +[FIN_B2:FINALE] +~g~Erledige ~p~Sonny~g~, um die Sache ein für alle Mal zuende zu bringen. + +[FIN_B3:FINALE] +~g~Die Mafia will dein Geld stehlen. Verteidige den Safe. + +[FIN_B4:FINALE] +~g~Du hãltst nicht mehr lange durch. Hol dir unten ein wenig ~w~Energie~g~. + +[FIN_B5:FINALE] +~g~Die Mafia stiehlt dein Geld. Verteidige den ~c~Safe. + +[FIN_B7:FINALE] +~r~Die Mafia hat dein gesamtes Geld gestohlen. + +[DEFSAFE:FINALE] +~g~Geh zurück zum Safe und verteidige ihn. + +{=================================== MISSION TABLE FIRETRK ===================================} + +[F_PASS1:FIRETRK] +Feuer gelöscht! + +[F_FAIL2:FIRETRK] +~r~Du kommst zu spãt! + +[F_CANC:FIRETRK] +~r~Feuerwehr-Mission abgebrochen! + +[F_EXTIN:FIRETRK] +FEUER: + +[F_START:FIRETRK] +~g~Brennendes Fahrzeug in der Gegend von ~a~ gemeldet. Lösche den Brand. + +[SIREN_1:FIRETRK] +Um die Sirenen dieses Fahrzeugs einzuschalten, drücke die ~h~~k~~VEHICLE_HORN~~w~. + +[SIREN_2:FIRETRK] +Um die Sirenen dieses Fahrzeugs einzuschalten, drücke die ~h~~k~~VEHICLE_HORN~~w~. + +[FIREPRO:FIRETRK] +Feuerwehr-Mission Level 12 abgeschlossen: Du bist jetzt absolut feuerfest!! + +[F_FAIL1:FIRETRK] +Feuerwehr-Mission beendet. + +[F_STAR1:FIRETRK] +~g~Brennende Fahrzeuge in der Gegend von ~a~ gemeldet. Lösche den Brand. + +[SPRAY_4:FIRETRK] { reVC update } +Benutze die ~h~~k~~VEHICLE_FIREWEAPON~~w~-Taste, um die Wasserkanone abzufeuern und den ~h~~k~~VEHICLE_TURRETLEFT~~w~ und ~h~~k~~VEHICLE_TURRETRIGHT~~w~, um mit der Wasserkanone zu zielen. + +[SPRAY_1:FIRETRK] { reVC update } +Benutze die ~h~~k~~VEHICLE_FIREWEAPON~~w~-Taste, um die Wasserkanone abzufeuern und den ~h~~k~~VEHICLE_TURRETLEFT~~w~ und ~h~~k~~VEHICLE_TURRETRIGHT~~w~, um mit der Wasserkanone zu zielen. + +{=================================== MISSION TABLE GENERA1 ===================================} + +[GEN1_I:GENERA1] +Für diesen kleinen Gefallen werde ich Sie belohnen. Danach suchen wir Ihr Geld gemeinsam. + +[GEN1_A:GENERA1] +Mr. Vercetti! + +[GEN1_B:GENERA1] +Colonel. + +[GEN1_D:GENERA1] +Nein danke. + +[GEN1_E:GENERA1] +Es ist mir peinlich, aber es scheint, unser Problem ist zum Teil auf das lose Mundwerk einer mir vertrauten Person zurückzuführen. + +[GEN1_F:GENERA1] +Seit Jahren schleppe ich Gonzalez mit, aber nun erreicht seine Unfãhigkeit einen neuen Höhepunkt. + +[GEN1_G:GENERA1] +Es ist nur gerecht, wenn Sie Gonzalez erledigen. + +[GEN1_H:GENERA1] +War er es? Mir geht es in erster Linie um das Geld. + +[GEN1_J:GENERA1] +Er ist in seinem Penthouse, vermutlich halb betrunken. Nehmen Sie das hier. + +[GEN1_06:GENERA1] +Er hat eine Kettensãge!! + +[GEN1_07:GENERA1] +Bleib mir vom Leib, du elender Mistkerl! + +[GEN1_08:GENERA1] +Gütiger Himmel, mein Leben ist ruiniert, und mein Aussehen dazu! + +[GEN1_10:GENERA1] +Ich werd dir dein Mundwerk stopfen! + +[GEN1_11:GENERA1] +Bleib stehen, du Fettsack! + +[GEN1_12:GENERA1] +Bleib stehen, und es geht ganz schnell! + +[GEN1_13:GENERA1] +Hör auf zu jammern, das interessiert keinen, Fettsack! + +[GEN1_C:GENERA1] +Danke für Ihr Kommen. Setzen Sie sich. Hummer? + +[GEN1_04:GENERA1] +~g~Benutze den Eingang, um Zugang zu Gonzalez' Dachwohnung zu erhalten. + +[GEN1_05:GENERA1] +~g~Erledige Gonzalez! + +[GEN1_09:GENERA1] +Ich zahle dir das Doppelte, Tommy, das DOPPELTE! + +[GEN1_17:GENERA1] +~g~Gonzalez versucht zu fliehen! Folge ihm durch die Türen und erledige ihn. + +[GEN1_18:GENERA1] +~r~Gonzalez hat das Polizeirevier sicher erreicht! + +[GEN1_19:GENERA1] +~g~Die Polizei von Vice City ist hinter dir her! + +[GEN1_20:GENERA1] +~g~Steig in ein Fahrzeug. + +[GEN1_21:GENERA1] +~g~Begib dich zur~h~ Pay 'N' Spray-Lackiererei~g~ in~h~ Vice Point~g~. + +[GEN1_22:GENERA1] +~g~Bring dein Fahrzeug in die Lackiererei, um deinen ~h~Fahndungslevel~g~ loszuwerden und das Fahrzeug zu ~h~reparieren ~g~und ~h~umzuspritzen~g~. Kosten - ~h~$100~g~. Diesmal gratis. + +[GEN1_01:GENERA1] +Um im Laufen eine Nahkampfattacke vorzubereiten, die~o~ |-Taste~w~ gedrückt halten. + +[GEN1_02:GENERA1] +Um im Laufen eine Nahkampfattacke vorzubereiten, die~x~ /-Taste~w~ gedrückt halten. + +[GEN1_03:GENERA1] +Um im Laufen eine Nahkampfattacke vorzubereiten, die~h~ R1-Taste~w~ gedrückt halten. + +[GEN1_14:GENERA1] +Lass die~h~ ~k~~PED_FIREWEAPON~~w~ los, um die Attacke auszuführen. + +[GEN1_15:GENERA1] +Lasse die~h~ ~k~~PED_FIREWEAPON~~w~ los, um die Attacke auszuführen. + +[GEN1_16:GENERA1] +Lasse die~h~ ~k~~PED_FIREWEAPON~~w~ los, um die Attacke auszuführen. + +[GEN1_23:GENERA1] +~g~Geh durch die Türen zurück ins Erdgeschoss. + +{=================================== MISSION TABLE GENERA2 ===================================} + +[COL2_A:GENERA2] +Tommy! Setzen Sie sich zu mir. + +[COL2_B:GENERA2] +Sieht das nicht köstlich aus? Tapirschnauze? + +[COL2_C:GENERA2] +Ãh... Nein. Nein, danke. + +[COL2_D:GENERA2] +Tommy, Sie sind wie eine Pampas-Brise, die mich vom Gestank der Korruption befreit hat. + +[COL2_E:GENERA2] +Natürlich muss ich so tun, als trauere ich um ihn und muss wie immer meine Arbeit machen. + +[COL2_F:GENERA2] +Das bringt mich meinem Geld nicht nãher... + +[COL2_G:GENERA2] +Tommy, mein Freund, Sie sind hier nicht in Liberty. Hier regeln wir Dinge anders. + +[COL2_H:GENERA2] +Ich werde weiter nachforschen, zunãchst hãtte ich aber ein lukratives Geschãft abzuschließen. + +[COL2_I:GENERA2] +Freunden tu ich gern einen Gefallen, Cortez... + +[COL2_J:GENERA2] +Sie sind ein guter Freund, Tommy. Ich wusste, ich kann auf Sie zãhlen. + +[COL2_K:GENERA2] +Sie müssen sich mit einem Kurier treffen, der wertvolle 'Technologie' für mich beschafft hat. + +[COL2_1:GENERA2] +Die Regen ist sich sehr nass um diese Jahreszeit... + +[COL2_2:GENERA2] +Was? + +[COL2_3:GENERA2] +Ãh, comment? + +[COL2_4:GENERA2] +Hören Sie, Cortez schickt mich. Geben Sie mir die verdammten Mikrochips. + +[COL2_5:GENERA2] +Oh... ok. + +[COL2_B1:GENERA2] +~g~Triff dich mit dem Kurier im Einkaufszentrum. + +[COL2_B2:GENERA2] +~g~Der Kurier flieht mit den Lenkwaffen-Chips. Lass ihn nicht entkommen! + +[COL2_B3:GENERA2] +~g~Bring die Lenkwaffen-Chips zum Colonel. + +[COL2_F1:GENERA2] +~r~Du hast die Kontaktperson erledigt! + +[COL2_F2:GENERA2] +~r~Der Kurier ist hinüber. Schnapp dir die Lenkwaffen-Chips. + +[COL2_6A:GENERA2] +Keine Bewegung, amerikanisches Imperialistenschwein! Das ist Eigentum des französischen Staates. Her damit! + +[BLIPHLP:GENERA2] +Das Radar zeigt ein nach oben zeigendes Dreieck, das bedeutet, dass das Ziel sich in größerer Höhe befindet als der Spieler. + +[COL2_F3:GENERA2] +~r~Die Lenkwaffen-Chips liegen auf dem Meeresgrund. + +[COL2_F4:GENERA2] +~r~Der Kurier ist entkommen! Du hast dir die Chips durch die Lappen gehen lassen. + +{=================================== MISSION TABLE GENERA3 ===================================} + +[GEN3_49:GENERA3] +Lance' Gesundheitszustand: + +[GEN3_A:GENERA3] +Thomas, danke, dass Sie kommen. + +[GEN3_B:GENERA3] +Verzeihen Sie, wenn ich gleich zur Sache komme. + +[GEN3_C:GENERA3] +Diaz bat mich, eine kleinere geschãftliche Transaktion zu überwachen. + +[GEN3_D:GENERA3] +Wird hoffentlich besser laufen als die letzte, hah? + +[GEN3_E:GENERA3] +Darum habe ich an Sie gedacht, mein Freund. + +[GEN3_F:GENERA3] +Ich habe etwas zu Ihrem Schutz beim Parkhaus deponiert. + +[GEN3_G:GENERA3] +Holen Sie es ab. Und dann bewachen Sie Diaz' Mãnner bei dem Deal. + +[GEN3_H:GENERA3] +Danke, Amigo. + +[GEN3_1:GENERA3] +Reißt sich alles selbst unter den Nagel, wie ich sehe. + +[GEN3_2:GENERA3] +Sag mal, ist das alles, was du kannst, mir dauernd nachzuschnüffeln? Komm mit und zeig mir, dass du was drauf hast. + +[GEN3_3:GENERA3] +Könnte ich machen. Ich heiße übrigens Lance. + +[GEN3_5:GENERA3] +Du musst Cortez' neuer Mann sein. + +[GEN3_6:GENERA3] +Bis ich was besseres finde... + +[GEN3_7:GENERA3] +Sie müssen bald hier sein. Wir sollten uns gute Beobachtungsposten suchen. + +[GEN3_8:GENERA3] +Ok! Ich nehm den Balkon, du kletterst auf das Dach drüben im Hof. + +[GEN3_9:GENERA3] +Ich lebe! Idioten! Und das nur wegen dir! Wie heißt du? + +[GEN3_10:GENERA3] +Tommy. + +[GEN3_11:GENERA3] +Wir sehen uns bald wieder, glaube ich! + +[GEN3_12:GENERA3] +Wo steckt denn Lance? Shit... + +[GEN3_14:GENERA3] +Tommy! Ich brauch Hilfe! + +[GEN3_15:GENERA3] +Keine Sorge, ich hab alles im Griff! + +[GEN3_16:GENERA3] +Diaz' Mãnner werden umgemãht! + +[GEN3_19:GENERA3] +~g~Haitianer! Sie greifen an! Beschütze Diaz! + +[GEN3_20:GENERA3] +~g~Begib dich zum Parkhaus. Hol dir die Waffe, die der Colonel dort für dich deponiert hat. + +[GEN3_22:GENERA3] +Diaz' Gesundheitszustand: + +[GEN3_23:GENERA3] +~g~Du hast Lance vergessen. Hole ihn! + +[GEN3_25:GENERA3] +~r~Lance hat's erwischt! + +[GEN3_28:GENERA3] +~g~Bring den Aktenkoffer zu Diaz zurück. + +[GEN3_29:GENERA3] +~g~Hol dir den Aktenkoffer und bringe ihn zu Diaz zurück. + +[GEN3_30:GENERA3] +~r~Er ist mit dem Geld entwischt! Dafür macht Diaz dich kalt! + +[GEN3_33:GENERA3] +~r~Du sollst Diaz und seine Mãnner bewachen, nicht beschießen! + +[GEN3_34:GENERA3] +~r~Es gibt keinen Deal, wenn du die Kubaner erledigst! + +[GEN3_35:GENERA3] +~g~Er hat Diaz' Geld gestohlen! + +[GEN3_36:GENERA3] +~g~Schnapp dir das Motorrad, stelle ihn und hol Diaz' Geld zurück! + +[GEN3_37:GENERA3] +~g~. Die Kubaner kommen. Überwache den Deal. Pass auf Diaz und Lance auf. + +[GEN3_38:GENERA3] +~r~Diaz hat's erwischt! Du hast versagt! + +[GEN3_39:GENERA3] +~g~Begib dich zu deinem Beobachtungsposten die Treppe hoch. + +[GEN3_44:GENERA3] +~g~Begib dich mit Lance zum Übergabeort und pass auf Diaz auf. + +[GEN3_45:GENERA3] +Sie müssen bald hier sein. Wir sollten uns gute Beobachtungsposten suchen. + +[GEN3_40:GENERA3] { reVC update } +Um auf einem ~h~Motorrad ~w~sitzend ~h~geradeaus zu feuern~w~, drücke die ~h~~k~~VEHICLE_FIREWEAPON~. + +[GEN3_41:GENERA3] { reVC update } +Um auf einem ~h~Motorrad ~w~sitzend ~h~geradeaus zu feuern~w~, drücke die ~h~~k~~VEHICLE_FIREWEAPON~. + +[GEN3_46:GENERA3] +Scheiße! + +[GEN3_47:GENERA3] +Tommy! + +[GEN3_48:GENERA3] +Verdammt! + +[GEN3_50:GENERA3] +~r~Du hast Diaz' Geld verloren! Versuch das nãchste Mal, das Geld nicht zu vernichten! + +[GEN3_51:GENERA3] +Noch mehr verdammte Haitianer in einem beschissenen Van! + +[GEN3_54:GENERA3] +Steht nicht rum, ihr Idioten! Schnappt euch diesen haitianischen Mistkerl! + +[GEN3_55:GENERA3] +Tommy! Ich bleibe hier und passe auf Diaz auf! + +[GEN3_18:GENERA3] +~g~Die Kubaner kommen. Bleib in Diaz' Nãhe. Überwache den Deal. Pass auf Diaz und Lance auf. + +[GEN3_56:GENERA3] +~r~Diaz ist hinüber, er ist in einen Hinterhalt geraten. Pass das nãchste Mal auf ihn auf! + +[GEN3_57:GENERA3] +Die Kruger ist ein Sturmgewehr, das einem erlaubt, in der subjektiven Kamera-Einstellung manuell zu zielen. + +[GEN3_58:GENERA3] +Halte die~h~ R1~w~-Taste gedrückt, um mit dem Sturmgewehr zu ~h~zielen~w~. + +[GEN3_59:GENERA3] +Halte die~h~ L1~w~-Taste gedrückt, um mit dem Sturmgewehr zu ~h~zielen~w~. + +[GEN3_60:GENERA3] +Drücke die ~h~~k~~PED_FIREWEAPON~~w~-Taste, um das Sturmgewehr ~h~abzufeuern~w~. + +[GEN3_61:GENERA3] +Drücke die ~h~~k~~PED_FIREWEAPON~~w~-Taste, um das Sturmgewehr ~h~abzufeuern~w~. + +[GEN3_62:GENERA3] +Drücke die ~h~~k~~PED_FIREWEAPON~~w~-Taste, um das Sturmgewehr ~h~abzufeuern~w~. + +[GEN3_63:GENERA3] +Auf~h~ Motorrãdern ~w~kann man nicht nur im Vorbeifahren seitlich auf Ziele schießen, man kann auch ~h~geradeaus feuern~w~. + +[GEN3_64:GENERA3] { reVC update } +Um auf einem Motorrad sitzend geradeaus zu feuern, drücke die ~h~~k~~VEHICLE_FIREWEAPON~~w~-Taste. + +[GEN3_65:GENERA3] { reVC update } +Um auf einem Motorrad sitzend geradeaus zu feuern, drücke die ~h~~k~~VEHICLE_FIREWEAPON~~w~-Taste. + +[GEN3_66:GENERA3] { reVC update } +Um auf einem Motorrad sitzend geradeaus zu feuern, drücke die ~h~~k~~VEHICLE_FIREWEAPON~~w~-Taste. + +[GEN3_67:GENERA3] +Du brauchst eine Maschinenpistole, um auf einem Motorrad sitzend geradeaus zu feuern. + +[GEN3_53:GENERA3] +MEIN GELD! + +[GEN3_52:GENERA3] +Diese Haitianer denken sie könnten RICARDO DIAZ stürzen!?! + +{=================================== MISSION TABLE GENERA4 ===================================} + +[DETON:GENERA4] +DETONATION: + +[COL4_3:GENERA4] +KONVOI HALT! + +[COL4_6:GENERA4] +WIR STEHEN UNTER FEINDLICHEM BESCHUSS! + +[COL4_7:GENERA4] +Weg da von dem Panzer, Zivilist! + +[COL4_8:GENERA4] +ICH SAGTE, WEG DA! SOFORT! + +[COL4_9:GENERA4] +AUF GEFECHTSPOSITIONEN! + +[COL4_11:GENERA4] +Schaffen Sie den Zivilisten aus dem Weg, Soldat! - Sir, zu Befehl, Sir! + +[COL4_12:GENERA4] +Zivilist im PANZER! HALTET IHN AUF! + +[COL4_13:GENERA4] +Dies ist ein Militãrkonvoi, machen Sie den Weg frei! + +[COL4_14:GENERA4] +Erledigen sie ihn, Soldat. + +[COL4_15:GENERA4] +Schaffen Sie das Zivilfahrzeug aus dem Weg! -Fahrzeug wird weggeschafft, Sir! + +[COL4_17:GENERA4] +OK, EINHEIT WEITER! + +[COL4_18:GENERA4] +Da ist jemand auf dem Panzer, Sir! + +[COL4_19:GENERA4] +Gehen Sie ein paar Donuts holen, Soldat! - Zu Befehl, Sir! + +[COL4_20:GENERA4] +Ziel erfasst, Sir. + +[COL4_21:GENERA4] +HECKENSCHÜTZE! + +[COL4_22:GENERA4] +Ich seh zu, dass ich hier wegkomme! + +[COL4_23:GENERA4] +Einsatz durchgeführt! Einheit, wegtreten! - Gehen wir ein paar Donuts essen. + +[COL4_24:GENERA4] +Sicherheitsmechanismus Delta India Echo aktiviert. Selbstzerstörung des Fahrzeugs eingeleitet! + +[COL4_26:GENERA4] +Mach dein Testament, dreckiger Kommunist! + +[COL4_B2:GENERA4] +~r~Der Panzer ist wohlbehalten an seinem Ziel angekommen! + +[COL4_B5:GENERA4] +~r~Der Panzer ist zerstört worden! + +[COL4_01:GENERA4] +Diaz war sehr angetan und würde Sie gerne wiedersehen. + +[COL4_02:GENERA4] +Ist das eine gute Nachricht? + +[COL4_03:GENERA4] +Aber sicher! Obwohl mich der Verdacht beschleicht, dass Diaz für unsere Verluste verantwortlich war... + +[COL4_04:GENERA4] +Wie kommen Sie darauf? + +[COL4_05:GENERA4] +Man erhebt keine Anschuldigungen gegen einen Mann wie Diaz. Ich habe nur laut nachgedacht. + +[COL4_06:GENERA4] +Egal. Ich habe einen Vorschlag, der lukrativ für Sie sein könnte... + +[COL4_07:GENERA4] +Ich habe keine Zeit für weitere Auftrãge, Cortez. + +[COL4_08:GENERA4] +Ein Mann mit solch bedrohlichen Schulden sollte doch um jede Verdienstmöglichkeit dankbar sein. Hören Sie mich wenigstens an. + +[COL4_09:GENERA4] +Na gut... + +[COL410:GENERA4] +Ich habe einen Kãufer für ein 'Militãrgerãt', das durch die Stadt transportiert wird. Beschaffen Sie es! + +[COL411:GENERA4] +Wenn Sie es haben, rufen Sie mich unverzüglich an... + +[COL4_B4:GENERA4] +~g~Der Panzer ist abgeschlossen. Lass dir etwas einfallen, um die Besatzung herauszulocken. + +[COL4_1:GENERA4] +Was ist mit dem Kanonier? - Weiß nicht, Sir! + +[COL4_4:GENERA4] +Los, sehen Sie nach, Soldat! - Zu Befehl, Sir! + +[COL4_B1:GENERA4] +~g~Besorge das militãrische Fahrzeug, das durch die Stadt gefahren wird. + +[COL4_B3:GENERA4] +~g~Liefere den Panzer in der Garage des Colonels ab, bevor er sich selbst zerstört. + +[COL4_B6:GENERA4] +~g~Finde einen Weg, den Panzer zu klauen! + +[COL4_B7:GENERA4] +~g~Fahr den Panzer in die Garage. + +[COL4_B8:GENERA4] +~g~Steig aus dem Panzer und verlasse die Garage. + +{=================================== MISSION TABLE GENERA5 ===================================} + +[COL5A_1:GENERA5] +Die Lage erfordert ein eiliges Verschwinden, Amigo. + +[COL5A_2:GENERA5] +Was gibt's für ein Problem? + +[COL5A_3:GENERA5] +Die Franzosen wollen ihre Lenkwaffen-Chips wieder und nach dem letzten Zwischenfall + +[COL5A_4:GENERA5] +zieht es mich in sicherere Gefilde. + +[COL5A_5:GENERA5] +Wãre es nicht sicherer zu fliegen? + +[COL5A_6:GENERA5] +Ich wãre erledigt, bevor ich eingecheckt hãtte. Außerdem muss ich Ware außer Landes schaffen. + +[COL5A_7:GENERA5] +Brauchen Sie noch einen Bodyguard? + +[COL5A_8:GENERA5] +Sie, mein Freund, sind zehn Bodyguards wert. Hahaha. + +[COL5B_1:GENERA5] +Thomas, Sie haben mich beschützt und mir treu gedient. + +[COL5B_2:GENERA5] +Aber jetzt müssen Sie uns verlassen, ehe wir das offene Meer erreichen. + +[COL5B_4:GENERA5] +Danke, Colonel. + +[COL5B_5:GENERA5] +Eine Bitte noch. Könnten Sie ein Auge auf Mercedes haben, solange ich weg bin? + +[COL5B_6:GENERA5] +Ich glaub zwar, sie kann auf sich selbst aufpassen, aber klar. + +[COL5B_7:GENERA5] +Danke, mein Freund. Bis zu meiner Rückkehr. + +[COL5B_8:GENERA5] +Adios, Amigo. + +[COL5_7:GENERA5] +Hören Sie auf, auf mich zu schießen! + +[COL5_9:GENERA5] +Tommy, die sollen aufhören, auf mich zu schießen! + +[COL5_10:GENERA5] +Ich genieße diplomatische Immunitãt. + +[COL5_11:GENERA5] +Nicht schießen, ich bin ein Colonel! + +[COL5_12:GENERA5] +Thomas, machen Sie sie fertig. Mein Land wird es Ihnen danken. + +[COL5_13:GENERA5] +Tommy, wir werden von den Franzosen überrannt! + +[COL5_14:GENERA5] +Tommy, wo ich hinsehe, überall Franzosen! Wie ich es hasse! + +[COL5_15:GENERA5] +Tommy, alles in Ordnung? + +[COL5_16:GENERA5] +Das ist für Piaf und Gainesbourg und für euer dãmliches französisches Weißbrot! + +[COL5_1:GENERA5] +Backbord! Backbord! + +[COL5_2:GENERA5] +Sie greifen von Steuerbord an! + +[COL5_3:GENERA5] +Die Brücke da vorn! + +[COL5_4:GENERA5] +Sie haben einen Helikopter! + +[COL5_B1:GENERA5] +~g~Beschütze den Colonel und seine Jacht um jeden Preis. + +[COL5_B2:GENERA5] +~g~Geh nach vorn und rãume der Jacht des Colonels den Weg frei. + +[COL5_B3:GENERA5] +~r~Der Colonel ist hinüber! + +[COL5_B4:GENERA5] +~g~Schieße den angreifenden Helikopter vom Himmel. + +[COL5B_3:GENERA5] +Ich werde meine Privatbarkasse zu Wasser lassen. Sie gehört Ihnen, als Ausdruck meiner Dankbarkeit. + +[COL5_B5:GENERA5] +~g~Schieß die Helikopter ab, gefãhrde nicht die Jacht. + +[COL5_B6:GENERA5] +~g~Du hast keine Munition mehr. Hol dir an der Treppe des Oberdecks Nachschub. + +[COL5_B7:GENERA5] +~g~Du hast nur noch wenig Energie. Hol dir an der Treppe des Oberdecks Nachschub. + +{=================================== MISSION TABLE HAIT1 ===================================} + +[HAM1_A:HAIT1] +Hallo? Hallo? + +[HAM1_B:HAIT1] +Komm rein, mein Lieber, und ruh dich aus. + +[HAM1_C:HAIT1] +Du musst der große böse Mann sein, von dem mein Großvater erzãhlt hat. + +[HAM1_D:HAIT1] +Er erzãhlte immer von dir, wenn er zu Besuch kam, + +[HAM1_E:HAIT1] +und von den anderen, die auf dich warten. + +[HAM1_F:HAIT1] +Tja, wir müssen alle mal sterben, aber du... + +[HAM1_G:HAIT1] +....in deiner Haut möchte ich dann nicht stecken. Hehehe! + +[HAM1_H:HAIT1] +Es hieß, ich soll hierher kommen. + +[HAM1_I:HAIT1] +Kannst du sie hören? + +[HAM1_J:HAIT1] +Sie rufen deinen Namen, Junge. Die müssen ziemlich scharf auf dich sein, was? + +[HAM1_K:HAIT1] +Aber wenn du der alten Tante Poulet hilfst, hilft sie dir vielleicht auch. + +[HAM1_L:HAIT1] +Vielleicht kann sie dir danach einen kleinen Talisman schenken. + +[HAM1_M:HAIT1] +Ein bisschen Magie, die den Mãnnern des Gesetzes schlechte Augen macht, hmm? + +[HAM1_N:HAIT1] +Hören Sie, das ist alles sehr, ãh... Sie geben mir was? + +[HAM1_O:HAIT1] +Ich...ich...ich glaube, ich bin hier falsch. + +[HAM1_P:HAIT1] +Erweise mir ein paar Gefãlligkeiten, Tommy... + +[HAM1_Q:HAIT1] +Die Kubaner, miese, hochnãsige Narren, hmmm, + +[HAM1_R:HAIT1] +haben meine lieben Haiti-Boys sehr geãrgert. + +[HAM1_S:HAIT1] +Jetzt haben sie den Polizisten erzãhlt, wo ich meine Pülverchen versteckt habe. + +[HAM1_T:HAIT1] +Sie denken, das sind Drogen, diese Dummköpfe. + +[HAM1_U:HAIT1] +Sei ein braver Bub, Tommy, und hole Tante Poulet die Pülverchen. + +[HAM1_V:HAIT1] +Ja, ja. Sicher, sicher. + +[HAM1_1:HAIT1] +~g~Die Cops nãhern sich dem Zeug. Hol es, bevor sie dort sind. + +[HAM1_2:HAIT1] +~r~Die Cops waren schneller bei dem Zeug! + +[HAM1_3:HAIT1] +~g~Bring das Zeug zum Unterschlupf! + +[HAM1_4:HAIT1] +~g~Gut. Jetzt das nãchste! + +[HAM1_6:HAIT1] +~r~Das Zeug wurde vernichtet, du Idiot! + +[HAM1_7:HAIT1] +~g~Die Cops haben das Zeug! Hol es dir wieder, bevor sie weg sind! + +[HAM1_8:HAIT1] +~g~Die Cops sind unterwegs, um das Zeug abzuholen. Beeil dich! + +[HAT_1A:HAIT1] +~g~Keine Bewegung, Freundchen! + +{=================================== MISSION TABLE HAIT2 ===================================} + +[HAT2_B1:HAIT2] +~g~Begib dich zu dem Wagen, in dem die fliegenden Bomben sind. + +[HAT2_B2:HAIT2] +Schalte die Kubaner aus... + +[HAT2_B4:HAIT2] +.... und zerstöre ihre Boote! + +[HAT2_B5:HAIT2] +~g~Die Kubaner hauen ab. Lass sie nicht entkommen! + +[HAT2_B6:HAIT2] +~r~Das ferngesteuerte Flugzeug ist außer Reichweite! + +[HAT2_B7:HAIT2] +~g~Einer der Kubaner flieht in einem Auto. Lass ihn nicht entkommen! + +[HAT2_B8:HAIT2] +~r~Du hast keine ferngesteuerten Flugzeuge mehr! + +[HAT2_B9:HAIT2] +Ferngesteuerte Flugzeuge: + +[HAT2_1:HAIT2] +Oh. Entschuldigung, ich muss die falsche Adresse haben... + +[HAT2_2:HAIT2] +Du kannst gern reinkommen und dich bei einer Tasse Tee ausruhen. + +[HAT2_3:HAIT2] +Hast du etwas für mich, Tommy? + +[HAT2_4:HAIT2] +Ja... + +[HAT2_5:HAIT2] +Das kommt mir so bekannt vor hier. Ein Geruch aus meiner Kindheit - das muss ein Déjà-vu sein... + +[HAT2_6:HAIT2] +Tommy, du kannst was für mich tun, ich werd's dir erklãren. Hör gut zu, ja? + +[HAT2_7:HAIT2] +Sie sehen aus wie jemand, den... + +[HAT2_8:HAIT2] +Die Kubaner haben schnelle Boote, mit denen transportieren sie Drogen übers Meer. + +[HAT2_9:HAIT2] +Davon leben sie. + +[HAT2_10:HAIT2] +Mein Neffe hat kleine fliegende Bomben gebaut, um ihnen das Handwerk zu legen. + +[HAT2_11:HAIT2] +Lass ihre Boote in die Luft fliegen. + +[HAT2_12:HAIT2] +Tja, danke für den Tee. + +[HAT2_B3:HAIT2] { reVC update } +Um eine Bombe abzuwerfen, drück die ~h~~k~~VEHICLE_FIREWEAPON~~w~-Taste. ~h~~k~~VEHICLE_ENTER_EXIT~~w~-Taste zum Beenden. + +{=================================== MISSION TABLE HAIT3 ===================================} + +[HAM3_A:HAIT3] +Hallo, hallo, ich, ãh, ich suche hier jemanden... + +[HAM3_B:HAIT3] +Du siehst hungrig aus, Tommy. + +[HAM3_C:HAIT3] +Kenne ich Sie? + +[HAM3_D:HAIT3] +Sei jetzt still. + +[HAM3_E:HAIT3] +Eine Gefãlligkeit noch, dann lasse ich dich gehen, Tommy. + +[HAM3_F:HAIT3] +Meine Jungs haben die Kubaner zum Kampf gefordert. + +[HAM3_G:HAIT3] +Aber ohne Kanonen. + +[HAM3_H:HAIT3] +Hmm, aber die Kubaner werden ihr blaues Wunder erleben. + +[HAM3_I:HAIT3] +Wenn sie in den Straßen kãmpfen, nimmst du dieses Gewehr und rãumst auf. + +[HAM3_J:HAIT3] +Keiner sieht dich, keiner hört dich. + +[HAM3_K:HAIT3] +Wenn du das für mich tust, Tommy, dann kommst frei aus meinen Schürzenbãndern. + +[HAM3_1:HAIT3] +~g~Wir müssen gewinnen. Werden alle Haitianer erledigt, haben wir verloren. + +[HAM3_3:HAIT3] +~g~Vermutlich werden die Kubaner schummeln. Sei auf der Hut! + +[HAM3_4:HAIT3] +~r~Du wurdest entdeckt! Die Mission ist fehlgeschlagen! + +[HAM3_5:HAIT3] +~g~Du musst die Kubaner aus der Distanz erwischen. Man darf dich nicht sehen. + +[HAM3_8:HAIT3] +~g~Es gibt Verluste unter den Haitianern! Du musst besser zielen! + +[HAM3_7:HAIT3] +~g~Vorsicht! Die Kubaner haben Verstãrkung mitgebracht. Schalte sie alle aus!! + +[HAM3_2:HAIT3] +~r~Die Haitianer sind weg vom Fenster! + +[HAM3_L:HAIT3] +Okay, Tantchen... + +{=================================== MISSION TABLE HOTEL ===================================} + +[INTB_A:HOTEL] +Tommy! Tommy, wir haben uns lange nicht gesehen. + +[INTB_B:HOTEL] +Hallo, Sonny. + +[INTB_C:HOTEL] +Ich weiß, ich weiß. Dir kommen vor Rührung die Trãnen. + +[INTB_D:HOTEL] +15 Jahre ist es her - dabei kommt's mir vor, als wãr's gestern gewesen. + +[INTB_E:HOTEL] +DU hast leicht reden. + +[INTB_F:HOTEL] +Hey, für die Familie in den Knast zu gehen, ist kein Zuckerschlecken, + +[INTB_G:HOTEL] +aber die Familie zeigt sich für sowas erkenntlich, ok? + +[INTB_H:HOTEL] +Also, wie ist der Deal gelaufen - hast du Schnee an der Hand? + +[INTB_I:HOTEL] +Sonny, wir sind reingelegt worden. Der Deal war eine Falle. Harry und Lee sind tot. + +[INTB_J:HOTEL] +Das ist nicht dein Ernst, Tommy. Du hast doch hoffentlich noch das Geld. + +[INTB_K:HOTEL] +Nein, Sonny... Ich hab das Geld nicht mehr. + +[INTB_L:HOTEL] +Das war mein Geld, Tommy. MEIN GELD! + +[INTB_M:HOTEL] +Versuch bloß nicht, mich reinzulegen, Tommy. Mich legt man nicht rein, das weißt du! + +[INTB_N:HOTEL] +Warte, Sonny. + +[INTB_O:HOTEL] +Du hast mein Wort darauf, dass ich dir dein Geld wiederbeschaffe. Und die Drogen. + +[INTB_P:HOTEL] +Und ich liefere dir die Kerle, die dahinterstecken. + +[INTB_Q:HOTEL] +Das weiß ich doch. Du bist kein Idiot, Tommy, aber ich warne dich - ich bin auch keiner. + +[INTB_R:HOTEL] +Wenn du's nicht wãrst - ein anderer wãr lãngst fãllig! + +[INTB_S:HOTEL] +Aber uns beide verbindet eine alte Freundschaft. Ich lasse dich das regeln. + +[INTB_T:HOTEL] +Sonny, du hast mein Ehrenwort. + +[INTB_U:HOTEL] +Du hörst von mir. + +{=================================== MISSION TABLE ICECRE1 ===================================} + +[ICC1_1:ICECRE1] +~g~Benutze deinen Eis-Wagen, um in Vice City Drogen zu verkaufen. + +[ICC1_2:ICECRE1] +~g~Parke den Eis-Wagen und drücke ~h~~k~~VEHICLE_HORN~~w~, um den Eiscreme-Jingle abzuspielen, damit deine Kunden wissen, dass du Ware zu verkaufen hast. + +[ICC1_3:ICECRE1] +~g~Für jede Transaktion bekommst du Geld. Aber je mehr Transaktionen du tãtigst, desto stãrker wird die Polizei auf dich aufmerksam. + +[ICC1_4:ICECRE1] +~g~In dieser Gegend sind keine Kunden. Versuche es woanders. + +[ICC1_5:ICECRE1] +Getãtigte Deals: + +[ICC1_6:ICECRE1] +~g~Nimm den Mr. Whopee, um in Vice City Cherry Popper-Produkte zu vertreiben. + +[ICC1_7:ICECRE1] +~g~Für jede Transaktion bekommst du Geld. Aber je mehr Transaktionen du tãtigst, desto stãrker wird die Polizei auf dich aufmerksam. + +[ICC1_8:ICECRE1] +~g~Um eine Transaktion zu tãtigen, ~h~parke deinen Wagen ~g~und drücke die ~h~~k~~VEHICLE_HORN~~g~, um den Eiscreme-Jingle abzuspielen, damit deine Kunden wissen, dass du Ware zu verkaufen hast. + +[ICC1_9:ICECRE1] +~g~Andere Gangs werden es nicht gern sehen, dass du in ihrem Revier Geschãfte machst, du musst also mit Feindseligkeiten rechnen. + +[ICC1_10:ICECRE1] +~g~Du hast ~1~ Deals getãtigt! + +[ICC1_11:ICECRE1] +~g~Du hast ~1~ Deal getãtigt. + +[ICC1_12:ICECRE1] +OBJEKT ERWORBEN! + +[ICC1_13:ICECRE1] +~r~Du hast keine Deals getãtigt! + +[ICC1_14:ICECRE1] +EISCREME-MISSIONEN ERFÜLLT + +[ICC1_15:ICECRE1] +~g~Die Eiscremefabrik generiert nun bis zu $~1~ Einkünfte. Hol dir das Geld regelmãßig ab. + +[ICC1_16:ICECRE1] +~g~Nimm den Mr. Whoopee, um in Vice City Cherry Popper-Produkte zu vertreiben. + +[ICE_AT1:ICECRE1] +EISCREMEFABRIK-MISSIONEN ERFÜLLT + +[ICE_AT2:ICECRE1] +~g~Die Cherry Popper-Fabrik generiert nun bis zu $~1~ Einkünfte. Hol dir das Geld regelmãßig ab. + +[ICC1_17:ICECRE1] +Stoff-Auslieferungs-Mission beendet + +[ICC1_18:ICECRE1] +Eiscremeverkauf insgesamt: $~1~ + +[ICC1_19:ICECRE1] +Insgesamt getãtigte Deals: ~1~ + +{=================================== MISSION TABLE ICECUT ===================================} + +[ICC1_M:ICECUT] +Sie sind schmutzige, verrotzte, verlauste, eklige, sabbernde kleine... + +[ICC1_I:ICECUT] +Ein Baby... ein widerwãrtiges, grãßliches, ekelhaftes kleines Gör! + +[ICC1_J:ICECUT] +Mammi liebt dich nicht. Du kleines Stück Scheiße! + +[ICC1_A:ICECUT] +Wer sind Sie? + +[ICC1_B:ICECUT] +Der neue Inhaber dieses Ladens. + +[ICC1_C:ICECUT] +Sind Sie, oder waren Sie je ein Kind? + +[ICC1_D:ICECUT] +Was soll denn das heißen? + +[ICC1_E:ICECUT] +Waren Sie je ein Kind? + +[ICC1_F:ICECUT] +Ja! Immer mit der Ruhe! Was ist denn mit Ihnen los? + +[ICC1_G:ICECUT] +Ich wusste es. Ein Kind. + +[ICC1_H:ICECUT] +Ein schmutziges, stinkendes, verrotztes, verlaustes, nölendes kleines Baby! + +[ICC1_K:ICECUT] +Au! Beruhigen Sie sich doch! + +[ICC1_L:ICECUT] +Ich HASSE Babies. Und ich hasse Kinder. + +[ICC1_N:ICECUT] +Es reicht jetzt! + +[ICC1_P:ICECUT] +Sie stellen doch Softeis her, oder? Das essen doch nur Kinder. + +[ICC1_Q:ICECUT] +Sind Sie komplett irre? + +[ICC1_R:ICECUT] +Erklãren Sie mir das mal - warum Kinder glücklich machen, wenn Sie sie hassen? + +[ICC1_S:ICECUT] +Oh, du dãmliches, verrotztes, verlaustes- + +[ICC1_T:ICECUT] +Schluss jetzt! + +[ICC1_U:ICECUT] +- Gör! + +[ICC1_V:ICECUT] +Das Eis ist nur Tarnung! + +[ICC1_W:ICECUT] +Wir vertreiben auch andere Waren. Nicht-Milchprodukte. + +[ICC1_X:ICECUT] +Und wenn ich ein Kind sehe, dann weiß ich, was ich mit ihm anfange. + +[ICC1_Y:ICECUT] +Nicht wahr, Kinderchen? Ja, ja. Mammi hat euch gar nicht lieb. + +[ICC1_Z:ICECUT] +Sie HASST euch! + +[ICC1_ZA:ICECUT] +OBJEKT ERWORBEN! + +{=================================== MISSION TABLE INTRO ===================================} + +[INT1_A:INTRO] +Tommy Vercetti...Hah! Shit. + +[INT1_B:INTRO] +Hãtte nicht gedacht, dass der noch mal rauskommt. + +[INT1_C:INTRO] +Er hat den Kopf eingezogen. War fast vergessen. + +[INT1_D:INTRO] +Aber bald wird man sich an ihn erinnern. + +[INT1_E:INTRO] +Wenn man ihn wieder durch ihre Viertel tigern sieht. + +[INT1_F:INTRO] +Wird schlecht fürs Geschãft sein. + +[INT1_G:INTRO] +Tja, was sollen wir machen, Sonny? + +[INT1_H:INTRO] +Wir machen auf alte Kumpels und schicken ihn woanders hin. Ok? + +[INT1_I:INTRO] +Wir wollten doch sowieso nach Süden expandieren, oder? + +[INT1_J:INTRO] +In Vice City liegt zurzeit das Geld auf der Straße. + +[INT1_K:INTRO] +Die Kolumbianer, die Mexikaner, + +[INT1_L:INTRO] +ja, sogar die kubanischen Flüchtlinge machen alle glãnzende Geschãfte. + +[INT1_M:INTRO] +Aber das geht nur mit Drogen, Sonny. + +[INT1_N:INTRO] +Aber keine der Familien rührt dieses Zeug an! + +[INT1_O:INTRO] +Die Zeiten ãndern sich. + +[INT1_P:INTRO] +Die Familien können nicht wegsehen, wãhrend unsere Feinde groß abkassieren. + +[INT1_Q:INTRO] +Also schicken wir jemanden für die Drecksarbeit da runter + +[INT1_R:INTRO] +und schneiden uns 'ne hübsche Scheibe ab. Ok? + +[INT1_S:INTRO] +Wer ist unser Kontaktmann da unten? + +[INT1_T:INTRO] +Ken Rosenberg, ein Idiot von einem Anwalt. + +[INT1_U:INTRO] +Wie soll der Vercetti im Zaum halten? + +[INT1_V:INTRO] +Muss er gar nicht. + +[INT1_W:INTRO] +Wir lassen ihn einfach auf Vice City los. + +[INT1_X:INTRO] +Wir geben ihm ein bisschen Startgeld, ok? + +[INT1_Y:INTRO] +Wir warten ein paar Monate. + +[INT1_Z:INTRO] +Dann fahren wir hin + +[INT1_A1:INTRO] +und schauen mal bei ihm rein, klar? + +[INT1_A2:INTRO] +Mal sehen, wie er sich macht. + +[INT2_A:INTRO] +Hey, hey, Jungs! Ich bin, ãh, Ken Rosenberg. Ha, ha, sehr gut, hey! + +[INT2_B:INTRO] +Tja, ãh, ich soll euch zu dem Trefffen fahren, okay? + +[INT2_C:INTRO] +Ich hab mit den Lieferanten geredet, und die würden, + +[INT2_D:INTRO] +liebend gern mit uns ins Geschãft kommen. Und, ãh, + +[INT2_E:INTRO] +wenn alles gut geht, dann dürfte da + +[INT2_F:INTRO] +ein Haufen Kohle für uns drin sein. Und das ist doch, na ja... + +[INT2_G:INTRO] +gut... + +[INT2_H:INTRO] +Okay. Es sind zwei Brüder, ok? + +[INT2_I:INTRO] +Der eine schmeißt, ãh, den Laden, + +[INT2_J:INTRO] +der andere macht die Flüge. + +[INT2_K:INTRO] +Die arbeiten von Mexiko aus, + +[INT2_M:INTRO] +Sie haben eine Farm in Panama. + +[INT2_N:INTRO] +Okay, passt auf, Jungs, + +[INT2_O:INTRO] +wenn wir dort ankommen, sollte ich im Auto bleiben, + +[INT2_P:INTRO] +oder soll ich mit reinkommen? + +[INT2_Q:INTRO] +Nein. Bleib im Wagen. + +[INT2_R:INTRO] +Wisst ihr was, ich hab's mir überlegt. + +[INT2_S:INTRO] +Ich pass auf den Wagen auf. + +[INT3_A:INTRO] +Ok, das sind sie, da im Helikopter. + +[INT3_B:INTRO] +Ok, das ganze lãuft so ab: + +[INT3_C:INTRO] +Die wollen eine saubere Übergabe auf offenem Gelãnde. + +[INT3_D:INTRO] +Alles klar? Ok, dann wollen wir mal. + +[INT3_E:INTRO] +Ok, ganz ruhig jetzt. + +[INT3_F:INTRO] +Ich bin hier. Der Wagen lãuft, Baby! + +[INT3_G:INTRO] +Hast du's? + +[INT3_H:INTRO] +100% astreines kolumbianisches Koks, mein Freund. + +[INT3_I:INTRO] +Die Kohle? + +[INT3_J:INTRO] +Zehner und Zwanziger. Gebrauchte Scheine. + +[INT3_L:INTRO] +Los, los, weg hier! Fahr los! + +[INT4_A:INTRO] +Gearscht. Wir sind voll gearscht! + +[INT4_B:INTRO] +Das ist wieder typisch. + +[INT4_C:INTRO] +Da passe ich eine einziges Mal nicht auf, + +[INT4_D:INTRO] +und prompt kriege ich eins reingewürgt. + +[INT4_E:INTRO] +Hier! + +[INT4_F:INTRO] +Hör endlich auf zu jammern. Du lebst schließlich noch, oder? + +[INT4_G:INTRO] +Lass mich hier raus. + +[INT4_H:INTRO] +Schaff das Auto weg und leg dich schlafen. + +[INT4_I:INTRO] +Ich komme morgen zu dir ins Büro, dann sehen wir weiter. + +[INT4_J:INTRO] +Ok, gute Idee. Ich leg mich erstmal hin. + +[INT4_K:INTRO] +Was hast du vor? + +[INT4_L:INTRO] +Ich geh zurück in mein Hotel. + +[INT4_M:INTRO] +Ich muss nachdenken, was schiefgelaufen ist. + +[INT4_N:INTRO] +Ok. + +[INTRO1:INTRO] +Da passe ich ein einziges Mal nicht auf, und prompt kriege ich eins reingewürgt. + +[INTRO2:INTRO] +Leg dich schlafen. + +[INTRO3:INTRO] +Was hast du vor? + +[INTRO4:INTRO] +Ich komme morgen zu dir ins Büro, dann sehen wir weiter. + +[INT3_K:INTRO] +Tja, der Deal kann steigen, mein Freund. + +[INT3_M:INTRO] +Zeig her. + +[INT2_L:INTRO] +Nein, nein, nein, wartet... + +{=================================== MISSION TABLE KENT1 ===================================} + +[KPM1_A:KENT1] +Ok, du Knallkopf, ich werde deine Haut retten. + +[KPM1_B:KENT1] +Was sagst du? + +[KPM1_C:KENT1] +Du kennst doch Diaz, den Idioten, den Koks-König? + +[KPM1_D:KENT1] +Er hat deinen Freund Lance. Es heißt, dein Kumpel wollte ihm an den Kragen. + +[KPM1_E:KENT1] +Hat ihn aber fast den eigenen gekostet hat, falls du weißt, was ich meine. + +[KPM1_F:KENT1] +Wo hat er ihn hingebracht? Im Klartext! + +[KPM1_G:KENT1] +Mach dich mal locker! Sie haben ihn beim Schrottplatz erwischt. + +[KPM1_H:KENT1] +Verdammt noch mal. Psycho. + +[KPM1_2:KENT1] +~r~Du solltest Lance lebend da rausholen! + +[KPM1_3:KENT1] +Lance' Gesundheitszustand: + +[RESC_1:KENT1] +Kannst du eine Waffe halten? + +[RESC_2:KENT1] +Klar, glaub schon. Freut mich, dich zu sehen. + +[RESC_3:KENT1] +Los, wir verschwinden von hier. + +[RESC_4:KENT1] +Dank dir ist mein ganzer schöner Plan im Eimer. Das hast du sauber vermasselt, Lance. + +[RESC_5:KENT1] +Er hat meinen Bruder auf dem Gewissen. Soll ich ihm den Rasen mãhen? + +[RESC_6:KENT1] +Wir müssen diesen Diaz erledigen bevor er uns erledigt. + +[RESC_7:KENT1] +Lass dich zusammenflicken, dann treffen wir uns auf der Brücke nach Star Island, ok? + +[RESC_8:KENT1] +Ok, alles klar. + +[KPM1_1:KENT1] +~g~Lance wird auf dem Schrottplatz gefangengehalten. Rette ihn! + +[KPM1_4:KENT1] +~g~Bring Lance ins Krankenhaus! + +[M_PASSN:KENT1] +MISSION ERFÜLLT! + +[KPM1_5:KENT1] +~g~Diaz' Leute sind hinter euch her. Bring Lance ins Krankenhaus. + +{=================================== MISSION TABLE KICKSTT ===================================} + +[KICK1_2:KICKSTT] +~r~Du warst nicht schnell genug bei der Maschine! + +[KICK1_7:KICKSTT] +~r~Du hast die Maschine geschrottet! + +[KICK1_8:KICKSTT] +~g~Setz dich auf das Motorrad! + +[KICK1_T:KICKSTT] +BENÖTIGTE ZEIT: + +[KICKTM:KICKSTT] +~b~ZEIT: ~1~:~1~ + +[KICKTM2:KICKSTT] +~b~ZEIT: ~1~:0~1~ + +[GETBIKE:KICKSTT] +~g~Du hast ~1~ Sekunden, um zu einer Gelãndemaschine zurückzukehren, bevor die Mission endet. + +[KICK1_1:KICKSTT] +~g~Absolviere den Kurs so schnell wie möglich. + +[KICK1_6:KICKSTT] +~g~Gut gemacht! + +[KICK_10:KICKSTT] +~G~Nimm den Sanchez und absolviere den Kurs, indem du alle Checkpoints passierst. + +[KICK_12:KICKSTT] +~r~Du hast es vermasselt! + +[KICK_13:KICKSTT] +~r~Du hast zu lange gebraucht! + +[KICK_11:KICKSTT] +~g~Um die Mission zu beenden, stell dich zu Fuß in die ~q~rosa Markierung~g~. + +{=================================== MISSION TABLE LAWYER1 ===================================} + +[LAW1_A:LAWYER1] +Leg dich schlafen, sagt er - + +[LAW1_B:LAWYER1] +- Ich sitz die ganze Nacht im Dunklen hier rum und trink Kaffee! + +[LAW1_C:LAWYER1] +Das ist eine Katastrophe. Wir sind so gearscht, Mann! + +[LAW1_D:LAWYER1] +Diese Gorillas, die kommen hier runter und reißen mir den Kopf ab. Es ist beinahe zum lachen! + +[LAW1_E:LAWYER1] +Dafür habe ich NICHT Jura studiert. Ok, was sollen wir jetzt machen? + +[LAW1_F:LAWYER1] +Sei still, setz dich hin und bleib ruhig. Ich sag dir, was wir machen. + +[LAW1_G:LAWYER1] +Du findest raus, wer das Koks geklaut hat - und ich nehm ihn mir vor. + +[LAW1_H:LAWYER1] +Gute Idee. SEHR gute Idee. Lass mich nachdenken, lass mich nachdenken. + +[LAW1_I:LAWYER1] +OH! Da gibt es diesen Colonel a.D., Colonel Juan Garcia Cortez. + +[LAW1_J:LAWYER1] +Der half mir, diesen Deal einzufãdeln, + +[LAW1_K:LAWYER1] +und zwar ohne Vice Citys Gangster-Establishment. Ok? + +[LAW1_L:LAWYER1] +Pass auf, der gibt eine Party in der Bucht, auf seiner Luxusjacht + +[LAW1_M:LAWYER1] +da kommt alles, was in Vice City Rang und Namen hat. + +[LAW1_N:LAWYER1] +Ich hab natürlich eine Einladung, versteht sich, + +[LAW1_O:LAWYER1] +aber mich kriegen keine zehn Pferde hier raus. Auf keinen Fall! + +[LAW1_P:LAWYER1] +Halt die Klappe! Ich geh selbst hin... + +[LAW1_Q:LAWYER1] +Moment! Hey, ich steh ja auch auf den 78er Look , aber das wird dort kein nostalgisches Saufgelage. + +[LAW1_R:LAWYER1] +Ich meine, nichts gegen dich, aber mit den Klamotten wirst du dort ziemlich blöd angeschaut. + +[LAW1_S:LAWYER1] +Wieso? Was ist mit meinen Sachen? + +[LAW1_T:LAWYER1] +Pass auf. Fahr zu Rafael. Sag ihm, ich schicke dich, und er soll dich ordentlich einkleiden. + +[LAW1_U:LAWYER1] +Ok, Los jetzt. Mach hinne... + +[LAWP_1:LAWYER1] +Guten Abend. + +[LAWP_2:LAWYER1] +Ich höre, Sie sind anstelle von Mr. Rosenberg hier. + +[LAWP_3:LAWYER1] +Ich hoffe, gewisse Vorfãlle haben seiner Gesundheit nicht geschadet, + +[LAWP_4:LAWYER1] +oder seiner Psyche, Mr...ãh? + +[LAWP_5:LAWYER1] +Vercetti. Er leidet ein wenig an...Platzangst. + +[LAWP_6:LAWYER1] +Ausgezeichnet, ausgezeichnet. Und Sie? + +[LAWP_7:LAWYER1] +Ich will nur meine Ware. + +[LAWP_8:LAWYER1] +Ah. Eine missliche Lage für alle Beteiligten. + +[LAWP_9:LAWYER1] +Natürlich stelle ich selbst Nachforschungen an, aber + +[LAWP_10:LAWYER1] +bei solch heiklen Sachen dauert das ein wenig. + +[LAWP_11:LAWYER1] +Wir sprechen uns vielleicht spãter. Hm? + +[LAWP_12:LAWYER1] +Inzwischen möchte ich Ihnen meine Tochter vorstellen, + +[LAWP_13:LAWYER1] +Mercedes! + +[LAWP_14:LAWYER1] +Könntest du dich um unseren Gast kümmern, wãhrend ich mich um andere Dinge + +[LAWP_15:LAWYER1] +Natürlich, Daddy. + +[LAWP_16:LAWYER1] +Entschuldigen Sie mich, bitte. + +[LAWP_17:LAWYER1] +Mercedes!? + +[LAWP_18:LAWYER1] +Leb du mal mit so 'nem Namen. + +[LAWP_19:LAWYER1] +Na gut, ich zeig dir mal einige unserer bekannteren Gãste... + +[LAWP_20:LAWYER1] +Das ist unser Abgeordneter Alex Shrub mit dem aufgehenden Sternchen Candy Suxx.. + +[LAWP_21:LAWYER1] +Und kennen Sie schon meine reizende Frau Laura? Nein? + +[LAWP_22:LAWYER1] +Nun, leider ist sie in Alabama. Das hier ist Candy. + +[LAWP_23:LAWYER1] +Und hier haben wir den Star-Verteidiger der Vice City Mambas, BJ. + +[LAWP_24:LAWYER1] +Immer charmant. + +[LAWP_25:LAWYER1] +Ich hab ihn voll geblockt. Der sitzt heute im Rollstuhl! + +[LAWP_26:LAWYER1] +Haha, das ist gut! + +[LAWP_27:LAWYER1] +Tja, ich bin an einem super Grundstück dran. + +[LAWP_28:LAWYER1] +Und der Schleimbold dort ist Jezz Torrent, + +[LAWP_29:LAWYER1] +Der Sãnger von 'Love Fist'. + +[LAWP_30:LAWYER1] +Wisst ihr, wie sie in Thailand Pingpong spielen? + +[LAWP_31:LAWYER1] +Ich verrat's euch, + +[LAWP_32:LAWYER1] +man spielt ohne Schlãger, wenn ihr wisst, was ich meine! + +[LAWP_33:LAWYER1] +Impotent. + +[LAWP_34:LAWYER1] +Und das schwatzhafte Trio. + +[LAWP_35:LAWYER1] +Diese schlafende Schweißfabrik ist Papas Obersklave, Gonzalez. + +[LAWP_36:LAWYER1] +und die anderen beiden sind Pastor Richards + +[LAWP_37:LAWYER1] +und der pseudo-intellektuelle Regisseur Steve Scott. + +[LAWP_38:LAWYER1] +....leidenschaftlich mit den nymphomanischen Aliens + +[LAWP_39:LAWYER1] +Da kommt der riesige Hai und + +[LAWP_40:LAWYER1] +beißt ihnen ihr Ding ab! + +[LAWP_41:LAWYER1] +Ha! So was hat doch die Welt noch nicht gesehen, oder? + +[LAWP_42:LAWYER1] +Colonel! + +[LAWP_43:LAWYER1] +Ihre Party ist wie immer fantastisch, hahahaha! + +[LAWP_44:LAWYER1] +Ich entschuldige mich für die Verspãtung. + +[LAWP_45:LAWYER1] +Ah, nicht doch, Amigo. Wie geht es ihnen? + +[LAWP_46:LAWYER1] +Unsere Geschãfte laufen schwierig - die Barbaren stehen vor den Toren. + +[LAWP_47:LAWYER1] +Eine Zeit, Freunde zu belohnen und Feinde auszuschalten, Amigo. + +[LAWP_48:LAWYER1] +Wer ist das Großmaul? + +[LAWP_49:LAWYER1] +Ricardo Diaz. Er ist Mr. Koks. + +[LAWP_50:LAWYER1] +Mercedes! + +[LAWP_51:LAWYER1] +Oh, ich will gerade meinen Freund in die Stadt bringen. + +[LAWP_52:LAWYER1] +Ein andermal, Ricardo! + +[LAWP_53:LAWYER1] +Lass uns verschwinden. + +[LAWP_54:LAWYER1] +Fahr mich zum Pole Position Club. + +[LAW1_2:LAWYER1] +~g~Begib dich zur Jacht des Colonels. + +[LAW1_4:LAWYER1] +~r~Du hast die Tochter des Colonels erledigt! + +[LAW1_5:LAWYER1] +Wirst du für meinen Vater arbeiten? + +[LAW1_6:LAWYER1] +Vielleicht. + +[LAW1_7:LAWYER1] +Darf ich meine Hand in deinen Schoß legen? + +[LAW1_8:LAWYER1] +Vielleicht... + +[LAW1_9:LAWYER1] +Es ist schwer, einen so reichen, mãchtigen Vater zu haben. Los. + +[LAW1_10:LAWYER1] +Wir sehen uns, mein Hübscher! + +[LAW1_11:LAWYER1] +Ganz bestimmt. + +[LAW1_12:LAWYER1] +Hmm, netter Ofen. + +[LAW1_13:LAWYER1] +Nein! Mein Motorrad! + +[LAW1_3:LAWYER1] +~g~Bring die Tochter des Colonels zum Pole Position Club. + +[HELP20:LAWYER1] +Folge dem ~h~T-shirt-Symbol~w~ auf dem Radar, um Rafael's zu finden. + +[LAW1_14:LAWYER1] +Wow, das ist ja wirklich ein tolles Motorrad. + +[LAW1_15:LAWYER1] +Ja, Baby, hab ich mir gerade bei Howlin' Pete's besorgt. + +{=================================== MISSION TABLE LAWYER2 ===================================} + +[LAW2_A:LAWYER2] +Ah! Tja, ich hoffe, du amüsierst dich gut, wãhrend ich hier vor Angst halb umkomme. Was hast du rausgefunden? + +[LAW2_B:LAWYER2] +Dass es in dieser Stadt mehr Gangster gibt als im Knast. Wir brauchen einen Tipp von der Straße... + +[LAW2_C:LAWYER2] +Ok, lass mich nachdenken, lass mich nachdenken - + +[LAW2_D:LAWYER2] +- AH! Ich hab's! + +[LAW2_E:LAWYER2] +Ok, es gibt da so 'n Englãnder, so 'n Idiot aus der Musikbranche. + +[LAW2_F:LAWYER2] +Er nennt sich Kent Paul. + +[LAW2_G:LAWYER2] +Und der ist in all den Kreisen von Vice City richtig dick drin. + +[LAW2_H:LAWYER2] +Wenn einer weiß, wo 20 Kilo Koks abgeblieben sind, + +[LAW2_I:LAWYER2] +dann dieser Typ. Er ist immer im Malibu. + +[LAW2_J:LAWYER2] +Ich seh ihn mir mal an. + +[LAW2B_A:LAWYER2] +Wo kommst du denn her? + +[LAW2B_B:LAWYER2] +Nach einer wie dir suche ich schon seit Ewigkeiten. + +[LAW2B_C:LAWYER2] +Kent Paul. Ja, ich bin hier die Nummer Eins. + +[LAW2B_D:LAWYER2] +Ich suche einen Englãnder... + +[LAW2B_E:LAWYER2] +Ich ziehe hier die Strippen, verstehst du? + +[LAW2B_F:LAWYER2] +Ich lade dich ein. Ich kann dir alles besorgen, Süße. + +[LAW2B_G:LAWYER2] +Mach dir keine Gedanken. + +[LAW2B_H:LAWYER2] +Verzieh dich, Schãtzchen. + +[LAW2B_I:LAWYER2] +Oi oi oi oi! + +[LAW2B_J:LAWYER2] +Bist du Kent Paul? Ich bin ein Freund von Rosenberg... + +[LAW2B_K:LAWYER2] +Rosenberg...Rosenberg... Ach, dieser abgedrehte Winkeladvokat! + +[LAW2B_L:LAWYER2] +Der bringt noch den Unschuldigsten auf den elektrischen Stuhl! + +[LAW2B_M:LAWYER2] +Mach uns noch 'nen Drink, mein Freund. + +[LAW2B_N:LAWYER2] +Bist ein echter Komiker. + +[LAW2B_O:LAWYER2] +Hör zu, ich vermisse 20 Kilo und einen Haufen Geld... + +[LAW2B_P:LAWYER2] +Drogen? Das ist doch Schwachsinn. + +[LAW2B_Q:LAWYER2] +Was weißt du darüber? + +[LAW2B_R:LAWYER2] +Oi, oi! Gerade wollte ich's sagen... + +[LAW2B_S:LAWYER2] +Es gibt da einen Koch, der verdealt Koks in der Küche eines Hotels am Ocean Drive. + +[LAW2B_T:LAWYER2] +Macht einen ziemlich zufriedenen Eindruck in letzter Zeit. Solltest du mal auschecken. + +[LAW2B_U:LAWYER2] +Mach ich. Und wir sehen uns. + +[LAW2B_V:LAWYER2] +Ja, ja. Nur zu. Hau bloß ab, du Stinktier. Dir polier ich noch die Visage! + +[LAW2B_W:LAWYER2] +Gib mir 'nen Drink. Und wo ist die Puppe? + +[LAW2C_A:LAWYER2] +Oh, sehr gut, Rambo, schlag ihn ruhig zu Brei. Dann redet er ganz bestimmt. + +[LAW2C_B:LAWYER2] +Willst du auch ein paar? + +[LAW2C_C:LAWYER2] +Hey, ruhig. Ich will das gleiche wie du, Bruder. + +[LAW2C_D:LAWYER2] +Ach ja? Und das wãre? + +[LAW2C_E:LAWYER2] +Deine Kohle und den Stoff meines toten Bruders. Aber du hast gerade unsere Spur erledigt. + +[LAW2C_F:LAWYER2] +Dumm gelaufen. Verzieh dich. + +[LAW2C_G:LAWYER2] +Hey, hey! Kein Grund, hier den dicken Mann zu spielen. + +[LAW2C_H:LAWYER2] +Sieh mal: Wir sind zwei Hombres in 'ner fremden Stadt. Wir sollten uns gegenseitig helfen. + +[LAW2C_I:LAWYER2] +Ich helf mir selbst, Bruder. + +[LAW2C_J:LAWYER2] +Bist du dir sicher? Hier nimm das. + +[LAW2C_K:LAWYER2] +Komm mit! + +[LAW2_1:LAWYER2] +Was glotzt du denn so? + +[LAW2_2:LAWYER2] +Rede endlich... + +[LAW2_3:LAWYER2] +Zwing mich doch dazu, du Pfeife! + +[LAW2_4:LAWYER2] +Mir nach! + +[LAW2_5:LAWYER2] +Ich seh zu, was ich rausfinde. Ich behalte dich im Auge, Tommy. + +[LAW2_6:LAWYER2] +~g~Begib dich zum Malibu Club und suche Kent Paul. + +[LAW2_7:LAWYER2] +~g~Suche den Küchenchef auf dem Ocean Drive. + +[LAW2_10:LAWYER2] +~g~Fahre zurück zum Hotel. + +[LAW2_11:LAWYER2] +~g~Nimm sein Handy. + +[LAW2_12:LAWYER2] +Du hast jetzt ein Handy und kannst Telefongesprãche entgegennehmen! + +[LAW2_13:LAWYER2] +~g~Du hast Lance zurückgelassen! Geh ihn holen! + +[LAW2_14:LAWYER2] +Verdammt, nichts wie weg hier! + +[GUN_2A:LAWYER2] +Halte die ~h~~k~~PED_LOCK_TARGET~ ~w~gedrückt, um ~h~automatisch zu zielen~w~. Drücke die ~h~~k~~PED_FIREWEAPON~~w~, um zu ~h~feuern! + +[GUN_2C:LAWYER2] +Halte die ~h~~k~~PED_LOCK_TARGET~ ~w~gedrückt, um ~h~automatisch zu zielen~w~. Drücke die ~h~~k~~PED_FIREWEAPON~~w~, um zu ~h~feuern! + +[GUN_2D:LAWYER2] +Halte die ~h~~k~~PED_LOCK_TARGET~ ~w~gedrückt, um ~h~automatisch zu zielen~w~. Drücke die ~h~~k~~PED_FIREWEAPON~~w~, um zu ~h~feuern! + +[HELP17:LAWYER2] +Drücke die ~h~~k~~PED_FIREWEAPON~~w~, um den Küchenchef anzugreifen. + +[HELP18:LAWYER2] +Drücke die~h~ ~k~~PED_FIREWEAPON~~w~, um den Küchenchef anzugreifen. + +[LAW3_11:LAWYER2] +Stell dich in die ~q~rosa Markierung~w~, um zu sehen, was im Angebot ist. + +[LAW3_12:LAWYER2] +Du kannst Waffen auswãhlen, indem du die ~h~linke~w~ oder ~h~rechte~w~ ~h~Richtungstaste drückst. + +[LAW3_13:LAWYER2] +Wenn du genug Geld hast, kannst du Waffen durch Drücken der ~h~~k~~PED_SPRINT~~w~ kaufen. + +[LAW3_14:LAWYER2] +Um zu gehen, drücke die ~h~~k~~VEHICLE_ENTER_EXIT~ + +[LAW3_15:LAWYER2] +Folge dem ~h~Pistolensymbol~w~ auf dem Radar, so kommst du zu AmmuNation. + +[LAW2_15:LAWYER2] +~g~Begib dich zu AmmuNation. + +[LAW2_K:LAWYER2] +Nur die Ruhe. + +[LAW2_16:LAWYER2] +Eins musst du wissen: In dieser Stadt darfst du nie unbewaffnet sein. + +[LAW2_17:LAWYER2] +Komm, der nãchste Waffenladen ist ein paar Blocks von hier. + +[LAW2_18:LAWYER2] +Tommy, jeder Mann braucht ab und zu mal ein bisschen Entspannung. + +[LAW2_19:LAWYER2] +Das ist die Pole Position Stripper-Bar. Solltest du bei Gelegenheit mal reinschauen. + +{=================================== MISSION TABLE LAWYER3 ===================================} + +[_A:LAWYER3] +Arrgh! Ach, du lieber Gott! Du! Meine Güte, ich brauch 'ne neue Hose! + +[LAW3_B:LAWYER3] +Hey, diese Psychos aus dem Norden haben angerufen. Sie kommen bald hier runter. + +[LAW3_C:LAWYER3] +Also, wo ist das verdammte Geld? + +[LAW3_D:LAWYER3] +Ganz ruhig. Soweit sind wir noch nicht. + +[LAW3_E:LAWYER3] +Ich hab wirklich gedacht, du erledigst das. + +[LAW3_F:LAWYER3] +Und jetzt sagen diese Gauner, wir sollen ihnen einen Gefallen tun. + +[LAW3_G:LAWYER3] +Du meinst, ICH soll ihnen einen Gefallen tun. + +[LAW3_H:LAWYER3] +Du sagst es. Sehe ich aus, als könnte ich Geschworene einschüchtern? + +[LAW3_I:LAWYER3] +Ich kann nicht mal ein Kind einschüchtern. Ich hab's versucht. + +[LAW3_J:LAWYER3] +Hör zu, wenn du kneifst, kriegt Forellis Cousin Georgio 5 Jahre wegen Betrugs. + +[LAW3_K:LAWYER3] +Du musst diese Typen ausschalten. + +[LAW3_L:LAWYER3] +Verstehe. Den Geschworenen helfen 'umzudenken'. Kein Problem. + +[LAW3_M:LAWYER3] +Nein, nein, nein! Das hab ich schon versucht. Das ist nicht gelaufen, + +[LAW3_N:LAWYER3] +ZWING sie dazu, umzudenken. + +[LAW3_1:LAWYER3] +Georgio lãsst grüßen. + +[LAW3_2:LAWYER3] +Denk dran, 'Schuldig' ist ein hãssliches Wort. + +[LAW3_3:LAWYER3] +'Unschuldig', bis ich was anderes sage. + +[LAW3_4:LAWYER3] +Er ist nicht schuldig. + +[LAW3_5:LAWYER3] +Du kennst Georgio? Merk dir: Er ist nicht schuldig. + +[LAW3_6:LAWYER3] +Nicht schuldig. Verstanden...gut. + +[LAW3_8:LAWYER3] +~r~Du hast einen Geschworenen erledigt! + +[LAW3_9:LAWYER3] +~g~Schrotte das Auto des Geschworenen, damit er aussteigt! + +[HELP40:LAWYER3] +Du kannst Autos mit dem Hammer oder einer ãhnlichen Waffe zertrümmern. + +[HELP41:LAWYER3] +Oder du kannst sie mit einem Fahrzeug rammen. + +[LAW3_10:LAWYER3] +~g~Eine Nahkampfwaffe kannst du im ~h~Eisenwarenladen~g~ kaufen. + +[LAW3_20:LAWYER3] +~g~Schrotte das Auto des Geschworenen! + +[LAW3_21:LAWYER3] +Das kann doch wohl nicht wahr sein! + +[LAW3_22:LAWYER3] +Unglaublich! + +[LAW3_23:LAWYER3] +Ok! Ok! Ich hab kapiert! + +[LAW3_24:LAWYER3] +~g~Dieser Hammer wãre nützlich. + +[LAW3_7:LAWYER3] +~g~Schüchtere die 2 Geschworenen ein, aber erledige sie NICHT! + +[HELP23:LAWYER3] +Folge dem ~h~Hammer-Symbol~w~ auf dem Radar, wenn du beim Eisenwarenladen Nahkampfwaffen kaufen willst. + +[LAW3_16:LAWYER3] +Dãmlicher Florida-Idiot! + +[LAW3_17:LAWYER3] +Aus dem Weg! + +{=================================== MISSION TABLE LAWYER4 ===================================} + +[LAW4_A:LAWYER4] +Avery, es versteht sich von selbst... Tommy! Tommy! Fortschritte gemacht? Nein, erzãhl's mir spãter. + +[LAW4_B:LAWYER4] +Tommy, das ist Avery Carrington. Kennt ihr euch nicht von der Party? + +[LAW4_C:LAWYER4] +Nicht persönlich. + +[LAW4_D:LAWYER4] +Tagchen. + +[LAW4_E:LAWYER4] +Avery hat einen Vorschlag für uns. + +[LAW4_F:LAWYER4] +Haben wir nicht was besseres zu tun? + +[LAW4_G:LAWYER4] +Ich versuch hier, unseren Hals zu retten. Also würdest du mich bitte ausreden lassen? + +[LAW4_H:LAWYER4] +Ich hab Angst. Aber wenn ich schon Ende der Woche sterbe, möchte ich wenigstens nicht arm sterben. + +[LAW4_I:LAWYER4] +Jetzt beruhigt euch, ihr beiden. + +[LAW4_J:LAWYER4] +Junge, wenn du mir hilfst, sorge ich dafür, dass jeder, der dir Ãrger macht, unter die Erde kommt. + +[LAW4_K:LAWYER4] +Ok, was kann ich für Sie tun? + +[LAW4_L:LAWYER4] +Eine Spedition hat ihr Lager auf einem Top-Grundstück - und will nicht verkaufen. + +[LAW4_M:LAWYER4] +Die sitzen da drauf wie die Ratten in ihren Löchern. Also müssen wir dieses Ungeziefer ausrãuchern. + +[LAW4_N:LAWYER4] +Fahr hin und stich ein wenig ins Wespennest. + +[LAW4_O:LAWYER4] +Das wird die Security beschãftigen. Dann schleichst du dich rein und machst den Laden platt. + +[LAW4_P:LAWYER4] +Und du könntest dich bei Rafael's neu einkleiden. Kann 'ne Weile dauern, aber mach das ruhig mal. + +[LAW4_Q:LAWYER4] +Das gibt ein Fest. + +[LAW4_R:LAWYER4] +Wenn alles lãuft wie geplant, komm mal zu mir ins Büro... + +[LAW4_1:LAWYER4] +Bitte, geht auseinander! Die Geschãftsleitung wird sich aller Probleme annehmen! + +[LAW4_2:LAWYER4] +Bitte, geht auseinander! Geht wieder nach Hause! + +[LAW4_3:LAWYER4] +Bitte, geht auseinander! Das ist nicht akzeptabel! + +[LAW4_4:LAWYER4] +Bitte, geht auseinander! Ihr landet alle auf der Straße! + +[LAW4_5:LAWYER4] +Die Knüppel raus, Jungs! Diesen Kommis zeigten wir's! + +[LAW4_13:LAWYER4] +Fange mit mind. 4 Arbeitern Streit an, um einen Aufruhr zu starten. + +[LAW4_14:LAWYER4] +~g~Zerstöre die Transporter auf dem Gelãnde! + +[HELP38:LAWYER4] +Wenn du jemanden ausschaltest, der eine Waffe trãgt, lãsst er sie fallen. + +[HELP39:LAWYER4] +Du kannst explosive Fãsser anvisieren und abschießen, aber bleib auf Distanz. + +{=================================== MISSION TABLE MIAMI_1 ===================================} + +[T4X4_1A:MIAMI_1] +~g~Du hast ~1~ Sekunden, um ~y~24~g~ Checkpoints abzufahren. ~g~Die ~y~REIHENFOLGE IST BELIEBIG. + +[T4X4_1B:MIAMI_1] +~y~PASSIERE~g~ den ersten Checkpoint, dann lãuft die ~r~STOPPUHR. + +[T4X4_1C:MIAMI_1] +~1~ von 24! + +[GETBIK1:MIAMI_1] +Du hast ~1~ Sekunden, um auf eine PCJ 600 zu steigen! + +[GETBIK3:MIAMI_1] +~r~Du brauchst eine PCJ 600, um diese Mission durchzuführen! + +{=================================== MISSION TABLE MM ===================================} + +[BLOD_04:MM] +ZUSTAND AUTO: + +[BLOD_05:MM] +~g~ZIELZEIT: ~1~ Minute + +[BLOD_06:MM] +~g~ZIELZEIT: ~1~ Minuten + +[BLOD_07:MM] +NEUE Bestzeit: ~1~ Sekunden + +[BLOD_08:MM] +Zerstörte Autos: ~1~ + +[BLOD_09:MM] +$~1~ + +[BLOD_10:MM] +SIEGER!! + +[BLOD_01:MM] +Fahr durch die Checkpoints, um deine Gesamtzeit zu verlãngern. + +[BLOD_02:MM] +Wenn die Gesamtzeit abgelaufen ist, hast du versagt. + +[BLOD_03:MM] +Um zu gewinnen, muss deine Gesamtzeit die Zielzeit überschreiten! + +{=================================== MISSION TABLE OVALRIG ===================================} + +[HOTR_01:OVALRIG] +~g~Das Rennen geht über 12 Runden. Nur die ersten drei Plãtze qualifizeren für einen Gewinn. + +[HOTR_02:OVALRIG] +~g~Wird dein Auto zerstört, wirst du disqualifiziert. + +[HOTR_03:OVALRIG] +~g~Wird dein Auto beschãdigt, kannst du es an der Box reparieren lassen. + +[HOTR_04:OVALRIG] +~g~Da geht es aus dem Stadion raus. + +[HOTR_05:OVALRIG] +Zustand Auto: + +[HOTR_06:OVALRIG] +Runden: + +[HOTR_07:OVALRIG] +Neue Bestzeit: ~1~:0~1~ + +[HOTR_08:OVALRIG] +Zeit: ~1~:~1~ + +[HOTR_10:OVALRIG] +Absolvierte Zeit: + +[HOTR_09:OVALRIG] +Position: + +[HOTR_12:OVALRIG] +~r~Dein Fahrzeug ist zerstört worden! + +[HOTR_13:OVALRIG] +~r~Du hast das Rennen nicht gewonnen! + +[HOTR_14:OVALRIG] +~r~Du bist disqualifiziert worden! + +[HOTR_15:OVALRIG] +Zeit: ~1~:~1~ + +[HOTR_16:OVALRIG] +Zeit: ~1~:0~1~ + +[HOTR_17:OVALRIG] +Bestzeit: ~1~:~1~ + +[HOTR_18:OVALRIG] +Bestzeit: ~1~:0~1~ + +[HOTR_19:OVALRIG] +Bestzeit: Nicht verfügbar + +[HOTR_20:OVALRIG] +Neue Bestzeit: ~1~:~1~ + +[HOTR_21:OVALRIG] +Neue Bestzeit: ~1~:0~1~ + +[HOTR_22:OVALRIG] +Beste Platzierung: Nicht verfügbar + +[HOTR_23:OVALRIG] +Beste Platzierung: 1. + +[HOTR_24:OVALRIG] +Beste Platzierung: 2. + +[HOTR_25:OVALRIG] +Beste Platzierung: 3. + +[HOTR_26:OVALRIG] +Beste Platzierung: ~1~. + +[HOTR_27:OVALRIG] +Beste Rundenzeit: ~1~.~1~ Sekunden + +[HOTR_28:OVALRIG] +Beste Rundenzeit: ~1~.0~1~ Sekunden + +[HOTR_29:OVALRIG] +$~1~ + +[HOTR_30:OVALRIG] +1. PLATZ + +[HOTR_31:OVALRIG] +2. PLATZ + +[HOTR_32:OVALRIG] +3. PLATZ + +[HOTR_33:OVALRIG] +Beste Rundenzeit: Nicht verfügbar + +[HOTR_11:OVALRIG] +Neue beste Rundenzeit: ~1~.~1~ Sekunden + +[HOTR_34:OVALRIG] +Neue beste Rundenzeit: ~1~.0~1~ Sekunden + +{=================================== MISSION TABLE PHIL1 ===================================} + +[PHI1_HP:PHIL1] +Wenn du Granaten mit Fernzünder benutzt, wirf die Granate, dann löse die Explosion zu einem beliebigen Zeitpunkt aus. + +[PHIL1_A:PHIL1] +Phil? + +[PHIL1_B:PHIL1] +SCHNELL WEG! + +[PHIL1_C:PHIL1] +Schnell weg! + +[PHIL1_E:PHIL1] +Scheiße, Phil, das Zeug trinkst du? + +[PHIL1_F:PHIL1] +Hey, du musst es nicht trinken. + +[PHIL1_G:PHIL1] +Das haut schon rein, wenn du nur dran riechst. + +[PHIL1_H:PHIL1] +Hör mal, Phil, du sagtest, du könntest mir Artillerie besorgen... + +[PHIL1_I:PHIL1] +Klar. + +[PHIL1_J:PHIL1] +In letzter Zeit macht mir ein mexikanischer Waffenschieber Konkurrenz. + +[PHIL1_K:PHIL1] +Der müsste jetzt gerade auf seiner wöchentlichen Runde sein. + +[PHIL1_L:PHIL1] +Ramm mit deiner Karre die Ware von seinem Wagen runter, bevor er wieder abtaucht. + +[PHIL1_M:PHIL1] +Tust mir einen großen Gefallen damit. + +[PHIL1_N:PHIL1] +Und dann mach ihn fertig. + +[PHI1_01:PHIL1] +~g~Ramme die Waffen von der Ladeflãche des Waffenschiebers. + +[PHI1_02:PHIL1] +~g~Der Waffenhãndler hat die Ladung verloren. Schlag die Kiste kaputt und nimm die Waffe. + +[PHI1_03:PHIL1] +~g~Sie haben anscheinend Verstãrkung gerufen. + +[PHI1_04:PHIL1] +~g~Jetzt erledige die restlichen Waffenschieber. + +[PHI1_06:PHIL1] +Pass doch auf, wo du hinfãhrst! + +[PHI1_07:PHIL1] +Hey! + +[PHIL1_O:PHIL1] +Huuuuhuuu! + +[PHIL1_D:PHIL1] +Komm nie mit 'ner offenen Flamme in die Nãhe von Phil Cassidys TNT-Whiskey! + +{=================================== MISSION TABLE PHIL2 ===================================} + +[PHIL2_A:PHIL2] +Hey, Phil, wie geht's? + +[PHIL2_B:PHIL2] +Hey, Tommy. Alles klar? Lange nicht gesehen... + +[PHIL2_C:PHIL2] +Du solltest wirklich die Finger von dem TNT-Whiskey lassen. + +[PHIL2_D:PHIL2] +Das Zeug riecht ja wie Terpentin. Mir brennen schon die Augen. + +[PHIL2_E:PHIL2] +Lass stecken, Tommy. + +[PHIL2_F:PHIL2] +Komm hier rüber, ich will dir nãmlich was zeigen. + +[PHIL2_G:PHIL2] +Wahnsinn! Das rieche ich ja schon von hier. Mir ist schon ganz schwindlig. + +[PHIL2_H:PHIL2] +Kümmer dich nicht um den Geruch. Tommy, sieh dir das an. + +[PHIL2_I:PHIL2] +Billige Schrottbatterien. Da auf der Bank sind noch welche. + +[PHIL2_J:PHIL2] +Tata! + +[PHIL2_K:PHIL2] +Oh, verflucht! + +[PHI2_01:PHIL2] +~g~Schnell, bring Phil ins Krankenhaus. + +[PHI2_03:PHIL2] +~r~Phil Cassidy ist tot!!! Wer soll Liberty nun mit Waffen versorgen? + +[PHI2_05:PHIL2] +Nicht ins Krankenhaus, Mann! Zu viele Cops und Vietcong! + +[PHI2_06:PHIL2] +Ich kenn 'nen Ex-Army-Arzt, der schuldet mir einen Gefallen und 'nen Rasenmãher. + +[PHI2_07:PHIL2] +Er hat 'ne Praxis unten in Little Havana. Uh, guck mal, ein Riesenfisch. + +[PHI2_08:PHIL2] +Achtung! Da in den Bãumen - Vietcong! + +[PHI2_09:PHIL2] +Spinn ich, oder ist die Straße aus Gummi? + +[PHI2_10:PHIL2] +Broken Spoon an Mother Hen, bitte kommen! + +[PHI2_11:PHIL2] +Spooney Wooney Woo Woo Woooo! + +[PHI2_12:PHIL2] +Er kommt mich holen, Jungchen! + +[PHI2_13:PHIL2] +Schwarze Schwingen breiten sich über mir aus... + +[PHI2_14:PHIL2] +Es ist wunderschön, Mann. Wunderschön... mir ist nur so kalt... + +[PHI2_15:PHIL2] +Roger! Wir haben einen betrunkenen Fahrer. + +[PHI2_04:PHIL2] +Phils Gesundheitszustand: + +[PHI_AS1:PHIL2] +PHIL-MISSIONEN ERFÜLLT + +[PHI_AS2:PHIL2] +~g~Bei Phil gibt es neue Waffen zu kaufen. {=================================== MISSION TABLE PIZZA ===================================} -[PIZ1_06:PIZZA] -~w~Bist du auf dem Moped, drücke~h~ ~k~ ~TGSUB~~w~, um die Mission abzubrechen. +[PIZ1_01:PIZZA] +~g~Liefere diese Pizzas aus. Du musst den Kunden die Pizzas zuwerfen, wãhrend du an ihnen vorbeifãhrst. [PIZ1_02:PIZZA] -~w~Du hast keine Pizzas mehr! Fahr zu ~y~Joe's Pizza Restaurant~w~ zurück und hol neue. - -[PIZ1_07:PIZZA] -~r~Du hast den Kunden umgebracht! Du bist gefeuert! - -[PIZ1_08:PIZZA] -~r~Du hast keine Zeit und keinen Job mehr! - -[PIZ1_09:PIZZA] -~r~Du hast unser Moped geschrottet! Verschwinde! - -[PIZ1_11:PIZZA] -~w~Du brauchst das Pizza-~b~Moped~w~, um die Bestellungen auszuliefern! - -[PIZ1_12:PIZZA] -Pizzas - -[PIZ1_13:PIZZA] -~w~Pizza! Heiß und lieferbereit! Ich liebe Pizza! - -[PIZ1_14:PIZZA] -~w~Die sind zum Liefern! ...Also liefer mal! - -[PIZ1_15:PIZZA] -~w~Die da ist extrascharf! - -[PIZ1_16:PIZZA] -~w~Nimm den Finger aus dem Arsch und liefer die aus, pronto! - -[PIZ1_17:PIZZA] -~w~Diese Pizzas sollen HEUTE ausgeliefert werden, nicht nächstes Jahr. - -[PIZ1_18:PIZZA] -~w~Ist Pizza liefern unter deiner Würde? Oh, Verzeihung, Herr Professor! - -[PIZ1_19:PIZZA] -~w~Lieferst du die jetzt aus, oder was? - -[PIZ1_20:PIZZA] -~w~Du bist gefeuert! ...War nur Spaß! Wird aber Ernst, wenn die nicht rechtzeitig ausgeliefert werden! - -[PIZ1_21:PIZZA] -~w~Pizzas! Mach schon! Da warten Fettsäcke drauf! - -[PIZ1_22:PIZZA] -~w~Hast du auf die Pizzas gespuckt? ... solltest du! Dann schmecken sie besser! - -[PIZ1_23:PIZZA] -~w~Glaubst du etwa, die liefern sich von selbst aus? - -[PIZ1_24:PIZZA] -~w~Wenn die kalt sind, bis du sie ablieferst, dann gibt's Zunder! - -[PIZ1_25:PIZZA] -~w~Beweg diesmal deinen Arsch! - -[PIZ1_26:PIZZA] -~w~Hey, liefer die aus! - -[PIZ1_27:PIZZA] -~w~Okay, liefer die aus, dann komm wieder und hol mehr. - -[PIZ1_28:PIZZA] -~w~Unsere Pizzas schlagen alles! Liefer die rechtzeitig aus, sonst schlag ich dich! - -[PIZ1_29:PIZZA] -~w~Du willst noch mehr? Hab ich dich nicht schon genug beschimpft heute? - -[PIZ1_30:PIZZA] -~w~Ich glaub, auf eine hab ich draufgeniest. Was soll's! Nimm sie mit! - -[PIZ1_31:PIZZA] -~w~Ich hasse diesen Job! Aber wenigstens kann ich dich rumkommandieren. - -[PIZ1_3A:PIZZA] -~w~Wenn die nicht rechtzeitig geliefert werden, dann ist die Holzkohle im Ofen die einzige, die du heute siehst. - -[PIZ1_32:PIZZA] -~r~Schmecken dir unsere Pizzas nicht? - -[PIZ1_33:PIZZA] -~w~Fahr zurück zu ~y~Joe's Pizza Restaurant~w~ für neue Bestellungen. - -[PIZ1_34:PIZZA] -~w~Pizza serviert, Kohle kassiert! - -[PIZ_WON:PIZZA] -~w~Pizza-Job erledigt. Prima! Der maximale Wert für deine Gesundheit wurde erhöht! - -[PIZ_WO1:PIZZA] -~w~Joe's Pizza Restaurant steht jetzt unter deinem 'Schutz'. Hol dir dein Schutzgeld regelmäßig ab. - -[PIZ1_01:PIZZA] -~w~Liefere diese Pizzas so schnell wie möglich an unsere ~b~Kunden~w~. +~g~Du hast alle Pizzas zugestellt. Fahr zurück und hole noch mehr. [PIZ1_05:PIZZA] -~w~Wirf sie den Kunden auf die gleiche Art zu, wie ein Drive-by ausgeführt wird. +~g~Du hast 5 Minuten, um die Pizzas zu liefern, sonst rufen die Kunden einen anderen Pizza-Service an. -{=================================== MISSION TABLE TAXI ===================================} +[PIZ1_07:PIZZA] +~r~Du hast den Kunden erledigt! Du bist gefeuert. -[TAXI1:TAXI] -~w~Such dir einen ~b~Fahrgast. +[PIZ1_08:PIZZA] +~r~Die Zeit ist um. Du bist gefeuert. -[TAXI1A:TAXI] -~w~Hier in der Nähe sind keine Fahrgäste - such weiter! +[PIZ1_09:PIZZA] +~r~Du hast dein Motorrad geschrottet! Du bist gefeuert. -[TAXI2:TAXI] -~r~Die Zeit ist um! +[PIZ1_11:PIZZA] +Hey! Steig wieder aufs Motorrad! -[TAXI3:TAXI] -~w~Dein Fahrgast ist entsetzt geflohen! +[PIZ1_12:PIZZA] +Verbleibende Pizzas: -[TAXI4:TAXI] -~w~Fahrt abgeschlossen: $~1~ +[PIZ1_06:PIZZA] +Drücke die ~h~ R3-Taste~w~, wenn du auf einem Bike sitzt und die Mission abbrechen willst. -[TAXI4A:TAXI] -~w~Fahrt abgeschlossen: $~1~ + ~1~ SERIEN-BONUS! $~1~ +[PIZ1_13:PIZZA] +Liefere sie schön heiß ab. -[TAXI5:TAXI] -~w~SPEED-BONUS: $~1~ +[PIZ1_14:PIZZA] +Kumpel, Pizzas für dich. -[TAXI5A:TAXI] -~w~SPEED-BONUS: $~1~ + ~1~ SERIEN-BONUS! $~1~ +[PIZ1_15:PIZZA] +Hey, na los, Mister, liefere sie schnell aus. -[TAXI7:TAXI] -~w~Dein Wagen ist Schrott, lass ihn reparieren! +[PIZ1_16:PIZZA] +Worauf wartest du, Mister? Du sollst Pizzas liefern. -[TAXI8:TAXI] -~r~Taxi-Mission abgebrochen. +[PIZ1_17:PIZZA] +Ich weiß, du wolltest kein Pizza-Lieferant sein. Na ja, mir egal. -[TAXI9:TAXI] -~r~Dein Taxi wurde zerstört! +[PIZ1_18:PIZZA] +Liefere die aus. -[FARES:TAXI] -Fahrten +[PIZ1_19:PIZZA] +Die müssen ausgeliefert werden. -[TIP:TAXI] -Trinkgeld +[PIZ1_20:PIZZA] +Na los, Mister, liefere die Dinger aus, oder du fliegst. -[FARE9:TAXI] -~w~Fahrtziel: ~y~'Portland Docks'. +[PIZ1_21:PIZZA] +Die Leute warten, Kumpel. -[FARE20:TAXI] -~w~Fahrtziel: ~y~'Der Park' ~w~in Belleville. +[PIZ1_22:PIZZA] +Wartest du auf bessere Zeiten? Die müssen ausgeliefert werden! -[FARE22:TAXI] -~w~Fahrtziel: ~y~'Cochrane Dam'. +[PIZ1_23:PIZZA] +Liefer den verdammten Fraß aus, Mister. -[FARE2:TAXI] -~w~Fahrtziel: ~y~'Head Radio'~w~, Harwood. +[PIZ1_24:PIZZA] +Die müssen ausgeliefert werden, Kumpel. -[FARE3:TAXI] -~w~Fahrtziel: ~y~'Der Fährhafen'~w~, Harwood. +[PIZ1_25:PIZZA] +Mann, kannst du die übernehmen? -[FARE4:TAXI] -~w~Fahrtziel: ~y~'Die Klinik'~w~, Portland View. +[PIZ1_26:PIZZA] +Mister, liefere die Dinger schnell ab, hopp, Amigo. -[FARE7:TAXI] -~w~Fahrtziel: ~y~'Die Baustelle'~w~, Hepburn Heights. +[PIZ1_27:PIZZA] +Komm schon, wir sind unter Druck, liefere die Dinger aus. -[FARE8:TAXI] -~w~Fahrtziel: ~y~'Cipriani Restaurant'~w~, Saint Mark's. +[PIZ1_28:PIZZA] +Du schon wieder? Liefere die hier schnell aus, Kumpel. -[FARE10:TAXI] -~w~Fahrtziel: ~y~'Punk Noodles'~w~, Chinatown. +[PIZ1_29:PIZZA] +Keine Trödelei diesmal, Kumpel. -[FARE12:TAXI] -~w~Fahrtziel: ~y~'Der Fährhafen'~w~, Rockford. +[PIZ1_30:PIZZA] +Na los, du fauler Hund, liefere den Fraß rechtzeitig aus. -[FARE13:TAXI] -~w~Fahrtziel: ~y~'Die Kirche'~w~, Bedford Point. +[PIZ1_31:PIZZA] +Du wirst nie befördert, wenn du diesmal nicht schneller machst. -[FARE14:TAXI] -~w~Fahrtziel: ~y~'Büro der Liberty Tree Zeitung'~w~, Bedford Point. +[PIZ1_32:PIZZA] +~r~Ist dir die Pizza zu heiß? -[FARE15:TAXI] -~w~Fahrtziel: ~y~'Liberty Universität'~w~, Liberty Campus. +[PIZ1_33:PIZZA] +~g~Kehre zum Restaurant zurück, um weitere Auftrãge zu bekommen. -[FARE16:TAXI] -~w~Fahrtziel: ~y~'Hogs 'n' Cogs'~w~, Gegend von Belleville Park. +[PIZ1_34:PIZZA] +~g~Pizza geliefert, hier ist dein Geld. -[FARE17:TAXI] -~w~Fahrtziel: ~y~'Gerichtsgebäude'~w~, Gegend von Belleville Park. +[PIZ_WON:PIZZA] +Pizza-Mission abgeschlossen. Deine max. Gesundheit erhöht sich auf 150 -[FARE18:TAXI] -~w~Fahrtziel: ~y~'Mr. Benz'~w~, Bedford Point. +{=================================== MISSION TABLE PORN1 ===================================} -[FARE19:TAXI] -~w~Fahrtziel: ~y~'Joe's Pizza'~w~, Bedford Point. +[POR1_15:PORN1] +Hey, Tommy, kommst du auf eine Aufwãrmrunde mit rein!? -[FARE21:TAXI] -~w~Fahrtziel: ~y~'Terminal A'~w~, Francis International Airport. +[POR1_14:PORN1] +Du bist engagiert! -[FARE23:TAXI] -~w~Fahrtziel: ~y~'Die Villa'~w~, Cedar Grove. +[POR1_A:PORN1] +Action! -[FARE24:TAXI] -~w~Fahrtziel: ~y~'Die Klinik'~w~, Pike Creek. +[POR1_B:PORN1] +Wow! Der ist aber groß! -[FARE25:TAXI] -~w~Fahrtziel: ~y~'Der Park'~w~, Shoreside Vale. +[POR1_C:PORN1] +30cm, das ist Vorschrift, Baby. -[FARE26:TAXI] -~w~Fahrtziel: ~y~'North West Towers'~w~, Wichita Gardens. +[POR1_D:PORN1] +SCHNITT! Wer ist dieser Idiot? Du da! Was machst du in meinem Studio? Was willst du? -[FARE27:TAXI] -~w~Fahrtziel: ~y~'Das Bus-Depot'~w~, Trenton. +[POR1_E:PORN1] +Was soll das alles hier? -[FARE28:TAXI] -~w~Fahrtziel: ~y~'Mr. Benz'~w~, Chinatown. +[POR1_F:PORN1] +Aliens? Angelruten? -[FARE29:TAXI] -~w~Fahrtziel: ~y~'Mr. Benz'~w~, Pike Creek. +[POR1_G:PORN1] +Wer hat jemals einen so großen Hai gesehen? -[FARE30:TAXI] -~w~Fahrtziel: ~y~'Terminal C'~w~, Francis International Airport. +[POR1_H:PORN1] +Das muss alles raus hier. -[FARE31:TAXI] -~w~Fahrtziel: ~y~'AM Petroleum'~w~, Pike Creek. +[POR1_I:PORN1] +Wieso bist du in diese Branche gegangen, du Idiot? -[FARE32:TAXI] -~w~Fahrtziel: ~y~'Liberty Pharmaceuticals'~w~, Pike Creek. +[POR1_J:PORN1] +Hah? -[FARE11:TAXI] -~w~Fahrtziel: ~y~'Phil Cassidy's Fully Cocked Gun Shop'~w~, Bedford Point. +[POR1_K:PORN1] +Wegen der Pussys, deswegen. Was ist das?? -[FARE1A:TAXI] -~w~Fahrtziel: ~y~'Paulie's Revue Bar'~w~, Rotlichtviertel. +[POR1_L:PORN1] +Das ist meine Kunst- SICHERHEITSDIENST! -[FARE1C:TAXI] -~w~Fahrtziel: ~y~'Sex Club Seven'~w~, Rotlichtviertel. +[POR1_M:PORN1] +Hör zu, du aufgeblasener Penner, du gehörst jetzt mir. Mir gehört das alles hier. -[FARE5:TAXI] -~w~Fahrtziel: ~y~'Ammu-Nation'~w~, Rotlichtviertel. +[POR1_N:PORN1] +Wir krempeln den Laden hier um. -[FARE6:TAXI] -~w~Fahrtziel: ~y~'Capital Autos',~w~ Saint Mark's. +[POR1_O:PORN1] +Ich mache dich reich. -{=================================== MISSION TABLE AMBU ===================================} +[POR1_P:PORN1] +Ãh, du...du bist Tommy Vercetti? Aber ich dachte, du wãrst... -[A_FAIL2:AMBU] -~r~Deine Trödelei war tödlich für den Patienten! +[POR1_Q:PORN1] +Ganz recht. -[A_FAIL3:AMBU] -~r~Der Patient ist tot! +[POR1_R:PORN1] +Wir ãndern hier ein paar Dinge und dann machen wir richtig Kohle. -[ATUTOR4:AMBU] -~w~Jede Erschütterung mindert die Überlebenschancen des Patienten! +[POR1_S:PORN1] +Hast du dir schon mal überlegt... -[A_TIME:AMBU] -~w~Patient eingeladen! +~1~ Sekunden +[POR1_T:PORN1] +Aber zuerst brauchen wir mal ein paar hübsche Mãdels hier. -[A_TIME2:AMBU] -~w~Bonus! +~1~ Sekunden +[POR1_U:PORN1] +Ja, Girls sind ok, aber du...wow! -[AREWARD:AMBU] -~w~Level ~1~ abgeschlossen! Belohnung: $~1~ +[POR1_02:PORN1] +~g~Schalte Candys Agent aus, dann komm wieder und hole Candy. -[A_RANGE:AMBU] -~r~Du bist außer Reichweite des Notarztfunks. Fahr näher an eine Klinik heran! +[POR1_04:PORN1] +Hey, Candy. Ich suche Filmtalente. Interessiert? -[ATUTOR5:AMBU] -~w~Sammle einen ~b~Patienten~w~ auf. +[POR1_05:PORN1] +Klar! Aber da musst du mit meinem Agenten reden. -[ATUTOR6:AMBU] -~w~Bring den Patienten zur ~y~Klinik! +[POR1_06:PORN1] +Was zum Teufel soll das? -[ATUTOR7:AMBU] -~w~Sammle noch mehr ~b~Patienten~w~ auf, oder bring diesen zur ~y~Klinik. +[POR1_07:PORN1] +Du hãttest heute zu Hause bleiben sollen! -[A_FULL:AMBU] -~w~Dein Krankenwagen ist voll! Bring deine Patienten zur ~y~Klinik! +[POR1_7B:PORN1] +Was sagt man zu so 'nem Arschloch? -[A_RANG2:AMBU] -~r~Der Notarztfunk funktioniert nicht in der U-Bahn! +[POR1_08:PORN1] +Hey, Mercedes! -{=================================== MISSION TABLE TV ===================================} +[POR1_09:PORN1] +Hi, Tommy. Na, ein bisschen feiern? -[TV_01:TV] -Slash TV +[POR1_10:PORN1] +Jetzt nicht, Süße. Bist du an Filmaufnahmen interessiert? -[TV_02:TV] -~w~Erledige alle irren Psychopathen... die greifen in einer Tour an! +[POR1_11:PORN1] +Klar. Wenn's schön billig und dreckig ist. -[TV_03:TV] -~w~Mit jedem Level wird es schwerer und es gibt mehr Gegner... und auch mehr Preise zu gewinnen! +[POR1_13:PORN1] +~g~Bring die Girls ins Studio zu Steve. -[TV_04:TV] -~w~LEVEL ~1~ +[POR1_17:PORN1] +Wow, cooler Hai! -[TV_10:TV] -~w~Du hast einen Sonderpreis gewonnen! +[POR1_18:PORN1] +~r~Mercedes ist erledigt! -[TV_09:TV] -Gesamtpreisgeld bei diesem Spiel: $~1~! +[POR1_20:PORN1] +Tommy, wo willst du hin? Komm zurück! -[TV_05:TV] -~w~LEVEL GESCHAFFT! +[POR1_21:PORN1] +Wo willst du hin? -[TV_06:TV] -~w~$~1~ Preisgeld! +[POR1_22:PORN1] +Tommy, wann sehen wir uns mal ganz allein, nur du und ich? -[TV_07:TV] -~w~MACH DICH BEREIT... +[POR1_01:PORN1] +~g~Candy Suxxx wãre perfekt für die Hauptrolle! -[TV_08:TV] -~w~LOS! +[POR1_12:PORN1] +~g~Nimm Candy mit zu deinem Treffen mit Mercedes. -{=================================== MISSION TABLE NOODLE ===================================} +[POR1_16:PORN1] +Vielleicht spãter, Schãtzchen... -[NDL1_02:NOODLE] -~w~O-oh, keine Nudelsnacks mehr! Fahr zu ~y~Punk Noodles~w~ zurück und hol neue. +[POR1_24:PORN1] +~g~Geh zurück und hole Candy. -[NDL1_06:NOODLE] -~w~Bist du auf dem Moped, drücke~h~ ~k~ ~TGSUB~~w~, um die Mission abzubrechen. +[POR1_25:PORN1] +~g~Du hast Candy vergessen. Geh sie holen. -[NDL1_07:NOODLE] -~r~Du hast den Kunden umgebracht! Du bist gefeuert! +[POR1_23:PORN1] +~g~Candy wird sich um das Geschãft in ~h~Downtown~g~ kümmern. -[NDL1_08:NOODLE] -~r~Die Zeit ist um. Du bist gefeuert! +[POR1_26:PORN1] +~g~Da ist Candy. Sie scheint wieder mit dem Kongressabgeordneten Shrub zusammen gewesen zu sein. -[NDL1_09:NOODLE] -~r~Du hast unser Moped geschrottet! Du bist gefeuert! +[POR1_27:PORN1] +Los, gehen wir. -[NDL1_11:NOODLE] -~w~Steig wieder auf das ~b~Moped! +[POR1_28:PORN1] +Tommy, sei vorsichtig! Meine Implantate sind noch nicht versichert! -[NDL1_12:NOODLE] -Nudelsnacks +[POR1_29:PORN1] +Das nennst du fahren? -[NDL1_13:NOODLE] -~w~Nudeln! Rudel von Nudeln, also ab mit Gehudel! +[POR1_30:PORN1] +Danach kann ich keinen Porno mehr machen! -[NDL1_14:NOODLE] -~w~Unsere Kunden kriegen gar nicht genug von meinen Nudeln. +[POR1_31:PORN1] +Was ist los? Willst du mich umbringen? Ich dachte, ich wãre der Star! -[NDL1_15:NOODLE] -~w~Ich hab hier Nudeln, die ausgeliefert werden müssen! +{=================================== MISSION TABLE PORN2 ===================================} -[NDL1_16:NOODLE] -~w~Versuch, die Nudeln rechtzeitig zu liefern! +[POR2_A:PORN2] +Was macht die Filmerei, Steve? -[NDL1_17:NOODLE] -~w~Hey, Dödel! Diese Nudeln müssen ausgeliefert werden! +[POR2_B:PORN2] +Tja, Candy ist ein Naturtalent, und die Neue ist unersãttlich! -[NDL1_18:NOODLE] -~w~Liefer diese Nudeln aus, aber dalli! +[POR2_C:PORN2] +Die hatte schon vor der ersten Probe das halbe Team durch. -[NDL1_19:NOODLE] -~w~Unsere Kunden wollen heiße Nudeln, keine kalten! +[POR2_D:PORN2] +Jedenfalls, morgen haben wir einen Außendreh. Wir schießen ein paar Boot-Szenen. -[NDL1_20:NOODLE] -~w~Du verträgst die Hitze in der Küche nicht? Konfuzius sagt: dann dreh den Herd runter. +[POR2_E:PORN2] +Boot-Szenen? Was für Boot-Szenen? -[NDL1_21:NOODLE] -~w~Liefere diese Nudeln aus, ja? +[POR2_F:PORN2] +Die Fischer zappeln im Netz der Leidenschaft, als ein riesiger Hai daherkommt - -[NDL1_22:NOODLE] -~w~Noch mehr Nudeln zum Ausliefern. +[POR2_G:PORN2] +Was habe ich über den Riesenhai gesagt? -[NDL1_23:NOODLE] -~w~Nudeln, Nudeln, Nudeln! Bring sie schön heiß an den Mann! +[POR2_H:PORN2] +Ich sagte, 'KEIN RIESENHAI', ok? -[NDL1_24:NOODLE] -~w~Da warten Leute drauf! ...Heiliger Bimbam! +[POR2_I:PORN2] +Halt die Kameras auf die Mãdels gerichtet! -[NDL1_25:NOODLE] -~w~Ist diese Bestellung noch nicht ausgeliefert worden? +[POR2_J:PORN2] +Ok, ok. Hey, Tommy, probieren kann ich's ja mal, oder? -[NDL1_26:NOODLE] -~w~Worauf wartest du? Auf das chinesische Neujahr? +[POR2_K:PORN2] +Habt ihr die Flyer drucken lassen? -[NDL1_27:NOODLE] -~w~Diese Nudeln werden kalt. Beeil dich! +[POR2_L:PORN2] +Ja, aber man wird uns die Dinger nicht verteilen lassen. Ich meine, -[NDL1_28:NOODLE] -~w~Ich wollte Astronaut werden. Aber der Laden gehört meinem Vater, was hätte ich machen sollen? +[POR2_M:PORN2] +die sind einfach zu, ãh, zu deutlich. -[NDL1_29:NOODLE] -~w~Wenn du deinen Job behalten willst, beweg deinen Arsch und liefer die aus. +[POR2_N:PORN2] +Mach dir darüber keine Gedanken. -[NDL1_30:NOODLE] -~w~Kross gebratene Nudeln... versteh die, wer will, aber sie schmecken! +[POR2_O:PORN2] +Ich hab da so meine Ideen, wie wir die verteilen. -[NDL1_31:NOODLE] -~w~Ich hätte gedacht, Pizzaliefern wär eher dein Ding. +[POR2_P:PORN2] +Ok. Hey, Candy, ãh, in meinen Wohnwagen. -[NDL1_3A:NOODLE] -~w~Sie wollen immer noch mehr. Also komm wieder, wenn du fertig bist. +[POR2_01:PORN2] +~g~Hinter den Studios steht ein altes Wasserflugzeug, das mal als Requisite für einen Indy-Film diente. -[NDL1_32:NOODLE] -~r~Was ist los? Magst du keine Nudeln? +[POR2_02:PORN2] +~g~Suche dir einen Checkpoint aus, um mit dem Abwurf der Flyer zu beginnen. -[NDL1_33:NOODLE] -~w~Fahr zu ~y~Punk Noodles~w~ zurück für weitere Bestellungen. +[POR2_03:PORN2] +~g~Wirf die Flyer überall bis zum End-Checkpoint ab. -[NDL1_34:NOODLE] -~w~Nudeln serviert, Kohle kassiert! +[POR2_04:PORN2] +~r~TREIBSTOFFMANGEL!!! -[NDL_WON:NOODLE] -~w~Gratuliere, Nudel-Job erledigt! Der maximale Wert für deine Gesundheit wurde erhöht! +[POR2_05:PORN2] +Benutze es, um die Flyer in der Stadt zu verteilen. -[NDL_WO1:NOODLE] -~w~Punk Noodles steht jetzt unter deinem 'Schutz'. Hol dir dein Schutzgeld regelmäßig ab. +[DILDO:PORN2] +Skimmer-Tankinhalt: -[NDL1_01:NOODLE] -~w~Liefere diese Nudelsnacks an unsere ~b~Kunden~w~ - und zwar dalli! +[POR2_Q:PORN2] +Oh, Mann. -[NDL1_05:NOODLE] -~w~Wirf sie den Kunden auf die gleiche Art zu, wie ein Drive-by ausgeführt wird. +[PORN2_9:PORN2] +~g~Du hast ~1~ Sekunden, um zu einer Skimmer zurückzukehren, bevor die Mission endet. -{=================================== MISSION TABLE MPSURV ===================================} +{=================================== MISSION TABLE PORN3 ===================================} -[SAL01:MPSURV] -~w~Maria, ich geh in die Klinik und lass mir den 'du-weißt-schon' richten. +[POR3_A:PORN3] +Ok, was ist jetzt wieder? -[SAL02:MPSURV] -~w~Danach wird mein kleiner Soldat wieder strammstehen wie eh und je... +[POR3_B:PORN3] +Schsch! -[SAL04:MPSURV] -~w~PS: Halt dich bereit fürs 'Manöver', wenn ich rauskomme, Baby. +[POR3_C:PORN3] +Nun, nach seiner Begegnung mit den Nympho-Aliens -[SAL05:MPSURV] -~w~PPS: ...Und lass diesen Brief nicht einfach herumliegen! +[POR3_D:PORN3] +kann unser Held an nichts anderes denken, als an einen riesigen Phallusberg- -[SAL03:MPSURV] -~w~Pass solange auf dich auf, denn ein Haufen Leute würde alles geben, um meinen Laden zu übernehmen. +[POR3_E:PORN3] +und da wollen wir die Szene mit dem Bottich voll Kartoffelpüree drehen, aber dann... -[SAL03A:MPSURV] -~w~Selbst ihr Leben! +[POR3_F:PORN3] +Das interessiert mich nicht die Bohne. -{=================================== MISSION TABLE JDREF ===================================} +[POR3_G:PORN3] +D-Dreh einfach weiter. Weiter, weiter. -[JDT1_BA:JDREF] -~w~Für einen Leone hab ich keine Arbeit! +[POR3_H:PORN3] +Hey, Tommy... -[JDT1_BB:JDREF] -~w~...hey, Toni, komm wieder, wenn du weniger auffällig aussiehst. +[POR3_I:PORN3] +Du hast am Telefon was von rechtlichen Problemen gesagt? -[CHNGOUT:JDREF] -~w~Zieh dein Leone-Outfit aus, sonst darf JD nicht zusammen mit dir gesehen werden. +[POR3_J:PORN3] +Ach ja! Der Kongressabgeordnete Alex Shrub ist auf Wahlkampftour und buhlt um Stimmen bei den Puritanern. -{=================================== MISSION TABLE CRED01 ===================================} +[POR3_K:PORN3] +Es heißt, er unterstützt ein Verbot der, sagen wir mal, eher -[CR01_01:CRED01] -~n~ ~n~ ~n~ ~n~CREDITS +[POR3_L:PORN3] +fleischlichen Bereiche der großartigen Unterhaltungsindustrie unseres Landes. -[CR01_02:CRED01] -~n~ ~n~ ~n~ ~n~ROCKSTAR NORTH +[POR3_M:PORN3] +Großartig. -[CR01_03:CRED01] -~n~ ~n~ ~n~ ~n~Producer ~n~Leslie Benzies +[POR3_N:PORN3] +Candy! Du kennst doch Shrub. -[CR01_04:CRED01] -~n~ ~n~ ~n~ ~n~Art Director ~n~Aaron Garbut +[POR3_O:PORN3] +Macht ihr auch ausgefallene Sachen? -[CR01_05:CRED01] -~n~ ~n~ ~n~ ~n~Technical Direction ~n~Obbe Vermeij, Adam Fowler +[POR3_P:PORN3] +Oh ja, oh ja, oh ja! Ja, ja, ja, JA, Oooooooh! -[CR01_06:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~Written By ~n~Dan Houser, James Worrall ~n~ & David Bland +[POR3_Q:PORN3] +Bitte sag, dass du das hast. -[CR01_07:CRED01] -~n~ ~n~ ~n~ ~n~Programming ~n~Alexander Roger, Alexander Illes, ~n~Andrzej Madajczyk, Barane Chan, ~n~Derek Payne, Derek Ward, +[POR3_R:PORN3] +Gehörte das zum, ãh... oder war das die Antwort für... -[CR01_08:CRED01] -~n~ ~n~Gordon Yeoman, Graeme Williamson, ~n~Greg Smith, James Broad, ~n~John Gurney, John Whyte, +[POR3_S:PORN3] +Hey, ich kann das nie unterscheiden. Jedenfalls... -[CR01_09:CRED01] -~n~ ~n~Keith McLeman, Mark Nicholson, ~n~Shaun McKillop +[POR3_T:PORN3] +Das beste wird sein, du folgst ihr nach dem Dreh. -[CR01_10:CRED01] -~n~ ~n~ ~n~ ~n~Audio Programmer ~n~Matthew Smith +[POR3_U:PORN3] +Mal sehen, ob sie dich zu ihrem neuen Liebesnest führt. -[CR01_11:CRED01] -~n~ ~n~ ~n~ ~n~Sound Design and Mastering ~n~Allan Walker +[POR3_V:PORN3] +Hast du eine Kamera? -[CR01_12:CRED01] -~n~ ~n~ ~n~ ~n~Lead Cut Scene Animator ~n~Mondo Ghulam +[POR3_X:PORN3] +Ja. Gebt ihm eine Kamera. -[CR01_13:CRED01] -~n~ ~n~ ~n~ ~n~Cut Scene Animator ~n~Dermot Bailie +[POR3_02:PORN3] +~r~Du hast den Abgeordneten erledigt! Jetzt kannst du ihn nicht mehr erpressen. -[CR01_14:CRED01] -~n~ ~n~ ~n~ ~n~Character Animator ~n~Felipe Busquets +[POR3_03:PORN3] +~r~Du hast die Bodyguards des Abgeordneten aufgescheucht. Sie werden ihn sofort wegbringen. -[CR01_15:CRED01] -~n~ ~n~ ~n~ ~n~In-Game Animation ~n~Gus Braid, Terry Kenny +[POR3_04:PORN3] +Candy, könntest du mich Martha nennen? -[CR01_16:CRED01] -~n~ ~n~ ~n~ ~n~Characters Artist ~n~Ian McQue +[POR3_05:PORN3] +Oh, Alex - ich meine Martha - ich tu alles, was du willst. -[CR01_17:CRED01] -~n~ ~n~ ~n~ ~n~Vehicle Artist ~n~Joylon Orme +[POR3_06:PORN3] +Martha, jemand sieht uns zu. Wie erregend. -[CR01_18:CRED01] -~n~ ~n~ ~n~ ~n~Additional Art ~n~Rick Stirling, Alisdair Wood +[POR3_07:PORN3] +Sie da! Geben Sie mir die Kamera. -[CR01_19:CRED01] -~n~ ~n~ ~n~ ~n~Music Producer ~n~Craig Conner +[POR3_01:PORN3] +~g~Folge Candys ~h~Stretch-Limo~g~. -[CR01_20:CRED01] -~n~ ~n~ ~n~ ~n~Audio Design and Dialogue Editor ~n~Will Morton +[POR3_15:PORN3] +~r~Du hast Candys Stretch-Limo geschrottet! -[CR01_21:CRED01] -~n~ ~n~ ~n~ ~n~Additional Dialogue Editor ~n~Jon McCavish +[POR3_17:PORN3] +~g~Begib dich mit dem Film zurück ins Pornostudio. -[CR01_22:CRED01] -~n~ ~n~ ~n~ ~n~Development Support ~n~Milly Cottam +[POR3_19:PORN3] +~r~Der Film ist alle! -[CR01_23:CRED01] -~n~ ~n~ ~n~ ~n~Graphic Designers ~n~Stuart Petri, Steve Walsh +[POR3_21:PORN3] +~g~Du hast Candys Stretch-Limo verloren! -[CR01_24:CRED01] -~n~ ~n~ ~n~ ~n~Lead Level Design ~n~William Mills +[POR3_22:PORN3] +~g~Das WK Chariot Hotel gegenüber seines Balkons dürfte eine ideale Position zum Fotografieren bieten. -[CR01_25:CRED01] -~n~ ~n~ ~n~ ~n~Level Design ~n~Chris Rothwell, Andy Duthie, ~n~Chris McMahon, Neil Ferguson +[POR3_23:PORN3] +~g~Es gibt eine Seitentür, durch die du in das Hotel kommst. -[CR01_26:CRED01] -~n~ ~n~ ~n~ ~n~QA Manager ~n~Craig Arbuthnott +[POR3_08:PORN3] +Halte die~h~ ~k~~PED_LOCK_TARGET~ ~w~gedrückt, um mit der Kamera zu ~h~zielen~w~. -[CR01_27:CRED01] -~n~ ~n~ ~n~ ~n~Senior Lead Test ~n~Neil Corbett +[POR3_09:PORN3] +Halte die~h~ ~k~~PED_LOCK_TARGET~ ~w~gedrückt, um mit der Kamera zu ~h~zielen~w~. -[CR01_28:CRED01] -~n~ ~n~ ~n~ ~n~Lead Test ~n~David Murdoch, Neil Meikle, ~n~Alex Bazlinton, Brenda Carey +[POR3_10:PORN3] +Drücke die~h~ ~k~~PED_SNIPER_ZOOM_IN~~w~, um ~h~heranzuzoomen ~w~und die~h~ ~k~~PED_SNIPER_ZOOM_OUT~~w~, um wieder ~h~wegzuzoomen~w~. -[CR01_29:CRED01] -~n~ ~n~ ~n~ ~n~Build Engineer / Lead Test ~n~Neil Walker +[POR3_11:PORN3] +Drücke die~h~ ~k~~PED_SNIPER_ZOOM_IN~~w~, um ~h~heranzuzoomen ~w~und die~h~ ~k~~PED_SNIPER_ZOOM_OUT~~w~, um wieder ~h~wegzuzoomen~w~. -[CR01_30:CRED01] -~n~ ~n~ ~n~ ~n~Audio Test ~n~George Williamson +[POR3_12:PORN3] +Drücke die~h~ ~k~~PED_FIREWEAPON~~w~, um ein Bild zu machen. -[CR01_31:CRED01] -~n~ ~n~ ~n~ ~n~Test ~n~Brian Kelly, Lindsay Robertson, ~n~Sundram Soosay, Eugene Kuczerepa, ~n~Christopher Soosay, Ben Abbott, +[POR3_13:PORN3] +Drücke die~h~ ~k~~PED_FIREWEAPON~~w~, um ein Bild zu machen. -[CR01_32:CRED01] -~n~ ~n~Oliver Elliott, Louis Dinan, ~n~Bobby Wright, Thomas Philips, ~n~Nick Rees, Ivor Williams +[POR3_14:PORN3] +Drücke die~h~ ~k~~PED_FIREWEAPON~~w~, um ein Bild zu machen. -[CR01_33:CRED01] -~n~ ~n~ ~n~ ~n~Test Tools Programming ~n~James Whitcroft, Alex Carter +[POR3_20:PORN3] +~g~Wenn du ein Transportmittel brauchst, nimm den ~h~Sparrow~g~ hinter dem Haus. -[CR01_34:CRED01] -~n~ ~n~ ~n~ ~n~IT Manager ~n~Lorraine Roy +[POR3_16:PORN3] +~g~Du brauchst drei gute kompromittierende Fotos von Alex Shrub mit Candy. -[CR01_35:CRED01] -~n~ ~n~ ~n~ ~n~IT Support ~n~Christine Chalmers, Dave Bruce +[POR3_24:PORN3] +GESCHOSSENE FOTOS: -[CR01_36:CRED01] -~n~ ~n~ ~n~ ~n~Studio Director ~n~Andrew Semple +{=================================== MISSION TABLE PORN4 ===================================} -[CR01_37:CRED01] -~n~ ~n~ ~n~ ~n~Office Administration ~n~Kim Gurney +[POR4_A:PORN4] +Tut mir leid, ich kann das jetzt nicht schlucken. -[CR01_38:CRED01] -~n~ ~n~ ~n~ ~n~Administration Support ~n~Charlene Maguire, Kim Wilson +[POR4_B:PORN4] +Ach KOMM, Darling! -[CR02_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ROCKSTAR LEEDS +[POR4_C:PORN4] +Der ist ausgestattet wie ein Pottwal, Herrgott noch mal, -[CR02_02:CRED01] -~n~ ~n~ ~n~ ~n~Studio Director ~n~Gordon Hall +[POR4_D:PORN4] +wie kannst du dich da nicht einfühlen?! -[CR02_03:CRED01] -~n~ ~n~ ~n~ ~n~Head of Development ~n~David Box +[POR4_E:PORN4] +Aber Stevie... -[CR02_04:CRED01] -~n~ ~n~ ~n~ ~n~Lead Programming ~n~Andrew Greensmith, Matthew Shepcar ~n~ ~n~ ~n~ ~n~Console Programming ~n~Nigel Conroy, Richard Frankish, ~n~Andrew Greensmith, Robin Mangham, ~n~Damian McKenna, Finlay Munro, ~n~Stuart Roskell, Matthew Shepcar +[POR4_F:PORN4] +Wie geht's meinem Starregisseur? -[CR02_05:CRED01] -~n~ ~n~ ~n~ ~n~Programming ~n~Jon Bellamy, Ross Childs, ~n~Nigel Conroy, Neil Dodwell, ~n~Alastair Dukes, David Huebner, +[POR4_G:PORN4] +Oh Mann. Der Kampf zwischen künstlerischer Ambition und -[CR02_06:CRED01] -~n~ ~n~Robin Mangham, Jason McGann, ~n~Warren Merrifield, Stephen McGreal +[POR4_H:PORN4] +diesem Rumgenudle tobt unvermindert. -[CR02_07:CRED01] -~n~ ~n~ ~n~ ~n~Sound Programming ~n~Finlay Munro, Charles Waddington +[POR4_I:PORN4] +Und bevor du fragst: Ja, alle vier Videos werden veröffentlicht, wenn... -[CR02_08:CRED01] -~n~ ~n~ ~n~ ~n~Art Director ~n~Ian Bowden +[POR4_J:PORN4] +Schãtzchen, kannst du BITTE die Anaconda im Bild halten, -[CR02_09:CRED01] -~n~ ~n~ ~n~ ~n~Art Department Director ~n~Chris Smart +[POR4_K:PORN4] +die kostet pro Stunde mehr als du! -[CR02_10:CRED01] -~n~ ~n~ ~n~ ~n~Lead Character Artist ~n~Paul Smith +[POR4_L:PORN4] +Oh, sorry, Steve. -[CR02_11:CRED01] -~n~ ~n~ ~n~ ~n~Character Artist ~n~Chris Allison +[POR4_M:PORN4] +Ich hab mir gedacht, als Werbung für den Start brauchen wir einen richtigen Knaller. -[CR02_12:CRED01] -~n~ ~n~ ~n~ ~n~Lead City Artist ~n~Dan Roberts +[POR4_N:PORN4] +Irgendwas, was so richtig Furore macht in der Stadt. Hast du eine Idee? -[CR02_13:CRED01] -~n~ ~n~ ~n~ ~n~City Artists ~n~Paul McKee, James McHale, ~n~Siu Lee +[POR4_O:PORN4] +Na ja, früher gab's da immer Galas, -[CR02_14:CRED01] -~n~ ~n~ ~n~ ~n~Cutscene Interiors ~n~Izzy Stewart +[POR4_P:PORN4] +Stars, Limos, riesige Suchscheinwerfer am Nachthimmel... -[CR02_15:CRED01] -~n~ ~n~ ~n~ ~n~Concept Artist ~n~John Wigley +[POR4_Q:PORN4] +Suchscheinwerfer? Ich hab eine Idee... -[CR02_16:CRED01] -~n~ ~n~ ~n~ ~n~Additional Character Animation ~n~Alan Bowker +[POR4_R:PORN4] +....ja, ja, ja. Die heißen Mãdels mit ihren Paillettenkleidern und die Limos, oh, Premieren. -[CR02_17:CRED01] -~n~ ~n~ ~n~ ~n~Additional Artists ~n~Andy Walker, Jason Gee, ~n~Chris Edwards, Lee Clark +[POR4_S:PORN4] +O ja, Ma'am, natürlich, Ma'am, -[CR02_18:CRED01] -~n~ ~n~ ~n~ ~n~Design Director ~n~David Bland +[POR4_T:PORN4] +Und die Presse und die Lichter-Flut... -[CR02_19:CRED01] -~n~ ~n~ ~n~ ~n~Lead Level Design ~n~John Li +[POR4_01:PORN4] +~g~Begib dich nach ~y~Downtown~g~und richte den Scheinwerfer auf dem Gebãude aus. -[CR02_20:CRED01] -~n~ ~n~ ~n~ ~n~Senior Level Design ~n~Tony Gowland, Martyn Bramall +[POR4_02:PORN4] +~g~Du brauchst ein schnelles Bike, um von Dach zu Dach zu springen. Der Wachmann fãhrt immer mit einer ~y~PCJ 600~g~zur Arbeit... -[CR02_21:CRED01] -~n~ ~n~ ~n~ ~n~Level Design ~n~Sam Hackett, Stephen Robertson, ~n~Tom Kingsley, Chris Edwards, ~n~Kris Gormley +[POR4_03:PORN4] +~g~Du wirst auf die Gebãudedãcher müssen. In eines der oberen Büros sollte ein Lift führen... -[CR02_22:CRED01] -~n~ ~n~ ~n~ ~n~Associate Designer ~n~Mark McGinley +[POR4_06:PORN4] +~g~Kehre in das tiefer gelegene Büro zurück, wenn du noch mal auf die Dãcher musst. -[CR02_23:CRED01] -~n~ ~n~ ~n~ ~n~QA Manager ~n~Paul Colls +[POR4_07:PORN4] +~g~Du brauchst ein Motorrad, um von Gebãude zu Gebãude zu springen. -[CR02_24:CRED01] -~n~ ~n~ ~n~ ~n~QA ~n~Jody Cobb, ~n~ ~n~Luke Brown, Nick Robey, ~n~Matthew Haven +[POR4_08:PORN4] +~g~Brich durch das Fenster, um zu starten. Du hast bis 07:00 Zeit. Dann wird es zu hell, um ungesehen hinaufzukommen. -[CR02_25:CRED01] -~n~ ~n~ ~n~ ~n~Company Secretary ~n~Naomi Martin +[POR4_09:PORN4] +~g~Die Pfeile zeigen dir, zu welchem Gebãude du als nãchstes springen musst. -[CR02_26:CRED01] -~n~ ~n~ ~n~ ~n~IT Manager ~n~Chris Waring +[POR4_10:PORN4] +~r~Es ist zu hell, um ungesehen dort hinaufzukommen. -[CR03_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ROCKSTAR NYC +[POR4_11:PORN4] +Kehre zur Leiter zurück, wenn du noch mal auf die Dãcher musst. -[CR03_02:CRED01] -~n~ ~n~ ~n~ ~n~Executive Producer ~n~Sam Houser +[POR4_05:PORN4] +~g~Diese Treppe führt zu einem tiefer gelegenen Büro. -[CR03_03:CRED01] -~n~ ~n~ ~n~ ~n~VP of Creative ~n~Dan Houser +[POR_AS1:PORN4] +FILMSTUDIO-MISSIONEN ERFÜLLT -[CR03_04:CRED01] -~n~ ~n~ ~n~ ~n~VP of Development ~n~Jamie King +[POR_AS2:PORN4] +~g~Inter Global Films generiert nun bis zu $~1~ Einkünfte. Hol dir das Geld regelmãßig ab. -[CR03_05:CRED01] -~n~ ~n~ ~n~ ~n~Art Director ~n~Alex Horton +{=================================== MISSION TABLE PROT1 ===================================} -[CR03_06:CRED01] -~n~ ~n~ ~n~ ~n~Chief Technology Officer ~n~Gary J. Foreman +[PRO1_A:PROT1] +Oh, wir müssen diesen Laden umbauen. Das muss ãlter aussehen. -[CR03_07:CRED01] -~n~ ~n~ ~n~ ~n~Associate Producer ~n~Rich Rosado +[PRO1_B:PROT1] +Ich kann diesen Look nicht ab, Tommy. Was meinst du, sollen wir eine Bar einbauen..? -[CR03_08:CRED01] -~n~ ~n~ ~n~ ~n~Director of Quality Assurance ~n~Jeff Rosa +[PRO1_D:PROT1] +Hört mal. -[CR03_09:CRED01] -~n~ ~n~ ~n~ ~n~Senior Lead Analyst ~n~Lance Williams +[PRO1_E:PROT1] +Die Zeit ist gekommen, die Stadt zu übernehmen. Sie wartet nur auf uns. -[CR03_10:CRED01] -~n~ ~n~ ~n~ ~n~Project Lead ~n~Jameel Vega +[PRO1_F:PROT1] +Wir müssen langsam Gebiete einnehmen. -[CR03_11:CRED01] -~n~ ~n~ ~n~ ~n~Rockstar Test Team ~n~Ethan Abeles, William Rompf, ~n~Christopher Mansfield, Chris Choi, ~n~Mike Hong, Tamara Carrion, +[PRO1_G:PROT1] +Vice City soll merken, dass wir die neuen Bosse sind, versteht ihr? -[CR03_12:CRED01] -~n~ ~n~Rich Huie, Mike Nathan, ~n~Vance Wallace, Marc Rodriguez, ~n~Adam Tetzloff +[PRO1_H:PROT1] +Jetzt beruhigt euch mal kurz. Allmãhlich kapiere ich schon, wie das ganze hier lãuft. -[CR03_13:CRED01] -~n~ ~n~ ~n~ ~n~Business Development Director ~n~Sean Macaluso +[PRO1_I:PROT1] +Was du brauchst, ist eine legale Fassade, Tommy, Immobilien. Hat mir nicht geschadet. -[CR03_14:CRED01] -~n~ ~n~ ~n~ ~n~Soundtrack Supervision ~n~Heinz Henn, Ivan Pavlovich, ~n~Tim Sweeney +[PRO1_J:PROT1] +Wir müssen die Muskeln spielen lassen, sonst war die ganze harte Arbeit umsonst. -[CR04_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~CUT SCENES & DIALOGUE +[PRO1_K:PROT1] +Die Geschãftsleute hier wissen, dass Diaz weg ist und weigern sich, Schutzgeld zu zahlen. -[CR04_02:CRED01] -~n~ ~n~ ~n~ ~n~Motion Capture Director ~n~Navid Khonsari +[PRO1_L:PROT1] +Oh, wir könnten es mit Schmiergeld versuchen... -[CR04_03:CRED01] -~n~ ~n~ ~n~ ~n~Motion Capture Performed by ~n~Danny Mastrogiorgio, Jeffrey C. Hawkins, ~n~Bruce MacVittie, David Zayas, ~n~Peter Appel, Hannah Moon, ~n~Alyssa Truppelli, Joe Lotruglio +[PRO1_M:PROT1] +Schmiergeld? Blödsinn! Ich zeig euch, wie man denen Angst macht. -[CR04_04:CRED01] -~n~ ~n~ ~n~ ~n~Voices Performed by ~n~Salvatore Leone - Frank Vincent ~n~Toni Cipriani - Danny Mastrogiorgio ~n~Donald Love - Will Janowitz +[PRO1_01:PROT1] +~g~Demoliere die Schaufenster der Lãden und die Inhaber werden darum betteln, zahlen zu dürfen. -[CR04_05:CRED01] -~n~ ~n~ Vincenzo Cilli - Joe Lotruglio ~n~Maria Latore - Fiona Gallagher ~n~JD O'Toole - Greg Wilson +[PRO1_03:PROT1] +~r~Du sollst abhauen, nicht Kaffee trinken gehen. -[CR04_06:CRED01] -~n~ ~n~Leon McAffrey - Ron Orbach ~n~Ray Machowski - Peter Appel ~n~Toshiko Kasen - Hannah Moon +[PRO1_04:PROT1] +Mein Lebenswerk! Zerstört! -[CR04_07:CRED01] -~n~ ~n~ Ned Burner - Peter Bradbury ~n~Ma Cipriani - Sondra James ~n~Giovanni Casa - Joel Jones +[PRO1_05:PROT1] +Ich bin ruiniert...RUINIERT!! -[CR04_08:CRED01] -~n~ ~n~Kazuki Kasen - Keenan Shimizu ~n~Massimo Torini - Duccio Faggella ~n~Mickey Hamfists - Chris Tardio +[PRO1_06:PROT1] +Ich zahle einen Haufen Schutzgeld! -[CR04_09:CRED01] -~n~ ~n~Jane Hopper - Gordana Rashovich ~n~Mayor O'Donovan - John Braden ~n~8 Ball - Guru +[PRO1_07:PROT1] +Mein schönes Schaufenster! -[CR04_10:CRED01] -~n~ ~n~Radio Newscaster - Sharon Washington ~n~TV Reporter - Brooke Alexander +[PRO1_08:PROT1] +Mein Laden! Mein schöner Laden! -[CR04_11:CRED01] -~n~ ~n~ ~n~ ~n~Pedestrian Dialogue ~n~Una Cruickshank, Gregory Johnson, ~n~Sanford Santacroce, Ayana Osada +[PRO1_09:PROT1] +Vercetti. Merkt euch den Namen. -[CR04_12:CRED01] -~n~ ~n~ ~n~ ~n~Pedestrian Voices ~n~Jamie Hector, Jackson Loo, ~n~Bruce MacVittie, Jeff Gurner, ~n~Jamie Hector, Andrea Kessler, +[PRO1_10:PROT1] +Ich bin jetzt der Boss in der Stadt. ICH! -[CR04_13:CRED01] -~n~ ~n~Lynne Horton, Phil Mikkelson, ~n~Koji Nonoyama, Devin Bennett, ~n~Jay Capozello, Mike Nathan, +[BUYP1:PROT1] +Du kannst jetzt in bestimmten Gegenden auf der Karte Objekte kaufen. -[CR04_14:CRED01] -~n~ ~n~Ethan Abeles, Lance Williams, ~n~Natalya Wilson, Jay Gladstone, ~n~Craig Blair, Dave Edwards, +[BUYP2:PROT1] +Wenn du ein Gebãude mit grüner Markierung siehst, kannst du dieses kaufen. -[CR04_15:CRED01] -~n~ ~n~Gregory Johnson, John Zurhellen, ~n~Blair Sadler, Georgia Sadler, ~n~Nicole Sadler, Judy Henderson, +[PRO1_N:PROT1] +Ich bin in fünf Minuten zurück... -[CR04_16:CRED01] -~n~ ~n~Kim Graham, Kerry Shaw, ~n~Tamara Carrion, Franceska Clemens, ~n~Navid Khonsari, Noelle Sadler, +[PRO1_11:PROT1] +~g~Begib dich zum ~y~North Point Einkaufszentrum~g~ in ~y~Vice Point~g~. -[CR04_17:CRED01] -~n~ ~n~Nicholas Mongomery, Anthony Macbain, ~n~Ryan Rayhill, Josh Slater, ~n~Carmelo Gaeta, Hikari Yokoyama, +[PRO1_12:PROT1] +~g~Zerbrich die Schaufenster eines jeden Ladens, und die Inhaber werden um neuen Schutz betteln. -[CR04_18:CRED01] -~n~ ~n~Chris Jobin, Michael Rothstein, ~n~Stacey Rachels, Jennifer Koontz, ~n~Dan Merrill, Ali Khonsari, +[PRO1_C:PROT1] +Du bist mein Anwalt, nicht mein Innenarchitekt. Klar? -[CR04_19:CRED01] -~n~ ~n~Ellen Rose, Chris Standal, ~n~Lorie Goodman, Neal Johnston, ~n~Son Garth, James Larsen, +[BUYP3:PROT1] +Stell dich in die Markierung und drücke die ~h~~k~~PED_ANSWER_PHONE~~w~-Taste, um das Objekt zu kaufen. -[CR04_20:CRED01] -~n~ ~n~Karl Weibel, Ramin Khonsari, ~n~Ed. Thomas Jr., Stanton Sargent, ~n~Oswald Greene, Audrey Amey, +[PRO1_13:PROT1] +~g~Du hast fünf Minuten, um alle zu demolieren. -[CR04_21:CRED01] -~n~ ~n~Sanford Santacroce, Jeff Madrick, ~n~Ben Weaver, Andrea Kessler, ~n~CS Lee, Yoshi Amao, +{=================================== MISSION TABLE PROT2 ===================================} -[CR04_22:CRED01] -~n~ ~n~ Jackson Loo, Martha Morrison, ~n~Sarah Bloodsworth, Adam Deher, ~n~Billy Gonzalez +[PRO2_01:PROT2] +~g~Schalte die Wachen aus, die die Front Page Bar beschützen und finde raus, wer hinter ihnen steckt. -[CR04_23:CRED01] -~n~ ~n~ ~n~ ~n~Additional Motion Graphics ~n~Maryam Parwana +[PRO2_08:PROT2] +~g~Die DBP Security wird wissen, dass du kommst. Schnapp sie dir, ehe sie abhauen. -[CR04_24:CRED01] -~n~ ~n~ ~n~ ~n~Dialogue Recording & Mixing ~n~Nicholas Montgomery +[PRO2_A:PROT2] +Was gibt's für Probleme? -[CR04_25:CRED01] -~n~ ~n~ ~n~ ~n~Foley Recording ~n~Bryan Scibinico +[PRO2_B:PROT2] +Eine Bar weigert sich zu zahlen. -[CR04_26:CRED01] -~n~ ~n~ ~n~ ~n~Foley recorded at Dig It Studios +[PRO2_C:PROT2] +Die glauben, die werden von so einer Schlãgerbande beschützt. -[CR04_27:CRED01] -~n~ ~n~ ~n~ ~n~Production Team ~n~Noelle Sadler, Eli Weissman, ~n~Kerry Shaw, John Zurhellen, ~n~Peter Adler, Anthony Carvalho, +[PRO2_D:PROT2] +Aber keine Sorge, Tommy, ich regle das. -[CR04_28:CRED01] -~n~ ~n~Phil Poli, Jaesun Celebre, ~n~Franceska Clemens, Anthony Litton +[PRO2_E:PROT2] +Das nennst du regeln? -[CR04_29:CRED01] -~n~ ~n~ ~n~ ~n~Casting ~n~Judy Henderson and Associates +[PRO2_F:PROT2] +Ihr zwei. Hebt mal den Hintern... -[CR04_30:CRED01] -~n~Motion Capture recorded at Perspective Studios +[PRO2_G:PROT2] +Los. -[CR05_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~RADIO +[PRO2_10:PROT2] +Zwei sind abgehauen. Finde sie und bring die Sache zuende. -[CR05_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ Banter, Talk Radio, Commercials and Imaging written by ~n~Dan Houser and Lazlow +[PRO2_11:PROT2] +Steig in den Wagen, Nichtsnutz. -[CR05_03:CRED01] -~n~ ~n~ ~n~ ~n~Production by ~n~Lazlow +[PRO2_02:PROT2] +Dein Schutz braucht ein bisschen mehr Schutz. -[CR05_04:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~LCFR +[PRO2_03:PROT2] +Ach, verdammt! Nicht schon wieder! Das brauche ich wirklich nicht! -[CR05_05:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voices ~n~Smith Harrison, Karen Saltus +[PRO2_04:PROT2] +Diese Idioten arbeiten eigentlich für die DBP Security gleich um die Ecke. -[CR05_06:CRED01] -~n~ ~n~ ~n~ ~n~Heartland Values with Nurse Bob ~n~Nurse Bob - Chuck Montgomery +[PRO2_05:PROT2] +Macht ihr das mal unter euch aus. -[CR05_07:CRED01] -~n~ ~n~ ~n~ ~n~Guests and Callers ~n~Ayana Osada, Nick Montgomery, ~n~Russell Lewis, Nick Born, ~n~Sean Macaluso, Kerry Shaw, +[PRO2_06:PROT2] +Wir sehen uns. -[CR05_08:CRED01] -~n~ ~n~Chad Johnson, Craig Conner, ~n~Mary Elizabeth, Rob Cross, ~n~Josh Bitney +[PRO2_07:PROT2] +Ja, ja. Wenn's sein muss. -[CR05_09:CRED01] -~n~ ~n~ ~n~ ~n~Electron Zone ~n~Steve - Ptolemy Slocum ~n~Bill - Michael Urichek +[PRO2_09:PROT2] +~g~Begib dich zur Front Page Bar und sprich mit dem Besitzer. -[CR05_10:CRED01] -~n~ ~n~ ~n~ ~n~Callers ~n~Alice Saltzman, Jeremy Wheaton, ~n~Ryan Rayhill, Maine Anderson, ~n~Patton Oswalt, Wil Wheaton, ~n~Anthony Cumia, Madena Parwana +{=================================== MISSION TABLE PROT3 ===================================} -[CR05_11:CRED01] -~n~ ~n~ ~n~ ~n~Breathing World ~n~Lee Chowder - Ashley Albert ~n~Crow - Gregg Martin +[PRO3_A:PROT3] +Du Trottel! Was hast du dir dabei gedacht?! -[CR05_12:CRED01] -~n~ ~n~ ~n~ ~n~Coq 'O' Vin ~n~Richard Goblin - Mike Shapiro +[PRO3_B:PROT3] +Ist dir klar, was das bedeutet?! -[CR05_13:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voice ~n~Ben Krech +[PRO3_C:PROT3] +Das könnte das Ende für uns alle sein! -[CR05_14:CRED01] -~n~ ~n~ ~n~ ~n~Callers ~n~Franceska Clemins, Sarah Bloodsworth, ~n~Adam Deher, Martha Morrison, ~n~Carmelo Gaeta +[PRO3_D:PROT3] +Der Zeitzünder muss hin gewesen sein. -[CR05_15:CRED01] -~n~ ~n~ ~n~ ~n~Chatterbox ~n~Lazlow as himself +[PRO3_E:PROT3] +Der Laden war mit Sprengstoff vollgepackt wie eine Feuerwerkfabrik. -[CR05_16:CRED01] -~n~ ~n~ ~n~ ~n~Callers ~n~Susan Lewis, Ben Weaver, ~n~Jacky Bam Bam, Ben Sparks, ~n~Deanna Moyer, Liezl Jacinto, +[PRO3_F:PROT3] +Dann hat jemand den Cops einen Tipp gegeben... -[CR05_17:CRED01] -~n~ ~n~Joshua Batista, Gregg Opie Hughes, ~n~Sondra James, Elizabeth Satterwhite +[PRO3_G:PROT3] +Was gibt's für Probleme, Jungs? -[CR06_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~HEAD RADIO +[PRO3_H:PROT3] +Mike sollte einen Laden im Einkaufszentrum abfackeln, -[CR06_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Michael Hunt - Russ Mottla +[PRO3_I:PROT3] +aber er hat's vermasselt und jetzt wimmelt es dort von Bullen. -[CR06_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voices ~n~Jeff Berlin, Katelyn Hutchinson +[PRO3_J:PROT3] +Wir müssen unser Zeug holen und verschwinden! -[CR06_04:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Production ~n~Jeff Berlin +[PRO3_K:PROT3] +Langsam, ihr beiden, lasst mich kurz nachdenken! -[CR06_05:CRED01] -~n~ ~n~ ~n~ ~n~"Train" ~n~Conor & Jay ~n~Written by Craig Conner & Julie Wemyss ~n~Produced by Craig Conner ~n~Guitars by Jon McCavish ~n~Vocals by Julie Wemyss and Craig Conner +[PRO3_L:PROT3] +Tommy Vercetti lãuft nicht einfach weg. -[CR06_06:CRED01] -~n~ ~n~ ~n~ ~n~"The One For Me" ~n~Cloud Nineteen ~n~Written & Produced by ~n~Will Morton ~n~Additional Lyrics by Paul Mackie ~n~Guitars by Allan Walker & Chris Morton ~n~Lead Vocals by Raff ~n~Backing Vocals by Paul Mackie & Raff +[PRO3_M:PROT3] +Die Cops werden das Gebãude sorgfãltig durchkãmmen, oder? -[CR06_07:CRED01] -~n~ ~n~ ~n~ ~n~"Take The Pain" ~n~Purser ~n~Written & Produced by ~n~Will Morton, Chris Morton ~n~Additional Lyrics by Paul Mackie ~n~Lead Vocals by Paul Mackie ~n~Additional Vocals by Will Morton +[PRO3_N:PROT3] +Aber das dauert. -[CR06_08:CRED01] -~n~ ~n~ ~n~ ~n~"Free Yourself" ~n~L-Marie featuring Raff ~n~Written & Produced by Craig Conner ~n~Vocals by L-Marie and Raff ~n~Backing Vocals by Craig Conner +[PRO3_O:PROT3] +Wir müssen den Laden selbst abfackeln. -[CR06_09:CRED01] -~n~ ~n~ ~n~ ~n~"Drive" ~n~15 Ways ~n~Written & Produced by Colin Entwistle ~n~Vocals by Paul Mackie +[PRO3_P:PROT3] +Ja, aber... -[CR06_10:CRED01] -~n~ ~n~ ~n~ ~n~"Welcome To The Real World" ~n~Rosco Stow ~n~Written & Produced by Craig Conner ~n~Guitars Written, Produced and Performed by Allan Walker ~n~Lead Vocals by Andy Dorrat ~n~Backing Vocals by Craig Conner, ~n~Anna Stuart and Kim Gurney +[PRO3_Q:PROT3] +Nur ein Cop kommt auch nur in die Nãhe von dem Laden! -[CR06_11:CRED01] -~n~ ~n~ ~n~ ~n~"Keep Dreaming" ~n~Vanilla Smoothie ~n~Written & Produced by ~n~Alastair MacGregor ~n~Guitars by Allan Walker ~n~Vocals by Fiona Stoddart +[PRO3_R:PROT3] +Dann gehen wir eben als Cops. -[CR07_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~LIPS 106 +[PRO3_S:PROT3] +Wir brauchen Uniformen und einen Streifenwagen. -[CR07_02:CRED01] -~n~ ~n~ ~n~ ~n~DJs ~n~Cliff - Ed McMann ~n~Andee - Shelley Miller +[PRO3_T:PROT3] +Und das alles nur wegen dir, Mike. -[CR07_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voice ~n~Jonathan Hanst +[PRO3_U:PROT3] +Tut mir leid. -[CR07_04:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Production ~n~Jonathan Hanst +[PRO3_V:PROT3] +Ich hab's. -[CR07_05:CRED01] -~n~ ~n~ ~n~ ~n~"Funk In Time" ~n~Rudy La Fontaine ~n~Written & Produced by Jon McCavish ~n~Guitars by Julian Pais ~n~Vocals by Julian Pais +[PRO3_W:PROT3] +Wir müssen die Cops hereinlocken, -[CR07_06:CRED01] -~n~ ~n~ ~n~ ~n~"Love Is The Feeling" ~n~Sawarr ~n~Written by Craig Conner & Julie Wemyss ~n~Produced by Craig Conner ~n~Vocals by Julie Wemyss +[PRO3_X:PROT3] +dann sperren wir sie ein -[CR07_07:CRED01] -~n~ ~n~ ~n~ ~n~"Mine Until Monday" ~n~Sunshine Shine ~n~Written & Produced by Will Morton ~n~Additional Lyrics by Paul Mackie ~n~Vocals by Paul Mackie & Raff +[PRO3_Y:PROT3] +und überwãltigen sie. -[CR07_08:CRED01] -~n~ ~n~ ~n~ ~n~"Get Down" ~n~Credit Check ~n~Written & Produced by ~n~Alastair MacGregor ~n~Guitars by Martyn Livingstone ~n~Bass by Andy Wilson ~n~Vocals by Louise Ferrier +[PRO3_Z:PROT3] +Guter Plan. Los geht's! -[CR07_09:CRED01] -~n~ ~n~ ~n~ ~n~"Tonight" ~n~Cool Timers ~n~Written & Produced by Craig Conner ~n~Vocals by Julie Wemyss +[PRO3_A1:PROT3] +Ok. -[CR07_10:CRED01] -~n~ ~n~ ~n~ ~n~"Bassmatic" ~n~Nina Barry ~n~Written & Produced by Jon McCavish ~n~Vocals by Riz Maslen +[PRO3_01:PROT3] +Ok, Lance, machen wir die Cops auf uns aufmerksam! -[CR07_11:CRED01] -~n~ ~n~ ~n~ ~n~"Into Something (C'mon Get Down)" ~n~The Jackstars ~n~Written & Produced By ~n~Craig Conner ~n~Vocals by Lucie Danti-Juan ~n~Backing vocals by ~n~Kevin Stacey & Craig Conner +[PRO3_02:PROT3] +~g~ Nimm den Streifenwagen und lege die Bombe im Tarbrush Coffee Shop im Einkaufszentrum. -[CR08_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~DOUBLE CLEF FM +[PRO3_03:PROT3] +~g~Du hast Lance vergessen. Hole ihn. -[CR08_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Sergio Boccino - Robert Blumenfeld +[PRO3_04:PROT3] +~g~ Los geht's. -[CR08_03:CRED01] -~n~ ~n~ ~n~ ~n~Caller ~n~Gerald Cosgrove +[PRO3_05:PROT3] +~r~Du hast Lance erledigt! -[CR08_04:CRED01] -~n~ ~n~ ~n~ ~n~"Il Trovatore: Anvil Chorus" ~n~Composed by Giuseppe Verdi ~n~Performed by ~n~Nuremberg Symphonic Orchestra ~n~& Munich State Opera Choir ~n~Courtesy of Point Classics, LLC +[PRO3_07:PROT3] +~g~Die Tarnung ist aufgeflogen. Beeilung, platziere die Bombe! -[CR08_05:CRED01] -~n~ ~n~ ~n~ ~n~"Il Trovatore: Tacea la notte placida" ~n~Composed by Giuseppe Verdi ~n~Performed by ~n~Nuremberg Symphonic Orchestra & ~n~Munich State Opera Choir ~n~(Eva Illes, Soprano) ~n~Courtesy of Point Classics, LLC +[PRO3_09:PROT3] +Fessle und kneble sie! -[CR08_06:CRED01] -~n~ ~n~ ~n~ ~n~"Nabucco: Chorus of the Hebrew Slaves" ~n~Composed by Giuseppe Verdi ~n~Performed by Philharmonia Slavonica ~n~Courtesy of Point Classics, LLC +[PRO3_10:PROT3] +Uuh! Passt perfekt! -[CR08_07:CRED01] -~n~ ~n~ ~n~ ~n~"Così fan tutte: È amore un ladroncello" ~n~Composed by Wolfgang Amadeus Mozart ~n~Performed by ~n~Bratislava Opera Soloists, ~n~Choir and Orchestra ~n~(Ida Kirilova "Dorabella") ~n~Courtesy of Point Classics, LLC +[PRO3_11:PROT3] +Bisschen eng im Schritt vielleicht... -[CR08_08:CRED01] -~n~ ~n~ ~n~ ~n~"Marriage of Figaro: Overture" ~n~Composed by Wolfgang Amadeus Mozart ~n~Performed by ~n~London Philharmonic Orchestra ~n~Courtesy of Point Classics, LLC +[PRO3_12:PROT3] +Oh ja, ja. Meine auch, meine auch. -[CR08_09:CRED01] -~n~ ~n~ ~n~ ~n~"I Pagliacci: Vesti la giubba" ~n~Composed by Ruggiero Leoncavallo ~n~Performed by ~n~Nuremberg Symphonic Orchestra ~n~(José Maria Perez, Tenor) ~n~Courtesy of Point Classics, LLC +[PRO3_13:PROT3] +Vorsicht, Bruder! Kein Cop fãhrt so schlecht! -[CR09_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~RISE FM +[PRO3_14:PROT3] +Denk dran, lãchle die anderen Cops an. -[CR09_02:CRED01] -~n~ ~n~ ~n~ ~n~Engineered by Mike Callaghan +[PRO3_15:PROT3] +Hallo, Officer. Hübsche Marke, hübsche Marke. -[CR09_03:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Boy Sanchez - Oliver Vaquer +[PRO3_16:PROT3] +Ganz toll, Lance. -[CR09_04:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voices ~n~DJ Andre, Lupus Thunder, ~n~Andi Hanley, Mat Ckillz, ~n~Couzin Ed, Lazlow, +[PRO3_17:PROT3] +Ok, die Zünder sind auf 5 Sekunden gestellt. -[CR09_05:CRED01] -~n~ ~n~Terry Donovan, Bill Brissette, ~n~Juan Aller, Ed Andrews, ~n~Xeni Jardin, Matthew Orr, ~n~Jeff Berlin +[PRO3_18:PROT3] +5 Sekunden?!! Nichts wie raus hier! -[CR09_06:CRED01] -~n~ ~n~ ~n~ ~n~"Sing It Back ~n~(Boris Musical Mix)" ~n~Moloko ~n~Written by M. Brydon, R. Murphy ~n~Published by Chrysalis Music (ASCAP) ~n~Remix and Additional Production by ~n~Boris Dlugosch ~n~(p) + © 1998 The Echo Label ~n~Courtesy of Chrysalis Music Limited +[PRO3_19:PROT3] +Jetzt sind sie so richtig stocksauer. -[CR09_07:CRED01] -~n~ ~n~ ~n~ ~n~"Free" ~n~Ultra Nate ~n~Written by U. Nate, L. Springsteen, ~n~J. Ciafone ~n~Published by Warner/ Chappell Music/ BMG Music ~n~(p) + © 1997 Strictly Rhythm Records LLC ~n~Courtesy of Warner Strategic Marketing +[PRO3_20:PROT3] +~g~Bring 2 Cops dazu, dir in die Garage zu folgen. -[CR09_08:CRED01] -~n~ ~n~ ~n~ ~n~"I Believe" ~n~Happy Clappers ~n~Written by C. Scott, G. Ripley, M. Knotts, M. Topham ~n~Published by All Boys Music Ltd ~n~(p) + © 1994 C J Scott Productions ~n~Courtesy of C J Scott Productions +[PRO3_21:PROT3] +~g~Beschaff dir einen Fahndungslevel, damit dir die Cops in die Garage folgen. -[CR09_09:CRED01] -~n~ ~n~ ~n~ ~n~"House Music" ~n~Eddie Amador ~n~Written by Eddie Amador ~n~Published by ~n~Deep Dish Music ~n~(p) + © 1998 Yoshitoshi Records ~n~Courtesy of ~n~Deep Dish Recordings, Inc. ~n~by arrangement with ~n~Nasseri Music Business Solutions +[PRO3_22:PROT3] +~g~Das Garagentor ist blockiert! Du musst es freirãumen, damit es schließen kann. -[CR09_10:CRED01] -~n~ ~n~ ~n~ ~n~"Feel What You Want" ~n~Kristine W ~n~Written by R. Dougan, R. Armstrong, ~n~K. Weitz ~n~Published by BMG Music/Weitz House Publishing (ASCAP)/ EMI Music Publishing ~n~(p) + © 1996 RCA/ BMG ~n~Courtesy of Sony BMG Entertainment +[PRO3_23:PROT3] +~g~Stell dich in die Markierung, um die Bombe zu platzieren. -[CR09_11:CRED01] -~n~ ~n~ ~n~ ~n~"Hideaway ~n~(Deep Dish Vocal Remix)" ~n~De'Lacy ~n~Written by K. Hedge, J. Milan ~n~Published by ~n~Warner-Tamerlane Publishing Corp ~n~Remix and Additional Production by ~n~Deep Dish ~n~(p) 1995 Easy Street Recordings Inc ~n~© 1998 Kickin Music Ltd ~n~Courtesy of Easy Street Recordings Inc. and Slip n' Slide Records +[PRO3_24:PROT3] +~g~Verschwinde aus der Nãhe des Cafés! -[CR09_12:CRED01] -~n~ ~n~ ~n~ ~n~"Spin Spin Sugar ~n~(Armand's Dark Garage Mix)" ~n~Sneaker Pimps ~n~Written by I. Pickering, L. Coverdale Howe, C. Corner ~n~Remix and Additional Production by ~n~Armand Van Helden ~n~Published by BMG Songs, Inc ~n~(p) + © 1997 Clean Up Records Ltd ~n~Courtesy of EMI Music / ~n~One Little Indian, Ltd +[PRO_AS1:PROT3] +SCHUTZGELD-MISSIONEN ERFÜLLT -[CR09_13:CRED01] -~n~ ~n~ ~n~ ~n~"Plastic Dreams" ~n~Jaydee ~n~Written by R. Albers ~n~Published by TBM Holland ~n~(p) 1992 R & S Records ~n~© Robin Albers ~n~Courtesy of Robin "Jaydee" Albers +[PRO_AS2:PROT3] +~g~Das Vercetti Estate generiert nun bis zu $~1~ Einkünfte. Hol dir das Geld regelmãßig ab. -[CR09_14:CRED01] -~n~ ~n~ ~n~ ~n~"Altered States" ~n~Ron Trent ~n~Written by R. Trent ~n~Published by ~n~High Fashion Music/ Nanada Music ~n~(p) + © 1993 Warehouse ~n~Djax-Up Beats ~n~Courtesy of High Fashion Music/ ~n~Djax-Up Beats +[PRO3_08:PROT3] +~g~Du musst zurück zu ~h~Vercetti Estate~g~ auf ~h~Starfish Island~g~. -[CR09_15:CRED01] -~n~ ~n~ ~n~ ~n~"There Will Come A Day (Half Tab Dub)" ~n~The Absolute featuring Suzanne Palmer ~n~Written by M. Pichiotti, C.J. Snider ~n~Published by Much Noyse Music/ ~n~Hoobini Music (ASCAP) ~n~(p) + © 1995 Mark Productions, Inc ~n~Courtesy of Mark Productions, Inc +{=================================== MISSION TABLE RACES ===================================} -[CR09_16:CRED01] -~n~ ~n~ ~n~ ~n~"Positive Education" ~n~Slam ~n~Written by S. McMillan, O. Meikle, ~n~G. Gibbons, J. Muotone ~n~Published by EMI Music Publishing ~n~(p) + © 1997 Soma Recordings Ltd ~n~Courtesy of Soma Recordings Ltd +[RACES_2:RACES] +~g~Du brauchst ein Fahrzeug! Das ist kein Wettlaufen! -[CR09_17:CRED01] -~n~ ~n~ ~n~ ~n~"Flash" ~n~Green Velvet ~n~Written by C. Jones ~n~Published by Curtis A. Jones Music (ASCAP) ~n~(p) 1995 Relief Records ~n~© 2000 Warner Bros. Records and N.E.W.S. Records and Relief Records ~n~Courtesy of Warner Strategic Marketing, N.E.W.S. Records, Relief Records +[RACES_3:RACES] +3..2..1.. LOS, LOS, LOS! -[CR09_18:CRED01] -~n~ ~n~ ~n~ ~n~"Circus Bells (Hardfloor Remix)" ~n~Robert Armani ~n~Written by R. Armani ~n~Published by ~n~High Fashion Music/ Nanada Music ~n~(p) + © 1993 Warehouse/ ~n~Djax-Up Beats ~n~Courtesy of High Fashion Music/ ~n~Djax-Up Beats +[RACES_8:RACES] +~r~Du hast das Rennen nicht gewonnen! -[CR09_19:CRED01] -~n~ ~n~ ~n~ ~n~"Higher State Of Consciousness" ~n~Wink ~n~Written by J. Wink ~n~Published by Strictly Rhythm Publishing, Inc. (ASCAP) / Warner/Chappell Music / Wink Inc. (ASCAP) / EMI Music Publishing ~n~(p) + © 1995 Strictly Rhythm Records LLC ~n~Courtesy of Warner Strategic Marketing +[RACES00:RACES] +Rennen ~1~: -[CR10_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~RADIO DEL MUNDO +[RACES01:RACES] +Todeskaracho -[CR10_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Panjit Gavaskar - Hajaz Akram +[RACES02:RACES] +Ocean Drive -[CR10_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voice ~n~Jessica Wachsman +[RACES03:RACES] +Küsten-Rallye -[CR10_04:CRED01] -~n~ ~n~ ~n~ ~n~"Raghupati (Folk Tune)" ~n~Ananda Shankar ~n~Arranged by A. Shankar, Lewinson, Hassilev ~n~Published by Warner Chappell Inc ~n~(p) + © 1970 Reprise Records for the U.S. and WEA International Inc ~n~Courtesy of Warner Strategic Marketing +[RACES04:RACES] +Capital Cruise -[CR10_05:CRED01] -~n~ ~n~ ~n~ ~n~"Dum Maro Dum" ~n~Asha Bhosle ~n~Written by RD Burman, Anand Bakshi ~n~Published by Saregama India Ltd ~n~(p) + © 1971 Saregama India Ltd ~n~Courtesy of Saregama India Ltd +[RACES05:RACES] +Tour! -[CR10_06:CRED01] -~n~ ~n~ ~n~ ~n~"Neeve Nanna (Only You Were Mine)" ~n~Vijaya Anand ~n~Written by Vijaya Anand ~n~Published by Shake Boom! (ASCAP)/ ~n~Luaka Bop Inc ~n~(p) 1988 Lahari/Audiovision ~n~© 1992 Sire Records Company ~n~Courtesy of ~n~Luaka Bop Records +[RACES06:RACES] +V.C. Endurance -[CR10_07:CRED01] -~n~ ~n~ ~n~ ~n~"Kidda" ~n~Natacha Atlas ~n~Written by N. Atlas, J. Reynolds, J. Adams ~n~Published by Warner Chappell Music Ltd ~n~(p) + © 1997 Nation Records Ltd/ ~n~Beggars Banquet Records Ltd ~n~Courtesy of Nation Records Ltd/ ~n~Beggars Banquet Records Ltd +[RACES07:RACES] +Startgebühr: $~1~ -[CR10_08:CRED01] -~n~ ~n~ ~n~ ~n~"Hebeena Hebeena" ~n~Farid El Atrache ~n~Written by Barakat, Atrache ~n~Published by Voices Of Lebanon ~n~(p) + © 1974 Voices Of Lebanon ~n~Courtesy of EMI Music/ EMI Music Arabia +[RACES08:RACES] +Bestzeit: ~1~:~1~ -[CR10_09:CRED01] -~n~ ~n~ ~n~ ~n~"Aini Bet Ref" ~n~Ahmed Mneimneh ~n~Written by A. Alishaan ~n~Published by D. Dersahakian (ASCAP) ~n~(p) + © Voice of Stars & ~n~Lys Records ~n~Courtesy of Voice of Stars & ~n~Lys Records +[RACES09:RACES] +Beste Platzierung: 1. -[CR10_10:CRED01] -~n~ ~n~ ~n~ ~n~"Im Nin'Alu" ~n~Ofra Haza ~n~Traditional, Arranged by I. Ashdot, B. Nagari ~n~Published by Blue Lake Music ~n~ (p) + © 1988 Sire Records Company ~n~Courtesy of Warner Strategic Marketing +[RACES10:RACES] +Beste Platzierung: 2. -[CR10_11:CRED01] -~n~ ~n~ ~n~ ~n~"Ballaa Tsoubou Hal Kahwa" ~n~Samira Tawfic ~n~Written by R. Al Khylani, J. Al A'ss ~n~Published by Copyright Control ~n~(p) + © Voices Of Lebanon ~n~Courtesy of EMI Music/ EMI Music Arabia +[RACES11:RACES] +Beste Platzierung: 3. -[CR11_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~K-JAH +[RACES12:RACES] +Beste Platzierung: 4. -[CR11_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Natalee Walsh Davis - Pascale Armand +[RACES13:RACES] +Streckenlãnge: ~1~.~1~ km -[CR11_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voices ~n~Karl Weibel, Pat McKay +[RACES15:RACES] +Bestzeit: Nicht verfügbar -[CR11_04:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Production ~n~Jay Wright Productions +[RACES16:RACES] +Beste Platzierung: Nicht verfügbar -[CR11_05:CRED01] -~n~ ~n~ ~n~ ~n~"Pick a Sound" ~n~Selah Collins, Ruddy Ranks, Redeye ~n~Written by S. Collins, H. Burke, ~n~E. Donaldson ~n~Published by Copyright Control/ MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records +[RACES19:RACES] +Du hast nicht genug Geld, um an diesem Rennen teilzunehmen. -[CR11_06:CRED01] -~n~ ~n~ ~n~ ~n~"What a Wonderful Feeling" ~n~Errol Bellot, Ruddy Ranks, Redeye ~n~Written by E. Bellot, H. Burke, ~n~E. Donaldson ~n~Published by MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records +[RACES22:RACES] +Bestzeit: ~1~:0~1~ -[CR11_07:CRED01] -~n~ "Watch How the People Dancing" ~n~Kenny Knots, Ruddy Ranks, Redeye ~n~Written by K. Wright ~n~Published by Jetstar ~n~Courtesy of Honest Jons Records +[RACES23:RACES] +Streckenlãnge: ~1~.~1~ Meilen -[CR11_08:CRED01] -~n~ ~n~ ~n~ ~n~"Lean Boot" ~n~Richie Davis, Ruddy Ranks, Redeye ~n~Written by R. Davis, H. Burke, ~n~E. Donaldson ~n~Published by Westbury Music/ MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records +[RACES_1:RACES] +~g~Schnapp dir ein schnelles Fahrzeug und begib dich zur Startlinie. -[CR11_09:CRED01] -~n~ ~n~ ~n~ ~n~"Ready For the Dancehall Tonight" ~n~Peter Bouncer, Ruddy Ranks, Redeye ~n~Written by Peter McKenzie, H. Burke, ~n~E. Donaldson ~n~Published by MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records +[RACEHLP:RACES] +~w~Drücke die~h~ ~k~~PED_SPRINT~~w~, um das ausgewãhlte Rennen zu starten. Drücke die~h~ ~k~~VEHICLE_ENTER_EXIT~~w~, um abzubrechen. -[CR11_10:CRED01] -~n~ ~n~ ~n~ ~n~"You Ha Fe Cool" ~n~Richie Davis, Ruddy Ranks, Redeye ~n~Written by R. Davis, H. Burke, ~n~E. Donaldson. ~n~Published by Westbury Music/MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records +{=================================== MISSION TABLE RCHELI1 ===================================} -[CR11_11:CRED01] -~n~ ~n~ ~n~ ~n~"Ring My Number" ~n~Kenny Knots, Ruddy Ranks, Redeye ~n~Written by Kenneth Wright, H. Burke, ~n~E. Donaldson. ~n~Published by MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records +[WRECKED:RCHELI1] +~r~Das Fahrzeug ist Schrott! -[CR11_12:CRED01] -~n~ ~n~ ~n~ ~n~"Run Come Call Me" ~n~Kenny Knots, Ruddy Ranks, Redeye ~n~Written by Kenneth Wright, H. Burke, ~n~E. Donaldson ~n~Published by MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records +[RCH1_4:RCHELI1] +Verbleibende Checkpoints: -[CR12_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~THE LIBERTY JAM +[RCH1_7:RCHELI1] +~g~Es gibt insgesamt 20 Checkpoints. -[CR12_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~DJ Clue as himself +[RCH1_12:RCHELI1] +~g~Der ferngesteuerte Helikopter gerãt außer Reichweite! -[CR12_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voices ~n~Jay Wright, Tom Yankowski, Chris Mercado, Vanessa Grullon +[RCH1_13:RCHELI1] +~r~Der ferngesteuerte Helikopter ist außer Reichweite! -[CR12_04:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Production ~n~Jay Wright Productions +[RCH1_8:RCHELI1] { reVC update } +~g~Wenn du diese Mission abbrechen willst, drücke die ~h~~k~~VEHICLE_FIREWEAPON~~g~, um deinen Heli zu sprengen. -[CR12_05:CRED01] -~n~ ~n~ ~n~ ~n~"All I Need" ~n~Method Man ~n~Written by C. Smith, R. Diggs ~n~Published by Sony BMG Music ~n~(p) + © 1994 Def Jam Recordings ~n~Courtesy of Def Jam Recordings/ UME +{=================================== MISSION TABLE RCPLNE1 ===================================} -[CR12_06:CRED01] -~n~ ~n~ ~n~ ~n~"Shook Ones Pt. II" ~n~Mobb Deep ~n~Written by A. Johnson, K. Muchita ~n~Published by ~n~BMG Songs Inc. (ASCAP) ~n~(p) + © 1995 BMG Music ~n~Courtesy of RCA Records by arrangement with Sony BMG Ent +[RCPL1_4:RCPLNE1] +~g~Miss dich mit 3 anderen ferngesteuerten Maschinen in einem CHECKPOINT RENNEN -[CR12_07:CRED01] -~n~ ~n~ ~n~ ~n~"Incarcerated Scarface" ~n~Raekwon ~n~Written by R. Diggs, C. Woods, A. Tilman ~n~Published by ~n~Careers-BMG Music Publishing Inc./ ~n~Wu Tang Publishing (BMI)/ ~n~Bridgeport Music ~n~(p) + © 1995 BMG Music +[RCPL1_5:RCPLNE1] +~g~Flieg durch die Checkpoints, die über Vice City verteilt sind. -[CR12_08:CRED01] -Courtesy of RCA Records by arrangement with Sony BMG Ent ~n~This track contains a sample of "You're Getting A Little Too Smart" as performed by The Detroit Emeralds. Courtesy of Westbound Records. Used by permission. All rights reserved +[RCPL1_6:RCPLNE1] { reVC update } +~g~Wenn du diese Mission abbrechen willst, drücke die ~h~~k~~VEHICLE_FIREWEAPON~~g~, um dein Flugzeug zu sprengen. -[CR12_09:CRED01] -~n~ ~n~ ~n~ ~n~"N.O.R.E." ~n~Noreaga ~n~Written by V. Santiago, J. Olivier, ~n~S. Barnes ~n~Published by Suite 1202 Music/ Jose Luis Gotcha Music (BMI)/ Slamuwell Productions/ Jelly's Jam LLC (ASCAP)/ ~n~12 & Under Music/ +[RCPL1_8:RCPLNE1] +~g~Dein ferngesteuertes Flugzeug gerãt außer Reichweite! -[CR12_10:CRED01] -Jumping Bean Songs LLC (BMI) ~n~(p) + © 1998 Penalty Recordings ~n~Courtesy of Warner Strategic Marketing +[RCPL1_9:RCPLNE1] +~r~Dein ferngesteuertes Flugzeug ist außer Reichweite! -[CR12_11:CRED01] -~n~ ~n~ ~n~ ~n~"Shut 'Em Down (Remix)" ~n~Onyx featuring Noreaga & Big Pun ~n~Written by F. Scruggs, K. Jones, T. Taylor, E. Hinson, E. Simmons ~n~Published by Universal Music/ ~n~Let Me Show You Music/ ~n~Jelly Jams Music/ +{=================================== MISSION TABLE RCRACE1 ===================================} -[CR12_12:CRED01] -III Posse Music/ Ill Hill Billy'z Music/ Warner-Tamerlane Music ~n~(p) + © 1998 Rush Associated Labels Recordings ~n~Courtesy of Universal Music Enterprises +[RCRC1_1:RCRACE1] +~g~Liefere dir mit 3 anderen RC Bandits ein CHECKPOINT-RENNEN über 2 RUNDEN. -[CR12_13:CRED01] -~n~ ~n~ ~n~ ~n~"Beware" ~n~Big Pun ~n~Written by C. Rios, J. Tineo ~n~Published by Let Me Show You Music/ ~n~Joe Cartegena Music (ASCAP), ~n~Administered by Jelly Jams Music (BMI)/ ~n~P.H.D. Music (ASCAP) +[RCRC1_3:RCRACE1] +~g~Letzte Runde! -[CR12_14:CRED01] -(p) + © 1998 Loud Records LLC ~n~Courtesy of Columbia Records by arrangement with Sony BMG Ent +[RCR1_4:RCRACE1] +Verbleibende Runden: -[CR12_15:CRED01] -~n~ ~n~ ~n~ ~n~"Twinz (Deep Cover 98)" ~n~Big Pun ~n~Written by C. Rios, J. Cartegena, ~n~C. Brodus, A. Young, C. Wolfe ~n~Published by Let Me Show You Music/ ~n~Joe Cartegena Music (ASCAP)/ ~n~Jelly Jams Music (BMI)/ ~n~Sony Tunes Inc. (ASCAP) +[RCR1_1:RCRACE1] +~g~Tritt in einem Checkpoint-Rennen gegen 3 andere ferngesteuerte Autos an. -[CR12_16:CRED01] -~n~(p) + © 1998 Loud Records LLC ~n~Courtesy of Columbia Records by arrangement with Sony BMG Ent ~n~This track contains a sample of "Deep Cover" as performed by Dr. Dre. Courtesy of Solar Records. Used by permission. All rights reserved +[RCR1_2:RCRACE1] +~g~Du musst als erster 2 volle Runden auf dem Kurs fahren! -[CR12_17:CRED01] -~n~ ~n~ ~n~ ~n~"Get At Me Dog" ~n~DMX featuring Sheek of The Lox ~n~Written by E. Simmons, D. Blackman, ~n~A. Fields, S. Taylor ~n~Published by Universal Music Publishing/ EMI April Music/ ~n~Sony ATV Tunes +[RCR1_6:RCRACE1] +~g~Dein ferngesteuertes Auto gerãt außer Reichweite! -[CR12_18:CRED01] -~n~(p) + © 1998 Rush Associated Labels Recordings ~n~Courtesy of Universal Music Enterprises +[RCR1_7:RCRACE1] +~r~Dein ferngesteuertes Auto ist außer Reichweite! -[CR12_19:CRED01] -~n~ ~n~ ~n~ ~n~"Ruff Ryders Anthem (Remix)" ~n~DMX featuring DJ Clue, Jadakiss, Styles, Drag-On & Eve ~n~Written by J. Phillips, M.J. Smalls, E. Shaw, K. Ifill, E. Simmons, K. Dean, E. Jeffers ~n~Published by Universal Music Publishing/ EMI Music Publishing +{=================================== MISSION TABLE ROCK1 ===================================} -[CR12_20:CRED01] -(p) + © 1998 Roc-a-Fella Records ~n~Courtesy of Universal Music Enterprises +[RBM1_A:ROCK1] +AllllllllRrrighttt! -[CR12_21:CRED01] -~n~ ~n~ ~n~ ~n~"Do What You Feel" ~n~Redman featuring Method Man ~n~Written by P. Michael, R. Noble, C. Smith ~n~Published by Careers BMG/ Sony ATV Tunes/ Famous Music ~n~(p) + © 1996 Def Jam ~n~Courtesy of Universal Music Enterprises +[RBM1_B:ROCK1] +Fantastisch, einfach fantastisch! -[CR12_22:CRED01] -~n~ ~n~ ~n~ ~n~"Chain Gang Freestyle" ~n~The Lox & Black Rob ~n~Written by Frierson, Phillips, Styles, Jacobs, Ross, Shaw ~n~Published by EMI Music Publishing ~n~Courtesy of Bad Boy Records +[RBM1_D:ROCK1] +Hey, kennst du die Jungs von Love Fist? -[CR12_23:CRED01] -~n~ ~n~ ~n~ ~n~"Chest2chest Freestyle" ~n~The Lox ~n~Written by Phillips, Styles, Jacobs, Shaw, Barnes, Lemay, Montgomery ~n~Published by Taggie Music (BMI)/ ~n~Universal Polygram Int'l. (ASCAP)/ ~n~EMI Music Publishing ~n~Courtesy of Bad Boy Records +[RBM1_E:ROCK1] +Nein, aber ihre Musik habe ich immer geliebt. -[CR12_24:CRED01] -This track contains a sample of "Next Level" as performed by Showbiz & AG. Courtesy of Universal Music Enterprises. Used by permission. All rights reserved +[RBM1_F:ROCK1] +Ich stelle dir die Band vor. -[CR13_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~MSX 98 +[RBM1_G:ROCK1] +Das ist P, Percy, Dick, und Willy ist auf dem Klo. Und das vorher in der Kabine war Jezz. -[CR13_02:CRED01] -~n~ ~n~ ~n~ ~n~MC ~n~Codebreaker as himself +[RBM1_H:ROCK1] +Jungs, ich möchte euch einen guten Freund vorstellen. -[CR13_03:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Timecode +[RBM1_I:ROCK1] +Das ist Tommy. Wir kennen uns schon ewig. -[CR13_04:CRED01] -~n~ ~n~ ~n~ ~n~Station Production ~n~Timecode +[RBM1_J:ROCK1] +Alles paletti, Mann. -[CR13_05:CRED01] -~n~ ~n~ ~n~ ~n~"Renegade Snares" ~n~Omni Trio ~n~Written, Produced & Engineered by ~n~R. Haigh ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1993 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[RBM1_K:ROCK1] +Und, ãh, wie war dein Name noch mal? -[CR13_06:CRED01] -~n~ ~n~ ~n~ ~n~"Terrorist" ~n~Renegade ~n~Written, Produced & Engineered by ~n~A. Dookith ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[RBM1_L:ROCK1] +Lass das, Jezz. Merk dir eines, -[CR13_07:CRED01] -~n~ ~n~ ~n~ ~n~"Finest Illusion (Legal Mix)" ~n~Foul Play ~n~Written, Produced & Engineered by ~n~J. Morrow, S. Bradshaw, ~n~S. Gurley ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1993 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[RBM1_M:ROCK1] +mit mir kannst du diese Spielchen nicht machen. -[CR13_08:CRED01] -~n~ ~n~ ~n~ ~n~"Living For the Future (FBD Project Remix)" ~n~Omni Trio ~n~Written, Produced & Engineered by ~n~R. Haigh ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[RBM1_N:ROCK1] +Ich bin dir einfach über, Sonnenscheinchen. -[CR13_09:CRED01] -~n~ ~n~ ~n~ ~n~"Stay Calm (Foul Play Remix)" ~n~DJ Pulse ~n~Written, Produced & Engineered by ~n~A. Brown ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[RBM1_O:ROCK1] +Die Sache ist die, Tom, die Jungs brauchen Hilfe. -[CR13_10:CRED01] -~n~ ~n~ ~n~ ~n~"Disturbance (Tango Remix)" ~n~Hyper-On Experience ~n~Written, Produced & Engineered by ~n~A. Banks, D. Demierre ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[RBM1_P:ROCK1] +Die haben hier keine Connections, kein Vitamin B. -[CR13_11:CRED01] -~n~ ~n~ ~n~ ~n~"Cold Fresh Air" ~n~Higher Sense ~n~Written, Produced & Engineered by ~n~A. Miles, DJ Rhythm ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[RBM1_Q:ROCK1] +Wir brauchen Stoff, Alter. -[CR13_12:CRED01] -~n~ ~n~ ~n~ ~n~"Living For the Future" ~n~Omni Trio ~n~Written, Produced & Engineered by ~n~R. Haigh ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[RBM1_R:ROCK1] +Damit wir den alten Love Fist Spirit finden, verstehst du?! -[CR13_13:CRED01] -~n~ ~n~ ~n~ ~n~"Thru The Vibe (2 on 1 Mix)" ~n~Omni Trio ~n~Written, Produced & Engineered by ~n~R. Haigh ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[RBM1_S:ROCK1] +Wir sind hier in Vice City, Mann. Wo liegt das Problem? -[CR13_14:CRED01] -~n~ ~n~ ~n~ ~n~"The Helicopter Tune" ~n~Deep Blue ~n~Written, Produced & Engineered by ~n~S. O'Keefe ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[RBM1_U:ROCK1] +Love Juice, Mann! -[CR13_15:CRED01] -~n~ ~n~ ~n~ ~n~"Dred Bass" ~n~Dead Dred ~n~Written, Produced & Engineered by ~n~W. Smith, L. Smith ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[RBM1_V:ROCK1] +Love Juice? -[CR14_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~FLASHBACK FM +[RBM1_W:ROCK1] +Genau. 2 Teile TNT-Whiskey, 1 Teil Koks, 5 Pãckchen Brause und 1 Liter Sprit. -[CR14_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Reni Wassulmaier - Barbara Rosenblatt +[RBM1_X:ROCK1] +Kannst du uns weiterhelfen, Alter? -[CR14_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voice ~n~Mike Shapiro +[RBM1_Y:ROCK1] +Es würde den Jungs wirklich viel bedeuten. -[CR14_04:CRED01] -~n~ ~n~ ~n~ ~n~"First Hand Experience ~n~In Second Hand Love" ~n~Giorgio ~n~Written by G. Moroder, P. Bellotte ~n~Published by WB Music Corp. (ASCAP) ~n~(p) + © 1977 Giorgio Moroder ~n~Courtesy of Giorgio Moroder +[RBM1_Z:ROCK1] +Du kannst den Jungs doch helfen, oder? -[CR14_05:CRED01] -~n~ ~n~ ~n~ ~n~"I Wanna Rock You" ~n~Giorgio ~n~Written by G. Moroder, H. Faltermeyer, ~n~K. Forsey ~n~Published by WB Music Corp. (ASCAP) ~n~(p) + © 1979 Giorgio Moroder ~n~Courtesy of Giorgio Moroder +[RBM1_7:ROCK1] +~r~Du hast den Love Juice nicht rechtzeitig besorgt! -[CR14_06:CRED01] -~n~ ~n~ ~n~ ~n~"E=MC2" ~n~Giorgio ~n~Written by G. Moroder, H. Faltermeyer, ~n~P. Bellotte ~n~Published by WB Music Corp. (ASCAP) ~n~(p) + © 1979 Giorgio Moroder ~n~Courtesy of Giorgio Moroder +[RBM1_8:ROCK1] +~r~Mercedes ist erledigt! -[CR14_07:CRED01] -~n~ ~n~ ~n~ ~n~"Chase" ~n~Giorgio Moroder ~n~Written by G. Moroder ~n~Published by Warner/ Chappell Music ~n~(p) + © 1978 Casablanca Films/ ~n~Columbia Pictures ~n~Courtesy of Sony Pictures Entertainment +[RBM1_10:ROCK1] +~r~Du Idiot! Du hast die Ware vernichtet! -[CR14_08:CRED01] -~n~ ~n~ ~n~ ~n~"I'm Left, You're Right, She's Gone" ~n~Giorgio ~n~Written by G. Moroder, P. Bellotte ~n~Published by WB Music Corp. (ASCAP) ~n~(p) + © 1977 Giorgio Moroder ~n~Courtesy of Giorgio Moroder +[RBM1_13:ROCK1] +~g~Bring den Love Juice und Mercedes zu der Band bevor sie auf die Bühne muss. -[CR14_09:CRED01] -~n~ ~n~ ~n~ ~n~"From Here To Eternity" ~n~Giorgio ~n~Written by G. Moroder, P. Bellotte ~n~Published by WB Music Corp. (ASCAP) ~n~(p) + © 1977 Casablanca Records ~n~Courtesy of Universal Music Enterprises +[RBM1_15:ROCK1] +~r~Du hast den Dealer verloren, unser Geld und den Stoff! -[CR15_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~COMMERCIAL VOICES +[RBM1_17:ROCK1] +~g~Knöpf dir den Dealer vor und hol dir den Stoff! -[CR15_02:CRED01] -~n~ ~n~ ~n~ ~n~Alex Anthony, Anouchka Benson, ~n~Audrey Amey, Bill Smith, ~n~Billy Gonzalez, Brian Thomas, +[MOB_07A:ROCK1] +Hey, die Jungs könnten ein bisschen Gesellschaft vertragen, falls du weißt, was ich meine... -[CR15_03:CRED01] -~n~ ~n~Chris Jobin, Chris Silvestro, ~n~Craig Blair, Dan Houser, ~n~Dan Merrill, Ed Thomas, +[MOB_07B:ROCK1] +Da kenne ich genau die richtige. -[CR15_04:CRED01] -~n~ ~n~Ethan Abeles, Garth Johnston, ~n~Gregg Martin, Gregory Johnson, ~n~Hikari Yokoyama, James Ferrante, +[ROK1_5:ROCK1] +Hey, Mercedes! -[CR15_05:CRED01] -~n~ ~n~James Larson, Jay Capozello, ~n~Jayson Gladstone, Jeff Berlin, ~n~Jen Sweeney, Jessica Wachsman, +[ROK1_6:ROCK1] +Hi, Tommy. Na, wie lãuft's so? -[CR15_06:CRED01] -~n~ ~n~ JJ Adler, Jonathan Hanst, ~n~Joshua Batista, Karen Saltus, ~n~Koji Nonoyami, Lance Williams, +[ROK1_7:ROCK1] +Alles bestens. Hör mal, willst du die Jungs von Love Fist verführen? -[CR15_07:CRED01] -~n~ ~n~Lazlow, Lynne Horton, ~n~Michael Nathan, Mike Ferrante Jr., ~n~Chris Ferrante, Mike Shapiro, +[ROK1_8:ROCK1] +Ok, aber dafür bist du mir einen Gefallen schuldig. -[CR15_08:CRED01] -~n~ ~n~Natalya Wilson, Noelle Sadler, ~n~Phil Mikkelson, Ron Reeve, ~n~Smith Harrison, Stacy Rachels, +[RBM1_14:ROCK1] +~g~Du brauchst ein Auto oder Motorrad! -[CR15_09:CRED01] -~n~ ~n~ Steve Carlesi, Julie Wemyss, ~n~Kim Gurney +[RBM1_1:ROCK1] +~g~Hol Mercedes in ihrer Wohnung ab. -[CR16_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~CUTSCENE MUSIC +[RBM1_12:ROCK1] +~g~Besorg die Zutaten für den 'Love Juice' von dem Dealer. -[CR16_02:CRED01] -~n~ ~n~ ~n~ ~n~"Japanese Geisha" ~n~Sonia Slany ~n~Written by Sonia Slany ~n~Published by West One Music ~n~Courtesy of APM Music, LLC +[ROK1_2:ROCK1] +NICHT MEHR BENÖTIGT -[CR16_03:CRED01] -~n~ ~n~ ~n~ ~n~"The Heist" ~n~Bugz in the Attic ~n~Written by K. Tatham ~n~Published by Copyright Control ~n~(p) 2005 Bugz In The Attic ~n~Courtesy of Bugz In The Attic ~n~www.bugzintheattic.co.uk +[ROK1_3:ROCK1] +NICHT MEHR BENÖTIGT -[CR16_04:CRED01] -~n~ ~n~ ~n~ ~n~"A Dark March" ~n~Danger Mouse ~n~Written by Danger Mouse ~n~Published by ~n~Underground Animals (ASCAP) +[MERC_39:ROCK1] +Wir sehen uns spãter, Big Boy. -[CR17_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ROCKSTAR NYC PUBLISHING TEAM +[RBM1_C:ROCK1] +Hey, Tommy! Schön, dass du kommen konntest. -[CR17_02:CRED01] -~n~ ~n~ ~n~ ~n~Terry Donovan, Jenefer Gross, ~n~Jennifer Kolbe, Devin Winterbottom, ~n~Adam Tedman, Michael Elkind, +[RBM1_9:ROCK1] +~g~Besorg von dem Dealer Love Juice für Love Fist! -[CR17_03:CRED01] -~n~ ~n~Paul Yeates, Hosi Simon, ~n~Daniel Einzig, Marlene Yamaguchi, ~n~Gauri Khindaria, Stanton Sarjeant, +[ROK1_1A:ROCK1] +Suchst du was Bestimmtes? Ich habe genau, was du brauchst! -[CR17_04:CRED01] -~n~ ~n~Jordan Chew, Ryan Rayhill, ~n~Devin Bennett, Todd Zuniga, ~n~Thomas O'Donnell, Maria Tabia, +[ROK1_9:ROCK1] +Danke für die Kohle, du Trottel! -[CR17_05:CRED01] -~n~ ~n~Anthony Carvalho, Lyonel Tollemache, ~n~John Notarfrancesco, Jerry Luna, ~n~Stuart Petri, Stephen Walsh, +[RBM1_T:ROCK1] +Wir brauchen Love Juice, Mann, klar? -[CR17_06:CRED01] -~n~ ~n~Michael Carnevale, Andrea Borzuku, ~n~John Schuhmann, Alice Chuang, ~n~Mike Torok, Mayumi Kobayashi, +{=================================== MISSION TABLE ROCK2 ===================================} -[CR17_07:CRED01] -~n~ ~n~Elizabeth Satterwhite, Bruce Dugan, ~n~Eli Weissman, Phil Poli, ~n~Jaesun Celebre, Russell Lewis, +[RBM2_A:ROCK2] +Tommy, Mann, bin ich froh, dich zu sehen! -[CR17_08:CRED01] -~n~ ~n~Sean Mackenzie, Megan Henretta, ~n~Angus Wong, Kristine Severson +[RBM2_B:ROCK2] +Was ist los? -[CR17_09:CRED01] -~n~ ~n~ ~n~ ~n~Cover Art ~n~Steven Olds, Stephen Bliss, ~n~Anthony Macbain +[RBM2_C:ROCK2] +Schlechte Vibes, Tommy... -[CR17_10:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ROCKSTAR LONDON PD +[RBM2_E:ROCK2] +Da ist so 'n Typ, wir kennen ihn kaum, aber er kennt uns. -[CR17_11:CRED01] -~n~ ~n~ ~n~ ~n~ Chris Madgwick, Chris Wood, ~n~Daimion Pinnock, David McCarthy, ~n~Graham Ainsley, Jurgen Mol, +[RBM2_F:ROCK2] +So wie er da. Weiß alles über uns. -[CR17_12:CRED01] -~n~ ~n~ Laura Battistuzzi, Maike Köhler, ~n~Shino Hori, Lucien King +[RBM2_G:ROCK2] +Weiß, dass Willy auf Damenunterwãsche steht, eh! -[CR18_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ROCKSTAR LINCOLN +[RBM2_H:ROCK2] +Oder dass Percy auf Duran Duran steht! -[CR18_02:CRED01] -~n~ ~n~ ~n~ ~n~QA Manager ~n~Mark Lloyd +[RBM2_K:ROCK2] +Ja, die Liebesrakete, schon gut. Aber hör zu, dieser Typ... -[CR18_03:CRED01] -~n~ ~n~ ~n~ ~n~Deputy QA Manager ~n~Tim Bates +[RBM2_L:ROCK2] +ja, ja, der Typ will Love Fist ausknipsen. -[CR18_04:CRED01] -~n~ ~n~ ~n~ ~n~QA Supervisor ~n~Kevin Hobson +[RBM2_M:ROCK2] +Ausknipsen, Tommy. -[CR18_05:CRED01] -~n~ ~n~ ~n~ ~n~Lead Tester ~n~Eddie Gibson ~n~ ~n~ ~n~ ~n~Secondary Lead Tester ~n~Mike Bennett +[RBM2_N:ROCK2] +Love Fist soll verschwinden. Wie es immer heißt: Die Besten sterben jung. -[CR18_06:CRED01] -~n~ ~n~ ~n~ ~n~Testers ~n~Jonathan Stones, Mike Emeny, ~n~Andy Mason, Lee Johnson, ~n~Carl Young, Matthew Lunnon, ~n~Dan Goddard, Steve McGagh, ~n~Craig Reeve, Joby Luckett +[RBM2_O:ROCK2] +Aber Tommy, du musst Love Fist retten! -[CR18_07:CRED01] -~n~ ~n~ ~n~ ~n~Localization Team ~n~ ~n~ ~n~ ~n~Localization Supervisor ~n~Chris Welsh +[RBM2_P:ROCK2] +Wir geben in zwei Stunden eine Autogrammstunde, und ich glaube... -[CR18_08:CRED01] -~n~ ~n~ ~n~ ~n~Testers ~n~Antoine Cabrol, Dominic Garcia, ~n~Paolo Ceccotti, Ferruccio Cinquemani, ~n~Nicolas Klimoff, Jesús Pérez Rosales ~n~ ~n~ ~n~ ~n~IT Support ~n~Nick McVey +[RBM2_Q:ROCK2] +Und die Jungs glauben, dass der Kerl dort irgendwas plant. -[CR19_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~SPECIAL THANKS +[RBM2_1:ROCK2] +~g~Fahre die Limo zum Ort der Autogrammstunde und versuche, den Irren zu finden. -[CR19_02:CRED01] -~n~ ~n~ ~n~ ~n~Scooter, Ross Wallace, ~n~Steve Taylor, Kevin Wong, ~n~Kevin Bolt, John Haime, +[RBM2_2:ROCK2] +~r~Du hast den Wagen der Band geschrottet! -[CR19_03:CRED01] -~n~ ~n~Dave Watson, Thomas French, ~n~James Arthur, Martin Connor, ~n~Brendon McDonald, Julie Wemyss, +[RBM2_3:ROCK2] +~g~Geh zu der Autogrammstunde! -[CR19_04:CRED01] -~n~ ~n~Raff Crolla, James Duffy, ~n~Kim Gurney, Andrew Ness, ~n~Andy Brooks (Gearbox), Alan Mcgregor, +[RBM2_4:ROCK2] +~g~Erledige den Irren. Lass ihn nicht entkommen! -[CR19_05:CRED01] -~n~ ~n~Chris McCallum, Fred, Narns, ~n~Alan, Taruki, Red, ~n~Big Foot, Rita Liberator, ~n~Elliot Torres +[RBM2_5:ROCK2] +~r~Du hast ihn verloren, du Idiot! -[CR19_06:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~THANKS +[RBM2_7:ROCK2] +~r~Die Fans wurden angegriffen. Der Irre wird nicht auftauchen! -[CR19_07:CRED01] -~n~ ~n~ ~n~ ~n~Deborah Mannis-Gardner ~n~and Mark Schwartz. ~n~Randy Acker, Karen Adams, ~n~Mark Ainley, Robin Albers, +[RBM2_8:ROCK2] +~r~Die Security-Leute wurden angegriffen. Der Irre wird nicht auftauchen! -[CR19_08:CRED01] -~n~ ~n~Duncan Baker, Armen Boladian, ~n~Tanya Bridges, Richard Brown, ~n~Matt Brookman, Elena Byington, +[PSYCH_1:ROCK2] +Love Fist wird in der Hölle braten! -[CR19_09:CRED01] -~n~ ~n~Ed Butts, Rob Cairns, ~n~Mike Callaghan, Joseph Carlone, ~n~Kevin Carson, Jason Chin, +[PSYCH_2:ROCK2] +Love Fist hat mein Leben zerstört! -[CR19_10:CRED01] -~n~ ~n~Allison Cipris, Alimah Deen, ~n~James Ellis, Helen English, ~n~Nasko Fejza, Scott Gardner, +[RBM2_I:ROCK2] +Halt's Maul, du Irrer! Nur weil Jezz auf Schafe steht. -[CR19_11:CRED01] -~n~ ~n~Jochem Gerrits, ~n~Laurie Goldstein Thomas Golubic, ~n~Nick Guarino, Jon Handle, ~n~Millie Hysu, Robert Jo, +[RBM2_R:ROCK2] +Hey, Schnauze! -[CR19_12:CRED01] -~n~ ~n~Paul Johannes, Gavin Johnson, ~n~Curtis A. Jones, Jennifer Justice, ~n~Rod Kotler, Diana La Pointe, +[RBM2_D:ROCK2] +Das ist kein Spaß, das ist 'ne brutale Geschichte, brutal, ok? -[CR19_13:CRED01] -~n~ ~n~Michael Lau, Jim Long, ~n~Alex De Maegd, John Massa, ~n~Kendall Minter, Steve Morgan, +[RBM2_J:ROCK2] +Ich sage nur, die Liebesrakete, ok? -[CR19_14:CRED01] -~n~ ~n~Giorgio Moroder, Suzanne Moss, ~n~Melissa Munana, Kirin Murphy, ~n~Kurosh Nasseri, +{=================================== MISSION TABLE ROCK3 ===================================} -[CR19_15:CRED01] -~n~ ~n~Gwen Niles Sean Ogden ~n~aka DJ Nightshade, ~n~Robin Orlowski, Jonathan Palmer, ~n~Tanvi Patel, Jane Peterer, +[RBM3_A:ROCK3] +Tommy! Tommy! Tommy, Mann, der Irre ist wieder da! -[CR19_16:CRED01] -~n~ ~n~Mark Picchiotti, Rob Playford, ~n~Dan Quan, R. Ramnarayan, ~n~Mary Beth Roberts, ~n~Virgil Roberts, Lindsay Rodman, +[RBM3_B:ROCK3] +Was ist denn los? -[CR19_17:CRED01] -~n~ ~n~Jim Romano, Craig Roseberry, ~n~Gerry Rosenblatt, RZA, ~n~Ali Samii, Alan Scholefield, +[RBM3_C:ROCK3] +Dieser Irre lãsst Love Fist nicht in Ruhe! -[CR19_18:CRED01] -~n~ ~n~Christopher Scott, Suzi Scott, ~n~Fredro Scruggs, Jennefer Showalter, ~n~Alan Skiena, Saskia Slegers, +[RBM3_D:ROCK3] +Du hast ihn nicht erwischt, Mann. Und jetzt ist er wieder da. -[CR19_19:CRED01] -~n~ ~n~Fran Spero, Lem Springsteen, ~n~David Steel, Jane Ventom, ~n~Christian Wiseman, Debi Wylde, +[RBM3_E:ROCK3] +Ja, ja, ja, und es ist nãmlich so... -[CR19_20:CRED01] -~n~ ~n~Donna Young, Richie Zito +[RBM3_F:ROCK3] +wir brauchen für die Limo einen Fahrer, dem wir vertrauen können, + +[RBM3_G:ROCK3] +weil der Irre uns stãndig bedroht! + +[RBM3_I:ROCK3] +Wir scheißen uns alle in die Hosen, Mann. + +[RBM3_J:ROCK3] +Ok, Jungs, nur die Ruhe. Ich mach das schon. + +[RBM3_K:ROCK3] +Normalerweise würde ich keine besoffenen, schottischen Tucken durch die Gegend kutschieren, + +[RBM3_L:ROCK3] +aber für euch mache ich eine Ausnahme. + +[ROK3_03:ROCK3] +Dann mach mir einen großen. + +[ROK3_04:ROCK3] +Hey, Tommy, nun mach mal halblang, Mann. + +[ROK3_08:ROCK3] +Langsam wird's langweilig. + +[ROK3_09:ROCK3] +Halt bloß das Pedal durchgedrückt!! + +[ROK3_61:ROCK3] +Wir müssen die Bombe finden! + +[ROK3_28:ROCK3] +Ich werd Bass in der Hölle spielen. + +[ROK3_30:ROCK3] +Tu doch einer was! + +[ROK3_32:ROCK3] +Ok, Obermacho, dann tu du doch was! + +[ROK3_34:ROCK3] +Willy könnte den TNT-Whiskey mit einem Strohhalm raussaugen. + +[ROK3_37:ROCK3] +Gebt Willy einen Strohhalm! + +[ROK3_41:ROCK3] +Welchen Draht, Tommy? + +[ROK3_42:ROCK3] +Den grünen. + +[ROK3_43:ROCK3] +Da ist kein grüner. Oder ist der hier grün? + +[ROK3_44:ROCK3] +Sieht für dich einer von den Drãhten grün aus? + +[ROK3_49:ROCK3] +Ich hab euch doch jahrelang nur mitgeschleppt. + +[ROK3_51:ROCK3] +Ein großes keifendes Weib. + +[ROK3_52:ROCK3] +Ja. + +[ROK3_53:ROCK3] +Klappe jetzt und zieht einen Draht raus. + +[ROK3_54:ROCK3] +Welchen? + +[ROK3_55:ROCK3] +Den da... + +[ROK3_56:ROCK3] +NEIN! + +[ROK3_57:ROCK3] +Mann, alles ok. Wir sind nicht hochgegangen, Alter. Tommy, Mann, gut gemacht. Rock 'n' Roll, Mann. + +[ROK3_58:ROCK3] +Müssen wir nicht zu einem Gig? Krach machen? Groupies abgreifen? + +[ROK3_59:ROCK3] +LOVE FIST! + +[ROK3_60:ROCK3] +Bist du fertig mit der Pulle? + +[RBM3_4:ROCK3] +~r~Love Fist ist Geschichte! + +[RBM3_6:ROCK3] +DETONATION: + +[RBM3_1:ROCK3] +~g~Chauffiere Love Fist zu ihrem Auftritt. + +[RBM3_2:ROCK3] +Falls du versuchst, aus dem Auto auszusteigen, wenn die Bombe scharfgemacht ist, wird sie explodieren... + +[RBM3_3:ROCK3] +Ist der Detonations-Balken am Anschlag, explodiert die Bombe. + +[RBM3_8:ROCK3] +Je schneller du fãhrst, desto niedriger der Detonations-Balken. + +[RBM3_7:ROCK3] +~g~BOMBE ENTSCHÃRFT! + +[ROK3_6A:ROCK3] +~g~Love Fist. Ihr habt den Ãther lange genug verschmutzt! + +[ROK3_6B:ROCK3] +~g~Ich wollte euer Freund sein. Jetzt will ich, dass ihr untergeht. + +[ROK3_62:ROCK3] +Wir dachten, wir zeigen dir mal unseren Rocktempel... + +[ROK3_63:ROCK3] +Kannst dir die Power von Love Fist reinziehen! + +[ROK3_64:ROCK3] +Hör sich das einer an, Mann. Das ist Pappmaché und Klebeband. + +[ROK3_65:ROCK3] +Hey, für die Kids ist es ein Tempel, und wir sind die Priester! + +[ROK3_66:ROCK3] +Tja, wenn die Kids es toll finden, dass ihre Priester dicht und unmusikalisch sind, + +[ROK3_67:ROCK3] +was soll man da sagen? + +[ROK3_68:ROCK3] +Oh, Mist, das Ding frisst schon wieder das Band. + +[ROK3_69:ROCK3] +Wenn das so ist, müssen wir live spielen. + +[ROK3_70:ROCK3] +Ooooh Shit! Mein Darm... + +[ROK3_01:ROCK3] +Endlich, Mann, Zeit für einen wohlverdienten Drink. + +[ROK3_02:ROCK3] +Die Halle ist nur 100 Meter die Straße runter. + +[ROK3_05:ROCK3] +Ich werd irre, wenn ich keinen Sprit kriege. + +[ROK3_07:ROCK3] +Tommy, mein Freund, wir müssen die Band retten! + +[ROK3_29:ROCK3] +Tommy, bleib auf dem Gas, Alter. + +[ROK3_31:ROCK3] +Ganz toll. 'Tu doch einer was.' Was ist denn das für eine Ansage? Da kenn ich mutigere Mãdels. + +[ROK3_33:ROCK3] +Alter, ich bin Musiker. Vom Bomben-Entschãrfen hab ich keinen blassen Dunst. + +[ROK3_35:ROCK3] +Eben, so was liegt dir doch, was ich so höre. + +[ROK3_38:ROCK3] +Einen Strohhalm?! Dies ist der Tour-Bus von Love Fist! + +[ROK3_39:ROCK3] +Wo zum Geier sollte hier ein Strohhalm sein? + +[ROK3_46:ROCK3] +Ich hãtte euch alle rausschmeißen sollen, als es noch ging, Mann. + +[ROK3_47:ROCK3] +Kapitalist. + +[ROK3_48:ROCK3] +Kameradenschwein. + +[ROK3_73:ROCK3] +Jezz spielt das Band ab, + +[RBM3_9:ROCK3] +Wenn du angehalten wirst oder langsam fãhrst, wãchst der Detonations-Balken. + +[ROK3_50:ROCK3] +Halt die Klappe. Du bist ein Idiot. + +[ROK3_36:ROCK3] +Hey, ich war an dem Abend vielleicht komplett zugedröhnt! + +[RBM3_H:ROCK3] +Ich scheiß mir in die Hose, Mann. Ich will zu meiner Mama! + +[ROK3_45:ROCK3] +Oh nein. Im Angesicht des Todes sieht alles grün aus. + +[ROK3_6C:ROCK3] +~g~Wenn ihr langsamer werdet, geht eure Limo hoch, IHR UND EURE HAARIGEN ÃRSCHE mit dazu! + +[ROK3_71:ROCK3] +Wir müssen uns ranhalten. Danke nochmal, Tommy, du hast es echt drauf. Ciao. + +[ROK3_1:ROCK3] +Endlich, Mann, Zeit für einen wohlverdienten Drink. Die Halle ist nur 100 Meter die Straße runter. + +[ROK3_2:ROCK3] +Mach mir mal einen großen. Hey, Tommy, leg mal 'nen anderen Sound auf, Mann. + +[ROK3_3:ROCK3] +Ich werd wirr im Kopf, wenn nichts zum Headbangen lãuft. Hey, Tommy, leg mal dieses Band ein. + +[ROK3_4:ROCK3] +Love Fist. Ihr habt den Ãther lange genug verschmutzt! Ich wollte euer Freund sein. + +[ROK3_5:ROCK3] +Jetzt will ich, dass ihr untergeht. Wenn ihr langsamer werdet, geht eure Limo hoch, IHR UND EURE HAARIGEN ÃRSCHE mit dazu! + +[ROK3_6:ROCK3] +Tommy, mein Freund, du musst die Band retten! Langsam wird's langweilig. Halt bloß das Pedal durchgedrückt!! + +[ROK3_7:ROCK3] +Wir müssen die Bombe finden! Können wir nicht einfach den ganzen Tag rumfahren? Wir haben jedenfalls jede Menge zu saufen. + +[ROK3_8:ROCK3] +Könnte die Bombe nicht unter der Motorhaube sein? Da kommen wir nie ran, ohne anzuhalten! Wir werden alle sterben! Ich besauf mich! + +[ROK3_9:ROCK3] +Hey, hier gibt's eine Warteschlange, Alter! Die Lösung liegt nicht in der Minibar! Weg da! + +[ROK3_10:ROCK3] +Hey, aus der Wodkapulle kommen Drãhte raus! Das ist kein Wodka, das ist TNT-WHISKEY! + +[ROK3_11:ROCK3] +WAAAAAAGGGHHHH!!!! Das Ding ist scharfgemacht!! WAAAAAAAAAAGGGHHHHHH!!!! + +[ROK3_12:ROCK3] +Man hat mir immer gesagt, der Alk wird mich killen... Das kenn ich aus dem Fernsehen. Du musst einen der Drãhte rausziehen. Welchen Draht? Weiß ich doch nicht, Mann. + +[ROK3_13:ROCK3] +Keinen Schimmer. Willy, sag doch mal was. Ich werd Bass in der Hölle spielen. + +[ROK3_14:ROCK3] +Tommy, bleib auf dem Gas, Mann. Tu doch einer was! Ganz toll... + +[ROK3_15:ROCK3] +'Tu doch einer was.' Was ist denn das für eine Ansage? Da kenn ich mutigere Mãdchen. Ok, Obermacho, dann tu du doch was! + +[ROK3_16:ROCK3] +Alter, ich bin Musiker. Mit Bomben kenne ich mich nicht aus. Willy könnte den TNT-Whiskey mit einem Strohhalm raussaugen. + +[ROK3_17:ROCK3] +Eben, so was liegt dir doch, was ich so höre. Hey, ich war total blau an dem Abend, das wisst ihr ganz genau! + +[ROK3_18:ROCK3] +Gebt Willy einen Strohhalm! Einen Strohhalm?! Wi sind im Band-Auto von Love Fist! + +[ROK3_19:ROCK3] +Wo zum Geier sollte hier ein Strohhalm sein? Welchen Draht, Tommy? Den grünen. Da ist kein grüner. + +[ROK3_20:ROCK3] +Oder ist der hier grün? Sieht für dich einer von den Drãhten grün aus? + +[ROK3_21:ROCK3] +Oh nein. Im Angesicht des Todes sieht alles grün aus. Ich hãtte euch alle rausschmeißen sollen, als es noch ging, Mann. + +[ROK3_22:ROCK3] +Kameradenschwein. Kapitalist. Ich hab euch doch jahrelang nur mitgeschleppt. Halt die Klappe. Du bist ein Idiot. + +[ROK3_23:ROCK3] +Ein großes keifendes Weib. Ja. Klappe jetzt und zieht einen Draht raus. Welchen? Den da... + +[ROK3_24:ROCK3] +NEIN! Mann, alles ok. Wir sind nicht hochgegangen, Alter. + +[ROK3_25:ROCK3] +Tommy, Mann, gut gemacht. Rock 'n' Roll, Mann. Müssen wir nicht zu einem Gig? + +[ROK3_26:ROCK3] +Krach machen? Groupies abgreifen? LOVE FIST! + +[ROK3_27:ROCK3] +Bist du fertig mit der Pulle? + +{=================================== MISSION TABLE SERG1 ===================================} + +[TEX1_0:SERG1] +~g~Die Zielperson ist auf der Driving Range. Sorg dafür, dass er seinen letzten Golfball geschlagen hat! + +[TEX1_A:SERG1] +Komm rein und setz dich auf deinen Hintern, Junge. + +[TEX1_B:SERG1] +Mein Daddy hat immer gesagt, einem geschenkten Gaul schaut man nicht ins Maul. Hat's auch nie getan. + +[TEX1_C:SERG1] +Ein Glãschen alter Kentucky gefãllig? + +[TEX1_D:SERG1] +Nein danke. + +[TEX1_E:SERG1] +Ein nüchterner Denker, das gefãllt mir. + +[TEX1_F:SERG1] +Im Immobiliengeschãft geht's nicht um hochtrabende Vertrãge. + +[TEX1_G:SERG1] +Es geht um Land. Und darum, dieses Land zu kriegen. Kannst du mir folgen? + +[TEX1_H:SERG1] +Oh, ja. + +[TEX1_I:SERG1] +Ich will, dass so ein sturer Hund sein Land hergibt. + +[TEX1_J:SERG1] +Mir scheint, du könntest ihn dazu überreden. + +[TEX1_K:SERG1] +Ich bin der reinste Überredungskünstler. + +[TEX1_L:SERG1] +Ja. Er wird im Country Club sein, auf dem Golfplatz. + +[TEX1_M:SERG1] +Knarren sind dort verboten. Seine Bodyguards werden also unbewaffnet sein. + +[TEX1_N:SERG1] +Du sollst ihn so richtig gründlich vermöbeln. + +[TEX1_O:SERG1] +Hier, ich hab dir einen Mitgliedsausweis besorgt. Aber du brauchst passendere Kleidung. + +[TEX1_2:SERG1] +~g~Begib dich jetzt zum Leaf Links Golf Club. + +[TEX1_3:SERG1] +Wer ist der Kerl? Jungs, nehmt ihn euch vor. + +[TEX1_6:SERG1] +Hübscher Hintern, Baby! + +[TEX1_7:SERG1] +Bin ich das? + +[TEX1_8:SERG1] +Jedesmal wenn du in einen Golfwagen steigst, erhãltst du automatisch einen Golfschlãger, vorausgesetzt, du hast nicht schon eine Nahkampfwaffe. + +[TEX1_9:SERG1] +Schnapp ihn dir! + +[TEX1_10:SERG1] +Mach den Irren fertig! + +[TEX1_1:SERG1] +~g~Besorg dir bei Jocksport Golferklamotten. + +{=================================== MISSION TABLE SERG2 ===================================} + +[TEXEXIT:SERG2] +~g~Jetzt verschwinde aus Little Haiti! + +[TEX_2A:SERG2] +~g~Großartig! Sie haben dich bemerkt! + +[TEX_2B:SERG2] +~r~Narr! Die Leute müssen SEHEN, dass der Tãter ein Kubaner ist! + +[TEX_2C:SERG2] +~g~Besorge dir bei Rafael's Kleidung in den Farben der kubanischen Gang. + +[TEX_2D:SERG2] +~g~Nimm dir jetzt den Boss der Haitianer in Romeros Beerdigungsinstitut vor. + +[TEX2_A:SERG2] +Tommy, das ist Donald Love. Donald, das ist Tommy Vercetti, + +[TEX2_B:SERG2] +der neueste Draufgãnger hier in der Stadt. + +[TEX2_C:SERG2] +Ja...ãh... + +[TEX2_D:SERG2] +Donald, sei still und hör zu. Vielleicht kannst du was lernen. + +[TEX2_E:SERG2] +Also. Nichts lãsst Immobilienpreise schneller abstürzen als ein guter alter Bandenkrieg. + +[TEX2_F:SERG2] +Außer vielleicht eine Katastrophe, eine biblische Plage oder so, + +[TEX2_G:SERG2] +aber das ginge hier wohl zu weit. + +[TEX2_H:SERG2] +Kannst du mir folgen, Brillenschlange? + +[TEX2_I:SERG2] +Jüngst starb ein haitianischer Gang-Boss. Man tippt, es waren die Kubaner, aber keiner weiß es. + +[TEX2_J:SERG2] +Aber wir wollen sicher gehen. Du verkleidest dich als kubanischer Hombre + +[TEX2_K:SERG2] +und machst Krawall bei der Beerdigung. Misch sie auf und dann verzieh dich. + +[TEX2_L:SERG2] +Kannst du mir folgen, Donald? + +[TEX2_M:SERG2] +Das dürfte das Fass zum Überlaufen bringen, was? + +[TEX2_N:SERG2] +Und wir lehnen uns zurück und sehen zu, wie die Preise purzeln. + +{=================================== MISSION TABLE SERG3 ===================================} + +[TEX3_A:SERG3] +Pass auf, Junge. Ich habe ein Problem und denke, du könntest mir weiterhelfen. + +[TEX3_B:SERG3] +Ich bin kein Bauunternehmer. + +[TEX3_C:SERG3] +Nein, ich dachte mehr an deine Talente als Abrissunternehmer. + +[TEX3_D:SERG3] +Das hier zeigt, was wir geplant haben. Und so- + +[TEX3_E:SERG3] +-so sieht der betreffende Grund heute aus. + +[TEX3_F:SERG3] +Sie wollen sagen, das neue Bürohaus da ist Ihnen im Weg. + +[TEX3_G:SERG3] +Gut mitgedacht. + +[TEX3_H:SERG3] +Also, ich verdrücke mich eine Weile aus der Stadt, + +[TEX3_I:SERG3] +und wenn dieses Bürogebãude urplötzlich irreparable Schãden aufweist, dann... + +[TEX3_J:SERG3] +....fühlen Sie sich als guter Mensch verpflichtet, einzuspringen und + +[TEX3_K:SERG3] +-für die Neugestaltung eines wichtigen Gebiets der Stadt zu sorgen? + +[TEX3_L:SERG3] +Wo finde ich mehr Mãnner wie dich? + +[TEX3_1:SERG3] +~g~Benutze den ferngesteuerten Helikopter, um Bomben zu 4 Zielen an dem zur Sprengung vorgesehenen Gebãude zu transportieren. + +[TEX3_2:SERG3] +~g~Du musst an jedem Ziel eine Bombe abwerfen. Die Reihenfolge ist beliebig. + +[TEX3_3:SERG3] +~g~Steuere den Helikopter direkt über eine Bombe, um sie aufzunehmen. Die Bombe heftet sich dann automatisch an den Helikopter. + +[TEX3_5:SERG3] +~g~Wenn eine Bombe ihr Ziel verfehlt, kannst du sie erneut aufnehmen und es nochmal versuchen. + +[TEX3_7:SERG3] +~g~Dann hast du noch 7 Minuten, um die restlichen Bomben im Ziel zu platzieren. + +[TEX3_8:SERG3] +~g~Du hast das Ziel verfehlt! Nimm die Bombe wieder auf und versuche es nochmal! + +[TEX3_10:SERG3] +~g~Wirf die Bombe über einem der Ziele ab. + +[TEX3_11:SERG3] +Verbleibende Ziele: + +[TEX3_17:SERG3] +~r~Die Zeit ist um. Du hast es nicht geschafft, das Gebãude zu sprengen. + +[TEX3_18:SERG3] +~r~Dein Helikopter wurde zerstört! Wie willst du jetzt die Bomben transportieren? + +[TEX3_19:SERG3] +~r~Deine Bombe ist im Wasser gelandet! Du brauchst ALLE 4 Bomben, um die Sprengung vorzunehmen. + +[TEX3_20:SERG3] +~g~Dein Helikopter ist fast außer Reichweite. Du musst zurück zur Baustelle, um deine Arbeit zuende zu bringen! + +[TEX3_21:SERG3] +~r~Dein Helikopter befindet sich außer Reichweite! + +[TEX3_24:SERG3] +Drücke ~h~~k~~VEHICLE_LOOKLEFT~~w~, um den Helikopter gegen den Uhrzeigersinn zu drehen. + +[TEX3_25:SERG3] +Drücke ~h~~k~~VEHICLE_LOOKLEFT~~w~, um den Helikopter im Uhrzeigersinn zu drehen. + +[TEX3_27:SERG3] +~g~Über eine Haupttreppe hat man Zugang zu allen Stockwerken des Gebãudes. + +[TEX3_31:SERG3] +~r~Du hast den Wagen mit den Bomben und dem ferngesteuerten Helikopter zerstört! + +[TEX3_32:SERG3] +Du kannst ~h~nach hinten sehen~w~, indem du ~h~gleichzeitig ~k~~VEHICLE_LOOKLEFT~ und ~k~~VEHICLE_LOOKRIGHT~ drückst~w~. + +[TEX3_4:SERG3] { reVC update } +~g~Um eine Bombe abzuwerfen, drücke die~h~ ~k~~VEHICLE_FIREWEAPON~~w~. + +[TEX3_29:SERG3] { reVC update } +Um eine Bombe abzuwerfen, drücke die~h~ ~k~~VEHICLE_FIREWEAPON~. + +[TEX3_26:SERG3] +Drücke die ~h~~k~~VEHICLE_BRAKE~~w~, um die Rotorgeschwindigkeit zu verringern, der Helikopter ~h~verliert dann an Höhe. + +[TEX3_22:SERG3] +Drücke die ~h~~k~~VEHICLE_ACCELERATE~~w~, um die Rotorgeschwindigkeit zu erhöhen, der Helikopter ~h~gewinnt dann an Höhe. + +[TEX3_16:SERG3] +~g~Begib dich zu dem ~w~TOPFUN~g~-Wagen nahe dem zum Abriss vorgesehenen Gebãude. + +[TEX3_33:SERG3] +Wenn du eine Bombe aufgenommen hast, zeigt dir das Radar die Position des Ziels in Relation zu dem ferngesteuerten Helikopter. + +[TEX3_34:SERG3] +Ein ~h~nach oben zeigendes Dreieck ~w~bedeutet, dass das Ziel sich in ~h~größerer Höhe ~w~befindet als der Helikopter. + +[TEX3_35:SERG3] +Ein ~h~nach unten zeigendes Dreieck ~w~bedeutet, dass das Ziel sich in ~h~geringerer Höhe ~w~befindet als der Helikopter. + +[TEX3_36:SERG3] +Ein ~h~Viereck ~w~ bedeutet, dass das Ziel sich auf ~h~der gleichen Höhe ~w~befindet wie der Helikopter. + +[TEX3_6:SERG3] +~g~Wenn du die erste Bombe aufgenommen hast, wird der Zeitzünder aktiviert. + +[TEX3_28:SERG3] +Um ~h~eine Bombe aufzunehmen~w~, steuere den Helikopter direkt über sie. Der Helikopter kann immer nur eine Bombe tragen. + +[TEX3_30:SERG3] +~g~Um eine Bombe aufzunehmen, steuere den Helikopter direkt über sie. Der Helikopter kann immer nur eine Bombe tragen. + +[TEX3_12:SERG3] +~g~Bombe platziert! Es bleiben nur noch 3 Ziele! Hol die nãchste Bombe. + +[TEX3_13:SERG3] +~g~Bombe platziert! Es bleiben nur noch 2 Ziele! Hol die nãchste Bombe. + +[TEX3_14:SERG3] +~g~Bombe platziert! Es bleibt nur noch 1 Ziel! Hol die nãchste Bombe. + +[TEX3_15:SERG3] +~r~Zeitzünder aktiviert! ~g~ Du musst die ~w~4 Bomben ~g~in der verbleibenden Zeit platzieren. + +[TEX3_37:SERG3] +Zieh den ~h~ Rechten Analog-Stick zurück~w~, um die Rotorgeschwindigkeit zu erhöhen, der Helikopter ~h~ gewinnt dann an Höhe. + +[TEX3_38:SERG3] { reVC update } +{Drück den ~h~ ~k~~VEHICLE_ACCELERATE~~w~, um die Rotorgeschwindigkeit zu verringern, der Helikopter ~h~ verliert dann an Höhe.} +Drück den ~h~ Rechten Analog-Stick nach vorn~w~, um die Rotorgeschwindigkeit zu verringern, der Helikopter ~h~ verliert dann an Höhe. + +[TEX3_39:SERG3] +Um eine Bombe abzuwerfen, drücke die ~h~~k~~VEHICLE_HANDBRAKE~~g~-Taste. + +[TEX3_40:SERG3] +Um eine Bombe abzuwerfen, drücke die ~h~~k~~VEHICLE_HANDBRAKE~~w~-Taste. + +[TEX3_23:SERG3] +Mit ~h~~k~~VEHICLE_TURRETUP~~w~ und ~h~~k~~VEHICLE_TURRETDOWN~~w~ neigst du den Helikopter in die Richtung, in die du ihn steuern willst. + +{=================================== MISSION TABLE TAXI1 ===================================} + +[FARES:TAXI1] +FAHRTEN: + +[TAXI1:TAXI1] +~g~Besorg dir einen Fahrgast. + +[TSCORE2:TAXI1] +$~1~ + +[IN_ROW:TAXI1] +~1~ SERIEN-Bonus! $~1~ + +[TAXI3:TAXI1] +~r~Dein Fahrgast ist entsetzt geflohen! + +[TAXI7:TAXI1] +~r~Dein Wagen ist Schrott. Repariere ihn. + +[TAXI4:TAXI1] +Fahrt abgeschlossen! + +[TAXI5:TAXI1] +SPEED BONUS!! + +[TAXI6:TAXI1] +Taxi-Mission beendet + +[TAXIH1:TAXI1] +Halte neben einem markierten Fußgãnger, um ihn einsteigen zu lassen, dann bringe ihn rechtzeitig an sein Fahrtziel. + +[FARE1:TAXI1] +~g~Fahrtziel ~w~'Pole Position Club' ~g~in Ocean Beach. + +[FARE3:TAXI1] +~g~Fahrtziel ~w~'Marina' ~g~in Ocean Beach. + +[FARE4:TAXI1] +~g~Fahrtziel ~w~'Ammu-Nation' ~g~in Ocean Beach. + +[FARE5:TAXI1] +~g~Fahrtziel ~w~'Eisenwarenladen' ~g~in Washington Beach. + +[FARE6:TAXI1] +~g~Fahrtziel ~w~'North Point Einkaufszentrum' ~g~in Vice Point. + +[MFARE1:TAXI1] +~g~Fahrtziel ~w~'Ammu-Nation' ~g~in Downtown. + +[MFARE2:TAXI1] +~g~Fahrtziel ~w~'Terminal' ~g~im Escobar International Airport. + +[WFARE3:TAXI1] +~g~Fahrtziel ~w~'Sunshine Autos' ~g~in Little Havana. + +[WFARE4:TAXI1] +~g~Fahrtziel ~w~'Kaufman-Taxis' ~g~in Little Haiti. + +[WFARE5:TAXI1] +~g~Fahrtziel ~w~'Eisenwarenladen' ~g~in Little Havana. + +[WFARE6:TAXI1] +~g~Fahrtziel ~w~'Howlin Petes Bike Emporium' ~g~in Downtown. + +[FARE7:TAXI1] +~g~Fahrtziel ~w~'die Juweliere' ~g~in Vice Point. + +[FARE8:TAXI1] +~g~Fahrtziel ~w~'der Strand' ~g~in Ocean Beach. + +[FARE9:TAXI1] +~g~Fahrtziel ~w~'der Strand' ~g~in Washington Beach. + +[FARE10:TAXI1] +~g~Fahrtziel ~w~'der Strand' ~g~in Vice Point. + +[FARE11:TAXI1] +~g~Fahrtziel ~w~'das Krankenhaus' ~g~in Ocean Beach. + +[FARE12:TAXI1] +~g~Fahrtziel ~w~'das Krankenhaus' ~g~in Vice Point. + +[FARE13:TAXI1] +~g~Fahrtziel ~w~'die Polizeistation' ~g~in Washington Beach. + +[FARE14:TAXI1] +~g~Fahrtziel ~w~'die Polizeistation' ~g~in Vice Point. + +[FARE15:TAXI1] +~g~Fahrtziel ~w~'die Pizzagaststãtte' ~g~in Vice Point. + +[WFARE7:TAXI1] +~g~Fahrtziel ~w~'die Polizeistation' ~g~in Little Havana. + +[WFARE8:TAXI1] +~g~Fahrtziel ~w~'die Polizeistation' ~g~in Downtown. + +[WFARE9:TAXI1] +~g~Fahrtziel ~w~'das Krankenhaus' ~g~in Downtown. + +[WFARE10:TAXI1] +~g~Fahrtziel ~w~'das Krankenhaus' ~g~in Little Havana. + +[WFARE11:TAXI1] +~g~Fahrtziel ~w~'der Stadium' ~g~in Downtown. + +[WFARE12:TAXI1] +~g~Fahrtziel ~w~'die Pizzagaststãtte' ~g~in Little Haiti. + +[WFARE13:TAXI1] +~g~Fahrtziel ~w~'die Pizzagaststãtte' ~g~in Downtown. + +[WFARE14:TAXI1] +~g~Fahrtziel ~w~'die Docks' ~g~in Viceport. + +[WFARE15:TAXI1] +~g~Fahrtziel ~w~'die Apotheke' ~g~in Little Haiti. + +[FARE2:TAXI1] +~g~Fahrtziel ~w~'Malibu Club' ~g~in Vice Point. + +{=================================== MISSION TABLE TAXICUT ===================================} + +[TAXC_A:TAXICUT] +Schãtze, sie sind der neue Besitzer. + +[TAXC_B:TAXICUT] +Sind Sie 'n Mafioso? Oder vom Kartell? Sehen nicht aus wie ein Mexikaner. + +[TAXC_C:TAXICUT] +Egal. Halten Sie schon endlich Ihre Predigt von wegen 'Jetzt wird alles anders', + +[TAXC_D:TAXICUT] +bedrohen Sie ein paar von den Fahrern- + +[TAXC_E:TAXICUT] +aber nicht Ted, der ist gerade an der Leiste operiert. + +[TAXC_F:TAXICUT] +Tja, also, hier wird sich einiges ãndern, Lady. + +[TAXC_G:TAXICUT] +Aber nicht doch, Jungchen. Überlassen Sie das lieber mir - + +[TAXC_H:TAXICUT] +Ich mach das schon seit Jahren. + +[TAXC_I:TAXICUT] +Alles mal herhören. + +[TAXC_J:TAXICUT] +Wir haben eine neue Geschãftsleitung, und es wird sich wieder mal einiges ãndern hier. + +[TAXC_K:TAXICUT] +Unsere neue Geschãftsleitung, die- + +[TAXC_L:TAXICUT] +Von welcher Gang sind Sie? + +[TAXC_M:TAXICUT] +Ich gehöre keiner Gang an. + +[TAXC_N:TAXICUT] +Und wie heißen Sie, junger Mann? + +[TAXC_O:TAXICUT] +Vercetti, Tommy Vercetti. + +[TAXC_P:TAXICUT] +Unsere neue Geschãftsleitung, die Vercetti Gang, + +[TAXC_Q:TAXICUT] +wird dafür sorgen, dass wir keinen Ãrger kriegen. + +[TAXC_R:TAXICUT] +Capiche? Ende! + +[TAXC_S:TAXICUT] +Wie fanden Sie das 'Capiche'? Ich fand's gut. + +[TAXC_T:TAXICUT] +Also, so ist das immer gelaufen: + +[TAXC_U:TAXICUT] +Wir führen die Firma weiter wie gewohnt. + +[TAXC_V:TAXICUT] +Wenn die Konkurrenz Ãrger macht, gebt ihr ihnen eines auf die Mütze. + +[TAXC_W:TAXICUT] +Dann geben die uns eines auf die Mütze. + +[TAXC_X:TAXICUT] +Dann geben sie denen eines auf die Mütze. + +[TAXC_Y:TAXICUT] +Und so weiter, und so fort. Kapiert? + +[TAXC_Z:TAXICUT] +Ãh, ja, ich glaub schon. + +[TAXC_A1:TAXICUT] +Schnappen Sie sich ein Taxi aus der Garage, wenn Sie Lust haben. + +{=================================== MISSION TABLE TAXIWA1 ===================================} + +[OUTTIME:TAXIWA1] +~r~Zu langsam, Mann, zu langsam! + +[TAX1_1:TAXIWA1] +Ok, eine V.I.P. müsste von Starfish Island abgeholt werden. Jemand interessiert? + +[TAX1_2:TAXIWA1] +Tommy hier. Ich übernehme das. + +[TAX1_3:TAXIWA1] +Das ist meine Fuhre. Hau ab! + +[TAX1_4:TAXIWA1] +Los, los, steigen Sie ein. Schnell! + +[TAX1_5:TAXIWA1] +Ok, ok! Aber tun Sie mir nichts! + +[TAXW1_1:TAXIWA1] +~g~Hol die V.I.P. auf Starfish Island ab. + +[TAXW1_2:TAXIWA1] +~g~Hol die V.I.P. zurück! Schalte den anderen Wagen aus! + +[TAXW1_3:TAXIWA1] +~r~Die V.I.P. ist Geschichte! + +[TAXW1_4:TAXIWA1] +~r~Die V.I.P. wurde abgesetzt! + +[TAXW1_6:TAXIWA1] +~g~Bring die V.I.P zum Flughafen! + +{=================================== MISSION TABLE TAXIWA2 ===================================} + +[TAX2_1:TAXIWA2] +An alle Wagen. Wir kriegen nirgends Fahrgãste. Was ist los mit euch? + +[TAX2_2:TAXIWA2] +VC-Taxi ist dauernd schneller als wir. Die haben einfach zu viele Autos. Keine Chance. + +[TAX2_3:TAXIWA2] +Mr. Vercetti, wenn Sie zufãllig mithören: Sie müssen ein paar VC-Taxis ausschalten, sonst sind wir pleite! + +[TAXW2_1:TAXIWA2] +~g~Schalte 3 Taxis der Konkurrenz aus! + +{=================================== MISSION TABLE TAXIWA3 ===================================} + +[TAX3_1:TAXIWA3] +Wagen 13, eine Miss Cortez möchte von Ihnen ganz persönlich in Downtown abgeholt werden. + +[TAX3_2:TAXIWA3] +Ok, verstanden. Wagen 13 Ende. + +[TAX3_3:TAXIWA3] +Hmmm, keine Spur von Mercedes... + +[TAXW3_3:TAXIWA3] +~g~Schalte das Taxi des Anführers aus! + +[TAXW3_2:TAXIWA3] +~g~Halte durch, bis die Zeit abgelaufen ist. + +[TAX_AS1:TAXIWA3] +TAXIUNTERNEHMEN ERWORBEN + +[TAX_AS2:TAXIWA3] +~g~Kaufman-Taxis generiert nun bis zu $~1~ Einkünfte. Hol dir das Geld regelmãßig ab. + +[TAX3_4:TAXIWA3] +Wird Zeit, dass der Schutzengel von Kaufman-Taxis eine vor den Latz kriegt! + +[TAX3_5:TAXIWA3] +Hey, Freundchen, dir zieh ich das Fell über die Ohren! + +{ reVC updates } +{ new languages } +[FEL_JAP] +JAPANISCH + +[FEL_POL] +POLNISCH + +[FEL_RUS] +RUSSISCH + +{ new display menus } +[FET_GFX] +GRAPHICS SETUP + +[FED_MIP] +MIP MAPPING + +[FED_AAS] +ANTI ALIASING + +[FED_FIL] +TEXTURE FILTERING + +[FED_BIL] +BILINEAR + +[FED_TRL] +TRILINEAR + +[FED_WND] +WINDOWED + +[FED_FLS] +FULLSCREEN + +[FEM_CSB] +CUTSCENE BORDERS + +[FEM_SCF] +SCREEN FORMAT + +[FEM_ISL] +MAP MEMORY USAGE + +[FEM_LOW] +LOW + +[FEM_MED] +MEDIUM + +[FEM_HIG] +HIGH + +[FEM_2PR] +PS2 ALPHA TEST + +[FEC_FRC] +FREE CAM + +{ Linux joy detection } +[FEC_JOD] +DETECT JOYSTICK + +[FEC_JPR] +Press any key on the joystick of your choice that you want to use on the game, and it will be selected. + +[FEC_JDE] +Detected joystick + +{ mission restart } +[FET_RMS] +MISSION WIEDERHOLEN + +[FESZ_RM] +WIEDERHOLEN? + +[FED_VPL] +VEHICLE PIPELINE + +[FED_PRM] +PED RIM LIGHT + +[FED_RGL] +ROAD GLOSS + +[FED_CLF] +COLOUR FILTER + +[FED_WLM] +WORLD LIGHTMAPS + +[FED_MBL] +MOTION BLUR + +[FEM_SIM] +SIMPLE + +[FEM_NRM] +NORMAL + +[FEM_MOB] +MOBILE + +[FED_MFX] +MATFX + +[FED_NEO] +NEO + +[FEM_PS2] +PS2 + +[FEM_XBX] +XBOX + +[FEC_IVP] +INVERT PAD VERTICALLY + +[FEM_NON] +NONE + +[FEC_DS2] +DUALSHOCK 2 + +[FEC_DS3] +DUALSHOCK 3 + +[FEC_DS4] +DUALSHOCK 4 + +[FEC_360] +XBOX 360 CONTROLLER + +[FEC_ONE] +XBOX ONE CONTROLLER + +[FEC_TYP] +GAMEPAD TYPE + +[FET_AGS] +GAMEPAD SETTINGS + +[FEM_AUT] { aspect ratio related } +AUTO [DUMMY] THIS LABEL NEEDS TO BE HERE !!! diff --git a/utils/gxt/italian.txt b/utils/gxt/italian.txt index c9a966a..4773cde 100644 --- a/utils/gxt/italian.txt +++ b/utils/gxt/italian.txt @@ -1,398 +1,57 @@ -[LETTER1] -abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789"$,.'-?!!SDBF - -[DEFNAM] -Claude---------------------- +{ + New strings are at the bottom of file. + Do not change the order of strings. + You can fix the typos of existing translation but please refrain from + unnecessary edits like rephasing because you think it suits better for your taste. +} [IN_VEH] -~w~Ehi! Torna nel ~b~veicolo! - -[IN_VEH2] -~w~Hai bisogno di un veicolo per questo lavoro! - -[IN_BOAT] -~w~Hai bisogno di una barca per questo lavoro! +~g~Ehi! Torna nel veicolo! [HEY] -~w~Non procedere da solo, stai con i tuoi compagni! - -[HEY2] -~w~Non allontanarti, stai col tuo gruppo! - -[HEY3] -~w~Hai lasciato indietro 8-Ball! Torna a prenderlo! - -[HEY6] -~w~Hai abbandonato il tuo onore con lo Yakuza Kanbu. Devi proteggerlo! - -[HEY7] -~w~Un'arma extra potrebbe essere utile. Torna a prendere il tuo contatto! - -[HEY9] -~w~Vuoi sapere le ultime novità? Vai a trovare il contatto! - -[GATE_1] -~w~I Sindacco apriranno solamente a una delle loro macchine. - -[HELPA] -~w~Questo è il tuo ~h~rifugio. - -[HELPB] -~w~Quando non sei in missione, puoi salvare i tuoi progressi raccogliendo l'~h~icona di salvataggio~w~. Il tempo avanzerà di 6 ore. - -[HELPC] -~w~I veicoli che si trovano nel ~h~garage vicino all'ingresso~w~ verranno conservati quando salvi la partita. - -[HELPD] -Per uscire dal rifugio, cammina sul ~h~segno. - -[HELP0] -~w~Premi~h~ ~k~ ~VEEE~ ~w~per entrare o uscire da un veicolo. - -[HELP1] -~w~Fermati al centro del ~h~segno giallo. +~g~Non procedere da solo, stai insieme ai tuoi compagni! [HELP3] -~w~Puoi scattare per un breve periodo di tempo prima di stancarti. +Ricorda che puoi eseguire uno scatto solo per brevi tratti. -[HELP4] -~w~Premi~h~ ~k~ ~VEACC~ ~w~per ~h~accelerare,~h~ ~k~ ~VESTR~ ~w~per sterzare. +[HELP4_D] +Sposta la ~h~levetta analogica destra~w~ verso l'alto per ~h~accelerare~w~. -[HELP5] -~w~Premi~h~ ~k~ ~VEBRK~ ~w~per ~h~frenare~w~ oppure per fare ~h~inversione~w~ se il veicolo è fermo. +[HELP5_D] +Sposta la ~h~levetta analogica destra~w~ verso il basso per ~h~frenare~w~ o, se il veicolo è fermo, per inserire la ~h~retromarcia~w~. -[HELP6] -~w~Premi~h~ ~k~ ~VEHB~ ~w~per usare il ~h~freno a mano. +[HELP7_A] +Tieni premuto il ~h~~k~~PED_LOCK_TARGET~~w~ per ~h~mirare~w~ con il fucile di precisione. -[HELP7] -~w~Tieni premuto~h~ ~k~ ~PDLT~ ~w~per mirare con un fucile da cecchino. - -[HELP8] -~w~Usa~h~ ~k~ ~SNZI~ ~w~e~h~ ~k~ ~SNZO~ ~w~per ~h~ingrandire o ridurre~w~ quando stai mirando. +[HELP7_D] +Tieni premuto il ~h~~k~~PED_LOCK_TARGET~~w~ per ~h~mirare~w~ con il fucile di precisione. [HELP10] -~w~La ~h~stella gialla~w~ indica che sei ~h~ricercato~w~: gli agenti di polizia cercheranno di arrestarti. +Questa stella indica il tuo livello di sospetto. [HELP11] -~w~Quando appaiono più stelle, la polizia cerca di fermarti con più impegno. - -[HELP12] -~w~Cammina sul ~h~segno giallo~w~ per iniziare una missione. +Più stelle hai, maggiore è il tuo livello di sospetto. [HELP13] -~w~Cerca delle scorciatoie non segnalate sul ~h~radar~w~ e usale a tuo vantaggio! - -[HELP14] -~w~Usa il ~h~radar~w~ per orientarti in città: segui il ~h~segnale giallo~w~ per raggiungere il ~h~rifugio. - -[HELP16] -~w~Usa~h~ ~k~ ~VESTR~ ~w~per sterzare. - -[HELP17] -~w~Phil Cassidy: per mercanzia di grosso calibro. È in arrivo nuova merce! - -[HELP18] -~w~Consegnata nuova merce al negozio d'armi di Phil Cassidy! - -[HELP18B] -~w~Ora puoi prendere il ~h~mitragliatore~w~ da Phil Cassidy! - -[HELP19A] -~w~Per eseguire una ~h~raffica laterale~w~, tieni premuto~h~ ~k~ ~VELL~ ~w~o~h~ ~k~ ~VELR~ ~w~e spara usando~h~ ~k~ ~VEWEP~. - -[HELP19C] -~w~Puoi eseguire una raffica laterale solo se hai una ~h~mitragliatrice. - -[HELP19D] -~h~Le moto ~w~ti permettono di ~h~sparare avanti~w~ usando~h~ ~k~ ~VEWEP~. - -[HELP19F] -~w~Puoi sparare avanti solo se hai una ~h~mitragliatrice. - -[HELP20] -~w~Hai trovato una ~h~bustarella della polizia!~w~ Raccogliendole puoi ridurre il tuo ~h~livello di sospetto~w~ di una stella! - -[HELP21] -~w~Usa~h~ ~k~ ~PDCWE~ ~w~per cambiare arma quando sei a piedi. - -[HELP22] -~w~Per trovare il ~h~magazzino di Vincenzo~w~, segui la ~h~V~w~ sul radar. - -[HELP23] -~w~Se il segnale è un ~h~triangolo rivolto verso il basso~w~, ~h~l'obiettivo~w~ è sotto di te. - -[HELP24] -~w~Tieni premuto~h~ ~k~ ~VELL~ ~w~o~h~ ~k~ ~VELR~ ~w~per guardare a ~h~sinistra o destra~w~ in un veicolo. Premi entrambi per guardare ~h~indietro. - -[HELP25] -~w~Premi~h~ ~k~ ~CVEIW~ ~w~per cambiare ~h~la visuale. - -[HELP26] -~w~Salta su una barca e premi~h~ ~k~ ~VEEE~ ~w~per guidarla. - -[HELP27] -~w~Se sei nei pressi di una barca, premi~h~ ~k~ ~VEEE~ ~w~per salire a bordo. - -[HELP29] -~w~Premi~h~ ~k~ ~VEHN~ ~w~per suonare il ~h~clacson~w~. - -[HELP30] -~w~Usa~h~ ~k~ ~VECRS~ ~w~per scegliere le ~h~stazioni radio. - -[HELP33] -~w~Ora che i killer sono stati pagati, porteranno a termine il loro lavoro a qualunque costo. - -[HELP34] -~w~Tieni premuto~h~ ~k~ ~VELB~ ~w~per guardare indietro quando sei in macchina. - -[HELP38] -~w~Se uccidi qualcuno in possesso di un'arma, questa apparirà a terra. - -[HELP40] -~w~Quando sei a piedi usa~h~ ~k~ ~PDLOO~ ~w~per guardarti attorno. - -[HELP58] -~w~Tieni premuto~h~ ~k~ ~PDLT~ ~w~per ~h~agganciare un bersaglio~w~ e premi~h~ ~k~ ~PDFW~ ~w~per sparare! - -[HELP59] -~w~Quando hai agganciato, usa~h~ ~k~ ~PDCTL~ ~w~per cambiare bersaglio. - -[HELP60] -~w~Alcuni barili esplodono se colpiti, ma ricordati di stare a distanza! - -[TANK] -~w~Usa~h~ ~k~ ~VEWEA~ ~w~per mirare con il cannone del Rhino e~h~ ~k~ ~VEWEP~ ~w~per sparare. - -[ANSWER] -~w~Premi~h~ ~k~ ~ANS~ ~w~per rispondere al cellulare e~h~ ~k~ ~VEEE~ ~w~per agganciare. - -[BOMB] -~w~Portando una macchina dentro il negozio di 8-Ball, potrai montare una ~h~bomba~w~ al prezzo di ~h~500$~w~. - -[BRIDGE1] -~w~Callahan Bridge: in costruzione. Data di fine lavori: maggio 1998 - -[STRIK_1] -~w~Sarai in grado di usare il ~h~traghetto~w~ per Staunton Island al termine dello sciopero. - -[SPRAY] -~w~Guida il tuo veicolo nel ~h~Pay 'n' Spray~w~ per annullare il ~h~livello di sospetto~w~, ~h~ riparare ~w~e ~h~riverniciare ~w~la carrozzeria per ~h~100$. - -[S_TRN_1] -~w~Puoi usare le ~h~metropolitane~w~ per muoverti a Liberty City. Premi~h~ ~k~ ~VEEE~ ~w~per ~h~entrare ~w~o ~h~uscire~w~ da un treno. - -[TUBE1] -~w~All'apertura della stazione, sarai in grado di prendere la ~h~metropolitana~w~ fino a Staunton Island. - -[TUBE2] -~w~All'apertura della stazione, sarai in grado di raggiungere l'~h~aeroporto internazionale Francis~w~. - -[TUBE_2] -~w~Per salire su una ~h~metropolitana~w~, premi~h~ ~k~ ~VEEE~. - -[SPRAY1] -~w~Fermandoti al ~h~Pay 'n' Spray~w~ annullerai il tuo ~h~livello di sospetto~w~, ~h~riparerai ~w~e ~h~rivernicerai ~w~il tuo veicolo. Di solito costa ~h~100$~w~, ma questa volta è gratis. - -[HELPE31] -~w~Durante il gioco, verranno sbloccati nuovi vestiti che possono essere recuperati da Mr. Benz. - -[HELPE32] -~w~Durante il gioco, avrai l'opportunità di comprare armi più potenti presso Ammu-Nation. - -[HELPCOM] -~w~Nuovi abiti sbloccati al rifugio! - -[HELP41] -~w~Fermati dentro il ~h~Pay 'n' Spray~w~ per riverniciare e riparare la tua macchina. Segui la ~h~bomboletta spray~w~ sul radar per raggiungere il ~h~Pay 'n' Spray. - -[PAGEB1] -~w~La ~h~pistola~w~ è disponibile al tuo rifugio! - -[PAGEB10] -~w~Hai trovato tutti i pacchetti speciali! Ecco una ricompensa di ~h~50.000$! - -[EXPO_W] -~w~A Love Media serve uno di questi modelli! - -[FERRY_2] -~w~Torna quando c'è un traghetto ancorato. - -[FERRY_3] -~w~Il tuo veicolo non può salire sul traghetto! - -[FERRY_4] -~w~I criminali ricercati non possono salire sul traghetto! - -[FERRY_5] -~w~Hai bisogno di ~h~25$~w~ per il biglietto. Torna quando avrai abbastanza soldi. - -[FERRY_6] -~w~Non puoi usare un traghetto durante una missione. - -[FERR_SK] -~w~Premi~h~ ~k~ ~TRSK~ ~w~per saltare il viaggio. - -[FERR_C1] -~w~Traghetto per Staunton. Costo: ~h~25$~w~. Premi~h~ ~k~ ~TGSUB~ ~w~per comprare un biglietto. - -[FERR_C2] -~w~Traghetto per Portland. Costo: ~h~25$~w~. Premi~h~ ~k~ ~TGSUB~ ~w~per comprare un biglietto. - -[A_H1] -~w~~k~ ~AMBUY~ ~w~per comprare. ~n~~k~ ~AMEXI~ ~w~per uscire. - -[A_UZI_A] -~w~La mini-mitraglietta è disponibile da Ammu-Nation! - -[AMMU] -~w~Le armi saranno disponibili da ~h~Ammu-Nation~w~ all'arrivo di nuova merce. Mi spiace per l'inconveniente. - -[WANT_A] -~w~Se vieni ~h~'beccato'~w~, verrai portato alla più vicina stazione di polizia. - -[WANT_B] -~w~Qualsiasi missione stessi affrontando verrà considerata fallita e i poliziotti ti prenderanno tutte le armi e parte dei risparmi. - -[WANT_C] -~w~Puoi essere ~h~'beccato'~w~ solo se hai un ~h~livello di sospetto~w~, rappresentato da stelle nell'angolo superiore destro dello schermo. - -[WANT_D] -~w~Più stelle possiedi, più la polizia cercherà di fermarti. - -[WANT_E] -~w~Ci sono vari modi per ridurre il livello di sospetto: tieni gli occhi aperti. - -[WANT_F] -~w~Mentre stai guidando, entra in un ~h~Pay 'n' Spray~w~ per eliminare il tuo livello di sospetto. - -[HEAL_A] -~w~Quando vieni ~h~'massacrato'~w~, verrai trasportato al più vicino ospedale. - -[HEAL_B] -~w~Perderai tutte le tue armi e fallirai la missione in corso. Parte dei tuoi risparmi servirà per le cure mediche. - -[HEAL_C] -~w~La tua ~h~salute~w~ è indicata da una barra rossa in alto a destra sullo schermo. - -[HEAL_D] -~w~Esistono diversi modi per curarsi: tieni gli occhi aperti. - -[H_WE_01] -~w~Cammina sulle armi per raccoglierle. Puoi farlo solamente quando sei a piedi. - -[H_WE_02] -~w~Se hai già un'arma di quel tipo, premi~h~ ~k~ ~PUCF~ ~w~per rimpiazzare la tua arma con quella nuova. - -[PU_CF] -~w~Premi~h~ ~k~ ~PUCF~ ~w~per prendere quest'arma. Ogni arma dello stesso tipo andrà perduta. - -[CLOTHA] -~h~~k~ ~AMMOV~ ~w~per vedere gli abiti. ~h~~k~ ~AMBUY~ ~w~per cambiarti d'abito. ~h~~k~ ~AMEXI~ ~w~per annullare. - -[CLOTHB] -~w~Qui potrai cambiarti d'abito in qualsiasi momento. - -[SIREN_1] -~w~Puoi attivare o disattivare le ~h~sirene~w~ premendo~h~ ~k~ ~VEHN~. - -[FHOSE_1] -~w~Tieni premuto~h~ ~k~ ~VEWEP~ ~w~per usare il cannone ad acqua. - -[PHOTO1] -~w~Tieni premuto~h~ ~k~ ~PDLT~ ~w~per mirare con la macchina fotografica. - -[PHOTO2] -~w~Mentre stai mirando con la macchina fotografica, usa~h~ ~k~ ~SNZI~ ~w~e~h~ ~k~ ~SNZO~ ~w~per ~h~ingrandire e ridurre. - -[PHOTO3] -~w~Premi~h~ ~k~ ~PDFW~ ~w~per scattare una foto mentre stai mirando. - -[BENZ_H1] -~w~Segui la ~h~maglietta~w~ sul radar per trovare ~h~il negozio di vestiti Mr. Benz. - -[BENZ_LE] -~w~Il ~h~completo dei Leone~w~ è disponibile al rifugio. - -[BENZ_GU] -~w~La ~h~divisa degli Avenging Angels~w~ è disponibile al rifugio. - -[BENZ_CH] -~w~La ~h~divisa da autista~w~ è disponibile al rifugio. - -[BENZ_TU] -~w~Lo ~h~smoking~w~ è disponibile al rifugio. - -[ATUTOR] -~w~Le missioni Paramedico possono essere attivate o disattivate premendo~h~ ~k~ ~TGSUB~. - -[CTUTOR] -~w~Le missioni Vigilante possono essere attivate o disattivate premendo~h~ ~k~ ~TGSUB~. - -[FTUTOR] -~w~Le missioni Pompiere possono essere attivate o disattivate premendo~h~ ~k~ ~TGSUB~. - -[TRATUT1] -~w~Le missioni Sprint-atore ecologico possono essere attivate o disattivate premendo~h~ ~k~ ~TGSUB~. - -[TTUTOR] -~w~Le missioni Tassista possono essere attivate o disattivate premendo~h~ ~k~ ~TGSUB~. - -[A_COMP2] -~w~Missione Paramedico: livello 12 completato! Non ti stancherai mentre corri! - -[FIREPRO] -~w~Missione Pompiere: livello 12 completato! Ora sei ignifugo! - -[RCHELP] -~w~Per far ~h~esplodere~w~ la macchina radiocomandata, premi~h~ ~k~ ~VEWEP~. - -[TAXIH1] -~w~Fermati vicino a un ~h~pedone evidenziato~w~ per farlo salire a bordo e portarlo a destinazione prima che scada il tempo. - -[TIPHLP] -~h~La barra delle mance~w~ si accorcia se perdi ~h~tempo~w~ o se il taxi viene ~h~danneggiato. - -[ANG_E3] -~w~Cerca altri Avenging Angels a Chinatown. - -[ANGOUT] -~w~Torna quando avrai indossato una divisa da ~h~Avenging Angel~w~. - -[ANGCOM2] -~w~Missioni Avenging Angels di Staunton: livello 15 completato! Adesso non perderai soldi se vieni arrestato! - -[ANGCOM3] -~w~Missioni Avenging Angels di Shoreside: livello 15 completato! Troverai un veicolo 'speciale' al rifugio! - -[TVOHELP] -~w~Ritorna indossando la ~h~maschera da hockey. +In alcuni casi potresti dover utilizzare passaggi non segnati sul radar. [TIMER] Questa è una missione a tempo: devi portarla a termine prima che il contatore raggiunga lo zero. -[GARAGE] -Porta la macchina al garage, poi esci. +[HORN] +~g~Suona il clacson. -[TRASH] -~g~Hai conciato male la tua macchina! Falla riparare! - -[WRECKED] -~r~Il veicolo è a pezzi! - -[SPOOK] -SPAVENTOMETRO - -[SPOTTED] -~r~Ti sono addosso! +[NOMONEY] +~g~Ti servono più soldi! [REWARD] -~w~Ricompensa: ~1~$ +RICOMPENSA ~1~$ -[GAMEOVR] -FINE PARTITA +[M_FAIL] +MISSIONE FALLITA! -[Z] -Valore asse Z: ~1~ +[M_PASS] +MISSIONE COMPLETATA! ~1~$ [DEAD] MASSACRATO! @@ -400,17 +59,29 @@ MASSACRATO! [BUSTED] BECCATO! -[GOODBOY] -~w~50$ come bonus Buon Cittadino!! +[WEATHE1] +FORZA TEMPO SOLEGGIATO + +[WEATHE2] +FORZA TEMPO MOLTO SOLEGGIATO + +[WEATHE3] +FORZA TEMPO NUVOLOSO + +[WEATHE4] +FORZA TEMPO PIOVOSO + +[WEATHE5] +FORZA TEMPO NEBBIOSO + +[WEATHE6] +TEMPO NORMALE [NUMBER] ~1~ -[SCORE] -~1~$ - [LOADCAR] -CARICAMENTO VEICOLO... (PREMI IL TASTO L PER ANNULLARE) +CARICAMENTO VEICOLO... (PREMI L1 PER ANNULLARE) [CARSOFF] Veicoli disabilitati. @@ -430,746 +101,1271 @@ Modalità trucchi disattivata [IMPORT1] Esci fuori e aspetta il tuo veicolo. -[KE_PLYR] -Giocatore +[PAGEB11] +Lanciafiamme depositato nel nascondiglio -[KE_CTCS] -Contatti +[WANT_A] +Verrai arrestato solo se hai un ~h~livello di sospetto~w~. -[KE_WEPS] -Armi +[WANT_B] +Il tuo ~h~livello di sospetto~w~ è rappresentato da una riga di stelle nell'angolo superiore destro dello schermo. -[KE_ADR] -Adrenalina +[WANT_C] +Adesso hai un ~h~livello di sospetto~w~ pari a uno... -[KE_BRIB] -Bustarella +[WANT_D] +due... -[KE_HLTH] -Salute +[WANT_E] +tre... -[KE_KILF] -Furia omicida +[WANT_F] +Man mano che il tuo ~h~livello di sospetto~w~ aumenta, attirerai l'attenzione di forze dell'ordine sempre più potenti. -[KE_ARM] -Protezione +[WANT_G] +Se vieni ~h~'beccato'~w~, verrai portato alla più vicina stazione di polizia. -[KE_USJ] -AcU +[WANT_H] +I poliziotti prenderanno tutte le tue armi e parte dei tuoi risparmi come bustarella. -[KE_PKG] -Pacchetto speciale +[WANT_I] +Qualsiasi missione stavi affrontando verrà considerata come fallita. -[KE_INFO] -Informazioni +[WANT_J] +Scoprirai alcuni modi per ridurre il tuo livello di sospetto procedendo nel gioco. -[DAM] -Danno +[WANT_K] +Se sei in un veicolo, i ~h~carozzieri~w~ potranno ~h~azzerare il tuo livello di sospetto~w~. -[KILLS] -Uccisioni +[HEAL_B] +Quando sei ~h~'massacrato'~w~, verrai trasportato al più vicino ospedale. -[TIME] -Tempo +[HEAL_C] +Perderai tutte le tue armi e i dottori prenderanno parte dei tuoi risparmi per rimetterti in sesto. -[STOPS] -Fermate +[HEAL_E] +Scoprirai alcuni modi per curarti o per proteggerti dagli attacchi procedendo nel gioco. -[BULL] -Lingotto +[SAVE1] +Passa attraverso la corona per ~h~salvare la partita~w~. Non puoi salvare durante una missione. -[EVID] -Prove +[SAVE2] +Qualsiasi veicolo parcheggiato nel garage verrà salvato insieme alla partita. -[HEALTH] -Danni +[AMMU] +Entra in Ammu-Nation per comprare un'arma. -[COLLECT] -Raccolti +[R_TIME] +TEMPO DI GARA: -[LEVEL] -Livello +[PROP_1] +Non hai abbastanza soldi per comprare questa proprietà. -[SALES] -Vendite - -[CITYZON] -Liberty City - -[VICE_C] -Liberty City +[PROP_2] +Non puoi comprare una proprietà mentre sei in missione. [IND_ZON] -Portland - -[PORT_W] -Callahan Point - -[PORT_S] -Atlantic Quays - -[PORT_E] -Portland Harbor - -[PORT_I] -Trenton - -[S_VIEW] -Portland View - -[CHINA] -Chinatown - -[EASTBAY] -Portland Beach - -[LITTLEI] -Saint Mark's - -[REDLIGH] -Red Light District - -[TOWERS] -Hepburn Heights - -[HARWOOD] -Harwood - -[ROADBR1] -Callahan Bridge - -[ROADBR2] -Callahan Bridge - -[TUNNELP] -Porter Tunnel - -[BOMB1] -Garage di 8-Ball +Vice City Beach [COM_ZON] -Staunton Island +Vice City Mainland -[STADIUM] -Aspatria +[BEACH1] +Ocean Beach -[STADIU2] -Aspatria +[BEACH2] +Washington Beach -[STADIU3] -Aspatria +[BEACH3] +Vice Point -[HOSPI_2] -Rockford +[GOLFC] +Leaf Links -[UNIVERS] -Liberty Campus +[STARI] +Starfish Island -[CONSTRU] -Fort Staunton +[DOCKS] +Porto -[PARK] -Belleville Park +[HAVANA] +Little Havana -[COM_EAS] -Newport +[HAITI] +Little Haiti -[SHOPING] -Bedford Point +[PORNI] +Prawn Island -[SHOP2] -Bedford Point +[DTOWN] +Downtown -[SHOP3] -Bedford Point +[VICE_C] +Vice City -[YAKUSA] -Torrington +[A_PORT] +Escobar International -[SUB_ZON] -Shoreside Vale +[JUNKY] +Discarica -[AIRPORT] -Aeroporto Int. Francis +[PISTOL] +Pistola -[PROJECT] -Wichita Gardens +[PYTHON] +.357 -[SUB_IND] -Pike Creek +[UZI] +Uz-1 -[SWANKS] -Cedar Grove +[TEC9] +Tec 9 -[BIG_DAM] -Cochrane Dam +[M4] +M4 -[SUB_ZO2] -Shoreside Vale +[INGRAM] +Mac -[SUB_ZO3] -Shoreside Vale +[MP5] +MP + +[RUGER] +Kruger + +[SNIPE] +Fucile di precisione + +[GRENADE] +Granate + +[SHOTGN1] +Fucile a pompa + +[SHOTGN2] +S.P.A.S. 12 + +[SHOTGN3] +Fucile a canne mozze + +[ARMOUR] +Giubbotto antiproiettile + +[LASER] +.308 Fucile di precisione + +[BASEBAT] +Mazza da baseball + +[HAMMER] +Martello + +[SCREWD] +Cacciavite + +[CLEVER] +Mannaia + +[MACHETE] +Macete + +[KNIFE] +Coltello + +[KATANA] +Katana + +[CHAINSA] +Motosega + +[G_COST] +~1~$ [CAR_1] Ambulanza -[CAR_2] -Pompieri +[MALIBU] +Il club Malibu -[CAR_3] -Polizia +[MANSION] +Villa di Diaz -[CAR_4] -Vigilante +[TMANS] +Chez Tommy -[CAR_5] -Barracks +[STRIP] +Il club Pole Position -[CAR_6] -Rhino +[MALL1] +North Point Mall -[CAR_7] -Cruiser dell'FBI +[BANKINT] +El Banco Corrupto Grande -[CAR_8] -Securicar +[RANGE] +Poligono di tiro -[CAR_9] -Moonbeam +[POL_HQ] +Polizia di VC -[CAR_10] -Pullman +[INT_B] +Un vecchio amico -[CAR_11] -Flatbed +[INTB_1] +~g~Vai all'ufficio degli avvocati. -[CAR_12] -Linerunner +[LAW_1] +Il party -[CAR_13] -Nettezza +[LAW_2] +Rissa nel vicolo -[CAR_14] -Patriot +[LAW_3] +Furia sulla giuria -[CAR_15] -Mr Whoopee +[LAW_4] +Sommossa -[CAR_16] -Mule +[COL_1] +Fottuto traditore -[CAR_17] -Yankee +[COL_2] +Sparatoria al Mall -[CAR_18] -Pony +[COL_3] +Angeli custodi -[CAR_19] -Bobcat +[COL_4] +Sissignore, signore! -[CAR_20] -Rumpo +[COL_5] +Tutti sul ponte! -[CAR_21] -Blista +[COK_1] +L'inseguimento -[CAR_22] -Dodo +[COK_2] +Phnom Penh '86 -[CAR_23] -Autobus +[COK_3] +La barca più veloce -[CAR_24] -Sentinel +[COK_4] +Domanda e offerta -[CAR_25] -Cheetah +[KENT_1] +Il braccio della morte -[CAR_26] -Banshee +[ASS_1] +Eliminazione -[CAR_27] -Stinger +[BUD_1] +Estorsione -[CAR_28] -Infernus +[BUD_2] +Rissa al bar -[CAR_29] -Esperanto +[BUD_3] +Cop Land -[CAR_30] -Kuruma +[CAP_1] +Fuori l'esattore -[CAR_31] -Limousine +[FIN_1] +Tieniti stretto gli amici... -[CAR_32] -Perennial +[BANK_1] +Senza via di fuga? -[CAR_33] -Landstalker +[BANK_2] +Il tiratore -[CAR_34] -Manana +[BANK_3] +L'autista -[CAR_35] -Idaho +[BANK_4] +La rapina -[CAR_36] -Stallion +[CNT_1] +Sfornare verdoni -[CAR_37] -Taxi +[CNT_2] +Colpire il corriere -[CAR_38] -Vecchio taxi +[PORN_1] +Giro di reclutamento -[CAR_39] -Buggy +[PORN_2] +Il dodo del dildo -[SINDACO] -Sindacco Argento +[PORN_3] +La foto di Martha -[HEARSE] -Hearse +[PORN_4] +Riflettori sul punto G -[LANDSTK] -Landstalker +[TAX_1] +Taxi di Kaufman -[IDAHO] -Idaho +[TAXI_1] +VIP -[STINGER] -Stinger +[TAXI_2] +Rivalità amichevole -[LINERUN] -Linerunner +[TAXI_3] +Cabmaggedon -[PEREN] -Perennial +[ICE_1] +Distribuzione -[SENTINL] -Sentinel +[TEX_1] +Ferro quattro -[PATRIOT] -Patriot +[TEX_2] +Due in un colpo -[FIRETRK] -Pompieri +[TEX_3] +Il demolitore -[TRASHM] -Nettezza +[PHIL_1] +Corriere delle armi -[STRETCH] -Limousine +[PHIL_2] +Broda e Saigon -[MANANA] -Manana +[BIKE_1] +Due ruote d'acciaio -[INFERNS] -Infernus +[BIKE_2] +Bollire la pentola -[BLISTA] -Blista +[BIKE_3] +Valla a prendere! -[PONY] -Pony +[ROCK_1] +Il succo dell'amore -[MULE] -Mule +[ROCK_2] +Killer psicotico -[CHEETAH] -Cheetah +[ROCK_3] +Giro pubblicitario -[AMBULAN] -Ambulanza +[ROCK_4] +Love Fist! -[FBICAR] -Cruiser dell'FBI +[HAT_1] +Le polveri della zia -[MOONBM] -Moonbeam +[HAT_2] +Bombardamento! -[ESPERAN] -Esperanto +[HAT_3] +Tutto di nascosto -[TAXI] -Taxi +[CUB_1] +Gara sull'acqua -[KURUMA] -Kuruma +[CUB_2] +Carne da cannone -[BOBCAT] -Bobcat +[CUB_3] +Battaglia navale -[WHOOPEE] -Mr Whoopee +[CUB_4] +Voodoo a doppio taglio -[BFINJC] -BF Injection +[JOB_1] +Morte per strada -[POLICAR] -Polizia +[JOB_2] +Elimina la moglie -[ENFORCR] -Vigilante +[JOB_3] +Incidente... -[SECURI] -Securicar +[JOB_4] +L'ultima partenza -[BANSHEE] -Banshee +[JOB_5] +Risoluzione -[PREDATR] -Predator +[ANSWER] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per rispondere al cellulare. -[BUS] -Autobus +[MOB_01A] +Ciao vecchio mio! Sono Paul. Potrei avere delle informazioni per te, ma ti voglio parlare in privato. -[RHINO] -Rhino +[MOB_01B] +Mi sto godendo un aperitivo al Malibu. -[BARRCKS] -Barracks OL +[MOB_01C] +Credo che mi dovrai un favore o due dopo questo, carino. Ci vediamo dopo. -[BARRACK] -Barracks OL +[MOB_02A] +Ssssnniiiiffffff! Ehi! Tommy? Ciao, Tommy! -[TRAIN] -Treno +[MOB_02B] +Ci sono dei problemi alla stamperia. Faresti meglio ad andare a controllare. -[HELI] -Elicottero +[MOB_02C] +Un qualche tipo di casino. C'è qualcosa che non va. Devo andare. -[DODO] -Dodo +[MOB_03A] +Mr. Vercetti? Ho qui davanti a me un pezzo di carta che afferma -[COACH] -Pullman +[MOB_03B] +che lei si è preso carico dei debiti di BJ's Auto. -[CABBIE] -Vecchio taxi +[MOB_03C] +Con l'improvvisa scomparsa di BJ, non ho altra scelta -[STALION] -Stallion +[MOB_03D] +che ritenerla responsabile delle sue debolezze finanziarie. -[RUMPO] -Rumpo +[MOB_03E] +Finché questo debito non sarà ripagato, -[RCBANDT] -Bandit RC +[MOB_03F] +dovrà considerare le strade di Vice City non molto amichevoli. -[BELLYUP] -Furgone Triade +[MOB_04A] +Come butta, amico? -[MRWONGS] -Mr Wongs +[MOB_04B] +Ascolta Tommy, mi sono dimenticato di dirti che avremo bisogno di qualche gorilla extra per il concerto. -[MAFIACR] -Leone Sentinel +[MOB_04C] +C'è una banda di motociclisti e sarebbero una perfetta pubblicità. -[YARDICR] -Lobo Yardie +[MOB_04D] +Occupatene tu e ti farò accedere al back stage dello spettacolo, OK? -[YAKUZCR] -Stinger Yakuza +[MOB_05A] +Ehi, sono Mitch! Ottimo lavoro, Tommy: è bello riavere indietro la mia vecchia bambina. -[DIABLCR] -Stallion Diablo +[MOB_05B] +Dì a Mr. Kent Paul che avrà la sorveglianza per lo spettacolo. -[COLOMCR] -Cruiser del Cartello +[MOB_05C] +Hai la mia parola. -[HOODSCR] -Rumpo XL degli Hood +[MOB_05D] +Adesso tieniti fuori dai guai. -[AEROPL] -Aeroplano +[MOB_06A] +Tommy, si è parlato molto di te, ragazzo. -[SPEEDER] -Speeder +[MOB_06B] +Pensavo ti servisse un po' di calore, per cui la zia Poulet ti ha preparato una bella zuppa, hmmm? -[REEFER] -Reefer +[MOB_06C] +Passa a trovarmi in cucina ogni tanto, OK Tommy? -[PANLANT] -Panlantic +[MOB_08A] +Ehi, Tommy, ho pensato che ti potessero servire dei consigli. -[FLATBED] -Flatbed +[MOB_08B] +Quando hai un'operazione in corso, dovrai passare a ritirare i soldi della settimana. -[YANKEE] -Yankee +[MOB_08C] +Lascia pensare ai ragazzi che abbiano il controllo del posto e loro cercheranno di ridurne i profitti, OK? -[BORGNIN] -Bickle'76 +[MOB_08D] +Ehi Ken, so come far funzionare le cose, OK. -[TOYZ] -TOYZ +[MOB_08E] +OK, OK! Lo so che lo sai. Lo so. Stavo solo... -[MCLARN] -Lancer MF1 +[MOB_08F] +Ti stavo solo ricordando che lo so, cioè che tu sai che io so. -[SHELBY] -Hellenbach GT +[MOB_08G] +Solo per ricordartelo! -[SUBARU] -Impreza WRX +[MOB_08H] +Sì Ken, va bene... -[SUPRA] -Supra +[MOB_09A] +Ehi Leo! Ho del lavoro per te! -[SKYLINE] -Skoiloine +[MOB_09B] +Non sono Leo! -[CYCLONE] -Cyclone GT +[MOB_09C] +Ehi, se Leo scopre che hai il suo telefono, ti farà a pezzi! -[ESPRIT] -V8 Ghost +[MOB_09D] +Forse Leo è già morto. Forse ho ucciso Leo e ho preso il suo telefono: non ci hai pensato, idiota? -[MINI] -Tommy +[MOB_09E] +Hai ucciso Leo? Devi avere due grandi cojones. Vuoi lavorare per me? -[HOTROD] -Thunder-Rodd +[MOB_09F] +Passa dal bar di mio padre a Little Havana e ne possiamo parlare. -[CAMPVAN] -Rumpo elettorale +[MOB_10A] +Tommy! Senti, devo chiederti un favore. -[BALLOT] -Furgone elettorale +[MOB_10B] +Steve! Come va il film? -[GHOST] -Ghost +[MOB_10C] +Bene, bene. Senti ho, ehm, abbiamo bisogno di una scena di inseguimento, ma siamo a corto di denaro. -[ANGEL] -Angel +[MOB_10D] +Ho lasciato qualche macchina in città. Sono certo che sai cosa fare. -[ANGEL2] -Avenger +[MOB_10E] +OK Steve, terrò un occhio aperto. Ci vediamo! -[PIZZABO] -Pizza Boy +[MOB_11A] +Ciao figliolo, t'ho chiamato per darti un consiglio. -[NOODLBO] -Noodle Boy +[MOB_11B] +Ciao Avery. Come butta? -[FAGGIO] -Faggio +[MOB_11C] +Ci sono un sacco di opportunità in questa città se possiedi le proprietà giuste, mi segui? -[FREEWAY] -Freeway +[MOB_11D] +Tutto chiaro... -[SANCHEZ] -Sanchez +[MOB_11E] +Volevo dirti di tenere gli occhi aperti: potresti trovare l'occasione giusta per far soldi. Ci becchiamo! -[SANCH2] -Manchez +[MOB_11F] +Ciao, Avery. -[F_PASS1] -~w~Incendio spento! Ricompensa: ~1~$ +[MOB12_A] +Ehi Tommy! Sono Avery! Ascolta: sono piuttosto incasinato al momento + +[MOB12_B] +e un mio rappresentante ha bisogno di un accompagnatore fino a Gator Keys. + +[MOB12_C] +Sto cercando di acquistare del terreno da quelle parti, per cui mando qualcuno in avanscoperta. + +[MOB12_D] +Mi faresti un favore? Potresti controllare che arrivi a destinazione tutto intero? + +[MOB12_E] +Certo, nessun problema Avery. Dove vuoi che lo passi a prendere? + +[MOB12_F] +Sta finendo un lavoro presso il cantiere. Gli ho detto che saresti passato lì. + +[MOB12_G] +Nessun problema. Ci vediamo, Avery. + +[MOB13_A] +Vercetti? VERCETTI!!! Maledizione, mi devi aiutare! + +[MOB13_B] +Mr. Moffat? Come sta la famiglia? + +[MOB13_C] +Brutto maledetto, BASTARDO! Mi hai sentito? + +[MOB13_D] +Beh, è stato un piacere chiacchierare... + +[MOB13_E] +ASPETTA! Aspetta Vercetti... Tommy, posso chiamarti Tommy? + +[MOB13_F] +Siamo entrambi professionisti, vero? Sono certo che sai riconoscere un affare, vero? + +[MOB13_G] +Non ho tempo da perdere, arriva al punto. + +[MOB13_H] +SOLDI. I soldi sono il punto! + +[MOB13_I] +Sono fuggito nuovamente da quei maledetti, ma non ci metteranno molto a trovarmi... Pensano si tratti di uno stupido gioco! + +[MOB13_J] +Sono a un telefono pubblico da qualche parte in questo posto di merda. + +[MOB13_K] +Aiutami a scappare prima che mi prendano e... e... oddio... + +[MOB13_L] +Beh, sono impegnato per i prossimi... + +[MOB13_M] +No! Non fare lo stronzo con me, abbi cuore! Nessuno dovrebbe fare una... una cosa simile! + +[MOB13_N] +Sono in ginocchio, Tommy: nella polvere a chiederti pietà... + +[MOB13_O] +Beh, forse potrei passare da quelle parti, vediamo se riesco a trovarti... + +[MOB13_P] +Oddio, stanno arrivando! Ti supplico, muoviti, muoviti! + +[MOB_14A] +Ehi, ciao Tommy: vedrai che mi adorerai! + +[MOB_14B] +Un piccolo uccellino mi ha detto che la divisione SWAT di Vice City ha un deposito presso un'importante banca, + +[MOB_14C] +dove tengono tutte le bustarelle intascate nel corso degli anni, + +[MOB_14D] +un po' come una pensione per gli anni a venire. + +[MOB_14E] +Logicamente, se questa informazione dovesse aiutarti a ottenere i soldi, + +[MOB_14F] +immagino che ti sentiresti obbligato a passarmene una parte... + +[MOB_14G] +Me lo ricorderò, grazie Kent. + +[MOB_14H] +Sono Paul. Vengo dal Kent, vicino a Londra, cretino. + +[MOB_14I] +Le mie conoscenze di geografia non sono mai state un gran che. + +[MOB15_A] +Tommy, amico, sono Paul, dal Kent, + +[MOB15_B] +un paio di squinzie hanno il tuo nome scritto dappertutto giù al Malibu. + +[MOB15_C] +Di cosa stai parlando? + +[MOB15_D] +Squinzie. Passere. Chiaro no? Strafighe. E anche ben messe, non credo fossero mignotte... + +[MOB15_E] +Dovresti venire a dare un'occhiata. + +[MOB16_A] +Tommy, sono Paulo, que pasa amigo? + +[MOB16_B] +Che cosa vuoi Paul: non sono interessato a vestiti di marca taroccati. + +[MOB16_C] +Molto divertente, amico, ma lo sai che non tratto merce di seconda classe. + +[MOB16_D] +Nah, ti ho chiamato per sapere se potevo avere una parte nei tuoi film, + +[MOB16_E] +quando ero in Inghilterra ho fatto un sacco di cose, sai? + +[MOB16_F] +Ho attributi più forniti di te, amico. + +[MOB16_G] +Paul, grazie per l'offerta, lo terrò presente. + +[MOB16_H] +Davvero, non scordarti di me dopo tutto quello che ho fatto per te. + +[MOB16_I] +È proprio ciò che sto cercando di dimenticare... + +[MOB17_A] +Tommy Vercetti: come va, Mr. Pezzo Grosso? + +[MOB17_B] +Ho saputo le tue novità: un vero giocatore in città, eh... + +[MOB17_C] +Paul, sei ubriaco. + +[MOB17_D] +No, idiota. Non sono ubriaco. + +[MOB17_E] +Solo un paio di bicchierini e qualche pillola: non dormo da un paio di giorni, sai... + +[MOB17_F] +Comunque, niente prediche. + +[MOB17_G] +Non sono uno stupido. Chi ti ha portato in questa città? Chi? Io, ecco chi. + +[MOB17_H] +Davvero? + +[MOB17_I] +Davvero! + +[MOB17_J] +Paul, sta' buono. Sono stato occupato, non fare l'idiota. + +[MOB17_K] +Non sono un idiota, chiaro? Questo è ciò che hanno detto in riformatorio. + +[MOB17_L] +Stai forse cercando guai, amico? Beh, stai per trovarli! + +[MOB17_M] +Tommy, amico. Per favore. Sei la mia più grande speranza! Per favore, non ridere di me. + +[MOB17_N] +Paul, cerca di dormire, davvero. + +[MOB18_A] +Tommy, sono Paulo, come butta? Bene amico, comunque, volevo farti una chiamata. + +[MOB18_B] +Ossignore, amico, non crederai mai che razza di strafiga ho appena incontrato. + +[MOB18_C] +Non so esattamente chi fosse, ma passeggiava per Little Havana. + +[MOB18_D] +Ha detto che si chiamava Mercedes o qualcosa del genere. Oddio, dovresti proprio vedere questa gnocca. + +[MOB18_E] +Riuscirebbe a succhiare via la mina da una matita. Mi ha detto che ero il migliore che avesse mai avuto e via dicendo. + +[MOB18_F] +Dovresti farci un giro. Ci vediamo! + +[MOB19_A] +Tommy V, sono KP. Kent Paul. Gira voce che ti vogliano fare a pezzi. + +[MOB19_B] +Tieni gli occhi bene aperti, amico e ricorda: io non ti ho detto niente al riguardo. + +[MOB_20A] +Ehi Tommy, sono Paul. Ho appena sentito che sei stato un ragazzaccio cattivo. + +[MOB_20B] +Qualcuno si è offeso per il tuo comportamento da grand'uomo, e adesso è davvero arrabbiato. + +[MOB_20C] +Beh, non dire che non ti ho avvertito: vantarsi è un gioco pericoloso, amico. + +[MOB_20D] +Comunque, ho anche sentito che c'è una taglia sulla tua testa e che qualcuno ti ha già preso di mira, + +[MOB_20E] +per cui guardati la schiena e ricordati di me, amico. + +[MOB71_A] +Tommy, Tommy, sono Cortez. Que pasa? + +[MOB71_B] +La situazione è interessante. A lei come va? + +[MOB71_C] +Tommy, qui è sempre una battaglia. Scusami per la battuta scontata, ma abbiamo sventato un altro golpe. + +[MOB71_D] +La gente non smette mai di pretendere di più. + +[MOB71_E] +Da quando sono tornato da Vice City, abbiamo avuto tre rivoluzioni e quattro golpe falliti. + +[MOB71_F] +Fortunatamente, sono stato promosso ogni volta. + +[MOB71_G] +Ti volevo chiedere di Mercedes. + +[MOB71_H] +Sì? Cosa vuole sapere? + +[MOB71_I] +Oh Tommy, ho sentito tutte queste storie e non so cosa pensare. + +[MOB71_J] +Forse tutti si divertono a umiliarmi. + +[MOB71_K] +Forse pensa di poter fare ciò che vuole ma dimmi, Tommy: è tutto vero? + +[MOB71_L] +ma dimmi, Tommy: è tutto vero? + +[MOB71_M] +Che cosa? + +[MOB71_N] +Le storie che ho sentito: sta pensando davvero di diventare avvocato? + +[MOB71_O] +Oh Tommy, che vergogna. Noi Cortez siamo una famiglia all'antica e non permetteremo mai che una di noi diventasse avvocato. + +[MOB71_P] +Ti prego, dimmi che non è vero. Non credo resisterei al colpo. + +[MOB71_Q] +Colonnello, le assicuro che Mercedes non diventerà mai un avvocato. Non si preoccupi. + +[MOB71_R] +Grazie Tommy, la vergogna sarebbe schiacciante. Lei è una vera dama, non una parassita, capisci? + +[MOB71_S] +Capisco, Colonnello. + +[MOB71_T] +Comunque, Tommy, devi scusarmi: è appena arrivato il nuovo ministro degli interni. + +[MOB71_U] +Qualche anno fa, ho ucciso suo padre in un golpe fallito, per cui devo essere gentile. Buona giornata, amico. + +[MOB22_A] +Tommy, ti stai rivelando molto utile, amico. + +[MOB22_B] +Grazie, Cortez. Cosa mi dice del nostro accordo? + +[MOB22_C] +Tommy, sto lavorando senza sosta nel tentativo di raggiungere il fondo di questa fossa piena di bugie e inganni, + +[MOB22_D] +hai la mia parola al riguardo, ma nel frattempo, + +[MOB22_E] +ti prego di accettare i più sinceri ringraziamenti da parte della gente per cui stai lavorando. + +[MOB_25A] +Tommy, sono Cortez. I Francesi mi stanno causando tutti i problemi possibili. + +[MOB_25B] +Maledetti ipocriti. Hanno passato secoli a derubare la povera gente e adesso osano chiamare me ladro! + +[MOB_25C] +Avrò bisogno del tuo aiuto il prima possibile. + +[MOB_25D] +Sbrigati, Tommy: ho bisogno di te. Odio questi dannati Francesi. + +[MOB_26A] +Ehi, Tommy? + +[MOB_26B] +Sì? + +[MOB_26C] +Sono Baker. Volevo dirti che ho davvero apprezzato lo show. + +[MOB_26D] +Io e i ragazzi vogliamo ringraziarti e ricordarti + +[MOB_26E] +che hai tutto il nostro rispetto. Buona giornata, continua così. + +[MOB_29A] +Salve, parlo con Mr. Tommy Vercetti? + +[MOB_29B] +Sì. + +[MOB_29C] +Beh, ho sentito dire che sei tu l'uomo da chiamare in caso di infestazione da parassiti. + +[MOB_29D] +Forse... + +[MOB_29E] +Beh, ho in corso un'infestazione davvero pesante: Haitiani da tutte le parti. + +[MOB_29F] +Mi chiamo Umberto Robina e vorrei incontrarmi con te al Cafe Robina il prima possibile, + +[MOB_29G] +perché questa volta i fottuti Haitiani sono andati troppo oltre. + +[MOB_29H] +Test + +[MOB_30A] +Tommy, sono Umberto Robina. + +[MOB_30B] +Come va al caffè? + +[MOB_30C] +Oh, meraviglioso. Incredibile, Tommy, incredibile. Niente perdenti, Tommy, solo veri uomini, sai no, e donne stupende. + +[MOB_30D] +Comunque, volevo dirti che per tutti noi adesso sei un vero Cubano. + +[MOB_30E] +Hai provato di essere all'altezza. Hai provato di avere due grandi cojones. + +[MOB_30F] +Err... grazie, Umberto. Nessuno mi ha detto una cosa simile da quando ho lasciato la galera. Ci becchiamo in giro. + +[MOB_33A] +Tommy, sono Phil: smettila di perdere tempo con le vaccate e ascoltami, intesi? + +[MOB_33B] +Bene. Ho un bel po' di broda bella forte quasi a perfetta fermentazione e mi chiedevo se ne volevi assaggiare un po'. + +[MOB_33C] +Ti assicuro, Tommy, che se ami bere, o se devi rimuovere della vernice, questa è la roba che fa per te. + +[MOB_33D] +Per me è stata una bomba, anche se non ci vedo più bene da un occhio. Ti aspetto, ciao. + +[MOB_34A] +Tommy, mi è davvero piaciuto lavorare con te. Non mi divertivo così dalle scorrerie in Vietnam, amico. + +[MOB_34B] +Se mai ti servisse qualcosa, chiamami, capito? + +[MOB_34C] +Ricordo sempre quelli coi quali ho prestato servizio, + +[MOB_34D] +e sono sicuro di poterti dare una mano, chiaro? + +[MOB_35A] +Tommy, la ferita si sta rimarginando bene. È divertente: + +[MOB_35B] +ho combattuti in sei campi di battaglia e sono sempre uscito senza un graffio... e adesso questo! + +[MOB_35C] +Phil senza un braccio. Comunque, ho una abbondante selezione di armi a una mano, per cui almeno non sarò disarmato! + +[MOB_35D] +Comunque, figliolo, lasciamo stare le stronzate sentimentali e vedi di scolarti qualcosa da parte mia! + +[MOB_36A] +Tommy, sono Phil. Ti volevo ringraziare di essere stato sul campo, figliolo. + +[MOB_36B] +Maledetti Viet, non perdono occasione per farti un attentato... + +[MOB_36C] +Comunque, la ferita sta guarendo: adesso non mi sentirò più in colpa quando riceverò il mio consueto assegno per disabili. Grazie, amico. + +[MOB_40A] +Ehi, Tommy, sono Sonny. Come va l'abbronzatura? + +[MOB_40B] +Non ho preso il sole. + +[MOB_40C] +Beh, non hai preso neanche i miei soldi, per cui mi chiedevo: + +[MOB_40D] +che cosa stai combinando? Dimmi un po', Tommy, che cosa fai? + +[MOB_40E] +Sto cercando i soldi, Sonny, non ti preoccupare. + +[MOB_40F] +Invece mi preoccupo, Tommy, è il mio stile, + +[MOB_40G] +poiché ho sempre dei problemi con gente che non ama rispettare i patti. + +[MOB_40H] +Non diventare inaffidabile, Tommy, fallo per me... + +[MOB_40I] +Fai un favore a entrambi. Non vedo l'ora di ricevere buone nuove. + +[MOB_41A] +Tommy, ti ricordi di me? + +[MOB_41B] +Ehi, Sonny. + +[MOB_41C] +Sì, sono proprio io, Sonny. Siamo vecchi amici, + +[MOB_41D] +e tu non mi scrivi mai, non mi chiami mai. Non vuoi più essere mio amico? + +[MOB_41E] +Sono stato occupato a mettere le cose a posto. Non mi hai dato un gran che di aiuto da queste parti. + +[MOB_41F] +Ah, è questa la mia colpa? Beh, ho sentito che sei stato molto occupato. + +[MOB_41G] +Occupato a uccidere i baroni della droga. Occupato a prendere il potere. + +[MOB_41H] +Non dimenticarti di noi, Tommy, poiché, te lo assicuro, io non mi sono dimenticato di te. + +[MOB_42A] +Tommy. + +[MOB_42B] +Sonny. + +[MOB_42C] +Hai di sicuro dei problemi di udito, per cui proverò ancora... + +[MOB_42D] +Tommy, dove sono i maledetti soldi, dov'è la maledetta roba e dov'è la mia parte dei tuoi ultimi guadagni? + +[MOB_42E] +Tommy, mi stai facendo fare la figura dell'idiota, e io non sto ridendo. + +[MOB_43A] +Tommy, Tommy, Tommy, avevo Sonny al telefono... OK, sei con me? + +[MOB_43B] +Non so te, ma so che qualcuno sta minacciando di morte la mia famiglia, + +[MOB_43C] +il che mi sta davvero facendo cagare sotto. Che cosa intendi fare? + +[MOB_43D] +Stai calmo, Ken, andrà tutto bene. + +[MOB_43E] +Io SONO calmo, calmo quanto un uomo in pericolo di vita! + +[MOB_43F] +Ken, ora come ora ho altre cose per la testa, + +[MOB_43G] +ci occuperemo di Forelli al momento giusto. + +[MOB_43H] +Io sono calmo. Non ti sembro calmo? Forse è la morte incombente che mi sta facendo tremare la voce. + +[MOB45_A] +Tommy, dobbiamo parlare di un po' di cose. + +[MOB45_B] +C'è qualche problema, Lance? + +[MOB45_C] +Si tratta di te, amico, non mi sembra di ricevere la fetta che merito. + +[MOB45_D] +E inoltre, mi hai imbarazzato davanti ai ragazzi. Non lo posso permettere. + +[MOB45_E] +Lance, non è andata così. Hai commesso degli errori. + +[MOB45_F] +Tommy, non sono il tuo fattorino. Non sono un tuo scagnozzo. + +[MOB45_G] +Lance, non fare casini e non avremo alcun problema. Se faccio un errore, me la puoi far pagare in qualsiasi momento. + +[MOB45_H] +Tommy, ho fatto tutto per te e mi tratti come un idiota. Non farlo. + +[MOB45_I] +Lance, non ti causerò problemi e non ti pugnalerò alle spalle, promesso. + +[MOB45_J] +Rilassati. La cosa è già abbastanza difficile senza che tu ti metta a fare il tenero con me. + +[MOB45_K] +Fidati: mi hai sentito, mi hai sentito? + +[MOB45_L] +Ti ho sentito, ma Tommy, non sopporterò ancora per lungo. + +[MOB45_M] +Lance, non fare così: adesso sono io ad avvertirti. + +[MOB45_N] +Mi hai sentito? Rilassati, prenditi qualche giorno e poi ne riparliamo, OK? + +[MOB46_A] +Tommy, sono Lance. + +[MOB46_B] +Sì? + +[MOB46_C] +Sono felice di sentirti Lance. Forza, stai tranquillo, stai tranquillo. + +[MOB46_D] +Sono nel mezzo di un problema: ho bisogno di te. + +[MOB46_E] +Niente, giusto per dire. Tommy, ce ne possiamo occupare. + +[MOB46_F] +Io e te, nessun problema. Capisci ciò che intendo? + +[MOB46_G] +Dobbiamo proprio farlo, se no siamo entrambi morti, Lance. + +[MOB46_H] +Siamo andati troppo oltre, ma grazie della chiamata. Ci sentiamo più tardi. + +[MOB_47A] +Tommy, sono Lance. Abbiamo un problema serio. Vieni qui in fretta. + +[MOB52_A] +Ehi, Leo, sembra ci sia un compratore per la roba di Diaz. + +[MOB52_B] +Devi fargli uno squillo, ragazzo, e preparare l'accordo, chiaro? + +[MOB52_C] +Dove ti trovi adesso? + +[MOB52_D] +Stai bene Leo? Mi sembri un po' strano... + +[MOB52_E] +Dimmi dove ti trovi. + +[MOB52_F] +Chi diavolo sei? Passami subito Leo! + +[MOB52_G] +Leo se ne è andato per un po' e adesso sono io in carica. + +[MOB52_H] +Fottiti, stronzo! + +[MOB54_A] +Ciao Tommy! + +[MOB54_B] +Ciao Mercedes, come butta? + +[MOB54_C] +Ho un nuovo appartamento in Vice Point... + +[MOB54_D] +magari un giorno di questi potresti farci un salto. + +[MOB54_E] +Mi piacerebbe, ci sentiamo. + +[MOB55_A] +Tommy, sono io. + +[MOB55_B] +Ciao Mercedes. + +[MOB55_C] +Tommy, sono così annoiata: perché non ci divertiamo un po' insieme? + +[MOB55_D] +Cosa intendi dire? + +[MOB55_E] +Beh, lo so che sei occupato a combattere, uccidere e corrompere gente, + +[MOB55_F] +ma io ho voglia di divertirmi un po'. Non ti scordare di me, capito? + +[MOB56_A] +Tommy, ho sentito che hai ucciso Ricardo Diaz. + +[MOB56_B] +C'è stato uno sfortunato incendio nella sua villa. + +[MOB56_C] +Credo sia morto bruciato nella sua camicia in acrilico. + +[MOB56_D] +Tommy, sono così fiera di te. Lo sapevo che eri un vero uomo. + +[MOB56_E] +Era un inutile idiota senza testa: mi rendi orgogliosa di essere tua amica. + +[MOB56_F] +No, lo so che sei impegnato a prendere il possesso di questa città, + +[MOB56_G] +ma non dimenticarti di me, capito? + +[MOB57_A] +Sono Mercedes. Non ti amo più, Tommy. + +[MOB57_B] +Proprio no, onestamente. Tu non sei più gentile con la tua Mercedes. + +[MOB57_C] +Non mi tratti più come una signora: mi ignori e io ti odio. + +[MOB57_D] +Insisto che tu venga a trovarmi immediatamente! + +[MOB58_A] +Tommy. + +[MOB58_B] +Ehi Mercedes. + +[MOB58_C] +Ehi sì, Mr. Tipo Duro. Sono davvero arrabbiata con te, Tommy. + +[MOB58_D] +Non farmi più passare le serate con Jezz Torrent. + +[MOB58_E] +È davvero patetico. A metà delle scale ha iniziato a piagnucolare per il suo cane + +[MOB58_F] +che è morto quando aveva sette anni e a ripetere che la mamma non lo ha mai amato. + +[MOB58_G] +E Tommy, indossa una parrucca e un reggiseno quando è in intimità. + +[MOB58_H] +Non sono molto felice di te! + +[MOB59_A] +Ooh Tommy, sono Mercedes. + +[MOB59_B] +Volevo solo dirti che mi sono divertita così tanto sul set del film. + +[MOB59_C] +Se hai qualcos'altro del genere, fammelo sapere. + +[MOB59_D] +Lo penso davvero. Ho sempre desiderato fare l'attrice. + +[MOB59_E] +Credo di aver imparato molto sull'approccio drammatico. + +[MOB59_F] +È così illuminante! Grazie, grazie! Spero di vederti presto! Adios. + +[MOB_99] +Raggiungi il telefono pubblico. + +[MOB_98] +Raggiungi il telefono pubblico. + +[MOB_97] +Raggiungi il telefono pubblico. + +[MOB_96] +Raggiungi il telefono pubblico. + +[MOB_95] +Raggiungi il telefono pubblico. + +[A_TIME] ++~1~ secondi [F_RANGE] -~r~La radio del camion dei pompieri è fuori campo, avvicinati a una stazione dei pompieri! +~g~Sei fuori dal raggio d'azione della radio. Avvicinati alla stazione dei pompieri! -[C0TGSUB] -tasto R3 - -[C0VESTR] -levetta analogica sinistra, oppure tasti direzionali destro e sinistro - -[C1VESTR] -levetta analogica sinistra - -[C2VESTR] -levetta analogica sinistra, oppure tasti direzionali destro e sinistro - -[C3VESTR] -levetta analogica sinistra - -[C2VEHB] -~T~ - -[C3VEHB] -tasto L1 - -[C0VEHN] -tasto L3 - -[C0VELL] -tasto L2 - -[C1VELL] -tasto L2 - -[C2VELL] -tasto L2 - -[C3VELL] -tasto L2 - -[C0VELR] -tasto R2 - -[C1VELR] -tasto R2 - -[C2VELR] -tasto R2 - -[C3VELR] -tasto R2 - -[C0VELB] -tasto L2 + tasto R2 - -[C1VELB] -tasto L2 + tasto R2 - -[C2VELB] -tasto L2 + tasto R2 - -[C3VELB] -tasto L2 + tasto R2 - -[C0VECRS] -tasto L1 - -[C1VECRS] -tasto SELECT - -[C0VEWEI] -levetta analogica sinistra in su e in giù, oppure tasti direzionali su e giù - -[C1VEWEI] -levetta analogica sinistra in su e in giù - -[C2VEWEI] -levetta analogica sinistra in su e in giù, oppure tasti direzionali su e giù - -[C3VEWEI] -levetta analogica sinistra in su e in giù - -[C0PDCWE] -tasto L2 e tasto R2 - -[C1PDCWE] -tasto L2 e tasto R2 - -[C0PUCF] -tasto L1 - -[C1PUCF] -tasto L1 - -[C2PUCF] -~T~ - -[C3PUCF] -~O~ - -[C0PDLT] -tasto R1 - -[C1PDLT] -tasto R1 - -[C2PDLT] -tasto R1 - -[C3PDLT] -tasto L1 - -[C0PDCTL] -tasto L2 e tasto R2 - -[C1PDCTL] -tasto L2 e tasto R2 - -[C2PDCTL] -tasto L2 e tasto R2 - -[C3PDCTL] -tasto L2 e tasto R2 - -[C0CVEIW] -tasto SELECT - -[C1CVEIW] -tasti direzionali su e giù - -[C2CVEIW] -tasto SELECT - -[C3CVEIW] -tasto SELECT - -[C0PDBAK] -tasto R3 - -[C1PDBAK] -tasto R3 - -[C2PDBAK] -tasto R3 - -[C3PDBAK] -tasto R3 - -[C0PDLO1] -tasto L - -[C1PDLO1] -tasto L - -[C2PDLO1] -tasto L - -[C3PDLO1] -tasto L - -[C0PDLO2] -pad analogico - -[C2PDLO2] -pad analogico - -[C0ANS] -tasto L1 - -[C1ANS] -tasto L1 - -[C2ANS] -tasto L1 - -[C3ANS] -tasto L1 - -[WEATHER] -FORZA TEMPO - -[WEATHE2] -TEMPO NORMALE - -[GA_4] -~w~Le bombe per le macchine costano 500$ - -[GA_5] -~w~Il tuo veicolo ha già una bomba installata. - -[GA_6] -~w~Parcheggia, attiva la bomba premendo~h~ ~k~ ~PED_FIREWEAPON~ ~w~ e FUGGI! - -[GA_7] -~w~Innesca la bomba premendo ~h~ ~k~ ~PED_FIREWEAPON~ ~w~. La bomba esploderà all'accensione del motore. +[DODO_FT] +Hai volato per ~1~ secondi! [GA_8] -~w~Usa il detonatore per attivare la bomba. - -[GA_9] -Macchine speciali recuperate ~1~ su 10 +Usa il detonatore per attivare la bomba. [GA_10] Non male. Eccoti ~1~$ @@ -1184,121 +1380,100 @@ Bomba innescata Un furto da manuale. Completa la lista e ci sarà un bonus per te. [GA_14] -Hai portato tutte le macchine. BENE! Eccoti un bonus. +Hai portato tutte le macchine. BENE! Eccoti un bonus... [GA_15] -~w~Spero che ti piaccia il nuovo colore. +Spero che ti piaccia il nuovo colore. -[GA_17] -~w~Motore nuovo e carrozzeria riverniciata! +[GA_16] +La riverniciatura è gratuita. [GA_19] Non siamo interessati a questo modello. [GA_20] -Di questo modello ne abbiamo in abbondanza. Non siamo interessati. +Di questo modello ne abbiamo in abbondanza. Mi dispiace, non siamo interessati. -[GA_22] -~w~Non puoi mettere una bomba su una moto. +[CHASE] +Massima attenzione dei media -[GA_23] -~w~Bomba installata. Lavoro e pezzi: 500$ +[CHASE1] +Ignoto -[GA_24] -~w~Bomba installata: questa la offre la casa! +[CHASE2] +Noioso + +[CHASE3] +Appena interessante + +[CHASE4] +Giornale locale, pagina 7 + +[CHASE5] +Giornale locale, prima pagina + +[CHASE6] +Vice Courier, 1 colonna + +[CHASE7] +Vice Courier, prima pagina + +[CHASE8] +TV locale, 3 AM + +[CHASE9] +TV locale, news + +[CHASE10] +TV locale, servizio in diretta + +[CHASE11] +UFA Today, pagina 12 + +[CHASE12] +UFA Today, pagina 4 + +[CHASE13] +Foto in UFA Today + +[CHASE14] +TV nazionale, 4 AM + +[CHASE15] +TV nazionale, news + +[CHASE16] +TV nazionale, servizio in diretta + +[CHASE17] +Avvenimento internazionale + +[CHASE18] +Crisi nazionale + +[CHASE19] +Crisi internazionale + +[CHASE20] +Evento mondiale + +[CHASE21] +Roba da leggenda [CR_1] -~w~La gru non può alzare questo veicolo. +La gru non può alzare questo veicolo. [PU_MONY] -~w~Non hai abbastanza soldi. +Non hai abbastanza soldi. -[PAUSED] -GIOCO IN PAUSA - -[FEB_STA] -Statistiche - -[FEB_MAP] -Mappa - -[FEB_BRI] -Briefing - -[FEB_CON] -Comandi - -[FEB_AUD] -Audio - -[FEB_DIS] -Video - -[FEB_LAN] -Lingua - -[FEP_STA] -STATISTICHE - -[FEP_MAP] -MAPPA - -[FEP_BRI] -BRIEFING - -[FEP_CON] -COMANDI - -[FEP_AUD] -audio - -[FEP_DIS] -video - -[FEP_LAN] -LINGUA: - -[FEF_ST1] -Chi è il più cattivo? - -[FEF_ST2] -Quanti disastri hai provocato - -[FEF_BR1] -Ti sei perso? - -[FEF_CO1] -Hai bisogno di più controllo, sfigato? - -[FEF_SA1] -Keep your place in the pile! - -[FEF_SA2] -Salva e carica le partite - -[FEF_AU1] -Pompa il volume! - -[FEF_AU2] -Seleziona una stazione radio e gli effetti audio - -[FEF_DI1] -Cambia la partita! - -[FEF_DI2] -Customize the game for your TV - -[FEF_LA1] -Che cavolo stai dicendo Willis? - -[FEF_LA2] -Choose your preferred parlance +[CO_ALL] +Li hai presi tutti. Eccoti un piccolo extra... [FEM_ON] -Sì +ON [FEM_OFF] -No +OFF [FEM_YES] Sì @@ -1306,224 +1481,20 @@ Sì [FEM_NO] No -[FEM_NON] -Nessuna - -[FEI_SEL] -Seleziona - -[FEI_TAR] -Bersaglio sì/no - -[FEI_BAC] -Indietro - -[FEI_RES] -Riprendi - -[FEI_NAV] -Muovi - -[FEI_BTX] -/ - -[FEI_BTT] -" - -[FEI_STA] -START - -[FEI_BTD] -pad analogico - -[FEI_BTU] -;= - -[FEI_R1B] -L \ R - -[FEI_SCR] -Scorri - -[FEI_ZOO] -Zoom - -[FEH_STA] -STATISTICHE - -[FEH_CON] -COMANDI - -[FEH_AUD] -AUDIO - -[FEH_LAN] -LINGUA - -[FEH_SGA] -NUOVA PARTITA - -[FET_SG] -SALVA PARTITA - -[FEH_BRI] -BRIEFING - -[FEH_DIS] -VIDEO - -[FEH_MAP] -MAPPA - -[FEM_OK] -OK - -[FEC_CRO] -Abbassarsi - -[FE_MLG] -LEGENDA MAPPA - -[MAP_LEG] -LEGENDA: - -[LG_01] -Posizione giocatore - -[LG_13] -Ammu-Nation - -[LG_16] -Rifugio - -[LG_22] -Pay 'n' Spray - -[LG_23] -Mr. Benz - -[LG_25] -Telefono - -[LG_26] -Stazione radio Wildstyle - -[LG_27] -Stazione radio Flash FM - -[LG_28] -Stazione radio KChat - -[LG_29] -Stazione radio Fever 105 - -[LG_30] -Stazione radio VROck - -[LG_31] -Stazione radio VCPR - -[LG_32] -Stazione radio Espantoso - -[LG_33] -Stazione radio Emotion 98.3 - -[LG_34] -Stazione radio Wave 103 - -[LG_35] -Destinazione - -[LG_36] -Sun Yard - -[LG_37] -Club a luci rosse - -[LG_38] -8-Ball - -[LG_39] -Confessionale della chiesa - -[LG_40] -Mamma Cipriani - -[LG_41] -Donald Love - -[LG_42] -JD O'Toole - -[LG_43] -Salvatore Leone - -[LG_44] -Maria - -[LG_45] -McAffrey - -[LG_46] -Toshiko Kasen - -[LG_47] -Vincenzo Cilli - -[LG_48] -Negozio di bombe - -[LG_49] -Negozio di vestiti - -[LG_50] -Phil Cassidy - -[LG_51] -Minaccia - -[LG_52] -Amico - -[LG_53] -Oggetto - -[LG_54] -Bersaglio - -[FEO_CON] -Impostazioni comandi - -[FEO_AUD] -Impostazioni audio - -[FEO_DIS] -Impostazioni video - -[FEO_LAN] -Impostazioni lingua - -[FEO_PLA] -Impostazioni giocatore - -[FEB_PMB] -Briefing missioni precedenti: +[FEM_RET] +Riprova [FEC_NA] ND [FEC_CWL] -Arma successiva +Scorri armi a sinistra [FEC_CWR] -Arma precedente +Scorri armi a destra -[FEC_CW] -Cambia armi - -[FEC_CT] -Cambia bersaglio +[FEC_LOF] +Guarda avanti [FEC_TAR] Bersaglio @@ -1532,40 +1503,34 @@ Bersaglio Movimento [FEC_CAM] -Cambia visuale +Modalità visuale [FEC_PAU] Pausa [FEC_ENV] -Sali sulla vettura +Sali sul veicolo [FEC_JUM] -Salto +Salta [FEC_ATT] -Attacca o spara +Attacca o fuoco con arma [FEC_RUN] Corri [FEC_FPC] -Guarda +Visuale in prima persona [FEC_LL] -Sguardo a sinistra - -[FEC_LB1] -Sguardo - -[FEC_LB2] -indietro +Guarda a sinistra [FEC_LB] -Sguardo indietro +Guarda indietro [FEC_LR] -Sguardo a destra +Guarda a destra [FEC_HOR] Clacson @@ -1573,11 +1538,8 @@ Clacson [FEC_VES] Comandi veicolo -[FEC_RSC] -Cambia stazione radio - [FEC_BRA] -Freno o retro +Freno o retromarcia [FEC_HAB] Freno a mano @@ -1588,104 +1550,47 @@ Arma vettura [FEC_ACC] Accelera -[FEC_SMT] -Missione speciale - [FEC_CCF] -CONFIGURAZIONE: +Configurazione : [FEC_CF1] -CONFIG. 1 +Config 1 [FEC_CF2] -CONFIG. 2 +Config 2 [FEC_CF3] -CONFIG. 3 +Config 3 [FEC_CF4] -CONFIG. 4 +Config 4 [FEC_CDP] -TIPO: +Schermata controller : [FEC_ONF] -A PIEDI +A piedi [FEC_INC] -IN MACCHINA +In macchina [FEC_VIB] -VIBRAZIONE: - -[FEC_ILU] -INVERTI SGUARDO: - -[FEC_SWP] -MOVIMENTO GIOCATORE: - -[FEC_AS] -pad analogico - -[FEC_DP] -tasti direzionali - -[FEA_SFX] -VOLUME EFFETTI: - -[FEA_OUT] -Uscita: - -[FEA_ST] -Stereo - -[FEA_MNO] -Mono - -[FEA_CTD] -Attenzione! Questa caratteristica richiede delle periferiche compatibili DTS. Vuoi procedere? - -[FEA_DTS] -DTS - -[FEA_RSS] -STAZIONE RADIO: - -[FEA_NON] -Radio spenta - -[FED_BRI] -LUMINOSITÀ: - -[FED_TRA] -TRACCE: - -[FED_RDR] -MODALITÀ RADAR: - -[FED_HUD] -MODALITÀ HUD: - -[FED_RDM] -MAPPA & SEGNALI - -[FED_RDB] -SOLO SEGNALI +Vibrazione : [FEL_ENG] -INGLESE +Inglese [FEL_FRE] -FRANCESE +Francese [FEL_GER] -TEDESCO +Tedesco [FEL_ITA] -ITALIANO +Italiano [FEL_SPA] -SPAGNOLO +Spagnolo [FED_DBG] Menu Debug @@ -1699,9 +1604,6 @@ Reload IPL [FED_PAH] Parse Heap -[FED_RCD] -CCullZones::RecalculateCullZoneData - [FED_DFL] CTheScripts::DbgFlag @@ -1723,90 +1625,6 @@ Debug Streaming Requests [FED_SCP] gbShowCollisionPolys -[FEM_MCM] -Menu MEMORY CARD - -[FEM_RMC] -Register MemCard One - -[FEM_TFM] -Test Format MemCard One - -[FEM_TUM] -Test UnFormat MemCard One - -[FEM_CRD] -Create Root Dir - -[FEM_CLI] -Create And Load Icons - -[FEM_FFF] -Fill First File with Guff - -[FEM_SOG] -Save Only The Game - -[FEM_CES] -Check Every 0kB4 Save - -[FEM_STG] -Save The Game - -[FEM_STS] -Save The Game under GTA3 name - -[FEM_CPD] -Create copy protected mag directory - -[FEM_MC2] -Memory Card Menu 2 - -[FEM_TS] -Test Save: - -[FEM_TL] -Test Load: - -[FEM_TD] -Test Delete: - -[FEM_SL0] -Slot0 - -[FEM_SL1] -Salvataggio 1 assente - -[FEM_SL2] -Salvataggio 2 assente - -[FEM_SL3] -Salvataggio 3 assente - -[FEM_SL4] -Salvataggio 4 assente - -[FEM_SL5] -Salvataggio 5 assente - -[FEM_SL6] -Salvataggio 6 assente - -[FEM_SL7] -Salvataggio 7 assente - -[FES_LOA] -CARICA PARTITA - -[ST_TIME] -Tempo di gioco attuale - -[ST_OVTI] -Tempo di gioco totale - -[NUMSHV] -Numero di salvataggi - [PL_STAT] Statistiche giocatore @@ -1816,45 +1634,15 @@ Persone massacrate [PE_WSOT] Persone massacrate da altri -[CAR_EXP] -Macchine esplose - -[BOA_EXP] -Imbarcazioni distrutte - [TM_BUST] Arresti subiti -[M_WASTE] -Uomini massacrati - -[F_WASTE] -Donne massacrate - -[PIG_WST] -Poliziotti massacrati - [GNG_WST] Membri delle gang massacrati -[MED_WST] -Infermieri massacrati - -[FIRE_WS] -Pompieri massacrati - [DED_CRI] Criminali massacrati -[DED_DED] -Vagabondi massacrati - -[DED_HOK] -Prostitute massacrate - -[HEL_DST] -Elicotteri distrutti - [PER_COM] Percentuale completata @@ -1864,17 +1652,116 @@ Kg di esplosivo utilizzati [ACCURA] Precisione -[ELBURRO] -Miglior tempo in Turismo (sec) +[ST_WEAP] +Budget armi -[CAR_CRU] -Macchine demolite +[ST_PROP] +Budget proprietà -[HED_EX] -Teste esplose +[ST_AUTO] +Budget riparazioni e colorazione auto -[ST_HEAD] -Colpi alla testa +[ST_PHOT] +Fotografie scattate + +[ST_LOAN] +Visite degli usurai + +[ST_STOR] +Edifici razziati + +[ST_MOVI] +Stunt nei film + +[ST_PIZZ] +Pizze consegnate + +[ST_GARB] +Spazzatura raccolta + +[ST_ICEC] +Gelati venduti + +[TOP_SHO] +Miglior punteggio al poligono + +[SHO_RAN] +Graduatoria al poligono + +[SEAGULL] +Gabbiani abbattuti + +[PROPOWN] +Proprietà posseduti + +[ST_TIME] +Tempo di gioco + +[ST_FTIM] +Ore di volo + +[ST_PRAN] +Graduatoria pilota + +[ST_RAN0] +Apprendista + +[ST_RAN1] +Navigatore + +[ST_RAN2] +Copilota + +[ST_RAN3] +Pratico + +[ST_RAN4] +Competente + +[ST_RAN5] +Anziano + +[ST_RAN6] +Asso + +[ST_RAN7] +Barone Rosso + +[ST_DRWN] +Pesci sfamati + +[ST_FASH] +Budget abbigliamento + +[ST_DAMA] +Proprietà distrutte + +[TM_DED] +Visite all'ospedale + +[DAYSPS] +Giorni trascorsi nel gioco + +[NUMSHV] +Visite al rifugio + +[MXCARD] +Distanza max salto FOLLE (ft) + +[MXCARJ] +Altezza max salto FOLLE (ft) + +[MXCARDM] +Distanza max salto FOLLE (m) + +[MXCARJM] +Altezza max salto FOLLE (m) + +[MXFLIP] +Numero max ribaltamenti FOLLI + +[MXJUMP] +Numero max rotazioni FOLLI [BUL_FIR] Colpi sparati @@ -1885,152 +1772,8 @@ Colpi a segno [SPRAYIN] Riverniciature -[TM_DED] -Visite all'ospedale - -[ST_GANG] -Gang meno amata - -[ST_GNG1] -Leone - -[ST_GNG2] -Triade - -[ST_GNG3] -Diablo - -[ST_GNG4] -Yakuza - -[ST_GNG5] -Yardie - -[ST_GNG6] -Colombiani - -[ST_GNG7] -Hood - -[ST_GNG8] -Forelli - -[ST_GNG9] -Sindacco - -[DAYSPS] -Giorni trascorsi nel gioco - -[MMRAIN] -Mm di pioggia caduti - -[ST_STAR] -Totale stelle di sospetto - -[ST_STGN] -Totale stelle di sospetto evase - -[TOT_DIS] -Distanza totale percorsa (miglia) - -[TOTDISM] -Distanza totale percorsa (m) - -[DISTBIK] -Dist. percorsa in moto (miglia) - -[DISTBIM] -Distanza percorsa in moto (m) - -[DISTHEL] -Dist. percorsa in elicottero (miglia) - -[DISTHEM] -Dist. percorsa in elicottero (m) - -[DISTBOA] -Distanza percorsa in barca (miglia) - -[DISTBOM] -Distanza percorsa in barca (m) - -[ST_WHEE] -Impennata più lunga (sec) - -[ST_STOP] -Frenata in punta più lunga (sec) - -[ST_2WHE] -Permanenza su 2 ruote più lunga (sec) - -[ST_WHED] -Distanza più lunga in impennata (m) - -[ST_STOD] -Distanza più lunga in frenata (m) - -[ST_2WHD] -Distanza più lunga su 2 ruote (m) - -[ST_FAPD] -Volo più lungo in avanti (m) - -[FEST_HV] -Livello massimo 'Vigilante' - -[FIRELVL] -Livello massimo 'Pompiere' - -[ST_STOR] -Negozi rapinati - -[ST_ASSI] -Contratti da sicario completati - -[ST_FTIM] -Ore di volo - -[ST_FASH] -Budget abbigliamento - -[ST_WEAP] -Budget armi - -[ST_PROP] -Budget proprietà - -[ST_DAMA] -Proprietà distrutte - -[ST_AUTO] -Budget riparazioni e colorazione auto - -[MXCARD] -Distanza max salto folle (ft) - -[MXCARJ] -Altezza max salto folle (ft) - -[MXCARDM] -Distanza max salto folle (m) - -[MXCARJM] -Altezza max salto folle (m) - -[MXFLIP] -Numero max ribaltamenti folli - -[MXJUMP] -Massima rotazione folle in aria - -[FST_MFR] -Stazione radio preferita - -[FST_LFR] -Stazione radio meno amata - [BSTSTU] -Migliore acrobazia folle: +Migliore acrobazia FOLLE [INSTUN] Acrobazia folle @@ -2057,742 +1800,463 @@ Quadrupla acrobazia folle Quadrupla acrobazia folle perfetta [NOSTUC] -Nessuna acrobazia folle effettuata +Nessuna acrobazia FOLLE effettuata [NOUNIF] Acrobazie uniche completate -[NOUNGM] -Acrobazie uniche totali - [NMISON] Missioni provate -[NMMISP] -Missioni completate - [PASDRO] Passeggeri scaricati [MONTAX] Soldi guadagnati in taxi -[CARSLD] -Macchine vendute - -[MONCAR] -Guadagni vendita auto - -[BIKESLD] -Moto vendute - -[MONBIKE] -Guadagni vendita moto - -[CARSEXP] -Auto trovate per Love Media - -[SLTVLVL] -Livello massimo 'Slash TV' - -[SLTVKIL] -Rivali uccisi in Slash TV - -[MONTRS] -Guagagni raccolta immondizia - -[HTMKLD] -Killer uccisi - -[GDAMSP] -Numero di missioni Avenging Angels superate - -[HGAJD] -Uccisioni nelle missioni Avenging Angels - -[BNDRACE] -Gare RC - -[FSTTRT] -Tempo max rimasto in 'Alliva plima e intelo' - -[HGHTRC] -Guadagno max in 'Alliva plima e intelo' - -[FSTHRT] -Tempo migliore di gara in elicottero - -[BHLPOS] -Posizione migliore di gara in elicottero - -[TMSOUT] -Cambi d'abito - -[BSRPS0] -'Rombi assettati' - -[BSRPS1] -'Deimos-tri da sballo' - -[BSRPS2] -'Wi-Cheetah 210 e lode' - -[BSRPS3] -'Incontro a Red Light' - -[BSRPS4] -'Torrington TT' - -[BSRPS5] -'GP delle cosche' - -[DBIKE0] -Percorso 1 - -[DBIKE1] -Percorso 2 - -[DBIKE2] -Percorso 3 - -[DBIKE3] -Percorso 4 - -[DBIKE4] -Percorso 5 - -[DBIKE5] -Percorso 6 - -[DBIKE6] -Percorso 7 - -[DBIKE7] -Percorso 8 - -[DBIKE8] -Percorso 9 - -[DBIKE9] -Percorso 10 - -[DBIKEHE] -'Fossi & Ridossi' - -[DBIKEBP] -Posizione migliore - -[DBIKEFL] -Giro migliore - -[DBIKEFT] -Tempo migliore - -[ST_PHOT] -Foto scattate - -[ST_PIZZ] -Pizze consegnate - -[ST_NOOD] -Noodle consegnati - -[MO_TOUR] -Soldi guadagnati dai turisti - -[TA_TOUR] -Turisti portati in luoghi turistici - -[SC_SCRA] -Punteggio max in 'Disfida alla discarica' - -[SC_9MM] -Punteggio max in '9mm di macello' - -[SC_SCOO] -Punteggio max in 'Motorino sparacchino' - [DAYPLC] Spesa giornaliera polizia -[SEAGULL] -Gabbiani abbattuti - [CRIMRA] -LIVELLO CRIMINALITÀ +Livello criminalità: -[CHASE] -Massima attenzione dei media +[STPR_1] +Malibu -[CHASE1] -Ignoto +[STPR_2] +Tipografia -[CHASE2] -Noioso +[STPR_3] +Studio cinematografico -[CHASE3] -Appena interessante +[STPR_4] +Fabbrica di gelato -[CHASE4] -Giornale locale Pagina 7 +[STPR_5] +Lavaggio auto -[CHASE5] -Giornale locale Prima pagina +[STPR_6] +Compagnia di taxi -[CHASE8] -TV locale, 3 di mattino - -[CHASE9] -TV locale, notiziario - -[CHASE10] -TV locale, servizio in diretta - -[CHASE11] -UFA Today Pagina 23 - -[CHASE12] -UFA Today Pagina 4 - -[CHASE13] -Foto in UFA Today - -[CHASE14] -TV nazionale, 4 di mattino - -[CHASE15] -TV nazionale, notiziario - -[CHASE16] -TV nazionale, servizio in diretta - -[CHASE17] -Avvenimento internazionale - -[CHASE18] -Crisi nazionale - -[CHASE19] -Crisi internazionale - -[CHASE20] -Evento mondiale - -[CHASE21] -Roba da leggenda - -[WHEEL01] -~w~BONUS SU DUE RUOTE: ~1~$ Distanza: ~1~.~1~ m Tempo: ~1~ secondi - -[WHEEL02] -~w~BONUS SU DUE RUOTE: ~1~$ Distanza: ~1~ piedi Tempo: ~1~ secondi - -[WHEEL06] -~w~BONUS IMPENNATA: ~1~$ Distanza: ~1~.~1~ m Tempo: ~1~ secondi - -[WHEEL07] -~w~BONUS IMPENNATA: ~1~$ Distanza: ~1~ piedi Tempo: ~1~ secondi - -[WHEEL11] -BONUS FRENATA IN PUNTA: ~1~$ Distanza: ~1~.~1~ m Tempo: ~1~ secondi - -[WHEEL12] -~w~BONUS FRENATA IN PUNTA: ~1~$ Distanza: ~1~ piedi Tempo: ~1~ secondi - -[GMSTOR] -Negozio di giochi - -[PREBRF] -Briefing precedenti - -[CNTLS] -Comandi - -[MUSMEN] -Musica/Effetti - -[GAMSET] -Impostazioni di gioco - -[LANGUA] -Lingua - -[DSPLAY] -Video - -[DEBUGM] -Menu Debug - -[QUITOP] -Esci dalle opzioni - -[CONTRL] -Configurazione comandi +[STPR_7] +Cantiere navale [SET1EN] -Config. 1. abilitata - -[SET1] -Config. 1. - -[SET2EN] -Config. 2 abilitata - -[SET2] -Config. 2 - -[SET3EN] -Config. 3 abilitata - -[SET3] -Config. 3 - -[SET4EN] -Config. 4 abilitata - -[SET4] -Config. 4 - -[GOBACK] -Indietro - -[SOUND] -AUDIO - -[MUSVOL] -Volume musica - -[SFXVOL] -Volume effetti - -[SCROPT] -OPZIONI VIDEO - -[CTRSCR] -Centra schermo - -[SCRFOR] -Formato schermo - -[GMSVLQ] -SALVA-CARICA-ESCI - -[GMREST] -Riavvio del gioco - -[GMLOAD] -Carica partita +Config. 1. Abilitata. [GMSAVE] Salva partita -[NOGMSV] -Puoi salvare solamente presso il tuo nascondiglio. - -[DLFILE] -Elimina file Grand Theft Auto - -[CHFILE] -SCEGLI IL FILE DA CARICARE - -[CHFIDL] -SCEGLI IL FILE DA ELIMINARE - -[SVCONF] -CONFERMA SALVATAGGIO - -[SVFNAM] -Il nome del tuo salvataggio è - -[LANGSL] -SELEZIONE LINGUA - -[ENGLIS] -Inglese - -[GERMAN] -Tedesco - -[ITALIA] -Italiano - -[FRENCH] -Francese - -[SPAIN] -Spagnolo - -[RELIDE] -Reload IDE - -[RELIPE] -Reload IPL - -[PARSHP] -Parse Heap - -[DBGFON] -CTheScripts::DbgFlag On - -[DBFOFF] -CTheScripts::DbgFlag Off - -[BGWHON] -Big White Debug Light Switched On - -[BGWOFF] -Big White Debug Light Switched Off - -[DSTRON] -Debug Streaming Requests On - -[DSTROFF] -Debug Streaming Requests Off - -[PDRGON] -ShowPedRoadGroups On - -[PRGOFF] -ShowPedRoadGroups Off - -[CRRGON] -ShowCarRoadGroups On - -[CRGOFF] -ShowCarRoadGroups Off - -[CLZOON] -Show Cull Zones On - -[CLZOOF] -Show Cull Zones Off - -[SHPLON] -gbShowCollisionPolys On - -[SHPLOF] -gbShowCollisionPolys Off - -[CULREC] -CCullZones::RecalculateCullZoneData() - -[FORMM1] -FormatMemCard 1 (teststuff) - -[UNFRM1] -UnFormatMemCard 1 (teststuff) - -[GORLEV] -Quantità di sangue - -[SICASS] -Sick Fuck - -[SICSIC] -Sick Fucker - -[SCASSL] -Sick Fuck Selected - -[SCSCSL] -Sick Fucker Selected - -[PRVMEN] -Briefing missioni precedenti - -[FORMEN] -Format Menu - -[MEMTST] -MemoryCardTest screen - -[REGCAR] -Register MemoryCard One - -[TEFONE] -Test Format MemCard One - -[TEUFON] -Test UnFormat MemCard One - -[CRROOT] -CreateRootDir - -[CRLDIC] -Create and Load Icons - -[FLFSGF] -Fill First File With Guff - -[PUSAVE] -Save Only the game - -[CHEVOK] -CheckEveryOkB4Save - -[SVGMON] -SaveTheGame - -[CNTSAV] -Can't save the game. On a mission. - -[CNCSAV] -Can't save the game. You're in a car. - -[CRMGSV] -Create copy protected magazine directory - -[MGSVCN] -MagazineDirectory Created - -[MGSVNC] -MagazineDirectory Not Created - -[YES] -Sì - -[NO] -No - -[X] -x - -[LAST] -Ultimo messaggio. - -[GS_STYL] -STILE DI GIOCO: - -[GS_FFAL] -LIBERO - -[GS_LOC] -LUOGO: - -[GS_SLMT] -LIMITE PUNTI: - -[GS_KLMT] -LIMITE UCCISIONI: - -[GS_TLMT] -LIMITE TEMPO: - -[GS_ULMT] -ILLIMITATO - -[GS_PRUP] -POTENZIAMENTI: - -[GS_RACE] -GARA: - -[GS_LAPS] -GIRI: - -[GS_OK] -OK - -[FEH_MP] -MULTIGIOCATORE - -[FEMP_J] -Partecipa - -[FEMP_CS] -PERSONAGGIO: - -[FEMP_PS] -IMPOSTAZIONI GIOCATORE - -[FEMP_GS] -SELEZIONA PARTITA - -[FEMP_NG] -NUOVA PARTITA - -[SVRLIST] -ELENCO PARTITE - -[SVRINFO] -DETTAGLI PARTITE - -[SVRNAME] -NOME: - -[NO_SVRS] -RICERCA PARTITE... - -[NO_PLRS] -RICERCA GIOCATORI... - -[NO_NAME] -NESSUN NOME - -[NO_WIFI] -Per giocare partite multigiocatore, devi prima accendere l'interruttore WLAN. - -[FEMP_SG] -AVVIA PARTITA - -[FEMP_S] -Avvio - -[FEMP_WS] -In attesa dell'avvio della partita... - -[SVRLOST] -Connessione con l'host interrotta. - -[NOSVRS] -Non è stato trovato nessun host. - -[MP_WARN] -Avviando una partita multigiocatore, perderai tutti i progressi fatti dall'ultimo salvataggio. - -[FEDS_XB] -Seleziona - [FEDS_TB] Indietro -[FEDS_ST] -tasto START - RIPRENDI - [FEST_OO] su -[FED_SUB] -SOTTOTITOLI: - [FEC_TUC] Comandi torretta -[FEC_SM3] -Attiva missioni speciali (tasto R3) - [FEC_RS3] -Cambia stazione radio (tasto L3) +Stazioni radio (tasto L3) [FEC_HO3] Clacson (tasto L3) -[FIRST] -~g~1° +[C_FAIL] +Missione Vigilante terminata! -[SECOND] -~g~2° +[C_ESCP] +~r~Il sospettato è fuggito! -[THIRD] -~g~3° +[C_VIGIL] +BONUS VIGILANTE! -[FOURTH] -~g~4° - -[NOCONTE] -Inserire un controller analogico (DUALSHOCK®) oppure un controller analogico (DUALSHOCK®2) nell'ingresso controller 1 per continuare. - -[WRCONT] -Il controller inserito nell'ingresso controller 1 non è un controller supportato. GTA: Liberty City Stories necessita di un controller analogico (DUALSHOCK®) oppure di un controller analogico (DUALSHOCK®2). - -[WRCONTE] -Il controller inserito nell'ingresso controller 1 non è un controller supportato. GTA: Liberty City Stories necessita di un controller analogico (DUALSHOCK®) oppure di un controller analogico (DUALSHOCK®2). +[HEAL_A] +La tua ~h~salute~w~ è indicata in color arancione in alto a destra sullo schermo. [WRONGCD] -Disco errato. Inserisci il disco di GTA:Liberty City Stories. +Disco errato. Inserisci il disco corretto. [NOCD] -Il cassetto del disco è vuoto. Inserisci il disco di GTA:Liberty City Stories. +Il cassetto del disco è vuoto. Inserisci il disco. [OPENCD] Il cassetto del disco è aperto: è necessario chiuderlo. +[CDERROR] +Errore di lettura dal DVD Grand Theft Auto: Vice City. + [RESTART] -Avvio di una nuova partita. +Avvio di una nuova partita [GA_3] -~w~100$ per riverniciare! +Niente più sconti. $100 per la riverniciatura! + +[GA_1] +Wow! Non tocco niente di COSÌ caldo! [GA_1A] -~w~Torna quando non sarai così occupato... +Torna quando non sarai così occupato... -[AWAY] -~r~Qui non c'è proprio! +[HELP9_C] +Premi il ~h~~k~~PED_FIREWEAPON~~w~ per ~h~sparare~w~ col fucile di precisione. -[GA_6B] -~w~Parcheggia, attiva la bomba premendo~h~ ~k~ ~PDFW~ ~w~e FUGGI! +[TAXI2] +~r~Tempo scaduto! -[GA_7B] -~w~Innesca la bomba premendo ~h~ ~k~ ~PDFW~~w~. La bomba esploderà all'accensione del motore. +[PAGEB13] +Salute consegnata al nascondiglio + +[PAGEB14] +Adrenalina consegnata al nascondiglio [FESZ_CA] Annulla -[FESZ_QU] -Esci - -[FESZ_L1] -Partita salvata con successo! - -[FESZ_L2] -Il nome del tuo salvataggio è: - -[FESZ_OK] -OK - -[FES_LGA] -Carica partita - -[FES_DGA] -ELIMINA DATI SALVATI - [FES_NGA] -NUOVA PARTITA +Nuova partita [FES_CAN] Annulla [FESZ_QL] -Tutti i progressi non salvati andranno persi. Procedere con il caricamento? +Tutti i progressi della partita attuale non ancora salvati andranno perduti. Vuoi procedere con il caricamento? [FESZ_QD] -Procedere all'eliminazione del salvataggio? +Vuoi eliminare questa partita salvata? [FESZ_QO] -Procedere alla sovrascrittura del salvataggio? +Vuoi procedere con la sovrascrittura di questa partita salvata? [FESZ_QR] -Sei sicuro di voler iniziare una nuova partita? Tutti i progressi dall'ultima partita salvata andranno persi. Procedere? +Sei sicuro di voler iniziare una nuova partita? Tutti i progressi fatti fino all'ultimo salvataggio andranno perduti. Vuoi procedere? -[FESZ_QS] -VUOI SALVARE? +[T4X4_1] +'Parco divertimenti PCJ' -[T4X4_2A] -~g~Hai ~y~2 minuti~g~ per attraversare ~y~12~g~ checkpoint! ~g~Puoi attraversarli in ~y~QUALSIASI ORDINE. +[BMX_1] +'Prova del fango' -[T4X4_2B] -~1~ su 12! +[BMX_2] +'Tracciato di prova' -[T4X4_2C] -~y~SUPERA~g~ il primo checkpoint per attivare il timer. ~g~Ogni checkpoint ti fornirà ~y~10 SECONDI~g~ extra. +[BMXFAIL] +~r~Non sei riuscito a stabilire un nuovo record! + +[T4X4_3] +'TENUTA!' + +[MM_1] +'FOLLIA CONICA' [T4X4_F] ~r~Ti sei ritirato! Troppo difficile per te? -[UPSIDE] -~r~Ti sei ribaltato! +[LANDSTK] +Landstalker + +[IDAHO] +Idaho + +[STINGER] +Stinger + +[LINERUN] +Linerunner + +[PEREN] +Familiare + +[SENTINL] +Sentinel + +[RIO] +Rio + +[PATRIOT] +Patriot + +[FIRETRK] +Camion dei pompieri + +[TRASHM] +Nettezza urbana + +[STRETCH] +Stretch + +[MANANA] +Manana + +[INFERNS] +Infernus + +[VOODOO] +Voodoo + +[PONY] +Pony + +[MULE] +Mule + +[CHEETAH] +Cheetah + +[AMBULAN] +Ambulanza + +[FBICAR] +FBI Washington + +[MOONBM] +Moonbeam + +[ESPERAN] +Esperanto + +[TAXI] +Taxi + +[WASHING] +Washington + +[BOBCAT] +Bobcat + +[WHOOPEE] +Mr Whoopee + +[BFINJC] +BF a iniezione + +[HUNTER] +Hunter + +[POLICAR] +Polizia + +[ENFORCR] +Volante + +[SECURI] +Securicar + +[BANSHEE] +Banshee + +[PREDATR] +Predator + +[BUS] +Autobus + +[RHINO] +Rhino + +[BARRCKS] +Caserma OL + +[CUBAN] +Cuban Hermes + +[HELI] +Elicottero + +[DODO] +Dodo + +[COACH] +Pullman + +[CABBIE] +Vecchio taxi + +[STALION] +Stallion + +[RUMPO] +Rumpo + +[RCBANDT] +Bandit radiocomandato + +[ROMERO] +Carro funebre di Romero + +[PACKER] +Packer + +[ADMIRAL] +Admiral + +[SQUALO] +Squalo + +[SEASPAR] +Sea Sparrow + +[PIZZABO] +Pizza Boy + +[GANGBUR] +Gang Burrito + +[TROPIC] +Tropic + +[SPEEDER] +Speeder + +[REEFER] +Reefer + +[FLATBED] +Flatbed + +[YANKEE] +Yankee + +[CADDY] +Caddy + +[ZEBRA] +Taxi Zebra + +[TOPFUN] +Top Fun + +[SKIMMER] +Skimmer + +[PCJ600] +PCJ 600 + +[PHOENIX] +Phoenix + +[FAGGIO] +Faggio + +[FREEWAY] +Freeway + +[RCBARON] +Baron radiocomandato + +[RCRAIDE] +Raider radiocomandato + +[GLENDAL] +Glendale + +[OCEANIC] +Oceanic + +[SANCHEZ] +Sanchez + +[SPARROW] +Sparrow + +[LOVEFIS] +Love Fist + +[COASTG] +Coast Guard + +[DINGHY] +Dinghy + +[HERMES] +Hermes + +[SABRE] +Sabre + +[SABRETU] +Sabre Turbo + +[WALTON] +Walton + +[REGINA] +Regina + +[COMET] +Comet + +[DELUXO] +Deluxo + +[BURRITO] +Burrito + +[SPAND] +Spandex Express + +[MARQUIS] +Marquis + +[BAGGAGE] +Baggage Handler + +[KAUFMAN] +Taxi Kaufman + +[COASTMA] +Coastguard Maverick + +[MAVERIC] +Maverick + +[RANCHER] +Rancher + +[FBIRANC] +FBI Rancher + +[VIRGO] +Virgo + +[GREENWO] +Greenwood + +[HOTRING] +Hotring Racer + +[BLISTAC] +Blista Compact [FEST_DF] -Dist. percorsa a piedi (miglia) +Distanza a piedi (miglia) [FEST_DC] -Dist. percorsa in macchina (miglia) +Distanza in auto (miglia) [FESTDFM] -Distanza percorsa a piedi (m) +Distanza a piedi (metri) [FESTDCM] -Distanza percorsa in macchina (m) +Distanza in auto (metri) + +[TOT_DIS] +Distanza totale (miglia) + +[TOTDISM] +Distanza totale (metri) + +[DISTHEL] +Distanza in elicottero (miglia) + +[DISTHEM] +Distanza in elicottero (metri) + +[DISTBOA] +Distanza in barca (miglia) + +[DISTBOM] +Distanza in barca (metri) [FEST_LS] Persone salvate in ambulanza @@ -2803,440 +2267,1592 @@ Criminali uccisi in missioni Vigilante [FEST_FE] Incendi estinti -[FEST_LF] -Volo più lungo con il Dodo - -[FEST_BD] -Tempo migliore disinnesco bomba - [FEST_RP] -Violenze completate - -[FEST_CN] -Miglior tempo rimasto in 'Karmageddon' - -[FEST_TR] -Uccisioni max in 'RC contro la Triade' +Violenze eseguite [FEST_MP] Missioni completate +[FEST_BB] +Bling-bling Scramble: + [FEST_H0] -Maggior numero di checkpoint +Maggior numero di punti di controllo [FEST_GC] Auto delle gang distrutte: +[FEST_H1] +Distruzione Diablo + +[FEST_H2] +Massacro Mafioso + +[FEST_H3] +Calamità al Casinò + +[FEST_H4] +Demolizioni Rumpo + [USJ] -~w~BONUS ACROBAZIA UNICA! - -[USJ_FAL] -~w~ACROBAZIA UNICA FALLITA! - -[HM1_1] -~g~Uccidi 20 Purple Nine in 2 minuti e 30 secondi. - -[KM1_8A] -Premi~h~ ~k~ ~PDFW~ ~w~per ~h~attivare la bomba:~w~ ricorda di allontanarti! - -[KM1_8D] -Premi~h~ ~k~ ~PDFW~ ~w~per ~h~attivare la bomba:~w~ ricorda di allontanarti! +BONUS ACROBAZIA UNICA! [RATNG1] -CITTADINO ONESTO +Cittadino onesto [RATNG2] -SCONOSCIUTO +Sconosciuto [RATNG3] -PEZZENTE +Pezzente [RATNG4] -FURFANTE +Furfantello [RATNG5] -VANDALO +Vandalo [RATNG6] -FACTOTUM +Fattorino [RATNG7] -BORSEGGIATORE +Borsaiolo [RATNG8] -CLEPTOMANE +Cleptomane [RATNG9] -TEPPISTA +Teppista [RATNG10] -LADRUNCOLO +Ladruncolo + +[RATNG11] +Sanguisuga [RATNG12] -TRUFFATORE +Truffatore [RATNG13] -FARABUTTO +Farabutto [RATNG14] -INFORMATORE +Informatore [RATNG15] -IMBROGLIONE +Imbroglione [RATNG16] -BULLO +Bullo [RATNG17] -CANAGLIA +Canaglia [RATNG18] -SCAPESTRATO +Scapestrato [RATNG19] -RUFFIANO +Ruffiano [RATNG20] -FUORILEGGE +Fuorilegge [RATNG21] -DELINQUENTE +Delinquente [RATNG22] -LADRO +Ladro [RATNG23] -SCAGNOZZO +Scagnozzo [RATNG24] -TIRAPIEDI +Tirapiedi [RATNG25] -AVANZO DI GALERA +Avanzo di galera [RATNG26] -EX DETENUTO +Ex galeotto [RATNG27] -CRIMINALE +Criminale [RATNG28] -PICCHIATORE +Picchiatore [RATNG29] -SPIONE +Saggio [RATNG30] -AUTISTA +Autista [RATNG31] -GUARDIA DEL CORPO +Guardia del corpo [RATNG32] -ATTACCABRIGHE +Attaccabrighe [RATNG33] -CACCIATORE DI TAGLIE +Cacciatore di taglie [RATNG34] -VIGILANTE +Vigilante [RATNG35] -RONIN +Ronin [RATNG36] -RIPARATORE +Riparatore [RATNG37] -SICARIO +Sicario [RATNG38] -SOCIO +Socio [RATNG39] -MACELLAIO +Macellaio [RATNG40] -PULITORE +Pulitore [RATNG41] -ASSASSINO +Assassino [RATNG42] -CONSIGLIERE +Consigliere [RATNG43] -UOMO D'ONORE +Consulente [RATNG44] -BRACCIO DESTRO +Braccio destro [RATNG45] -ESECUTORE +Esecutore [RATNG46] -TENENTE +Tenente [RATNG47] -AIUTANTE DEL BOSS +Aiutante del boss [RATNG48] -CAPO +Capo [RATNG49] -BOSS +Boss [RATNG50] -INTOCCABILE +Intoccabile [RATNG51] -DON +Don [RATNG52] -PADRINO - -[TRAIN_1] -Kurowski Station - -[TRAIN_2] -Rothwell Station - -[TRAIN_3] -Baillie Station - -[SUBWAY1] -Portland Station - -[SUBWAY2] -Rockford Station - -[SUBWAY3] -Staunton South Station - -[SUBWAY4] -Shoreside Terminal - -[DETON] -DETONAZIONE - -[RCBOMB1] -RC contro la Triade - -[RECORD] -~w~Nuovo record: ~1~ uccisioni! - -[NRECORD] -~r~Non hai battuto il record precedente di ~1~ uccisioni! - -[RCBOMBF] -~r~Sei sceso dal furgone! - -[RC_2] -Hai 2 minuti per far esplodere il maggior numero possibile di macchine della Mafia! - -[RC_3] -Hai 2 minuti per far esplodere il maggior numero possibile di macchine della Yakuza! - -[RC_4] -Hai 2 minuti per far esplodere il maggior numero possibile di macchine degli Yardie! - -[RC_5] -Hai 2 minuti per far esplodere il maggior numero possibile di macchine degli Hood! - -[RC_6] -Hai 2 minuti per far esplodere il maggior numero possibile di macchine del Cartello! - -[RAMPKA] -~w~Hai bisogno di un veicolo per questa violenza. +Re della fottuta città [PAGE_00] . -[TURTXT] -Mobile Massacre! - -[TURPASS] -~w~Massacro completato! - -[TUR3D] -~w~Danni - -[FTFRENZ] -Furia camion dei pompieri - [WELCOME] BENVENUTO A [TSCORE] -~w~GUADAGNI TOTALI: ~1~ $ +GUADAGNI: ~1~$ -[PBOAT_1] -Premi~h~ ~k~ ~VEWEP~ ~w~per sparare con i cannoni della nave. +[PBOAT_2] { reVC update } +Premi il ~h~~k~~VEHICLE_FIREWEAPON~~w~ per sparare con i cannoni della barca. -[HM2_1] -Usa le buggy RC per distruggere le macchine blindate. Premi~h~ ~k~ ~VEWEP~ ~w~per farle esplodere. +[HJSTAT] +Distanza: ~1~.~1~m Altezza: ~1~.~1~m Ribaltamenti: ~1~ Rotazioni: ~1~_ -[HM2_1A] -Usa le buggy RC per distruggere le macchine blindate. Premi~h~ ~k~ ~VEWEP~ ~w~per farle esplodere. +[HJSTATW] +Distanza: ~1~.~1~m Altezza: ~1~.~1~m Ribaltamenti: ~1~ Rotazioni: ~1~_ E che grande atterraggio! -[HM2_2] -~r~Non sei riuscito a distruggere tutte le macchine blindate! - -[HM2_6] -~g~Macchina blindata distrutta! - -[FESZ_UC] -ANNULLA - -[FEDS_SM] -L1,R1 - CAMBIA MENU - -[FEDS_AS] -;=- CAMBIA SELEZIONE - -[FEDSAS2] -<>-CAMBIA SELEZIONE - -[FEDS_SS] -L1,R1 - CAMBIA SELEZIONE - -[FEDSSC1] -;-SCORRIMENTO VELOCE - -[FEDSSC2] -=-FERMA SCORRIMENTO - -[FES_LOF] -Caricamento fallito. - -[FES_SLO] -IL SALVATAGGIO - -[FES_ISC] -È DANNEGGIATO - -[FESZ_TI] -SALVATAGGIO Z1 - -[FESZ_SA] -Salva partita - -[MC_LDFL] -Caricamento fallito! - -[MC_NWRE] -Riavvio del gioco in corso. - -[BIFP_1] -~w~Ahia! Distanza della caduta: ~1~.~1~ m - -[BIFP_1F] -~w~Ahia! Distanza della caduta: ~1~.~1~ piedi - -[DIAB1_5] -TEMPO DI GARA: - -[F_FAIL1] -~r~Missione Pompiere terminata. - -[F_CANC] -~r~Missione Pompiere annullata! - -[F_FAIL3] -~r~Sei arrivato tardi! - -[F_FAIL4] -~r~Uno dei passeggeri è morto! - -[F_FAIL5] -~r~Una delle macchine è stata distrutta! - -[F_FAIL6] -~r~L'auto è stata distrutta! - -[F_EXTIN] -Incendi - -[A_CANC] -~r~Missione Paramedico annullata! - -[ALEVEL] -~w~Missione Paramedico livello ~1~ - -[A_FAIL1] -~r~Missione Paramedico terminata. +[ATUTOR] +Premi il ~h~~k~~TOGGLE_SUBMISSIONS~~w~ per attivare o disattivare le missioni Infermiere. [FEST_HA] -Livello massimo 'Paramedico' - -[A_SAVES] -~w~PERSONE SALVATE: ~1~ +Livello massimo della missione Infermiere [C_KILLS] -~w~CRIMINALI UCCISI: ~1~ +CRIMINALI UCCISI: ~1~ -[F_START] -~b~Veicolo in fiamme ~w~avvistato nella zona di ~a~. Vai a spegnere il fuoco. +[HJSTATF] +Distanza: ~1~ piedi Altezza: ~1~ piedi Ribaltamenti: ~1~ Rotazioni: ~1~_ -[F_STAR1] -~b~Veicoli in fiamme ~w~avvistati nella zona di ~a~. Vai a spegnere i fuochi. +[HJSTAWF] +Distanza: ~1~ piedi Altezza: ~1~ piedi Ribaltamenti: ~1~ Rotazioni: ~1~_ E che grande atterraggio! -[F_REWAR] -~w~INCENDIO SPENTO! Livello ~1~ completato. Ricompensa: ~1~$ +[CRED001] +ROCKSTAR NORTH + +[CRD001A] +DIRETTORE DELLO STUDIO + +[CRD001B] +ANDREW SEMPLE + +[CRED002] +PRODUTTORE + +[CRD002A] +DIRETTORE DI SVILUPPO + +[CRED003] +LESLIE BENZIES + +[CRED004] +DIRETTORE ARTISTICO + +[CRED005] +AARON GARBUT + +[CRED006] +DIRETTORI TECNICI + +[CRED007] +OBBE VERMEIJ + +[CRED008] +ADAM FOWLER + +[CRED010] +ANDREW DUTHIE + +[CRED011] +CRAIG FILSHIE + +[CRED012] +WILLIAM MILLS + +[CRED013] +CHRIS ROTHWELL + +[CRD013A] +IMRAN SARWAR + +[CRD013B] +JAMES WORRALL + +[CRD013C] +JOHN HAIME + +[CRED014] +SCRITTO DA + +[CRED015] +JAMES WORRALL + +[CRED016] +PAUL KUROWSKI + +[CRED017] +DAN HOUSER + +[CRED018] +PROGETTAZIONE PERSONAGGI PRINCIPALI + +[CRD018A] +PROGETTAZIONE PERSONAGGI + +[CRED019] +IAN MCQUE + +[CRD019A] +TOKS SOLARIN + +[CRD019B] +ALAN DAVIDSON + +[CRED020] +ANIMATORE CAPO + +[CRED021] +ALEX HORTON + +[CRD022A] +ANIMATORI + +[CRED022] +LEE MONTGOMERY + +[CRD022B] +DUNCAN SHIELDS + +[CRD022C] +GUS BRAID + +[CRED023] +PROGETTAZIONE VEICOLI + +[CRD023A] +JOLYON ORME + +[CRD023B] +ALAN DUNCAN + +[CRD024A] +CAPO PROGETTAZIONE VEICOLI + +[CRED024] +PAUL KUROWSKI + +[CRED025] +PROGETTAZIONE MAPPA + +[CRED026] +ADAM COCHRANE + +[CRED027] +NIK TAYLOR + +[CRED028] +GARY MCADAM + +[CRED029] +KEIRAN BAILLIE + +[CRED030] +ALISDAIR WOOD + +[CRED031] +ANDREW SOOSAY + +[CRD031A] +STEVEN MULHOLLAND + +[CRD031B] +WAYLAND STANDING + +[CRD031C] +CAMPBELL J. DICK + +[CRD031D] +PROGETTAZIONE GRAFICA + +[CRD031E] +STUART PETRI + +[CRED032] +PROGRAMMATORE CAPO + +[CRD032A] +PROGRAMMATORI + +[CRED033] +ALEXANDER ROGER + +[CRED034] +GRAEME WILLIAMSON + +[CRED035] +BARANE CHAN + +[CRED036] +DEREK PAYNE + +[CRED037] +GORDON YEOMAN + +[CRD037A] +ALAN CAMPBELL + +[CRD037B] +MARK HANLON + +[CRD037C] +ANDRZEJ MADAJCZYK + +[CRED038] +CAPO PRODUZIONE MUSICA + +[CRED039] +CRAIG CONNER + +[CRED040] +STUART ROSS + +[CRED041] +CAPO INGEGNERE AUDIO + +[CRED042] +ALLAN WALKER + +[CRD041A] +INGEGNERE AUDIO + +[CRD041B] +AUDIO + +[CRD042A] +WILL MORTON + +[CRED043] +PROGRAMMATORE AUDIO + +[CRED044] +RAYMOND USHER + +[CRED045] +RESPONSABILE TESTING + +[CRED046] +CRAIG ARBUTHNOTT + +[CRED047] +CAPO CQ + +[CRED048] +NEIL CORBETT + +[CRED049] +KEVIN WONG + +[CRED050] +CQ + +[CRED051] +DAVID BEDDOES + +[CRED052] +DAVID WATSON + +[CRED053] +BARRY CLARK + +[CRED054] +ROSS SPARROW + +[CRED055] +JAMES ALLAN + +[CRED056] +NEIL MEIKLE + +[CRD056A] +GEORGE WILLIAMSON + +[CRD056B] +MATT JONES + +[CRD056C] +ROB HARBOUR + +[CRD056D] +TOM WHITTAKER + +[CRED057] +CAPO SUPPORTO TECNICO + +[CRED058] +LORRAINE ROY + +[CRD057A] +SUPPORTO TECNICO + +[CRED059] +CHRISTINE CHALMERS + +[CRD060A] +SUPPORTO UFFICIO + +[CRD060B] +KIM GURNEY + +[CRD060C] +CASSIE OLIVER + +[CRED060] +ROCKSTAR NEW YORK + +[CRED061] +PRODUTTORE ESECUTIVO + +[CRED062] +SAM HOUSER + +[CRED063] +PRODUTTORE + +[CRED064] +DAN HOUSER + +[CRED065] +VP DI SVILUPPO + +[CRED066] +JAMIE KING + +[CRED067] +CAPO RESPONSABILE TECNOLOGICO + +[CRED068] +GARY J. FOREMAN + +[CRED069] +PRODUTTORE ASSOCIATO + +[CRED070] +JEREMY POPE + +[CRD071A] +DIRETTORE DEL CQ + +[CRD072A] +JEFF ROSA + +[CRED071] +SUPERVISORE MUSICA + +[CRED072] +TERRY DONOVAN + +[CRED073] +SQUADRA DI PRODUZIONE + +[CRED074] +TERRY DONOVAN + +[CRED075] +JENNIFER KOLBE + +[CRED076] +JENEFER GROSS + +[CRED077] +LAURA PATERSON + +[CRED078] +JEFF CASTANEDA + +[CRED079] +JERONIMO BARRERA + +[CRED080] +CARLY SLATER + +[CRED081] +JUNG KWAK + +[CRED082] +BRIAN WOOD + +[CRED083] +RENAUD SEBANNE + +[CRED084] +RICHARD KRUGER + +[CRD084A] +DANIEL EINZIG + +[CRD084B] +JACEN BURROWS + +[CRD084C] +LINN PR + +[CRD084D] +GRAFICA DI COPERTINA + +[CRD084E] +STEPHEN BLISS + +[CRED085] +KENT PAUL'S 80 NOSTALGIA ZONE + +[CRED086] +COMPOSTA DA DAN HOUSER + +[CRD086A] +PRODOTTA DA ADAM TEDMAN + +[CRED087] +WWW.KENTPAUL.COM E WWW.VICECITY.COM + +[CRED088] +CREATO DA + +[CRD088A] +ADAM TEDMAN + +[CRD088B] +DAVID YU + +[CRD088C] +JERRY LUNA + +[CRD088D] +STUART PETRI + +[CRD088E] +MICHAEL CARNEVALE + +[CRD088F] +GREG LAU + +[CRD088G] +FUTABA HAYASHI + +[CRED089] +RESPONSABILE CQ + +[CRED090] +CRAIG ARBUTHNOTT + +[CRED091] +CAPO ANALISTA + +[CRED092] +ADAM DAVIDSON + +[CRD092A] +JOE HOWELL + +[CRD092B] +MARC FERNANDEZ + +[CRED093] +ANALISTA DI GIOCO + +[CRED094] +RICHARD HUIE + +[CRED095] +SQUADRA TESTING ROCKSTAR + +[CRED096] +LANCE WILLIAMS + +[CRED097] +JOE GREENE + +[CRED098] +BRIAN PLANER + +[CRD098A] +ELIZABETH SATTERWHITE + +[CRD098B] +JAMEEL VEGA + +[CRD098C] +MIKE HONG + +[CRED099] +LEE CUMMINGS + +[CRED100] +SCENEGGIATURA + +[CRED101] +JAMES WORRALL + +[CRED102] +DAN HOUSER + +[CRED103] +ADAM TEDMAN + +[CRED104] +PAUL YEATES + +[CRED105] +JENEFER GROSS + +[CRED106] +LAURA PATERSON + +[CRED107] +SEQUENZE ANIMATE + +[CRED108] +SCRITTE DA DAN HOUSER E JAMES WORRALL + +[CRED109] +DIREZIONE AUDIO DI DAN HOUSER E NAVID KHONSARI + +[CRED110] +PRODOTTE DA JAMIE KING + +[CRD110A] +RICERCA TALENTI: JAMIE KING, SEAN MACALUSO + +[CRED111] +CAST + +[CRD111A] +PERSONAGGI PRINCIPALI + +[CRED112] +TOMMY VERCETTI - RAY LIOTTA + +[CRED113] +KEN ROSENBERG - WILLIAN FICHTNER + +[CRED114] +SONNY FORELLI - TOM SIZEMORE + +[CRED115] +STEVE SCOTT - DENNIS HOPPER + +[CRED116] +AVERY CARRINGTON - BURT REYNOLDS + +[CRED117] +RICARDO DIAZ - LUIS GUZMAN + +[CRED118] +LANCE VANCE - PHILIP MICHAEL THOMAS + +[CRED119] +COLONNELLO JUAN CORTEZ - ROBERT DAVI + +[CRED120] +UMBERTO ROBINA - DANNY TREJO + +[CRED121] +PHIL CASSIDY - GARY BUSEY + +[CRED122] +MITCH BAKER - LEE MAJORS + +[CRED123] +MERCEDES CORTEZ - FAIRUZA BALK + +[CRED124] +KENT PAUL - DANNY DYER + +[CRED125] +JEZZ TORRENT - KEVIN MCKIDD + +[CRED126] +CENTRALINISTA TAXI - DEBORAH HARRY + +[CRED127] +CANDY SUXX - JENNA JAMESON + +[CRED128] +BJ SMITH - LAWRENCE TAYLOR + +[CRED129] +AUNTIE POULET - YOUREE CLEOMILI HARRIS + +[CRED130] +SPACCIATORE - ARMANDO RIESCO + +[CRED131] +COUGAR - BLAYNE PERRY + +[CRED132] +HILARY - CHARLES TUCKER + +[CRED133] +DEPUTATO ALEX SHRUB - CHRIS LUCAS + +[CRED134] +VECCHIO KELLY - GEORGE DICENZO + +[CRD134A] +CAM JONES - GREG SIMS + +[CRD134B] +PSICOPATICO - HUNTER PLATIN + +[CRD134C] +MAUDE, LA SIGNORA DEI GELATI - JANE GENNARO + +[CRD134D] +JETHRO - JOHN ZURHELLEN + +[CRD134E] +GONZALES - JORGE PUPO + +[CRD134F] +DWAYNE - NAVID KHONSARI + +[CRD134G] +DICK - PETER MCKAY + +[CRD134H] +MIKE & PORNOSTAR - ROBERT CIHRA + +[CRD134I] +PERCY - RUSSELL FOREMAN + +[CRED135] +MOTION CAPTURE + +[CRED136] +ANIMATO DA + +[CRD136A] +DIREZIONE TECNICA DI ALEX HORTON + +[CRED137] +DIRETTO DA + +[CRD137A] +DIRETTO DA NAVID KHONSARI + +[CRED138] +PRODOTTO DA + +[CRD138A] +PRODOTTO DA JAMIE KING + +[CRD138B] +RENAUD SEBBANE + +[CRED139] +REGISTRATO PRESSO PERSPECTIVE STUDIOS, BROOKLYN + +[CRED140] +ATTORI MOTION CAPTURE + +[CRD140A] +BLAYNE PERRY + +[CRD140B] +JONATHON SALE + +[CRD140C] +CHARLES TUCKER + +[CRD140D] +EDDIE MARRERO + +[CRD140E] +WILLIAM MCCALL + +[CRD140F] +JORGE PUPO + +[CRD140G] +ROBERT JACKSON + +[CRD140H] +TARA RADCLIFFE + +[CRD140I] +JENIFER GAMBETESE + +[CRD140J] +KRIS ACHEVARRIA + +[CRD140K] +ALI ORDOUBADI + +[CRD140L] +KAHLEEM POOLE + +[CRED141] +DIALOGHI PEDONI + +[CRD141A] +SCRITTI DA DAN HOUSER, MARC FERNANDEZ, GILLIAN TELLING E NAVID KHONSARI + +[CRD141B] +CON L'AIUTO DI JEREMY POPE, LANCE WILLIAMS E JENNY JEMISON + +[CRED142] +SCRITTI DA + +[CRD142A] +DAN HOUSER E JAMES WORRALL + +[CRED143] +DIRETTI DA DAN HOUSER, CRAIG CONNER, MARC FERNANDEZ E ALLAN WALKER + +[CRED144] +PRODOTTI DA RENAUD SEBANNE + +[CRED145] +PEDONI + +[CRED146] +ADAM DAVIDSON, ADAM WATKINS, ALEJANDRO K. BROWN, ALEX ANTHONY SIOUKAS, ALEX GARCIA, + +[CRED147] +ALICE SALTZMAN, ALISON CIHRA, AMY SALIMA, AMY SALZMAN, ANDREA VIDELA, ANTHONY ATTI, + +[CRED148] +ANTHONY RIVERA, BIJAN SHAMS, BLAYNE PERRY, BRETT BISOGNO, BREYE MATA, BRIAN PANEN, + +[CRED149] +BROCK VODER, CAREY BERTINI, CHARISSE LAMBERT, CHRIS DIFAT, CHRIS REISENBERGER, + +[CRED150] +CHRISTOPHER BRODAY, CHRISTOPHER CARRO, CYNTHIA GREENE, DAMARIES LOPEZ, DAN LEE, + +[CRED151] +DAN SCHNEIDER, DAN TOYAMA, DAVID DEAN CHALTFIELD, JR., DAVID HARRISON, DAVID WILEY, + +[CRED152] +DEBORAH COLLINS, DEBRANDA CHANEY-GILES, DEMETRA KOUKOULAS, DENISE ROSADO, + +[CRED153] +DEVIN BENNETT, DEVIN WINTERBOTTOM, DORIS WOO, DOUGLAS HARRISON, DUNCAN COUTTS, + +[CRED154] +DUPE AJAYI, EDWIN AVELLANEDA, ELIZABETH HOWELL, ELIZABETH SATTERWHITE, ERIC NAGLE, + +[CRED155] +ESTEBAN KARPLUS, F. FONT, FUTABA HAYASHI, GENE HILGREEN, GERALD COSGROVE, + +[CRED156] +GERARD LUNA, GILLIAN TELLING, GREGG CARLUCCI, GREGORY CLERVOIX, GREGORY SCHWEIZER, + +[CRED157] +HADLEY TOMICKI, J. ROSSETT, JAMEEL VEGA, JASON JONES, JEFF ROSA, JENNIFER JEMISON, + +[CRED158] +JEREMY TAGGERT, JESSICA RIDER, JOSEPH GREENE,JOSEPH HOWELL, KATE DUKICH, + +[CRED159] +KEL O'NEILL, KEVIN HOPKINS, LADAWN JAMES, LANCE WILLIAMS, LAURA BUBBLES, + +[CRED160] +LAURA PATTERSON, LEE CUMMINGS, LETICIA L. YOUNG, LINDSAY KENNEDY, LISA ORITZ, + +[CRED161] +LORNA JORDAN, LUCIO AMADIO, MARCO FERNANDEZ, MARIKO TANAKA, MARLON MATTHEWS, + +[CRED162] +MARY TELLING, MASAYOSHI MITSUYAMA, MATTHEW CHUNG, MAX ALLSTADT, MAX BOGDANOV, + +[CRED163] +MELISSA ALVAREZ, MICHAEL MAY, MICHAEL ROTHSTEIN, MIGUEL VIDAL, MIKE FEDERLINE, + +[CRED164] +NATALIE DESCALZO, N'GAI MEMBERS, NICOLAS MALLO, NOELLE SADLER, NORBERT MORIVAN, + +[CRED165] +OSWALD GREENE, JR., PETER MCKAY, PETER APPEL, PRESTON SAVARESE, RAFAEL GONZALES, + +[CRED166] +RANDY JOHNSON, REY CONCEPCION, RICHARD KROGER, ROB TIBBS, ROBERT JACKSON, + +[CRED167] +ROBERT SCHULER, ROSS A. MCINTYRE, RUSSELL FOREMAN, RUTH NUNEZ, SALVADORE SUAZO, + +[CRED168] +SAM WHITE, SANTOS GONZALES, SCOTT SMITH, SEYMOUR FRAILMAN, SPELMAN BRAUMAN, + +[CRED169] +STEPHANIE TELLING, STEVE KNEZEVICH, STEVE ROBERT, SUMIKO YASUDA, SUSAN LEWIS, + +[CRED170] +SYLVIA COLACIOS, TOMOKO MIYAZAKI, TRON, VERDEL HALE, YVES MONDESIR, ZENO LEINFELDER, + +[CRED171] +DAVID BEDDOES, CHRISTINE CHALMERS, BARRY CLARK, NEIL CORBETT, KIM GURNEY, NEIL MEIKLE, + +[CRED172] +CASSIE OLIVER, LORRAINE ROY, DAVID WATSON, KEVIN WONG, WILL MORTON + +[CRED175] +ADAM DAVIDSON + +[CRED176] +LANCE WILLIAMS + +[CRED177] +NEIL MCCAFFREY + +[CRED178] +LAURA PATERSON + +[CRED179] +REY CONCEPCION + +[CRED180] +CHARLES HEROLD + +[CRED181] +ANDREW GREENWALD + +[CRED182] +JAMES MIELKE + +[CRED183] +PETER SUCIU + +[CRED184] +ALEX ODULIO + +[CRED185] +DON NKRUMAH + +[CRED186] +KENDALL PITTMAN + +[CRED187] +SAL SUAZO + +[CRED188] +EREK MATEO + +[CRED189] +CHRIS DIFATE + +[CRED190] +LEILA MILTON + +[CRED191] +DARREN ZOLTOWSKI + +[CRED192] +VIRGINIA SMITH + +[CRED193] +KEVIN CASSIN + +[CRED194] +JASON SHIGEMORI + +[CRED195] +KELLY KINSELLA + +[CRED196] +MOLLIE STICKNEY + +[CRED197] +STANTON SARJEANT + +[CRED198] +LAURA WALSH + +[CRED199] +MARK GARONE + +[CRED200] +JOANNA SLY + +[CRED201] +ELIZABETH HOWELL + +[CRED202] +ANA HERCULES + +[CRED203] +SHIRLEY IRICK + +[CRED204] +KASHONA FIELDS + +[CRED205] +JOEL M. LILJE + +[CRED206] +JOHN DIBENEDETTO + +[CRED207] +NANCY GILES + +[CRED208] +RYAN CROY + +[CRED209] +JENNIFER KOLBE + +[CRED210] +LIAM BURKE + +[CRED211] +SIGRID PREISSL + +[CRED212] +ANITA FITZSIMONS + +[CRED213] +PHILIPPA RASELLI + +[CRED214] +WIL QUESNEL + +[CRED215] +FALKO BURKERT + +[CRED216] +SARA SEWELL + +[CRED217] +STAZIONI RADIO E MUSICA + +[CRED218] +CONSULENZA MUSICALE + +[CRD218A] +HEINZ HENN + +[CRD218B] +STUART ROSS + +[CRED219] +COORDINATORE TRACCE AUDIO + +[CRED220] +TERRY DONOVAN + +[CRED221] +PRODUTTORI ROCKSTAR GAMES + +[CRED222] +DAN HOUSER E LAZLOW + +[CRED223] +PRODUTTORE ROCKSTAR NORTH + +[CRED224] +CRAIG CONNER + +[CRED225] +ALLAN WALKER + +[CRED226] +LAZLOW + +[CRED227] +DJ BANTER E IMAGING + +[CRED228] +SCRITTO DA DAN HOUSER E LAZLOW + +[CRED229] +FLASH FM + +[CRD229A] +TONI-MARIA CHAMBERS + +[CRD229B] +VOCE E PRODUZIONE IMAGING - JEFF BERLIN + +[CRED230] +UN RINGRAZIAMENTO SPECIALE A + +[CRED231] +TOMMY MOTTOLA, + +[CRED232] +MICHELLE ANTHONY, + +[CRED233] +STEVE BARNETT, + +[CRED234] +CHUCK FLECKENSTEIN, + +[CRED235] +RITA LIBERATOR + +[CRED236] +MARTIN & CLAIRE LOGAN + +[CRED237] +SANDRA HUTTON + +[CRED238] +CHRISTINE DAVIDSON + +[CRED239] +ALAN, RED & BIGFOOT + +[CRED240] +LE T + +[CRED241] +COLIN DONALD + +[CRED242] +KERRY STALLWOOD + +[CRED243] +ALAN MCGREGOR + +[CRED244] +CHRIS MORTON + +[CRED245] +EMIL BUSSE + +[CRED246] +EMILY BAILLIE + +[CRED247] +KEVIN ARCHIBALD + +[CRED248] +MORAG KERR + +[CRED249] +CATH WALKER + +[CRED250] +ISO BAR + +[CRED251] +WATERLINE + +[CRED252] +NEWS CAFE + +[CRD251A] +THE POND + +[CRD252A] +PIVO + +[CRED253] +BUDGET VIDEO RENTALS + +[CRED254] +LORNA'S SCOOTER + +[CRED255] +GARETH MURFIN + +[CRED256] +GRAFICA ADDIZIONALE + +[CRED257] +TONY PORTER + +[CRED258] +CRAIG MOORE + +[CRED259] +SINCRONIZZAZIONE LABIALE SEQUENZE + +[CRED260] +COSGROVE HALL FILMS + +[CRED261] +PRODUTTORE - OWEN BALLHATCHET + +[CRED262] +ANIMATORE SENIOR- JON TURNER + +[CRED263] +ANIMATORI - RICHARD DRUMM + +[CRED264] +DAVE BROWN + +[CRED265] +MAIR THOMAS + +[CRED266] +PRASHANT PATEL + +[CRED267] +CONSULENTE TECNOLOGICO AUDIO + +[CRED268] +RIK EDE DI GAMESOUND LTD. + +[CRED269] +SUPPORTO INTEGRAZIONE DTS + +[CRED270] +TED LAVERTY DI DTS + +[CRED271] +CHRIS GREER DI DTS + +[CRED272] +JASON PAGE DI DTS + +[CRED273] +RICERCA E ANALISI + +[CRED274] +VROCK + +[CRED275] +DJ: LAZLOW COME SE STESSO + +[CRED276] +VOCE IMAGING - JOE KELLY + +[CRED277] +PRODUZIONE IMAGING - JONATHAN HANST + +[CRED278] +WAVE 103 + +[CRED279] +DJ: ADAM FIRST - JAMIE CANFIELD + +[CRED280] +VOCE IMAGING - JEN SWEENEY + +[CRED281] +PRODUZIONE IMAGING - JONATHAN HANST + +[CRED282] +FEVER 105 + +[CRED283] +DJ: OLIVER 'LADYKILLER' BISCUIT - JULIUS DYSON + +[CRED284] +VOCE IMAGING MASCHILE - ED MCMANN + +[CRED285] +VOCE IMAGING FEMMINILE - SHAWNEE SMITH + +[CRED286] +PRODUZIONE IMAGING - LISTEN KITCHEN + +[CRED287] +EMOTION 98.3 + +[CRED288] +DJ: FERNANDO - FRANK CHAVEZ + +[CRED289] +VOCE IMAGING - JEN SWEENEY + +[CRED290] +PRODUZIONE IMAGING - JONATHAN HANST + +[CRED291] +RADIO ESPANTOSO + +[CRED292] +DJ: PEPE - TONY CHILRODES + +[CRED293] +WILDSTYLE + +[CRED294] +DJ: MISTER MAGIC COME SE STESSO + +[CRED295] +VOCE IMAGING - FRANK SILVESTRO + +[CRED296] +PRODUZIONE IMAGING - LAZLOW + +[CRED297] +KCHAT + +[CRED298] +SCRITTA DA DAN HOUSER E LAZLOW + +[CRED299] +PRODOTTA E MIXATA DA LAZLOW + +[CRED300] +DJ AMY SHECKENHAUSEN - LEYNA WEBER + +[CRED301] +JEZ TORRENT - KEVIN MCKIDD + +[CRED302] +MANDY - COLLEEN CORBETT + +[CRED303] +MICHELLE CARAPADIS - MARY BIRDSONG + +[CRED304] +MR.ZOO - CARL DOWLING + +[CRED305] +GETHSEMANEE - LYNN LIPTON + +[CRED306] +CLAUDE MAGINOT - JOHN MAUCERI + +[CRED307] +BJ SMITH - LAWRENCE TAYLOR + +[CRED308] +THOR - FRANK FAVA + +[CRED309] +VOCI PUBBLICITÀ + +[CRED310] +COUZIN ED, JOSH CLARK, JASON BUHRMESTER, JUAN ALLER, WAYNE OLIVER, SUSAN LEWIS, GILLIAN TELLING, TOM MURRAY, MIKE FERRANTE SR., EMMANUEL GOLDSTEIN, DAN HOUSER, NICK MANDELOS, GERRY COSGROVE, MIKE PALERMO, PORKCHOP, KEITH BROADAS + +[CRED311] +LEWIS, GILLIAN TELLING, TOM MURRAY, MIKE FERRANTE SR., EMMANUEL GOLDSTEIN, + +[CRED312] +DAN HOUSER, NICK MANDELOS, GERRY COSGROVE, MIKE PALERMO, PORKCHOP, + +[CRED313] +KEITH BROADAS + +[CRED314] +VCPR + +[CRED315] +SCRITTO DA DAN HOUSER E LAZLOW + +[CRED316] +PRODOTTO DA LAZLOW + +[CRED317] +MAURICE CHAVEZ - PHILLIP ANTHONY RODRIGUEZ + +[CRED318] +JONATHAN FREELOADER - PATRICK OLSEN + +[CRED319] +MICHELLE MONTANIUS - KELLY GUEST + +[CRED320] +DEP. ALEX SHRUB - CHRIS LUCAS + +[CRED321] +CALLUM CRAYSHAW - SEAN MODICA + +[CRED322] +JOHN F. HICKORY - LJ GANSEN + +[CRED323] +PASTOR RICHARDS - DAVID GREEN + +[CRED324] +JAN BROWN - MAUREEN SILLIMAN + +[CRED325] +BARRY STARK - RENAUD SEBBANE + +[CRED326] +JENNY LOUISE CRAB - MARY BIRDSONG + +[CRED327] +KONSTANTINOS SMITH - KONSTANTINOS.COM + +[CRED328] +JEREMY ROBARD - PETER SILVESTRO + +[CRED329] +PUBBLICITÀ RADIO + +[CRED330] +SCRITTE DA DAN HOUSER E LAZLOW + +[CRED331] +PRODOTTE DA LAZLOW + +[CRED332] +JINGLE AGGIUNTIVI PRODOTTI DA CRAIG CONNER + +[CRED333] +VOCI PUBBLICITÀ + +[CRED334] +ADAM DAVIDSON, ALEX ANTHONY, ALICE SALTZMAN, AMY SALZMAN, KATE DUKICH, + +[CRED335] +ARAN RONICLE, BARB JONES, BEN KRECH, BRIAN THOMAS, BROCK YODER, CHRIS + +[CRED336] +FERRANTE, CRAIG CONNER, DAVE RYAN, DAVID GREEN, DORIS WOO, DOUGLAS + +[CRED337] +HARRISON, ED MCMANN, FRANK CHAVEZ, FRANK FAVA, GENE HILGREEN, GREG + +[CRED338] +SCHWEIZER, HUNTER PLATIN, JAMES FERRANTE, JEFF BERLIN, JEFF ROSA, JOE KELLY, + +[CRED339] +JOHN MAUCERI, JOSH CLARK, JULIE WEMYSS, KEVIN STRALEY, KIM GURNEY, LANCE + +[CRED340] +WILLIAMS, LAURA PATERSON, LAZLOW, LISA ORTIZ, LORNA JORDAN, LUCIEN JONES, + +[CRED341] +MAUREEN SILLIMAN, MIKE FERRANTE JR., PETE GUSTIN, PETER SILVESTRO, RAFF + +[CRED342] +CROLLA, RANDY JOHNSON, RICHARD KRUGER, RON REEVE, SHELLEY MILLER, SKY, TJ ALLARD + +[CRD344A] +AUDIO REGISTRATO PRESSO DIGITAL ARTS STUDIOS, + +[CRED344] +NYC, TRACK 9 STUDIOS, NYC, + +[CRED345] +WEDDINGTON MULTIMEDIA, LOS ANGELES, + +[CRD345A] +SYNC SOUND, NYC E RADIO LAZLOW, LONG ISLAND. + +[CRED346] +UN RINGRAZIAMENTO A AXEL ERICSON E WON LEE DI DIGITAL ARTS, PAUL VASQUEZ DI TRACK 9 STUDIOS, JOHN BOWEN E JOHN HASSLER DI SYNC SOUND + +[CRED347] +MARK LLOYD + +[CRED348] +TIM BATES + +[CRED349] +KIT BROWN + +[CRED350] +ANDY MASON + +[CRED351] +PHIL DEANE + +[CRED352] +PHIL ALEXANDER + +[CRED353] +MATT HEWITT + +[CRED354] +DENBY GRACE + +[CRED355] +ANTOINE CABROL + +[CRED356] +JONOTHAN STONES + +[CRED357] +MIKE BLACKBURN + +[CRED358] +TIM MCGAFF [CINCAM] Camera mobile -[FEDS_AM] -<>-CAMBIA MENU +[RC4] +'LA FURIA DI RUMPO' -[KABOOM] -BOOM! - -[SPLAT] -SCHIACCHIATO! - -[PANCAK] -SPIATTELLATO! - -[SOAKED] -ANNEGATO! - -[HEAD] -Head Radio - -[DBL_CLF] -Double Clef FM - -[FLASHB] -Flashback FM - -[RISE] -Rise FM - -[LIPS] -Lips 106 - -[CHAT] -Chatterbox FM - -[K_JAH] -K-Jah Radio - -[GAM_FM] -Game Radio FM - -[MSX_FM] -MSX FM +[LEGAL] +~g~Elimina la minaccia criminale! [GA_2] -~w~Motore nuovo e carrozzeria riverniciata: 100$ +Motore nuovo e carrozzeria riverniciata. Gli sbirri non ti riconosceranno! + +[HELP15] +Quando sei a piedi, premi il ~h~~k~~PED_LOOKBEHIND~~w~ per ~h~guardare indietro~w~. Usa la ~h~levetta analogica destra~w~ per ~h~guardarti attorno~w~. + +[FEC_LB4] +Guarda indietro (tasto R3) [PERPIC] Pacchetti speciali recuperati +[CO_ONE] +Pacchetto speciale ~1~ su ~1~ + [GA_21] -~w~Non puoi parcheggiare altri veicoli in questo garage. +Non puoi parcheggiare altri veicoli in questo garage. [CHEAT1] Trucco attivato @@ -3259,14 +3875,8 @@ Trucco soldi [CHEAT7] Trucco tempo atmosferico -[FEDS_BA] -tasto " - INDIETRO - -[FED_WIS] -PANORAMICO: - [USJ_ALL] -~w~TUTTE LE ACROBAZIE UNICHE COMPLETATE! +TUTTE LE ACROBAZIE UNICHE COMPLETATE [JAN] Gen @@ -3310,12024 +3920,5355 @@ Dic [BONUS] ~g~BONUS ~1~$ +[HORN1] +Premi il ~h~~k~~VEHICLE_HORN~~w~ per attivare il ~h~clacson~w~. + +[HORN2] +Premi il ~h~~k~~VEHICLE_HORN~~w~ per attivare il ~h~clacson~w~. + +[HORN3] +Premi il ~h~~k~~VEHICLE_HORN~~w~ per attivare il ~h~clacson~w~. + +[FEC_EXV] +Esci dal veicolo + [TAXI_M] -'Tassista' +'TAXI DRIVER' [COP_M] -'Vigilante' +'VIGILANTE' [FIRE_M] -'Pompiere' +'POMPIERE' [AMBUL_M] -'Paramedico' +'INFERMIERE' [HJ_IS] -~w~BONUS ACROBAZIA FOLLE: ~1~$ +BONUS ACROBAZIA FOLLE: ~1~$ [HJ_PIS] -~w~BONUS ACROBAZIA FOLLE PERFETTA: ~1~$ +BONUS ACROBAZIA FOLLE PERFETTA: ~1~$ [HJ_DIS] -~w~BONUS DOPPIA ACROBAZIA FOLLE: ~1~$ +BONUS DOPPIA ACROBAZIA FOLLE: ~1~$ [HJ_PDIS] -~w~BONUS DOPPIA ACROBAZIA FOLLE PERFETTA: ~1~$ +BONUS DOPPIA ACROBAZIA FOLLE PERFETTA: ~1~$ [HJ_TIS] -~w~BONUS TRIPLA ACROBAZIA FOLLE: ~1~$ +BONUS TRIPLA ACROBAZIA FOLLE: ~1~$ [HJ_PTIS] -~w~BONUS TRIPLA ACROBAZIA FOLLE PERFETTA: ~1~$ +BONUS TRIPLA ACROBAZIA FOLLE PERFETTA: ~1~$ [HJ_QIS] -~w~BONUS QUADRUPLA ACROBAZIA FOLLE: ~1~$ +BONUS QUADRUPLA ACROBAZIA FOLLE: ~1~$ [HJ_PQIS] BONUS QUADRUPLA ACROBAZIA FOLLE PERFETTA: ~1~$ -[HJBAD] -~w~Terribile atterraggio: avevi quasi guadagnato ~1~$! - -[HJUP] -Salute al decollo: ~1~ - -[HJDOWN] -Salute all'atterraggio: ~1~ - [FESZ_LS] Caricamento completato. -[CEDBUG1] -!!Debug Event!! +[HELI_1A] +Prova le tue abilità con lo Sparrow: scopri quanto velocemente riesci a completare il percorso. -[CEDBUG2] -!!Player is dead or not playing!! +[HELI_1B] +Percorso completato! -[CEDBUG3] -!!Player is in INDUSTRIAL level!! +[HELIODD] +Strani incarichi con l'elicottero -[CEDBUG4] -Trying to make COLLECTIVE with ~1~ +[INT2_M] +Hanno una fattoria in Panama. -[CEDBUG5] -Debug Value: ~1~ +[INT2_N] +OK, va bene, ascoltate: -[CEDBUG6] -Debug Values: A: ~1~ B: ~1~ +[INT2_O] +quando arriviamo volete che resti in macchina -[CEDBUG7] -Debug Values: A: ~1~ B: ~1~ C: ~1~ +[INT2_P] +o preferite che venga con voi altri? -[LINE] -This is Line ~1~ +[INT2_Q] +No, resta in macchina. -[MRACE08] -~w~Torna quando avrai un veicolo! +[INT2_R] +Lo sapete, ci ho pensato su. -[MRACE01] -~w~Aspetta dei rivali e poi suona il clacson per iniziare la gara! +[INT2_S] +Penso proprio che resterò in macchina. -[MRACE02] -~w~La gara inizierà quando il primo giocatore suonerà il clacson. +[INT4_A] +Fottuti! Siamo fottuti! -[MRACE05] -~r~HAI PERSO! +[INT4_B] +È sempre la stessa storia, -[MRACE07] -~r~Sei morto! Perdente! +[INT4_C] +metto fuori la testa per un maledetto secondo, -[MRACE06] -~r~Sei uno sfigato! Ti sei ritirato! +[INT4_D] +e il fato mi tira palate di merda in faccia! -[MRACE09] -~w~Torna in gara! +[INT4_E] +Bene, vaffanculo! -[MRACE10] -~w~Hai vinto (una fuga solitaria)! +[INT4_F] +Smettila di fare casino e di lamentarti. Siamo vivi, non è vero? -[MRACEPO] -Posizione +[INT4_G] +Fammi scendere qua. -[MRCPU03] -HAI INCENDIATO TUTTI I RIVALI! +[INT4_H] +Fai scomparire la macchina e fatti una bella dormita. -[MRCPU04] -STAI BRUCIANDO! ( ------- TRASHMASTER ODD-JOB MISSION ------- ) +[INT4_I] +Passerò domani a trovarti in ufficio e troveremo un modo per risolvere questo casino. -[TRASH1] -Sprint-atore ecologico +[INT4_J] +OK, mi sembra un'ottima idea, andrò a dormire. -[TRASH1A] -~w~Recupera i bidoni e porta l'immondizia alla discarica. +[INT4_K] +Che cosa intendi fare? -[TRASH1C] -~w~Il tempo partirà quando recuperi un bidone. Puoi recuperarli in QUALSIASI ORDINE. +[INT4_L] +Tornare nella mia stanza, -[TRASH1G] -~r~È troppo difficile per te? Sei immondizia! +[INT4_M] +schiarirmi le idee e risolvere questo casino. -[TRASH1H] -~r~Tempo scaduto! +[INT4_N] +OK. -[TRASH1J] -~r~Ti sei allontanato troppo dal tuo percorso! +[LAW] +MISSIONI DELL'AVVOCATO -[TRASH1K] -~w~Recupera i ~g~bidoni! +[LAW1_1] +~g~Vai a prendere degli abiti nuovi dal negozio di vestiti Rafael's. -[TRASH1L] -~w~Torna alla ~y~discarica! +[LAW4_6] +Brucia l'amministrazione! -[TRASH1M] -~w~Immondizia recuperata! +~1~ secondi +[LAW4_7] +Uccidi i responsabili! -[PCJINFO] -~w~Passa tutti i 25 ~y~checkpoint~w~ entro ~1~ secondi. +[LAW4_8] +Combattere, combattere, combattere, combattere,. -[PCJFAIL] -~r~Non sei riuscito a battere il tempo di ~1~ secondi! +[LAW4_9] +Più ferie, meno lavoro! -[PCJPROM] -~w~Hai ~1~ secondi per tornare sulla ~b~moto! +[LAW4_11] +Combattere, combattere, combattere, combattere,. -[PCJPRO1] -~w~Hai ~1~ secondo per tornare sulla ~b~moto! +[LAW4_12] +Viva la rivoluzione. -[PCJDEST] -~r~Moto distrutta! +[GENERAL] +MISSIONI DEL COLONNELLO -[PCJRET] -~r~Non sei riuscito a tornare alla moto. +[GEN3_4] +Tommy Vercetti. Andiamo... -[PCJTIME] -~r~Il tempo è scaduto! +[GEN3_13] +Che cosa diavolo ti prende? Vai sul tetto dall'altra parte del cortile prima che arrivino! -[PCJCHEC] -~w~Checkpoint ~1~ di ~1~ +[GEN3_17] +Meeerda! Stai cercando di ammazzarmi? -[TRRACE1] -~w~Ottieni del tempo supplementare per ogni checkpoint superato... +[GEN3_21] +~g~Ha preso i soldi di Diaz! Inseguilo e riprendili! -[TRRACE3] -~w~Hai finito risparmiando ~1~ secondi! +[GEN3_24] +~r~Diaz è morto! Non sei riuscito a proteggerlo! -[TRRACE4] -~w~Hai raggiunto per primo ~1~ checkpoint su ~1~. +[GEN3_26] +~r~Hai ucciso Diaz! -[TRRACE5] -~w~Hai guadagnato ~1~$! +[GEN3_27] +~r~Hai ucciso una guardia di Diaz! -[TRRACE6] -~w~OTTIMO! Sei arrivato primo a tutti i checkpoint! Ottieni un bonus di 1.000$! +[GEN3_31] +~g~Vai all'appuntamento e proteggi Diaz. -[TRRACE7] -~r~Hai abbandonato la pista! +[GEN3_32] +~g~Raggiungi il tetto nell'edificio di fronte a Lance e appostati. -[TRRACE8] -~r~La tua moto è stata distrutta! +[COKE] +MISSIONI DEL BARONE DELLA COCA -[TRRACE9] -~r~Non sei riuscito a tornare alla moto in tempo! +[COK1_3] +Spero tu cada e ti rompa l'osso del collo! -[TRRAC10] -~r~Hai perso la tua moto! +[COK1_6] +Sono stanco di tutto questo. -[TRRAC11] -~r~Il tempo è scaduto! +[COK2_7] +Vedi quei segnali, ragazzo? Cerca di colpire le luci! -[ANG] -Avenging Angels +[COK2_10] +Di certo sei più bravo a sparare che a parlare. -[ANG_1] -~w~Ehi amico! Vogliamo ripulire questa città dal crimine! +[COK2_11] +Grazie. Anche tu hai una bella parlantina. -[ANG_2A] -Premi~h~ ~k~ ~TGSUB~ ~w~per unirti agli Avenging Angels. +[COK2_12] +Lo so, Tommy. -[ANG_3] -~w~Io e te potremmo fare nostra questa città. Ma, ehm... meglio comunque chiedere un po' d'aiuto. +[COK2_18] +Ti diverti con Kenny Loggins. -[ANG_3A] -~w~Fermati vicino ad altri Avenging Angels per farli unire alla tua gang. +[COK2_19] +Cielo, adoro questo album! -[ANG_4] -~w~Yo! Mi sono messo questa divisa per spaccare un po' di ossa. Andiamo! +[COK2_26] +~r~Hai ucciso Lance! -[ANG_5] -~w~Conta su di me... +[COK3_1] +Non sparare, amico! -[ANG_6] -~w~Bruciamo un po' di feccia! +[COK3_2] +Che cosa sta succedendo? -[ANG_7] -~w~Pestare è il massimo! +[COK3_3] +Sta prendendo la barca. Farabutto! -[ANG_7A] -~w~Sei contento? +[COK3_4] +Aiuto! Un idiota sta rubando la barca! -[ANG_7B] -~w~Non abbiamo bisogno di bulli per le nostre strade! +[COK4_W] +Uugghh! Questo è l'ultimo. -[ANG_7C] -~w~Non nel mio quartiere! +[COK4_X] +Vado ad accendere... -[ANG_7D] -~w~È ora di contrattaccare! +[COK4_Y] +A quanto sembra abbiamo dei nuovi amici. -[ANG_7E] -~w~In questa città noi siamo la legge! +[COK4_2] +Sì. -[ANG_8] -Tempo rimasto +[COK4_6] +Sai dove stiamo andando? -[ANG_9] -~w~Tempo prolungato! +[COK4_7] +Ci siamo persi? -[ANG_10] -~r~Il tempo è scaduto! +[COK4_8] +Abbiamo un po' di competizione! -[ANG_11] -~w~C'è della gente 'sgradita' nei paraggi... diamo loro una lezione. +[COK4_9] +Falli fuori! -[ANG_12] -~w~Una folla scatenata ha invaso le strade. Riportiamo l'ordine! +[COK4_9A] +È giunta l'ora di un po' di Lance Vance Dance! -[ANG_13] -~w~Questa città sta andando a rotoli. La gente crede di poter manifestare liberamente? Gliela faremo vedere! +[COK4_10] +Sono pronti per il macero! E per sfamare i pesci. -[ANG_13A] -~w~Abbiamo avvistato una gang pericolosa che opprime la gente nelle strade.... +[COK4_11] +Ce l'abbiamo fatta! Le altre imbarcazioni non sono della nostra classe. -[ANG_14] -~w~È stato segnalato un altro crimine... Andiamo! +[COK4_17] +Stanno iniziando a pregare! -[ANG_16] -~w~Sono state avvistate alcune persone parcheggiare irregolarmente. ANDIAMO! +[COK4_18] +I miei piedi sono bagnati! STIAMO IMBARCANDO ACQUA! -[ANG_16A] -~w~Ci sono dei buoni a nulla che bighellonano in giro. È ora di fare un po' di pulizia. +[COK4_21] +Ponte in arrivo! -[ANG_OBJ] -~w~Fai fuori quella fastidiosa ~r~gang. +[COK4_22] +Lanciati, sta per esplodere! -[ANG_17] -~w~Ben fatto amico! Grazie a te, questo quartiere è stato ripulito dal crimine. Per il momento... +[COK4_23] +Bel colpo! -[ANG_18] -~w~Se la stanno svignando! +[COK4_29] +~r~Hai ucciso Lance! -[ANG_19] -~w~Cerca degli Avenging Angels e fermati vicino a loro per portarli in missione. +[ASS1_6] +Vai Tommy, andrà tutto bene! -[ANG_20] -~w~Stanno scappando! +[ASS1_7] +Beccatevi questo, maledetti assassini! -[ANG_21] -~w~Non lasciamoli fuggire! +[ASS1_8] +Sono bloccato! -[VIC1] -Casa dolce casa +[ASS1_9] +Ti copro io Tommy! -[VIC2] -Il pigro +[ASS1_10] +Ehi, questo sì che è un bel confine alberato. -[VIC3] -Vendetta spacciatrice +[ASS1_11] +Ehi Tommy, posso avere la stanza con la vista sulla baia? -[VIC4] -Snuff +[ASS1_12] +Che bel soffitto alto che c'è qui... -[VIC5] -Chi rompe paga +[ASS1_3] +Lance! Ho bisogno di copertura! -[VIC6] -Chiavi in mano +[ASS1_5] +Lance! -[VIC7] -Non aprite quel porto +[ASS1_15] +~g~Distruggi la dimora e uccidi Diaz! -[MAR1] -Shopping asfissiante +[ASS1_17] +~g~Sono disponibili più strade all'interno della villa. -[MAR2] -Portata a spasso +[TAXWAR] +MISSIONI GUERRA DEI TAXI -[MAR3] -Un premio corposo +[NOTAXI] +~g~Hai bisogno di un taxi Kaufman per attivare questa missione. -[MAR4] -Biker in calore +[TAXW1_5] +~g~Devi avere un taxi Kaufman! -[MAR5] -Overdose di problemi +[TAX2_4] +Forza, Tommy. -[SAL1] -L'offerta +[TAX2_5] +Riempilo di botte! -[SAL2] -Puttan tour! +[TAX2_6] +Non ha neppure il permesso. -[SAL3] -Strizza +[TAX2_7] +Maledetti servizi di limousine. -[SAL4] -Montagne russe +[TAXW3_1] +~g~Vai a prendere Mercedes. -[SAL5] -Contrabbando +[RACE1] +~g~3..2..1.. VIA VIA VIA! -[SAL6] -Sabotaggio Sindacco +[RACE2] +~g~3 -[SAL7] -Problema di Triade +[RACE3] +~g~2 -[SAL8] -A spasso con Leone +[RACE4] +~g~1 -[JDT1] -Il puttaniere +[RACE5] +~g~VIA! -[JDT2] -Amici in 5 minuti +[FIRST] +~b~PRIMO -[JDT3] -Una situazione esplosiva +[SECOND] +~b~SECONDO -[JDT4] -Bambole a scoppio +[THIRD] +~b~TERZO -[JDT5] -Il salvatore di Salvatore +[FOURTH] +~b~QUARTO -[JDT6] -I cannoni di Leone +[RACETM] +~b~TEMPO DI GARA: ~1~:~1~ -[JDT7] -La calma prima della tempesta +[RACETM2] +~b~TEMPO DI GARA: ~1~:0~1~ -[JDT8] -Uomo d'onore +[RACEFA] +~r~Non sei riuscito a vincere la gara! -[MAC1] -Moda bimbo +[TEX1_5] +~r~È riuscito a fuggire! -[MAC2] -Grosso casino a Chinatown +[SEG3_1] +TEMPO: -[MAC3] -Grease Sucho +[SEG3_2] +~g~Raggiungi il van che contiene il Raider radiocomandato e le bombe a tempo. -[MAC4] -Carne morta +[SEG3_3] +~g~Devi utilizzare il RAIDER RADIOCOMANDATO per trasportare le 4 bombe nelle 4 aree bersaglio all'interno del cantiere. -[MAC4_0] -Casa +[SERG3_5] +~g~Puoi trasportare solo una bomba alla volta e non puoi raccogliere dell'esplosivo correttamente posizionato. -[MAC5] -Figlio di nessuno +[SEG3_7] +~g~Una volta posizionata la PRIMA bomba con successo su di un bersaglio, partirà il conto alla rovescia, dovrai piazzare tutti gli esplosivi entro il tempo limite. -[SALH1] -Giustizia tosta +[SEG3_8] +~g~Le 4 bombe devono essere tutte posizionate su ognuno dei bersagli per passare la missione e demolire l'edificio. -[SALH2] -La morte chiama +[SEG3_9] +~g~Bomba piazzata! Ancora 3. -[SALH3] -Shogun Showdown +[SEG3_10] +~g~Bomba piazzata! Ancora 2. -[SALH4] -Un giorno da Leone +[SEG3_11] +~g~Bomba piazzata! Ne manca una sola. -[SALH4_V] -~r~v1,1 +[SEG3_12] +~g~Bomba NON piazzata! Recupera l'esplosivo! -[SALH5] -Scacco siculo +[SEG3_13] +~g~Piazza la bomba nella zona bersaglio. -[SALH5_V] -~r~v1,1 +[SEG3_14] +~r~Tempo esaurito: hai fallito nel demolire l'edificio. -[DONH1] -Arraffa l'arraffatore +[SEG3_15] +~r~Il Raider radiocomandato è stato distrutto! Come farai adesso a trasportare le bombe? -[DONH2] -Ferma la stampa +[AVERY] +MISSIONI DI AVERY -[DONH3] -Il festino cadaverico si rianima +[ASM] +MISSIONI DA SICARIO -[DONH4] -Un'offerta bomba +[ASM_1] +MISSIONE DA SICARIO 1 -[DONH5] -Disturbo della quiete pubblica +[ASM1_1] +~g~Mr. Teal, il tuo aiuto nello sradicare gli stranieri è stato inestimabile per il nostro lavoro. Ho un altro lavoro con un contatto più 'diretto'. I dettagli sono stati attaccati sotto al telefono. -[DONH6] -Love fuggiasco +[ASM1_2] +~g~Raggiungi il telefono pubblico presso il Mall in Washington Beach. -[TOSH1] -Il sesso debole +[ASM1_3] +~g~Carl Pearson, fattorino di una pizzeria. Non deve completare le sue consegne. -[TOSH2] -Scotto col botto +[ASM1_4] +~g~Uccidi il fattorino prima che possa completare le sue consegne. -[TOSH2F0] -~r~Un furgone ha raggiunto il covo della Yakuza! +[ASM_2] +MISSIONE DA SICARIO 2 -[TOSH2F1] -~r~Il convoglio ha raggiunto il covo dalla Yakuza! +[ASM_3] +MISSIONE DA SICARIO 3 -[TOSH2F2] -~r~Non hai distrutto i portavalori! +[ASM3_A] +Marcus Hammond, Franco Carter, Dick Tanner, Nick Kong e Stuntman Driver fanno tutti parte di un'associazione europea che si sta preparando a commettere una rapina. -[TOSH2M0] -~w~Fuori uno! +[ASM3_B] +Si trovano tutti nella loro posizione pronti all'azione. Voglio che vengano tutti eliminati prima che inizi il colpo. Ho disposto delle utili armi nei paraggi. -[TOSH2M1] -~w~Fuori un altro! +[ASM3_1] +~g~Recupera le armi che Mr. Black ha lasciato per te. -[TOSH3] -La morte all'opera +[ASM3_2] +~g~Non avvicinarti troppo, se no il bersaglio potrebbe vederti. -[TOSH4] -Kazuki dorme con le fishes +[ASM3_3] +~g~Per un'eliminazione più rapida, colpisci da una locazione vicino alle loro postazioni ed evita di farti vedere. -[PO_MOB1] -~w~Toni? Sono la mamma! +[ASM3_4] +~g~Ti ha visto! Fallo fuori il prima possibile! -[POMOB1A] -~w~Da quanto tempo sei tornato in città? +[ASM3_5] +~g~Marcus Hammond si trova presso dei cartelli pubblicitari in Washington. -[POMOB1B] -~w~Perché non sei ancora venuto a trovarmi? +[ASM3_6] +~g~Franco Carter si trova presso la DBP Security vicino a Ocean Drive. -[POMOB1C] -~w~Cos'hai che non va? +[ASM3_7] +~g~Dick Tanner si trova presso la gioielleria in Vice Point. -[POMOB1D] -~w~Sono tua madre, per l'amor di Dio! Forza! +[ASM3_8] +~g~Nick Kong si trova presso Washington Beach. -[PO_MOB2] -~w~Ciao Fido! Sono Maria. +[ASM3_9] +~g~Stuntman Driver si trova presso Washington Beach. -[PO_MOB3] -~w~Ehi Toni! Sono JD. +[ASM3_10] +~r~Non sei riuscito a eliminarli tutti quanti. -[POMOB3A] -~w~Ho sentito tutto, stai facendo grandi cose. +[ASM_4] +MISSIONE DA SICARIO 4 -[POMOB3B] -~w~Spero solo che non ti dimenticherai del tuo vecchio amico JD quando arriverai in vetta. Vero? +[ASM4_1] +~g~Recupera il fucile che ti abbiamo lasciato tra le foglie presso il terminal dell'aeroporto. -[POMOB4A] -~w~Che cazzo vuoi? +[ASM4_2] +~g~Non mancare il bersaglio o allarmerai le sue guardie del corpo: ricorda di tenere una certa distanza per evitare di essere visto. -[POMOB4B] -~w~Qualcuno che vada a prenderti il bucato o che ti pulisca il culo? +[ASM4_3] +~g~Osserva la donna sul balcone sopra ai banconi del check-in dentro il terminal. NON UCCIDERLA. -[POMOB4C] -~w~Non fare così, ascolta. Mi dispiace per tutto... +[ASM4_4] +~g~Elimina l'uomo a cui passa la valigetta ma solo DOPO CHE L'AVRÀ RACCOLTA. Poi recupera la valigetta e portala ad Ammu-Nation in Downtown. -[POMOB4F] -~w~Una bella fetta di torta all'arsenico? +[ASM4_5] +~g~Recupera la valigetta! -[POMOB4G] -~w~Scordatelo. +[ASM4_6] +~g~Porta la valigetta ad Ammu-Nation in Downtown -[POMOB4I] -~w~Salvatore l'ha saputo e mi ha detto che dobbiamo crescere entrambi. +[ASM4_7] +~r~Hai ucciso la donna, idiota! -[POMOB4J] -~w~Io sto facendo la mia parte, mi spiace... Dai... +[ASM4_8] +~r~Il bersaglio ha sentito il colpo d'arma da fuoco! L'accordo è saltato! -[PO_MOB5] -~w~Toni? Sono Salvatore. +[ASM4_9] +~r~Il bersaglio è salito a bordo del volo! -[POMOB5A] -~w~Siamo in guai grossi! Porta qui il tuo culo il più rapidamente possibile! +[ASM4_10] +~g~Sembra tu non sia l'unico interessato alla valigetta! Portala in fretta ad Ammu-Nation! -[PO_MOB6] -~w~Anthony? Sono Salvatore. +[ASM4_11] +~r~Il bersaglio ti ha visto! L'accordo è saltato! -[POMOB6A] -~w~Hai visto Maria? +[ASM4_13] +~g~Ti ha visto e sta scappando! Uccidilo e recupera la valigetta! -[ST_MOB8] -~w~Pronto? +[ASM4_14] +~g~L'indicatore della distanza nella parte superiore destra dello schermo ti tiene informato sulla distanza dal bersaglio. Se si riempirà, verrai avvistato. -[STMOB8A] -~w~Toni? Sono Sal. +[ASM_5] +MISSIONE DA SICARIO 5 -[STMOB8B] -~w~Devo parlarti, ma non mi fido di questi cazzo di telefoni. +[KICK] +KICKSTART -[STMOB8C] -~w~Ti chiamerò dal telefono pubblico fuori dal palazzo di giustizia. +[KICK1_3] +~g~Numero di volte che hai appoggiato i piedi: ~1~ -[ST_MOB1] -~w~Toni. Sono Donald. +[KICK1_4] +~g~Penalità: ~1~ secondi -[STMOB1A] -~w~Ho delle questioni in sospeso che richiedono le tue... particolari abilità. +[BANK] +MISSIONI RAPINA -[STMOB1B] -~w~Vieni nel mio ufficio appena puoi. +[BANK1] +MISSIONE RAPINA 1 -[ST_MOB2] -~w~Pronto? +[BANK2] +MISSIONE RAPINA 2 -[STMOB2A] -~w~Cipriani? Sono io, McAffrey. +[BJM2_3] +PERCENTUALE DI CENTRI: ~1~% -[STMOB2B] -~w~Ho delle novità che Salvatore potrebbe gradire. +[BJM2_15] +PUNTEGGIO: -[STMOB2C] -~w~Vediamoci al solito posto. +[BJM2_18] +PUNTEGGIO DA BATTERE: -[ST_MOB3] -~w~Pronto? +[BJM2_19] +~g~Colpisci il maggior numero di bersagli entro il tempo limite! -[STMOB3A] -~w~Sono Sal. +[BJM2_21] +~g~Colpisci il maggior numero di bersagli finché hai ancora colpi. -[STMOB3B] -~w~Ascolta, i Forelli avevano in pugno il sindaco Hole. +[BANK3] +MISSIONE RAPINA 3 -[STMOB3D] -~w~Conosco un pezzo grosso che farebbe qualsiasi cosa per una poltrona. +[BJM3_1] +~g~Trova una macchina da corsa e posizionati sulla griglia di partenza. -[STMOB3E] -~w~È uno stronzo fatto e finito, quindi qualificato per il ruolo in questione. +[BNK4_2A] +I ragazzi dell'officina hanno fatto un ottimo lavoro su questa piccola. -[STMOB3F] -~w~Gli ho detto che lo avresti aiutato a vincere le elezioni... per noi! +[BNK4_3G] +Ommerda, abbiamo la polizia alle calcagna! -[ST_MOB4] -~w~Pronto. +[BNK4_3H] +...e non siamo ancora neanche arrivati. -[STMOB4A] -~w~Toni. Sono io, Sal. +[BNK4_3K] +Dobbiamo seminare prima la polizia... -[STMOB4B] -~w~Sento puzza di merda dei Forelli dietro a tutto questo. +[BNK4_3L] +Cristo Tommy, stai cercando di farci fuori? -[STMOB4C] -~w~Ciò che voglio sapere è perché hanno convinto il sindaco a mettermi braci bollenti sotto al culo. +[BNK4_3N] +Tutto ciò che amo finisce a pezzi! -[STMOB4D] -~w~Ascolta, dobbiamo vederci al molo. +[BNK422A] +Cam, quanto tempo? -[STMOB4E] -~w~Dobbiamo fare un po' di ricerche. +[BK4_23A] +Mi bastano 3 minuti! -[ST_MOB5] -~w~Pronto! +[BNK4_26] +Maledizione! Ecco che arrivano! -[STMOB5B] -~w~Dirigiti verso il telefono pubblico di Torrington. +[BNK4_32] +Usa l'esplosivo per aprire le cassette di sicurezza! -[STMOB5C] -~w~Ti devo parlare +[BNK4_43] +Vi copro io il culo, PARTI! -[STMOB5D] -~w~Sulla strada, voglio che ti incontri con un mio socio ad Aspatria. +[BNK4_51] +A me sembri a posto. -[STMOB5E] -~w~Ci aiuterà ad aumentare la pressione sui Forelli e sui Sindacco. +[KENT] +MISSIONI DI KENT PAUL -[ST_MOB6] -~w~Pronto? +[KENT1] +MISSIONE DI KENT PAUL 1 -[STMOB6A] -~w~Toni? Sono Sal. +[COUNT] +MISSIONI DI FALSIFICAZIONE -[STMOB6B] -~w~Vai al telefono pubblico di Liberty Campus. +[COUNT1] +MISSIONE DI FALSIFICAZIONE 1 -[STMOB6C] -~w~È importante. - -[ST_MOB7] -~w~Pronto? - -[STMOB7A] -~w~Toni? Sal. - -[STMOB7B] -~w~Vai a Belleville e cerca il telefono pubblico. - -[STMOB7C] -~w~Ci sono delle faccende urgenti da sbrigare. - -[ST_MOB9] -~w~Toni Cipriani. - -[STMOB9A] -~w~Toni? Sono la tua mamma! - -[STMOB9B] -~w~Ho sentito che sei diventato un piccolo boss! - -[STMOB9C] -~w~...non ho mai dubitato di te per un secondo, figliolo! - -[STMOB9D] -~w~...e viste le circostanze, - -[STMOB9E] -~w~ho deciso di ritirare la taglia che avevo messo su di te. - -[STMOB9F] -~w~Lasciamoci alle spalle questa faccenda. - -[STMOB9G] -~w~Dopo tutto l'ho fatto per amore. - -[STMOB9H] -~w~Ah, quale razza di figlio può spingere la propria madre fino a questo punto? - -[STMOB9I] -~w~Ci vediamo presto, non dimenticarti della tua vecchia mamma. - -[STMO10] -~w~Pronto? - -[STMO10A] -~w~Ehi osso duro, sono McAffrey. - -[STMO10B] -~w~I federali hanno catturato il tuo capo, Salvatore. - -[STMO10C] -~w~E sono veramente incazzati neri. - -[STMO10D] -~w~Gli daranno la responsabilità di qualunque crimine in questa città. - -[STMO10E] -~w~Per questo motivo, noi non ci siamo mai visti. Capito? - -[SH_MOB1] -~w~Toni...? - -[SHMOB1A] -~w~Sal? È lei? - -[SHMOB1B] -~w~Chiudete la bocca! Sto parlando con il mio avvocato! - -[SHMOB1C] -~w~Toni? ...ehm, voglio dire ...Lionel? - -[SHMOB1D] -~w~Ascolta, mi hanno preso. Incredibile. - -[SHMOB1E] -~w~Sono in un fiume di merda in piena e non ho una pagaia. - -[SHMOB1F] -~w~Perciò vieni subito qui, ci sono delle faccende che devi sbrigare. - -[SHMOB1G] -~w~...Lionel? - -[SH_MOB2] -~w~Pronto? - -[SHMOB2A] -~w~Toni? Sono Donald. - -[SHMOB2B] -~w~No, aspetta, non agganciare! - -[SHMOB2C] -~w~Ho una proposta molto eccitante da farti... - -[SHMOB2D] -~w~Passa a trovarmi alla mia attuale... um... residenza e ti spiegherò tutto. - -[SHMOB2E] -~w~Toni...? - -[SHMOB2F] -~w~Ti prego Toni, sii buono, ti sto chiamando con gli ultimi spicc... - -[SH_MOB3] -~w~Parlo con il signor Cipriani? - -[SHMOB3A] -~w~Chi è? Come ha fatto ad avere il mio numero? - -[SHMOB3B] -~w~Chi impiega saggiamente le proprie risorse, ottiene ciò che vuole. - -[SHMOB3C] -~w~Non dovrei dirglielo io, signor Cipriani. - -[SHMOB3D] -~w~Ho bisogno del suo aiuto per risolvere una faccenda delicata. - -[SHMOB3E] -~w~Aiuto che le sarà retribuito lautamente. - -[SHMOB3F] -~w~Le spiegherò tutto quando raggiungerà il mio appartamento a Torrington. - -[SH_MOB4] -~w~Toni! Sono Sal! - -[SHMOB4A] -~w~Ce l'hai fatta! Non ci posso credere, ragazzo! - -[SHMOB4B] -~w~Ci siamo quasi! - -[SHMOB4C] -~w~Vieni a trovarmi, abbiamo alcune faccende in sospeso. - -[SH_MOB5] -~w~Toni? Donald. - -[SHMOB5A] -~w~Per gestire a nostro vantaggio l'affare Panlantic dobbiamo... uhm... - -[SHMOB5B] -~w~come posso dirlo in maniera delicata... - -[SHMOB5C] -~w~'ripulire' una piccola zona di Fort Staunton. - -[SHMOB5D] -~w~Quando dici 'noi', vuoi dire 'io' vero? - -[SHMOB5E] -~w~Toni, sono un libro aperto per te. - -[SHMOB5F] -~w~Vai a trovare 8-Ball. Sono certo che potrà fornirci il materiale necessario. - -[SHMOB5G] -~w~Sono certo che potrà fornirci il materiale necessario. - -[SH_MOB6] -~w~Amico? Sono 8-Ball. - -[SHMOB6A] -~w~Il materiale è pronto per la consegna. - -[AHIT_H0] -~w~Tutto qui, testa di cazzo? - -[AHIT_H1] -~w~Al diavolo! Quando si arrederanno questi coglioni? - -[AHIT_H2] -~w~Baciami il culo, cazzone! - -[AHIT_H3] -~w~Ragazzi, mi state facendo incazzare! - -[AHIT_BI] -~w~Risparmiati le battute! Uno dei killer di mamma è vicino! - -[AHIT_TA] -~w~Tieni gli occhi aperti! Uno dei killer di mamma è vicino! - -[AHIT_BU] -~w~Attenzione! Uno dei killer di mamma sta venendo a prenderti! - -[AHIT_AM] -~w~Attenzione! Uno dei sicari di mamma ti ha avvistato! - -[AHIT_VA] -~w~Stai in guardia! Uno dei sicari di mamma è in zona! - -[AHIT_PO] -~w~Occhi aperti! Uno dei killer di mamma sta arrivando per ucciderti! - -[AHIT_CA] -~w~Attento! Uno dei sicari di mamma si sta avvicinando! - -[K_TKT] -Disfida alla discarica - -[K_TK2] -~w~Passa attraverso le mete per conquistare punti. - -[K_TK4] -~w~Conquista il maggior numero di punti prima che scada il tempo! - -[K_CD] -~w~Hai ~1~ secondi per tornare sulla tua ~b~moto! - -[K_TKP1] -~w~1 punto! - -[K_TKP2] -~w~2 punti! - -[K_TKP3] -~W~3 punti! - -[K_SC] -Punti - -[K_SCX] -~w~Hai realizzato ~1~ punti! - -[K_SCX1] -~w~Hai realizzato 1 punto! - -[K_HSC1] -~w~Nuovo record di ~1~ punti! - -[K_HSC2] -~r~Non sei riuscito a battere il record di ~1~ punti. - -[KRUSH] -Adesso guadagnerai il quadruplo dei soldi usando il demolitore! - -[KRUSH2] -Adesso guadagnerai l'ottuplo dei soldi usando il demolitore! - -[TURFAIL] -~r~LAVORO COMPLETATO! - -[TKR1] -9mm di macello - -[TKR2] -Motorino sparacchino - -[TCKILL] -Uccisioni - -[TCHEAL] -Danni - -[TC2_1] -~r~Hai ucciso il tuo autista! - -[TC2_2] -~r~Veicolo distrutto! - -[TC2_3] -~r~Tempo scaduto! - -[TC_T_E] -~w~Bersaglio eliminato! ~1~$ - -[TUP_BR] -~w~Elimina più ~r~bersagli ~w~ possibili entro il tempo limite. - -[TUP_BR2] -~w~Elimina più di ~1~ ~r~bersagli ~w~per ottenere un nuovo record! - -[TUP_AD] -~w~Hai 3 pillole di adrenalina, premi il tasto R1 per usarne una. - -[TUPSC1] -~w~Nuovo record di ~1~ uccisioni! - -[TUPSC2] -~r~Non sei riuscito a battere il record di ~1~ uccisioni. - -[MPWCS1] -The Wedding List - -[MPWCS2] -Ehi, dove sei stato? - -[MPWCS3] -Ascolta, mio figlio Joey sta per sposarsi! - -[MPWCS4] -Gli ho trovato una ragazza davvero di classe, proprio come la mia Maria... non vedo l'ora di vederli assieme! - -[MPWCS5] -Però non voglio che lei lo veda alla guida di uno di quei catorci che ripara nella sua officina. - -[MPWCS6] -Perciò dovrai cercare un veicolo degno per l'occasione. - -[MPWCS7] -Mi assicurerò che valga il tuo tempo. - -[MPTCS1] -TANKS FOR THE MEMORIES - -[MPTCS2] -Sono Sal. Ho bisogno di creare un diversivo e tu mi darai una mano. - -[MPTCS3] -C'è un carro armato parcheggiato in città. Semina il caos, non fare complimenti! - -[MPTCS4] -Voglio che la gente creda di aver pisciato per sbaglio sulla tomba di Patton. - -[MPTCS5] -Ascolta, questo diversivo è molto importante, perciò ci saranno altre persone che tenteranno di partecipare. - -[MPTCS6] -... E pagherò solamente quello che starà alla guida più tempo degli altri. - -[MPRCS1] -Street Rage - -[MPRCS2] -Sono Salvatore Leone! Il vostro benefattore pubblico. - -[MPRCS3] -...non date retta a quello che dice il ministero della giustizia! - -[MPRCS4] -Sono amico di Liberty City, sono buono e generoso. Ecco perché ho sponsorizzato la gara odierna. - -[MPRCS5] -Quanto mi costerà questa stronzata? - -[MPRCS6] -COSA? Portami al pronto soccorso, sento un dolore al petto! - -[MPHPCS2] -Sono Sal... i federali stanno controllando il mio telefono perciò devo stare attento. - -[MPHPCS3] -Ci sono una valigetta piena di bigliettoni da 100 e un elenco di nomi sotto al telefono. Indovina di cosa ho bisogno... - -[MPHPCS4] -...Aspetta! Non voglio dividere i soldi con questi stronzi. - -[MPHPCS5] -Sai cosa fare... salda il conto. - -[MPHPCS6] -Aspetta, non volevo dire 'salda il tuo di conto'... intendevo... uhm... - -[MPHPCS7] -Ascolta, uccidi tutti gli stronzi sull'elenco e basta! - -[DEB0] -DEBUG 0 - -[DEB1] -DEBUG 1 - -[DEB2] -DEBUG 2 - -[DEB3] -DEBUG 3 - -[DEB4] -DEBUG 4 - -[NUM0] -DEBUG 0 (~1~) - -[NUM1] -DEBUG 1 (~1~) - -[NUM2] -DEBUG 2 (~1~) - -[NUM3] -DEBUG 3 (~1~) - -[NUM4] -DEBUG 4 (~1~) - -[CARS] -'Venditore di macchine' +[COUNT2] +MISSIONE DI FALSIFICAZIONE 2 [BIKE] -'Venditore di moto' +MISSIONI DEI MOTOCICLISTI -[RACE_0] -Posizione +[BIKE1] +MISSIONE DEI MOTOCICLISTI 1 -[RACE_FL] -~w~GIRO FINALE +[BIKE2] +MISSIONE DEI MOTOCICLISTI 2 -[RACE_X0] -~w~Recupera una macchina e vai alla ~y~partenza! +[BIKE3] +MISSIONE DEI MOTOCICLISTI 3 -[RACE_X1] -~w~Recupera una moto e vai alla ~y~partenza! +[GOAWAY1] +Ritorna quando avrai completato le missioni per la gang di Haiti. -[RACE_X2] -~w~Hai bisogno di una macchina per correre questa gara! +[HAIT] +MISSIONI DEGLI HAITIANI -[RACE_X3] -~w~Hai bisogno di una moto per correre questa gara! +[HAIT1] +MISSIONE DEGLI HAITIANI 1 -[RACE_X4] -~w~Hai ~1~ secondi per trovare una macchina. +[HAIT2] +MISSIONE DEGLI HAITIANI 2 -[RACE_X5] -~w~Hai ~1~ secondi per trovare una moto. +[HAIT3] +MISSIONE DEGLI HAITIANI 3 -[RACE_X6] -~w~Hai 1 secondo per trovare una macchina. +[HAM3_6] +~g~Utilizza il fucile di precisione che ti ho lasciato per completare la missione. -[RACE_X7] -~w~Hai 1 secondo per trovare una moto. +[ROCK] +MISSIONI DELLA BAND -[RACE_T0] -~r~Non sei arrivato primo! +[ROK1_4] +~g~OK, credo tu stessi cercando questo... -[RACE_T1] -~r~Sei stato squalificato per aver lasciato la tua macchina. +[ROK1_1E] +~g~Ti costerà di più di quanto hai! -[RACE_T2] -~r~Uno dei rivali è morto, la gara è stata annullata! +[ROK1_1F] +~g~Ritorna quando avrai i soldi. -[RACE_T3] -~r~Sei stato squalificato per aver lasciato la tua moto. +[RBM2_6] +~g~Wow! È un uomo, bloccalo! -[RACE_Y3] -~w~3... +[ROCK3] +MISSIONE DELLA BAND 3 -[RACE_Y2] -~w~2... +[ROK3_6D] +~r~insieme alle vostre GROSSE TESTE DA CAPELLONI! -[RACE_Y1] -~w~1... +[ROK3_40] +Vicino al fottuto minibar? -[RACE_Y] -~w~VIA! +[RBM3_5] +~g~Porta i Love Fist allo spettacolo. -[RACE_Z1] -~w~1° POSTO! +[CUBANM] +MISSIONI DEI CUBANI -[RACE_Z2] -~w~2° POSTO! +[CUBAN1] +MISSIONE DEI CUBANI 1 -[RACE_Z3] -~w~3° POSTO! +[CUBAN2] +MISSIONE DEI CUBANI 2 -[RACE_Z4] -~w~ULTIMO POSTO! +[CUB2_10] +~r~Dovresti uccidere gli Haitiani, non i Cubani. -[RACE_R1] -~w~RECORD: ~1~:~1~~1~ NUOVO RECORD! +[CUBAN3] +MISSIONE DEI CUBANI 3 -[RACE_R2] -~w~NUOVO RECORD! +[CUBAN4] +MISSIONE DEI CUBANI 4 -[RACE_S0] -~w~TEMPO: ~1~:~1~~1~ +[CUB4_05] +~r~Ti avevo detto di restare in macchina! Adesso non riusciremo mai a entrare! -[RACE_S1] -~w~MIGLIOR GIRO: ~1~:~1~~1~ +[CUB4_25] +OK, andiamo. -[RAC1] -Rombi assettati +[PROT] +MISSIONI DI PROTEZIONE -[RAC2] -Deimos-tri da sballo +[PRO1_H] +Perché non ti calmi per un secondo, sto finalmente cominciando a capire come funzionano le cose da queste parti. -[RAC3] -Wi-Cheetah 210 e lode +[PRO1_02] +~g~Esci dal Mall. -[BIK1] -Incontro a Red Light +[PRO3_06] +~g~Fai perdere le tracce. -[BIK2] -Torrington TT +[PORN] +MISSIONI PORNOGRAFIA -[BIK3] -GP delle cosche +[PORN1] +MISSIONE PORNOGRAFIA 1 -[TT1] -'Fossi & Ridossi' +[POR1_03] +~r~Candy è morta! -[TT1_A1] -~w~< PERCORSO ~1~ > +[PORN2] +MISSIONE PORNOGRAFIA 2 -[TT1_B1] -~w~Obiettivo del percorso: ~1~:~1~ +[PORN3] +MISSIONE PORNOGRAFIA 3 -[TT1_B1A] -~w~Obiettivo del percorso: ~1~:0~1~ +[POR3_18] +Sei stato visto! -[TT1_B2] -~w~Miglior tempo del percorso: ~1~:~1~ +[PORN4] +MISSIONE PORNOGRAFIA 4 -[TT1_B2A] -~w~Miglior tempo del percorso: ~1~:0~1~ +[POR4_04] +~g~Gli uffici sono dall'altra parte di questo cancello. -[TT1_B3] -~w~Miglior tempo del giro: ~1~:~1~ +[PHIL] +MISSIONI DI PHIL -[TT1_B3A] -~w~Miglior tempo del giro: ~1~:0~1~ +[PHIL1] +MISSIONE DI PHIL 1 -[TT1_B4] -~w~~1~:~1~ +[PHI1_06] +Ma che combini, come diavolo guidi? -[TT1_B4A] -~w~~1~:0~1~ +[PHI1_07] +Ehi! -[TT1_B5] -~w~Nuovo record del percorso! ~1~:~1~ +[PHIL2] +MISSIONE DI PHIL 2 -[TT1_B5A] -~w~Nuovo record del percorso! ~1~:0~1~ +[PIZ1_A] +MISSIONE RECAPITO PIZZE -[TT1_L] -~r~ Non disponibile. +[PIZ1_03] +~g~Ritorna alla pizzeria e prendi le nuove ordinazioni. -[A_PISTO] -~w~< Pistola > +[PIZ1_04] +~g~Ecco le nuove ordinazioni. -[A_UZI] -~w~< Mini-mitraglietta > +[PIZ1_10] +Premi il ~h~tasto R3~w~ per annullare la missione. -[A_AK] -~w~< AK47 > +[CNTBUY1] +Tipografia acquistata: ~1~$ -[A_SNIPE] -~w~< Fucile di precisione > +[CARBUY] +Concessionario acquistato: ~1~$ -[A_GRENA] -~w~< Granate > +[PORNBUY] +Studio cinematografico acquistato: ~1~$ -[A_ARMOU] -~w~< Giubbotto antiproiettile > +[ICEBUY] +Fabbrica di gelato acquistata: ~1~$ -[A_ROCKE] -~w~< Lanciarazzi > +[TAXIBUY] +Compagnia di taxi acquistata: ~1~$ -[A_SHOTG] -~w~< Fucile a pompa > +[BANKBUY] +Malibu acquistato: ~1~$ -[A_M4] -~w~< M4 > +[BOATBUY] +Cantiere navale acquistato: ~1~$ -[A_FLAME] -~w~< Lanciafiamme > +[PRNT_NO] +Non puoi ancora comprare la tipografia, prova più tardi. -[A_MINIG] -~w~< Mitragliatore > +[CAR_NO] +Non puoi ancora comprare il concessionario, prova più tardi. -[A_COST] -~w~Costo: ~h~~1~$ +[PORN_NO] +Non puoi ancora comprare lo studio cinematografico, prova più tardi. -[A_COST2] -~w~Costo: ~h~~1~$ ~n~ ~r~Comprando quest'arma sostituirai quella in uso. +[ICE_NO] +Non puoi ancora comprare la fabbrica di gelato, prova più tardi. -[A_COST3] -~w~Costo: ~h~~1~$ ~n~ ~r~Il tuo giubbotto antiproiettile è in buone condizioni. +[TAXI_NO] +Non puoi ancora comprare la compagnia di taxi, prova più tardi. -[A_COST4] -~w~Costo: ~h~~1~$ ~n~ ~r~Non puoi acquistare questo oggetto. +[BANK_NO] +Non puoi ancora comprare il Malibu, prova più tardi. -[A_STOCK] -~r~Scorte esaurite. +[BOAT_NO] +Non puoi ancora comprare il cantiere navale, prova più tardi. -[A_VIC4] -~w~Normalmente una pistola costa 240$, ma questa l'ha pagata Vincenzo. +[PRNT_R3] +Premi il tasto R3 per acquistare la tipografia per ~1~$ -[A_DONS4] -~w~Donald Love ha già pagato per questo. +[CAR_R3] +Premi il tasto R3 per acquistare il concessionario per ~1~$ -[A_NEDS4] -~w~Un tizio della chiesa ti ha prenotato uno di questi. +[PORN_R3] +Premi il tasto R3 per acquistare lo studio cinematografico per ~1~$ -[A_TALK1] -~w~Ho tutte le armi da difesa domestica di cui hai bisogno. +[ICE_R3] +Premi il tasto R3 per acquistare la fabbrica di gelato per ~1~$ -[A_TALK2] -~w~Vuoi anche una licenza? +[TAXI_R3] +Premi il tasto R3 per acquistare la compagnia di taxi per ~1~$ -[A_TALK3] -~w~Non devo vedere nessun documento, mi sembri una persona fidata. +[BANK_R3] +Premi il tasto R3 per acquistare il Malibu per ~1~$ -[A_TALK4] -~w~Puoi provare il poligono di tiro sul retro, sei il benvenuto. +[BOAT_R3] +Premi il tasto R3 per acquistare il cantiere navale per ~1~$ -[BENZ_GO] -~w~Cambiati d'abito! +[COL2_6] +Fermo, brutto maiale imperialista americano! -[PIZ_B01] -~w~Hai ~1~ secondo per tornare sul ~b~motorino delle pizze! +[COL2_6B] +Questa è proprietà del governo francese. -[PIZ_B02] -~w~Hai ~1~ secondi per tornare sul ~b~motorino delle pizze! +[COL2_6C] +È finita! -[PIZ_F04] -~r~Non sei riuscito a tornare al motorino delle pizze! +[COL3_A] +Thomas, grazie per essere venuto. -[NDL_B01] -~w~Hai ~1~ secondo per tornare sul ~b~motorino dei noodle! +[COL3_B] +Scusami se giungo subito al punto. -[NDL_B02] -~w~Hai ~1~ secondi per tornare sul ~b~motorino dei noodle! +[COL3_C] +Diaz mi ha chiesto di sovrintendere una piccola transizione di lavoro. -[NDL_F04] -~r~Non sei riuscito a tornare al motorino dei noodle! +[COL3_D] +Speriamo vada meglio dell'ultima... -[EXPO_D] -~w~Ecco un premio: ~1~$! Completa l'elenco per un ottenere un bonus! +[COL3_E] +Ed è per questo che ho pensato a te, amico. -[PUPSPN] -~w~POTENZIAMENTO DISPONIBILE! +[COL3_F] +Ho lasciato un po' di supporto al parcheggio multipiano. -[PUPMEGA] -~y~SUPER DANNO! +[COL3_G] +Raccogli il materiale, poi raggiungi e sorveglia gli uomini di Diaz all'incontro. -[PUPREGN] -~y~AUMENTO DELLA SALUTE! +[COL4_2] +Non so signore! -[PUPINVS] -~y~INVISIBILITÀ! +[COL4_5] +Signorsì, signore! -[PUPFREZ] -~y~FURIA! +[COL4_10] +Andiamo a prendere delle ciambelle. -[MPK] -ha ucciso +[COL4_16] +Signore! Sposto il veicolo, signore! -[MPKHEAD] -con un colpo alla testa! +[COL4_25] +Autodistruzione del veicolo attivata! -[MPNEED] -ha bisogno di +[COL5_6] +Mercedes, quella ragazza sarà la mia rovina. -[MPNAME] -Nome +[COL5_8] +Maledetti scarafaggi! -[MPSCORE] -Punteg. +[COL5_5] +Morite, maiali Francesi! -[MPPING] -Ping +[CNT2_1] +Uccidetelo -[MPCPS] -Checkpoint +[CNT2_2] +Recuperate le matrici! -[MPTIME] +[CNT2_3] +Proteggete il corriere. + +[FINKILL] +OK ragazzi, uccidetelo! + +[FIN_6] +Sonny è interessato alla mia cassaforte e ai miei soldi... + +[FIN_10] +Sonny? SONNY! Sto venendo a prenderti! + +[RACES_4] +3 + +[RACES_5] +2 + +[RACES_6] +1 + +[RACES_7] +VIA! + +[RACES_9] +Tempo: ~1~:~1~ + +[RACES] +TEMPO: + +[RACES17] +Nuovo miglior tempo: ~1~:~1~ + +[RACES20] +Nuovo miglior tempo: ~1~:0~1~ + +[RACES21] +Tempo: ~1~:0~1~ + +[RCH1_1] +~g~Usa l'elicottero radiocomandato, il Raider, per PASSARE ATTRAVERSO i punti di controllo. + +[RCH1_2] +~g~I punti di controllo sono sparsi per tutto l'aeroporto. + +[RCH1_3] +~g~Hai ~c~8 MINUTI~g~ per attraversarli tutti e ~c~20~g~! + +[RCH1_5] Tempo -[MPBONUS] -Bonus +[RCRC1_1] +~g~Sfida nella GARA A TAPPE altri 3 Bandit radiocomandati su 2 GIRI. -[MPQG] -Abbandonare la partita? +[RCRC1_2] +~g~Raggiungi subito la griglia di partenza! -[MPQUIT] -Esci +[RCRC1_3] +~g~Giro finale! -[MPCONT] -Continua +[RCRC1_4] +~g~3 -[MPHIGH] -Tempo maggiore +[RCRC1_5] +~g~2 -[MPBY] -da +[RCRC1_6] +~g~1 -[MPOVER] -Fine partita +[RCRC1_7] +~g~VIA! -[MPFIRST] -è arrivato primo +[RCRC1_8] +~g~Tempo di gara: ~1~ secondi -[MPWITH] -vince con $ +[RCPL1_1] +~g~Sfida nella GARA A TAPPE altri 3 Baron radiocomandati. -[MPHP05] -~w~5 secondi al prossimo obiettivo. +[RCPL1_2] +~g~Devi attraversare la ~o~CORONA CENTRALE~g~ per passare con successo un punto di controllo. -[MPHP04] -~w~4 secondi al prossimo obiettivo. +[RCPL1_3] +~g~Raggiungi subito la griglia di partenza! -[MPHP03] -~w~3 secondi al prossimo obiettivo. +[FEA_2SP] +2 altoparlanti -[MPHP02] -~w~2 secondi al prossimo obiettivo. +[FEA_4SP] +Più di 2 altoparlanti -[MPHP01] -~w~1 secondo al prossimo obiettivo. +[FEA_EAR] +Cuffie -[RCRANGE] -~w~Fuori campo! +[FEA_NAH] +NESSUNA PERIFERICA AUDIO -[CAD5_AA] -Sono Sal. +[FET_APP] +APPLICA -[CAD5_AB] -I Forelli mi hanno fatto incazzare! Devono pagare! +[FES_SKN] +NOME SKIN -[CAD5_AC] -Recupera le loro macchine più prestigiose... +[FES_DAT] +DATA -[CAD5_AD] -...e portale al parcheggio dei Sindacco, i loro principali competitori. +[FES_SET] +Usa skin -[CAD5_AE] -Assicurati che i Forelli non rubino le macchine dei Sindacco per rappresaglia. +[FET_DEF] +Ripristina predefiniti -[CAD5_AF] -'O capisti? +[FESZ_QZ] +Sei sicuro di voler salvare la partita? -[CAD4_AA] -Sono io, Sal. +[FES_SCG] +Salvare la partita? -[CAD4_AB] -Devo un favore a Franco Forelli, e tu mi aiuterai a ripagarlo. +[FES_LCG] +Vuoi caricare e continuare la partita? -[CAD4_AC] -i Sindacco hanno delle macchine davvero eleganti nel loro parcheggio. +[FEC_FIR] +Fuoco -[CAD4_AD] -Voglio che tu le prenda e le porti al parcheggio dei Forelli. +[FEC_NWE] +Arma successiva -[CAD4_AE] -Assicurati che non vengano rubate macchine dei Forelli mentre sei in azione. +[FEC_PWE] +Arma precedente -[CAD4_AF] -Mi raccomando, niente cazzate. +[FEC_FOR] +Avanti -[MPC_000] -Toni +[FEC_BAC] +Indietro -[MPC_001] -'Lionel' +[FEC_LEF] +Sinistra -[MPC_002] -Cipriani +[FEC_RIG] +Destra -[MPC_003] -Chauffeur +[FEC_ZIN] +Ingrandisci -[MPC_004] -13th +[FEC_ZOT] +Riduci -[MPC_005] -Toni the Tux +[FEC_EEX] +Entra o esci -[MPC_006] -Fury +[FEC_RAD] +Radio -[MPC_007] -The King +[FEC_SUB] +Sottomissione -[MPC_008] -Cocks +[FEC_CMR] +Cambia visuale -[MPC_009] -Streak +[FEC_JMP] +Salto -[MPC_010] -'T' +[FEC_SPN] +Scatto -[MPC_011] -Dragon +[FEC_HND] +Freno a mano -[MPC_012] -JD +[FEC_LOL] +Sguardo a sinistra -[MPC_013] -The Gimp +[FEC_LOR] +Sguardo a destra -[MPC_014] -Avery +[FEC_NTR] +Bersaglio successivo -[MPC_015] -Choc-Choc +[FEC_PTT] +Bersaglio precedente -[MPC_016] -8-Ball +[FEC_LBA] +Sguardo indietro -[MPC_017] -Maria +[FEC_CEN] +Centra visuale -[MPC_018] -'Hamfists' +[FET_CCN] +Classico -[MPC_021] -No.1 +[FET_SCN] +Predefinito -[MPC_023] -Hung Lo +[FET_CFT] +A PIEDI -[MPC_025] -Yamazaki +[FET_CCR] +IN MACCHINA -[MPC_031] -Officer '69' +[FET_CAC] +AZIONE -[MPC_032] -The Specialist +[FEC_IBT] +- -[MPC_034] -G.I. Jones +[FEC_MXO] +MXB1 -[MPC_035] -Sam +[FEC_MXT] +MXB2 + +[FEC_UNB] +NON ASSEGNATO + +[FEC_TFL] +Sguardo+Torretta a SX + +[FEC_TFR] +Sguardo+Torretta a DX + +[FEC_MWF] +VOLANTE SU + +[FEC_MWB] +VOLANTE GIÙ + +[FEC_ORR] +o + +[FEC_NUS] +NON USATO + +[FEC_LUD] +Sguardo su + +[FEC_LDU] +Sguardo giù + +[FEC_CMP] +COMBO: SGUARDO SX+DX + +[LAW_1A] +law_1a + +[LAW_1B] +law_1b + +[LAW_2A] +law_2a + +[LAW_2B] +law_2b + +[FEH_STA] +STATISTICHE + +[FEH_LOA] +CARICA + +[FEH_CON] +COMANDI + +[FEH_AUD] +AUDIO + +[FEH_DIS] +VIDEO + +[FEH_LAN] +LINGUA + +[FEH_SGA] +NUOVA PARTITA + +[FEO_CON] +Impostazioni controller + +[FEO_AUD] +Impostazioni audio + +[FEO_DIS] +Impostazioni video + +[FEO_LAN] +Impostazioni lingua + +[FEO_PLA] +Impostazioni giocatore + +[FEA_OUT] +Uscita + +[FEA_ST] +Stereo + +[FEA_DTS] +DTS + +[FEA_RSS] +Stazione radio + +[FEA_NON] +NO RADIO [FEA_FM0] -HEAD RADIO +WILDSTYLE [FEA_FM1] -DOUBLE CLEF FM +FLASH FM [FEA_FM2] -K-JAH +KCHAT [FEA_FM3] -RISE FM +FEVER 105 [FEA_FM4] -LIPS 106 +VROCK [FEA_FM5] -RADIO DEL MUNDO - -[FEA_FM6] -MSX 98 +VCPR [FEA_FM7] -FLASHBACK FM +EMOTION 98.3 [FEA_FM8] -THE LIBERTY JAM +WAVE 103 -[FEA_FM9] -LCFR +[FED_BRI] +Luminosità -[MRACELA] -Giro +[FED_TRA] +Tracce : -[DTB_01] -~w~Difendi la tua base dagli attacchi avversari. +[FED_SUB] +Sottotitoli -[DTB_02] -~w~Proteggi a tutti i costi le tue macchine. +[FED_WIS] +Panoramico -[CAD2_AB] -~w~Buone nuove, i Forelli e i Sindacco sono nuovamente ai ferri corti. +[FED_POS] +Posizione schermo -[CAD2_AC] -~w~Entrambi vogliono il monopolio della vendita delle automobili a Liberty. +[FEP_RES] +Riprendi -[CAD2_AD] -~w~Visto che abbiamo 'aiutato' i Forelli la settimana scorsa... +[FEP_STG] +Avvia partita -[CAD2_AE] -~w~...è giunta l'ora di bilanciare la situazione. +[FEP_STA] +Statistiche -[CAD2_AF] -~w~Aiuta i Sindacco a ripulire il parcheggio dei Forelli. +[FEP_BRI] +Briefing -[POMOB6B] -~w~Vedo quella cagna solamente quando ha bisogno di soldi! +[FEP_OPT] +Opzioni -[POMOB2A] -~w~Salvatore mi ha dato il tuo numero... beh, diciamo che l'ho trovato nella sua rubrica! Ma, vabbè! +[FEP_QUI] +Esci -[POMOB2B] -~w~Sei il suo nuovo tirapiedi, vero? Beh, voglio andare un po' a spasso. +[FES_LOA] +Carica partita -[POMOB2C] -~w~Ti aspetto quanto prima. +[FES_DEL] +Elimina partita -[GS_RGUN] -INIZIA CON ARMI: +[FEC_CSU] +Impostazioni controller -[TUSHTK] -Angelo ingiustificato +[FEC_RED] +Ridefinisci comandi -[SC_WICH] -Punteggio max 'Angelo ingiustificato' +[FEC_MOU] +Impostazioni mouse -[NE_WIFI] -Errore di rete. L'interruttore WLAN è spento. Accendi l'interruttore WLAN per affrontare partite multigiocatore. +[DISTGOL] +Distanza percorsa su cart da golf (miglia) -[BNDRAC0] -RC allo sbando +[DISTGOM] +Distanza percorsa su cart da golf (metri) -[BNDRAC1] -RC allo scozzo +[ST_FAVR] +Stazione radio preferita -[BNDRAC2] -RC all'inseguimento +[ST_WSTR] +Stazione radio meno amata -[GS_G1] -LIBERTY CITY SURVIVOR +[ST_FAVV] +Veicolo preferito -[GS_G2] -STREET RAGE +[ST_STAR] +Totale stelle di sospetto -[GS_G3] -PROTECTION RACKET +[ST_HEAD] +Colpi alla testa -[GS_G4] -GET STRETCH +[ST_GANG] +Gang meno amata -[GS_G5] -TANKS FOR THE MEMORIES - -[GS_G6] -THE HIT LIST - -[GS_G7] -THE WEDDING LIST - -[TRCR1] -~w~1... - -[TRCR2] -~w~2... - -[TRCR3] -~w~3... - -[TRCRGO] -~w~VIA! - -[GA_16] -~w~La riverniciatura è in omaggio. - -[NEW_TAX] -~w~Missioni Tassista completate! È stato consegnato un nuovo modello ai taxi Mean Street di Trenton! - -[EXPO_2] -~w~Se fornirai loro in buone condizioni i veicoli dei quali hanno bisogno, verrai ben ricompensato. - -[FEMP_NC] -Connessione di rete in corso... Attendere... - -[C1TGSUB] -tasto R3 - -[C2TGSUB] -tasto R3 - -[C3TGSUB] -~S~ - -[C2VEHN] -tasto R1 - -[C2VECRS] -tasto L3 - -[C3VECRS] -~O~ - -[C2PDCWE] -tasto L2 e tasto R2 - -[C3PDCWE] -tasto L2 e tasto R2 - -[BENZ_LA] -~w~La ~h~divisa da avvocato~w~ è disponibile al rifugio. - -[BENZ_TR] -~w~Gli ~h~abiti casual~w~ sono disponibili al rifugio. - -[SLH1_OU] -~w~Hai bisogno di un ~h~abito da avvocato~w~ per poter visitare Sal. - -[SLH1_OR] -~w~Devi vestirti da avvocato per incontrare Sal. - -[L_TRN_1] -~w~Puoi usare la ~h~sopraelevata~w~ per muoverti a Portland. Premi~h~ ~k~ ~VEEE~ ~w~per entrare o uscire dal treno. - -[HELP2] -~w~Premi~h~ ~k~ ~PDSPR~ ~w~mentre stai correndo per compiere ~h~uno scatto. - -[STMOB5A] -~w~Toni, Sal. - -[SCH_TK7] -~r~Hai abbandonato la discarica. - -[STMOB3C] -~w~Ma dobbiamo prendere noi il controllo del municipio. - -[SALH3A] -~w~Recupera un mezzo di trasposto per Donald. - -[MPCASH] -Soldi - -[MPCARS] -Auto - -[CRUSHED] -Valore rottamazione ~1~$ - -[BENZ_BO] -~w~Recupera un cambio di ~h~biancheria~w~ dal rifugio. - -[BENZ_EL] -~w~L'~h~abito 'The King'~w~ è disponibile al rifugio. - -[BENZ_CO] -~w~L'~h~abito mascotte dei Cox~w~ è disponibile al rifugio. - -[BENZ_HE] -~w~Missioni Avenging Angels di Shoreside: livello 15 completato! L'~h~abito da supereroe~w~ è disponibile al rifugio. - -[BENZ_DR] -~w~L'~h~abito 'Dragon'~w~ è disponibile al rifugio. - -[TRTIT] -Alliva plima e intelo - -[TRRACE2] -~w~Attento! I fratelli Wong non promettono nulla di buono... - -[MPTOTAL] -Tempo - -[TOUR_W6] -~w~Esclusiva Landstalker blindata consegnata al rifugio. Vedi di tenerla al sicuro in garage! - -[OUTFITS] -Abiti sbloccati - -[MPHPMAR] -è stato condannato a morte. - -[FEC_CWT] -Cambia armi/bersagli - -[EXPO_1] -~w~Love Media ha bisogno di premi da distribuire nelle sue competizioni 'Car-razy Give Away'! - -[PCJLAP] -~w~Nuovo giro migliore di ~1~ secondi! - -[MPBLCAR] -Macchina blu: - -[MPRDCAR] -Macchina rossa: - -[RAMP_A] -~w~VIOLENZE COMPLETATE! ~1~$ - -[FET_SAV] -Salva partita - -[FET_WRN] -Attenzione! Sono stati attivati uno o più trucchi e ciò potrebbe influire sul salvataggio. Si consiglia di non salvare questa partita. - -[HELP39] -~w~Usa~h~ ~k~ ~VEWEI~ ~w~per spostare il peso quando sei su una moto. - -[FEC_EXV] -Scendi dal veicolo - -[MPCOLL] -AUTO NECESSARIE: - -[FEMP_HG] -OSPITA PARTITA - -[FEMP_JG] -PARTECIPA - -[K_TK3] -~w~1 punto per le mete ~g~verdi~w~, 2 punti per quelle ~y~gialle~w~ e 3 punti per le ~r~rosse. - -[FEMP_GJ] -SCEGLI LA PARTITA - -[FEMP_H] -HOST: - -[FEMP_P] -GIOCATORI: - -[FEMP_HN] -OSPITA NUOVA PARTITA - -[PO_MOB4] -~w~Ehi... sono io, Vincenzo. - -[POMOB4D] -~w~Ehi. Passa a trovarmi, ho qualcosa per te. - -[POMOB4E] -~w~Sì? Cosa? Un paio di scarpe di cemento? - -[POMOB4H] -~w~No. Andiamo Toni, mi dispiace per come sono andate le cose. - -[FEMP_F] -PIENO - -[FEMP_R] -RIPRISTINA PREDEFINITI - -[YOU] -TU - -[NE_POW] -Si è verificato un errore di rete. È stato spento l'interruttore POWER/HOLD (accensione/blocco funzioni). - -[FEMP_SQ] -Sei sicuro di voler iniziare una partita multigiocatore? - -[BIKETXT] -~w~Hogs & Cogs è aperto dalle 08:00 alle 18:00. Torna quando è aperto! - -[RACE_2] -Tempo - -[FEF_CO2] -Scegli la configurazione dei comandi più adatta al tuo stile di gioco. +[ST_STGN] +Totale stelle di sospetto evase [TYREPOP] Pneumatici esplosi con proiettili -[FE_INIP] -Inizializzazione menu di pausa... Attendi... +[TYRESLA] +Pneumatici tagliati con una lama -[DON4EX3] -~w~Accetti un assegno? +[ST_BRK] +Numero di uccisioni nel Bloodring -[CRUSH] -~w~Guadagna soldi con la rottamazione! Alcuni veicoli possono essere demoliti se lasciati nella zona con gli pneumatici. +[ST_LTBR] +Permanenza massima nel Bloodring (sec) -[ANG_15] -~w~Una banda di fannulloni ha appena rubato la macchina di un poveraccio, facciamoli fuori! +[ST_GNG1] +Cubani -[CDERROR] -Attendere prego... +[ST_GNG2] +Haitiani -[FEC_LOF] -Guarda avanti +[ST_GNG3] +Teppistelli -[FEC_LFA] -Sguardo/Mira precisa +[ST_GNG4] +Gang di Diaz -[MPHELP] -AIUTO +[ST_GNG5] +Sorveglianza -[C1VEHN] -tasto L1 +[ST_GNG6] +Gang di motociclisti -[C3VEHN] -tasto L3 +[ST_GNG7] +Gang di Vercetti -[MPOBJ] -OBIETTIVO: +[ST_GNG8] +Giocatori di golf -[MPLEG] -LEGENDA RADAR: +[FEA_FM6] +ESPANTOSO -[GS_O1] -Ciascuno per sé! Uccidi tutti gli altri giocatori! +[ST_ASSI] +Contratti da sicario completati -[GS_O2] -Guida attraverso i checkpoint e raggiungi per primo il traguardo. +[DISTBIK] +Distanza percorsa in moto (miglia) -[GS_OD3] -Difendi quattro limousine nella tua base dagli attacchi. +[DISTBIM] +Distanza percorsa in moto (metri) -[GS_O6] -Uccidi il giocatore 'condannato' il più velocemente possibile. Se sei il 'condannato', resisti. +[HOTEL] +Hotel Ocean View -[GS_O7] -Recupera le macchine disseminate in città, poi portale negli appositi container. +[ICC1_1] +~g~Utilizza il camioncino dei gelati per distribuire droga in Vice City. -[FHOSE_2] -~h~~k~ ~VEWEA~ ~w~corregge la mira del cannone. +[ICC1_2] +~g~Parcheggia il camioncino e premi ~h~~k~~VEHICLE_HORN~~w~ per attivare il campanello e attrarre i clienti. -[MPI01] -POTENZIAM. +[ICC1_3] +~g~Riceverai soldi per ogni transizione, ma più ne esegui, maggiori saranno le probabilità di attirare l'attenzione della polizia. -[MPI02] -SALUTE +[KICK1_9] +PUNTI DI CONTROLLO RIMANENTI: -[MPI03] -PROTEZIONE +[FIN_B6] +Non hai abbastanza soldi per avviare questa missione. -[MPI04] -ARMA +[TEX3_3] +~g~Per raccogliere una bomba, avvicinati con l'elicottero: la bomba verrà automaticamente raccolta. -[SPIDER] -Deimos SP +[TEX3_9] +~g~Raccogli una bomba avvicinandole l'elicottero. -[PONTIAC] -Phobos Vt +[HELP22] +Raggiungi la casa verde sul radar. -[FORELLI] -Forelli ExSess - -[AHIT_LO] -Per il momento l'hai seminato, ma tornerà per finire il lavoro. - -[FEM_ROF] -Radio spenta - -[GA_1] -~ w~Stai scherzando! Non ho intenzione di toccarla! - -[TRA_NEX] -Prossima fermata: - -[TRA_CUR] -Fermata attuale: - -[PAGEB2] -~w~Il ~h~fucile a pompa~w~ è disponibile al tuo rifugio! - -[PAGEB3] -Il ~h~giubbotto antiproiettile~w~ è disponibile al tuo rifugio! - -[PAGEB4] -~w~La ~h~mitraglietta~w~ è disponibile al tuo rifugio! - -[PAGEB5] -~w~Il ~h~calibro .357~w~ è disponibile al tuo rifugio! - -[PAGEB6] -~w~L'~h~M4~w~ è disponibile al tuo rifugio! - -[PAGEB7] -~w~Il ~h~fucile di precisione con laser ~w~è disponibile al tuo rifugio! - -[PAGEB8] -~w~Il ~h~lanciafiamme~w~ è disponibile al tuo rifugio! - -[PAGEB9] -~w~Il ~h~lanciarazzi~w~ è disponibile al tuo rifugio! - -[PAGE_01] -Crivella ~1~ membri della Triade in 2 minuti! - -[PAGE_02] -Fai esplodere ~1~ veicoli in 2 minuti! - -[PAGE_03] -Incenerisci ~1~ Diablo in 2 minuti! - -[PAGE_04] -Uccidi ~1~ mafiosi di Leone in 2 minuti! - -[PAGE_05] -Brucia ~1~ veicoli in 2 minuti! - -[PAGE_06] -Investi ~1~ pedoni in 2 minuti! - -[PAGE_07] -Distruggi ~1~ veicoli in 2 minuti! - -[PAGE_08] -Massacra ~1~ pedoni in 2 minuti! - -[PAGE_09] -Brucia ~1~ membri della Yakuza in 2 minuti! - -[PAGE_10] -Assassina ~1~ Forelli in 2 minuti! - -[PAGE_11] -Investi ~1~ pedoni in 2 minuti! - -[PAGE_12] -Ammazza ~1~ pedoni in 2 minuti! - -[PAGE_13] -Uccidi ~1~ membri della Yakuza in 2 minuti! - -[PAGE_15] -Massacra ~1~ pedoni in 2 minuti! - -[PAGE_16] -Distruggi ~1~ veicoli in 2 minuti! - -[PAGE_17] -Cecchina ~1~ pedoni in 2 minuti! - -[PAGE_18] -Distruggi ~1~ veicoli in 2 minuti! - -[PAGE_20] -Brucia ~1~ pedoni in 2 minuti! - -[MPI05] -NEMICO - -[MPI07] -CHECKPOINT - -[MPI08] -PROSSIMO - -[MPI09] -TRAGUARDO - -[MPI10] -PILOTA - -[MPI11] -BASE - -[MPI12] -BASE NEMICA - -[MPI13] -CARRO ARMATO - -[MPI14] -OBIETTIVO - -[MPI15] -MACCHINA - -[MPI16] -CONTAINER - -[FEI_LEG] -Legenda sì/no - -[SR_ON] -Ora che ti sei fatto un nome nei circuiti cittadini, fai attenzione ad altri sfidanti intenzionati a contattarti. - -[FEC_FRA] -Mira libera - -[KAR_ON] -Torna quando vuoi al camion dei pompieri per tentare di battere il tuo miglior tempo! - -[DON2EX5] -~w~8-ball non cambierà idea finché non pagherai 20.000$. - -[PCJTIT] -GO GO Faggio - -[FEA_MUS] -VOLUME RADIO: - -[FEST_GO] -Tempo migliore nella missione Go Go Faggio - -[RC_1] -~w~Uccidi più di ~1~ membri della Triade: riceverai tempo bonus per ogni eliminazione! - -[EXPO_C] -~w~Grazie! Quella era l'ultima! Ti abbiamo lasciato un bel regalo davanti al tuo appartamento di Newport! - -[TRRACE0] -~w~Passa attraverso i ~y~checkpoint~w~ e arriva vivo alla fine del percorso! - -[RACE_P1] -~w~1° - -[RACE_P2] -~w~2° - -[RACE_P3] -~w~3° - -[RACE_P4] -~w~4° - -[OUTF_00] -~w~Abito casual - -[OUTF_01] -~w~Vestito dei Leone - -[OUTF_03] -~w~Uniforme degli Avenging Angels - -[OUTF_04] -~w~Abito da autista - -[OUTF_05] -~w~Abito da avvocato - -[OUTF_06] -~w~Smoking - -[OUTF_07] -~w~Abito 'The King' - -[OUTF_08] -~w~Abito mascotte dei Cox - -[OUTF_09] -~w~Biancheria - -[OUTF_10] -~w~Abito da supereroe - -[OUTF_11] -~w~Abito 'Dragon' - -[SLTVMON] -Soldi guadagnati con Slash TV - -[DBIKEAI] -Miglior salto realizzato (m) - -[MPC_039] -Vincenzo - -[MPC_040] -Salvatore - -[MPC_041] -Toshi - -[MPC_042] -Toshiko - -[MPC_043] -Ophelia Lardaz - -[MPC_044] -Ed Banger - -[MPC_045] -Robin Emblind - -[MPC_046] -Mrs. Menalot - -[MPC_047] -Hugh Jazz - -[MPC_048] -Wayne - -[MPC_049] -Paulie - -[MPC_050] -Anne Job - -[MPC_051] -Randy Boner - -[MPC_052] -Owen Monie - -[MPC_053] -Ekant Sing - -[MPC_054] -M.T.Head - -[MPC_055] -Rick O'Shea - -[MPC_056] -Arden Long - -[MPC_057] -Ann Thrax - -[MPC_058] -Fay Slift - -[MPC_059] -Mona Lott - -[C0VEACC] -~X~ - -[C1VEACC] -~X~ - -[C2VEACC] -~X~ - -[C3VEACC] -levetta analogica destra in su - -[C0VEBRK] -~S~ - -[C1VEBRK] -~S~ - -[C2VEBRK] -~S~ - -[C3VEBRK] -levetta analogica destra in giù - -[C0VEHB] -tasto R1 - -[C1VEHB] -tasto R1 - -[C0VEEE] -~T~ - -[C1VEEE] -~T~ - -[C2VEEE] -tasto L1 - -[C3VEEE] -~T~ - -[C0VEWEP] -~O~ - -[C1VEWEP] -~O~ - -[C2VEWEP] -~O~ - -[C3VEWEP] -tasto R1 - -[C0PDSPR] -~X~ - -[C1PDSPR] -~X~ - -[C0SNZI] -~S~ - -[C1SNZI] -~S~ - -[C0SNZO] -~X~ - -[C1SNZO] -~X~ - -[C0PDFW] -~O~ - -[C1PDFW] -~O~ - -[C0TRSK] -~X~ - -[C1TRSK] -~X~ - -[C2TRSK] -~X~ - -[C3TRSK] -~X~ - -[C0AMBUY] -~X~ - -[C1AMBUY] -~X~ - -[C2AMBUY] -~X~ - -[C3AMBUY] -~X~ - -[C0AMEXI] -~T~ - -[C1AMEXI] -~T~ - -[C2AMEXI] -~T~ - -[C3AMEXI] -~T~ - -[C2PDSPR] -~O~ - -[C3PDSPR] -~X~ - -[C2SNZI] -~T~ - -[C3SNZI] -~S~ - -[C2SNZO] -~S~ - -[C3SNZO] -~X~ - -[C2PDFW] -~X~ - -[C3PDFW] -tasto R1 - -[MPC_020] -Rico Garlik - -[MPC_022] -Lou Scannon - -[MPC_024] -Cruz Vormen - -[MPC_026] -Busta Moves - -[MPC_027] -Juan Kerr - -[MPC_028] -Nick Yakar - -[MPC_029] -Lou Bricant - -[MPC_030] -Lance Urwell - -[MPC_033] -Agent Ochre - -[MPC_036] -Papi Love - -[MPC_037] -Lucy Lastic - -[MPC_038] -Bill Durzbum - -[MPISCOL] -Oggetto raccolto - -[MPSTART] -Avvio partita... - -[MRACEC1] -~w~1... - -[MRACEC2] -~w~2... - -[MRACEC3] -~w~3... - -[MPC_019] -Phil DeGirth - -[GDA_HL] -Livello massimo 'Avenging Angel' - -[MP_SNEW] -Carica o avvia una nuova partita a giocatore singolo o multigiocatore. - -[DON2EX9] -~r~Ned~w~ sta scappando! Non perderlo! - -[FEI_CHA] -Cambia squadra - -[FES_RES] -RIPRISTINA IMPOSTAZIONI - -[FESZ_QT] -Sei sicuro di voler ripristinare le impostazioni audio, video e dei comandi? Procedere? - -[FEH_LOA] -PARTITA - -[MPEMPTY] -Vuota - -[FEMP_SN] -AVVIA PARTITA (2 o più giocatori richiesti) - -[JD_SUIT] -~w~JD non può affidarti lavori se sei vestito come uno dei Leone! - -[SAVD_SH] -- rifugio. - -[SAVD_DY] -Giorno - -[SAVD_CO] -completato. - -[SAVD_AL] -Portland - rifugio. Giorno 71, $57640. 17% completato. - -[SAV_SLT] -Nuovo salvataggio - -[POMOB6C] -~w~Passa al più presto a trovarmi. Ho del lavoro per te. - -[ANG_2] -~w~Premi~h~ ~k~ ~TGSUB~ ~w~per attivare o disattivare le missioni Avenging Angels. - -[TVHELP] -~w~Premi~h~ ~k~ ~TGSUB~ ~w~per attivare o disattivare le missioni Slash TV. - -[PAGERA] -~w~L'~h~M60~w~ è disponibile al tuo rifugio! - -[CO_ALL] -~w~Raccolti tutti i pacchetti speciali! - -[CO_ONE] -~w~Pacchetto speciale: ~1~ su ~1~ raccolto! - -[PAGE_14] -Spazza via ~1~ gangster Colombiani in 2 minuti! - -[PAGE_19] -Investi ~1~ gangster Colombiani in 2 minuti! - -[ANG_22] -~r~Missione Avenging Angel annullata. - -[SLATVQO] -~r~Missione Slash TV annullata. - -[C0FREE1] -tasto L3 - -[C1FREE1] -tasto L3 - -[C2FREE1] -tasto L3 - -[C3FREE1] -tasto L3 - -[C0FREE2] -levetta analogica sinistra - -[C2FREE2] -levetta analogica sinistra - -[ANGCOM1] -~w~Missioni Avenging Angels di Portland: livello 15 completato! La motocicletta esclusiva 'Avenger' ti attende al rifugio! - -[K_CE] -~w~Hai ~1~ secondo per tornare sulla tua ~b~moto! - -[HELP31] -~w~Se vieni ~h~'beccato'~w~ o ~h~'massacrato'~w~ durante una missione, apparirà questo ~h~taxi~w~. - -[LOSER] -~y~SCONFITTA! - -[RCRHELP] -~w~Premi~h~ ~k~ ~TGSUB~ ~w~per ~h~abbandonare la gara~w~.~h~ ~k~ ~VEWEP~ ~w~per riposizionare la macchina radiocomandata all'ultimo checkpoint. - -[SRC_ON] -Ora che ti sei fatto un nome nelle gare di macchine illegali, altri sfidanti proveranno a contattarti. - -[SRB_ON] -Ora che ti sei fatto un nome nelle gare di moto illegali, altri sfidanti proveranno a contattarti. - -[RACE_R0] -~w~RECORD PRECEDENTE: ~1~:~1~~1~ - -[POMOB3C] -~w~Ehi, passa di qua quando vuoi amico. - -[MPHPCS1] -The Hit List - -[MPWLGOC] -Esci dalla macchina. - -[MPWLLTC] -Esci dal container. - -[MPWLDTC] -Consegna la macchina. - -[MPWLCD] -Macchina consegnata. - -[MPWLNGC] -Ora prendi le macchine. - -[MPAUTO] -MOSTRA 1 VOLTA - -[MRACEGO] -~w~VIA - -[MRACE04] -HAI VINTO - -[MRACEWI] -ha vinto la gara - -[MRCPU01] -~y~RIPARAZIONE ISTANTANEA - -[DTB01] -difendi le macchine - -[DTB02] -distruggi le macchine - -[DTB03] -hanno perso una macchina - -[DTB04] -hanno distrutto una macchina - -[MPWIN] -ha vinto - -[MPKSELF] -è stato ucciso - -[MPMORE] -uccisioni - -[MP1MORE] -uccisione - -[MPSTRT] -Inizia - -[MPTANK] -ha il carro armato - -[MPONE] -deve recuperare solo una macchina - -[MPDEL] -ha consegnato una macchina - -[MPGOCAR] -Cerca la macchina - -[MPGOGAR] -Consegna la macchina - -[MPDEST] -Veicolo bersaglio distrutto - -[MPLEFT] -ha abbandonato la partita - -[MPHPGO2] -~w~Sei stato condannato a morte - -[MPHPKI] -~w~Hai ucciso un sicario - -[LOCKON] -Agganciato - -[MPHPGO] -~w~Elimina il bersaglio - -[MPTNK] -Prendi il carro armato - -[MRCPU02] -HAI FATTO ESPLODERE I PNEUMATICI DEI RIVALI - -[MRCPU05] -I TUOI PNEUMATICI SONO ESPLOSI - -[MRCPU06] -~y~Pneumatici aderenti - -[WINNER] -~Y~VITTORIA - -[MPDRAW] -~w~PATTA - -[MPDADDY] -SEI IL NUOVO CAPO IN CITTÀ. - -[MPRUN] -ORA GOVERNANO LA CITTÀ. - -[MPBITCH] -CHI È IL TUO NUOVO CAPO, EH STRONZO? - -[FEMP_SM] -Gioca a Grand Theft Auto con gli amici o con qualche losco sconosciuto nei dintorni. - -[MPYL] -SCONFITTA! - -[MPTMWIN] -SONO I MIGLIORI - -[GS_SCAR] -VEICOLO: - -[GS_MIN] -minuto - -[GS_MINS] -minuti - -[MPTNKGA] -Hai il carro armato, sei un duro. - -[MPTNKGB] -Non perderlo. - -[GS_TYPE] -SCENARIO: - -[CLILOST] -Connessione interrotta con gli altri giocatori. - -[ONEHPC] -Completato al 100 percento! Un piccolo regalo ti attende a Fort Staunton. - -[MPBLTM] -sindacco - -[MPRDTM] -forelli - -[MTN_1] -Sindacco - -[MTN_2] -Forelli - -[MPRDCAP] -Macchina catturata - -[MPBLCAP] -Macchina catturata - -[MPRDST] -Macchina rubata - -[MPBLST] -Macchina rubata - -[MPBLEST] -Macchina rubata - -[MPRDRET] -Macchina riportata - -[MPBLRET] -Macchina riportata - -[MPRDPOS] -Macchina fuori posizione - -[MPBLPOS] -Macchina fuori posizione - -[GS_TEAM] -ALLEATI CON: - -[FEMP_TS] -ALLEATI CON: - -[MPTEAM] -Gang - -[GS_OA3] -Distruggi quattro limousine nella base rivale. - -[GS_O4] -Ruba l'auto dell'altra gang e riportala alla tua base. Nel mentre, proteggi la tua di auto. - -[MPI06] -MEMBRO GANG - -[FEMP_ST] -AVVIA PARTITA (sono necessari uno o più giocatori per gang) - -[HELP32] -~w~Per una modica cifra (o gratuitamente se non hai soldi), verrai trasportato sul ~h~luogo del contatto~w~ della tua ultima missione. - -[BENZ_HO] -La ~h~salopette~w~ è disponibile al rifugio. Indossala e torna di notte per partecipare a Slash TV. - -[SLATXT] -~w~Torna indossando la 'salopette' tra le 18:00 e le 05:00 per partecipare a Slash TV. - -[OUTF_02] -~w~Salopette - -[CAN_CON] -~w~Premi nuovamente~h~ ~k~ ~TGSUB~ ~w~per annullare la missione. - -[GNG1] -I LEONE - -[GNG2] -LA TRIADE - -[GNG3] -I DIABLO - -[GNG4] -I YAKUZA - -[GNG5] -GLI YARDIE - -[GNG6] -I COLOMBIANI - -[GNG7] -GLI HOOD - -[GNG8] -I SINDACCO - -[GNG9] -I FORELLI - -[GNG0] -I SICILIANI - -[MP_GNG1] -GANG 1 SCELTA: - -[MP_GNG2] -GANG 2 SCELTA: - -[GS_TEMS] -GUERRA DI GANG - -[CARS_O] -~w~Se vuoi guadagnare un po' di soldi, la Capital Autos di Harwood sta cercando un nuovo venditore. - -[CARTXT] -~w~Capital Autos è aperto dalle 08:00 alle 18:00. Torna quando è aperto! - -[GS_TO1] -Elimina la gang rivale! - -[MPTNEED] -hanno bisogno di - -[MPTWIN] -vincono - -[BADTEAM] -Una delle gang è rimasta senza giocatori. - -[RACELAP] -Giro - -[GS_D1] -RIVIVI LO SPETTACOLO CLASSICO! IL RITORNO DEL DARWINISMO URBANO! - -[GS_D2] -CHI È IL MIGLIORE ALLA GUIDA (O A INGANNARE)? - -[GS_D3] -PROTEGGI LE TUE MACCHINE DA FARABUTTI E VANDALI. - -[GS_D4] -RUBA LA MACCHINA DELLA GANG NEMICA E DERIDILI. - -[GS_D5] -CHI VUOLE DAVVERO IL CARRO ARMATO? - -[GS_D6] -IL CONDANNATO DEV'ESSERE MASSACRATO. - -[GS_D7] -RECUPERA LE MACCHINE PER CONTANTI. - -[HELP61] -~w~Quando il ~h~segnale triangolare è rivolto verso l'alto~w~ il ~h~bersaglio si trova sopra di te~w~. Un ~h~segnale quadrato~w~ indica che il ~h~bersaglio è alla tua stessa altezza. - -[ST_DRWN] -Pesci sfamati - -[RACE_T4] -~r~Sei stato squalificato per non aver trovato una macchina. - -[RACE_T5] -~r~Sei stato squalificato per non aver trovato una moto. - -[PCJ600] -PCJ-600 - -[FEC_HBB] -Freno a mano~h~ ~k~ ~VEACC~ ~w~e~h~ ~k~ ~VEBRK~ - -[HJSTAT] -~w~Distanza: ~1~.~1~ m Altezza: ~1~.~1~ m Ribaltamenti: ~1~ Rotazione: ~1~° - -[HJSTATW] -~w~Distanza: ~1~.~1~ m Altezza: ~1~.~1~ m Ribaltamenti: ~1~ Rotazione: ~1~° ...e che grande atterraggio! - -[HJSTATF] -~w~Distanza: ~1~ piedi Altezza: ~1~ piedi Ribaltamenti: ~1~ Rotazione: ~1~° - -[HJSTAWF] -~w~Distanza: ~1~ piedi Altezza: ~1~ piedi Ribaltamenti: ~1~ Rotazione: ~1~° ...e che grande atterraggio! - -[MPUNLK] -Nuovi contenuti multigiocatore sbloccati. Umilia gli altri giocatori con i nuovi oggetti a tua disposizione! - -[MPUNLKA] -Tutti i contenuti multigiocatore sbloccati. Umilia gli altri giocatori con i nuovi oggetti a tua disposizione! - -[TOUR] -Soddisfatti o non pagati - -[NDL1_A] -Spaghi pirati - -[PIZ1_A] -Pizza da trambusto - -[GS_SCUT] -MOSTRA INTRO: - -[TR_00] -GARA UNO - -[TR_01] -GARA DUE - -[TR_02] -GARA TRE - -[TR_03] -GARA QUATTRO - -[TR_04] -GARA CINQUE - -[TR_05] -GARA SEI - -[TR_06] -GARA SETTE - -[TR_07] -GARA OTTO - -[CHSE] -INSEGUIMENTO - -[NOCHANG] -Non puoi cambiare abito durante questa missione. - -[OUTF_12] -Antonio - -[OUTF_13] -Tuta - -[OUTF_14] -Bravo ragazzo - -[OUTF_15] -Anticonformista - -[BENZ_AN] -~w~L'~h~abito 'Antonio'~w~ è disponibile al rifugio. - -[BENZ_SW] -~w~L'~h~abito 'Tuta'~w~ è disponibile al rifugio. - -[BENZ_GD] -~w~L'~h~abito 'Bravo ragazzo'~w~ è disponibile al rifugio. - -[BENZ_WI] -~w~L'~h~abito 'Anticonformista'~w~ è disponibile al rifugio. - -[RAMPAGE] -VIOLENZA - -[GS_TTGT] -TEMPO SUL CARRO: - -[GS_O5] -Per vincere, devi sopravvivere il più a lungo possibile nel carro armato. Danneggia il carro armato per rubarlo a un altro giocatore. - -[HELP28] -~w~Per lanciare un'~h~arma esplosiva~w~ premi~h~ ~k~ ~PDFW~. ~w~Più a lungo tieni premuto~h~ ~k~ ~PDFW~ ~w~più lontano l'arma verrà lanciata. - -[RATNG53] -Disonorevole - -[RATNG54] -Ratto ingannevole - -[RATNG55] -Pescecane - -[RATNG56] -Artista del raggiro - -[RATNG57] -Il Don di tutti i bugiardi - -[RATNG11] -SANGUISUGA - -[CHASE6] -Liberty Tree Pagina 2 - -[CHASE7] -Liberty Tree Prima pagina - -[AUTOLD] -Caricamento dal Memory Stick™ in corso... Non rimuovere il Memory Stick™ o spegnere il sistema. - -[LDFAIL] -Caricamento fallito. Il salvataggio è danneggiato. - -[MEMCHKA] -Memory Stick™ non trovato. Sono richiesti almeno - -[MEMCHKB] -per salvare la partita. - -[MEMCHKC] -Spazio insufficiente sul Memory Stick™ per salvare la partita. Sono richiesti almeno - -[MEMCHKD] -per salvare la partita. - -[M_FAIL] -MISSIONE FALLITA! - -[M_OVER] -MISSIONE TERMINATA! - -[M_PASS] -~Y~MISSIONE COMPLETATA! ~n~~1~$ - -[M_PASSN] -~Y~MISSIONE COMPLETATA! - -[MRACE11] -~w~Torna su un veicolo per finire la gara - -[FEI_LE1] -Mostra legenda - -[FEI_LE2] -Nascondi legenda - -[FEI_TA1] -Metti bersaglio - -[FEI_TA2] -Togli bersaglio - -[C1FREE2] -levetta analogica sinistra - -[C3FREE2] -levetta analogica sinistra - -[FEA_MP3] -TRACCE SCELTE: - -[FEA_NA] -NON DISPONIBILE - -[MPC_060] -Antonio - -[MPC_061] -Tuta - -[MPC_062] -Bravo ragazzo - -[MPC_063] -Anticonformista - -[MPC_064] -Kazuki - -[NUMDBL1] -DEBUG 1 (~1~) (~1~) - -[SVRMBRS] -GIOCATORI: - -[RAMP_P] -VIOLENZA SUPERATA! - -[RAMP_F] -VIOLENZA FALLITA! - -[MPWLPAC] -ha preso una macchina bersaglio. - -[MPWLDAC] -ha consegnato una macchina bersaglio. - -[LDWAIT] -Premi ~X~ per continuare. - -[LOADING] -Caricamento in corso... - -[RACEP1] -1° - -[RACEP2] -2° - -[RACEP3] -3° - -[RACEP4] -4° - -[RACEP5] -5° - -[RACEP6] -6° - -[FEA_UT] -TRACCIA SCONOSCIUTA - -[LOADIN2] -Caricamento... - -[DNH5_X2] -~r~Non hai piazzato tutte le bombe. - -[MRACE12] -HAI - -[MRACE13] -SECONDI PER TROVARE UN VEICOLO - -[MRACE14] -SECONDO PER TROVARE UN VEICOLO - -[DTB_03] -~w~Vince la squadra che protegge più a lungo le sue macchine. - -[PUPCOL] -ha raccolto un potenziamento - -[TNKCSE] -Danneggia il carro armato per rubarlo a un altro giocatore. - -[TNKTM] -Per vincere, devi sopravvivere il più a lungo possibile nel carro armato. - -[MPFAIL] -FALLIMENTO - -[GS_LOC2] -LUOGO: - -[DTBSWPA] -Hai respinto i Sindacco per - -[DTBSWPB] -Ora distruggi le loro macchine in un tempo minore. - -[DTBSWPC] -Hai distrutto le macchine dei Forelli in - -[DTBSWPD] -Ora proteggi le tue macchine per più tempo. - -[CHANOP] -Cambia opzione - -[MPSSCT] -LIMITE SOLDI: - -[F_RANG2] -~r~La radio del camion dei pompieri non funziona in metropolitana! - -[T_RANG2] -~r~Non ci sono rifiuti da raccogliere in metropolitana! - -[T_RANGE] -~r~Qui non ci sono rifiuti da raccogliere! - -[FEU_YES] -SÌ - -[FEU_NO] -NO - -[HELP43] -~w~Usa il freno a mano per far virare più rapidamente la barca. - -[RACE_T6] -~r~Uno dei veicoli è a pezzi, la gara è stata annullata! - -[FED_POS] -POSIZIONE SCHERMO - -[FES_DSS] -Seleziona il salvataggio da eliminare: - -[FES_LSS] -Seleziona il salvataggio da caricare: - -[FES_DSC] -Eliminazione completata. Seleziona OK per continuare. - -[FES_DEL] -Elimina salvataggio - -[FES_DGM] -ELIMINA SALVATAGGIO - -[ITBEG] -In principio... - -[FET_LG] -CARICA PARTITA - -[FES_SCG] -Salvare la partita attuale? - -[FESZ_QZ] -Sei sicuro di voler salvare questa partita? +[FES_FMS] +Formattazione completata. Seleziona OK per continuare. [FES_SSC] Salvataggio completato. Seleziona OK per continuare. -[FEM_NTF] -La memory card (8MB) (per PlayStation®2) inserita nell'ingresso MEMORY CARD 1 non è formattata. - -[FES_CFM] -Formattazione della memory card (8MB) (per PlayStation®2) inserita nell'ingresso MEMORY CARD 1 in corso... Non rimuovere la memory card (8MB) (per PlayStation®2) né il controller e non resettare/spegnere la console! - -[FES_LOQ] -Caricamento fallito! Il salvataggio sulla memory card (8MB) (per PlayStation®2) inserita nell'ingresso MEMORY CARD 1 non è compatibile con questo gioco. Provare a caricare un salvataggio differente. Riavvio del gioco in corso... - -[FEM_NTH] -Nessuna memory card (8MB) (per PlayStation®2) inserita nell'ingresso MEMORY CARD 1. - -[FES_CMP] -Salvataggio fallito! Controllare la memory card (8MB) (per PlayStation®2) inserita nell'ingresso MEMORY CARD 1 e riprovare. - -[FESZ_FO] -La memory card (8MB) (per PlayStation®2) inserita nell'ingresso MEMORY CARD 1 non è formattata. Vuoi formattarla adesso? - -[FES_NOC] -Nessuna memory card (8MB) (per PlayStation®2) inserita nell'ingresso MEMORY CARD 1. - -[FES_LOE] -Caricamento fallito! Controllare la memory card (8MB) (per PlayStation®2) inserita nell'ingresso MEMORY CARD 1 e riprovare. Riavvio del gioco in corso... - -[FES_DEE] -Eliminazione fallita! Controllare la memory card (8MB) (per PlayStation®2) inserita nell'ingresso MEMORY CARD 1 e riprovare. - -[SLONFM] -Formattazione fallita! Controllare la memory card (8MB) (per PlayStation®2) inserita nell'ingresso MEMORY CARD 1 e riprovare. - -[SLONDR] -Spazio libero insufficiente sulla memory card (8MB) (per PlayStation®2) inserita nell'ingresso MEMORY CARD 1. Inserire una memory card (8MB) (per PlayStation®2) nell'ingresso MEMORY CARD 1 con almeno 330 KB di spazio libero per salvare questa partita. - -[SLNSP] -Spazio libero insufficiente sulla memory card (8MB) (per PlayStation®2) inserita nell'ingresso MEMORY CARD 1. Per salvare questa partita sono richiesti almeno altri 101 KB di spazio libero sulla memory card (8MB) (per PlayStation®2) inserita nell'ingresso MEMORY CARD 1. - -[SLONNF] -La memory card (8MB) (per PlayStation®2) inserita nell'ingresso MEMORY CARD 1 non è formattata. Vuoi formattarla adesso? - -[FESZ_FF] -Formattazione fallita! Controllare la memory card (8MB) (per PlayStation®2) inserita nell'ingresso MEMORY CARD 1 e riprovare. - -[MCDNSP] -Nessuna memory card (8MB) (per PlayStation®2) inserita nell'ingresso MEMORY CARD 1. Per poter salvare la tua partita, inserire una memory card (8MB) (per PlayStation®2) con almeno 330 KB di spazio libero. Iniziare comunque? - -[MCGNDP] -Spazio libero insufficiente sulla memory card (8MB) (per PlayStation®2) inserita nell'ingresso MEMORY CARD 1. Sono richiesti almeno 330 KB di spazio libero per salvare questa partita. Iniziare comunque? - -[MCGNSP] -Spazio libero insufficiente sulla memory card (8MB) (per PlayStation®2) inserita nell'ingresso MEMORY CARD 1. Per salvare questa partita sono richiesti almeno altri 101 KB di spazio libero sulla memory card (8MB) (per PlayStation®2) inserita nell'ingresso MEMORY CARD 1. Iniziare comunque? - -[FESZ_WR] -Salvataggio dati in corso... Non rimuovere la memory card (8MB) (per PlayStation®2) inserita nell'ingresso MEMORY CARD 1, né il controller e non resettare/spegnere la console! - -[FELD_WR] -Caricamento dati in corso... Non rimuovere la memory card (8MB) (per PlayStation®2) inserita nell'ingresso MEMORY CARD 1, né il controller e non resettare/spegnere la console! - -[FEDL_WR] -Eliminazione dati in corso... Non rimuovere la memory card (8MB) (per PlayStation®2) inserita nell'ingresso MEMORY CARD 1, né il controller e non resettare/spegnere la console! - -[C0VEWEA] -levetta analogica destra - -[C1VEWEA] -levetta analogica destra - -[C2VEWEA] -levetta analogica destra - -[C3VEWEA] -tasti direzionali - -[C0PDLOO] -levetta analogica destra - -[C1PDLOO] -levetta analogica destra - -[C2PDLOO] -levetta analogica destra - -[C3PDLOO] -levetta analogica destra - -[C0AMMOV] -levetta analogica sinistra o tasti direzionali - -[C1AMMOV] -levetta analogica sinistra o tasti direzionali - -[C2AMMOV] -levetta analogica sinistra o tasti direzionali - -[C3AMMOV] -levetta analogica sinistra o tasti direzionali - -[FEC_ACB] -Accelera/Frena - -[FEM_SL8] -Salvataggio 8 assente - -[FES_SAV] -SALVA PARTITA - -[FES_FMS] -Formattazione completata. - -[MCDNCK] -Controllo della memory card (8MB) (per PlayStation®2) inserita nell'ingresso MEMORY CARD 1 in corso... Non rimuovere la memory card (8MB) (per PlayStation®2) né i controller e non resettare/spegnere la console. +[FES_DSC] +Eliminazione completata. Seleziona OK per continuare. [FESZ_QC] -Vuoi sovrascrivere questo salvataggio danneggiato? +Vuoi sovrascrivere il salvataggio corrotto? -[NOCONT] -Inserire un controller analogico (DUALSHOCK®) oppure un controller analogico (DUALSHOCK®2) nell'ingresso controller 1 per continuare. +[FES_CHE] +Attenzione! Uno o più trucchi sono stati attivati: ciò influenzerà il salvataggio. Si consiglia di non salvare questa partita. -[FES_LCF] -Caricamento fallito! Controllare la memory card (8MB) (per PlayStation®2) inserita nell'ingresso MEMORY CARD 1 e riprovare. +[FET_SG] +SALVA PARTITA -[DBGHELP] -~h~DEBUG MENU~w~ Select Item with ~h~left button & right button. ~w~Press ~h~X button ~w~to launch. Press ~h~TRIANGLE button ~w~to quit menu. +[FEH_BRI] +BRIEFING -[DBGSEL1] -Level Skip Menu +[FEH_MAP] +MAPPA -[DBGSEL2] -Car Viewer +[FEM_OK] +OK -[DBGSEL3] -Character Viewer +[FEC_CRO] +Abbassarsi -[DBGSEL4] -Building Viewer +[FEC_CR3] +Abbassarsi (tasto L3) -[DBGSEL5] -Weapon Cheat +[FEC_SMT] +Sottomissione -[DBGSEL6] -Player Cheat +[FEC_SM3] +Sottomissione (tasto R3) -[DBGSEL7] -Weather and Time Changer +[FEC_RSC] +Stazioni radio -[DBGSEL8] -Marketing Camera +[ST_PR01] +Apprendista -[DBGSEL9] -MoCap Menu +[ST_PR02] +Aviere -[DBGSE10] -USJ Editor +[ST_PR03] +Ufficiale -[DBGSE11] -Toggle Player Coordinates +[ST_PR04] +Caporale -[DBGFIL0] -Ped Selector +[ST_PR05] +Tenente -[DBGFIL1] -Car Selector +[ST_PR06] +Sergente -[PLCHLD] -Placeholder: mission will complete in 5 seconds +[ST_PR07] +Capitano -[PLCHLD2] -Placeholder Cutscene +[ST_PR08] +Biggs -[PLCHLD3] -Placeholder (MOCAP) Cutscene +[ST_PR09] +Wedge -[LS_MAC] -Ma Cipriani stream +[ST_PR10] +Barone rosso -[LS_JDT] -J.D. O'Toole stream +[ST_PR11] +Goose -[LS_SAL] -Salvatore stream +[ST_PR12] +Viper -[LS_COMP] -Completed all Missions in this stream +[ST_PR13] +Jester -[TEMP1] -Number: ~1~ +[ST_PR14] +Chappy -[LS2_H1] -Use ~h~analog up & down ~w~to select story stream. Use ~h~analog left & right ~w~to select mission. Use ~h~L button & R button ~w~to select an island. Press ~h~X button ~w~to start mission. Press ~h~TRIANGLE button ~w~to exit. +[ST_PR15] +Iceman -[LS2_H2] -You cannot use levelskip when you are ~h~on a mission. +[ST_PR16] +Maverick -[LS2_VIC] -~y~Vincenzo Cilli -~g~ ~a~ +[ST_PR17] +Noops -[LS2_MAC] -~y~Ma Cipriani -~g~ ~a~ +[ST_PR18] +Maresciallo -[LS2_JDT] -~y~J.D. O'Toole -~g~ ~a~ +[ST_PR19] +Asso -[LS2_SAL] -~y~Salvatore -~g~ ~a~ +[FET_LG] +CARICA PARTITA -[LS2_MAR] -~y~Maria -~g~ ~a~ +[CAR_EXP] +Veicoli distrutti -[LS2_NED] -~y~Ned Burner -~g~ ~a~ +[BOA_EXP] +Imbarcazioni distrutte -[LS2_DON] -~y~Donald Love -~g~ ~a~ +[HEL_DST] +Velivoli distrutti -[LS2_RAY] -~y~Ray Machowski -~g~ ~a~ +[STFT_01] +Tempo migliore in 'Due ruote d'acciaio' -[LS2_TOS] -~y~Toshiko Kasen -~g~ ~a~ +[STFT_02] +Tempo migliore in 'L'autista' -[FREEON] -Time Frozen +[STFT_03] +Tempo migliore nella prova del fango -[FREEOFF] -Time Unfrozen +[STFT_04] +Tempo migliore con gli aerei radiocomandati -[WTC_INS] -Use ~h~analog up & down ~w~to change weather. Use ~h~analog left & right ~w~to change hour. Press ~h~TRIANGLE button ~w~to exit. Press ~h~SQUARE button ~w~to freeze time. +[STFT_05] +Tempo migliore con le macchine radiocomandate -[WTC_TIM] -TIME: ~1~:00 +[STFT_06] +Tempo migliore di raccolta con l'elicottero -[WTC_WE0] -WEATHER: CLOUDY +[STFT_07] +Tempo migliore in 'Terminal Velocity' -[WTC_WE1] -WEATHER: EXTRA COLOURS +[STFT_08] +Tempo migliore in 'Ocean Drive' -[WTC_WE2] -WEATHER: EXTRA SUNNY +[STFT_09] +Tempo migliore in 'Border Run' -[WTC_WE3] -WEATHER: FOGGY +[STFT_10] +Tempo migliore in 'Capital Cruise' -[WTC_WE4] -WEATHER: HURRICANE +[STFT_11] +Tempo migliore in 'Tour!' -[WTC_WE5] -WEATHER: RAINY +[STFT_12] +Tempo migliore in 'V.C. Endurance' -[WTC_WE6] -WEATHER: SNOW +[STHC_01] +Punteggio migliore al poligono -[WTC_WE7] -WEATHER: SUNNY +[STHC_02] +Miglior percentuale di colpi al poligono -[CVHELP] -Use ~h~up button and down button ~w~to change character. Use ~h~left button and right button ~w~to rotate camera. HOLD ~h~SQUARE ~w~to zoom in (toggles upper and lower body). Press ~h~TRIANGLE ~w~to quit character viewer. +[STHC_03] +Numero di traffici di droga -[VMENU1] ---------- Select a Viewer --------- --- ~h~Car~w~ - Character - Building -- +[HELP24] +Adesso puoi accettare le missioni del Colonnello. -[VMENU2] ---------- Select a Viewer --------- --- Car - ~h~Character~w~ - Building -- +[HELP25] +Adesso puoi accettare le missioni di Avery Carrington. -[VMENU3] ---------- Select a Viewer --------- --- Car - Character - ~h~Building~w~ -- +[HELP29] +Puoi far visita al negozio di abbigliamento quando non sei in missione. -[CV_C] -COMPARISON MODEL +[HELP30] +Quando compri nuovi abiti, il tuo livello di sospetto scenderà a zero. -[CV_0] -ROW: -- MODEL: player +[BJM2_22] +~r~Sei uscito dal poligono di tiro! -[CV_1] -ROW: 114 MODEL: cop +[BJM2_23] +~g~Se esci dal poligono di tiro durante la competizione, fallirai la missione. -[CV_2] -ROW: 115 MODEL: swat +[ASM4_24] +Distanza: -[CV_3] -ROW: 116 MODEL: fbi +[RBM1_6] +~g~Porta Mercedes e la 'Love Juice' al gruppo nello studio di registrazione. -[CV_4] -ROW: 117 MODEL: army +[RBM1_3] +NON NECESSARIO -[CV_5] -ROW: 118 MODEL: medic +[HAM1_5] +NON NECESSARIO -[CV_6] -ROW: 119 MODEL: fireman +[RBM1_11] +NON NECESSARIO -[CV_7] -ROW: 71 MODEL: male01 +[HELP31] +Per eseguire un assalto in macchina, guarda a destra o a sinistra premendo il tasto L2 o il tasto R2. -[CV_9] -ROW: 120 MODEL: taxi_d +[HELP34] +Hai bisogno di una mitragliatrice per eseguire un assalto in macchina. -[CV_10] -ROW: 2 MODEL: pimp +[STRIP_1] +~r~Soldi insufficienti, brutto idiota. -[CV_11] -ROW: 13 MODEL: criminal01 +[EXIT_1] +Premi ~k~~PED_SPRINT~ per uscire. -[CV_12] -ROW: 14 MODEL: criminal02 +[ASM1_A] +Mr. Teal, il tuo aiuto nello sradicare gli stranieri è stato inestimabile per il nostro lavoro. Ho un altro compito con un contatto più 'diretto'. -[CV_13] -ROW: 15 MODEL: male02 +[ASM1_B] +I dettagli per il prossimo colpo sono stati attaccati sotto al telefono. -[CV_14] -ROW: 16 MODEL: male03 +[ASM1_C] +Ho un altro compito con un contatto più 'diretto'. -[CV_15] -ROW: 121 MODEL: fatmale01 +[SCARF] +Appartamento 3c -[CV_16] -ROW: 17 MODEL: fatmale02 +[LAW4_10] +La ricca amministrazione ci ha rotto! -[CV_17] -ROW: 18 MODEL: female01 +[GEN1_04] +~g~Attraversa la porta per accedere alla piattaforma sul tetto di Gonzalez. -[CV_18] -ROW: 19 MODEL: female02 +[GEN1_17] +~g~Gonzalez sta fuggendo! Seguilo attraverso le porte e finiscilo! -[CV_19] -ROW: 20 MODEL: female03 +[RCH1_9] +~b~TEMPO TOTALE: ~1~:~1~ -[CV_20] -ROW: 21 MODEL: fatfemale01 +[RCH1_10] +~b~TEMPO TOTALE: ~1~:0~1~ -[CV_21] -ROW: 22 MODEL: fatfemale02 +[WHEEL01] +BONUS DOPPIO SU DUE RUOTE: ~1~$ Distanza: ~1~.~1~ m Tempo: ~1~ secondi -[CV_22] -ROW: 23 MODEL: prostitute +[WHEEL02] +BONUS DOPPIO SU DUE RUOTE: ~1~$ Distanza: ~1~ piedi Tempo: ~1~ secondi -[CV_23] -ROW: 24 MODEL: prostitute2 +[WHEEL03] +BONUS SU DUE RUOTE: ~1~$ Tempo: ~1~ secondi -[CV_24] -ROW: 25 MODEL: p_man1 +[WHEEL04] +BONUS SU DUE RUOTE: ~1~$ Distanza: ~1~.~1~ m -[CV_25] -ROW: 26 MODEL: p_man2 +[WHEEL05] +BONUS SU DUE RUOTE: ~1~$ Distanza: ~1~ piedi -[CV_26] -ROW: 27 MODEL: p_wom1 +[WHEEL06] +BONUS IMPENNATA: ~1~$ Distanza: ~1~.~1~ m Tempo: ~1~ secondi -[CV_27] -ROW: 28 MODEL: p_wom2 +[WHEEL07] +BONUS IMPENNATA: ~1~$ Distanza: ~1~ piedi Tempo: ~1~ secondi -[CV_28] -ROW: 29 MODEL: ct_man1 +[WHEEL08] +BONUS IMPENNATA: ~1~$ Tempo: ~1~ secondi -[CV_29] -ROW: 30 MODEL: ct_man2 +[WHEEL09] +BONUS IMPENNATA: ~1~$ Distanza: ~1~.~1~ m -[CV_30] -ROW: 31 MODEL: ct_wom1 +[WHEEL10] +BONUS IMPENNATA: ~1~$ Distanza: ~1~ piedi -[CV_31] -ROW: 32 MODEL: ct_wom2 +[WHEEL11] +BONUS FRENATA IN PUNTA: ~1~$ Distanza: ~1~.~1~ m Tempo: ~1~ secondi -[CV_32] -ROW: 33 MODEL: li_man1 +[WHEEL12] +BONUS FRENATA IN PUNTA: ~1~$ Distanza: ~1~ piedi Tempo: ~1~ secondi -[CV_33] -ROW: 34 MODEL: li_man2 +[WHEEL13] +BONUS FRENATA IN PUNTA: ~1~$ Tempo: ~1~ secondi -[CV_34] -ROW: 35 MODEL: li_wom1 +[WHEEL14] +BONUS FRENATA IN PUNTA: ~1~$ Distanza: ~1~.~1~ m -[CV_35] -ROW: 36 MODEL: li_wom2 +[WHEEL15] +BONUS FRENATA IN PUNTA: ~1~$ Distanza: ~1~ piedi -[CV_36] -ROW: 37 MODEL: docker1 +[ROK3_72] +Love Fist! -[CV_37] -ROW: 38 MODEL: docker2 - -[CV_38] -ROW: 39 MODEL: scum_man - -[CV_39] -ROW: 40 MODEL: scum_wom - -[CV_40] -ROW: 41 MODEL: worker1 - -[CV_41] -ROW: 42 MODEL: worker2 - -[CV_42] -ROW: 43 MODEL: b_man1 - -[CV_43] -ROW: 44 MODEL: b_man2 - -[CV_44] -ROW: 67 MODEL: b_man3 - -[CV_45] -ROW: 45 MODEL: b_wom1 - -[CV_46] -ROW: 46 MODEL: b_wom2 - -[CV_47] -ROW: 70 MODEL: b_wom3 - -[CV_48] -ROW: 47 MODEL: mod_man - -[CV_49] -ROW: 48 MODEL: mod_wom - -[CV_50] -ROW: 49 MODEL: st_man - -[CV_51] -ROW: 50 MODEL: st_wom - -[CV_52] -ROW: 51 MODEL: fan_man1 - -[CV_53] -ROW: 52 MODEL: fan_man2 - -[CV_54] -ROW: 53 MODEL: fan_wom - -[CV_55] -ROW: 54 MODEL: hos_man - -[CV_56] -ROW: 55 MODEL: hos_wom - -[CV_57] -ROW: 56 MODEL: const1 - -[CV_58] -ROW: 57 MODEL: const2 - -[CV_59] -ROW: 58 MODEL: shopper1 - -[CV_60] -ROW: 59 MODEL: shopper2 - -[CV_61] -ROW: 60 MODEL: shopper3 - -[CV_62] -ROW: 61 MODEL: stud_man - -[CV_63] -ROW: 62 MODEL: stud_wom - -[CV_64] -ROW: 63 MODEL: cas_man - -[CV_65] -ROW: 64 MODEL: cas_wom - -[CV_79] -ROW: 123 MODEL: gang01 LEONE_A - -[CV_80] -ROW: 124 MODEL: gang02 LEONE_B - -[CV_81] -ROW: 69 MODEL: gang03 TRIAD_A - -[CV_82] -ROW: 3 MODEL: gang04 TRIAD_B - -[CV_83] -ROW: 4 MODEL: gang05 DIABLO_A - -[CV_84] -ROW: 5 MODEL: gang06 DIABLO_B - -[CV_85] -ROW: 68 MODEL: gang07 YAKUZA_A - -[CV_86] -ROW: 6 MODEL: gang08 YAKUZA_B - -[CV_87] -ROW: 7 MODEL: gang09 YARDIE_A - -[CV_88] -ROW: 8 MODEL: gang10 YARDIE_B - -[CV_89] -ROW: 9 MODEL: gang11 COLOMBIAN_A - -[CV_90] -ROW: 10 MODEL: gang12 COLOMBIAN_B - -[CV_91] -ROW: 11 MODEL: gang13 HOOD_A - -[CV_92] -ROW: 12 MODEL: gang14 HOOD_B - -[CV_93] -ROW: 89 MODEL: gang15 Forelli thug1 - -[CV_94] -ROW: 90 MODEL: gang16 Forelli thug2 - -[CV_95] -ROW: 88 MODEL: gang17 Sindacco thug1 - -[CV_96] -ROW: 89 MODEL: gang18 Sindacco thug2 - -[CV_109] -ROW: 65 MODEL: SAL_01 Salvatore (Mob Don) - -[CV_110] -ROW: 66 MODEL: RAY_01 Ray (Bad Cop) - -[CV_111] -ROW: 72 MODEL: VINC_01 Vincenzo Cilli - -[CV_112] -ROW: 73 MODEL: GRDANG1 Avenging Angel - -[CV_113] -ROW: 74 MODEL: NED_01 Ned Burner (Reporter) - -[CV_114] -ROW: 75 MODEL: MASTOR Massimo Torrini (Assassin) - -[CV_115] -ROW: 76 MODEL: TOOL_01 JD O'Toole - -[CV_116] -ROW: 77 MODEL: Not used Fthr Kenny - -[CV_117] -ROW: 78 MODEL: GRDANG2 Avenging Angel 2 - -[CV_118] -ROW: 79 MODEL: M_HOLE Mayor RC Hole - -[CV_119] -ROW: 80 MODEL: FRANFOR Franco Forelli - -[CV_120] -ROW: 81 MODEL: KAZUKI Kazuki Kasen - -[CV_121] -ROW: 82 MODEL: PAULIE Paulie Sindacco - -[CV_122] -ROW: 83 MODEL: HOPPER Jane Hopper - -[CV_123] -ROW: 84 MODEL: AVERY Avery Carrington - -[CV_124] -ROW: 85 MODEL: CASA Giovanni Casa - -[CV_125] -ROW: 86 MODEL: BABY Giovanni Casa (baby) - -[CV_126] -ROW: 87 MODEL: MCAFFRY Det. Leon McAffrey - -[CV_127] -ROW: 92 MODEL: EIGHT 8Ball - -[CV_128] -ROW: 93 MODEL: MAR_01 Maria - -[CV_129] -ROW: 94 MODEL: LOVE_01 Donald Love - -[CV_130] -ROW: 95 MODEL: MICKEYH Mickey H - -[CV_131] -ROW: 96 MODEL: WAYNE Wayne (Biker Dude) - -[CV_132] -ROW: 97 MODEL: BIKER1 Biker Dude 1 - -[CV_133] -ROW: 98 MODEL: BIKER2 Biker Dude 2 - -[CV_134] -ROW: 99 MODEL: DONOVAN O'Donovan - -[CV_135] -ROW: 100 MODEL: KAS_01 Toshiko Kasen (kimono) - -[CV_136] -ROW: 101 MODEL: WKAS_01 Toshiko Kasen (western) - -[CV_137] -ROW: 104 MODEL: JDMADE JD O'Toole - Made Man - -[CV_138] -ROW: 106 MODEL: THUG_01 Sicilian Thug 1 - -[CV_139] -ROW: 107 MODEL: THUG_02 Sicilian Thug 2 - -[CV_140] -ROW: 109 MODEL: CAMP_MAN Campaign Worker - -[CV_141] -ROW: 110 MODEL: CAMP_WOM Campaign Worker 2 - -[CV_142] -ROW: 111 MODEL: MIGUEL Miguel - -[CV_143] -ROW: 112 MODEL: DELIASS Deli Assistant - -[CV_144] -ROW: 113 MODEL: HOBO_01 Donald Love 2 - -[CV_68] -ROW: 122 MODEL: HITMAN Hitman - -[CV_146] -ROW: 125 MODEL: HOLEJOG Mayor RC Hole (Jogging outfit) - -[CV_147] -ROW: 126 MODEL: Chauff Chauffeur - -[CV_148] -ROW: 128 MODEL: plr2 (Lawyer) - -[CV_149] -ROW: 129 MODEL: plr3 (Travel clothes) - -[CV_150] -ROW: 130 MODEL: plr4 (Chauffeur) - -[CV_151] -ROW: 131 MODEL: plr5 (Hockey mask) - -[CV_152] -ROW: 132 MODEL: plr6 (Tuxedo) - -[CV_153] -ROW: 133 MODEL: plr7 (Avenging Angel) - -[CV_154] -ROW: 134 MODEL: plr8 (The King of Rock'n Roll) - -[CV_155] -ROW: 135 MODEL: plr9 (Cock's Mascot) - -[CV_156] -ROW: 136 MODEL: plr10 (Boxer Shorts) - -[CV_157] -ROW: 137 MODEL: plr11 (Bad Super Hero) - -[CV_158] -ROW: 138 MODEL: plr12 (Dragon) - -[CV_159] -ROW: 139 MODEL: PHILC Phil Cassidy - -[CV_160] -ROW: 140 MODEL: GREASE Grease Zuko - -[CV_161] -ROW: 141 MODEL: GUN_ASS Gun assistant - -[CV_162] -ROW: -- MODEL: JD_shot JD shot dead - -[CV_163] -ROW: -- MODEL: BODYBAG bodybag - -[CV_164] -ROW: 142 MODEL: SAL_CON Sal Convict - -[VV_131] -ID:131 MODEL: Landstalker (TBC) - -[VV_135] -ID:135 MODEL: Perenial (TBC) - -[VV_138] -ID:138 MODEL: Firetruck - -[VV_141] -ID:141 MODEL: Manana (TBC) - -[VV_148] -ID:148 MODEL: FBI Car (TBC) - -[VV_152] -ID:152 MODEL: Kuruma (TBC) - -[VV_164] -ID:164 MODEL: Dodo (TBC) - -[VV_169] -ID:169 MODELL: Rc Bandit - -[VV_170] -ID:170 MODEL: BellyUp (Triad) (TBC) - -[VV_172] -ID:172 MODEL: Leone Sentinel (TBC) - -[VV_174] -ID: 174 MODEL: Yakuza (TBC) - -[VV_179] -ID:179 MODEL: Flatbed (TBC) - -[VV_181] -ID:181 MODEL: Borgnine Taxi (TBC) - -[VV_188] -ID: 188 MODEL: Sindacco Argento (TBC) - -[VV_189] -ID: 189 MODEL: Forelli Lexcess (TBC) - -[VV_192] -ID:192 MODEL: Speeder (TBC) - -[BV_H1] -Press CIRCLE to swap building model. - -[BV_0A] -ROW: 2 - Portland. Safehouse Exterior. Press CIRCLE to swap. - -[BV_0B] -ROW:24 - Portland. Safehouse Interior. Press CIRCLE to swap. - -[BV_1] -ROW: 3 - Portland. Ferry Terminal. - -[BV_2A] -ROW: 4 - Portland. Callahan Bridge 1. Press CIRCLE to swap. - -[BV_2B] -ROW: 4 - Portland. Callahan Bridge 2. Press CIRCLE to swap. - -[BV_3] -ROW: 5 - Portland. Les Cargo Freighter. - -[BV_4A] -ROW: 6 - Portland. Doll's House Brothel 1. Press CIRCLE to swap. - -[BV_4B] -ROW: 6 - Portland. Doll's House Brothel 2. Press CIRCLE to swap. - -[BV_5] -ROW: 7 - Portland. Tower Block. - -[BV_6] -ROW: 8 - Portland. Eddie's Garage. - -[BV_7] -ROW: 9 - Portland. Bowler's Fist Pub. - -[BV_8] -ROW:10 - Portland. Hepburn Heights. - -[BV_9] -ROW:11 - Portland. Short Stay Hotel. - -[BV_10] -ROW:12 - Portland. Car Dealership. - -[BV_11] -ROW:13 - Portland. Bus Graveyard. - -[BV_12A] -ROW:14 - Portland. Drugs Warehouse 1 (awaiting approval). Press CIRCLE to swap. - -[BV_12B] -ROW:14 - Portland. Drugs Warehouse 2 (awaiting approval). Press CIRCLE to swap. - -[BV_13] -ROW:15 - Portland. Ma Cipriani's Restaurant. - -[BV_14] -ROW:17 - Portland. Basketball Court, Callahan. - -[BV_15] -ROW:18 - Portland. Bike Shop. - -[BV_16] -ROW:19 - Portland. Building near Basketball Court. - -[BV_17A] -ROW:20 - Portland. Luigi's Nightclub 1. - -[BV_17B] -ROW:20 - Portland. Luigi's Nightclub 2. - -[BV_17C] -ROW:20 - Portland. Luigi's Nightclub 3. - -[BV_18] -ROW:21 - Portland. Casa's Gourmet Deli. - -[BV_19] -ROW:22 - Portland. Rusty Ship. - -[BV_20] -ROW:23 - Portland. Door for Shopfront. - -[BV_21] -ROW:25 - Staunton. Casino. - -[BV_22] -ROW:26 - Staunton. Phil Cassidy's Store. - -[BV_23] -ROW:27 - Staunton. Zip store. - -[BV_24] -ROW:28 - Staunton. Container Park. - -[BV_25] -ROW:29 - Staunton. Ferry Terminal. - -[BV_26A] -ROW:30 - Staunton. Fort Staunton 1 NORTH. - -[BV_26B] -ROW:30 - Staunton. Fort Staunton 2 NORTH. - -[BV_27A] -ROW:30 - Staunton. Fort Staunton 1 SOUTH. - -[BV_27B] -ROW:30 - Staunton. Fort Staunton 2 SOUTH. - -[BV_28] -ROW:31 - Ferry - Not Visible At Present. - -[BV_29A] -ROW:32 - Staunton. Safehouse Exterior (unchanged). Press CIRCLE to swap. - -[BV_29B] -ROW:32 - Staunton. Safehouse Interior. Press CIRCLE to swap. - -[BV_30] -ROW:33 - Staunton. Steps Added To Building. - -[BV_31] -ROW:34 - Portland. Outbuilding. - -[BV_32A] -ROW:34 - Shoreside. Safehouse Exterior (unchanged). Press CIRCLE to swap. - -[BV_32B] -ROW:34 - Shoreside. Safehouse Interior. Press CIRCLE to swap. - -[BV_33] -Not in Doc - Staunton - Warehouse Interior (not internally approved). - -[BV_34A] -Not in Doc - Staunton - Church Exterior. Press CIRCLE to swap. - -[BV_34B] -Not in Doc - Staunton - Church Interior for scripted cutscene. Press CIRCLE to swap. - -[MODWOR] -Modify World Speed - -[MODTIT] -Changing World Speed - -[NEDS2] -La passione del colpo - -[NEDS3] -Karmageddon - -[NEDS4] -Falsi idoli - -[DONS1] -Il candidato del festino cadaverico - -[GAR_WIL] -Porta la macchina al garage. - -[DONS2] -Guida il voto - -[DONS3] -Pene elettorali - -[DONS4] -Elezioni infuocate - -[DONS5] -Love & pallottole - -[DONS6] -La contraffazione conta - -[DONS7] -Love agli sgoccioli - -[DONS7AA] -Toni, devi aiutarmi! - -[DONS7AB] -O'Donovan ha le prove che mi associano a Salvatore, siamo fottuti! - -[DONS7AC] -Calmati, le prove spariscono tutti i giorni. - -[DONS7AD] -Per non parlare di giudici, testimoni, giurati... - -[DONS7AE] -Speravo che la vedessi così. - -[DONS7AF] -Uno dei miei uomini ha seguito il tipo con le prove. - -[DONS7AG] -L'appuntamento è sotto il cavalcavia di Newport. - -[SALS1] -Una passeggiata nel parco - -[SALS2] -Toni d'onore - -[SALS3] -Colto sul fatto - -[SALS4] -Ricerca e salvataggio - -[SALS5] -Negoziazione pacifica - -[SALS6] -Ambasciator porta pena - -[RAYS1] -Sayonara Sindacco - -[RAYS2] -Ga-Yardie! - -[RAYS3] -Crazy '69' - -[RAYS4] -La notte dei rastoni viventi - -[RAYS5] -Scarica abusiva - -[MC_01] -MOCAP Scenes - -[MC_02] -Non puoi andare in missione quando stai usando il selettore di sequenze. - -[MC_04] -Seleziona la scena che preferisci e premi CROCE. Premi TRIANGOLO per uscire. - -[MC_03] -~g~nome sequenza - nome script ~w~ - -[MC_S01] -1. Biker - mar4 - -[MC_S02] -2. Bonevoy - jdt1 - -[MC_S03] -3. Campain - dons3 - -[MC_S04] -4. Cashchp - tosh4 - -[MC_S05] -5. Contban - sal5 - -[MC_S06] -6. Crazy69 - rays3 - -[MC_S07] -7. Cuttest - none - -[MC_S08] -8. Deadly - tosh1 - -[MC_S09] -9. Donprob - donh6 - -[MC_S10] -10. Drivnmr - sal8 - -[MC_S11] -11. Electon - dons7 - -[MC_S12] -12. Homswet - vic1 - -[MC_S13] -13. Hotwhel - vic6 - -[MC_S14] -14. Kidnapp - jdt5 - -[MC_S15] -15. Landgrb - donh1 - -[MC_S16] -16. Morgue - dons1 - -[MC_S17] -17. Overdos - mar5 - -[MC_S18] -18. Rufjust - salh1 - -[MC_S19] -19. Sayonar - rays1 - -[MC_S20] -20. sicilan - salh5 - -[MC_S21] -21. Theofer - sal1 - -[MC_S22] -22. Intro - -[MC_S23] -23. Final - -[MC_S24] -24. Final_2 - -[NEDS1] -L.C. Confidential - -[WILGAR2] -Abbandona la macchina ed esci. - -{=================================== MISSION TABLE SAL1 ===================================} - -[SAL1_M1:SAL1] -~w~Salvatore vuole parlare. - -[SAL1_M2:SAL1] -~w~Non sto al gioco di Salvatore. - -[SAL1_M3:SAL1] -~w~Grazie per la donazione, ragazzo... ci si vede. - -[SAL1_M5:SAL1] -~w~Ehi! - -[SAL1_D1:SAL1] -~w~Ehi! Crumiro! - -[SAL1_D2:SAL1] -~w~Prendiamolo! - -[SAL1_D3:SAL1] -~w~Eccolo! - -[SAL1_D4:SAL1] -~w~È andato di là! - -[SAL1_E1:SAL1] -~w~Fuggi dal porto! - -[SAL1_A1:SAL1] -~w~Incontrati con la sindacalista, Jane Hopper, a ~y~Portland Docks. - -[THEO_01:SAL1] -Ehi capo, tutto bene? - -[THEO_02:SAL1] -Ti pare che stia bene? - -[THEO_03:SAL1] -No. - -[THEO_04:SAL1] -E allora perché fai domande da coglione? - -[THEO_05:SAL1] -Perché apri la bocca per dire ovvietà? - -[THEO_06:SAL1] -Non posso credere di essere circondato da gente come te. - -[THEO_07:SAL1] -Mi dispiace. - -[THEO_08:SAL1] -Ascolta Toni, scusami. Sei uno dei miei più fidati alleati. - -[THEO_09:SAL1] -Dopo quello che hai fatto, sei diventato come un figlio per me, anzi di più, - -[THEO_10:SAL1] -meglio di qualsiasi figlio. - -[THEO_11:SAL1] -Tua madre è una donna fortunata. - -[THEO_12:SAL1] -Così si dice. - -[THEO_13:SAL1] -Anthony, è la fine per i tipi come noi. - -[THEO_14:SAL1] -Siamo dinosauri, dei dildo... dei dodo, come diavolo si chiamano... - -[THEO_15:SAL1] -Persino nella mia famiglia mi sento come Gesù circondato da dodici Giuda. - -[THEO_16:SAL1] -Senti questa. - -[THEO_17:SAL1] -C'è una sindacalista, una puttana, che mi deve fare un favore, - -[THEO_18:SAL1] -e questa mi chiede dei soldi. - -[THEO_19:SAL1] -Mi serviva solamente l'accesso al porto per 24 ore durante lo sciopero, - -[THEO_20:SAL1] -sciopero che io ho contribuito a organizzare, per far scaricare della droga... - -[THEO_21:SAL1] -e in cambio ottengo questa merdosa richiesta! - -[THEO_22:SAL1] -Sono persone per le quali ho lottato personalmente, - -[THEO_23:SAL1] -persone per le quali ho ucciso, persone oneste. - -[THEO_26:SAL1] -È una disgrazia. È la fine per gli uomini d'onore come me e te. - -[THEO_27:SAL1] -Ascoltami Toni, voglio che le porti una cosa. - -[THEO_28:SAL1] -Vuole stare al gioco di una puttana? - -[THEO_29:SAL1] -Al momento che scelta abbiamo? - -[THEO_30:SAL1] -Ascolta: vai là, pagala e dille che vorrei fare due chiacchiere. - -[THEO_31:SAL1] -Vai. - -[THEO_24:SAL1] -- E come vengo ripagato? ~n~ - È un insulto. - -{=================================== MISSION TABLE SAL2 ===================================} - -[SAL2_N:SAL2] -Donne - -[SAL2_A0:SAL2] -~w~È uno dei tuoi nuovi tirapiedi, Sal? - -[SAL2_A1:SAL2] -~w~Signor Leone? - -[SAL2_A2:SAL2] -~w~Toni! Come stai? - -[SAL2_A3:SAL2] -~w~Sono felice che sei passato. Devi fare un lavoretto per me... - -[SAL2_A4:SAL2] -~w~Se non riesco a portare quella cagna di sindacalista dalla mia parte, di certo posso farcela con i suoi uomini. 'O capisti? - -[SAL2_A:SAL2] -~w~Raccogli sei ~b~prostitute~w~ e portale al picchetto presso il porto di Portland. - -[SAL2_B0:SAL2] -~w~Tesoro! Non ci sto a fare le cose di gruppo, idiota! - -[SAL2_B1:SAL2] -~w~Quando riuscirai a fare più posto, ti farò posto io! Non intendo viaggiare sul tetto, tesoro! - -[SAL2_D0:SAL2] -~w~Sei da solo, tesoro? - -[SAL2_D1:SAL2] -~w~Ehi, bel fusto! Vuoi divertirti un po'? - -[SAL2_D2:SAL2] -~w~Dolcezza... io e te potremmo divertirci! - -[SAL2_D3:SAL2] -~w~Dov'è la festa, tesoro? - -[SAL2_D4:SAL2] -~w~Ehi, baby! Vuoi divertirti con me? - -[SAL2_D5:SAL2] -~w~Ciao, zuccherino! ...Sono Candy! - -[SAL2_F0:SAL2] -~w~Ehi! Vengo anch'io! - -[SAL2_F1:SAL2] -~w~Ora siamo solo io e te, vero? - -[SAL2_F2:SAL2] -~w~Ci diamo dentro o cosa, tesoro? - -[SAL2_F3:SAL2] -~w~Allora, dov'è la festa? - -[SAL2_F4:SAL2] -~w~Eh dai! Non fare così. - -[SAL2_F5:SAL2] -~w~Voglio solo divertirmi con te! - -[SAL2_G0:SAL2] -~w~Portala al ~y~picchetto! - -[SAL2_G1:SAL2] -~w~Porta le ragazze al ~y~picchetto! - -[SAL2_G2:SAL2] -~w~Occupati del ~r~cliente! - -[SAL2_G3:SAL2] -~w~Occupati dei ~r~clienti! - -[SAL2_G4:SAL2] -~w~Trova altre ~b~ragazze! - -[SAL2_H:SAL2] -~w~Dov'è la festa, tesoro? - -[SAL2_P:SAL2] -~w~Divertitevi, ragazzi! Omaggio di Salvatore Leone! - -[SAL2_I0:SAL2] -~w~Trovatene un'altra, idiota! Questa è mia! - -[SAL2_I1:SAL2] -~w~Ehi! Tu chi sei, un dannato guardone? - -[SAL2_I3:SAL2] -~w~Ehi! Chi diavolo sei? Prendiamolo! - -[SAL2_I5:SAL2] -~w~Ehi amico! Mettiti in coda! Noi siamo arrivati prima. - -[SAL2_I7:SAL2] -~w~Sei il migliore! Non fermarti... oh sì, paparino! - -[SAL2_I9:SAL2] -~w~Per cui dacci dentro... - -[SAL2_K0:SAL2] -~w~Mai fare gli stronzi con Toni Cipriani! - -[SAL2_K1:SAL2] -~w~Forza! Andiamo! - -[SAL2_K2:SAL2] -~w~Forza bella! Muovi il culo! - -[SAL2_C0:SAL2] -~w~Ehi! Torna qua, bellezza! ...non mordo mica! - -[SAL2_C1:SAL2] -~w~Ehi, dolcezza! Dove stai andando? - -[SAL2_L0:SAL2] -~w~Non ho intenzione di aspettarti tutto il giorno, stronzo! - -[SAL2_L1:SAL2] -~w~Bello, guarda che lavoro a ore! - -[SAL2_X0:SAL2] -~r~Tempo scaduto! - -[SAL2_X1:SAL2] -~r~Hai ucciso troppe prostitute! - -[SAL2_X2:SAL2] -~r~Hai attaccato gli scaricatori di porto. Non si fideranno più di te! - -[SAL2_X3:SAL2] -~r~Hai attaccato le ragazze degli scaricatori di porto. Non si fideranno più di te! - -[SAL2_G5:SAL2] -~w~Sembra tu abbia un ammiratore. - -[SAL2_I8:SAL2] -~w~Non vuoi finire in galera, vero dolcezza? - -[SAL2_I6:SAL2] -~w~Sì! Sì!... - -[SAL2_M:SAL2] -~w~Cerca di non ucciderle! Trova un'altra ~b~ragazza. - -[SAL2_W1:SAL2] -~w~Hai solo fino alle 0~1~:~1~ prima che il picchetto cambi turno! - -[SAL2_W2:SAL2] -~w~Hai solo fino alle ~1~:~1~ prima che il picchetto cambi turno! - -[SAL2_G6:SAL2] -~w~Fermati sul ~y~segnale giallo~w~ per scaricare le ragazze. - -[SAL2_G7:SAL2] -~w~Disturba il cliente per far uscire la ~b~ragazza~w~ dalla macchina. - -[SAL2_B:SAL2] -~w~Non puoi far entrare altre ragazze nella tua macchina. - -{=================================== MISSION TABLE SAL3 ===================================} - -[SAL3_A0:SAL3] -~w~Toni! Come sta il mio ragazzo? - -[SAL3_A1:SAL3] -~w~Mi sembri un po' magro. La mamma ti fa da mangiare come si deve? - -[SAL3_A2:SAL3] -~w~Sto bene, signor Leone. - -[SAL3_A3:SAL3] -~w~Ascolta, questi sindacalisti, mi hanno davvero scocciato. - -[SAL3_A5:SAL3] -~w~...ma dobbiamo dare una scossa ad alcuni pezzi grossi 'meno ricettivi'. - -[SAL3_B0:SAL3] -~w~Spaventa i ~r~sindacalisti importanti.~w~ Assicurati che capiscano la lezione! - -[SAL3_B3:SAL3] -~w~D'ora in poi faranno come viene loro ordinato. - -[SAL3_BA:SAL3] -~w~Sei un pazzo! Non voglio problemi! - -[SAL3_CA:SAL3] -~w~Cosa diavolo combini? Sei matto?!? - -[SAL3_DA:SAL3] -~w~Mi mancavano ancora due rate! Brutto figlio di puttana! - -[SAL3_BB:SAL3] -~w~D'ora in avanti vedi di fare come ti viene ordinato! - -[SAL3_CB:SAL3] -~w~Stai fuori dagli affari di Leone! - -[SAL3_A4:SAL3] -~w~Alcuni iniziano a vedere le cose a modo mio... - -[SAL3_A6:SAL3] -~w~Hai capito cosa intendo? - -[SAL3_B1:SAL3] -~w~Da morti non impareranno la lezione. Non uccidere altri ~r~sindacalisti! - -[SAL3_B2:SAL3] -~r~Dovevi spaventarli, non ucciderli! - -[SAL3_B4:SAL3] -~w~Trova un altro ~r~sindacalista~w~ da raddrizzare. - -{=================================== MISSION TABLE SAL5 ===================================} - -[SAL5_D3:SAL5] -~w~Porta il ~h~veicolo ~w~nel garage. - -[SAL5_D4:SAL5] -~w~Esci dal veicolo e abbandona il ~h~garage. - -[SAL5_B:SAL5] -~w~Recupera un veicolo con quattro posti e carica dei ~b~rinforzi. - -[SAL5_C:SAL5] -~w~Ti serve un veicolo con quattro posti. - -[SAL5_C0:SAL5] -~w~Carica i ~b~rinforzi. - -[SAL5_C1:SAL5] -~w~Hai bisogno di un veicolo con più posti per caricare i ~b~rinforzi. - -[SAL5_C2:SAL5] -~w~Raggiungi i ~y~Portland Docks. - -[SAL5_AA:SAL5] -~w~Ehi... Ese... dovevi arrivare ore fa! - -[SAL5_AB:SAL5] -~w~Basta lagne, Miguel. Hai la roba? - -[SAL5_AG:SAL5] -~w~...hai i soldi? - -[SAL5_AH:SAL5] -~w~Certo... - -[SAL5_AI:SAL5] -~w~Cosa? - -[SAL5_AJ:SAL5] -~w~Brutto bastardo! - -[SAL5_C8:SAL5] -~w~Entra nel ~b~veicolo~w~ con la droga e scappa via! - -[SAL5_C9:SAL5] -~w~Porta il veicolo al ~y~garage di Salvatore. - -[SAL5_D1:SAL5] -~w~Torna sul ~b~veicolo! - -[SAL5_D2:SAL5] -~r~La droga è stata distrutta! - -[SAL5_AF:SAL5] -~w~Eh eh ah ah! Mi piaci, Toni. Hai due grosse palle, come un toro! - -[SAL5_C3:SAL5] -~w~Semina la polizia! - -[SAL5_D5:SAL5] -~r~La droga è stata sequestrata! - -[SAL5_AD:SAL5] -~w~Ehi, anch'io ho i miei impegni, Toni. La prossima volta mi trovo un altro compratore! - -[SAL5_AE:SAL5] -~w~Non troveresti qualcun altro pronto a pagare tanto quanto noi. - -[SAL5_D6:SAL5] -~w~Fai fuori gli ~r~spacciatori! - -[CONT_01:SAL5] -Stai zitta, puttana ingrata. - -[CONT_06:SAL5] -È l'unico modo nel quale riuscirai a toccarmi in questa vita. - -[CONT_07:SAL5] -Perché cazzo dovrei aver voglia di toccarti? - -[CONT_08:SAL5] -Non mi piace la roba usata. - -[CONT_09:SAL5] -Mi fai schifo. - -[CONT_12:SAL5] -Oh, ti prego. Sai una cosa? - -[CONT_15:SAL5] -Ciao, Toni... - -[CONT_16:SAL5] -Voglio i miei soldi, vecchio! - -[CONT_17:SAL5] -Fuori di qui, puttana. - -[CONT_18:SAL5] -Ehi, Anthony, sei troppo buono. - -[CONT_19:SAL5] -Donne, che vuoi farci, eh? - -[CONT_20:SAL5] -Fortunatamente c'è qualcuno di cui posso fidarmi... tu, Toni. - -[CONT_21:SAL5] -Sei molto importante per me, te l'ho mai detto? - -[CONT_22:SAL5] -Non ti si drizza nemmeno più, vecchio bastardo. - -[CONT_23:SAL5] -Non con te. Non mi piace usare i cessi pubblici, brutta zoccola! - -[CONT_24:SAL5] -È molto importante. Ascolta, adesso ci siamo solo io e te al comando. - -[CONT_25:SAL5] -Abbiamo sbaragliato quegli imbecilli. - -[CONT_26:SAL5] -Come fai a saperlo? Sei più interessato a uscire con gli uomini! - -[CONT_27:SAL5] -E tu sei felice solamente quando hai le mutande calate fino alle caviglie - -[CONT_28:SAL5] -e la schiena contro un muro! - -[CONT_29:SAL5] -Merda, ho conosciuto dei conigli cui piace scopare meno di te! - -[CONT_33:SAL5] -Allora, sta arrivando una spedizione di quello che sai. - -[CONT_34:SAL5] -Questa operazione ci farà diventare entrambi importanti. - -[CONT_35:SAL5] -Deve filare tutto liscio. - -[CONT_36:SAL5] -Ho solo bisogno di una persona di cui fidarmi, che segua alcuni miei affari. - -[CONT_37:SAL5] -Va bene Toni, ci sentiamo più tardi. - -[CONT_38:SAL5] -Un'altra cosa. Non ho mai conosciuto una ragazza con le mutande idrauliche. - -[CONT_39:SAL5] -Cristo, è stupefacente! Perché l'ho sposata? - -[CONT_40:SAL5] -Volevo una troia e ho sposato una zoccola! - -[CONT_41:SAL5] -Nella mia vita precedente devo aver veramente fatto incazzare qualcuno, - -[CONT_42:SAL5] -oramai ne sono certo. - -[CONT_02:SAL5] -- Se sento ancora una sola parola uscire dalla tua bocca... ~n~ - Dai, forza cazzone. - -[CONT_04:SAL5] -- Cosa vuoi fare? Picchiarmi? ~n~ - Perché dovrei... - -[CONT_10:SAL5] -- Io? Ti faccio schifo? Cosa? ~n~ - Sì! Schifo! - -[CONT_13:SAL5] -- Mio padre aveva ragione quando diceva che sei solo un ciccione maleducato... ~n~ - Certo, certo, certo... - -[CONT_43:SAL5] -- Ascolta, è importante... ~n~ - Vai a farti fottere, Salvatore Leone! - -[CONT_31:SAL5] -- Sei solo una testa di cazzo, un povero stronzo italiano. ~n~ - Vai TU a farti fottere! E infatti l'hai data a tutti! - -{=================================== MISSION TABLE SAL4 ===================================} - -[SAL4_I1:SAL4] -~w~Questo sciopero continuerà fin quando non riceverò delle garanzie dalla città! - -[SAL4_I2:SAL4] -~w~Mafiosi: pensano di poter pilotare il sindacato... si sbagliano! - -[SAL4_I3:SAL4] -~w~Non mi spaventano! - -[SAL4_I4:SAL4] -~w~Sono più uomo io di tutti loro messi assieme! - -[SAL4_I5:SAL4] -~w~Ascolta questa merda. - -[SAL4_I6:SAL4] -~w~Dovrei far uccidere questa puttana. Sta tirando troppo la corda! - -[SAL4_I7:SAL4] -~w~...beh, possiamo sempre giocare in due. - -[SAL4_I8:SAL4] -~w~Toni, devi portarle un messaggio a mio nome! - -[SAL4_A2:SAL4] -~w~Rimuovi l'~r~autista~w~ dall'equazione. - -[SAL4_A3:SAL4] -~w~Ehi! - -[SAL4_A4:SAL4] -~w~Sali sulla ~b~limousine. - -[SAL4_A5:SAL4] -~w~Riporta la limousine alla ~y~stazione radio! - -[SAL4_A6:SAL4] -~w~Ora aspetta la Hopper. - -[SAL4_A7:SAL4] -~w~Parcheggia la limousine nel posto giusto. Hopper non deve sospettare di nulla. - -[SAL4_B1:SAL4] -~w~Al molo dei traghetti di Harwood, a tutto gas! - -[SAL4_B2:SAL4] -~w~Agli ordini! - -[SAL4_C1:SAL4] -~w~Spaventa a morte la Hopper! - -[SAL4_C2:SAL4] -Terrore - -[SAL4S1:SAL4] -~w~Ehi, fai con calma, non è mica una gara! - -[SAL4S2:SAL4] -~w~Stai andando dalla parte giusta? - -[SAL4S3:SAL4] -~w~Ehi, non sei il mio autista! - -[SAL4S4:SAL4] -~w~Chi diavolo sei?!? - -[SAL4S5:SAL4] -~w~Taci! - -[SAL4S6:SAL4] -~w~D'ora in avanti farai tutto ciò che ti dice Salvatore Leone! - -[SAL4S7:SAL4] -~w~'O capisti? - -[SAL4S8:SAL4] -~w~Io... mi rifiuto di farmi ricattare così! - -[SAL4S9:SAL4] -~w~Vedremo! - -[SAL4S10:SAL4] -~w~Fammi subito uscire! - -[SAL4S11:SAL4] -~w~Ti prego! Ci ucciderai entrambi! - -[SAL4S12:SAL4] -~w~Noooooo! - -[SAL4S13:SAL4] -~w~Cos'ho fatto per meritarmi questo? - -[SAL4_F1:SAL4] -~w~Dov'è la mia limousine? - -[SAL4_F2:SAL4] -~w~Non sei il mio autista, chiamo la polizia! - -[SAL4_F3:SAL4] -~r~Troppo tardi, Hopper ti ha visto! - -[SAL4_F4:SAL4] -~w~Salvatore può andare a farsi fottere! - -[SAL4_F5:SAL4] -~r~La limousine è a pezzi! - -[SAL4_F6:SAL4] -~r~Hopper è morta! - -[SAL4_F7:SAL4] -~r~Hopper è fuggita! - -[SAL4_F8:SAL4] -~r~La limousine rovinata ha spaventato Hopper. - -[SAL4_F9:SAL4] -~r~Hopper è stata spaventata. - -[SAL4_P1:SAL4] -~w~OK! OK! Ne ho avuto abbastanza! - -[SAL4P1A:SAL4] -~w~Farò ciò che vuoi. - -[SAL4_P2:SAL4] -~w~Porta Hopper al ~y~picchetto presso al molo dei traghetti. - -[SAL4_P3:SAL4] -~w~E non scordi il nostro accordo, signora! - -[SAL4_H1:SAL4] -~w~Un eccesso di velocità, qualche collisione e un paio di salti dovrebbero spaventare Hopper. - -[SAL4_F0:SAL4] -~r~Troppo tardi! La Hopper ha lasciato la stazione radio! - -[SAL4_A:SAL4] -~w~Raggiungi la ~y~stazione radio~w~ prima delle 0~1~:00, quando Hopper si allontanerà. - -[SAL4_A1:SAL4] -~w~Raggiungi la ~y~stazione radio~w~ prima delle ~1~:00, quando Hopper si allontanerà. - -{=================================== MISSION TABLE SAL6 ===================================} - -[SAL6_A0:SAL6] -~w~Toni, abbiamo problemi. Grossi problemi! - -[SAL6_A1:SAL6] -~w~Che succede, Sal? - -[SAL6_A3:SAL6] -~w~Ci stanno massacrando! - -[SAL6_A4:SAL6] -~w~Abbiamo appena finito una guerra e... BANG! Siamo nel mezzo di un'altra! - -[SAL6_A5:SAL6] -~w~Lo giuro, quando le cose vanno bene... mi hanno fatto il malocchio! Un fottuto malocchio! - -[SAL6_A6:SAL6] -~w~Ehi! Non si preoccupi, boss! Ci penserò io. - -[SAL6_AA:SAL6] -~w~Sal ha lasciato nel garage le armi di cui avrai bisogno. - -[SAL6_B:SAL6] -~w~Ferma l'assalto dei ~r~Diablo~w~ prima che tutti gli uomini di Leone vengano uccisi! - -[SAL6_1:SAL6] -~w~~1~ uomini di Leone ancora vivi! - -[SAL6_2:SAL6] -~w~1 uomo di Leone ancora vivo! - -[SAL6_C1:SAL6] -~w~Toni, ci stanno massacrando! - -[SAL6_C2:SAL6] -~w~Non mi pagano abbastanza per questo! - -[SAL6_C3:SAL6] -~w~Toni, sei pazzo! Ti farai ammazzare! - -[SAL6_E1:SAL6] -~w~Sal? - -[SAL6_E2:SAL6] -~w~Toni! È finita? Com'è andata? - -[SAL6_E3:SAL6] -~w~Direi male, Sal. - -[SAL6_E4:SAL6] -~w~Ho salvato un po' di uomini, ma ne abbiamo persi molti prima che arrivassi. - -[SAL6_E5:SAL6] -~w~Ho paura che perderemo questa parte della città. - -[SAL6_E6:SAL6] -~w~Dovranno passare sul mio cadavere! Non è ancora finita! - -[SAL6_E7:SAL6] -~w~Non voglio perdere niente! I Leone non si ritirano mai! - -[SAL6_E8:SAL6] -~w~Mi hai sentito, Toni? - -[SAL6_E9:SAL6] -~w~Come desidera, Sal. - -[SAL6_G0:SAL6] -~r~Tutti gli uomini di Leone sono morti. - -[SAL6_Z1:SAL6] -Leone - -[SAL6_Z2:SAL6] -Diablo - -[SAL6_X0:SAL6] -Got threat - -[SAL6_X1:SAL6] -Had threat - -[SAL6_X2:SAL6] -Find threat - -[SAL6_X3:SAL6] -Complain - -[SAL6_C0:SAL6] -~w~Che si fottano! Andiamocene da qui! - -[SAL6_A2:SAL6] -~w~Dove andremo a finire? I Diablo ci hanno assalito in Hepburn! - -{=================================== MISSION TABLE SAL7 ===================================} - -[SAL7_01:SAL7] -~w~Salve, Sal! - -[SAL7_02:SAL7] -~w~Toni! Cosa ne pensi della mia nuova macchina? - -[SAL7_05:SAL7] -~w~È una meraviglia, vero? Super accessoriata, il massimo in circolazione. - -[SAL7_A6:SAL7] -~w~...oh, sì... crisi di mezz'età! - -[SAL7_07:SAL7] -~w~Sta' zitta! Toni, ascolta. - -[SAL7_08:SAL7] -~w~Ho una valanga di soldi che devono essere raccolti dal mio magazzino presso Callahan Point. - -[SAL7_10:SAL7] -~w~Mi fido solo di te per questo lavoro. - -[SAL7_11:SAL7] -~w~Voi ragazze volete parlare tutto il giorno? Possiamo andare? - -[SAL7_12:SAL7] -~w~Maledizione, donna! Ti ho dato il permesso di parlare? - -[SAL7_20:SAL7] -~w~Forza! muoversi! - -[SAL7_21:SAL7] -~w~OK... - -[SAL7_22:SAL7] -~w~Andiamo! - -[SAL7_23:SAL7] -~w~Ehi, Toni! Come stai? - -[SAL7_30:SAL7] -~w~Raggiungi il ~y~magazzino. - -[SAL7_40:SAL7] -~w~Raccogli tutti i soldi di Salvatore prima che vadano in fumo! - -[SAL7_50:SAL7] -~w~Riporta il malloppo da ~y~Salvatore. - -[SAL7_NM:SAL7] -~w~Ritorna dentro! Non hai raccolto tutti i ~g~soldi. - -[SAL7_E1:SAL7] -~w~Uccidiamolo! - -[SAL7_E2:SAL7] -~w~Muori! - -[SAL7_E3:SAL7] -~w~Eccone uno! - -[SAL7_E4:SAL7] -~w~Non riesco a vederlo! - -[SAL7_T1:SAL7] -~w~Indietro! - -[SAL7_T2:SAL7] -~w~Come ti senti adesso! - -[SAL7_T3:SAL7] -~w~Fatevi sotto! - -[SAL7_T4:SAL7] -~w~Prendi questo! - -[SAL7_F1:SAL7] -~r~Non hai recuperato tutti i soldi di Salvatore in tempo! - -[SAL7_06:SAL7] -~w~Cos'è questo odore? - -[SAL7_42:SAL7] -~w~Raccogli i ~g~soldi~w~ prima che vadano in fumo! - -{=================================== MISSION TABLE SAL8 ===================================} - -[SAL8_VE:SAL8] -~r~v1,2 - -[SAL8_11:SAL8] -~w~Prendi una macchina e facciamo un giro... - -[SAL8_12:SAL8] -~w~Raggiungi il terminal dei traghetti. - -[SAL812A:SAL8] -~w~Ma c'è lo sciopero in corso... non ci saranno traghetti. - -[SAL812B:SAL8] -~w~Tu guida, io mi occupo di pensare. - -[SAL8_14:SAL8] -~w~Dio santo! I poliziotti sono dappertutto! Via da qui, in fretta! - -[SAL8_15:SAL8] -~w~Dove stiamo andando? - -[SAL8_16:SAL8] -~w~Il ponte Callahan! - -[SAL816A:SAL8] -~w~...Il ponte Callahan non è ancora stato terminato! - -[SAL816B:SAL8] -~w~Termineranno noi se non ti dai una mossa! Forza, sbrigati! - -[SAL816C:SAL8] -~w~Raggiungi ~y~Callahan Bridge. - -[SAL8_17:SAL8] -~w~Cosa diavolo stai combinando? - -[SAL8_18:SAL8] -~w~Toni! Abbiamo bisogno di una macchina! - -[SAL818A:SAL8] -~w~Non ho intenzione di camminare per strada! - -[SAL8_19:SAL8] -~w~Hai lasciato indietro ~b~Salvatore~w~. Torna a prenderlo! - -[SAL8_20:SAL8] -~w~Portaci fuori di qui! - -[SAL8_22:SAL8] -~w~Toni, ce l'hai fatta! Sapevo di potermi fidare di te! - -[SAL822B:SAL8] -Ora ascolta: conosco un posto sicuro dove possiamo nasconderci per un po'. - -[SAL822C:SAL8] -Forza, andiamo. - -[SAL8_25:SAL8] -~w~Avremo bisogno di tutti i cavalli di questo affare! Premi il pedale, Toni! - -[SAL825A:SAL8] -~w~OMMERDAAAAAA! - -[SAL8_26:SAL8] -Velocità di salto - -[SAL8_27:SAL8] -~w~Bene, questo è il posto. - -[SAL8_28:SAL8] -~w~Darò un'occhiata in giro. Voglio controllare delle cose. - -[SAL828A:SAL8] -~w~Ci vediamo qui più tardi. - -[SAL8_29:SAL8] -~r~Sal è stato ucciso! - -[SAL829A:SAL8] -~w~I poliziotti vi hanno visto! - -[SAL831:SAL8] -~w~Rifugio di Staunton ora disponibile! - -[SAL833:SAL8] -~w~Stai lontano dai poliziotti! - -[SAL823A:SAL8] -~w~O forse no? - -[SAL8_24:SAL8] -~w~Benché la metropolitana e il servizio di traghetti siano ufficialmente aperti, - -[SAL824A:SAL8] -~w~i militanti dei lavoratori continuano a ostruire parti della città. - -[SAL824B:SAL8] -~w~Il ponte mobile che connette Staunton Island e Shoreside Vale è stato chiuso. - -[SAL824C:SAL8] -~w~Gli scioperanti si rifiutano di credere alle promesse delle autorità sul futuro dei traghetti. - -[SAL824D:SAL8] -~w~Come nota positiva, il nuovo ponte Callahan è ormai quasi completato. - -[SAL824E:SAL8] -~w~Ma il completamento di questo collegamento di Liberty City non può essere rimandato ulteriormente. - -[SAL8_23:SAL8] -~w~Lo sciopero che ha tagliato Portland dal resto della città è finalmente terminato. - -[SAL812C:SAL8] -~w~Raggiungi il ~y~molo dei traghetti. - -[SAL8WAN:SAL8] -I poliziotti vogliono DAVVERO prendere Salvatore! Riverniciando il veicolo farai perdere le tue tracce solo momentaneamente. - -[SAL8_21:SAL8] -~w~Raggiungi il ~y~ponte! - -[SAL830:SAL8] -~w~Raggiungi il ~y~rifugio. - -[SAL822A:SAL8] -~w~Ti bacerei se ti fossi fatto la barba! - -[SAL832:SAL8] -~w~Ti serve un mezzo! - -[DRIV_01:SAL8] -Allora? - -[DRIV_02:SAL8] -Allora cosa? - -[DRIV_03:SAL8] -Non fare l'ingenuo con me, ragazzino. - -[DRIV_06:SAL8] -Ho sentito cosa hai detto in giro sul mio conto. - -[DRIV_07:SAL8] -Credi che sia un'idiota? Eh? - -[DRIV_08:SAL8] -È questo quello che pensi? - -[DRIV_09:SAL8] -Capo, non ho detto una sola parola su di lei. - -[DRIV_10:SAL8] -Ma che cazzo, non so cosa mi stia succedendo. - -[DRIV_11:SAL8] -Gesù. - -[DRIV_12:SAL8] -Sto diventando paranoico, Toni. Un fottuto paranoico. - -[DRIV_13:SAL8] -Solo perché credo che mi odiano tutti, non vuol dire che non sia così, non so se mi spiego... - -[DRIV_14:SAL8] -C'è qualcuno che mi sta addosso: quel fottuto sindaco! - -[DRIV_15:SAL8] -Mi accuserà di tutte quelle stronzate che stanno accadendo giù nel quartiere. - -[DRIV_16:SAL8] -Tutte! Comprese quelle che ho fatto davvero. - -[DRIV_17:SAL8] -Coraggio, dobbiamo occuparci di questa faccenda. - -[DRIV_04:SAL8] -- Facevo lo stesso quando tua madre batteva ancora. ~n~ - Qual è il problema? - -{=================================== MISSION TABLE JDT1 ===================================} - -[JDT1_CA:JDT1] -~w~Sono sicuro che le ragazze mi stiano fregando. - -[JDT1_CB:JDT1] -~w~Ci conviene perlustrare il quartiere e vedere di persona. - -[JDT1_DA:JDT1] -~w~Quella è una delle mie ragazze! - -[JDT1_DB:JDT1] -~w~Ehi! Riconosco quella ragazza. - -[JDT1_DC:JDT1] -~w~È una delle mie ragazze. - -[JDT1_DD:JDT1] -~w~Quella è una delle nostre. - -[JDT1_DE:JDT1] -~w~Quella ragazza lì... - -[JDT1_DF:JDT1] -~w~Fermati vicino a lei. - -[JDT1_DG:JDT1] -~w~Accosta vicino a lei. - -[JDT1_DH:JDT1] -~w~Carichiamola in macchina. - -[JDT1_DI:JDT1] -~w~Parcheggia vicino a lei. - -[JDT1_DJ:JDT1] -~w~Avvicinati a lei. - -[JDT1_MA:JDT1] -~w~Ciao JD. Stavo giusto per portarti questi, davvero! - -[JDT1_MB:JDT1] -~w~Ehi! Non ti fidi più di me, JD? - -[JDT1_MC:JDT1] -~w~Ehi JD. Poco movimento... ecco tutto quello che ho. - -[JDT1_MD:JDT1] -~w~Parli del diavolo... Ecco i tuoi fottuti soldi! - -[JDT1_ME:JDT1] -~w~Ehi JD. Ho i tuoi soldi proprio qui. - -[JDT1_MF:JDT1] -~w~Non credevi mica che mi sarei tenuta questi soldi, vero? - -[JDT1_MG:JDT1] -~w~Stai controllando noi ragazze, JD? - -[JDT1_MH:JDT1] -~w~Eccoli qua... contali pure se vuoi! - -[JDT1_EA:JDT1] -~w~Ehi! Quel pappone sta derubando una mia ragazza! - -[JDT1_EB:JDT1] -~w~Toni, recupera i soldi! - -[JDT1_EC:JDT1] -~w~Cosa diavolo sta facendo quel pappone? - -[JDT1_ED:JDT1] -~w~Sta rubando i miei soldi! - -[JDT1_EE:JDT1] -~w~Prendilo, Toni! - -[JDT1_45:JDT1] -~w~Riprendi al pappone i ~g~soldi. - -[JDT1_46:JDT1] -~w~Il pappone è scappato! - -[JDT1_FA:JDT1] -~w~In quella macchina c'è una mia ragazza! - -[JDT1_FB:JDT1] -~w~Avvicinati in retromarcia alla ~b~macchina~w~, così posso dare una sbirciata. - -[JDT1_FC:JDT1] -~w~...piano adesso, non vogliamo disturbarli! - -[JDT1_FD:JDT1] -~w~Più vicino... - -[JDT1_FE:JDT1] -~w~Più vicino... - -[JDT1_FF:JDT1] -~w~Piano... - -[JDT1_IA:JDT1] -~w~Ma che cazzo, Toni! Li hai spaventati! - -[JDT1_GA:JDT1] -~w~Maledizione, Toni! Non vedo un accidente! - -[JDT1_75:JDT1] -~w~Aspetta che la ~b~ragazza~w~ dia i soldi a JD! - -[JDT1_HA:JDT1] -~w~...oh sì! - -[JDT1_HB:JDT1] -~w~Forza, baby! - -[JDT1_HC:JDT1] -~w~Vengo, vengo! - -[JDT1_HD:JDT1] -~w~...oh Sì! - -[JDT1_HE:JDT1] -~w~È stato meraviglioso! - -[JDT1_HF:JDT1] -~w~Abbiamo finito? - -[JDT1_JA:JDT1] -~w~Bel lavoro, Toni! - -[JDT1_JB:JDT1] -~w~Non credo che le ragazze di questo turno mi causeranno altri problemi. - -[JDT1_LA:JDT1] -~w~Toni! Hai fatto davvero una bella cazzata! - -[JDT1_LB:JDT1] -~w~Me ne torno al club! - -[JDT1_ML:JDT1] -~w~Ancora ~1~$ da raccogliere! - -[JDT1O01:JDT1] -~w~Sali sul ~b~furgone di JD. - -[JDT1O02:JDT1] -~w~Hai lasciato indietro ~b~JD~w~. Torna a prenderlo! - -[JDT1O03:JDT1] -~w~Aspetta che ~b~JD~w~ salga su. - -[JDT1O04:JDT1] -~w~Cerca le ragazze di JD nel Red Light District. - -[JDT1O05:JDT1] -~w~Ritorna al ~y~club di JD. - -[JDT1O07:JDT1] -~w~Fermati vicino alla ~b~ragazza. - -[JDT1O08:JDT1] -~w~Uccidi il ~r~pappone. - -[JDT1O09:JDT1] -~w~Raccogli i soldi da una delle ~b~ragazze di JD. - -[JDT1_F1:JDT1] -~r~Il furgone di JD è stato distrutto! - -[JDT1_F2:JDT1] -~r~JD è morto! - -[JDT1_F3:JDT1] -~r~Non hai raccolto abbastanza soldi durante il turno! - -[JDT1_D1:JDT1] -~w~Le ragazze di JD lavorano nel ~y~Red Light District.~w~ Ritorna lì! - -[JDT1_F4:JDT1] -~r~Sono morte troppe ragazze di JD! - -[JDT1_KA:JDT1] -~w~Cosa diavolo era? - -[JDT1_KB:JDT1] -~w~Abbiamo colpito qualcosa? - -[JDT1_KC:JDT1] -~w~Attento a come guidi, Toni! - -[JDT1_81:JDT1] -~w~Hai spaventato il tipo! Non vuole di certo un pubblico! - -[JDT1O10:JDT1] -~w~Avvicinati alla ~b~macchina~w~ nel vicolo. - -[JDT1O11:JDT1] -~w~Suona il clacson per attirare la loro attenzione! - -[JDT1O12:JDT1] -~w~Più a lungo lascerai lavorare la ragazza, maggiori saranno i guadagni. - -[JDT1_MO:JDT1] -Debito - -[JDT1_H1:JDT1] -~w~Usa ~k~ ~VEHN~ per suonare il clacson. - -[JDT1_WA:JDT1] -~w~Muoviti! Il turno delle ~b~ragazze~w~ finisce alle ~1~:~1~! - -[JDT1_WB:JDT1] -~w~Muoviti! Il turno delle ragazze finisce alle ~1~:~1~! - -[JDT1O06:JDT1] -~w~Raccogli i soldi di JD dalle sue prostitute. Fai in fretta, il loro turno finisce alle ~1~:~1~. - -[JDT1_WC:JDT1] -~w~Muoviti! Il turno delle ~b~ragazze~w~ finisce alle ~1~:0~1~! - -[JDT1_WD:JDT1] -~w~Muoviti! Il turno delle ragazze finisce alle ~1~:0~1~! - -[JDT1P06:JDT1] -~w~Raccogli i soldi di JD dalle sue prostitute. Fai in fretta, il loro turno finisce alle ~1~:0~1~. - -[BONE_01:JDT1] -Ehi JD! Vieni fuori! - -[BONE_02:JDT1] -Ehi JD, fottuto depravato, esci da questo cazzo di posto - -[BONE_03:JDT1] -prima che entri io e ti spezzi le gambe. - -[BONE_04:JDT1] -Sto venendo... ma non in quel senso, ah ah ah! - -[BONE_05:JDT1] -Ehi Toni, que pasa? Abbracciami. - -[BONE_06:JDT1] -Woah, sei tutto appiccicoso! - -[BONE_07:JDT1] -Oh è quella roba che si spalmano le spogliarelliste, sai... - -[BONE_08:JDT1] -Ne vanno matte, sai. La mettono dappertutto e uh... allora, come andiamo? - -[BONE_09:JDT1] -Ma come cazzo sei vestito? - -[BONE_10:JDT1] -Cosa, questo? Sono l'esploratore del sesso. - -[BONE_11:JDT1] -Sai che mi piace... sperimentare, no? - -[BONE_16:JDT1] -Sai, questo è un problema. Ci stanno fregando. - -[BONE_17:JDT1] -Bene, aspetta qui. - -[BONE_18:JDT1] -Devo andare a cambiarmi... questa cosa, sai... - -[BONE_19:JDT1] -Ehi Raven, fine della festa, metti via il doppio vibratore. - -[BONE_20:JDT1] -Ehi Toni, andiamo a fare un giro insieme. - -[BONE_21:JDT1] -Dobbiamo andare a controllare delle cose... OK! OK! - -[BONE_12:JDT1] -- Non c'è niente di male, eh? Puoi guardare se vuoi. ~n~ - Sei davvero malato, non dire un'altra parola. - -[BONE_14:JDT1] -- OK, rilassati Toni... ~n~ - Dove sono i miei soldi? - -{=================================== MISSION TABLE JDT2 ===================================} - -[JDT2_I1:JDT2] -~w~Grazie a Dio sei qua, Toni! - -[JDT2_I2:JDT2] -~w~Ho appena ricevuto la soffiata che stanno arrivando i poliziotti! - -[JDT2_I3:JDT2] -~w~Allora? Hai un permesso. - -[JDT2_I4:JDT2] -~w~Non per alcune delle cose che avvengono qua dentro! - -[JDT2_I5:JDT2] -~w~Salvatore è dentro, sta facendo una... visita 'speciale'... alle ragazze... - -[JDT2_I6:JDT2] -~w~Dobbiamo farlo uscire prima che arrivino i poliziotti! - -[JDT2_I7:JDT2] -~w~Aspettalo sul davanti! - -[JDT2_I8:JDT2] -~w~Mai un momento di tregua... - -[JDT2_05:JDT2] -~w~Portami subito via di qui! - -[JDT2_06:JDT2] -~w~Toni? Semina i poliziotti! Non portare quegli idioti a casa mia! - -[JDT2_A1:JDT2] -~w~Sali in ~b~macchina. - -[JDT2_A2:JDT2] -~w~Non abbandonare ~b~Salvatore!~w~ Torna a prenderlo! - -[JDT2_A3:JDT2] -~w~Porta Salvatore a ~y~casa. - -[JDT2_A5:JDT2] -~r~Salvatore è morto! - -[JDT2_C1:JDT2] -~w~Oggi hai fatto un bel lavoro, ragazzo. Mi è sempre piaciuto il tuo stile. - -[JDT2_C2:JDT2] -~w~Grazie, signor Leone. - -[JDT2_C3:JDT2] -~w~Sai, credo che Vincenzo stia approfittando troppo del tuo tempo. - -[JDT2_C4:JDT2] -~w~Ho bisogno di un bravo ragazzo come te. - -[JDT2_C5:JDT2] -~w~Chiamami ogni tanto. Zio Sal si occuperà di te. - -[JDT2_A9:JDT2] -~r~Salvatore è stato beccato! - -[JDT2_B2:JDT2] -~w~Semina la polizia! - -[JDT2_A6:JDT2] -~w~Torna alla ~b~macchina~w~ di Salvatore prima che i poliziotti lo becchino! - -[JDT2_F1:JDT2] -~r~Hai abbandonato Salvatore! - -[JDT2_A4:JDT2] -~w~Porta Salvatore lontano dal club e semina i poliziotti! - -{=================================== MISSION TABLE JDT3 ===================================} - -[JDT3_AA:JDT3] -~w~Ehi Toni... non posso uscire adesso, sono occupato... sai, no? - -[JDT3_AB:JDT3] -~w~Cosa? Cosa succede lì dentro? ...e cos'è questo odore? - -[JDT3_AC:JDT3] -~w~Senti, Toni... oggi abbiamo per le mani dei veri, ah... specialisti. - -[JDT3_AD:JDT3] -~w~Questa roba vale oro su internet! - -[JDT3_AE:JDT3] -~w~Comunque, dovresti preoccuparti della bisca dei Leone a Saint Mark's. - -[JDT3_AG:JDT3] -~w~I Sindacco sono furenti al riguardo. - -[JDT3_AH:JDT3] -~w~Ho sentito che vogliono far saltare in aria il posto. - -[JDT3_B:JDT3] -~w~Fai fuori i ~r~sabotatori dei Sindacco! - -[JDT3_C:JDT3] -~r~Hanno ~w~piazzato una bomba fuori dal ~y~casinò! - -[JDT3_D:JDT3] -Esplode in - -[JDT3_E:JDT3] -~w~Ancora un paio di esplosioni e il ~y~casinò~w~ sarà a pezzi! - -[JDT3_F:JDT3] -~w~Ancora una e il ~y~casinò~w~ verrà distrutto! - -[JDT3_H:JDT3] -~w~Altri ~r~Sindacco~w~ in avvicinamento! Fermali! - -[JDT3_I:JDT3] -~w~La bomba sul camion è innescata! - -[JDT3_J:JDT3] -~w~Il ~y~casinò~w~ è salvo. Allontanati! - -[JDT3_K:JDT3] -~w~Devono aver sabotato il camion, è bloccato con la marcia più bassa! - -[JDT3_L:JDT3] -~r~Rinforzi dei Sindacco~w~ in avvicinamento al ~y~casinò! - -[JDT3_M:JDT3] -~w~I ~r~Sindacco~w~ non vogliono arrendersi! Ne arrivano degli altri! - -[JDT3_N:JDT3] -~w~Stanno ritirandosi. Non lasciar fuggire nessun ~r~Sindacco! - -[JDT3_O:JDT3] -Dist. di sicurezza - -[JDT3_P:JDT3] -~w~I Sindacco hanno preparato un immenso camion bomba! Vogliono eliminare il casinò in un colpo solo! - -[JDT3_Q:JDT3] -~w~Defendi il ~y~casinò. - -[JDT3_R:JDT3] -~w~Vai a controllare il ~y~casinò. - -[JDT3_S:JDT3] -~w~Ferma il ~r~camion bomba~w~ prima che distrugga il ~y~casinò! - -[JDT3_T:JDT3] -~w~Sposta il ~r~camion~w~ lontano dal ~y~casinò~w~ prima che esploda! - -[JDT3_BA:JDT3] -~w~Toni? Sono JD. - -[JDT3_BB:JDT3] -~w~Ho sentito che degli uomini dei Sindacco si stanno dirigendo verso di te. - -[JDT3_BC:JDT3] -~w~E hanno degli esplosivi, un mucchio di esplosivi! - -[JDT3_BD:JDT3] -~w~Fai attenzione! - -[JDT3_BE:JDT3] -~w~Grazie JD! - -[JDT3_BF:JDT3] -~w~Apprezzo il gesto. - -[JDT3_G:JDT3] -~r~Il casinò è stato distrutto! - -{=================================== MISSION TABLE JDT4 ===================================} - -[JDT4_3:JDT4] -~w~Le guardie del bordello si fideranno solo di ~h~macchine dei Sindacco. - -[JDT4_A1:JDT4] -~w~Di classe: se perdi al tavolo, puoi incassare nel culo! - -[JDT4_B0:JDT4] -~w~Trova un veicolo adatto e montaci su una bomba. - -[JDT4_B1:JDT4] -~w~Torna nel ~b~veicolo~w~ con la bomba. - -[JDT4_B3:JDT4] -~w~Esci dal veicolo e dattela a gambe. - -[JDT4_B4:JDT4] -~w~Fai esplodere la bomba! - -[JDT4_B5:JDT4] -~w~Porta il veicolo nel ~h~negozio di bombe~w~ e fanne montare una. - -[JDT4_B6:JDT4] -~w~Non avvicinarti troppo! - -[JDT4_C0:JDT4] -~r~Eri troppo vicino all'esplosione. - -[JDT4_C1:JDT4] -~w~Mettilo sul conto di JD! - -[JDT4_D0:JDT4] -~w~Chi va là? - -[JDT4_D2:JDT4] -~w~Deve essere uno nuovo. - -[JDT4_0:JDT4] -CONTO ALLA ROVESCIA - -[JDT4_1:JDT4] -~w~Non puoi mettere una bomba su questo veicolo! - -[JDT4_2:JDT4] -~w~Segui la ~h~bomba~w~ sul radar per raggiungere il negozio di ~h~8-Ball. - -[JDT4_A0:JDT4] -~w~Senti Toni, i Sindacco hanno questo posto, 'The Dolls House'. - -[JDT4_AA:JDT4] -~w~Un casinò e un bordello in uno. - -[JDT4_A2:JDT4] -~w~Eh eh! Beh, il posto è la chiave della loro posizione. - -[JDT4_A3:JDT4] -~w~Se riuscissi a, uh... metterlo fuori gioco... cioè, uh... farlo esplodere o altro... - -[JDT4_A4:JDT4] -~w~Ti assicuro che Salvatore ci coprirà di soldi! - -[JDT4_D1:JDT4] -~w~Non lo riconosco... - -[JDT4_B2:JDT4] -~w~Parcheggia il veicolo nel ~y~garage~w~ del 'The Doll's House'. - -[JDT4_B7:JDT4] -~w~Guida con attenzione, se lo danneggi troppo, esploderà! - -[JDT4_B8:JDT4] -~w~Parcheggia il veicolo nel ~y~garage~w~ del 'The Doll's House'. - -[JDT4_4:JDT4] -~w~Premi~h~ ~k~ ~PDFW~ ~w~per ~h~detonare~w~ la bomba. - -[JDT4_B9:JDT4] -~w~I Sindacco hanno disinnescato la bomba! - -{=================================== MISSION TABLE JDT5 ===================================} - -[JDT5_B0:JDT5] -~w~Quello è uno dei tipi che ha rapito Salvatore! - -[JDT5_D0:JDT5] -~w~Dove si trova? Nel bagagliaio? - -[JDT5_D1:JDT5] -~w~Bene. Portiamolo al demolitore. Il capo lo vuole più piatto di una pizza. - -[JDT5_E:JDT5] -~w~Libera Salvatore dalla ~b~macchina~w~ prima che venga demolita! - -[JDT5_E0:JDT5] -~w~Ti hanno visto! - -[JDT5_E1:JDT5] -~w~La ~b~macchina~w~ è incustodita! Prendila! - -[JDT5_E2:JDT5] -~w~Porta la macchina alla ~y~villa di Salvatore. - -[JDT5_E3:JDT5] -~w~Torna in ~b~macchina. - -[JDT5_F0:JDT5] -~w~Mmmphhh... mmmphhh... mpphh! - -[JDT5_F3:JDT5] -~w~Mmpphh... Arrgghh... mmpphh! - -[JDT5_F4:JDT5] -~w~Mmpphh... Arrgghh... Arrggghh... Arrg! - -[JDT5_F5:JDT5] -~w~Yarrgghh... Yarragh... Mmpphh! - -[JDT5_G0:JDT5] -~w~Ma come cazzo guidi? Volevi uccidermi? - -[JDT5_G1:JDT5] -~w~Signor Leone. Boss. Mi dispiace. - -[JDT5_G2:JDT5] -~w~Cosa posso dire? - -[JDT5_G4:JDT5] -~w~Faccio esplodere le loro teste! Non finisce qui! - -[JDT5_G5:JDT5] -~w~...Dio santo, Toni... mi hai salvato il culo. Chiamami Sal! - -[JDT5_X0:JDT5] -~r~Non è facile inseguire un cadavere! - -[JDT5_X1:JDT5] -~r~Lo hai perso! - -[JDT5_F1:JDT5] -~w~È lei, signor Leone? Sono io, Toni. - -[JDT5_F2:JDT5] -~w~Non si preoccupi, la faccio uscire immediatamente! - -[JDT5_G3:JDT5] -~w~Figli di puttana! Credono di potermi fare questo? - -[JDT5_X2:JDT5] -~r~Sal non ce l'ha fatta. - -[JDT5_X4:JDT5] -~r~Ti ha visto. Ora non troverai più Sal! - -[JDT5_X3:JDT5] -~r~Salvatore è stato spappolato! - -[JDT5_C:JDT5] -~w~Segui la ~r~macchina~w~, ma tieniti a distanza. - -[JDT5_0:JDT5] -~w~Se spari alla macchina, potresti colpire Salvatore! - -[JDT5_H0:JDT5] -~w~Segui la ~r~macchina~w~, ma non avvicinarti troppo. - -[JDT5_H1:JDT5] -~w~Sei troppo vicino! - -[JDT5_H2:JDT5] -~w~Non allontanarti troppo dalla ~r~macchina. - -[JDT5_H3:JDT5] -~w~Sei troppo lontano! - -[KIDN_01:JDT5] -JD! - -[KIDN_02:JDT5] -Toni, grazie al cielo sei qui. - -[KIDN_03:JDT5] -Sto sudando come una vacca al macello... sto impazzendo. - -[KIDN_06:JDT5] -Oddio non ci posso credere, mi strapperà le palle - -[KIDN_07:JDT5] -e le metterà in una teca, non necessariamente in quest'ordine. - -[KIDN_08:JDT5] -Oddio! Mi sento come il giorno in cui l'FBI ha sequestrato il mio hard disk! - -[KIDN_13:JDT5] -Oddio non ci posso credere... - -[KIDN_14:JDT5] -Perché a me? Non è colpa mia. - -[KIDN_15:JDT5] -Ma conosci Salvatore: mi metterà alle calcagna la buoncostume. - -[KIDN_16:JDT5] -Oddio, mi accuseranno di essermi fatto una minorenne. - -[KIDN_17:JDT5] -Sei mai stato in prigione per quello, amico? - -[KIDN_18:JDT5] -Ti fanno un culo così sotto le docce! - -[KIDN_19:JDT5] -Oddio, e aveva 18 anni! Omioddio! Sarà anche peggio! - -[KIDN_20:JDT5] -Ascolta un po', coglione: mi dici che cazzo sta succedendo? - -[KIDN_04:JDT5] -- Ora cosa facciamo? ~n~ - In che senso? - -[KIDN_11:JDT5] -- No, no... ho già preso troppe pasticche... ~n~ - Cosa sta succedendo? - -[KIDN_09:JDT5] -Oddio, ho il cuore che pompa a mille. Hai del Valiom? - -[KIDN_10:JDT5] -O del Rohapnin? Hai del... - -[KIDN_21:JDT5] -È Salvatore. È stato rapito all'uscita del club. - -[KIDN_23:JDT5] -Beh, non facevi prima a dirmelo invece di stordirmi con tutte queste stronzate? Dai, andiamo. - -{=================================== MISSION TABLE JDT6 ===================================} - -[JDT6_A0:JDT6] -~w~Grazie a Dio! Toni. - -[JDT6_A1:JDT6] -~w~JD? Ehi, sono sul retro del... - -[JDT6_A2:JDT6] -~w~Lo so. Ti ho visto arrivare. Pregavo che ti facessi vivo! - -[JDT6_A3:JDT6] -~w~Salvatore è impazzito! - -[JDT6_A6:JDT6] -~w~Assicurati che nessuno ferisca Salvatore. - -[JDT6_0:JDT6] -Salvatore - -[JDT6_1:JDT6] -~r~Salvatore non ce l'ha fatta. - -[JDT6_3:JDT6] -~w~Salvatore arriverà fra ~1~ secondi. - -[JDT6_5:JDT6] -~w~Proteggi ~b~Salvatore~w~ dai ~r~Sindacco. - -[JDT6_6:JDT6] -~w~Una delle ~b~guardie di Salvatore~w~ è stata uccisa! - -[JDT6_7:JDT6] -~w~Entrambe le ~b~guardie di Salvatore~w~ sono state uccise! - -[JDT6_8:JDT6] -~w~I poliziotti! - -[JDT6_10:JDT6] -~w~Trova una posizione tattica prima che arrivi Salvatore. - -[JDT6_11:JDT6] -~w~Dove stai andando? Salvatore ha bisogno di protezione nel Red Light District! - -[JDT6_12:JDT6] -Salvatore è arrivato - -[JDT6_D1:JDT6] -~w~Ehi... - -[JDT6_D4:JDT6] -~w~Qualcuno ha fatto cadere un dollaro! - -[JDT6_C0:JDT6] -~w~È il meglio che sapete fare? - -[JDT6_C1:JDT6] -~w~Fatevi sotto! - -[JDT6_C2:JDT6] -~w~Siete delle checche! - -[JDT6_C3:JDT6] -~w~Oh, ne vuoi anche tu! - -[JDT6_C4:JDT6] -~w~Prendi questo! - -[JDT6_C5:JDT6] -~w~Brutti topi bastardi! - -[JDT6_C6:JDT6] -~w~Sono il migliore! - -[JDT6_A4:JDT6] -~w~Sta venendo quaggiù di persona per uccidere qualsiasi Sindacco riesca a trovare... - -[JDT6_A5:JDT6] -~w~...per cui mi sono preparato. Ho lasciato un fucile sul tetto dall'altra parte della strada. - -[JDT6_9:JDT6] -~w~Raccogli il ~g~fucile di precisione~w~ sul tetto. - -{=================================== MISSION TABLE JDT7 ===================================} - -[JDT7_VE:JDT7] -~r~v1,00 - -[JDT7_02:JDT7] -~w~Allora Salvatore ha fatto pulizia... e ora sta rassettando anche casa tua! - -[JDT7_03:JDT7] -~w~Toni, ora è tutta mia! - -[JDT703A:JDT7] -~w~Quei fottuti Sindacco sono stati scacciati a calci. - -[JDT7_04:JDT7] -~w~Ascolta, ho sentito che i Siciliani stanno cercando di mettere pace tra le famiglie. - -[JDT7_4A:JDT7] -~w~C'è un pezzo grosso in questo momento a casa di Sal. - -[JDT7_4B:JDT7] -~w~Il problema è che sente puzza di bruciato. - -[JDT7_4C:JDT7] -~w~Vuole che qualcuno lo raggiunga, segua questo tipo e scopra cosa combina. - -[JDT7_06:JDT7] -~r~Non hai raggiunto l'elicottero in tempo: Massimo se n'è già andato! - -[JDT7_07:JDT7] -~w~Segui ~r~Massimo.~w~ Non perderlo! - -[JDT7_08:JDT7] -~r~Massimo~w~ si sta allontanando! - -[JDT7_09:JDT7] -~r~Hai fatto scappare Massimo! - -[JDT7_10:JDT7] -~w~L'elicottero sta per atterrare: non avvicinarti troppo o li allarmerai... - -[JDT7_11:JDT7] -~r~Ti sei avvicinato troppo. Sei stato visto! - -[JDT7_14:JDT7] -~r~Massimo~w~ sta muovendosi... seguilo nuovamente... - -[JDT7_15:JDT7] -~w~Massimo~w~ sta per atterrare lassù... - -[JDT7_16:JDT7] -~w~Devi ~y~avvicinarti~w~ di più... - -[JDT7_17:JDT7] -~r~Ti sei fatto scoprire! - -[JDT7_21:JDT7] -~w~Ti hanno visto! Fai fuori i membri della ~r~Triade! - -[JDT7_12:JDT7] -~w~Come siamo rimasti d'accordo, - -[JDT712A:JDT7] -~w~se farai il lavoro dei miei soci, verrai ben ricompensato. - -[JDT7_13:JDT7] -~w~...Hepburn Heights apparterrà ai Diablo. - -[JDT7_18:JDT7] -~w~...per cui, tieni quei bastardi dei Leone a Portland, - -[JDT718A:JDT7] -e quando i miei soci controlleranno la città, ci ricorderemo di te. - -[JDT718B:JDT7] -Ci pensiamo noi. - -[JDT7_20:JDT7] -~w~Da quella parte! Un Leone! - -[JDT7_22:JDT7] -Distanza - -[JD_FIN:JDT7] -~w~Elimina tutti i membri della ~r~Triade! - -[JDT7_05:JDT7] -~w~Raggiungi la ~y~villa di Salvatore~w~ prima che Massimo si allontani! - -[JDT7O07:JDT7] -~w~Raggiungi la ~y~villa di Salvatore~w~. Massimo la lascerà alle ~1~:~1~. - -[JDT7O08:JDT7] -~w~Sono quasi le ~1~:~1~. Massimo sta per andarsene! - -{=================================== MISSION TABLE JDT8 ===================================} - -[JDT8_A0:JDT8] -~w~Toni... oggi succederà! Oggi diventerò un 'uomo d'onore'! - -[JDT8_A1:JDT8] -~w~JD l'intoccabile? Che Dio ci aiuti! - -[JDT8_A2:JDT8] -~w~Ho atteso tanto questo momento... non si sarebbe mai avverato senza di te, Toni. - -[JDT8_A3:JDT8] -~w~Ehi! Mi scendono le lacrime! Forza! - -[JDT8_A4:JDT8] -~w~Ehi Mickey! Come va? - -[JDT8_A5:JDT8] -~w~Siederò di dietro... OK. - -[JDT8_C:JDT8] -~w~Entra nella ~b~macchina~w~ e porta JD al suo 'battesimo'. - -[JDT8_C2:JDT8] -~w~Torna in ~b~macchina. - -[JDT8_C3:JDT8] -~w~Guida verso la ~y~cerimonia. - -[JDT8_B0:JDT8] -~w~Ah, Toni, sai cosa? Non ci credo che stia per succedere. - -[JDT8_B1:JDT8] -~w~Ho atteso così a lungo. - -[JDT8_B2:JDT8] -~w~Mi sono fatto il culo per i Sindacco per anni e niente! - -[JDT8_B3:JDT8] -~w~I bastardi non mi hanno dato la possibilità - -[JDT8_B5:JDT8] -~w~Ma Salvatore, Dio lo benedica, non si è fatto influenzare da queste sciocchezze. - -[JDT8_B6:JDT8] -~w~Sai cosa ti dico? - -[JDT8_B7:JDT8] -~w~È meraviglioso! - -[JDT8_B8:JDT8] -~w~Toni, sono così emozionato! - -[JDT8_B9:JDT8] -~w~Toni, non so neanche cosa fare... sono così emozionato! - -[JDT8_BA:JDT8] -~w~Guardami, non posso credere che stia per succedere! - -[JDT8_BB:JDT8] -~w~Finalmente, eh Toni? Oggi diventerò un 'uomo d'onore'! - -[JDT8_D1:JDT8] -~w~Dov'è Salvatore? - -[JDT8_D2:JDT8] -~w~Toni, ti offro il primo giro... - -[JDT8_D3:JDT8] -~w~(PLACEHOLDER SFX) BANG! - -[JDT8_H0:JDT8] -~w~Ehi, quel tipo era un fottuto cane. - -[JDT8_H1:JDT8] -~w~Ha fottuto il suo stesso boss! Disgrazia'. - -[JDT8_H2:JDT8] -~w~Salvatore non si sarebbe mai fidato di quel fottuto bastardo. - -[JDT8_H3:JDT8] -~w~Scarica la fottuta macchina nel fiume. - -[JDT8_H4:JDT8] -~w~Dammi un passaggio lungo la strada. - -[JDT8_J:JDT8] -~w~Entra in ~b~macchina~w~ e porta Mickey a casa. - -[JDT8_J1:JDT8] -~w~I poliziotti ti hanno visto con la macchina! - -[JDT8_J2:JDT8] -~w~I poliziotti ti hanno visto con la ~b~macchina! - -[JDT8_J3:JDT8] -~w~Torna in ~b~macchina! - -[JDT8_J4:JDT8] -~w~Scarica Mickey a ~y~casa sua. - -[JDT8_K0:JDT8] -~w~Me ne vado da qui! - -[JDT8_K1:JDT8] -~w~Ricorda. Scarica la macchina nel fiume. - -[JDT8_F:JDT8] -~w~Scarica la macchina nel fiume. - -[JDT8_F1:JDT8] -~w~Scarica la ~b~macchina~w~ nel fiume. - -[JDT8_G5:JDT8] -~r~JD è morto! - -[JDT8_G6:JDT8] -~r~Mickey è morto! - -[JDT8_G8:JDT8] -~r~Dovevi scaricare la macchina nel fiume. - -[JDT8_X0:JDT8] -~w~Toni, dove stai andando? - -[JDT8_X3:JDT8] -~w~Faremo tardi. - -[JDT8_X1:JDT8] -~w~Se i poliziotti vedono una macchina in questo stato, ci fermano di sicuro! - -[JDT8_X2:JDT8] -~w~La cerimonia è ad Harwood. - -[JDT8_A6:JDT8] -~w~Toni... oggi succederà! - -[JDT8_A7:JDT8] -~w~Oggi diventerò un 'uomo d'onore'! - -[JDT8_A8:JDT8] -~w~JD l'intoccabile? - -[JDT8__1:JDT8] -~w~Ho atteso tanto questo momento... - -[JDT8__2:JDT8] -~w~Non si sarebbe mai avverato senza di te, Toni. - -[JDT8_A9:JDT8] -~w~Che Dio ci aiuti! - -[JDT8_D0:JDT8] -~w~Ehi, ci siamo? - -[JDT8_B4:JDT8] -~w~solo per un po' di sangue irlandese nelle mie vene. - -[JDT8_G7:JDT8] -~r~I tuoi passeggeri sono morti! - -[JDT8_C4:JDT8] -~w~Elimina i ~r~sicari dei Sindacco~w~ prima che uccidano JD! - -[JDT8_0:JDT8] -~w~Riverniciando il veicolo guadagnerai un po' di tempo, ma se i poliziotti vedranno il cadavere sul posto del passeggero, ricominceranno l'inseguimento. - -[JDT8_K:JDT8] -~w~Oddio, no! - -[JDT8_BC:JDT8] -~w~Toni, amico, devi darti una calmata. - -[JDT8_C5:JDT8] -~w~Fai fuori i ~r~sicari dei Sindacco. - -{=================================== MISSION TABLE MAC1 ===================================} - -[MAC1_AA:MAC1] -~w~Ma? - -[MAC1_AB:MAC1] -~w~Sono io! Sono tornato! - -[MAC1_AC:MAC1] -~w~Toni? Dove diavolo sei stato? - -[MAC1_AM:MAC1] -~w~Neanche una chiamata durante tutto questo tempo! - -[MAC1_AD:MAC1] -~w~Non avevano i telefoni nel posto in cui eri? - -[MAC1_AE:MAC1] -~w~Dai Ma, andiamo, sai che non potevo chiamare! - -[MAC1_AF:MAC1] -~w~Un vero uomo avrebbe chiamato la sua mamma. - -[MAC1_AG:MAC1] -~w~Dovresti prendere esempio da Giovanni Casa. - -[MAC1_AN:MAC1] -~w~Chiama sua madre tutti i giorni. - -[MAC1_AH:MAC1] -~w~Lui sì che è un brav'uomo. - -[MAC1_AO:MAC1] -~w~...e la sua salsiccia siciliana è la migliore della città! - -[MAC1_AI:MAC1] -~w~Casa! Ma mamma! Casa non è un brav'uomo, è un pervertito! - -[MAC1_AJ:MAC1] -~w~Sono solo delle fandonie! Che razza di uomo sei, Toni? - -[MAC1_AK:MAC1] -~w~Va bene mamma, come dici tu. - -[MAC1_AL:MAC1] -~w~Magari telefono a Giovanni... chissà come sta. - -[MAC1_HA:MAC1] -~w~Sono dell'umore giusto per del vero amore... - -[MAC1_17:MAC1] -~w~Prova a tua mamma che Giovanni Casa non è un tipo a posto! - -[MAC1_B:MAC1] -~w~Vai al tuo ~y~appartamento ~w~per prendere la macchina fotografica. - -[MAC1_B0:MAC1] -~w~Vai al ~y~negozio di Casa. - -[MAC1B2:MAC1] -~w~Bello scatto! Ora porta la foto a ~y~casa di mamma. - -[MAC1_B3:MAC1] -~w~Avvicinati furtivamente a ~r~Casa, ~w~poi scatta una foto significativa! - -[MAC1_B5:MAC1] -~w~Non spaventarlo. - -[MAC1_B6:MAC1] -~r~Hai finito la pellicola! E non hai ancora scattato una foto da portare come prova a tua madre. - -[MAC1_B7:MAC1] -~w~Prendi la ~g~macchina fotografica. - -[MAC1_C0:MAC1] -~w~Non avvicinarti troppo a ~r~Casa~w~ o diventerà sospettoso! - -[MAC1_C1:MAC1] -~r~L'hai spaventato! Adesso non riuscirai più a scattare quella foto! - -[MAC1_C2:MAC1] -~r~Qualcosa ha spaventato Casa! - -[MAC1_C3:MAC1] -~r~Hai perso le tracce di Casa! - -[MAC1_C4:MAC1] -~r~Casa è stato massacrato! - -[MAC1_C5:MAC1] -~w~Sei troppo vicino a ~r~Casa! - -[MAC1_C6:MAC1] -~w~Non perdere di vista ~r~Casa! - -[MAC1_D0:MAC1] -~w~Pare che Casa abbia trovato un po' di azione. - -[MAC1_JA:MAC1] -~w~OK signore! È l'ora della poppata! - -[MAC1_JB:MAC1] -~w~Chi vuole essere la mia mamma? - -[MAC1_JC:MAC1] -~w~Oddio! - -[MAC1_IA:MAC1] -~w~OK signore, datemi un minuto e sarò da voi. - -[MAC1_IB:MAC1] -~w~Mi metterò qualcosa di più... comodo. - -[MAC1_CA:MAC1] -~w~Stringimi forte forte! - -[MAC1_CB:MAC1] -~w~Ho bisogno di coccole! - -[MAC1_DA:MAC1] -~w~Lecca il mio pupazzo! Leccalo! - -[MAC1_EA:MAC1] -~w~Andiamo ragazze! Venite a giocare! - -[MAC1_FA:MAC1] -~w~MERDA! C'è qualcuno qui! - -[MAC1_FB:MAC1] -~w~Veloci! Salite sul furgone! - -[MAC1_GA:MAC1] -~w~Oddio! Oddio! - -[MAC1_GB:MAC1] -~w~NON GUAR-DAR-MI! - -[MAC1_BA:MAC1] -~w~Ehi Ma! - -[MAC1_BB:MAC1] -~w~Guarda questa foto! È quel 'brav'uomo' di Giovanni Casa... che indossa un fottuto pannolino! - -[MAC1_BC:MAC1] -~w~È così che passi il tuo tempo? - -[MAC1_BD:MAC1] -~w~Nascondendoti dietro gli alberi facendo foto agli uomini? - -[MAC1_BE:MAC1] -~w~Che hai che non va Antonio? Mi vuoi disonorare! - -[MAC1_BF:MAC1] -~w~Ma... - -[MAC1_BG:MAC1] -~w~E, pannolino o non pannolino, rimane un uomo migliore di te! - -[MAC1_B8:MAC1] -~w~Adesso esci. - -[MAC1_B1:MAC1] -~w~Segui ~r~Casa~w~, ma non avvicinarti troppo. - -[MAC1_C7:MAC1] -~w~Effettua uno zoom su ~r~Casa ~w~per scattare la foto che lo coprirà di ~r~vergogna. - -[MAC1_D1:MAC1] -~w~Continua a seguire ~r~Casa~w~. Potresti scattare una bella foto. - -{=================================== MISSION TABLE MAC2 ===================================} - -[MAC2_AA:MAC2] -~w~Ma!... Ma!... andiamo Ma... parlami. - -[MAC2_AB:MAC2] -~w~Non c'è più nessuna 'Ma' per te, codardo! - -[MAC2_AC:MAC2] -~w~Non puoi prendermi in giro... so perché non vuoi più tornare qui. - -[MAC2_AD:MAC2] -~w~Ti stai facendo spaventare da alcuni membri della Triade! - -[MAC2_AE:MAC2] -~w~Tuo padre, Dio l'abbia in gloria, non si sarebbe mai fatto cacciare da casa sua. - -[MAC2_AF:MAC2] -~w~Ma mamma! - -[MAC2_AG:MAC2] -~w~Al contrario di te, tuo padre non era un pisciasotto! - -[MAC2_AH:MAC2] -~w~Finché la Triade non ti porterà rispetto, non sarai più mio figlio! - -[MAC2_AI:MAC2] -~w~Forse una figlia, ma di sicuro non un figlio. - -[MAC2_B1:MAC2] -~w~Dimostra a mamma che non hai paura della Triade. Prenditi cura delle ~r~due gang della Triade~w~ a Chinatown! - -[MAC2_I1:MAC2] -~w~Un capobanda della Triade si trova in quel ~r~furgone del pesce~w~ blindato. Mandalo fuori strada! - -[MAC2_I2:MAC2] -~w~Il ~r~furgone ~w~sta scappando e sta lasciando cadere il carico! Attento! - -[MAC2_I3:MAC2] -~w~Stanno scappando! Elimina la feccia della ~r~Triade ~w~! - -[MAC2_I4:MAC2] -~w~Ti hanno visto! Massacra tutti i membri della ~r~Triade! - -[MAC2_I5:MAC2] -~w~Sei nel territorio della ~r~Triade~w~. Fai attenzione! - -[MAC2_I6:MAC2] -~w~Fuori una. Adesso elimina l'altra ~r~gang! - -[MAC2_BA:MAC2] -~w~Sì! Stai guardando Ma? - -[MAC2_BB:MAC2] -~w~Toni Cipriani vi sta prendendo a calci nel culo! - -[MAC2_BC:MAC2] -~w~Ricordatevi questo nome, teste di pesce! - -{=================================== MISSION TABLE MAC3 ===================================} - -[MAC3_A0:MAC3] -~w~Ma? Sono tornato... - -[MAC3_A1:MAC3] -~w~Guarda come sei magro! - -[MAC3_A2:MAC3] -~w~Se vivessi ancora qui con tua madre, come dovrebbe fare ogni figlio, mangeresti bene! - -[MAC3_A3:MAC3] -~w~E guarda con che macchine vai in giro! - -[MAC3_A4:MAC3] -~w~Mi fai vergognare di te Antonio, davvero. - -[MAC3_A5:MAC3] -~w~La gente crede che ti abbia cresciuto male! - -[MAC3_A6:MAC3] -~w~Che posso fare, Ma? Sai che farei qualsiasi cosa per te. - -[MAC3_A7:MAC3] -~w~Oggi quel Sucho correrà in centro. - -[MAC3_A8:MAC3] -~w~Se solo potessi essere come lui! - -[MAC3_A9:MAC3] -~w~Lui sì che tratta sua madre con rispetto. - -[MAC3_AA:MAC3] -~w~Naturalmente, se tuo padre fosse qui, avrebbe di sicuro vinto la gara, - -[MAC3_AB:MAC3] -~w~...e tolto dalla faccia di Sucho quel sorrisino da imbecille! - -[MAC3_AC:MAC3] -~w~Sì, gli avrebbe fatto ingoiare un po' di piombo! - -[MAC3_AD:MAC3] -~w~Ah, tuo padre era un grand'uomo, con due palle così! - -[MAC3_B0:MAC3] -~w~Dimostra di essere all'altezza di Sucho. Vinci la gara e poi fallo fuori. - -[MAC3_C0:MAC3] -~w~Hai battuto ~r~Sucho~w~, adesso fallo fuori! - -[MAC3_C1:MAC3] -~r~Sucho~w~ sta tentando di scappare - -[MAC3_X0:MAC3] -~r~Hai fatto fuggire Sucho! - -[MAC3_C2:MAC3] -~r~Sucho~w~ sta scappando! - -{=================================== MISSION TABLE MAC4 ===================================} - -[MAC4_A0:MAC4] -~w~Ma!... Ma!... ci sei? - -[MAC4_A1:MAC4] -~w~Non ho intenzione di rivolgerti la parola, Toni! - -[MAC4_A2:MAC4] -~w~Sei una vergogna per le tue radici siciliane! - -[MAC4_A3:MAC4] -~w~Dopo aver scattato quella foto a Casa, ha smesso di pagare il pizzo. - -[MAC4_A4:MAC4] -~w~E tu cosa hai fatto per rimediare? - -[MAC4_A5:MAC4] -~w~NULLA! - -[MAC4_A6:MAC4] -~w~Tuo padre l'avrebbe ridotto in polpette con le sue mani! - -[MAC4_A8:MAC4] -~w~ma ci vuole del fegato per offendere un membro della famiglia Cipriani! - -[MAC4_A9:MAC4] -~w~Mi piacerebbe che tu avessi le sue palle! - -[MAC4_AA:MAC4] -~w~Ti piacerebbe che avessi le sue palle? - -[MAC4_AB:MAC4] -~w~OK Ma! L'hai voluto te! - -[MAC4_B:MAC4] -~w~Passa dal ~y~negozio di Giovanni Casa~w~ e 'convincilo' a fare un giretto con te. - -[MAC4_B0:MAC4] -~w~Ciao, Toni... come butta? - -[MAC4_B1:MAC4] -~w~Che succede? - -[MAC4_B2:MAC4] -~w~Un gatto ti ha mangiato la lingua? - -[MAC4_B3:MAC4] -~w~Casa, io e te dobbiamo parlare... - -[MAC4_B4:MAC4] -~w~Da qualche parte, in privato. - -[MAC4_C:MAC4] -~w~Non lasciare che ~r~Casa~w~ esca vivo. - -[MAC4_C1:MAC4] -~w~Pagherò il pizzo, Toni! Lo giuro! - -[MAC4_C2:MAC4] -~w~Oh, andiamo Toni! Ti darò tutto quello che vuoi! - -[MAC4_C3:MAC4] -~w~Farò qualsiasi cosa Toni! Qualsiasi cosa! Non farmi del male! - -[MAC4_D1:MAC4] -~w~OK! OK! Mi hai convinto! - -[MAC4_D2:MAC4] -~w~OK! OK! Mi arrendo! Mi arrendo! Non farmi più del male! - -[MAC4_D3:MAC4] -~w~Vieni con me, testa di cazzo! - -[MAC4_E0:MAC4] -~w~Porta Casa alla ~y~segheria. - -[MAC4_E1:MAC4] -~w~Non abbandonare ~b~Casa! - -[MAC4_F0:MAC4] -~w~Quindi... ehm... dove siamo diretti? - -[MAC4_F1:MAC4] -~w~Posso stare tranquillo vero, Toni? - -[MAC4_F2:MAC4] -~w~...ti darò i soldi che vi devo... lo giuro! - -[MAC4_F3:MAC4] -Ho bisogno di un po' di tempo! - -[MAC4_F4:MAC4] -~w~A tua mamma piace ancora la salsiccia piccante? - -[MAC4_F5:MAC4] -Posso dargliene un po', nessun problema! - -[MAC4_G0:MAC4] -~w~Quindi... ehm... di cosa vuoi parlare Toni? - -[MAC4_G1:MAC4] -~w~Dei soldi della protezione? - -[MAC4_G2:MAC4] -~w~Vero? - -[MAC4_G3:MAC4] -~w~...Toni? - -[MAC4_G4:MAC4] -~w~Possiamo parlarne, vero Toni? - -[MAC4_G6:MAC4] -~w~Di questi tempi la gente non parla molto, Toni. - -[MAC4_G7:MAC4] -~w~Fermati lì e chiudi quella cazzo di bocca, Casa. - -[MAC4_G8:MAC4] -~w~OK Toni! Ma io... - -[MAC4_G9:MAC4] -~w~Ehi Toni! Stai attento con quella roba! È l'interruttore per... - -[MAC4_GA:MAC4] -~w~AAARRRGGGHHHHHHHH! - -[MAC4_GB:MAC4] -~w~Vattene immediatamente! - -[MAC4_H:MAC4] -~w~La 'salsiccia di Casa' è sul ~b~furgone~w~ e deve essere consegnata al negozio. - -[MAC4_H1:MAC4] -~w~Fai la consegna al ~y~negozio di Casa. - -[MAC4_H2:MAC4] -~w~Non abbandonare il ~b~furgone~w~! - -[MAC4_H3:MAC4] -~w~Semina i poliziotti! - -[MAC4_I0:MAC4] -~w~Una consegna speciale di carne per la salsiccia? - -[MAC4_I1:MAC4] -~w~Non mi ha avvertito nessuno! - -[MAC4_I2:MAC4] -~w~Wow! Quale zoo abbiamo rapinato questa volta? - -[MAC4_I3:MAC4] -~w~C'è un mucchio di carne qui! - -[MAC4_I4:MAC4] -~w~...Mmmm! Buona! OK, la prendo. - -[MAC4_I6:MAC4] -~w~Se dovesse scoprirlo, andrà fuori di testa! - -[MAC4_I7:MAC4] -~w~E io sarò fottuto! - -[MAC4_X0:MAC4] -~r~Troppo rapido e indolore per essere una vera operazione siciliana! - -[MAC4_X1:MAC4] -~r~Dovevi consegnare il furgone! - -[MAC4_X2:MAC4] -~r~Hai abbandonato Casa! - -[MAC4_E2:MAC4] -~w~Non uscire dalla ~y~segheria! - -[MAC4_I5:MAC4] -~w~È un bene che Casa non sia qui. - -[MAC4_G5:MAC4] -~w~Sì sì, parlare fa bene. - -[MAC4_CN:MAC4] -~w~Chiamate i poliziotti! - -[MAC4_CO:MAC4] -~w~Aiuto! - -[MAC4_CP:MAC4] -~w~Qualcuno mi aiuti! - -[MAC4_CQ:MAC4] -~w~Aiuto! - -[MAC4_CR:MAC4] -~w~Qualcuno mi aiuti! - -[MAC4_CS:MAC4] -~w~Fatemi uscire da qui! - -[MAC4_A7:MAC4] -~w~Casa è un tipo divertente, - -[MAC4_C0:MAC4] -~w~Non possiamo risolvere civilmente la faccenda, Toni? - -[MAC4_1:MAC4] -~w~Raggiungi ~r~Casa~w~ avvicinandoti di soppiatto dietro di ~r~lui. - -{=================================== MISSION TABLE MAC5 ===================================} - -[MAC5_AA:MAC5] -~w~Ma? Ci sei? - -[MAC5_AB:MAC5] -~w~Toni? ...Sono al telefono... - -[MAC5_AC:MAC5] -~w~...sì, sì è qui... OK... OK... lo terrò impegnato... addio. - -[MAC5_AD:MAC5] -~w~Toni? Sei venuto a far arrabbiare di nuovo la tua mamma eh? - -[MAC5_AE:MAC5] -~w~Passi le giornate a fare il duro. - -[MAC5_AF:MAC5] -~w~Non vieni mai a trovarmi e non mi presenti le tue fidanzate. - -[MAC5_AG:MAC5] -~w~Cosa vuoi? Sei dimagrito e così pallido! - -[MAC5_AH:MAC5] -~w~Mi stai uccidendo ricoprendomi di vergogna e disonore. ~w~Beh, non più. - -[MAC5_AI:MAC5] -~w~Da questo momento in poi.... è finita. - -[MAC5_AJ:MAC5] -~w~Ho messo una taglia sulla tua testa Antonio, è l'unica maniera... - -[MAC5_AK:MAC5] -~w~...sei sempre stato un ragazzo disobbediente. - -[MAC5_AL:MAC5] -~w~Cosa? Ma! - -[MAC5_AM:MAC5] -~w~È la cosa migliore figliolo... almeno cerca di morire come un vero uomo! - -[MAC5_AN:MAC5] -~w~Devi finirla di disonorarmi! - -[MAC5_B1:MAC5] -~w~I sicari di mamma sono qui! - -[MAC5_B2:MAC5] -~w~Dimostra a mamma che vali di più dei suoi ~r~sicari.~w~ Uccidili tutti! - -[MAC5_B3:MAC5] -~w~Adesso sono infuriati! ~r~Eliminali! - -[MAC5_B4:MAC5] -~w~I ~r~sicari~w~ sanno che sei qui. Devi allontanarti da Saint Mark's! - -[MAC4_B6:MAC5] -~w~Stanno arrivando altri ~r~sicari~w~! Allontanati da Saint Mark's. Sanno dove sei! - -[MAC4_B7:MAC5] -~w~GRANATA! CORRI! - -[MAC5_C1:MAC5] -~w~Questo li ha messi fuori gioco... ma ora che i killer sono stati pagati, porteranno a termine il loro lavoro a qualunque costo. - -[MAC5_C2:MAC5] -~w~Ricorda... TORNERANNO! - -[HM1:MAC5] -~w~Non hanno intenzione di mollare! Stanno arrivando altri ~r~sicari~w~. Falli fuori! - -[HM2:MAC5] -~w~Attento! Dei ~r~sicari~w~ si stanno avvicinando. Ammazzali! - -[HM3:MAC5] -~w~Stanno arrivando altri ~r~sicari~w~. Spazzali via! - -[HM4:MAC5] -~w~Altri ~r~sicari~w~ in avvicinamento! Eliminali! - -[MAC5_B5:MAC5] -~w~Occupati dei rimanenti ~r~sicari~w~, ma rimani fuori da Saint Mark's! - -{=================================== MISSION TABLE MAR1 ===================================} - -[MAR1M1:MAR1] -~w~Sei in ritardo! Tipico degli uomini. - -[MAR1M2:MAR1] -~w~Voglio andare a fare shopping... e tu farai da autista. - -[MAR1M3:MAR1] -~w~Per cui sii disponibile: oggi voglio divertirmi, a costo di vederti morto! - -[MAR1M4:MAR1] -~w~Devo solo finire di prepararmi.... - -[MAR1M5:MAR1] -~w~Chi se ne frega! Sono bellissima. Andiamo, Toni! - -[MAR1_B:MAR1] -~w~Porta Maria al ~y~negozio. - -[MAR1_D:MAR1] -~w~Aspettami qua, dolcezza... non ci metterò molto... - -[MAR1_D2:MAR1] -~w~Volevo solo vedere com'era alla luce del sole! - -[MAR1_E:MAR1] -~w~Andiamocene da qui! - -[MAR1_E3:MAR1] -~w~Torna indietro e prendi ~b~Maria. - -[MAR1_F:MAR1] -~W~Divertente! Ma ho bisogno di comprare dell'altra roba. - -[MAR1_G:MAR1] -~w~Tieni il motore acceso... - -[MAR1_GB:MAR1] -~w~Eddai Maria! Basta con i furti! - -[MAR1_GC:MAR1] -~w~Ehi, silenzio bambino! Prima c'è stato un piccolo malinteso! - -[MAR1_G2:MAR1] -~w~Te l'ho detto, non ho niente nascosto qua sotto! - -[MAR1_H:MAR1] -~w~Riportami a casa! - -[MAR1_I:MAR1] -~w~Se mi lasci qui, Salvatore ti farà tagliare le palle! - -[MAR1_J:MAR1] -~r~Maria è morta! Oh, che disastro per l'umanità! - -[MAR1_K:MAR1] -~w~Toni, tesoro, oggi mi sono davvero divertita. - -[MAR1_K2:MAR1] -~w~Magari potresti passare più tardi, così potremo divertirci ancora... - -[MAR1_K3:MAR1] -~w~Ci vediamo dopo, carino! - -[MAR1_L:MAR1] -~w~Abbiamo i poliziotti alle calcagna! Liberati di loro! - -[MAR1_L2:MAR1] -~w~Credo tu li abbia seminati! Andiamo a fare shopping! - -[MAR1_M:MAR1] -~w~FERMA, LADRA! - -[MAR1EXT:MAR1] -~w~Riporta Maria al suo ~y~appartamento. - -[MAR1_1:MAR1] -NESSUNO - -[MAR1_D3:MAR1] -~w~Tieni giù le mani! - -[MAR1_G3:MAR1] -~w~Toglimi quelle manacce di dosso! - -[MAR1_E2:MAR1] -~w~Cerca di far perdere le tue tracce! - -{=================================== MISSION TABLE MAR2 ===================================} - -[MAR2_AA:MAR2] -~w~Basta! Uno dei tirapiedi di Salvatore sta per portarmi da te... - -[MAR2_AB:MAR2] -~w~...oh, è davvero un bel tipo - -[MAR2_AC:MAR2] -~w~Forse un po' magro. - -[MAR2_AE:MAR2] -~w~Comunque... voglio qualcosa per far baldoria, ma la dispensa è vuota. - -[MAR2_AF:MAR2] -~w~Hai della neve? Pura? - -[MAR2_AG:MAR2] -~w~Ottimo. Ciao! - -[MAR2_AH:MAR2] -~w~Forza Toni. Devi portarmi in un posto. - -[MAR2_BA:MAR2] -~w~Non hai una macchina? - -[MAR2_BB:MAR2] -~w~Muoviamoci. Il mio pusher non mi aspetterà tutto il giorno. - -[MAR2_3F:MAR2] -~w~Porta Maria all'incontro col suo ~y~pusher. - -[MAR2_BC:MAR2] -~w~Eccoli là. Parcheggia dietro di loro, bravo ragazzino. - -[MAR2_GA:MAR2] -~w~Aspettami qui. - -[MAR2_GB:MAR2] -~w~Non mi piace la situazione. - -[MAR2_GC:MAR2] -~w~Grazie per l'interessamento, ma sono la donna di Salvatore, andrà tutto bene. - -[MAR2_GE:MAR2] -~w~Non vado da nessuna parte con te! Chi diavolo credi di essere? - -[MAR2_GF:MAR2] -~w~Guida! - -[MAR2_GG:MAR2] -~w~Toni! - -[MAR2_GH:MAR2] -~w~Oh merda! - -[MAR2_19:MAR2] -~w~Uccidi i ~r~Sindacco! - -[MAR2_EA:MAR2] -~w~Sei felice? - -[MAR2_EB:MAR2] -~w~Toni Cipriani. Mio eroe! - -[MAR2_EC:MAR2] -~w~Sai cosa? Mi sono divertita abbastanza. Portami a casa, bello. - -[MAR2_HA:MAR2] -~w~Senti, uh, vuoi salire per un... uh... un caffè e un dolcetto? - -[MAR2_HB:MAR2] -~w~La prossima volta. - -[MAR2_HC:MAR2] -~w~Sicuro? Beh, chiamami. - -[MAR2_O2:MAR2] -~w~Riporta Maria al suo ~y~appartamento. - -[MAR2_CA:MAR2] -~w~Forza, Toni! - -[MAR2_CB:MAR2] -~w~Accidenti Toni, muoviti! - -[MAR2_CC:MAR2] -~w~Salvami, Toni! - -[MAR2_CD:MAR2] -~w~Aiuto! - -[MAR2_CE:MAR2] -~w~Muoooooovitiiiii! - -[MAR2_FA:MAR2] -~w~Ora da chi comprerò la roba? - -[MAR2_FB:MAR2] -~w~Sei un idiota, Toni! - -[MAR2_LM:MAR2] -~w~Hai lasciato indietro ~b~Maria~w~. Torna a prenderla. - -[MAR2_MD:MAR2] -~r~Maria è morta. - -[MAR2_WA:MAR2] -~w~Gli ~r~spacciatori~w~ stanno fuggendo! - -[MAR2_DM:MAR2] -~r~Hai perso gli spacciatori! - -[MAR2_DA:MAR2] -~w~Bell'eroe che sei! - -[MAR2_DF:MAR2] -~r~Hai fatto scappare i pusher di Maria! - -[MAR2_18:MAR2] -~w~Per salvare Maria, tampona la ~r~macchina dei Sindacco~w~! - -[MAR2_AD:MAR2] -~w~...certo. - -{=================================== MISSION TABLE MAR3 ===================================} - -[MAR3_A0:MAR3] -~w~Caro Toni, mi sono offerta come primo premio in una gara su strada. - -[MAR3_A1:MAR3] -~w~Se Salvatore lo scopre, saremo entrambi in un mare di guai. - -[MAR3_A2:MAR3] -~w~Per cui ti conviene venire a salvarmi il culo... magari potrebbe diventare tuo! - -[MAR3_A3:MAR3] -~w~Tua per sempre, Maria. - -[MAR3_E0:MAR3] -~w~Forza, Maria. Andiamo. - -[MAR3_E1:MAR3] -~w~Finalmente! Mr. Osso Duro fa la sua mossa. - -[MAR3_E2:MAR3] -~w~Senti, Maria... sei la donna di Salvatore... - -[MAR3_E3:MAR3] -~w~Non sono di nessuno! - -[MAR3_E4:MAR3] -~w~...sei così fottutamente bigotto! - -[MAR3_E5:MAR3] -~w~Forza Wayne! Andiamo a divertirci! - -{=================================== MISSION TABLE MAR4 ===================================} - -[MAR4_B1:MAR4] -~w~Wayne si trova con la sua banda a ~y~Chinatown. - -[MAR4_B2:MAR4] -~w~Raggiungilo e concialo per le feste! - -[MAR4_C1:MAR4] -~r~Wayne~w~ sta fuggendo! Ruba una moto e uccidilo! - -[MAR4_C3:MAR4] -~w~Lo stai perdendo! Non far fuggire ~r~Wayne! - -[MAR4_D1:MAR4] -~w~Sei Wayne? - -[MAR4_D2:MAR4] -~w~Chi vuole saperlo? - -[MAR4_D3:MAR4] -~w~Sono un amico di Maria. - -[MAR4_D4:MAR4] -~w~...picchiare le ragazze ti fa andare su di giri, vero? - -[MAR4_D5:MAR4] -~w~Quella puttana se l'è cercata! - -[MAR4_D6:MAR4] -~w~Davvero? Beh, ora è il tuo turno! - -[MAR4_D7:MAR4] -~w~Prendiamolo! - -[MAR4_T1:MAR4] -~w~Forza, osso duro! - -[MAR4_T2:MAR4] -~w~Sei un perdente! - -[MAR4_T3:MAR4] -~w~Non sai neanche guidare una moto! - -[MAR4_T4:MAR4] -~w~Se ti avvicini abbastanza, potrai baciarmi il culo! - -[MAR4_F1:MAR4] -~r~Hai fatto scappare Wayne! - -[MAR4_P1:MAR4] -~w~Hai preso il coglione! - -[MAR4_H1:MAR4] -Wayne - -[MAR4_C4:MAR4] -~w~Non perdere ~r~Wayne. ~w~Inseguilo e fallo fuori! - -[BIK_01:MAR4] -Cos'hai preso questa volta? - -[BIK_02:MAR4] -Niente. - -[BIK_03:MAR4] -Di cosa ti sei fatta, eh? - -[BIK_04:MAR4] -Eroina? Sedativi? Allucinogeni? Troppa coca? - -[BIK_08:MAR4] -Chi è stato a ridurti così? - -[BIK_09:MAR4] -Nessuno. - -[BIK_10:MAR4] -Chi è stato? - -[BIK_11:MAR4] -Il tipo col quale mi sto vedendo, Wayne. - -[BIK_12:MAR4] -Il tipo col quale ti stai vedendo? Sei la donna del capo! - -[BIK_13:MAR4] -Andiamo Toni, non essere bigotto... malgrado tutto mi fa andare su di giri, hai presente? - -[BIK_14:MAR4] -Una ragazza ne ha bisogno. - -[BIK_15:MAR4] -In più ti rende una belva a letto. - -[BIK_16:MAR4] -Zitta. Perché quella testa di cazzo - -[BIK_17:MAR4] -ti ha conciato così? - -[BIK_18:MAR4] -Gli ho detto che ero innamorata di un altro. - -[BIK_19:MAR4] -Gli ho detto di noi, Toni. - -[BIK_22:MAR4] -Dove si trova questo Wayne? - -[BIK_23:MAR4] -Bazzica in un bar di Chinatown. - -[BIK_24:MAR4] -Ti amo, Toni Cipriani. - -[BIK_06:MAR4] -- Troppo storta o troppo poco carica? ~n~ - Stai zitto, Toni! - -[BIK_05:MAR4] -Carenza di Diceypam? - -[BIK_20:MAR4] -- E poi mi ha colpita! ~n~ - Non c'è nessun noi, cazzo! Mi farai uccidere. - -{=================================== MISSION TABLE MAR5 ===================================} - -[MAR5_EA:MAR5] -~w~Perché mi hai portato qui? - -[MAR5_EB:MAR5] -~w~Non è qui la mia roba... questa è la zona dove bazzicava Wayne. - -[MAR5_EC:MAR5] -~w~...Ora ricordo! Ho lasciato delle 'bombe' in Hepburn Heights! - -[MAR5_ED:MAR5] -~w~Ehi, è quella puttana di Maria! E quello è lo stronzo che ha ucciso Wayne! - -[MAR5_AA:MAR5] -~w~Ho nascosto la 'bomba' dietro al cestino! - -[MAR5_AB:MAR5] -~w~Merda! Hanno portato via il cestino! - -[MAR5_AC:MAR5] -~w~Aspetta! Ora ricordo! Ne ho lasciata una dose nel mio appartamento! - -[MAR5_AD:MAR5] -~w~Sei sicura? - -[MAR5_AE:MAR5] -~w~Certo che sì! - -[MAR5_BA:MAR5] -~w~Volevo dire l'appartamento di Salvatore! Sì, quello di Salvatore! - -[MAR5_BB:MAR5] -~w~Accidenti, Maria! - -[MAR5_FA:MAR5] -~w~Che autista sei? Ci hai messo una vita! Potevo morire di overdose! - -[MAR5_FB:MAR5] -~w~Sono a pezzi! Mi serve un nuovo guardaroba, qualche piccolo ritocco qua è là! - -[MAR5_FC:MAR5] -~w~Tesoro... hai dei soldi da parte? - -[MAR5_FD:MAR5] -~w~Er... non proprio... - -[MAR5_FE:MAR5] -~w~Allora perché ci hai provato con me? Sono la donna di Salvatore! - -[MAR5_FF:MAR5] -~w~Lui è ricco sfondato! Non avvicinarti più a me! - -[MAR5_CA:MAR5] -~w~(groan) - -[MAR5_CB:MAR5] -~w~Oh merda, mi sa che sto per vomitare... - -[MAR5_CC:MAR5] -~w~Sono davvero a pezzi, Toni! - -[MAR5_CD:MAR5] -~w~Non mi sento per niente bene. - -[MAR5_CE:MAR5] -~w~Stai guidando troppo veloce! E troppo lento! - -[MAR5_NC:MAR5] -~b~Maria~w~ può a mala pena camminare. Trova un mezzo! - -[MAR5_ND:MAR5] -~w~Maria può a mala pena camminare. Trova un mezzo! - -[MAR5_DA:MAR5] -~w~Ti facciamo a pezzi, stronzo! - -[MAR5_DB:MAR5] -~w~Tu e la puttana morirete stanotte! - -[MAR5_DC:MAR5] -~w~Hai fatto un grande errore a metterti contro di noi! - -[MAR5_LM:MAR5] -~w~Hai lasciato indietro ~b~Maria~w~. Torna a prenderla. - -[MAR5_O1:MAR5] -~w~Porta Maria al ristorante a ~y~Callahan Point. - -[MAR5_O2:MAR5] -~w~Porta Maria a ~y~Hepburn Heights. - -[MAR5_O3:MAR5] -~w~Porta Maria al ~y~suo appartamento. - -[MAR5_O4:MAR5] -~w~Porta Maria alla ~y~villa di Salvatore. - -[MAR5_O5:MAR5] -~w~Torna a prendere ~b~Maria. - -[MAR5_MD:MAR5] -~r~Maria è morta. - -[MAR5_O6:MAR5] -~w~Carica ~b~Maria~w~. - -[OVER_01:MAR5] -Oh, ehi bello... pensavo non ce l'avresti fatta. - -[OVER_02:MAR5] -Ma che diavolo hai? - -[OVER_03:MAR5] -Oops! Niente dolcezza, va tutto bene. - -[OVER_04:MAR5] -Alzati, stupida puttana. Di cosa ti sei fatta? - -[OVER_05:MAR5] -Fatta? Nulla... - -[OVER_06:MAR5] -Sai, un paio di queste, un paio di quelle, un paio di verdi, un paio di rosse... - -[OVER_07:MAR5] -Oh e queste pasticcone che mi faccio spedire dall'Olanda. - -[OVER_08:MAR5] -Intense come l'inferno! Sto da Dio. - -[OVER_09:MAR5] -No... non è vero. - -[OVER_10:MAR5] -Ho bisogno di una bomba e starò bene! - -[OVER_11:MAR5] -Sono qui da qualche parte. - -[OVER_12:MAR5] -Cos'è una bomba? - -[OVER_13:MAR5] -Una bomba? Non sai cos'è una bomba? - -[OVER_14:MAR5] -Oh Toni, sei così all'antica! - -[OVER_17:MAR5] -Ho bisogno di una bomba, Toni! Morirò! - -[OVER_18:MAR5] -Mi sono già sentita così male, sono in overdose. - -[OVER_19:MAR5] -Portami una bomba, Toni! - -[OVER_20:MAR5] -Le ho lasciate in un ristorante a Callahan Point. - -[OVER_21:MAR5] -Allora andiamo, forza! - -[OVER_15:MAR5] -- Toni, ti amo. ~n~ - Dici cose senza senso. - -{=================================== MISSION TABLE VIC1 ===================================} - -[VIC1I11:VIC1] -~w~Ti ho trovato un posticino dove stare, Toni. - -[VIC1I12:VIC1] -~w~Sembra fatto apposta per te. - -[VIC1I13:VIC1] -~w~Andremo prima là. - -[VIC1I14:VIC1] -~w~Sei molto generoso... - -[VIC1_3:VIC1] -~w~Porta Vincenzo al suo ~y~magazzino. - -[VIC1_4:VIC1] -~w~Torna in ~b~macchina. - -[VIC1_5:VIC1] -~w~Porta Vincenzo al ~y~rifugio. - -[VIC1_6:VIC1] -~w~Cammina sul segnale giallo all'~y~ingresso. - -[VIC1_7:VIC1] -~w~Cammina sull'icona dei vestiti per cambiarti d'abito. - -[VIC1_8:VIC1] -~w~Torna fuori da Vincenzo. - -[VIC1_9:VIC1] -~w~Porta Vincenzo ad ~y~Atlantic Quays. - -[VIC1_9A:VIC1] -~w~Adesso portami a casa. - -[VIC1_10:VIC1] -~w~Sali in ~b~macchina. - -[VIC1_D1:VIC1] -~w~Cazzo Toni! Guidi come una puledra imbizzarrita! - -[VIC1_D2:VIC1] -~w~Attento a questa cazzo di macchina! - -[VIC1_D3:VIC1] -~w~Toni, smettila di mancarmi di rispetto e guida come un vero uomo! - -[VIC1_C1:VIC1] -~w~Eccoci qui, Toni, 'casa dolce casa'. Non male, vero? - -[VIC1_C2:VIC1] -~w~E questo cesso schifoso dovrebbe essere casa mia? - -[VIC1_C3:VIC1] -~w~Oh! Ti si addice molto. - -[VIC1_C4:VIC1] -~w~Stai mancando di rispetto al vecchio Vincenzo. - -[VIC1_C5:VIC1] -~w~Ora, osso duro, porta le tue chiappe di sopra e mettiti dei vestiti decenti. - -[VIC1_C6:VIC1] -~w~Non ho tempo da perdere, perciò muoviti. - -[VIC1_C7:VIC1] -~w~Ehi Toni, gli appartamenti costano cari. - -[VIC1_C8:VIC1] -~w~Ricordati sempre chi paga le bollette da queste parti. - -[VIC1_C9:VIC1] -~w~IO! Babbo Vincenzo! - -[VIC1C10:VIC1] -~w~Quindi, da adesso in poi lavori per me. - -[VIC1C11:VIC1] -~w~Perciò sarà meglio che torni qui il prima possibile. - -[VIC1_F:VIC1] -~r~Vincenzo è morto. - -[HOMS_01:VIC1] -Ehi, eccoci qui... - -[HOMS_02:VIC1] -Ascolta Toni, so che ci hai fatto un favore, - -[HOMS_03:VIC1] -e so anche che sei fuori da molto tempo, - -[HOMS_04:VIC1] -perciò voglio che te la prenda con calma, OK? - -[HOMS_05:VIC1] -Vincenzo si prenderà cura di te. - -[HOMS_06:VIC1] -Se hai bisogno di soldi, chiedili a lui. - -[HOMS_07:VIC1] -Se ti serve un lavoro, Lucky si prenderà cura di te. - -[HOMS_08:VIC1] -Cos'altro può chiedere un membro della famiglia? - -[HOMS_09:VIC1] -Persino mio figlio non viene trattato così bene. - -[HOMS_10:VIC1] -Ma signor Leone, ne è passata di acqua, - -[HOMS_11:VIC1] -voglio dire, ho fatto molto per questa famiglia. - -[HOMS_12:VIC1] -E adesso vi aspettate che prenda gli ordini da questo... questo... questo... - -[HOMS_13:VIC1] -Beh, non mi sembra... giusto. - -[HOMS_14:VIC1] -Toni, so cosa hai fatto e nessuno ti è più riconoscente di me, davvero, - -[HOMS_15:VIC1] -ma l'idea che tu venga qui - -[HOMS_16:VIC1] -e ti metta a discutere i miei ordini è, francamente, - -[HOMS_17:VIC1] -fuori luogo. 'O capisti? - -[HOMS_18:VIC1] -Capisco, capo. - -[HOMS_19:VIC1] -Perciò, quando hai bisogno di qualcosa, senti Vincenzo ad Atlantic Quay. - -[HOMS_20:VIC1] -Si prenderà cura di te, vero Lucky? - -[HOMS_21:VIC1] -Naturalmente capo, tutto quello che vuole. - -[HOMS_22:VIC1] -Bene, possiamo andare adesso. - -{=================================== MISSION TABLE VIC2 ===================================} - -[VIC2M2:VIC2] -Quel pigro bastardo non consegna un soldo da troppo tempo. - -[VIC2M3:VIC2] -Forse ha bisogno di un po' di incoraggiamento per mettersi al lavoro. - -[VIC2M4:VIC2] -Si comporta da stronzo... mi ricorda un po' te. - -[VIC2M5:VIC2] -~w~Cosa stai insinuando? - -[VIC2M6:VIC2] -Non sto INSINUANDO nulla! - -[VIC2M7:VIC2] -Ti sto dicendo di andare là e assicurarti che lo stronzo cominci a incassare qualche fottuto dollaro! - -[VIC2_B:VIC2] -~W~Recupera un veicolo. - -[VIC2OB1:VIC2] -~w~Porta lo spacciatore a ~y~lavoro. - -[VIC2_C:VIC2] -~w~Avrai bisogno di un veicolo per portarlo nella sua zona di competenza! - -[VIC2_D:VIC2] -~w~Vai a prendere lo spacciatore di Vincenzo a ~y~St. Mark's. - -[VIC2_E:VIC2] -~w~Vincenzo mi ha detto che stai facendo lo stronzo e non stai lavorando... - -[VIC2_E2:VIC2] -~w~Ehi amico! Non sono uno stronzo! - -[VIC2_EX:VIC2] -~w~Io... ehm... ho avuto la febbre! - -[VIC2_E3:VIC2] -~w~Tornerò al lavoro domani... o, forse, dopodomani. - -[VIC2_E4:VIC2] -~w~Oh, io credo che ci andrai oggi... che ti piaccia o no! - -[VIC2_F:VIC2] -~w~Ehi! Non lasciarmi qui! Questo è un bruttissimo quartiere, amico! - -[VIC2_F2:VIC2] -~w~Hai lasciato indietro lo ~b~spacciatore di Vincenzo,~w~ torna a prenderlo. - -[VIC2_G:VIC2] -~w~Ascolta amico! L'ho già detto a Vinnie... Chinatown non è più una zona per i Leone! - -[VIC2_G2:VIC2] -~w~Stanno arrivando i Sindacco! Se torno là, sarò un uomo morto! - -[VIC2_G3:VIC2] -~w~Certo... certo... - -[VIC2_G4:VIC2] -~w~Te l'ho detto amico, ci sono i Sindacco a spacciare. - -[VIC2_G5:VIC2] -~w~Non mi sento troppo bene... credo di avere la febbre o qualcosa del genere. - -[VIC2_H:VIC2] -~w~Fermati vicino allo ~b~spacciatore. - -[VIC2_I:VIC2] -~w~Oh cazzo... - -[VIC2_J:VIC2] -~r~Lo spacciatore di Vincenzo è stato massacrato! - -[VIC2_K:VIC2] -~w~Porta lo spacciatore di Vincenzo a ~y~Chinatown. - -[VIC2_1:VIC2] -NESSUNO - -[VIC2M1:VIC2] -C'è un nostro spacciatore che lavora nella zona nord di Chinatown. - -{=================================== MISSION TABLE VIC3 ===================================} - -[VIC3_H1:VIC3] -~w~Tieni premuto~h~ ~k~ ~PDLT~ ~w~per ~h~agganciare un bersaglio~w~ e premi~h~ ~k~ ~PDFW~ ~w~per attaccare! - -[VIC3_H2:VIC3] -~w~Premi~h~ ~k~ ~PDFW~ ~w~per attaccare lo ~h~spacciatore. - -[VIC3O2:VIC3] -~w~Raggiungi ~y~Chinatown. - -[VIC3O3:VIC3] -~w~Elimina lo ~r~spacciatore. - -[VIC3_1:VIC3] -~w~Vincenzo ti ha lasciato un regalo che tornerà utile. - -[VIC3_BA:VIC3] -~w~Stai lontano dal territorio di Leone, stronzo! - -[VIC3_BB:VIC3] -~w~Ne vuoi ancora, faccia da culo? - -[VIC3_BC:VIC3] -~w~Lo spaccio in questa città è dei Leone! Di nessun altro! Sindacco del cazzo, avete capito? - -[VIC3_6:VIC3] -~w~I Sindacco stanno spacciando in tutta Chinatown. - -[VIC3_AA:VIC3] -~w~Vinnie? - -[VIC3_AB:VIC3] -~w~Ma cazzo, Toni! Un minimo di decenza! - -[VIC3_AD:VIC3] -~w~Sono già tutto intasato, l'ultima cosa che voglio è averti tra le palle. - -[VIC3_AE:VIC3] -~w~Comunque, già che ci sei, sappi che non ho ancora visto soldi - -[VIC3_AF:VIC3] -~w~dal mio spacciatore. E sai perché? - -[VIC3_AG:VIC3] -~w~Illuminami. - -[VIC3_AJ:VIC3] -~w~I Sindacco hanno cominciato a spacciare, persino sul territorio dei Leone! - -[VIC3_AK:VIC3] -~w~E tu resti a guardare, Toni? - -[VIC3_AL:VIC3] -~w~Voglio che tu vada a Chinatown! - -[VIC3_AM:VIC3] -~w~Va bene, 'Boss', vado subito. - -[VIC3_AN:VIC3] -~w~Ma merda! Perché non c'è mai la fottuta carta igienica quando serve? - -[VIC3_AH:VIC3] -~w~Perché è morto, idiota! Qualche stronzo l'ha fatto fuori. - -[VIC3O4:VIC3] -~w~I Sindacco stanno spacciando in tutta Chinatown. Insegna loro una lezione che non scorderanno. - -{=================================== MISSION TABLE VIC4 ===================================} - -[VIC4_H2:VIC4] -~w~Segui la ~h~bomboletta spray~w~ sul radar per trovare il ~h~Pay 'n' Spray. - -[VIC4_A2:VIC4] -~w~Posizionati sul ~h~segno~w~ per vedere le armi disponibili. - -[VIC4_A3:VIC4] -~w~Scegli armi differenti usando~h~ ~k~ ~AMMOV~. - -[VIC4_A4:VIC4] -~w~Compra l'arma selezionata premendo~h~ ~k~ ~AMBUY~ ~w~. Assicurati di avere abbastanza soldi! - -[VIC4_A6:VIC4] -~w~Esistono otto tipi di arma. - -[VIC4_A7:VIC4] -~w~Puoi portare solamente un tipo di arma alla volta: un tipo di pistola, un tipo di fucile, eccetera. - -[VIC4_H1:VIC4] -~w~Segui la ~h~pistola~w~ sul radar per raggiungere ~h~Ammu-Nation~w~. - -[VIC4_H3:VIC4] -~w~Segui la ~h~pistola~w~ sul radar per raggiungere ~h~Ammu-Nation~w~. - -[VIC4_AB:VIC4] -~w~Difficile dimenticarselo... - -[VIC4_AD:VIC4] -~w~La cosa interessante è che vuole far parte dei Leone. - -[VIC4_AE:VIC4] -~w~Che crepi! Ha fatto la sua scelta. - -[VIC4_AG:VIC4] -~w~Pronto, cervellone? Merda, Toni... Sal dice sempre che non sei una cima, - -[VIC4_AH:VIC4] -~w~ma non ti credevo così stupido. - -[VIC4_AJ:VIC4] -~w~Sarà il nostro infiltrato speciale. - -[VIC4_AK:VIC4] -~w~Devi fare una cosa sola. - -[VIC4_AL:VIC4] -~w~È intimidito da un certo gorilla dei Sindacco. - -[VIC4_AM:VIC4] -~w~Voglio che tu rimuova quest'ostacolo - -[VIC4_AN:VIC4] -~w~e porti JD dalla nostra parte. 'O capisti? - -[VIC4_2:VIC4] -~w~Raccogli il ~g~cellulare~w~ come prova del tuo lavoro. - -[VIC4_BA:VIC4] -~w~Toni... oh mi hai fornito ottimo materiale per i miei filmini snuff! - -[VIC4_BB:VIC4] -~w~JD? Hai visto tutto? MI STAVI RIPRENDENDO?!? - -[VIC4_BC:VIC4] -~w~Ehm, stavo solo... solo per uso personale! - -[VIC4_BD:VIC4] -~w~Non vedo l'ora di far parte della stessa squadra! - -[VIC4_BE:VIC4] -~w~Non eccitarti troppo. Mi devi ancora dei soldi. - -[VIC4_BF:VIC4] -~w~Prendi quella macchina dei Sindacco come deposito, OK? - -[VIC4_BG:VIC4] -~w~Falla riverniciare, così nessuno la riconoscerà. - -[VIC4_BH:VIC4] -~w~Io mi occuperò del corpo. - -[VIC4_CA:VIC4] -~w~Ehi! Vattene da qui! - -[VIC4_CB:VIC4] -~w~Non c'è niente da vedere per te! - -[VIC4_61:VIC4] -~w~Sali in ~b~macchina. - -[VIC4_62:VIC4] -~w~Guida fino al Pay 'n' Spray. - -[VIC4_DC:VIC4] -~r~JD ti ha detto di riverniciare la macchina! - -[VIC4_PR:VIC4] ---driiin driiin-- - -[VIC4O1A:VIC4] -~w~Entra ~y~dentro. - -[VIC4_O2:VIC4] -~w~Compra una pistola. - -[VIC4_O4:VIC4] -~w~Uccidi il ~r~gorilla dei Sindacco. - -[VIC4_FA:VIC4] -~r~Adesso di certo non ci venderà un'arma! - -[VIC4_O3:VIC4] -~w~Raggiungi il ~y~cantiere edile. - -[VIC4_AC:VIC4] -~w~Attualmente gestisce un bar bordello dei Sindacco... cioè, un club per gentiluomini. - -[VIC4_AA:VIC4] -~w~Ehi, ti ricordi di JD O'Toole? - -[VIC4_AI:VIC4] -~w~Possiamo usare JD per ottenere informazioni sui piani dei Sindacco. - -[HELP42:VIC4] -~w~Mentre stai mirando, premi rapidamente~h~ ~k~ ~FREE1~ ~w~per attivare la ~h~modalità mira libera~w~, poi usa~h~ ~k~ ~FREE2~ ~w~per correggere la mira. - -[VIC4_A1:VIC4] -~w~Fermati al negozio locale di ~y~Ammu-Nation~w~ per comprare una pistola. - -[VIC4_O1:VIC4] -~w~Torna da ~y~Ammu-Nation~w~ e compra una pistola. - -[VIC4_1:VIC4] -~w~Il ~r~pezzo grosso dei Sindacco~w~ è sul retro del cantiere edile. Uccidilo! - -{=================================== MISSION TABLE VIC5 ===================================} - -[VIC5_H:VIC5] -Leone - -[VIC5_I0:VIC5] -~w~Oh, sei tu. - -[VIC5_I1:VIC5] -~w~Sì, proprio così. Sono io. Che mi dici? - -[VIC5_I2:VIC5] -~w~Ti dico quello che so, osso duro. - -[VIC5_I3:VIC5] -~w~Alcuni dei nostri ragazzi hanno mandato a puttane un lavoro per decerebrati. - -[VIC5_I4:VIC5] -~w~Stupidi coglioni, non sanno neanche fare una cazzo di rapina. - -[VIC5_I5:VIC5] -~w~Ora i poliziotti li tengono sotto tiro a Chinatown. - -[VIC5_I6:VIC5] -~w~Coglioni! Perché sono circondato da fottuti idioti? - -[VIC5_I7:VIC5] -~w~Non saprei... affinità elettiva? - -[VIC5_I8:VIC5] -~w~Oh, sei davvero un cabarettista! - -[VIC5_I9:VIC5] -~w~Beh, divertiti a risolvere il problema. - -[VIC5I10:VIC5] -~w~Tocca a te togliere le castagne dal fuoco al posto mio! - -[VIC5I11:VIC5] -~w~Raggiungi quei coglioni e riportali qui il prima possibile! - -[VIC5_F1:VIC5] -~r~Uno dei membri della gang è morto. - -[VIC5_G0:VIC5] -~w~Trova una macchina per quattro persone. - -[VIC5_O1:VIC5] -~w~Vai a salvare gli ~b~uomini di Vincenzo. - -[VIC5_O2:VIC5] -~w~Porta la ~b~gang~w~ fuori di lì! - -[VIC5_O3:VIC5] -~w~Semina la polizia! - -[VIC5_O4:VIC5] -~w~Porta la gang da ~y~Vincenzo. - -[VIC5_O5:VIC5] -~w~Non disperdere la ~b~gang! - -[VIC5_O6:VIC5] -~w~Hai bisogno di una macchina con più posti! - -[VIC5_G1:VIC5] -~w~Adesso cosa facciamo? - -[VIC5_G2:VIC5] -~w~Siamo fottuti! - -[VIC5_G3:VIC5] -~w~Non voglio finire dentro per quello stronzo di Vincenzo! - -[VIC5_G4:VIC5] -~w~Andiamocene via di qua! - -[VIC5_G5:VIC5] -~w~Aspettatemi! - -[VIC5_G6:VIC5] -~w~Parti a razzo, Toni! - -[VIC5_E1:VIC5] -~w~Allora, avete preso i soldi? - -[VIC5_E2:VIC5] -~w~Li abbiamo con noi, boss... - -[VIC5_E3:VIC5] -~w~Ehi, ascolta, non ci potevamo fare niente... - -[VIC5_E4:VIC5] -~w~...non potevate farci niente. - -[VIC5_E5:VIC5] -~w~Le cose sono andate a puttane... poteva andare peggio. - -[VIC5_E6:VIC5] -~w~Cosa dici... la situazione è migliorata o peggiorata? - -[VIC5_E7:VIC5] -~w~Se fate nuovamente una cazzata simile, le cose peggioreranno anche per voi! - -[VIC5_E8:VIC5] -~w~Ora ripulite questa merda e sparite dalla mia vista. - -[VIC5_E9:VIC5] -~w~Devo fare una chiamata. - -[VIC5E10:VIC5] -~w~Lo giuro su Dio, Toni: da quando sei tornato, mi perseguita la sfiga. - -[VIC5E11:VIC5] -~w~Sei un fottuto uccello del malaugurio. - -{=================================== MISSION TABLE VIC6 ===================================} - -[VIC6_BA:VIC6] -~w~Fermo! - -[VIC6_BB:VIC6] -~w~Non muoverti, stronzo! - -[VIC6_P0:VIC6] -~w~Recupera la ~b~macchina di Vincenzo. - -[VIC6_P1:VIC6] -~w~È una trappola della polizia! Scappa con la macchina! - -[VIC6_P2:VIC6] -~w~Semina la polizia! - -[VIC6_P3:VIC6] -~w~Hai seminato i poliziotti! Ora porta la macchina al ~y~garage di Vincenzo. - -[VIC6_P4:VIC6] -~w~Dai una lezione a Vincenzo: distruggi la sua ~b~macchina! - -[VIC6_P5:VIC6] -~w~Torna nella ~b~macchina di Vincenzo! - -[VIC6_P6:VIC6] -~w~Porta la macchina al ~y~garage di Vincenzo. - -[VIC6_PA:VIC6] -~r~Hai distrutto la macchina! - -[VIC6_D1:VIC6] -~w~Sali in ~b~macchina. - -[VIC6_D3:VIC6] -~w~Guida fino al ~y~demolitore. - -[VIC6_D4:VIC6] -~w~Esci e attendi che il demolitore finisca il suo lavoro. - -[VIC6_D5:VIC6] -~r~Dovevi distruggere la macchina! - -[VIC6_AA:VIC6] -~w~Ehi, Toni: come va la macchina? - -[VIC6_AB:VIC6] -~w~Vinnie, figlio di puttana! Hai tentato di incastrarmi! - -[VIC6_AC:VIC6] -~w~Incastrarti? INCASTRARTI? - -[VIC6_AD:VIC6] -~w~Quando sei tornato, non avevi niente! NIENTE! - -[VIC6_AE:VIC6] -~w~E io avrei tentato di incastrarti, bastardo ingrato! - -[VIC6_AF:VIC6] -~w~Con un appartamento e un lavoro! - -[VIC6_AG:VIC6] -~w~E per la mia generosità mi aspetto che tu prenda qualche rischio per me. - -[VIC6_AH:VIC6] -~w~Non faccio beneficenza, capito amico? E non sono il tuo pappone. - -[VIC6_AI:VIC6] -~w~La polizia teneva d'occhio la macchina? Che si fottano! - -[VIC6_AJ:VIC6] -~w~Quando ti dico di fare una cosa, la devi fare. 'O capisti? - -[VIC6_AK:VIC6] -~w~Oh certo, capisco benissimo, Vinnie. - -[VIC6_AL:VIC6] -~w~Capisco che finché lavorerò per te, verrò trattato come una puttana. - -[VIC6_AM:VIC6] -~w~Facevo i soldi quando tu guardavi ancora sotto le gonne delle ragazzine. - -[VIC6_AN:VIC6] -~w~Tieniti il tuo lavoro da puttana, 'boss'. Me ne vado. - -[VIC6_AO:VIC6] -~w~Toni, stai facendo un grande... - -[VIC6_D2:VIC6] -~w~Fermati sul ~y~segno. - -[HOTW_01:VIC6] -Certo mamma, ti chiamerò più tardi. - -[HOTW_28:VIC6] -Vincenzo! - -[HOTW_02:VIC6] -Certo che mi sto comportando bene, naturalmente. - -[HOTW_03:VIC6] -Ti voglio bene. - -[HOTW_04:VIC6] -Ehi Cheryl, dolcezza, dacci un taglio adesso. - -[HOTW_05:VIC6] -Ecco, adesso vattene. - -[HOTW_06:VIC6] -Un piccolo omaggio della casa. - -[HOTW_11:VIC6] -Sei disgustoso, non hai un briciolo di rispetto. - -[HOTW_12:VIC6] -Rispetto? Io lo chiamo 'multi-tasking', Antonio. - -[HOTW_15:VIC6] -Perché se il problema è questo, potrei chiedere a Ray di aiutarti. - -[HOTW_16:VIC6] -Ma vaffanculo. - -[HOTW_17:VIC6] -Ti sto solo stuzzicando, rilassati. - -[HOTW_18:VIC6] -Ascolta bene osso duro, ho bisogno che tu mi faccia un favore. - -[HOTW_19:VIC6] -Ho delle amiche che vanno matte per la bamba; ne ho una macchina piena a Trenton. - -[HOTW_20:VIC6] -Vai a prenderla... poi chiamami. - -[HOTW_21:VIC6] -Chi sono? Il tuo cazzo di autista? Fottiti. - -[HOTW_22:VIC6] -Ehi, ehi, ehi, ehi... - -[HOTW_23:VIC6] -Lo farei da me, ma i federali mi tengono d'occhio. - -[HOTW_24:VIC6] -Sai che ti coprirò le spalle. Fidati. - -[HOTW_25:VIC6] -- Inoltre, ricordati che qui abbiamo una gerarchia. 'O capisti? Ora fai il bravo ragazzo! - -[HOTW_07:VIC6] -- Ehi angelo, chi è che ti vuole bene? ~n~ - Tu, Vinnie. - -[HOTW_09:VIC6] -- Era tua madre al telefono? ~n~ - Certo. - -[HOTW_13:VIC6] -- Ma come, non ti piacerebbe farti risucchiare da una puttana in calore? ~n~ - Cosa? - -{=================================== MISSION TABLE VIC7 ===================================} - -[VIC7_VE:VIC7] -~r~v1,01 - -[VIC7_1:VIC7] -~w~Vinnie, sono arrivato! Dove diavolo sei? Ma che cazzo... - -[VIC7_2:VIC7] -~w~Toni? Come stai? ...Sapevo che avresti chiamato. - -[VIC7_3:VIC7] -~w~Ascolta, sono al porto di Portland. - -[VIC7_3A:VIC7] -~w~Abbiamo un grosso carico in arrivo. Raggiungimi, io sto salendo sulla grossa nave da carico. - -[VIC7_3B:VIC7] -~w~Non lo so Vinnie... ho delle cose da sbrigare. - -[VIC7_3D:VIC7] -~w~Ma d'ora in avanti saremo soci... anzi, più che soci... fratelli! - -[VIC7_3E:VIC7] -~w~Forza, che ne dici? È ciò che vuole Salvatore. - -[VIC7_3F:VIC7] -~w~OK. Per Salvatore. - -[VIC7_3G:VIC7] -~w~Ma se mi prendi ancora per il culo, sei un uomo morto. - -[VIC7_4:VIC7] -~w~Wahaahha! Ti faccio a pezzettini, piccoletto! - -[VIC7_4A:VIC7] -~w~Raggiungi Vincenzo alla ~y~nave da carico. - -[VIC7_5:VIC7] -~w~Muoooooriiiii! - -[VIC7_6:VIC7] -~w~Ahahahahahah! - -[VIC7_7:VIC7] -~w~Hai già fatto a fette quel brutto stronzo? - -[VIC7_8:VIC7] -~w~Mi dispiace deluderti, Vinnie. - -[VIC7_9:VIC7] -~w~Figlio di puttana! Perché non muori e basta? - -[VIC7_10:VIC7] -~w~Non avresti mai dovuto tornare, Toni. - -[VIC710A:VIC7] -~w~Mi sono spezzato la schiena per Salvatore. - -[VIC710B:VIC7] -~w~E ora che sei tornato in città, non fa altro che dire Toni qua e Toni là! - -[VIC7_11:VIC7] -~w~Questa è la mia città, Toni! LA MIA CITTÀ! - -[VIC711A:VIC7] -~w~Non me la porterai via! - -[VIC7_12:VIC7] -~w~Questa me la godrò davvero... - -[VIC7_4B:VIC7] -~w~Il posto sembra deserto. Sali a bordo della ~y~nave. - -[VIC7_13:VIC7] -~w~Raggiungi l'~y~uscita. - -[VIC7_3C:VIC7] -~w~Senti, so di essere stato uno stronzo con te, Toni. Sono davvero dispiaciuto. - -[VIC7HUL:VIC7] -~w~Raggiungi lo ~y~scafo. - -{=================================== MISSION TABLE SALS1 ===================================} - -[SALS1_1:SALS1] -NONE - -[SALS1_6:SALS1] -Uccidi il ~r~sindaco R.C. Hole! - -[SALS1_7:SALS1] -Recupera il ~g~cellulare del sindaco! - -[SALS1_8:SALS1] -~r~Il sindaco ha terminato la sua corsa. - -[SALS1_9:SALS1] -~r~Il sindaco è fuggito. - -[SALS110:SALS1] -Porta il telefono a ~y~Salvatore. - -[SALS111:SALS1] -Getta l'arma o sparo! - -[SALS112:SALS1] -Ti sono addosso! Il ~r~sindaco~w~ sta scappando! - -[SS1_AA:SALS1] -Sì, sono Toni. - -[SS1_AB:SALS1] -Quel bastardo di un sindaco si sta comportando da stronzo, ma io non mi faccio fregare! - -[SS1_AC:SALS1] -Calmati Sal. Vedrò di metterlo fuori gioco per te. - -[SS1_AD:SALS1] -Sei un bravo ragazzo Toni, rendi onore alla memoria di tuo padre. - -[SS1_AE:SALS1] -Ascolta, quel fottuto ciccione di un sindaco tutti i giorni si fa una corsetta nel parco. - -[SS1_AF:SALS1] -Lascialo senza fiato... per sempre! - -[SS1_AG:SALS1] -E recupera il suo cellulare! - -[SS1_AH:SALS1] -Così vedremo con chi parlava. - -[SALS1AA:SALS1] -Sì, sono Toni. - -[SALS1AB:SALS1] -Quel bastardo di un sindaco sta facendo lo stronzo. - -[SALS1AC:SALS1] -Non posso permetterlo! - -[SALS1AD:SALS1] -Rilassati. Lo metterò fuori gioco per te. - -[SALS1AE:SALS1] -Sei un bravo ragazzo Toni. - -[SALS1AF:SALS1] -Quel ciccione bastardo tutti i giorni fa una corsetta nel parco. - -[SALS1AG:SALS1] -Lascialo senza fiato. Per sempre! - -[SALS1AH:SALS1] -Ah sì... e recupera il suo cellulare! - -[SALS1AI:SALS1] -Così vedremo con chi stava parlando... - -[SALS1C1:SALS1] -Metta giù quell'arma, signore! - -[SALS1C2:SALS1] -Fermo o sparo! - -[SALS1C3:SALS1] -Fermo! - -[SALS1C4:SALS1] -Non fare sciocchezze! - -[SALS113:SALS1] -~r~Il telefono del sindaco è stato distrutto. - -[SALS114:SALS1] -Stai attento! Ti spareranno se entri nel parco con un'arma. - -{=================================== MISSION TABLE SALS2 ===================================} - -[SALS2_1:SALS2] -~w~Prendi la ~b~macchina. - -[SALS2_2:SALS2] -~w~Vai al ~y~luogo dell'appuntamento. - -[SALS2_3:SALS2] -~w~Torna in ~b~macchina. - -[SALS2_4:SALS2] -~r~Mickey è stato ucciso! - -[SALS2_5:SALS2] -~r~Uno degli uomini di Salvatore è stato ucciso! - -[SALS2AA:SALS2] -Toni, - -[SALS2AB:SALS2] -alcuni dei ragazzi ti contatteranno più tardi. - -[SALS2AC:SALS2] -Fatti trovare nei paraggi quando arriveranno. - -[SALS2AD:SALS2] -Ciao, Salvatore. - -[SALS2CA:SALS2] -Toni? - -[SALS2CC:SALS2] -Forza sali, guida tu. - -[SALS2CD:SALS2] -Mickey, cosa, ehm, cosa succede? - -[SALS2CE:SALS2] -Forza Cipriani, credi che sia qui per farti saltare le cervella? - -[SALS2BA:SALS2] -Salvatore è laggiù... - -[SALS2BC:SALS2] -Toni, figliolo, - -[SALS2BD:SALS2] -oggi è il giorno del tuo battesimo! - -[SALS2BE:SALS2] -Oh, Salvatore. Signor Leone. - -[SALS2BF:SALS2] -Mamma attendeva questo giorno. - -[SALS2CB:SALS2] -Sali, forza, andiamo a fare un giro. - -[SALS2BB:SALS2] -Madonn' mia, cosa stai aspettando? - -[SALS2AF:SALS2] -Grazie, Toni... mi farò vivo. - -{=================================== MISSION TABLE SALS3 ===================================} - -[SALS3_1:SALS3] -NONE - -[SALS3_2:SALS3] -Danni - -[SALS313:SALS3] -~r~Il consigliere del sindaco è morto! - -[SALS314:SALS3] -~r~Salvatore è morto! - -[SALS3AA:SALS3] -Toni, salta su! - -[SALS3AB:SALS3] -Dove stiamo andando? - -[SALS3AC:SALS3] -Dobbiamo fare due chiacchiere con l'assistente del sindaco a proposito di Franco Forelli. - -[SALS3BA:SALS3] -Ehi, scendete dalla mia barca! - -[SALS3BB:SALS3] -Tu verrai con me. - -[SALS3BC:SALS3] -Non potete farlo! - -[SALS3BD:SALS3] -Sbrighiamoci, i servizi segreti ci staranno osservando! - -[SALS3CA:SALS3] -Toni, attento a quegli uomini armati sulle rocce! - -[SALS3CB:SALS3] -Uomini armati davanti a noi! - -[SALS3CC:SALS3] -Attento a destra, Toni! - -[SALS3CD:SALS3] -A sinistra Toni, a sinistra! - -[SALS3CE:SALS3] -Ci stanno sparando da quel molo! - -[SALS3CF:SALS3] -Merda, i servizi segreti stanno arrivando in elicottero! - -[SALS3DA:SALS3] -Il sindaco non cagava neanche se Franco non glielo diceva! - -[SALS3DB:SALS3] -Nessuno ha manovrato il sindaco! - -[SALS3DC:SALS3] -Aargh! Aspetta, aspetta, hai ragione! - -[SALS3DE:SALS3] -I Siciliani? Perché? - -[SALS3DF:SALS3] -Hanno Franco in pugno e vogliono scatenare una guerra tra le famiglie di Liberty City. - -[SALS3DG:SALS3] -Quando la situazione si sarà calmata, assumeranno il comando. - -[SALS3DH:SALS3] -Toni, ti chiamerò più tardi. - -[SALS3DI:SALS3] -Prima devo scaricare questo stronzo nella baia! - -[SALS3DD:SALS3] -Sono stati quei Siciliani... hanno spinto Franco a farlo. - -{=================================== MISSION TABLE SALS4 ===================================} - -[SALS4_1:SALS4] -NONE - -[SALS4BA:SALS4] -Sì. - -[SALS4BB:SALS4] -Grazie a Dio hai risposto! - -[SALS4BC:SALS4] -Che succede, Sal? - -[SALS4BD:SALS4] -Stavo spiando i Forelli a Fort Staunton quando improvvisamente si è scatenato l'inferno! - -[SALS4BE:SALS4] -I Sindacco hanno dichiarato guerra ai Forelli, - -[SALS4BF:SALS4] -e io sono bloccato qui, nel mezzo di una battaglia! - -[SALS4BG:SALS4] -Arrivo subito. - -[SALS4BH:SALS4] -Porta la mia limousine, è antiproiettile. Ne avremo bisogno! - -[SALS4AA:SALS4] -Toni, andiamocene da qui! - -[SALS4AB:SALS4] -Riportami alla limousine! - -[SALS4AE:SALS4] -Senti, ho un rifugio a Newport... portami là! - -[SALS4AF:SALS4] -Grazie, Toni... mi farò vivo. - -[SAL4_1:SALS4] -Vai a prendere la ~b~limousine di Leone. - -[SAL4_2:SALS4] -~r~Hai distrutto la macchina! - -[SAL4_3:SALS4] -Porta la macchina a ~y~Fort Staunton. - -[SAL4_4:SALS4] -~r~Hai fatto morire Salvatore! - -[SAL4_6:SALS4] -~b~Salvatore~w~ si trova in fondo al viale. - -[SAL4_9:SALS4] -Vai al ~y~garage. - -[SAL4_11:SALS4] -Hai lasciato ~b~Salvatore~w~ indietro! - -[SAL4_12:SALS4] -È bloccato, abbandona qui la limousine e procedi a piedi. - -[SAL4_13:SALS4] -Torna nella ~b~limousine. - -[SAL4_14:SALS4] -Porta Salvatore e la limousine al ~y~garage~w~ a Newport. - -[SAL4_15:SALS4] -Trova ~b~Salvatore! - -[SAL4_16:SALS4] -Porta Salvatore alla ~b~limousine. - -[SAL4_17:SALS4] -Attendi che ~b~Salvatore~w~ salga sulla limousine! - -{=================================== MISSION TABLE SALS5 ===================================} - -[SALS5_1:SALS5] -~w~Premi~h~ ~k~ ~VEACC~ ~w~per prendere il controllo della macchina di Paul Sindacco. - -[SALS5_2:SALS5] -~w~Fai fuori i ~r~Forelli~w~ all'appuntamento prima che Sindacco trovi il sistema di comando. - -[SALS5_3:SALS5] -~r~Paul Sindacco è stato ucciso! - -[SALS5_4:SALS5] -~r~Il furgone di Salvatore è stato distrutto! - -[SALS5_5:SALS5] -~r~Sindacco ha raggiunto l'appuntamento! - -[SALS5_6:SALS5] -~w~Vai al ~b~furgone. - -[SALS5_7:SALS5] -~w~Tempo rimasto - -[SALS5_8:SALS5] -~r~Sindacco ha trovato il sistema di comando! - -[SALS5_9:SALS5] -~w~I comandi satellitari della macchina di Sindacco risponderanno lentamente. - -[SALS510:SALS5] -Danni - -[SALS5AA:SALS5] +[POR1_19] Ehi! -[SALS5AB:SALS5] -Toni, sono io, ho qualcosa per te... +[DESPERA] +Desperado -[SALS5AC:SALS5] -L'adorerai, sarà divertente. +[MOB_99A] +Raggiungi il telefono pubblico vicino al Mall in Washington. -[SALS5AD:SALS5] -Cosa vuoi che faccia, Sal? +[MOB_98A] +Raggiungi il telefono pubblico in Vice Point. -[SALS5AE:SALS5] -C'è un furgone nei paraggi. +[MOB_96A] +Raggiungi il telefono pubblico al terminal dell'aeroporto. -[SALS5AF:SALS5] -Chiamami quando lo troverai. +[MOB_95A] +Raggiungi il telefono pubblico in Little Havana. -[SALS5BA:SALS5] -OK Sal, sono nel furgone. +[BNK1_1] +La posso aiutare, signore? -[SALS5BB:SALS5] -Ottimo. Abbiamo manomesso la macchina di Sindacco. +[BNK1_2] +Un impostore! -[SALS5BC:SALS5] -Quindi cosa vuoi che faccia? +[BNK1_3] +È impazzito! -[SALS5BD:SALS5] -Paulie sta andando a un appuntamento con i Forelli... +[BNK1_4] +Ma chi diavolo sei? -[SALS5BE:SALS5] -nel tentativo di mediare una tregua. +[BNK1_5] +Dov'è il tuo distintivo? -[SALS5BF:SALS5] -Usa l'equipaggiamento nel furgone per prendere il controllo dell'auto di Paulie +[BNK1_6] +Eccoli là! Sparate per uccidere! -[SALS5BG:SALS5] -e manda all'aria l'appuntamento. +[MOB_24A] +Salve: Mr Vercetti? -[SALS5CA:SALS5] -Che diavolo? +[MOB_24B] +Sì. -[SALS5CC:SALS5] -Oddio, aiuto! +[MOB_24C] +Sono Cortez. Eri invitato al mio party. -[SALS5CD:SALS5] -Fuori dai piedi. +[MOB_24D] +Sì, ricordo. -[SALS5CF:SALS5] +[MOB_24E] +Mr. Vercetti, è stato davvero uno sfortunato incidente quello avvenuto al tuo accordo. + +[MOB_24F] +Lo so. + +[MOB_24G] +Sappi che io e la mia gente stiamo facendo il massimo per scoprire cosa è successo. + +[MOB_24H] +Se vuoi parlarne in prima persona, mi troverai sulla mia barca. Buona giornata, senor. + +[BNK2_2] +MIRARE 3-2-1 FUOCO! + +[BNK2_3] +AREA RIPULITA! + +[BNK2_6] +Questo tipo è pazzo! + +[ANGEL] +Angel + +[CUBJET] +Jetmax Cubano + +[SANDKIN] +Sandking + +[POLMAV] +Maverick della polizia + +[BOXVILL] +Boxville + +[BENSON] +Benson + +[HOTRINA] +Hotring Racer + +[HOTRINB] +Hotring Racer + +[BLOODRA] +Bloodring Banger + +[BLOODRB] +Bloodring Banger + +[MAFIACR] +Cruiser della Mafia + +[COP_M2] +'VICE SQUAD' + +[COP_M3] +'BROWN THUNDER' + +[BJM2_20] +~g~Quando finisci il ~w~tempo~g~ o i ~w~colpi~g~, il turno è finito! + +[BNK3_2] +Non intendo guidare per te, per niente, e lo dirò ai miei compagni di terapia. + +[FEM_SL1] +Salvataggio 1 non trovato + +[FEM_SL2] +Salvataggio 2 non trovato + +[FEM_SL3] +Salvataggio 3 non trovato + +[FEM_SL4] +Salvataggio 4 non trovato + +[FEM_SL5] +Salvataggio 5 non trovato + +[FEM_SL6] +Salvataggio 6 non trovato + +[FEM_SL7] +Salvataggio 7 non trovato + +[FEM_SL8] +Salvataggio 8 non trovato + +[FEA_CHA] +Modifica uscita audio in STEREO. Attendere... + +[FEA_CHD] +Attenzione! Modifica uscita audio da STEREO a DTS. Attendere... + +[FEI_SEL] +Seleziona + +[FEI_BAC] +Indietro + +[FEI_RES] +Riprendi + +[FEI_NAV] +Naviga + +[FEI_BTX] +Tasto / - + +[FEI_BTT] +Tasto " - + +[FEI_STA] +Tasto START - + +[FEI_BTD] +; = > < - + +[FEI_STO] +Stop + +[MOB_68A] +Ehi Tommy, ho una sorpresa per te. + +[MOB_68B] +Sono allo studio cinematografico con dei grandi artisti. + +[MOB_68C] +Perché non vieni a farci visita? + +[MOB_68D] +Lo sai che è una buona idea, vero? Ci vediamo. + +[OUTFT1] +Da strada + +[OUTFT2] +Eleganti + +[OUTFT3] +Tuta + +[OUTFT4] +Sportivo + +[OUTFT5] +Havana + +[OUTFT6] +Da poliziotto + +[OUTFT7] +Da rapina + +[OUTFT8] +Casual + +[OUTFT9] +Mr. Vercetti + +[OUTFT10] +Da corsa + +[OUTFT13] +MC Tommy + +[HOTR_07] +Nuovo miglior tempo: ~1~:0~1~ + +[HOTR_08] +Tempo: ~1~:~1~ + +[GEN3_45] +Arriveranno fra pochi minuti: troviamo un buon punto dove appostarci... + +[CAR_AS1] +BENI CONCESSIONARIA ACQUISITI + +[CAR_AS2] +~g~La concessionaria d'ora in poi genererà introiti per un massimo di ~1~$. Ricordati di recuperarli regolarmente. + +[BUYSAVE] +~g~Se non sei in missione, potrai ora salvare la partita da qui gratuitamente. + +[BUYGARG] +~g~Potrai anche depositare i mezzi in questo garage. + +[STRPBUY] +Club Pole Position acquistato: ~1~$ + +[STRP_R3] +Premi il tasto R3 per acquistare il club Pole Position per ~1~$ + +[NBMN_R3] +Premi il tasto R3 per acquistare Elswanko Casa per ~1~$ + +[GA_4] +Le bombe per le macchine costano 1000$ + +[GA_5] +La tua macchina ha già una bomba installata. + +[GA_6] { reVC update } +Parcheggiala, attivala premendo il ~h~~k~~VEHICLE_FIREWEAPON~~w~ e DATTELA A GAMBE! + +[GA_7] { reVC update } +Arma la bomba con il ~h~~k~~VEHICLE_FIREWEAPON~~w~: esploderà non appena qualcuno cercherà di avviarla. + +[GA_6B] { reVC update } +Parcheggiala, attivala premendo il ~h~~k~~VEHICLE_FIREWEAPON~~w~ e DATTELA A GAMBE! + +[GA_7B] { reVC update } +Arma la bomba con il ~h~~k~~VEHICLE_FIREWEAPON~~w~: esploderà non appena qualcuno cercherà di avviarla. + +[MOB_70A] +Tommy, sono io, il Colonnello Cortez. Ascolta senor, credo tu sia una persona capace di risolvere i problemi. + +[MOB_70B] +Mi troverai sulla mia barca. + +[PICK1] +Giubbotto antiproiettile consegnato all'hotel Ocean View! + +[PICK2] +.357 consegnato al nascondiglio! + +[PICK3] +Motosega consegnata al nascondiglio! + +[PICK4] +Lanciafiamme consegnato al nascondiglio! + +[PICK5] +.308 Fucile di precisione consegnato al nascondiglio! + +[PICK6] +Mitragliatore consegnato al nascondiglio! + +[PICK7] +Lanciamissili consegnato al nascondiglio! + +[PICK8] +Sea Sparrow adesso disponibile alla villa! + +[PICK9] +Carro armato adesso disponibile alle caserme! + +[PICK10] +Hunter adesso disponibile alle caserme! + +[HELP41] +o puoi speronarli con il tuo mezzo + +[ICC1_6] +~g~Utilizza il Mr. Whopee per distribuire i prodotti Cherry Poppers per Vice City. + +[ICC1_12] +PROPRIETÀ ACQUISTATA! + +[CLOTH1] +Abiti eleganti consegnati a Rafaels in Ocean Beach. + +[CLOTH2] +Abiti da strada consegnati al nascondiglio. + +[CLOTH3] +Tuta consegnata a Tooled Up nel Mall North Point. + +[CLOTH4] +Abiti sportivi consegnati al club di Golf in Leafs Links. + +[CLOTH5] +Abiti havana consegnati a Little Havana Streetwear in Little Havana. + +[CLOTH6] +Abiti da poliziotto consegnati alla stazione di polizia in Washington Beach. + +[CLOTH7] +Abiti casual consegnati a Gash nel Mall North Point. + +[CLOTH8] +Abiti Mr. Vercetti consegnati a Collar & Cuffs in Ocean Beach. + +[CLOTH9] +Abiti da corsa consegnati a Jocksport in Downtown. + +[CLOTH10] +Abiti da rapina consegnati al club Malibu in Vice Point. + +[RBM1_9] +~g~Recupera della Love Juice dallo spacciatore per i Love Fist! + +[MOB_62A] +Tommy, sono Ricardo Diaz. Ti volevo ringraziare per l'aiuto ai miei uomini. + +[MOB_62B] +Ho chiesto a quel coglione di Cortez e mi ha detto che il vero affare sei tu. Amico, vienimi a trovare. + +[MOB_62C] +Ho bisogno di un tipo come te. Sono circondato da coglioni, + +[MOB_62D] +coglioni dappertutto, davvero. Ti farò diventare ricco. + +[GOAWAY2] +~g~Ritorna quando avrai completato le missioni dei motociclisti. + +[COL2_9] +Idiota di un americano! Ti sei fatto seguire! + +[LOADCOL] +Caricamento... + +[STFT_17] +Tempo migliore in 'Parco divertimenti PCJ' + +[STFT_18] +Tempo migliore in 'Prova del fango' + +[STFT_19] +Tempo migliore in 'Tracciato di prova' + +[NEW_REC] +Nuovo record!!! ~1~ minuti e ~1~ secondi. + +[BMX_HOW] +~g~Fai due giri sul tracciato sterrato, ~y~passando attraverso~g~ i ~y~PUNTI DI CONTROLLO~g~! + +[BMXREW1] +~g~Ogni volta che batti il tuo record precedente per i due giri, + +[BMXREW2] +~g~otterrai una ~y~RICOMPENSA~g~ più cospicua! + +[BMXRAIN] +~g~È come se piovesse... + +[ITBEG] +All'inizio... + +[NBMNBUY] +El Swanko Casa acquistata: ~1~$ + +[LNKVBUY] +Appartamento Links View acquistato: ~1~$ + +[HYCOBUY] +Condominio Hyman acquistato: ~1~$ + +[BUYGARS] +~g~Puoi parcheggiare altri veicoli in questi garage. + +[OCHEBUY] +Appartamento Ocean Heights acquistato: ~1~$ + +[WASHBUY] +1102 Washington Street acquistata: ~1~$ + +[VCPTBUY] +3321 Vice Point acquistata: ~1~$ + +[SKUMBUY] +Skumole Shack acquistato: ~1~$ + +[HELP6_C] +Premi il ~h~~k~~VEHICLE_HANDBRAKE~~w~ per tirare il freno a mano. + +[HELP2_A] +Premi il ~h~~k~~PED_SPRINT~~w~ mentre corri per effettuare uno ~h~scatto~w~. + +[HELP4_A] +Premi il ~h~~k~~VEHICLE_ACCELERATE~~w~ per ~h~accelerare~w~. + +[HELP5_A] +Premi il ~h~~k~~VEHICLE_BRAKE~~w~ per frenare o, se il veicolo è fermo, per inserire la retromarcia. + +[HELP8_A] +Premi il ~h~~k~~PED_SNIPER_ZOOM_IN~~w~ per zoomare col fucile e il ~x~tasto /~w~ per allargare il campo. + +[PBOAT_1] { reVC update } +Premi il ~h~~k~~VEHICLE_FIREWEAPON~~w~ per sparare con i cannoni della barca. + +[SEG3_4] { reVC update } +~g~Puoi raccogliere una bomba avvicinando il Raider telecomandato. Per posizionare la bomba, premi il ~h~~k~~VEHICLE_FIREWEAPON~. + +[RCR1_3] { reVC update } +~g~Se desideri interrompere la missione, premi il ~h~~k~~VEHICLE_FIREWEAPON~~g~ per far esplodere la macchina. + +[HELP32] { reVC update } +Poi spara con il ~h~~k~~VEHICLE_FIREWEAPON~~w~. + +[HELP33] { reVC update } +Poi spara con il ~h~~k~~VEHICLE_FIREWEAPON~~w~. + +[TTUTOR] +Premi il ~h~~k~~TOGGLE_SUBMISSIONS~~w~ per attivare o disattivare le missioni Taxi. + +[TTUTOR2] +Premi il ~h~~k~~TOGGLE_SUBMISSIONS~~w~ per attivare o disattivare le missioni Taxi. + +[FTUTOR] +Premi il ~h~~k~~TOGGLE_SUBMISSIONS~~w~ per attivare o disattivare le missioni Camion dei pompieri. + +[FTUTOR2] +Premi il ~h~~k~~TOGGLE_SUBMISSIONS~~w~ per attivare o disattivare le missioni Camion dei pompieri. + +[CTUTOR] +Premi il ~h~~k~~TOGGLE_SUBMISSIONS~~w~ per attivare o disattivare le missioni Vigilante. + +[CTUTOR2] +Premi il ~h~~k~~TOGGLE_SUBMISSIONS~~w~ per attivare o disattivare le missioni Vigilante. + +[HELP8_B] +Premi il ~h~~k~~PED_SNIPER_ZOOM_IN~~w~ per ~h~zoomare~w~ col fucile e il ~h~~k~~PED_SNIPER_ZOOM_OUT~~w~ per ~h~allargare~w~ il campo. + +[ATUTOR3] +Premi il ~h~~k~~TOGGLE_SUBMISSIONS~~w~ per attivare o disattivare le missioni Infermiere. + +[GUN_H1] +~w~Premi il ~h~~k~~PED_SPRINT~~w~ per comprare. ~w~Premi il ~h~~k~~VEHICLE_ENTER_EXIT~~w~ per uscire. + +[PU_CF3] { reVC update } +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per sostituire l'arma attuale con quella presente in questo slot. + +[PU_CF4] { reVC update } +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per sostituire l'arma attuale con quella presente in questo slot. + +[HELP9_B] +Premi il ~h~~k~~PED_FIREWEAPON~~w~ per sparare con il fucile di precisione. + +[HELP37] +Se non vuoi entrare in un veicolo mentre stai assalendo un guidatore, premi il ~h~~k~~PED_SPRINT~~w~. + +[HELP6_A] +Premi il ~h~~k~~VEHICLE_HANDBRAKE~~w~ per tirare il freno a mano. + +[HELP6_D] +Premi il ~h~~k~~VEHICLE_HANDBRAKE~~w~ per tirare il freno a mano. + +[HELP26] +Premi il ~h~~k~~VEHICLE_ENTER_EXIT~~w~ per entrare o uscire da un veicolo. + +[HELP27] +Premi il ~h~~k~~VEHICLE_TURRETUP~~w~ o ~h~~k~~VEHICLE_TURRETDOWN~~w~ per spostare il peso sulla moto. + +[HELP28] +Premi il ~h~~k~~VEHICLE_TURRETUP~~w~ o ~h~~k~~VEHICLE_TURRETDOWN~~w~ per spostare il peso sulla moto. + +[HELP35] +Premi il ~h~~k~~GO_LEFT~~w~ o la ~h~~k~~GO_RIGHT~~w~ per sterzare. + +[HELP36] +Premi il ~h~~k~~GO_LEFT~~w~ o la ~h~~k~~GO_RIGHT~~w~ per sterzare. + +[HELP42] +Segui il ~q~segnalino rosa~w~ per trovare l'hotel. + +[HELP19] +Cammina sul ~q~segnalino rosa~w~ per continuare. + +[HELP1] +Fermati al centro del ~q~segnalino rosa~w~. + +[HELP12] +Cammina nel centro del ~q~segnalino rosa~w~ per attivare una missione. + +[SEG3_6] +~g~Per colpire con successo un bersaglio, devi sganciare la bomba nell'area con un ~q~segnalino rosa~g~. Puoi posizionare le bombe in un ordine qualsiasi. + +[S_PROMP] +Quando non sei in missione, puoi salvare la partita raccogliendo il bonus ~h~audiocassetta~w~. + +[HELP16] +Passa attraverso la porta principale dell'hotel ~h~Ocean View~w~ per entrare nell'edificio. + +[HELP43] +~g~Raggiungi l'hotel ~h~Ocean View~g~ in Ocean Drive. + +[HELI_F1] +~r~Gara a tappe con l'elicottero annullata! + +[AMMUHLP] +Se hai bisogno di armi, fai un salto ad ~h~Ammu-Nation~w~. Segui il ~h~segnale a forma di pistola~w~ sul radar. + +[HELI_1] +Tappa elicottero Downtown + +[HELI_2] +Tappa elicottero Ocean Beach + +[HELI_3] +Tappa elicottero Vice Point + +[HELI_4] +Tappa elicottero Little Haiti + +[FST_MFR] +Stazione radio preferita + +[FST_LFR] +Stazione radio meno amata + +[FEI_HOL] +Trattieni + +[FEI_ZOO] +Zoom + +[FEI_BTR] +> < - + +[FEI_NA] +N\D + +[MESA] +Mesa Grande + +[STRP_NO] +Non puoi ancora comprare il club a luci rosse, prova più tardi. + +[CHSE] +INSEGUI + +[NBMN_L] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare El Swanko Casa per ~1~$ + +[NBMN_T] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare El Swanko Casa per ~1~$ + +[NBMN_C] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare El Swanko Casa per ~1~$ + +[LNKV_L] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare l'appartamento Links View per ~1~$ + +[LNKV_T] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare l'appartamento Links View per ~1~$ + +[LNKV_C] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare l'appartamento Links View per ~1~$ + +[HYCO_L] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare il condominio Hyman per ~1~$ + +[HYCO_T] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare il condominio Hyman per ~1~$ + +[HYCO_C] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare il condominio Hyman per ~1~$ + +[OCHE_L] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare l'appartamento Ocean Heights per ~1~$ + +[OCHE_T] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare l'appartamento Ocean Heights per ~1~$ + +[OCHE_C] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare l'appartamento Ocean Heights per ~1~$ + +[WASH_L] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare 1102 Washington Street per ~1~$ + +[WASH_T] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare 1102 Washington Street per ~1~$ + +[WASH_C] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare 1102 Washington Street per ~1~$ + +[VCPT_L] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare 3321 Vice Point per ~1~$ + +[VCPT_T] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare 3321 Vice Point per ~1~$ + +[VCPT_C] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare 3321 Vice Point per ~1~$ + +[SKUM_L] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare lo Skumole Shack per ~1~$ + +[SKUM_T] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare lo Skumole Shack per ~1~$ + +[SKUM_C] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare lo Skumole Shack per ~1~$ + +[PRNT_L] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare la tipografia per ~1~$ + +[PRNT_T] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare la tipografia per ~1~$ + +[PRNT_C] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare la tipografia per ~1~$ + +[CAR_L] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare il concessionario per ~1~$ + +[CAR_T] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare il concessionario per ~1~$ + +[CAR_C] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare il concessionario per ~1~$ + +[PORN_L] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare lo studio cinematografico per ~1~$ + +[PORN_T] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare lo studio cinematografico per ~1~$ + +[PORN_C] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare lo studio cinematografico per ~1~$ + +[ICE_L] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare la fabbrica di gelato per ~1~$ + +[ICE_T] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare la fabbrica di gelato per ~1~$ + +[ICE_C] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare la fabbrica di gelato per ~1~$ + +[TAXI_L] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare la compagnia di taxi per ~1~$ + +[TAXI_T] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare la compagnia di taxi per ~1~$ + +[TAXI_C] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare la compagnia di taxi per ~1~$ + +[BANK_L] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare il Malibu per ~1~$ + +[BANK_T] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare il Malibu per ~1~$ + +[BANK_C] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare il Malibu per ~1~$ + +[BOAT_L] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare il cantiere navale per ~1~$ + +[BOAT_T] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare il cantiere navale per ~1~$ + +[BOAT_C] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare il cantiere navale per ~1~$ + +[STRP_L] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare il club Pole Position per ~1~$ + +[STRP_T] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare il club Pole Position per ~1~$ + +[STRP_C] +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare il club Pole Position per ~1~$ + +[STOCK] +~r~scorte esaurite + +[HELP14] +Per trovare l'ufficio dell'avvocato, segui la ~h~L~w~ sul radar. + +[RAMPAGE] +VIOLENZA! + +[RAMP_F] +VIOLENZA FALLITA! + +[RAMP_P] +VIOLENZA COMPIUTA! + +[RAMP_A] +TUTTE LE VIOLENZE COMPIUTE! + +[PAGE_01] +Uccidi ~1~ membri della gang in 2 minuti! + +[PAGE_02] +Distruggi ~1~ veicoli in 2 minuti! + +[PAGE_03] +Uccidi sparando in corsa ~1~ membri della gang in 2 minuti! + +[PAGE_04] +Travolgi ~1~ membri della gang in 2 minuti! + +[PAGE_05] +Fai saltare la testa a ~1~ membri della gang in 2 minuti! + +[SENTXS] +Sentinel XS + +[MAP_LEG] +Legenda + +[VCNMAV] +VCN Maverick + +[LG_01] +Posizione giocatore + +[LG_02] +Avery Carrington + +[LG_03] +Contatto motociclisti + +[LG_04] +Colonnello Cortez + +[LG_05] +Ricardo Diaz + +[LG_06] +Kent Paul + +[LG_07] +Avvocato + +[LG_08] +Phil Cassidy + +[LG_09] +Cantiere navale + +[LG_10] +Club Malibu + +[LG_11] +Cubani + +[LG_12] +Studio cinematografico + +[LG_13] +AmmuNation + +[LG_14] +Haitiani + +[LG_15] +Ferramenta + +[LG_16] +Nascondiglio + +[LG_17] +Fabbrica di gelato + +[LG_18] +Taxi Kaufman + +[LG_19] +Love Fist + +[LG_20] +Tipografia + +[LG_21] +Proprietà + +[LG_22] +Pay 'n' Spray + +[LG_23] +Negozio di vestiario + +[LG_24] +Dimora di Tommy + +[LG_25] +Telefono + +[LG_26] +Stazione radio Wildstyle + +[LG_27] +Stazione radio Flash FM + +[LG_28] +Stazione radio KChat + +[LG_29] +Stazione radio Fever 105 + +[LG_30] +Stazione radio VROck + +[LG_31] +Stazione radio VCPR + +[LG_32] +Stazione radio Espantoso + +[LG_33] +Stazione radio Emotion 98.3 + +[LG_34] +Stazione radio Wave 103 + +[LG_36] +Sun Yard + +[LG_37] +Club a luci rosse + +[MAP_YAH] +TU SEI QUI + +[TAXSHRT] +~g~Puoi utilizzare questo taxi Kaufman per arrivare a destinazione invece di guidare. Ti costerà 9$. + +[FE_MLG] +LEGENDA MAPPA + +[FED_RDR] +RADAR + +[FED_HUD] +INTERFACCIA + +[FED_RDL] +GRANDE + +[FED_RDB] +SOLO SEGNALI + +[FED_HUF] +DISSOLVENZA + +[FEST_HV] +Massimo livello missione Vigilante + +[BRIBE1] +Hai appena raccolto una bustarella della polizia: il tuo livello di sospetto è sceso di una stella. + +[CLOHELP] +Abiti puliti! + +[SUNSHIN] +Sunshine Autos + +[CHERRYP] +Gelateria Cherry Popper + +[KAUFCAB] +Taxi Kaufman + +[BOATYAR] +Cantiere navale + +[WANT_L] +Il tuo livello di sospetto è sospeso: se commetterai un crimine mentre le stelle lampeggiano, il tuo livello di sospetto verrà ripristinato. + +[HOTRNG] +HOTRING + +[BLODRNG] +BLOODRING + +[DIRTRNG] +DIRTRING + +[FEC_ABR] +Accelera, frena o inverti marcia + +[FEI_BTU] +; = - + +[FEI_SCR] +Scorri + +[LG_35] +Destinazione + +[BOAT_AS] +~g~Il cantiere navale d'ora in poi genererà introiti per un massimo di ~1~$. Ricordati di recuperarli regolarmente. + +[BOAT_A2] +CANTIERE NAVALE COMPLETATO + +[BOAT_N] +Tappa Charlie + +[BOAT_P] +~g~Raccogli i pacchi prima dello scadere del tempo. + +[FEI_R1B] +Tasto R1 \ R2 - + +[HELP9_A] +Premi il tasto ~h~~k~~PED_FIREWEAPON~~w~ per sparare con il fucile di precisione. + +[HELP21] +Premi il tasto ~h~~k~~VEHICLE_ENTER_EXIT~~w~ per entrare o uscire da un veicolo. + +[CREAM] +Distribuzione + +[UMBERTO] +Cafe Robina + +[PU_CF1] +Premi il tasto ~h~~k~~PED_ANSWER_PHONE~~w~ per raccogliere quest'arma e sostituirla con qualsiasi altra dello stesso tipo in tuo possesso. + +[FED_RDM] +MAPPA E INDICATORI + +[FEC_ILU] +Sguardo invertito in prima persona : + +[NITRO] +Tutti i taxi adesso hanno il super salto! Premi il pulsante del clacson. + +[RATNG53] +Inaffidabile + +[RATNG54] +Imbarazzante + +[RATNG55] +Hacker + +[RATNG56] +Baro + +[RATNG57] +Bugiardo assoluto + +[STHC_04] +Miglior punteggio con la palla sulla spiaggia + +[STHC_05] +Miglior risultato Hotring + +[STFT_13] +Tempo migliore corsa in elicottero a Downtown + +[STFT_14] +Tempo migliore corsa in elicottero a Ocean Beach + +[STFT_15] +Tempo migliore corsa in elicottero a Vice Point + +[STFT_16] +Tempo migliore corsa in elicottero a Little Haiti + +[STFT_21] +Tempo migliore nell'Hotring + +[STFT_22] +Giro migliore nell'Hotring + +[STFT_20] +Tempo migliore in 'Cone Crazy' + +[HELP44] +Fermati nel ~q~ segnalino rosa. + +[HELP45] +Premi il ~h~~k~~PED_DUCK~~w~ per abbassarti. In questo modo migliorerai la precisione con le armi da fuoco. + +[RCR1_5] +Corsa Bandit radiocomandati + +[RCPL1_7] +Corsa Baron radiocomandati + +[RCH1_11] +Raccolta Raider radiocomandato + +[FEA_CTD] +Attenzione! Questa caratteristica richiede delle periferiche compatibili DTS. Vuoi procedere? + +[FEM_STE] +USA STEREO + +[FEM_UDY] +USA DTS + +[GREET] +Saluti da... + +[LANCE_1] +Ehi bello, guida con più prudenza! + +[LANCE_2] +Ehi, guarda cosa hai combinato! + +[LANCE_3] +Ehi, ma dove stai andando adesso? + +[LANCE_4] +Cosa diavolo stai facendo? + +[LAW4_15] +Più soldi! + +[MERC_5] +Bella machina, Mr. Vercetti. + +[MERC_26] +PIÙ VELOCE, PIÙ VELOCE, PIÙ VELOCE! + +[MERC_27] +Attento Tommy, mi hanno rifatto il naso il mese scorso. + +[MERC_28] +Tommy, guida con attenzione. + +[MERC_29] +Tommy, vai più piano! + +[MERC_30] +Tommy per favore, fai fuori qualcun altro! + +[MERC_31] +Tommy, baby, non farmi fuori! + +[MERC_32] +Tommy, sono felice che hai rubato questa macchina! + +[MERC_40] +Mi sono davvero divertita. + +[MERC_43] +Adios, angioletto. + +[MERC_44] +Continua a lavorarci, capito? + +[MERC_45] +Ciao, bellezza. + +[COL5_17] +Oddio, hanno un elicottero! + +[COL5_18] +Abbatti l'elicottero! + +[COL5_19] +Tommy, abbatti quell'elicottero! + +[COL5_20] +Sta tornando! Distruggi l'elicottero! + +[COL5_21] +Ma guarda quanto è grosso! + +[COL5_22] +Sta tornando di nuovo! + +[FEA_DSM] +Attenzione! Questo salvataggio utilizza il DTS e richiede periferiche compatibili. Scegli se vuoi procedere utilizzando l'uscita DTS o quella STEREO. + +[STFT_23] +Tempo migliore per la tappa Charlie + +[HELP50] +Premi il tasto ~h~~k~~PED_ANSWER_PHONE~~w~ per posizionare la visuale da dietro. + +[HELP51] +Premi il tasto ~h~~k~~PED_ANSWER_PHONE~~w ~ per posizionare la visuale da dietro. + +[HELP52] +Premi il tasto ~h~~k~~PED_ANSWER_PHONE~~w ~ per posizionare la visuale da dietro. + +[HELP53] +Premi il tasto ~h~~k~~PED_CYCLE_WEAPON_LEFT~~w~ o il tasto ~h~~k~~PED_CYCLE_WEAPON_RIGHT~~w~ per passare in rassegna le armi disponibili. + +[HELP46] +Sono disponibili otto diversi tipi di arma. + +[HELP47] +Puoi trasportare una sola arma per tipo alla volta: un tipo di pistola, un tipo di fucile a pompa... + +[HELP54] +~w~Costo: ~1~$ ~r~Comprando quest'arma sostituirai quella in uso. + +[HELP2A2] +Premi il tasto ~h~~k~~PED_SPRINT~~w~ mentre corri per effettuare uno ~h~scatto~w~. + +[HLPSN_A] +Il fucile di precisione ti permette di ingrandire l'immagine e colpire i bersagli con precisione dalla distanza. + +[HLPSN_B] +Tieni premuto il tasto ~h~~k~~PED_LOCK_TARGET~~w~ per ~h~mirare~w~ col fucile di precisione. + +[HLPSN_C] +Tieni premuto il tasto ~h~L1~w~ per ~h~mirare~w~ col fucile di precisione. + +[HLPSN_D] +Premi il tasto ~h~~k~~PED_SNIPER_ZOOM_IN~~w~ per ~h~zoomare~w~ col fucile e il tasto ~h~~k~~PED_SNIPER_ZOOM_OUT~~w~ per ~h~allargare il campo~w~. + +[HLPSN_E] +Premi il tasto ~h~~k~~PED_FIREWEAPON~~w~ per ~h~sparare~w~ col fucile di precisione. + +[HLPSN_F] +Premi il tasto ~h~~k~~PED_FIREWEAPON~~w~ per ~h~sparare~w~ col fucile di precisione. + +[HLPSN_G] +Premi il tasto ~h~~k~~PED_FIREWEAPON~~w~ per ~h~sparare~w~ col fucile di precisione. + +[PLANE_H] +Usa il tasto ~h~~k~~VEHICLE_ACCELERATE~~w~ per accelerare e a sinistra e a destra per curvare. + +[PLANE_4] { reVC update } +{Usa il tasto ~h~~k~~VEHICLE_ACCELERATE~~w~ per accelerare e a sinistra e a destra per curvare.} +Usa la levetta analogica destra per accelerare, premi la levetta analogica sinistra in basso per salire, in alto per scendere e a sinistra e a destra per curvare. + +[HELP55] +Premi il tasto ~h~~k~~PED_FIREWEAPON~~w~ per attaccare lo chef. + +[STPR_8] +Club Pole Position + +[STPR_9] +3321 Vice Point + +[STPR_10] +Appartamento Links View + +[STPR_11] +El Swanko Casa + +[STPR_12] +1102 Washington Street + +[STPR_13] +Appartamento Ocean Heights + +[STPR_14] +Skumole Shack + +[STPR_15] +Condominio Hyman + +[RCCANX] +~r~Aereo radiocomandato annullato. + +[CLT_HL2] +Quando viene raccolto un bonus vestiti, vengono rimosse una o due stelle del livello di sospetto. + +[CRED009] +PROGETTAZIONE MISSIONI + +[CRED359] +LEE JOHNSON + +[CRED360] +HENDRIK LESSER + +[CRED361] +PASQUALE STACCHIOTTI + +[CRED362] +ENRIQUE FERNANDEZ + +[CRED363] +PAUL BYERS + +[CRED364] +MIKE EMENY + +[CRED365] +ROB DUNKIN + +[CRED366] +CHARLIE KINLOCH + +[CRED367] +KEVIN HOBSON + +[CRED368] +JIM CREE + +[MOB_66A] +Tommy, Tommy, Tommy, perché sei tornato qua? + +[MOB_66B] +Te l'avevo detto che non vi volevamo più vedere. + +[MOB_67A] +Tommy, credo che dovresti andartene, capito? + +[MOB_67B] +I ragazzi Haitiani non sono molto felici di te. + +[MOB_18A] +Tommy, sono Paulo, come stai? Bene amico, ascolta: volevo farti una chiamata. + +[MOB_18B] +Ossignore, amico, non crederai mai che razza di strafiga ho appena incontrato. + +[MOB_18C] +Una prostituta forse, passeggiava per Little Havana. + +[MOB_18D] +Ha detto che si chiamava Mercedes o qualcosa del genere. + +[MOB_18E] +Oddio, dovresti proprio vedere questa gnocca. + +[MOB_18F] +Riuscirebbe a succhiare via la mina da una matita. Mi detto che ero il migliore che avesse mai avuto e via dicendo. + +[MOB_18G] +Dovresti farci un giro. Ci vediamo! + +[MOB_72A] +Tommy, sono io, Lance. Tieni la bocca chiusa Tommy, perché non ho tempo da perdere. + +[MOB_72B] +Non mi importa cos'hai da dire. Perché dovrei? Non te ne frega niente di me, non è vero? + +[MOB_72C] +Dovresti fare più attenzione a me. Dovresti darmi la fetta che merito. Lo sai... + +[MOB_72D] +Tommy... senti amico, mi dispiace. È solo che... + +[MOB_72E] +La gente mi ha sempre trattato con accondiscenda, come se fossi un bambino. + +[MOB_72F] +Mio fratello lo farebbe. Per favore, amico, tu non farlo. + +[MOB_72G] +Devo andare. + +[MOB_63A] +Tommy, sono Earnest. Earnest Kelly. + +[MOB_63B] +Come stai? + +[MOB_63C] +Non male. Avrò bisogno di un bastone per camminare, ma dovrei tornare al lavoro ben presto. + +[MOB_63D] +Bene. + +[MOB_63E] +Ho sentito di Lance. Che brutto storno, eh? + +[MOB_63F] +Sì. + +[MOB_63G] +Mai fidarsi di qualcuno che cammina per strada in pigiama. Ecco cosa dico. Sono felice che l'hai fatto fuori. Spero che sia stato doloroso per lui. + +[MOB_63H] +Credo di sì. Non credevo fosse quel genere di persona... + +[MOB_63I] +Tommy, per essere un pazzo violento, sei piuttosto ingenuo. Tornerò presto al lavoro e ti insegnerò un paio di cose sulla vita. Ci sentiamo. + +[MOB_63J] +Fai con calma, Earnest. Abbi cura di te. + +[MOB_16A] +Tommy, sono Paulo, que pasa amigo? + +[MOB_16B] +Che cosa vuoi Paul: non sono interessato a vestiti di marca taroccati. + +[MOB_16C] +Molto divertente, amico, ma lo sai che non tratto merce di seconda classe. Nah, ti ho chiamato per sapere se potevo avere una parte nei tuoi film. + +[MOB_16D] +Quando ero in Inghilterra ho fatto un sacco di cose, sai? Ho attributi più forniti di te, amico. + +[MOB_16E] +Paul, grazie per l'offerta, lo terrò presente. + +[MOB_16F] +Davvero, non scordarti di me dopo tutto quello che ho fatto per te. + +[MOB_16G] +È proprio ciò che sto cercando di dimenticare... + +[MOB_17A] +Tommy Vercetti: come va, Mr. Pezzo Grosso? Ho saputo le tue novità: un vero giocatore in città, eh... + +[MOB_17B] +Paul, sei ubriaco. + +[MOB_17C] +No, idiota. Non sono ubriaco. Solo un paio di bicchierini e qualche pillola: non dormo da un paio di giorni, sai... + +[MOB_17D] +Comunque, niente prediche. Non sono uno stupido. Chi ti ha portato in questa città? Chi? Io, ecco chi. + +[MOB_17F] +Davvero? + +[MOB_17G] +Niente prediche, smettila! Ti ho fatto conoscere la gente giusta, ti ho mostrato che corde tirare. Ho fatto molto per te e questo è il modo con cui mi ringrazi. + +[MOB_17H] +Mi ignori. Non mi aiuti a entrare dopo tutto ciò che ho fatto per te! Cosa credi che sia? Un idiota? + +[MOB_17I] +Paul, sta' buono. Sono stato occupato, non fare l'idiota. + +[MOB_17J] +Non sono un idiota, chiaro? Questo è ciò che hanno detto in riformatorio. Stai forse cercando guai, amico? Beh, stai per trovarli! + +[MOB_17K] +Tommy, amico. Per favore. Sei la mia più grande speranza! Per favore, non ridere di me. + +[MOB_17L] +Paul, cerca di dormire, davvero. + +[MOB_73A] +Tommy, sono Steve. + +[MOB_73B] +Ehi Steve. + +[MOB_73C] +Ehi, ciao genio. Sei uno spettacolo! Anch'io sono uno spettacolo! Ci adorano. Stiamo battendo tutti i record, amico. + +[MOB_73D] +Stiamo ottenendo dei grandi riconoscimenti. Finalmente posso comprare una casa al mio vecchio così se ne starà zitto. + +[MOB_73E] +Eeer, mi sembra perfetto, Steve. + +[MOB_73F] +Perfetto? È meraviglioso! Meraviglioso, MERAVIGLIOSO! Non ha mai creduto in me. Non pensava fossi un artista, ma adesso ce l'ho fatta. + +[MOB_73G] +Sono il miglior direttore sadomaso di tutti i tempi, amico. Volevo solo dirti che è stato un piacere averti incontrato. + +[MOB_73H] +Grazie Steve. + +[MOB_73I] +Ti voglio bene, amico. Non cambiare, capito? + +[MOB_73J] +Capito. Ci sentiamo Steve. + +[BOLLOX] +Premi il tasto ~o~R1~w~ per sganciare una bomba. Premi il tasto ~t~"~w~ per annullare. + +[BRID_OP] +Pericolo uragano terminato: tutti i ponti per la terra ferma sono nuovamente aperti. + +[BRID_CL] +Pericolo uragano: tutti i ponti per la terra ferma sono chiusi. + +[LG_38] +Bersaglio + +[ASSET_C] +POLE POSITION COMPLETATA! + +[ASSET_D] +~g~ Il Club Pole Position generera' un reddito fino ad un massimo di $~1~ al giorno. Ritira il denaro regolarmente! + +[ST_WHEE] +Impennata più lunga (sec) + +[ST_STOP] +Frenata in punta più lunga (sec) + +[ST_2WHE] +Permanenza su 2 ruote più lunga (sec) + +[ST_WHED] +Distanza piu' lunga in impennata (m) + +[ST_STOD] +Distanza piu' lunga in frenata (m) + +[ST_2WHD] +Distanza piu' lunga su 2 ruote (m) + +[OUTFT11] +Tuta da ginnastica + +[OUTFT12] +Frankie + +[RELOAD] +~g~Hai vinto l'abilita' di ricarica veloce! + +[APACHE] +Hunter consegnato all'eliporto di Ocean Beach + +[CRED369] +JOHN MCCARDLE + +[CRED370] +DAVID MURDOCH + +[CRED371] +CHRIS BROWN + +[CRED372] +PAUL GREEN + +[CRED373] +KYLE MILNE + +[CUNTY] +Nuovi vestiti consegnati alla Proprieta' di Vercetti! + +[GOODBOY] +$50 Come Bonus Buon Cittadino! + +[NEWCONT] +Nuovo ~h~Punto di Contatto~w~ disponibile alla Marina di Ocean Beach!! + +[FIRELVL] +Missione Camion dei pompieri livello ~1~ + +[HELP56] +Premi il tasto ~h~~k~~CAMERA_CHANGE_VIEW_ALL_SITUATIONS~~w~ per cambiare la modalità di visuale. + +[HELP57] +Premi il tasto ~h~~k~~CAMERA_CHANGE_VIEW_ALL_SITUATIONS~~w~ per cambiare la modalità di visuale. + +[HELP58] +Mentre prendi la mira, premi il ~h~~k~~PED_CYCLE_TARGET_LEFT~~w~, ~h~~k~~PED_CYCLE_TARGET_RIGHT~~w~ per cambiare bersaglio. + +[HELP59] +Mentre prendi la mira, premi il ~h~~k~~PED_CYCLE_TARGET_LEFT~~w~, ~h~~k~~PED_CYCLE_TARGET_RIGHT~~w~ per cambiare bersaglio. + +[HELP60] +Se premi il tasto ~h~~k~~PED_SPRINT~~w~ mentre assalti una macchina, non entrerai nel veicolo. + +[HELP61] +Adesso hai colpi infiniti e il doppio dell'energia su tutti i veicoli. + +[CRED374] +KEVIN YUN + +[CRED375] +ERICK COBBS + +[CRED376] +RANDY BLAKE + +[CRED377] +BRANDON LIM + +[CRED378] +BRANDON FENOL + +[CRED379] +MICHAEL MANOLE + +[CRED380] +ALETHEIA SIMONSON + +[CRED381] +JOHN JANSEN + +[FEC_LB1] +Guarda + +[FEC_LB2] +indietro + +[FEC_LB3] +Guarda indietro + +[FEC_R3] +(tasto R3) + +[FEC_PED] +Comandi a piedi + +[FEC_VEH] +Comandi in un veicolo + +[FEC_FPR] +Comandi in prima persona + +[FEC_CMM] +Comandi comuni + +[FEC_PWL] +Cammina a sinistra + +[FEC_PWR] +Cammina a destra + +[FEC_PWF] +Cammina in avanti + +[FEC_PWT] +Cammina verso la telecamera + +[FEC_PLB] +Guardati indietro + +[FEC_PFR] +Spara con l'arma + +[FEC_CLE] +Arma precedente + +[FEC_CRI] +Arma successiva + +[FEC_LKT] +Aggancia bersaglio + +[FEC_PJP] +Salto Ped + +[FEC_PSP] +Scatto Ped + +[FEC_PSH] +Sparo Ped + +[FEC_TLF] +Bersaglio successivo a sinistra + +[FEC_TRG] +Bersaglio successivo a destra + +[FEC_CCM] +Centra visuale dietro al giocatore + +[FEC_SZI] +Ingrandimento fucile di precisione + +[FEC_SZO] +Riduzione fucile di precisione + +[FEC_LKL] +Sguardo a sinistra + +[FEC_LRT] +Sguardo a destra + +[FEC_LUP] +Sguardo verso l'alto + +[FEC_LDN] +Sguardo verso il basso + +[FEC_LBH] +Guarda dietro al veicolo + +[FEC_LLF] +Guarda a sinistra del veicolo + +[FEC_LRG] +Guarda a destra del veicolo + +[FEC_HRN] +Clacson + +[FEC_HBR] +Freno a mano + +[FEC_ACL] +Acceleratore + +[FEC_BRK] +Freno + +[FEC_TSM] +Attiva/Disattiva sottomissioni + +[FEC_CRD] +Cambia stazione radio + +[FEC_ENT] +Entra/Esci da un veicolo + +[FEC_WPN] +Spara con l'arma + +[FEC_PAS] +Pausa + +[FEC_FPO] +Attiva/Disattiva visuale di puntamento + +[FEC_SMS] +Mostra/Nascondi puntatore del mouse + +[FEC_CMS] +Cambia la modalità di visuale in qualsiasi situazione + +[FEC_TSS] +Salva un'immagine di gioco + +[FEC_DBG] +Menu debug + +[FEC_TGD] +Pad game/Debug + +[FEC_TDO] +Disabilita visuale debug + +[FEC_IVH] +Inverti mouse orizzontalmente + +[FEC_MSL] +PULSANTE SX + +[FEC_MSM] +PULSANTE CEN + +[FEC_MSR] +PULSANTE DX + +[FEC_QUE] +??? + +[FEC_TWO] +Un massimo di due tasti per comando. + +[FEC_UMS] +Un pulsante del mouse può essere assegnato a un solo comando! + +[FEC_OMS] +Solo un pulsante del mouse. + +[FEC_UJS] +Un pulsante del joystick può essere usato per un solo comando! + +[FEC_OJS] +Solo un pulsante del joystick. + +[FEC_PTL] +Usa Aggancia bersaglio con Arma precedente + +[FEC_PTR] +Usa Aggancia bersaglio con Arma successiva + +[FEC_LBC] +Usa Guarda a sinistra con Guarda a destra + +[FEC_JBO] +JOY ~1~ + +[FEC_WAR] +Attenzione + +[FEC_OKK] +OK + +[FEC_DLF] +Eliminazione fallita. + +[FEC_SVU] +Salvataggio fallito. + +[FEC_LUN] +Caricamento fallito. File corrotto: è necessario eliminarlo. + +[FEC_PAD] +Gamepad + +[FEC_JOY] +Joystick + +[FES_CSA] +Seleziona una skin dalla seguente lista: + +[FET_HRD] +IMPOSTAZIONI PREDEFINITE RIPRISTINATE + +[FET_MST] +STERZO VIA MOUSE + +[FEC_STR] +NUM ASTERISCO + +[FET_MIG] +SINISTRA, DESTRA, ROTELLA PER MODIFICARE + +[FET_CIG] +INDIETRO PER AZZERARE - PULSANTE SX, INVIO PER MODIFICARE + +[FET_DSN] +Skin predefinita.bmp + +[FET_RSO] +RIPRISTINATE IMPOSTAZIONI ORIGINALI + +[FET_RSC] +HARDWARE NON DISPONIBILE - RIPRISTINATE IMPOSTAZIONI ORIGINALI + +[FEA_3DH] +HARDWARE AUDIO + +[FEA_SPK] +CONFIGURAZIONE ALTOPARLANTI + +[FEM_LOD] +DISTANZA VISUALE + +[FEM_VSC] +SINCRONIA FRAME + +[FEM_FRM] +LIMITATORE FRAME + +[FEM_MM] +MENU PRINCIPALE + +[FED_RES] +RISOLUZIONE + +[FET_CTL] +IMPOSTAZIONI DEI COMANDI + +[FET_OPT] +OPZIONI + +[FEC_MSH] +SENSIBILITÀ MOUSE + +[FEC_IVV] +INVERTI MOUSE VERTICALMENTE + +[FET_MTI] +CONFIGURAZIONE COL MOUSE + +[FEC_FNC] +F~1~ + +[FEC_IRT] +INS + +[FEC_DLL] +CANC + +[FEC_HME] +HOME + +[FEC_END] +FINE + +[FEC_PGU] +PAG SU + +[FEC_PGD] +PAG GIÙ + +[FEC_UPA] +SU + +[FEC_DWA] +GIÙ + +[FEC_LFA] +SINISTRA + +[FEC_RFA] +DESTRA + +[FEC_NUM] +NUM + +[FEC_NMN] +NUM~1~ + +[FEC_FWS] +NUM / + +[FEC_PLS] +NUM + + +[FEC_MIN] +NUM - + +[FEC_DOT] +NUM . + +[FEC_NLK] +BLOC NUM + +[FEC_ETR] +INVIO + +[FEC_SLK] +BLOC SCORR + +[FEC_PSB] +PAUSA + +[FEC_BSP] +INDIETRO + +[FEC_TAB] +TAB + +[FEC_CLK] +BLOC MAIUSC + +[FEC_RTN] +RET + +[FEC_LSF] +MAIUSC SX + +[FEC_RSF] +MAIUSC DX + +[FEC_LCT] +CTRL SX + +[FEC_RCT] +CTRL DX + +[FEC_LAL] +ALT SX + +[FEC_RAL] +ALT DX + +[FEC_LWD] +WIN SX + +[FEC_RWD] +WIN DX + +[FEC_WRC] +CLIC WIN + +[FEC_SPC] +BARRA + +[WIN_TTL] +Grand Theft Auto VC + +[WIN_95] +Grand Theft Auto VC non è supportato da Windows 95 + +[WIN_DX] +Grand Theft Auto VC richiede DirectX versione 8.1 o superiore + +[FET_EIG] +IMPOSSIBILE ASSEGNARE UN COMANDO A QUESTA AZIONE + +[FET_DAM] +MODELLAZIONE ACUSTICA DINAMICA + +[FEQ_SRE] +Sei sicuro di voler uscire? Tutti i progressi dall'ultimo salvataggio verranno persi. Vuoi procedere? + +[FEQ_SRW] +Sei sicuro di voler uscire dal gioco? + +[FET_QG] +ESCI DAL GIOCO + +[FEN_STA] +AVVIA LA PARTITA + +[FET_PAU] +MENU PAUSA + +[REPLAY] +REPLAY + +[FEC_ANS] +Azione + +[CVT_MSG] +Conversione texture per prestazioni ottimali con la tua scheda video + +[FEC_SFT] +MAIUSC + +[FEH_VMP] +VEDI MAPPA + +[FES_DEE] +Eliminazione fallita! Prova nuovamente. + +[FES_CMP] +Salvataggio fallito! Prova nuovamente. + +[FESZ_WR] +Salvataggio partita. Un momento... + +[FELD_WR] +Caricamento partita. Un momento... + +[FEDL_WR] +Eliminazione salvataggio. Un momento... + +[PCRESRT] +Avvio nuova partita. Un momento... + +[FET_STI] +Configurazione standard + +[FET_CTI] +Configurazione classica + +[FET_PS] +IMPOSTAZIONE SKIN GIOCATORE + +[FEH_NA] +OPZIONE NON DISPONIBILE + +[FEH_MPH] +MOUSE, FRECCE PER MUOVERSI - PAGSU, PAGGIÙ, ROTELLINA PER LO ZOOM, L - LEGENDA + +[FEA_MP3] +RIPRODUTTORE MP3 + +[NO_PCCD] +Inserisci il CD di GTA Vice City o premi Esc per annullare + +[FEH_SSA] +FRECCE PER MUOVERSI - S PER SALVARE + +[FES_CMI] +ULTIMA MISSIONE COMPLETATA + +[FET_STS] +STATISTICHE SALVATE NEL FILE 'STATS.HTML' + 'STATS.TXT' + +[WIN_VDM] +Memoria video insufficiente per eseguire Grand Theft Auto VC + +[FEC_ERI] +Errore! Uno o più azioni non sono assegnate a nessun tasto o pulsante. Assicurati che a tutte le azioni corrisponda un comando. + +[FEC_TFU] +Torretta + Inclina in su + +[FEC_TFD] +Torretta + Inclina in giù + +[FET_RIG] +SELEZIONA IL NUOVO COMANDO PER QUESTA AZIONE + +[FEA_NM3] +NESSUN FILE MP3 TROVATO + +[FEA_MPB] +INCREMENTO VOLUME MP3 + +[FEA_MUS] +VOLUME MUSICA + +[FEA_SFX] +VOLUME EFFETTI + +[CVT_ERR] +Spazio su disco esaurito; è necessario liberare dello spazio prima di poter procedere. Premi ESC per annullare. + +[FEA_ADP] +RILEVAMENTO AUTOMATICO + +{=================================== MISSION TABLE AMBULAE ===================================} + +[ATUTOR2:AMBULAE] +~g~Conduci i pazienti all'ospedale guidando CON PRUDENZA! Qualsiasi scossone può ucciderli. + +[A_FULL:AMBULAE] +~r~Ambulanza piena! + +[A_FAIL2:AMBULAE] +~r~La tua scarsa sollecitudine è stata fatale al paziente! + +[A_FAIL3:AMBULAE] +~r~Il paziente è morto! + +[A_PASS:AMBULAE] +Salvato! + +[A_COMP2:AMBULAE] +Non ti stancherai mai! + +[A_COMP1:AMBULAE] +Missioni Infermiere completate: ~1~$ + +[A_CANC:AMBULAE] +~r~Missione Infermiere annullata! + +[A_COMP3:AMBULAE] +Missione Infermiere completata! Non ti stancherai mentre corri! + +[ALEVEL:AMBULAE] +Missione Infermiere livello ~1~ + +[A_FAIL1:AMBULAE] +Missione Infermiere terminata. + +[A_SAVES:AMBULAE] +PERSONE SALVATE: ~1~ + +{=================================== MISSION TABLE ASSIN1 ===================================} + +[ASM1_5:ASSIN1] +~r~Ha completato le sue consegne! + +[ASM1_6:ASSIN1] +Consegne rimanenti: + +[ASM1_7:ASSIN1] +~g~Carl Pearson, fattorino di una pizzeria. Uccidilo prima che completi le sue consegne. + +[ASM1_D:ASSIN1] +Mr. Teal, il tuo aiuto nello sradicare gli stranieri è stato inestimabile per il nostro lavoro. + +{=================================== MISSION TABLE ASSIN2 ===================================} + +[ASM2_1:ASSIN2] +~g~Mrs. Dawson lascerà presto la gioielleria in Vice Point. Devi ucciderla. Deve sembrare un incidente d'auto. + +[ASM2_3:ASSIN2] +~g~Sta per esplodere! Allontanati! + +[ASM2_4:ASSIN2] +~r~Hai danneggiato la sua auto, ma lei non è sopra! Adesso non ci entrerà di sicuro! + +[ASM2_5:ASSIN2] +~r~È riuscita a scappare! + +[ASM2_6:ASSIN2] +~r~Sei stato visto troppo vicino alla scena dell'incidente! + +[ASM2_7:ASSIN2] +~g~Non utilizzare armi! Deve sembrare un incidente! Spingila fuori strada! + +[ASM2_8:ASSIN2] +~g~La morte di Mrs. Dawson deve sembrare un incidente. Non utilizzare armi. + +[ASM2_9:ASSIN2] +~g~Avrai bisogno di una vettura per questo lavoro! + +[ASM2_10:ASSIN2] +~g~Quando la sua macchina prende fuoco, allontanati il più possibile dal luogo dell'incidente. + +[ASM2_11:ASSIN2] +Aiuto! + +[ASM2_12:ASSIN2] Qualcuno mi aiuti! -[SALS5CG:SALS5] -La mia auto è posseduta! +[ASM2_13:ASSIN2] +Oddio! -[SALS5CE:SALS5] -Questa macchina sta cercando di uccidermi! +[ASM2_A:ASSIN2] +Complimenti per l'ottimo lavoro, Mr. Teal. Il mio cliente è molto soddisfatto. -[SALS5CB:SALS5] -Ehi, cosa sta succedendo? +[ASM2_2:ASSIN2] +Salute: -{=================================== MISSION TABLE SALS6 ===================================} +{=================================== MISSION TABLE ASSIN3 ===================================} -[SALS601:SALS6] -~w~Sal ti ha lasciato una ~b~barca ~w~al molo sud occidentale: ferma l'informatore. +[ASM3_11:ASSIN3] +TEMPO: -[SALS602:SALS6] -~w~Si sta dirigendo verso la costa. Vai a ~r~prenderlo! +[ASM3_C:ASSIN3] +Una gang europea ha pianificato un furto in banca a Vice City. I miei clienti preferirebbero che il colpo non vada a segno. -[SALS603:SALS6] -L'~r~informatore~w~ sta tornando da Franco Forelli! +[ASM3_D:ASSIN3] +Ogni membro della gang ha un nascondiglio nella città: alcuni hanno dei lavori di copertura, altri sono in vacanza. -[SALS604:SALS6] -~r~L'informatore è riuscito a tornare a Fort Staunton. +[ASM3_E:ASSIN3] +Dettagli e posizione più probabile di ogni bersaglio sono riportati nel nastro sotto al telefono. -[SALS605:SALS6] -~r~È riuscito a fuggire! +[ASM3_14:ASSIN3] +~g~Dick Tanner si trova presso la DBP Security in Ocean Drive. -[SALS606:SALS6] -~r~Sta ~w~scappando a piedi! +[ASM3_15:ASSIN3] +~g~Marcus Hammond e Franco Carter si trovano presso la gioielleria in Vice Point. -[SALS607:SALS6] -~w~Sta scappando con un'~r~auto rubata! +[ASM3_16:ASSIN3] +~g~Nick Kong si trova presso Washington Beach. -[SALS608:SALS6] -~r~Non puoi inseguirlo senza una barca! +[ASM3_18:ASSIN3] +~g~Non avvicinarti troppo, se no il bersaglio potrebbe vederti e sarai costretto a inseguirlo! -[SALS6AA:SALS6] -Pronto. +[ASM3_19:ASSIN3] +~g~Ti ha visto! Fallo fuori! -[SALS6AC:SALS6] -La faida Forelli-Sindacco. +[ASM3_20:ASSIN3] +~g~Ti hanno visto! Falli fuori entrambi! -[SALS6AD:SALS6] -Si sta recando a un incontro con Franco Forelli. +[ASM3_21:ASSIN3] +~r~Non hai ucciso tutti i membri della gang in tempo! -[SALS6AE:SALS6] -È un grosso vantaggio per noi che Franco non sappia nulla, +[ASM3_22:ASSIN3] +~g~Non avvicinarti troppo, se no i bersagli potrebbero vederti e cercare di scappare! -[SALS6AF:SALS6] -e che questa guerra continui. +[ASM3_12:ASSIN3] +~g~Un assortimento di armi è stato lasciato per te nel caso di bisogno. Hai ~h~9 MINUTI~g~ per uccidere tutti i membri della gang. -[SALS6AG:SALS6] -Fai fuori quel chiacchierone. +[ASM3_13:ASSIN3] +~g~Mike Griffin lavora su un cartello pubblicitario in Washington. -[SALS6AH:SALS6] -Sarà fatto, Sal. +[ASM3_17:ASSIN3] +~g~Charlie Dilson è in macchina in Washington. -[SALS6AB:SALS6] -Toni, un informatore ha scoperto che c'è la cosca siciliana dietro la faida Forelli-Sindacco. +{=================================== MISSION TABLE ASSIN4 ===================================} -[SLS6_20:SALS6] -~w~Sta ritornando da Franco Forelli, fallo ~r~fuori~w~! +[ASM4_12:ASSIN4] +Distanza: -[SLS6_21:SALS6] -~w~Fallo ~r~fuori~w~! +[ASM4_15:ASSIN4] +~g~Recupera il fucile di precisione alla tua destra. -{=================================== MISSION TABLE NEDS1 ===================================} +[ASM4_16:ASSIN4] +~g~Osserva la donna sul balcone: scenderà per le scale e chiederà l'ora a un uomo. -[NEDS1_1:NEDS1] -L'FBI sta andando a recuperare dei falsi documenti inerenti il doping di alcune stelle dello sport. +[ASM4_17:ASSIN4] +~g~Solo quando la conversazione avrà termine, dovrai uccidere l'uomo con cui ha parlato ma NON la donna. -[NEDS1_2:NEDS1] -Se i documenti verranno consegnati all'FBI, saranno accusati degli innocenti. +[ASM4_18:ASSIN4] +~g~Una volta eliminato il bersaglio, recupera la sua valigetta e portala ad Ammu-Nation in Downtown. -[NEDS1_3:NEDS1] -Devi recuperare questi documenti e consegnarmeli, li terrò al sicuro io. +[ASM4_19:ASSIN4] +~g~Tieni la distanza dal bersaglio: la barra nella parte superiore destra dello schermo indica quanto gli sei vicino. -[NEDS1_4:NEDS1] -Avrai bisogno di un veicolo dell'FBI. +[ASM4_20:ASSIN4] +~g~Se si riempirà, verrai avvistato. -[NEDS1_5:NEDS1] -C'è stato un tentativo di rapina sull'autostrada. L'FBI è sulla scena del crimine. +[ASM4_21:ASSIN4] +~g~Recupera la valigetta! -[NEDS1_6:NEDS1] -Ruba la loro macchina e raggiungi il luogo dell'incontro prima che sia troppo tardi. +[ASM4_22:ASSIN4] +~g~Porta la valigetta ad Ammu-Nation in Downtown. -[NEDS1_8:NEDS1] -Torna nella macchina dell'~b~FBI! +[ASM4_23:ASSIN4] +~g~Ti ha visto e sta fuggendo! Uccidilo e recupera la valigetta! -[NEDS1_9:NEDS1] -Vai al ~y~luogo dell'incontro. +[ASM4_25:ASSIN4] +~r~Hai ucciso la donna, idiota! -[NEDS111:NEDS1] -Semina la polizia! +[ASM4_26:ASSIN4] +~r~Il bersaglio è salito a bordo del volo! -[NEDS113:NEDS1] -Ecco i documenti, come da accordi... +[ASM4_27:ASSIN4] +~r~Il bersaglio ti ha visto! Avresti dovuto tenerti a distanza! -[NEDS114:NEDS1] -Ma che diavolo... è già arrivato un agente! +[ASM4_28:ASSIN4] +~r~Il bersaglio ti ha visto! Ti ha sentito sparare! -[NEDS115:NEDS1] -Un'altra macchina dell'FBI? Ehi! Sei un impostore! +[ASM4_29:ASSIN4] +~r~Dovevi ucciderlo solo dopo che aveva parlato con la donna! -[NEDS116:NEDS1] -Ferma l'~r~informatore! +[ASM4_A:ASSIN4] +È giunta l'ora di occuparsi di pesci più grossi, Mr Teal. Troverai un fucile tra le foglie alla tua destra. -[NEDS117:NEDS1] -Recupera i ~g~documenti. +[ASM4_B:ASSIN4] +Osserva la donna sul balcone sopra i banchi dei check-in: scenderà per le scale e chiederà l'ora a un uomo. -[NEDS118:NEDS1] -Consegna i documenti al ~y~Liberty Tree. +[ASM4_C:ASSIN4] +Dovrai uccidere questa persona, recuperare la sua valigetta e portarla nella locazione riportata sotto al telefono. -[NEDS119:NEDS1] -~r~La macchina dell'FBI è a pezzi. +{=================================== MISSION TABLE ASSIN5 ===================================} -[NEDS120:NEDS1] -~r~Sei arrivato tardi! L'informatore ha consegnato i documenti all'FBI! +[ASM5_A:ASSIN5] +C'è uno scambio di beni sopra il tetto della fabbrica di gelato Cherry Popper. -[NEDS121:NEDS1] -Ottimo lavoro Toni, il Signore sarà orgoglioso di te. +[ASM5_B:ASSIN5] +Uccidi tutti gli elementi coinvolti, recupera la merce e portala all'eliporto presso l'aeroporto. -[NEDS122:NEDS1] -Mi accerterò che finiscano in buone mani. +[ASM5_C:ASSIN5] +Alla tua sinistra troverai un cancello che porta al retro della fabbrica. -[NEDS123:NEDS1] -Arrivederci. +[ASM5_1:ASSIN5] +~g~Entra nel cortile dietro alla fabbrica di gelato Cherry Popper e apriti la strada fino al luogo dello scambio. -[NEDS124:NEDS1] -~r~Il rapporto è rovinato! +[ASM5_2:ASSIN5] +~g~Recupera la merce e portala all'eliporto presso l'aeroporto. -[NEDS1AA:NEDS1] -Mi perdoni, padre, perché ho peccato... +[ASM5_3:ASSIN5] +~g~Porta la merce all'eliporto presso l'aeroporto! -[NEDS1AB:NEDS1] -Merda, il diavolo gioca sporco quanto te, Antonio. +{=================================== MISSION TABLE BANKJ1 ===================================} -[NEDS1AE:NEDS1] -Un peccatore ha confessato di aver falsificato dei documenti che accusano di doping i migliori atleti della nazione. +[WANTED1:BANKJ1] +~g~Semina i poliziotti per perdere il tuo livello di sospetto. -[NEDS1AF:NEDS1] -Se riuscissi a impedirgli di consegnarli all'FBI, potremmo salvare le carriere di molti innocenti. +[BJM1_A:BANKJ1] +Tommy! Ehi Tommy, guarda qua, è grandioso! Ho fatto installare un minibar! -[NEDS1AG:NEDS1] -Lo consideri già fatto, padre. +[BJM1_B:BANKJ1] +Abbiamo un intero bar al piano di sotto, Ken. -[NEDS1BA:NEDS1] -Sei in anticipo. +[BJM1_C:BANKJ1] +Sì, sì, certo. Beh, ho portato quella lavagna che mi avevi richiesto. -[NEDS1BB:NEDS1] -Ehi, non ti conosco, dov'è John-O? +[BJM1_D:BANKJ1] +Ah, questi sono i benefici della scuola dell'obbligo: l'abilità di seguire le istruzioni. -[NEDS1BC:NEDS1] -John-O? Non è potuto venire. +[BJM1_E:BANKJ1] +Adesso mi serve uno scassinatore. -[NEDS1BD:NEDS1] -Ehi, ma quello è John-O! +[BJM1_F:BANKJ1] +Oh, va bene, beh, fammi pensare... scassinatore, scassinatore, scassinatore... Trovato! Questo tipo ti farà impazzire! -[NEDS1BE:NEDS1] -Dammeli! +[BJM1_G:BANKJ1] +Ahh, nah, quello schmuck. È dentro. -[NEDS1BF:NEDS1] -Vaffanculo! +[BJM1_H:BANKJ1] +Dentro dove? -[NEDS1AD:NEDS1] -Direi che andrò per la seconda... +[BJM1_I:BANKJ1] +In una cella nel quartier generale della polizia in attesa di trasferimento. -[NEDS1AC:NEDS1] -Puoi dire un'Ave Maria oppure andare a fare il lavoro sporco per conto di Dio. +[BJM1_J:BANKJ1] +Credo stia per essere rilasciato sulla parola... -[NEDS1_7:NEDS1] -Vai sulla scena del crimine e ruba una ~b~macchina dell'FBI~w~, poi raggiungi il luogo dell'incontro prima delle ~1~:~1~. +[BJM1_1:BANKJ1] +~g~Fai fuggire Cam Jones dalla custodia della polizia! -[NEDS125:NEDS1] -Vai sulla scena del crimine e ruba una ~b~macchina dell'FBI~w~, poi raggiungi il luogo dell'incontro prima delle 0~1~:~1~. +[BJM1_3:BANKJ1] +~g~Troverai ciò che ti serve nello spogliatoio della stazione. -[NEDS126:NEDS1] -Vai sulla scena del crimine e ruba una ~b~macchina dell'FBI~w~, poi raggiungi il luogo dell'incontro prima delle 0~1~:0~1~. +[BJM1_21:BANKJ1] +~g~La tessera per le celle si trova nel piano superiore della stazione. -[NEDS127:NEDS1] -Vai sulla scena del crimine e ruba una ~b~macchina dell'FBI~w~, poi raggiungi il luogo dell'incontro prima delle ~1~:0~1~. +[BNK1_7:BANKJ1] +Cam Jones? -{=================================== MISSION TABLE NEDS2 ===================================} +[BNK1_8:BANKJ1] +Ti sto facendo scappare! -[NEDS2_1:NEDS2] -NONE +[BNK1_10:BANKJ1] +Sì, sono io... -[NEDS2AA:NEDS2] -Mi perdoni, padre, perché ho peccato... +[BNK1_11:BANKJ1] +Come vuoi! -[NEDS2AB:NEDS2] -Merda, Toni, cos'hai combinato ancora? +[BNK1_13:BANKJ1] +Devo fare un lavoro e tu sarai il mio scassinatore. -[NEDS2AC:NEDS2] -Ehi padre, moderi il linguaggio! +[BNK1_14:BANKJ1] +Sempre meglio che restare col culo in galera! -[NEDS2AD:NEDS2] -Hai ragione, Ave Maria piena di qualche cosa. +[BJM1_22:BANKJ1] +~g~Riporta Cam a casa sua! -[NEDS2AE:NEDS2] -Un'anima ribelle ha confessato di aver rubato dei diamanti. +[BJM1_23:BANKJ1] +~g~Prima devi recuperare la tessera! -[NEDS2AF:NEDS2] -Aiuta questo pellegrino nel cammino verso la redenzione: recupera il malloppo e io mi occuperò di restituire i diamanti... +[BNK1_12:BANKJ1] +Fai perdere le tracce e riportami a casa! -[NB2_2:NEDS2] -Recupera la ~g~valigetta~w~ e uccidi tutti i membri della gang. +[BJM1_20:BANKJ1] +Metti via l'arma o ne pagherai le conseguenze! -[NB2_3:NEDS2] -Consegna la valigetta agli uffici del ~y~Liberty Tree. +[BJM1_5:BANKJ1] +Solo personale autorizzato oltre a questo punto! -[NB2_4:NEDS2] -Recupera la ~g~valigetta! +[BJM1_2:BANKJ1] +~r~Dovevi far fuggire Cam, non farlo morire! -[NB2_1:NEDS2] -Questa è una trappola! +[BJM1_4:BANKJ1] +È armato! Uccidetelo! -[NB2_6:NEDS2] -Uccidi tutte le ~r~guardie! +{=================================== MISSION TABLE BANKJ2 ===================================} -[NB2_7:NEDS2] -Distruggi l'~r~elicottero! +[BJM2_A:BANKJ2] +Abbiamo bisogno di un tiratore. Ne conosci uno? -[NB2_5:NEDS2] -Elimina l'~r~elicottero~w~ e le ~r~guardie~w~, e recupera la ~g~valigetta. +[BJM2_B:BANKJ2] +Ehi Tommy, Tommy, Tommy, questa roba ti tiene in forma, amico. -{=================================== MISSION TABLE NEDS3 ===================================} +[BJM2_C:BANKJ2] +WoooOOOooo! -[NEDS3AA:NEDS3] -Mi perdoni, padre, perché ho peccato... +[BJM2_D:BANKJ2] +Potrei essere io il tuo tiratore! Spara! Spara! -[NEDS3AB:NEDS3] -Toni, figliolo, in confronto ai degenerati di questa città, tu sei un santo! +[BJM2_E:BANKJ2] +Non sei un tiratore, sei un idiota. -[NEDS3AC:NEDS3] -Le loro macchine scaricano le scoregge del diavolo nei polmoni dei nostri bambini! Stanno insozzando il paradiso! +[BJM2_F:BANKJ2] +Fatti un drink e sta zitto. -[NEDS3AD:NEDS3] -Va', mostra a questi peccatori il loro errore! +[BJM2_G:BANKJ2] +Ehi, via dai miei piedi! Ye ye ye ow ow. -[NEDS3_1:NEDS3] -Guida l'autopompa in giro per la città e scatena il caos, tamponando le auto e provocando incidenti. +[BJM2_H:BANKJ2] +Cam, cosa mi dici? -[NEDS3_2:NEDS3] -~w~Ruba l'~b~autopompa. +[BJM2_I:BANKJ2] +Beh, il miglior tiratore in città è un tipo chiamato Cassidy. -[NEDS3_3:NEDS3] -~w~Hai ~1~ secondi per tornare all'~b~autopompa. +[BJM2_J:BANKJ2] +Davvero? -[NEDS3_4:NEDS3] -Valutazione +[BJM2_K:BANKJ2] +Sì. Un militare, o per lo meno crede di esserlo. -[NEDS3_5:NEDS3] -Adesso scatena il caos, provoca il maggior numero possibile di incidenti e collisioni! +[BJM2_L:BANKJ2] +Non credo sia mai stato nell'esercito, ma sicuramente sa come tenere in mano un'arma. -[NEDS3_6:NEDS3] -Pedone investito! +[BJM2_M:BANKJ2] +Lo troverai di sicuro al poligono di tiro. -[NEDS3_7:NEDS3] -Veicolo affondato! +[BJM2_2A:BANKJ2] +Sei Phil Cassidy? -[NEDS3_8:NEDS3] -Veicolo distrutto! +[BJM2_2B:BANKJ2] +Perché? -[NEDS3_9:NEDS3] -Veicolo capottato! +[BJM2_2C:BANKJ2] +Sto cercando un uomo che sappia come sparare. Da quello che vedo, non sono molto convinto... -[NEDS310:NEDS3] -~r~L'autopompa è stata distrutta. +[BJM2_2D:BANKJ2] +Figliolo, potrei colpire una mosca sulla tua testa a 30 metri di distanza. -[NEDS311:NEDS3] -Rotazione di 360°! +[BJM2_2E:BANKJ2] +Davvero? -[NEDS312:NEDS3] -Rotazione di 720°! +[BJM2_2F:BANKJ2] +Certo. Ho fatto pratica nell'esercito. -[NEDS313:NEDS3] -Rotazione di 1080°! +[BJM2_2G:BANKJ2] +Lo sparo alla mosca è così popolare nell'esercito? Per fortuna non pago le tasse. -[NEDS314:NEDS3] -~r~Hai abbandonato l'autopompa. +[BJM2_2H:BANKJ2] +Stai cercando di fare lo spiritoso? -[NEDS315:NEDS3] -Veicolo ribaltato! +[BJM2_2I:BANKJ2] +Ah ah ah ah ah! -[NEDS316:NEDS3] -Tre incidenti consecutivi! +[BJM2_2J:BANKJ2] +Spariamo. -[NEDS317:NEDS3] -Quattro incidenti consecutivi! +[BJM2_1:BANKJ2] +~g~Raggiungi Ammu-Nation in Downtown e parla con Phil Cassidy. -[NEDS318:NEDS3] -Cinque incidenti consecutivi! +[BJM2_4:BANKJ2] +PUNTEGGIO PRIMO TURNO: ~1~ -[NEDS319:NEDS3] -Bonus tamponamento estremo! +[BJM2_6:BANKJ2] +PUNTEGGIO SECONDO TURNO: ~1~ -[NEDS320:NEDS3] -~r~Non hai ottenuto una valutazione sufficiente in tempo. +[BJM2_7:BANKJ2] +PUNTEGGIO TOTALE: ~1~ -[NEDS321:NEDS3] -Bonus disarcionamento! +[BJM2_9:BANKJ2] +~G~Raggiungi il punto di partenza del secondo turno. -[NEDS322:NEDS3] -Bonus disarcionamento e morte! +[BJM2_11:BANKJ2] +~r~Phil è morto! -[NEDS323:NEDS3] -Bonus volo! +[BJM2_12:BANKJ2] +~r~Uno dei tiratori è morto! -[NEDS324:NEDS3] -Bonus volo estremo! +[BJM2_14:BANKJ2] +~g~Raggiungi la prossima area! -[NEDS325:NEDS3] -~w~Hai 0 secondi per tornare all'~b~autopompa. +[BJM2_17:BANKJ2] +~g~Vai a parlare con Phil. -[NEDS326:NEDS3] -Congratulazioni! Ce l'hai fatta risparmiando ~1~ secondi. +[BJM2_24:BANKJ2] +~g~Il bersaglio più vicino vale un punto. -[NEDS327:NEDS3] -~w~Ora distruggi l'~r~autopompa.~w~ Non lasciare nessuna prova. +[BJM2_25:BANKJ2] +~g~Il bersaglio centrale vale due punti. -[NEDS328:NEDS3] -I punti bonus si conquistano causando incidenti spettacolari, oppure ribaltando, capottando o distruggendo altri veicoli. +[BJM2_27:BANKJ2] +~g~In questo turno, tutti i bersagli valgono un punto. -[NEDS329:NEDS3] -Veicolo capottato x ~1~ +[BNK2_4:BANKJ2] +Hoooeee! -[NEDS330:NEDS3] -Veicolo ribaltato x ~1~ +[BNK2_5:BANKJ2] +Non riusciresti a colpire neanche un elefante! -[NEDS332:NEDS3] -~w~Hai 1 secondo per tornare all'~b~autopompa. +[BNK2_7:BANKJ2] +Fammi un favore, aiutami a mettere a segno un colpo. -[NEDS333:NEDS3] -Congratulazioni! NUOVO MIGLIOR TEMPO con ~1~ secondi rimasti. +[BNK2_8:BANKJ2] +Figliolo, da come hai sparato, se mi chiedessi di sposarti direi di sì. -[NEDS334:NEDS3] -~w~Ora distruggi l'autopompa. Non lasciare nessuna prova. +[BNK2_9A:BANKJ2] +Figliolo, ficcati la tua parlata e le tue grandi idee là dove non batte il sole. Non sai sparare per niente. -[NEDS335:NEDS3] -Rotazione di 180°! +[BNK2_9B:BANKJ2] +Non sai sparare per niente. -[NEDS337:NEDS3] -Guida l'autopompa in giro per la città e scatena il caos, tamponando le auto e provocando incidenti prima delle ~1~:~1~. +[BJM2_28:BANKJ2] +PUNTEGGIO TERZO TURNO: ~1~ -[NEDS338:NEDS3] -Guida l'autopompa in giro per la città e scatena il caos, tamponando le auto e provocando incidenti prima delle ~1~:0~1~. +[BJM2_26:BANKJ2] +~g~Il bersaglio più lontano vale tre punti. -[NEDS339:NEDS3] -Guida l'autopompa in giro per la città e scatena il caos, tamponando le auto e provocando incidenti prima delle 0~1~:~1~. +[BNK2_1:BANKJ2] +MUNIZIONI VERE -[NEDS340:NEDS3] -Guida l'autopompa in giro per la città e scatena il caos, tamponando le auto e provocando incidenti prima delle 0~1~:0~1~. +[RANGE_1:BANKJ2] +PUNTEGGIO PER COLPO: ~1~ -[NEDS341:NEDS3] -Causa il maggior numero di tamponamenti e incidenti prima delle ~1~:~1~. +[BJM2_2:BANKJ2] +~g~Per interrompere il turno, premi il ~h~~k~~PED_JUMPING~~g~. -[NEDS342:NEDS3] -Causa il maggior numero di tamponamenti e incidenti prima delle ~1~:0~1~. +[BJM2_N:BANKJ2] +Rilassati. -[NEDS343:NEDS3] -Causa il maggior numero di tamponamenti e incidenti prima delle 0~1~:~1~. +{=================================== MISSION TABLE BANKJ3 ===================================} -[NEDS344:NEDS3] -Causa il maggior numero di tamponamenti e incidenti prima delle 0~1~:0~1~. +[BJM3_A:BANKJ3] +Le cose stanno iniziando a prendere forma. -[NEDS331:NEDS3] -Causa il maggior numero di tamponamenti e incidenti! +[BJM3_B:BANKJ3] +Qual è il piano Tommy? Que pasa, amigo? -{=================================== MISSION TABLE NEDS4 ===================================} +[BJM3_C:BANKJ3] +La tua parte consiste nel continuare a fare l'idiota. Comunque, adesso abbiamo bisogno di un pilota. -[NEDS4_1:NEDS4] -NONE +[BJM3_D:BANKJ3] +Tommy, lo farò io. Io so guidare bene. -[NEDS4_2:NEDS4] -~w~Le tre celebrità si stanno dirigendo verso una stazione radio del centro per un'intervista per la prima di stasera. +[BJM3_E:BANKJ3] +Ti serve Hilary, capo. Di certo non un sapientone avvocato del cazzo. -[NEDS4_3:NEDS4] -~w~L'attrice Faith W sta arrivando con il suo elicottero privato dall'aeroporto Francis. +[BJM3_F:BANKJ3] +Hilary è la persona giusta. Non troverai nessuno capace di guidare così veloce. Gli posso fare una chiamata. -[NEDS4_4:NEDS4] -~w~Il gangster diventato attore, DB-P, arriverà in barca da Portland. +[BJM3_G:BANKJ3] +Ehi Hil, sono Phil. Come butta? No, lascia stare, ne parliamo un'altra volta. Mi faresti un favore? -[NEDS4_5:NEDS4] -~w~Il vecchio attore alcolizzato Black Lightman uscirà dal centro di riabilitazione e arriverà in limousine. +[BJM3_H:BANKJ3] +Ho qui un tipo del nord... No, no, non credo abbia fatto il servizio militare, ma ha bisogno di un guidatore. -[NEDS4_8:NEDS4] -~w~Faith è morta. +[BJM3_I:BANKJ3] +Per un po' di azione. OK, capisco. -[NEDS4_9:NEDS4] -~w~DB-P è morto. +[BJM3_J:BANKJ3] +Che cosa ha detto? -[NEDS410:NEDS4] -~w~Black Lightman è morto. +[BJM3_K:BANKJ3] +Beh, ci sta, nessun problema. Beh, un piccolo problema c'è: ha subito uno shock da abbandono. -[NEDS411:NEDS4] -~w~Hai eliminato le tre celebrità. Torna alla ~y~chiesa~w~ e dillo al padre. +[BJM3_L:BANKJ3] +Sembra non voglia lavorare con nessuno che non sia capace di batterlo. Qualcosa che ha a che fare con la sua vecchia. -[NEDS412:NEDS4] -~r~Faith è arrivata alla radio! +[BJM3_M:BANKJ3] +Comunque, vuole prima sfidarti in una corsa, ha detto che ci aspettava fuori... -[NEDS413:NEDS4] -~r~DB-P è arrivato alla radio! +[BJM3_2A:BANKJ3] +Sei Tommy? Beh, certo che sei Tommy, cioè... -[NEDS414:NEDS4] -~r~Black Lightman è arrivato alla radio! +[BJM3_2B:BANKJ3] +Per quale altro motivo qualcuno vorrebbe parlare con me? -[NEDS415:NEDS4] -~w~Salirà su una patriot antiproiettile. +[BJM3_2C:BANKJ3] +OK, vedila in questo modo... -[NEDS417:NEDS4] -~w~La patriot è antiproiettile. +[BJM3_2D:BANKJ3] +Io guiderò SE, e solo SE, tu sai guidare come si deve. -[NEDS418:NEDS4] -~w~Attenzione alla guardia del corpo. +[BJM3_2E:BANKJ3] +Lasciami solo... e non te lo perdonerò mai. -[NEDS421:NEDS4] -~w~Il negozio d'armi di Phil Cassidy è indicato da una bandiera sul radar. +[BJM3_2:BANKJ3] +~r~Hilary è morto! -[NEDS4AA:NEDS4] -Mi perdoni padre, perché ho peccato... di nuovo. +[BJM3_4:BANKJ3] +~g~Hai bisogno di una vettura per partecipare! -[NEDS4AB:NEDS4] -E ancora una volta verrai perdonato, figliolo. +[BNK3_1:BANKJ3] +OK. Guiderò per te, ma per favore trattami male! -[NEDS4AC:NEDS4] -Il culto della celebrità è andato troppo oltre! +[BNK3_3A:BANKJ3] +Corsa illegale in corso presso Vice Point. -[NEDS4AD:NEDS4] -Che genere di donnaccia può concedere un'intervista a una radio negando l'esclusiva a un volenteroso redattore? +[BNK3_3B:BANKJ3] +A tutte le pattuglie. -[NEDS4AF:NEDS4] -Distruggi questi falsi idoli! +[BNK3_3C:BANKJ3] +Queste corse sono illegali e vietate! -[NEDS4BA:NEDS4] -Ho fatto quello che mi ha chiesto, padre. +{=================================== MISSION TABLE BANKJ4 ===================================} -[NEDS4BB:NEDS4] -Bene, le vendite del giornale hanno triplicato da quando hai trovato la via. +[BNK4_A:BANKJ4] +~w~Come potete vedere, signori, questi saranno i soldi più facili della storia. -[NEDS4BC:NEDS4] +[BNK4_B:BANKJ4] +~w~Tommy, seriamente, dovresti pensare di fare l'avvocato. + +[BNK4_C:BANKJ4] +~w~Ma che cosa ti fumi, amico? Non è per niente un piano semplice! + +[BNK4_D:BANKJ4] +~w~Beh, chi ha bisogno di un piano semplice? + +[BNK4_E:BANKJ4] +~w~Prendi il comunismo, beh, quello era un piano semplice. Non ha fatto così bene alla Russia, no? + +[BNK4_F:BANKJ4] +~w~Rilassatevi, OK? Con una squadra come la nostra, non ci saranno problemi. + +[BNK4_G:BANKJ4] +~w~Abbiamo Cam per la cassaforte. Phil? Noi ci occuperemo della sorveglianza, mentre Hilary guiderà l'auto per la fuga. + +[BNK4_H:BANKJ4] +~w~Uh, eh eh, non ti stai dimenticando qualcuno? Qualcuno che ti ha costantemente aiutato in questa città? Qualcuno...? + +[BNK4_I:BANKJ4] +~w~Ken... Ken, ma certo. Il nostro Ken si occuperà di lavare il denaro sporco e di tenere le birre al fresco. + +[BNK4_J:BANKJ4] +~w~Non ho ancora capito cosa ci sto a fare io qua. + +[BNK4_K:BANKJ4] +~w~Beh, è semplice: non hai mai visto un film d'azione? + +[BNK4_L:BANKJ4] +~w~Entriamo nella banca, sventoliamo in giro l'arma e usciamo molto ricchi. + +[P_DEAD:BANKJ4] +~r~Phil è morto! + +[C_DEAD:BANKJ4] +~r~Cam è morto! + +[H_DEAD:BANKJ4] +~r~Hilary è morto! + +[P_HIND:BANKJ4] +~r~Hai perso Phil! + +[C_HIND:BANKJ4] +~r~Cam è restato indietro! + +[H_HIND:BANKJ4] +~r~Hai abbandonato Hilary! + +[GETCAR:BANKJ4] +~g~Entra nell'auto e preparati alla rapina! + +[TRASHED:BANKJ4] +~r~HAI DISTRUTTO L'AUTO PER LA FUGA!!! + +[BNK4_1:BANKJ4] +Guido io. + +[BNK4_2:BANKJ4] +Ottimo. Un passeggero. Aspetta che lo dica al resto del gruppo. + +[BNK4_3A:BANKJ4] +Ehi, fai attenzione alla macchina, Tommy! + +[BNK4_3B:BANKJ4] +Tommy, Hilary occupa troppo spazio! + +[BNK4_3C:BANKJ4] +Non è vero! + +[BNK4_3D:BANKJ4] +Invece sì! + +[BNK4_3E:BANKJ4] +Ehi, state entrambi zitti o ve ne andate a piedi. + +[BNK4_3F:BANKJ4] +Sì Hilary. + +[BNK4_3I:BANKJ4] +Perdio, Phil, smettila di sventolare quell'affare in giro! + +[BNK4_3J:BANKJ4] +Sì, finirai col cavare un occhio a qualcuno! + +[BNK4_3M:BANKJ4] +La mia bambina! È a pezzi! + +[BNK4_3O:BANKJ4] +Sei accecato dall'illusione di permanenza. + +[BNK4_3P:BANKJ4] Cosa? -[NEDS4BD:NEDS4] -Grazie ancora per il tuo aiuto, Toni! +[BNK4_3Q:BANKJ4] +Pensi che tutto duri per sempre. -[NEDS4BE:NEDS4] -Ehi, ma che cazzo? +[BNK4_3R:BANKJ4] +La giovinezza, le persone care, la pizza... -[NEDS4BF:NEDS4] -CHI DIAVOLO SEI? +[BNK4_3S:BANKJ4] +Ma tutto passa e finisce e tu lo devi accettare. -[NEDS422:NEDS4] -Recupera un lanciarazzi dal negozio d'armi di Phil Cassidy. +[BNK4_3T:BANKJ4] +Ehi, hai ragione. Grazie Cam. -[NEDS4_7:NEDS4] -~w~Non permettere a nessuna delle ~r~celebrità~w~ di raggiungere la radio LCFR! +[BNK4_3U:BANKJ4] +È un piacere. -[NEDS416:NEDS4] -~w~Non permettere a nessuna delle ~r~celebrità~w~ di raggiungere la radio LCFR! +[BNK4_3V:BANKJ4] +Ehi Tommy, perché ci siamo fermati? -[NEDS419:NEDS4] -~w~Troverai dell'armamento pesante al negozio d'armi di Phil Cassidy. +[BNK4_4A:BANKJ4] +~w~Hilary, continua a guidare attorno al quartiere. -[NEDS420:NEDS4] -~w~Padre Ned ha comprato un lanciarazzi. Recuperalo al negozio d'armi di Phil Cassidy. +[BNK4_5:BANKJ4] +~w~OK Tommy, OK. -[NEDS4_6:NEDS4] -~w~Se hai bisogno di armi, vai al negozio di Phil Cassidy. +[BNK4_6:BANKJ4] +~w~QUESTA È UNA RAPINA! -{=================================== MISSION TABLE DONS1 ===================================} +[BNK4_7:BANKJ4] +~w~NESSUNO SI MUOVA! -[MORG_01:DONS1] -2-2-3, 3-2-3, 4-2-3, 5-2-3-... +[BNK4_8:BANKJ4] +~w~TUTTI CONTRO QUEL MURO! -[MORG_02:DONS1] -Antonio! Che piacere vederti! +[BNK4_9:BANKJ4] +Phil, mantieni il controllo! -[MORG_03:DONS1] -Cosa sta succedendo? +[BNK4_10:BANKJ4] +Ricevuto capo! -[MORG_04:DONS1] -Ci stiamo preparando per un festa, ragazzo mio. +[BNK4_11:BANKJ4] +Vieni Cam, la cassaforte è di sopra... -[MORG_05:DONS1] -Sì, una festa cadaverica! +[BK4_12A:BANKJ4] +Maledizione! È una Flange 9000! -[MORG_08:DONS1] -Che cazzo stai dicendo, una festa cadaverica? +[BK4_12B:BANKJ4] +Potrei impiegare ore ad aprirla, -[MORG_09:DONS1] -Stasera ci divertiremo. +[BK4_12C:BANKJ4] +o cinque minuti se trovi l'amministratore. -[MORG_10:DONS1] -Ma prima, dobbiamo andare a prendere gli ospiti... +[BNK4_13:BANKJ4] +Vado a scoprire dove si è rintanato. -[MORG_11:DONS1] -Andiamo, prima che i nostri invitati si annoino a morte. +[BK4_14A:BANKJ4] +Phil, va tutto bene? -[MORG_12:DONS1] -Scusa il gioco di parole! +[BNK4_15:BANKJ4] +Certo. Tutto liscio come l'olio. -[MORG_13:DONS1] -Perché sono morti, sai... +[BNK4_16:BANKJ4] +Tu, tu vieni con me! -[MORG_14:DONS1] -Il nostro ospite d'onore sta per fare un salto ai laboratori di patologia. +[BNK4_17:BANKJ4] +OK, OK! Ti prego, non sparare! -[MORG_15:DONS1] -Non facciamolo aspettare. +[BNK4_18:BANKJ4] +HO DETTO NESSUNO SI MUOVA! -[MORG_06:DONS1] -- La prima della stagione! ~n~ - Woah, woah, woah, woah... +[BK4_19A:BANKJ4] +L'apertura è temporizzata, -[DONS1_1:DONS1] -Nessuno +[BK4_19B:BANKJ4] +potete anche rinunciarci! -[DL1_A:DONS1] -Voglio dare una festa cadaverica e ho bisogno che recuperi gli 'ospiti'. +[BK4_20A:BANKJ4] +Diamine, posso aggirare l'apertura a tempo, -[DL1_2:DONS1] -~r~Hai distrutto la macchina. +[BK4_20B:BANKJ4] +ma poi avremo bisogno del tuo codice per spalancarla! -[DL1_3:DONS1] -I poliziotti sono stati allertati, perdi il tuo livello di sospetto! +[BNK4_21:BANKJ4] +Sta qua. Se fai uno scherzo diventi cibo per pesci. Chiaro? -[DL1_4:DONS1] -Porta la macchina al ~y~garage di Donald. +[BK4_24A:BANKJ4] +Vado a controllare Phil, torno subito. -[DL1_6:DONS1] -~r~Il carro funebre ha raggiunto la stazione di polizia. +[BK4_24B:BANKJ4] +Te l'avevo detto di non toccare l'allarme! -[DL1_9:DONS1] -Porta la macchina al negozio di riverniciatura. +[BNK4_25:BANKJ4] +La squadra SWAT sarà qui fra pochi minuti! -[DL1_5:DONS1] -Ruba il ~b~carro funebre~w~ prima che giunga a destinazione. +[BNK4_27:BANKJ4] +Un po' di aiuto non farebbe male, Tommy. -{=================================== MISSION TABLE DONS2 ===================================} +[BNK4_28:BANKJ4] +SWAT di Vice City! Siete completamente circondati! -[DONS2AA:DONS2] -DL? +[BNK4_29:BANKJ4] +Circondati? AH AH AH Aaaaaaaaaah! -[DONS2AB:DONS2] -Toni! +[BNK4_30:BANKJ4] +Si stanno cagando addosso, corrotti bastardi! -[DONS2AC:DONS2] -Come va la campagna elettorale? +[BK4_31A:BANKJ4] +Tommy! La cassaforte è aperta! -[DONS2AD:DONS2] -È una lotta serrata e ogni singolo voto farà la differenza! +[BK4_34A:BANKJ4] +OK, abbiamo i fondi pensione della SWAT. Andiamocene da qui! -[DONS2AE:DONS2] -I sostenitori di O'Donovan stanno lavorando sodo sui seggi periferici. +[BK4_34B:BANKJ4] +OK, l'avete voluto voi! Il tempo è scaduto! -[DONS2AF:DONS2] -Bene, ecco il nostro veicolo propagandistico: vai e diffondi il verbo! +[BK4_35A:BANKJ4] +Stanno assalendo l'edificio! -[DONS2BA:DONS2] -Vota O'Donovan come sindaco! +[BK4_35B:BANKJ4] +Al riparo! -[DONS2BB:DONS2] -Vota O'Donovan per stroncare la corruzione! +[BNK4_36:BANKJ4] +Dov'è Cam? -[DONS2BC:DONS2] -Riponi la tua fiducia nel sindaco O'Donovan! +[BNK4_37:BANKJ4] +Non ce l'ha fatta... -[DONS2BD:DONS2] -La fine della criminalità! Vota O'Donovan! +[BNK4_38:BANKJ4] +Questo è l'ultimo. VIA! VIA! VIA! -[DONS2BE:DONS2] -Vota per la giustizia! Vota O'Donovan! +[BNK_39:BANKJ4] +Merda! Dov'è Hilary? -[DONS2CA:DONS2] -O'Donovan ha tre mogli! +[BK4_40A:BANKJ4] +Gliela do io l'illusione di permanenza! -[DONS2CB:DONS2] -Chi ha mangiato la marmellata? O'Donovan! +[BNK4_42:BANKJ4] +Ehi, ragazzi! Entrate, vi copro io! -[DONS2CC:DONS2] -O'Donovan è un tossico! +[BNK4_44:BANKJ4] +Ce l'abbiamo fatta! Siamo ricchi, RICCHI! -[DONS2CD:DONS2] -O'Donovan crede nella sodomia coercitiva! +[BNK4_45:BANKJ4] +Peccato che Cam non ce l'ha fatta, era un bravo ragazzo! -[DONS2CE:DONS2] -O'Donovan è un comunista! +[BNK4_46:BANKJ4] +Sì, comunque... ora ce n'è più per noi! -[DONS2CF:DONS2] -O'Donovan indossa l'intimo di sua figlia! +[BNK4_47:BANKJ4] +Maledettamente vero! YEEEEHAAAH! -[DONS2CG:DONS2] -O'Donovan gode nudo tra i maiali! +[BNK4_48:BANKJ4] +Tommy, vuoi un massaggio? -[DONS2CH:DONS2] -O'Donovan odia l'America! +[BNK4_49:BANKJ4] +Ciao Mercedes! Sì, effettivamente sono un po' teso... -[DONS2CI:DONS2] -Love non tasserà i benestanti! +[BNK450A:BANKJ4] +Sai cosa ti dico Tommy? Sai cosa ti dico? I membri corrotti della SWAT faranno meglio a fare attenzione finché Kent Paul è in città. -[DONS2CJ:DONS2] -Vota Love per corsi di patologia nelle scuole! +[BNK450B:BANKJ4] +Eddai, dammene una fetta più grande! Amico, dai! Mi devo comprare dei vestiti nuovi! -[DONS2CK:DONS2] -Donald Love: un posto all'obitorio per tutti! +[BNK4_94:BANKJ4] +~w~OK, ragazzi. Procediamo come pianificato. -[DONS2CL:DONS2] -Donald Love è un eroe di guerra! +[BM_DEAD:BANKJ4] +~r~Hai bisogno dell'amministratore vivo! -[DONS2CM:DONS2] -Un voto per Love è un voto per la vostra felicità! +[ASSET_A:BANKJ4] +RAPINA ALLA BANCA COMPLETATA! -[DONS2CN:DONS2] -Donald Love: duro con i vegetariani! +[ASSET_B:BANKJ4] +~g~Il Malibu d'ora in poi genererà introiti per un massimo di ~1~$. Ricordati di recuperarli regolarmente. -[DONS2_1:DONS2] -~w~Sali sul ~b~furgone. +[IDIOT:BANKJ4] +~r~Vai in giro vestito come un pazzo e attiri l'attenzione! Sei un IDIOTA! -[DONS2_3:DONS2] -~w~O'Donovan ha mandato fuori i suoi ~r~furgoni~w~ per riprendersi i voti! +{=================================== MISSION TABLE BARON1 ===================================} -[DONS2_4:DONS2] -~r~Non sei riuscito a conquistare abbastanza voti! +[COK1_A:BARON1] +Forza, dai, forza! Yeh yeh aaaah... -[DONS2_6:DONS2] -~w~Tempo rimasto +[COK1_B:BARON1] +Stupido cavallo! Ti taglierò la testa! -[DONS2_7:DONS2] -~w~Torna sul ~b~furgone~w~ e continua la missione. +[COK1_C:BARON1] +Chi è questo stronzo? -[DONS2_9:DONS2] -~w~O'Donovan ha mandato fuori un altro ~r~furgone~w~! +[COK1_D:BARON1] +Tommy Vercetti, ti ricorderai di me. -[DONS210:DONS2] -~w~Zone +[COK1_E:BARON1] +Scusami, sono un po' ansioso. Mai fidarsi di un fottuto cavallo! -[DONS211:DONS2] -~r~Hai perso tutte le aree di votazione! +[COK1_F:BARON1] +Hai fatto un bel lavoro: adesso lavori per me. -[DONS212:DONS2] -~r~Non sei riuscito a eliminare l'opposizione! +[COK1_H:BARON1] +Come ti ho detto, amigo, lavori per me. Adesso sta zitto. Un qualche giuda mi ha tradito. -[DONS2_2:DONS2] -~w~Guida nei ~y~checkpoint delle aree di votazione~w~ per conquistare il loro voto. +[COK1_I:BARON1] +Pensava non sapessi quanti soldi stessi facendo, ma rubarmi il 3% è come rubarmi il 100%. -[DONS215:DONS2] -~w~Hai ceduto un'~y~area~w~ a O'Donovan! +[COK1_J:BARON1] +Nessuno fa questo a me. NESSUNO!!! -[DONS216:DONS2] -~w~Non permettere che O'Donovan riconquisti tutte le ~y~aree~w~! +[COK1_K:BARON1] +Seguilo nel suo appartamento e scopri dove va! Successivamente, lo elimineremo noi. -[DONS213:DONS2] -~w~Adesso che controlli abbastanza aree, elimina i ~r~furgoni dell'opposizione~w~ per impedire a O'Donovan di conquistarne altre. +[COK1_1:BARON1] +Ommerda! -[DONS2_8:DONS2] -~w~Conquista almeno 5 delle ~y~aree di votazione. +[COK1_2:BARON1] +Troppo lento, nonnino! -[DONS214:DONS2] -~w~Controlli meno di 5 ~y~aree~w~: riconquistale! +[COK1_4:BARON1] +Perdente. -[DONS217:DONS2] -~w~Conquista altre aree per aumentare il bonus di completamento. +[COK1_5:BARON1] +Ti conviene continuare a correre, stronzo! -[DONS2_5:DONS2] -~r~Il furgone elettorale è stato distrutto. +[COK1_8:BARON1] +~g~Svelto! Recupera un mezzo e inseguilo! -[DONS218:DONS2] -~w~Conquista almeno 5 ~y~aree di votazione~w~ prima delle ~1~:~1~. +[COK1_9:BARON1] +~r~Dovevi inseguirlo, non ucciderlo! -[DONS219:DONS2] -~w~Conquista almeno 5 ~y~aree di votazione~w~ prima delle 0~1~:~1~. +[COK1_10:BARON1] +~r~Entra nella casa del ladro e scopri dove ha nascosto il denaro. -[DONS220:DONS2] -~w~Conquista almeno 5 ~y~aree di votazione~w~ prima delle 0~1~:0~1~. +[COK1_11:BARON1] +~g~Dai un'occhiata da questa finestra. -[DONS221:DONS2] -~w~Conquista almeno 5 ~y~aree di votazione~w~ prima delle ~1~:0~1~. +[COK1_7:BARON1] +~g~È scappato sul tetto: stagli dietro ma non ucciderlo! -[DONS230:DONS2] -~w~Adesso che controlli abbastanza aree, elimina il ~r~furgone dell'opposizione~w~ per impedire a O'Donovan di conquistarne altre. +[COK1_G:BARON1] +Lavoro per soldi. -{=================================== MISSION TABLE DONS3 ===================================} +{=================================== MISSION TABLE BARON2 ===================================} -[CAMP_01:DONS3] -Antonio! Que pasa, amigo? +[COK2_A:BARON2] +Ma che fottuti incompetenti non siete? -[CAMP_02:DONS3] -Sai che sono italiano e non spagnolo, vero? +[COK2_B:BARON2] +IDIOTI! IDIOTI! IDIOTI! IDIOTI! -[CAMP_03:DONS3] -Ma certo, che stupido! È che adoro tutte le lingue romanze... +[COK2_C:BARON2] +Tommy, -[CAMP_04:DONS3] -Oddio che buono. +[COK2_D:BARON2] +questi idioti... cercano sempre di fregarti. -[CAMP_05:DONS3] -Sa di pollo, ma è, come dire... più intelligente. +[COK2_E:BARON2] +È questo il problema in questo business. -[CAMP_06:DONS3] +[COK2_F:BARON2] +Che cosa credi di fare? Aaaaah! + +[COK2_G:BARON2] +Questi stronzi hanno fallito miseramente. + +[COK2_H:BARON2] +Ben presto anche i papà e le mamme penseranno di poter spacciare coca in Vice City. + +[COK2_I:BARON2] +Chi sarà il prossimo adesso? La fottuta mafia? + +[COK2_J:BARON2] +La base della loro banda è una fortezza al piano terra, + +[COK2_K:BARON2] +per cui Quentin... Quentin! QUENTIN! + +[COK2_L:BARON2] +Lui ti porterà in volo sull'area! + +[COK2_M:BARON2] +Sradicateli! + +[COK2_N:BARON2] +Che cosa credi di fare? + +[COK2_O:BARON2] +Che cosa fai qua? + +[COK2_P:BARON2] +Ehi, ho chiesto in giro ed è ovvio + +[COK2_Q:BARON2] +che Diaz ha fatto saltare l'accordo e ha freddato mio fratello. + +[COK2_R:BARON2] +E ucciderà anche te! + +[COK2_S:BARON2] +Io posso far fuori Diaz! + +[COK2_T:BARON2] +No, ascoltami! Io mi occuperò di Diaz: + +[COK2_U:BARON2] +sta cominciando a fidarsi di me. + +[COK2_1:BARON2] +Ho una domanda, però: perché 'Quentin'? + +[COK2_2:BARON2] +Non lo so, mi è sempre piaciuto... Quentin Vance... + +[COK2_3:BARON2] +Vance? Tu sei Lance Vance? + +[COK2_4:BARON2] +Ehi, ne ho avuto abbastanza a scuola! + +[COK2_5:BARON2] +Hai mai provato a sparare con quelli da un elicottero? + +[COK2_8:BARON2] +Dove ci stiamo dirigendo? + +[COK2_9:BARON2] +Prawn Island. + +[COK2_13:BARON2] +Lance Vance. Brutto bastardo. + +[COK2_14:BARON2] +OK, siamo quasi arrivati. + +[COK2_15:BARON2] +Faremo un paio di passaggi. + +[COK2_16:BARON2] +Cerca di colpire il maggior numero di nemici possibile. + +[COK2_17:BARON2] +Poi ti scarico e dovrai cavartela da solo. + +[COK2_20:BARON2] +Merda! Siamo in una zona di guerra! Abbatti un po' di gente! + +[COK2_21:BARON2] +Stiamo sotto tiro, amico! + +[COK2_22:BARON2] +Questo affare è maledettamente costoso da riparare! Falli fuori! + +[COK2_23:BARON2] +OK, adesso dovrai cavartela da solo... Buona fortuna, fratello! + +[COK2_24:BARON2] +Condizioni elicottero: + +[COK2_25:BARON2] +~g~Recupera i soldi sul tetto. + +[COK2_27:BARON2] +Sei nel MIO territorio, stronzo! + +[COK2_28:BARON2] +Stai per affondare! + +[COK2_6:BARON2] +No. Farò un po' di pratica lungo la strada. + +[OPEN_B:BARON2] +Il blocco stradale per la terraferma è stato rimosso. + +[COK2_V:BARON2] +sta cominciando a fidarsi di me. + +{=================================== MISSION TABLE BARON3 ===================================} + +[COK3_A:BARON3] +Scommetto che adesso non vi divertite più! + +[COK3_B:BARON3] +Ah ah ah ah! + +[COK3_C:BARON3] +Woh! Fai attenzione a dove punti quel coso. + +[COK3_D:BARON3] +Basta con merda di piccione sulla MIA macchina, vero Tommy? + +[COK3_E:BARON3] +Direi di sì. + +[COK3_F:BARON3] +Hai proprio ragione. Adesso ascolta: + +[COK3_G:BARON3] +sai chi possiede la barca più veloce della costa est? + +[COK3_H:BARON3] +Non così su due piedi. + +[COK3_I:BARON3] +IO. E voglio che la situazione non cambi. + +[COK3_J:BARON3] +Ogni contrabbandiere da qui a Caracas ha un solo sogno: un'imbarcazione più veloce. + +[COK3_K:BARON3] +Si mormora che il cantiere Hull-o-Caust ha appena finito di costruirne una + +[COK3_L:BARON3] +per una testa di cazzo del Costa Rica. + +[COK3_M:BARON3] +E Tommy... IO VOGLIO QUELLA BARCA!!! + +[COK3_N:BARON3] +Credo che siano tornati i tuoi piccioni. + +[COK3_O:BARON3] +Ah! Pensavo di averti preso. Da dove salti fuori? + +[COK3_P:BARON3] +Piccioni! Boom! Ah ah ah! + +[COK3_5:BARON3] +~g~Trova l'interruttore per abbassare l'imbarcazione. + +[COK3_6:BARON3] +~g~Porta la barca alla villa di Diaz. + +[COK3_7:BARON3] +~r~Hai distrutto la barca! + +[COK3_8:BARON3] +~g~Raggiungi il cantiere al porto e ruba la barca più veloce. + +[COK3_9:BARON3] +~g~Adesso entra nella barca. + +{=================================== MISSION TABLE BARON4 ===================================} + +[COK4_A:BARON4] +Sputa fuori! CATORCIO DI PLASTICA! + +[COK4_B:BARON4] +Come osi farmi questo? + +[COK4_C:BARON4] +Chi credi di essere, brutto pezzo di merdosa plastica! Aaarrgh! + +[COK4_D:BARON4] +VAFFANCULO! + +[COK4_E:BARON4] +Se hai distrutto il mio film favorito di El Burro ti spacco! + +[COK4_F:BARON4] +Che altro posso fare? + +[COK4_G:BARON4] +Forse non è collegato... + +[COK4_H:BARON4] +Cosa? + +[COK4_I:BARON4] +Merda... non importa, ne posso comprare a centinaia. + +[COK4_J:BARON4] +Adesso Tommy, + +[COK4_K:BARON4] +ogni mese un freelance naviga fino a Vice City e ormeggia il suo yacht. + +[COK4_L:BARON4] +Vende il suo carico alla prima imbarcazione. + +[COK4_M:BARON4] +Voglio che tu prenda la barca più veloce, + +[COK4_N:BARON4] +batta tutti gli altri stronzi + +[COK4_O:BARON4] +e riporti qui il carico, OK? + +[COK4_P:BARON4] +Fammi indovinare, pensavi mi avrebbe fatto comodo un angelo custode? + +[COK4_Q:BARON4] +Vorrei solo che mi lasciassi venire, amico mio. + +[COK4_R:BARON4] +Puoi continuare con queste stronzate alla rambo, + +[COK4_S:BARON4] +ma sono sicuro che un giorno o l'altro ti salverò il culo. + +[COK4_T:BARON4] +e allora vorrai baciarmi! + +[COK4_U:BARON4] +Sei pazzo. + +[COK4_V:BARON4] +Ah ah ah! + +[COK4_1:BARON4] +Allora Tommy, sappiamo che è stato Diaz a far saltare il nostro affare... + +[COK4_3:BARON4] +Allora per quale motivo continuiamo a lavorare per lui? + +[COK4_4:BARON4] +Più cose scopriamo adesso, meno dovremo imparare quando ci impossesseremo di questa città! + +[COK4_5:BARON4] +Mi piace il tuo stile, amico. Molto fico. + +[COK4_12:BARON4] +Attento, stanno arrivando da tutte le parti! + +[COK4_13:BARON4] +Preso! Torniamo da Diaz il più velocemente possibile! + +[COK4_14:BARON4] Ne vuoi un po'? -[CAMP_07:DONS3] -Ho già mangiato, grazie.. +[COK4_15:BARON4] +Salutami i pesci! -[CAMP_08:DONS3] -Peccato, è fantastico. +[COK4_16:BARON4] +Prendi questo! E questo! -[CAMP_09:DONS3] -Ci sono altre prelibatezze in arrivo... +[COK4_19:BARON4] +Altri guai in arrivo! -[CAMP_10:DONS3] -i liberali si divertono con le scampagnate, +[COK4_20:BARON4] +Ci stanno sparando da quel molo! -[CAMP_11:DONS3] -ma non sanno nulla dei veri piaceri della vita! +[COK4_24:BARON4] +Bel colpo, amico. Sei un vero pazzo di prima classe. -[CAMP_12:DONS3] -Raffinatezza e democrazia sono due concetti che non vanno d'accordo. +[COK4_25:BARON4] +Beh, grazie. -[CAMP_13:DONS3] -Ascolta Don, dobbiamo vincere queste elezioni. +[COK4_26:BARON4] +Ci vediamo, Tommy. -[CAMP_14:DONS3] -Per cui dobbiamo essere sicuri di non avere scheletri nell'armadio, +[COK4_27:BARON4] +OK, Mr. Lance Vance Dance. -[CAMP_15:DONS3] -non so se hai capito... +[COK4_28:BARON4] +~g~Raggiungi lo yacht prima delle altre imbarcazioni! -[CAMP_16:DONS3] -Giusto. +[COK4_31:BARON4] +~g~Raggiungi la barca più veloce attraccata al molo! -[CAMP_17:DONS3] -Ciò che voglio dire è... +[COK4_32:BARON4] +~r~Troppo lento! -[CAMP_18:DONS3] -come ci liberiamo di questo O'Donovan, il rappresentante... +[COK4_33:BARON4] +~r~Hai distrutto la barca! -[CAMP_19:DONS3] -dei Forelli? +[COK4_34:BARON4] +~g~Affonda quelle imbarcazioni! -[CAMP_20:DONS3] -Il tizio può contare sul supporto di molta gente, +[COK4_35:BARON4] +Condizioni barca: -[CAMP_21:DONS3] -sai tutta quella gente 'delusa', se sai cosa intendo. +{=================================== MISSION TABLE BARON5 ===================================} -[CAMP_22:DONS3] -Credo che dovremo turbare la loro fede nella democrazia, non so se mi spiego. +[PROP_A:BARON5] +PROPRIETÀ ACQUISITA! -[CAMP_23:DONS3] -Vuoi dire che devo andare a gonfiarli di botte? +[COK4_30:BARON5] +~r~Lance è morto! -[CAMP_24:DONS3] -Oh, Antonio, la tua passione è... ammirevole! +[ASS1_A:BARON5] +Ho messo un po' di cannoni nel bagagliaio. -[CAMP_25:DONS3] -È così um... um...um... wagneriana! Hai presente? Arrivederci, amigo. +[ASS1_B:BARON5] +Accidenti! Dove hai trovato tutta questa roba? -[CAMP_26:DONS3] -Humphries, porta via gli avanzi! +[ASS1_C:BARON5] +La tenevo da parte per una giornata di pioggia. -[DONS3_1:DONS3] -Toni deve liberarsi dei sostenitori dell'opposizione per indebolire l'efficienza della campagna elettorale del candidato dei Forelli, O'Donovan. +[ASS1_D:BARON5] +Ti piace? -[DONS3_2:DONS3] -~w~Uccidi i ~r~sostenitori~w~ dell'opposizione. +[ASS1_E:BARON5] +Sì, mi piace. -[DONS3_3:DONS3] -~r~Tempo scaduto. +[ASS1_F:BARON5] +Brutto idiota... -[DONS3_4:DONS3] -Questi ~r~sostenitori~w~ sono stati sistemati. Elimina il prossimo gruppo. +[ASS1_G:BARON5] +La mia bellissima casa... -[DONS3_5:DONS3] -~w~Uccidi i ~r~sostenitori~w~ dell'opposizione ~w~prima delle ~1~:~1~. +[ASS1_H:BARON5] +Guarda cosa hai combinato! -[DONS3_6:DONS3] -~w~Uccidi i ~r~sostenitori~w~ dell'opposizione ~w~prima delle ~1~:0~1~. +[ASS1_I:BARON5] +Questo è per mio fratello! -[DONS3_7:DONS3] -~w~Uccidi i ~r~sostenitori~w~ dell'opposizione ~w~prima delle 0~1~:~1~. +[ASS1_J:BARON5] +Mi fidavo di te, Tommy! -[DONS3_8:DONS3] -~w~Uccidi i ~r~sostenitori~w~ dell'opposizione ~w~prima delle 0~1~:0~1~. +[ASS1_K:BARON5] +Ti avrei fatto diventare... -{=================================== MISSION TABLE DONS4 ===================================} +[ASS1_L:BARON5] +Buona notte, Mr. Diaz. -[DONS410:DONS4] -Vai al ~y~magazzino dei Forelli~w~ e dai fuoco alle schede elettorali! +[ASS1_1:BARON5] +Questo posto sarà zeppo di stronzi... fai attenzione... -[DONS411:DONS4] -Brucia le ~r~schede elettorali~w~ e distruggi le ~r~stampatrici! +[ASS1_2:BARON5] +Non preoccuparti, Tommy, ti copro io. -[DONS412:DONS4] -Distruggi la ~r~stampatrice! +[ASS1_4:BARON5] +Diaz deve essere qui dentro! -[DONS413:DONS4] -Brucia TUTTE le ~r~schede elettorali! +[ASS1_13:BARON5] +DIAZ? Sono venuto a prendermi il tuo business! -[DONS414:DONS4] -Distruggi gli ultimi ~r~furgoni dei Forelli! +[ASS1_14:BARON5] +TOMMY! Mi hai tradito... Idiota! Ti ucciderò fra un attimo! -[DONS416:DONS4] -~r~Ti è sfuggito un furgone dei Forelli! Ora possono manipolare le elezioni! +[ASS1_16:BARON5] +~g~Uccidi Diaz! -[DONS418:DONS4] -Ci sono ancora ~r~~1~ pacchi~w~ di schede contraffatte. +[BUD1:BARON5] +Lance -[DONS419:DONS4] -Rimane ~r~1 pacco~w~ di schede contraffatte. +[ASS1_18:BARON5] +~g~La porta è chiusa: trova un percorso alternativo. -[DONS420:DONS4] -Distruggi l'ultimo ~r~furgone dei Forelli! +[ASS1_19:BARON5] +Di qua! -[DONS421:DONS4] -Una stampatrice è a pezzi! Adesso distruggi l'altra ~r~stampatrice! +[ASS1_20:BARON5] +Tommy, ho un problema con Quentin, non con te! -[DONS422:DONS4] -La stampatrice è distrutta! +{=================================== MISSION TABLE BIKE1 ===================================} -[DONS423:DONS4] -Adesso esci di qui! +[BM1_A:BIKE1] +Dov'è Baker? -[DONS424:DONS4] -Distruggi le ~r~stampatrici! +[BM1_B:BIKE1] +Sto cercando Big Mitch Baker... -[DS4_AA:DONS4] -Così tanta gente... e così tanti soldi da intascare. +[BM1_C:BIKE1] +Chi lo cerca? -[DS4_AB:DONS4] -Non ho la pretesa di capire la politica. +[BM1_D:BIKE1] +Tommy Vercetti. -[DS4_AC:DONS4] -Nessuno lo fa davvero. È solo menzogna e corruzione. +[BM1_E:BIKE1] +Vercetti. -[DS4_AD:DONS4] -I Forelli possiedono delle quote della società che fabbrica le nuove stampatrici. +[BM1_F:BIKE1] +Non mi sembri della polizia, il che ti ha fatto guadagnare un minuto. -[DS4_AE:DONS4] -Ed è un male, vero? +[BM1_G:BIKE1] +Ti conviene parlare in fretta. -[DS4_AF:DONS4] -Beh, di certo non possiamo fidarci di loro. +[BM1_H:BIKE1] +Kent Paul mi ha detto che saresti stato interessato a occuparti della sorveglianza di uno spettacolo che sta allestendo. -[DS4_AG:DONS4] -Sarebbe meglio se incappassero in SERI problemi tecnici, intesi? +[BM1_I:BIKE1] +Kent Paul? Sheesh! Non mi stupisce abbia mandato te. -[DONS4H1:DONS4] -Troverai dell'armamento pesante al negozio di Phil Cassidy. +[BM1_J:BIKE1] +L'ultima volta che è stato qui è uscito dalla finestra con il vestitino che gli hanno dato alla nascita. -[DONS4AA:DONS4] -Antonio, che bello vederti! +[BM1_K:BIKE1] +Sei interessato o no? -[DONS4AB:DONS4] -Non sono un democratico, ma non arrivo a falsificare i voti. +[BM1_L:BIKE1] +Facciamo solo favori tra compagni. -[DONS4AC:DONS4] -Sapevi che i Forelli possiedono delle quote della società che fabbrica le nuove stampatrici? +[BM1_M:BIKE1] +Come faccio a diventarlo? -[DONS4AD:DONS4] -Ed è un male, vero? +[BM1_N:BIKE1] +Non è uno circolo sportivo, amico. Sai guidare una moto? -[DONS4AE:DONS4] -Beh, di certo non possiamo fidarci di loro. +[BM1_O:BIKE1] +Sai sederti su uno sgabello e bere birra? -[DONS4AF:DONS4] -Sarebbe meglio se incappassero in SERI problemi tecnici, intesi? +[BM1_P:BIKE1] +Cougar, Zeppelin, scoprite se questa ragazzina sa portare una moto... -[DONS4_8:DONS4] -Vai al negozio d'armi di Phil Cassidy. +[BM1_2:BIKE1] +~g~Hai bisogno di una Freeway o di un'Angel per gareggiare! -[DONS4H2:DONS4] -Il negozio d'armi di Phil Cassidy è indicato da una bandiera sul radar. +[BM1_3:BIKE1] +~r~I partecipanti sono stati attaccati! -[DONS427:DONS4] -Adesso vattene da Fort Staunton! +[BIKE1_1:BIKE1] +Bene, bei vestiti. Vediamo cosa sai fare. -[DONS4_9:DONS4] -Il negozio di Phil Cassidy ti fornirà gli strumenti per danneggiare la campagna dei Forelli. +[BM1_1:BIKE1] +~g~Recupera una Freeway o un'Angel e posizionati sulla griglia di partenza. -[DONS417:DONS4] -C'è un altro lanciafiamme al negozio d'armi di Phil Cassidy. +{=================================== MISSION TABLE BIKE2 ===================================} -[DONS425:DONS4] -Recupera il lanciafiamme al negozio d'armi di Phil Cassidy. +[BM2_1:BIKE2] +CAOS: -[DONS426:DONS4] -~r~Il commesso è morto! +[BM2_A:BIKE2] +Ah ah ah, ti ho preso di nuovo! -[DONS4H3:DONS4] -Donald Love ha comprato un lanciafiamme. Vai alla cassa per recuperarlo. +[BM2_B:BIKE2] +Ehi, Vercetti. -{=================================== MISSION TABLE DONS5 ===================================} +[BM2_C:BIKE2] +Cougar ha detto che sai portare la moto come si deve. -[DONS5_7:DONS5] -Proteggi la limousine di Donald! +[BM2_D:BIKE2] +Già, quanti altri giretti devo ancora fare? -[DONS5_9:DONS5] -~r~Donald Love è morto! +[BM2_E:BIKE2] +Sono un uomo molto impegnato. -[DONS513:DONS5] -Danni limousine +[BM2_F:BIKE2] +Se serve una bella scazzottata per mettere le cose a posto, dillo chiaramente. -[DONS516:DONS5] -Sali sulla ~b~limousine. +[BM2_G:BIKE2] +Essere uno di noi non significa solo azzuffarsi. Si tratta di far parte di una famiglia. -[DONS517:DONS5] -Hai lasciato indietro ~b~Donald Love~w~! +[BM2_H:BIKE2] +Sì, sono già stato parte di una famiglia. Non ha funzionato. -[DONS519:DONS5] -Porta Donald al ~y~rifugio! +[BM2_I:BIKE2] +Sì, certo, ma questa famiglia si occupa dei suoi membri. -[DONS520:DONS5] -Uccidi gli ~r~aggressori! +[BM2_J:BIKE2] +Non chiediamo a uno di fare il lavoro sporco per poi lasciarlo marcire quindici anni ai lavori forzati. -[DONS521:DONS5] -Sali sulla ~b~limousine! +[BM2_K:BIKE2] +Sì, esatto. Ho fatto la mia parte. -[DS5_AA:DONS5] -Odio la pubblicità, ma credo faccia parte del gioco, vero? +[BM2_L:BIKE2] +Questa è la più grande famiglia di disadattati, reietti e derelitti. -[DS5_AB:DONS5] -Temo di sì. +[BM2_M:BIKE2] +Merda, alcuni di noi sono stati persino traditi dalla propria nazione. -[DS5_AC:DONS5] -I Forelli cercheranno di farmi fuori, vero? +[BM2_N:BIKE2] +Sono stato imprigionato durante il Vietnam. Brutta storia. -[DS5_AD:DONS5] -Non preoccuparti, resto di guardia io. +[BM2_O:BIKE2] +Ed è per questo che ti chiedo di far bollire la pentola. -[DS5_AE:DONS5] -Oh bene. Prepariamoci al peggio. +[BM2_P:BIKE2] +Questa fottuta nazione ha bisogno di un bel calcio nel culo, e saremo noi a darglielo. -[DS5_BA:DONS5] -Merda! Tutto questo è ridicolo! +[BM2_Q:BIKE2] +Per cui esci, prendi una moto e mostra a questa città quanto siamo arrabbiati! -[DS5_BB:DONS5] -Non temere, ci penso io a questi stronzi! +[BM2_R:BIKE2] +Va bene. -[DS5_BC:DONS5] -C'è un fucile nel bagagliaio! +[BM2_2:BIKE2] +~g~Devi riempire l'indicatore del caos entro il tempo stabilito per mostrare quanto sei arrabbiato! -[DS5_BD:DONS5] -Chiudi le porte, non ci vorrà molto! +[BM2_3:BIKE2] +~g~Questo suono indica che hai riempito parte dell'indicatore, continua così. -[DS5_CA:DONS5] -OK, possiamo andare. +[BM2_4:BIKE2] +~r~Non sei riuscito a riempire l'indicatore del caos in tempo! -[DS5_CB:DONS5] -Un altro killer ci sta inseguendo! +{=================================== MISSION TABLE BIKE3 ===================================} -[DS5_DA:DONS5] -Non posso affrontare le elezioni da recluso. +[BM3_A:BIKE3] +Ehi, ciao Mitch. -[DS5_DB:DONS5] -Dobbiamo studiare una nuova tattica. +[BM3_B:BIKE3] +Accidenti Vercetti, hai davvero le palle. -[DONS522:DONS5] -Riporta Donald al suo ~y~edificio! +[BM3_C:BIKE3] +Adesso voglio vedere se sei pronto a combattere per la tua famiglia. -{=================================== MISSION TABLE DONS6 ===================================} +[BM3_D:BIKE3] +Una gang locale ha fatto l'errore di rubare il mio mezzo... -[DONS6_1:DONS6] -NONE +[BM3_E:BIKE3] +probabilmente come prova di coraggio o qualcosa del genere. -[DS6_00:DONS6] -Segui il ~b~furgone elettorale. +[BM3_F:BIKE3] +Io e i miei uomini stavamo per andare a dar loro una lezione sul rispetto. -[DS6_01:DONS6] -Aspetta che il ~b~corriere~w~ effettui lo scambio. +[BM3_G:BIKE3] +Comunque, -[DS6_02:DONS6] -Recupera le schede elettorali dal ~r~corriere. +[BM3_H:BIKE3] +ho pensato che sarebbe stata un'ottima occasione per la tua iniziazione. -[DS6_03:DONS6] -Uccidi il ~r~corriere. +[BM3_I:BIKE3] +Riportami indietro la mia moto e potrai dire a Paul che avrà la sua sorveglianza. -[DS6_04:DONS6] -Prendi il ~g~pacco. +[BM3_2:BIKE3] +~r~Dovevi riportare indietro la moto, non distruggerla! -[DS6_05:DONS6] -Segui nuovamente il ~b~furgone elettorale. +[BM3_3:BIKE3] +~g~Riporta la moto al bar! -[DS6_06:DONS6] -~r~Hai ucciso un corriere prima dello scambio! +[BM3_4:BIKE3] +~g~Sali sulla moto! -[DS6_07:DONS6] -Hai mancato uno degli scambi, non puoi sbagliare di nuovo! +[INTRUDE:BIKE3] +~g~Ti hanno visto! -[DS6_08:DONS6] -~r~Hai perso due scambi, la votazione non può essere truccata! +[BM3_6:BIKE3] +~g~Si sono rintanati dietro Ammu-Nation in Downtown. -[DS6_09:DONS6] -~r~L'hai spaventato! +[BM3_7:BIKE3] +~g~Avrai bisogno di una moto più veloce per accedere al tetto. -[DS6_10:DONS6] -~r~Il furgone è stato distrutto! +[BM3_8:BIKE3] +~g~Usa la moto per saltare da queste scale fino al tetto nella parte più lontana della strada. -[DS6_11:DONS6] -Hai esaurito il tempo! +[BM3_1:BIKE3] +~g~Una gang locale ha rubato la Angel di Mitch Baker: riportala indietro! -[DS6_12:DONS6] -~r~Non hai fermato il furgone! +[BM3_9:BIKE3] +~g~Recupera l'Angel di Mitch Baker e vattene! -[DS6_13:DONS6] -~r~Il furgone non può muoversi senza l'autista! +{=================================== MISSION TABLE BMX_1 ===================================} -[DS6_15:DONS6] -~r~Hai spaventato l'autista, non lo prenderai più ora! +[BMX_REC:BMX_1] +~g~Nuovo record stabilito: ~1~!! -[DS6_16:DONS6] -~1~ +[GETBIK2:BMX_1] +Hai ~1~ secondi per salire su una Dirt Bike! -[DS6_17:DONS6] -~w~L'autista è morto, porta il furgone al ~y~garage di Donald. +{=================================== MISSION TABLE BOATBUY ===================================} -[DONS6AA:DONS6] -Brutte notizie Toni! +[DRUG_1:BOATBUY] +Salve? Saaalve? Salve? -[DONS6AB:DONS6] -Cosa? +[DRUG_2:BOATBUY] +Tranquillo amico, sono qua. -[DONS6AC:DONS6] -Gli exit polls dicono che c'è un testa a testa. +[DRUG_3:BOATBUY] +Ehi, damerino! Dimmi, sei il nuovo proprietario? -[DONS6AD:DONS6] -È l'ora del piano B. +[DRUG_4:BOATBUY] +Sì. Qual è la barca più veloce? -[DONS6AE:DONS6] -Rubiamo alcuni dei voti non ancora conteggiati e li sostituiamo con i nostri. +[DRUG_5:BOATBUY] +È già in acqua, amico, -[DONS6AF:DONS6] -Cosa avevi detto a proposito della falsificazione dei voti? +[DRUG_6:BOATBUY] +pensavo che la volessi provare. -[DONS6AG:DONS6] -Oh, stai zitto! +[DRUG_7:BOATBUY] +Amico, ha già sopra un bel motore da 300 cavalli... -[DS6_14:DONS6] -Torna a prendere le ~g~schede elettorali~w~, non puoi lasciarle indietro! +[DRUG_8:BOATBUY] +...e la struttura in vetroresina: vola davvero sull'acqua! -[DS6_66:DONS6] -~r~Hai distrutto la macchina di un corriere prima dello scambio! +[DRUG_9:BOATBUY] +Può andare da zero a sessanta in quattro secondi spaccati... -[DS6_18:DONS6] -Hai ucciso un corriere prima dello scambio! Non ucciderne altri! +[DRUG_10:BOATBUY] +e può tenere venti pacchi della migliore erba giamaicana nella stiva! -[DS6_21:DONS6] -Muoviti! C'è un altro scambio in corso! +[DRUG_11:BOATBUY] +Dacci dentro, amico, è pronta a volare! -[DS6_22:DONS6] -Hai mancato il primo scambio, non puoi perderne un altro! +[DRUG_12:BOATBUY] +Yo yo, uh, ehi amico, hai da accendere? -[DS6_23:DONS6] -Hai mancato il secondo scambio, non puoi perderne un altro! +[DRUG_13:BOATBUY] +Amico? -[DS6_24:DONS6] -Hai mancato il terzo scambio, non puoi perderne un altro! +{=================================== MISSION TABLE CAP_1 ===================================} -[DS6_25:DONS6] -Hai mancato il quarto scambio, non puoi perderne un altro! +[CAP1_B1:CAP_1] +~g~La Mafia sta tassando il tuo business. Trovali e falli fuori. -[DS6_26:DONS6] -Hai spaventato un corriere prima dello scambio! Non spaventarne altri! +[CAP1_B2:CAP_1] +~g~La Mafia ha tassato il tuo cantiere navale! -[DS6_28:DONS6] -~r~Hai fatto un casino! La votazione non può più essere truccata! +[CAP1_B3:CAP_1] +~g~La Mafia ha tassato la tua fabbrica di gelato! -{=================================== MISSION TABLE DONS7 ===================================} +[CAP1_B4:CAP_1] +~g~La Mafia ha tassato la concessionaria! -[ELEC_01:DONS7] -Ehi Don, ho risolto quel problemino per conto tuo. +[CAP1_B5:CAP_1] +~g~La Mafia ha tassato la tua compagnia di taxi! -[ELEC_02:DONS7] -Adesso tutto filerà liscio come l'olio. +[CAP_01:CAP_1] +OK, qual è l'emergenza? -[ELEC_03:DONS7] -Ottimo. +[CAP_02:CAP_1] +CHI? -[ELEC_04:DONS7] -Non hai più collegamenti con il crimine organizzato. +[CAP_03:CAP_1] +Tommy... dei maledetti mafiosi... dicevano di essere venuti a prendere la loro fetta... -[ELEC_05:DONS7] -Sei candido come un bimbo in fasce. Potresti diventare papa. +[CAP_04:CAP_1] +...dicevano che erano soldi di Mr. Forello... mi sento di merda. -[ELEC_07:DONS7] -Malgrado non ci siano le prove di collegamenti tra Donald Love +[CAP_05:CAP_1] +Forelli? SONNY Forelli? -[ELEC_08:DONS7] -e il crimine organizzato di Liberty City, +[CAP_06:CAP_1] +Sì, quel nome... credo... hanno davvero insistito... -[ELEC_09:DONS7] -pare che le sue amicizie con mafiosi del calibro di Toni Cipriani +[CAP_07:CAP_1] +Non preoccuparti amico, non sono arrabbiato con te. -[ELEC_11:DONS7] -abbiano pesato parecchio sul giudizio degli elettori. +[CAP_08:CAP_1] +Portalo all'ospedale. -[ELEC_12:DONS7] -Nelle ultime ore, la sua popolarità è precipitata. +[CAP_09:CAP_1] +Tommy... fai a quel tipo un nuovo buco da cui cagare... -[ELEC_13:DONS7] -Sembra proprio che sia stato giudicato inadatto per governare... +[CAP_10:CAP_1] +Ho intenzione di fargliene due. -[ELEC_14:DONS7] -Inadatto! A causa tua... +[CAP1_2:CAP_1] +Conosci le regole, Vercetti! -[ELEC_15:DONS7] -Sì, è tutta colpa tua! +[CAP1_3:CAP_1] +Mr. Forelli manda i suoi saluti! -[ELEC_16:DONS7] -Colpa mia? +[CAP1_4:CAP_1] +È il macellaio di Harwood! -[ELEC_17:DONS7] -Sì, certo. +[CAP1_5:CAP_1] +Dì a Sonny di stare alla larga! -[ELEC_18:DONS7] -Colpa mia? +[CAP1_6:CAP_1] +Vice City è MIA adesso, NON sua. -[ELEC_19:DONS7] -Con tutti i sacrifici che ho fatto per questa città... +[CAP1_7:CAP_1] +Pensi di potermi tagliar fuori, Vercetti? -[ELEC_20:DONS7] -E sai qual è stata la mia più grande debolezza? +[CAP1_8:CAP_1] +Ti inseguiremo fino a farti fuori, Vercetti. -[ELEC_21:DONS7] -L'umiltà! E adesso sono rovinato. +[CAP1_9:CAP_1] +Non hai nessuna possibilità, brutto cazzone psicopatico. -[ELEC_22:DONS7] -BANCAROTTA! Un buco da 20 milioni di dollari! +[CAP1_10:CAP_1] +Ti ucciderò, Vercetti. -[ELEC_23:DONS7] -Finito in... bancarotta. Arrivederci! BANCAROTTA! +[CAP1_11:CAP_1] +Sei sempre stato uno stronzo. -[ELEC_06:DONS7] -Il papa! Guarda qui. +[CAP1_12:CAP_1] +Ti ammazzo, Vercetti. -[DONS7_1:DONS7] -O'Donovan ha collegato Donald Love a Salvatore Leone. La carriera politica di Donald Love è in bilico. Toni deve distruggere le prove. +[CAP1_B6:CAP_1] +~g~Hai trovato l'esattore: uccidilo! -[DONS7_2:DONS7] -~w~Ruba il ~b~furgone~w~ contenente le prove. +[CAP1_B7:CAP_1] +~g~Hai perso l'esattore. -[DONS7_3:DONS7] -~r~Hai ucciso il contatto. +[CAP1_B8:CAP_1] +~r~L'esattore ha tassato tutte le tue proprietà. -[DONS7_4:DONS7] -~w~Porta il furgone al ~y~punto di consegna. +[CAP1_B9:CAP_1] +~g~La Mafia ha tassato il Malibu! -[DONS7_5:DONS7] -~w~Torna sul ~b~furgone. +[CAP1_B0:CAP_1] +~g~La Mafia ha tassato lo studio cinematografico! -[DONS7_7:DONS7] -Sali sulla ~b~macchina del contatto. +[CAP1_C2:CAP_1] +~g~La Mafia è arrivata al cantiere navale! -[DONS7CA:DONS7] -Ah, Toni. +[CAP1_C3:CAP_1] +~g~La Mafia è arrivata alla fabbrica di gelato! -[DONS7CB:DONS7] -Le prove sono nel furgone qui davanti. +[CAP1_C4:CAP_1] +~g~La Mafia è arrivata al concessionario! -[DONS7CC:DONS7] -Dovrai farti strada con la forza. +[CAP1_C5:CAP_1] +~g~La Mafia è arrivata alla compagnia di taxi! -[DONS7CD:DONS7] -Riporta il furgone da DL. +[CAP1_C9:CAP_1] +~g~La Mafia è arrivata al Malibu! -[DONS7CE:DONS7] -Buona fortuna! +[CAP1_C0:CAP_1] +~g~La Mafia è arrivata allo studio cinematografico! -[DONS713:DONS7] -~w~Parcheggia dentro il ~y~garage. +[CAP1_D2:CAP_1] +~g~La Mafia sta abbandonando il cantiere navale! -[DONS714:DONS7] -~r~Hai distrutto il furgone! +[CAP1_D3:CAP_1] +~g~La Mafia sta abbandonando la fabbrica di gelato! -[RMN_AA:DONS7] -Questa sera c'è da festeggiare poiché lo sciopero che ha bloccato Liberty City +[CAP1_D4:CAP_1] +~g~La Mafia sta abbandonando il concessionario! -[RMN_AB:DONS7] -è finalmente giunto al termine. +[CAP1_D5:CAP_1] +~g~La Mafia sta abbandonando la compagnia di taxi! -[RMN_AC:DONS7] -Sono stati ripristinati i percorsi della metropolitana e dei traghetti. +[CAP1_D9:CAP_1] +~g~La Mafia sta abbandonando il Malibu! -[RMN_AD:DONS7] -Persino il ponte mobile che collega Staunton Island con Shoreside Vale ha riaperto. +[CAP1_D0:CAP_1] +~g~La Mafia sta abbandonando lo studio cinematografico! -[RMN_AE:DONS7] -Gli scioperanti hanno finalmente posato i loro cartelloni e sono tornati ai propri posti di lavoro +[CAP1B10:CAP_1] +Hai beccato gli esattori. Altri stanno arrivando. -[RMN_AF:DONS7] -dopo che il nuovo sindaco O'Donovan ha fatto delle promesse al raduno locale. +{=================================== MISSION TABLE CARBUY ===================================} -[RMN_AG:DONS7] -Come vostro sindaco posso garantirvi che esisterà SEMPRE un servizio di traghetti a Liberty City. +[CAR1_1:CARBUY] +B.J. Smith. E tu devi essere Mr. Vercetti. -[RMN_AH:DONS7] -Ma alcuni potrebbero pensare che le sue siano promesse a vuoto, +[CAR1_2:CARBUY] +Ti andrebbe un giro? -[RMN_AI:DONS7] -poiché i lavori nel nuovo tunnel di Porter Road continuano senza sosta. +[CAR1_3:CARBUY] +Perché no. -[DONS7_6:DONS7] -~w~Incontrati con l'~b~uomo~w~ di Donald Love sotto il cavalcavia di Newport. +[CAR1_4:CARBUY] +Bene, mi dispiace un po' vendere il concessionario. -{=================================== MISSION TABLE RAYS1 ===================================} +[CAR1_5:CARBUY] +È stato il mio primo investimento da quando mi sono messo in proprio. -[SAYO_01:RAYS1] -Quindi tu saresti il cazzone su per il culo, eh? +[CAR1_6:CARBUY] +Ma adesso è giunta l'ora di andare avanti. -[SAYO_02:RAYS1] -Scusa? +[CAR1_7:CARBUY] +Lasci la città? -[SAYO_03:RAYS1] -Tutta la gente che conta è veramente incazzata con te. +[CAR1_8:CARBUY] +Non troppo in fretta, spero? -[SAYO_04:RAYS1] -Leon McAffrey, LCPD. +[CAR1_9:CARBUY] +No. Sto per prepararmi al pensionamento e ai miei futuri investimenti. -[SAYO_05:RAYS1] -Non so di cosa stai parlando. +[CAR1_10:CARBUY] +Il mercato non tirava molto, -[SAYO_06:RAYS1] -Mi occupo di ristorazione. +[CAR1_11:CARBUY] +e la mia squadra si è preoccupata personalmente di diventare -[SAYO_07:RAYS1] -Ma certo, osso duro. +[CAR1_12:CARBUY] +più creativa nella produzione di contanti. -[SAYO_08:RAYS1] -A me non frega un cazzo se voi coglioni vi riempite di piombo a vicenda. +[CAR1_13:CARBUY] +Logicamente, potrei smantellare l'organizzazione prima di vendere. -[SAYO_09:RAYS1] -Mi interessa solo la mia parte. +[CAR1_14:CARBUY] +Diamine, potrei radere al suolo tutto quanto se volessi. -[SAYO_12:RAYS1] -La mia parte. Dov'è? +[CAR1_15:CARBUY] +Quest'area è in pieno sviluppo. -[SAYO_13:RAYS1] -Tra le tue chiappe, amico. Non farmi ridere. +[CAR1_16:CARBUY] +Oh, non mi preoccuperei di ciò. -[SAYO_14:RAYS1] -Se continui a fare lo stronzo con me, giuro che farò la pelle a te, ai tuoi amici, +[CAR1_17:CARBUY] +Il posto mi sembra perfetto. -[SAYO_15:RAYS1] -e alle vostre fottute famiglie. +[CAR1_18:CARBUY] +Sì, lo è, allora siamo d'accordo? -[SAYO_16:RAYS1] -Rilassati, datti una calmata. +{=================================== MISSION TABLE CARPAR1 ===================================} -[SAYO_17:RAYS1] -Questi sono affari, diciamo una specie di società. +[MM_1_A:CARPAR1] +~g~Attraversa ~y~5 punti di controllo ~r~SENZA~g~ abbattere i ~r~CONI~g~! ~g~Puoi attraversarli in ~y~QUALSIASI ORDINE~g~. -[SAYO_18:RAYS1] -Io ti terrò la legge fuori dai piedi, federali, Rico... +[CONE_1:CARPAR1] +~r~Hai abbattuto un cono! -[SAYO_19:RAYS1] -e tu continuerai a tenermi nel giro. - -[SAYO_20:RAYS1] -Chi mi assicura che non verrò preso a calci nelle palle - -[SAYO_21:RAYS1] -da ogni sbirro corrotto da qui a Vice City? - -[SAYO_22:RAYS1] -Ti aiuterò a prendere il controllo di questa città. - -[SAYO_23:RAYS1] -In cambio voglio un po' di soldi e alcuni favori. - -[SAYO_24:RAYS1] -Forza Toni, andiamo a fare un giro... - -[SAYO_25:RAYS1] -andiamo a far visita ai tuoi vecchi amici, i Sindacco. - -[SAYO_10:RAYS1] -- Adoro gli uomini con dei principi. ~n~ - Beh, anch'io. Vado ai loro funerali con auto sportive e pupe bollenti. - -[RS1_YK:RAYS1] -Danni - -[RS1_01:RAYS1] -Fai fuori i ~r~Sindacco. - -[RS1_02:RAYS1] -~r~La macchina è stata distrutta! - -[RS1_03:RAYS1] -~r~La Yakuza è stata massacrata! - -[RS1_04:RAYS1] -~w~Uccidi alcuni dei ~r~Sindacco~w~ per attirare la loro attenzione. - -[RS1_05:RAYS1] -~w~Sali sull'~b~auto di Leon. - -[RS1_06:RAYS1] -~w~Dirigiti nel ~y~territorio dei Sindacco. - -[RS1_07:RAYS1] -~w~Torna alla ~b~macchina. - -[RS1_10:RAYS1] -~r~Hai ucciso Leon! - -[RAYS1AA:RAYS1] -Io mi metterò al volante, tu pensa a sparare! - -[RAYS1AB:RAYS1] -Non doveva occuparsi la Yakuza del lavoro pesante? - -[RAYS1AC:RAYS1] -Adattarsi e sopravvivere, Cipriani. Adattarsi e sopravvivere. - -[RAYS1BA:RAYS1] -Merda, questo sta diventando pericoloso. - -[RAYS1BB:RAYS1] -Meglio che sparisca per un po'... ci vediamo in giro, Toni. - -[RAYS1CA:RAYS1] -Davanti a noi, Toni! - -[RAYS1CB:RAYS1] -Dietro di noi Toni, dietro di noi! - -[RAYS1CC:RAYS1] -Attento a sinistra! - -[RAYS1CD:RAYS1] -A destra Toni, a destra! - -[RAYS1CE:RAYS1] -Torna in macchina! - -[RAYS1CF:RAYS1] -Attento a quello che fai! - -[RAYS1OS:RAYS1] -Oh merda! - -{=================================== MISSION TABLE RAYS2 ===================================} - -[RS2_02:RAYS2] -~w~Veloce, sali su una ~b~moto! - -[RS2_03:RAYS2] -~w~Attira i motociclisti nella ~y~zona mortale! - -[RS2_04:RAYS2] -~w~Torna indietro, non puoi lasciare nessuno dei ~r~Forelli ~w~alle tue spalle! - -[RS2_05:RAYS2] -~w~Torna sulla ~b~motocicletta! - -[RS2_06:RAYS2] -~r~Hai bisogno di una motocicletta per attirare i Forelli. - -[RS2_07:RAYS2] -~r~Gli Yardie vogliono far fuori personalmente i Forelli. - -[RS2_08:RAYS2] -~r~Non è sopravvissuto un solo Yardie! - -[RS2_09:RAYS2] -~1~ - -[RS2_10:RAYS2] -~r~Non possono inseguirti se non hanno le moto! - -[RAYS2AA:RAYS2] -Te la sei presa comoda, Toni. - -[RAYS2AB:RAYS2] -Hai detto 'sbrigati' e io ti ho risposto 'fanculo'. - -[RAYS2AD:RAYS2] -Simpatico. Adesso apri le orecchie. - -[RAYS2AE:RAYS2] -Gli Yardie hanno messo i loro avidi occhi sul territorio di Forelli a Newport. - -[RAYS2AF:RAYS2] -Vai là e attira i soldati dei Forelli fino all'ospedale di Rockford. - -[RAYS2AG:RAYS2] -Gli Yardie li aspetteranno là. - -[RAYS2AH:RAYS2] -Cosa ti viene in tasca? - -[RAYS2AI:RAYS2] -Glielo devo. Ci becchiamo dopo. - -[RS2_11:RAYS2] -Non uccidere nessuno dei Forelli! - -[RS2_12:RAYS2] -Falli ~r~fuori~w~! - -[RS2_01:RAYS2] -~w~Ruba una delle ~b~moto~w~ dei Forelli, ma non uccidere nessuno di loro. - -[RAYS2DB:RAYS2] -Sì, forza. Facciamoli fuori! - -[RS2_13:RAYS2] -~r~Sono stati uccisi troppi Yardie! - -{=================================== MISSION TABLE RAYS3 ===================================} - -[CRAZ_01:RAYS3] -Chissà cosa ho fatto nella mia vita precedente per meritarmi questo. - -[CRAZ_02:RAYS3] -Ray, hai 40 anni e non hai la minima idea di quello che sta succedendo. - -[CRAZ_03:RAYS3] -Non so come hai fatto a campare così a lungo. - -[CRAZ_04:RAYS3] -Non capisco come nessuno ti abbia ancora piantato una pallottola in fronte. - -[CRAZ_05:RAYS3] -Ehi Leon, stai attento a quello che dici. - -[CRAZ_06:RAYS3] -Non posso credere alle mie fottute orecchie. - -[CRAZ_07:RAYS3] -Cosa vuoi fare, correre dalla mamma? - -[CRAZ_08:RAYS3] -Vuoi saltare in braccio a papà? - -[CRAZ_09:RAYS3] -Vuoi un bacio con la lingua? - -[CRAZ_10:RAYS3] -Ehi Toni! - -[CRAZ_14:RAYS3] -Lui si accerterà che tutto venga fatto secondo le regole! - -[CRAZ_15:RAYS3] -Toni Cipriani, Ray Machowski. - -[CRAZ_16:RAYS3] -È dalla nostra parte. Ehi, adesso dovremo combattere contro il crimine organizzato. - -[CRAZ_17:RAYS3] -Ora corri al distretto e compila un rapporto. - -[CRAZ_18:RAYS3] -Sei un bravo ragazzo... andiamo, Toni. - -[CRAZ_19:RAYS3] -Leon, sei un pezzo di merda. - -[CRAZ_11:RAYS3] -- Fermo, stronzo. ~n~ - Ehi! Ehi! Ehi! Calmo! Ti presento il mio nuovo amico! - -[RAYS3_1:RAYS3] -Aiuta la Yakuza a prendere possesso del territorio dei Forelli a Belleville Park. Devi uccidere ~1~ Forelli usando solo la katana. - -[RAYS3_2:RAYS3] -~w~Uccidi ~1~ ~r~Forelli~w~ usando solamente la katana. - -[RAYS3_3:RAYS3] -Uccisioni - -[RAYS3_4:RAYS3] -~w~Devi uccidere i ~r~Forelli~w~ usando la katana. - -[RAYS3_5:RAYS3] -~w~Non hai una katana. Raccogli un'~g~arma sostitutiva. - -[RAYS3_6:RAYS3] -~r~Hai esaurito il tempo. - -[RAYS3_7:RAYS3] -~w~Uccidi ~1~ ~r~Forelli~w~ usando solamente la katana prima delle ~1~:~1~ - -[RAYS3_8:RAYS3] -~w~Uccidi ~1~ ~r~Forelli~w~ usando solamente la katana prima delle ~1~:0~1~ - -[RAYS3_9:RAYS3] -~w~Uccidi ~1~ ~r~Forelli~w~ usando solamente la katana prima delle 0~1~:~1~ - -[RAYS310:RAYS3] -~w~Uccidi ~1~ ~r~Forelli~w~ usando solamente la katana prima delle 0~1~:0~1~ - -{=================================== MISSION TABLE RAYS4 ===================================} - -[RAYS4_1:RAYS4] -~w~Gli Yardie sono sotto attacco a Newport. Elimina i ~r~Sindacco. - -[RAYS4_2:RAYS4] -~w~Parla con il ~b~capo degli Yardie. - -[RAYS4_3:RAYS4] -~w~Segui il ~b~capo degli Yardie. - -[RAYS4_4:RAYS4] -~r~Uno degli Yardie è stato ucciso! - -[RAYS4_5:RAYS4] -~w~Proteggi gli Yardie fino all'arrivo dell'ambulanza. - -[RAYS4_6:RAYS4] -~w~Torna a proteggere gli Yardie. - -[RAYS4_7:RAYS4] -~w~Apri la strada verso l'ambulanza agli Yardie. - -[RAYS4_8:RAYS4] -~w~Vai incontro all'~y~ambulanza. - -[RAYS4AA:RAYS4] -Cipriani, dobbiamo smetterla di incontrarci così. - -[RAYS4AB:RAYS4] -Concordo. - -[RAYS4AC:RAYS4] -Forza, rilassati un po'. - -[RAYS4AD:RAYS4] -Cos'hai per me, McAffrey? - -[RAYS4AE:RAYS4] -Gli Yardie stanno avendo un po' di problemi a mantenere il controllo del nuovo territorio a Newport. - -[RAYS4AF:RAYS4] -Pare che i Sindacco lo rivogliano. - -[RAYS4BA:RAYS4] -Rudyard, il mio ragazzo, è stato ferito! - -[RAYS4BB:RAYS4] -Forza, dobbiamo caricarlo su un'ambulanza! - -[RAYS4BC:RAYS4] -Merda, altri Sindacco! - -[RAYS4BD:RAYS4] -Io prenderò l'ambulanza, tu aiuta i miei uomini! - -[RAYS4BE:RAYS4] -Andiamocene da qui! - -[RAYS4BF:RAYS4] -Ecco l'ambulanza! - -[RAYS4BG:RAYS4] -Grazie signor Cipriani, ti dobbiamo un favore! - -{=================================== MISSION TABLE RAYS5 ===================================} - -[RAYS5_1:RAYS5] -NONE - -[RAYS5AA:RAYS5] -Niente fiori? - -[RAYS5AB:RAYS5] -Non sapevo fosse il tuo funerale. - -[RAYS5AC:RAYS5] -Sei un cabarettista Toni, molto divertente. - -[RAYS5AD:RAYS5] -I Forelli stanno facendo sul serio. - -[RAYS5AE:RAYS5] -Trafficano armi e tengono una parte del campionario per loro... - -[RAYS5AF:RAYS5] -...in caso di guai. - -[RAYS5AG:RAYS5] -Stanno spostando le armi a Fort Staunton con dei camion. - -[RAYS5AH:RAYS5] -È stato un piacere. - -[RAYS5AI:RAYS5] -Al solito. - -[RAY5_2:RAYS5] -Hanno chiamato i rinforzi. - -[RAY5_3:RAYS5] -~r~I Forelli hanno preso le munizioni! - -[RAY5_4:RAYS5] -Ehi, è Cipriani! - -[RAY5_5:RAYS5] -Facciamolo fuori! - -[RAY5_6:RAYS5] -Uno è andato, ora distruggi l'altro ~r~camion. - -[RAY5_1:RAYS5] -Distruggi i ~r~camion~w~ prima che arrivino a destinazione! - -[RAY5_7:RAYS5] -Distruggi il ~r~camion~w~ prima che possano recuperare le munizioni. - -[RAY5_8:RAYS5] -~r~Non sei riuscito a distruggere il camion in tempo! - -{=================================== MISSION TABLE SALH1 ===================================} - -[SLH1_F1:SALH1] -~r~Hai ucciso uno degli Hood. - -[SLH1_F2:SALH1] -~w~Attira i Forelli sfasciando le loro ~r~macchine. - -[SLH1_F3:SALH1] -~w~Vendicati dei ~r~Forelli. - -[SLH1_F4:SALH1] -~w~Attira fuori altri Forelli sfasciando un'altra ~r~macchina. - -[SLH1_F5:SALH1] -~w~Non lasciare indietro gli ~b~Hood~w~. - -[SLH1_B0:SALH1] -~w~OK amico, mettiamo la città a ferro e fuoco. - -[SLH1_B1:SALH1] -~w~Ehi! Torna qui, idiota! - -[SLH1_B2:SALH1] -~w~Dai coglione! Non ci entrerò mai qui dentro! - -[SLH1_B3:SALH1] -~w~Hai fatto bene! Non ti conviene andare in giro senza di me. - -[SLH1_B4:SALH1] -~w~Dannazione amico! È stata dura! - -[SLH1_B6:SALH1] -~w~...senza offesa eh, Toni. - -[SLH1_B7:SALH1] -~w~È giunta l'ora che gli Hood si rialzino e facciano la cosa giusta! - -[SLH1_B8:SALH1] -~w~Coraggio! Facciamoli fuori! - -[SLH1_C0:SALH1] -~w~Fratello mio! - -[SLH1_C1:SALH1] -~w~Ehi idiota, dove stai andando? - -[SLH1_C2:SALH1] -~w~E dove cazzo dovrei sedermi? - -[SLH1_C3:SALH1] -~w~Hai fatto bene! Non ti conviene andare in giro senza di me. - -[SLH1_C4:SALH1] -~w~Meeeeerda! Ce la siamo vista brutta! - -[SLH1_D0:SALH1] -~w~Ehi! Quella è la mia macchina! - -[SLH1_D1:SALH1] -~w~Così mi piace di più! - -[SLH1_E0:SALH1] -~w~Ma che cazzo succede? - -[SLH1_E1:SALH1] -~w~Succede che vi stiamo per prendere a calci nelle palle! - -[SLH1_X0:SALH1] -Got threat - -[SLH1_X1:SALH1] -Had threat - -[SLH1_X2:SALH1] -Find threat - -[SLH1_F0:SALH1] -~w~Raccogli gli ~b~Hood~w~ e poi attira l'attenzione dei ~r~Forelli~w~. - -[RUFJ_01:SALH1] -Ecco il suo avvocato, signor Leone. - -[RUFJ_02:SALH1] -Ehi amico, so chi è... - -[RUFJ_03:SALH1] -Coraggio, dammi un attimo di respiro. - -[RUFJ_04:SALH1] -Vai ragazzino, corri da mamma e salutamela tanto, 'o capisti? - -[RUFJ_05:SALH1] -Bene... hai cinque minuti di tempo. - -[RUFJ_06:SALH1] -Ehi, uh, Lionel, ti trovo in forma. - -[RUFJ_07:SALH1] -Guarda me invece! - -[RUFJ_08:SALH1] -Divento un onesto membro della comunità e finisco subito al fresco. - -[RUFJ_09:SALH1] -Sta mettendo a dura prova la mia natura di filantropo! - -[RUFJ_10:SALH1] -Naturalmente, signor Leone. - -[RUFJ_11:SALH1] -Stiamo facendo tutto il possibile per tirarla fuori di qui e uh... - -[RUFJ_12:SALH1] -farla tornare ad aiutare la comunità il prima possibile. - -[RUFJ_13:SALH1] -Certo. - -[RUFJ_14:SALH1] -Qualcuno deve pagare per questo oltraggio. - -[RUFJ_15:SALH1] -Sono stati quei bastardi dei Sindacco o quei succhiacazzi dei Forelli? Chi è stato? - -[RUFJ_16:SALH1] -Chi mi ha fregato? - -[RUFJ_18:SALH1] -Facciamo il culo a entrambi. - -[RUFJ_19:SALH1] -Per come la vedo io, delle sane mazzate vendicheranno questo oltraggio. - -[RUFJ_22:SALH1] -Grazie Toni, significhi tanto per me, lo sai. - -[RUFJ_23:SALH1] -Ascolta, avrai bisogno di un po' di rinforzi. - -[RUFJ_24:SALH1] -Chiama gli Hood, OK? - -[RUFJ_25:SALH1] -Come preferisce, signor Leone. - -[RUFJ_26:SALH1] -Va bene... adesso vattene... Lionel. - -[RUFJ_20:SALH1] -- Bastardi. ~n~ - Per me sarà un piacere. - -{=================================== MISSION TABLE SALH2 ===================================} - -[SALH2AA:SALH2] -~w~Ehi Sal! Sono io... Toni. - -[SALH2AB:SALH2] -~w~Toni! Che bello sentirti ragazzo! - -[SALH2AC:SALH2] -~w~Questi cazzoni non mi permettono di vedere nessuno! - -[SALH2AD:SALH2] -~w~Ascolta, ho un sacco di faccende di cui occuparmi. - -[SALH2AE:SALH2] -~w~Uccidi Paulie Sindacco. La sua famiglia è finita in questa città. - -[SALH2AF:SALH2] -~w~Crede di potersene andare come se non avesse debiti da saldare. - -[SALH2AG:SALH2] -~w~Sono in galera per colpa di quel bastardo! - -[SALH2AH:SALH2] -~w~Quel figlio di puttana deve pagare. - -[SALH2O1:SALH2] -~w~Intercetta Paulie Sindacco all'edificio di controllo della ~y~Cochrane Dam. - -[SALH2F1:SALH2] -~r~È scappato! Salvatore non sarà contento! - -[SALH2CA:SALH2] -~w~Idioti! Quello è Toni Cipriani! Fatelo fuori! - -[SALH2BA:SALH2] -~w~Ehi Toni! Perché non nuoti fin qui e mi baci il culo? - -[SALH2BB:SALH2] -~w~Ehi stronzo, quaggiù! - -[SALH2BI:SALH2] -~w~Porta i miei saluti a Salvatore. Gli spedirò una cartolina! - -[SALH2BC:SALH2] -~w~Ehi babbeo, cos'hai intenzione di fare adesso? - -[SALH2BE:SALH2] -~w~Sei carne morta! - -[SALH2BF:SALH2] -~w~Sei fottuto! - -[SALH2BG:SALH2] -~w~Sorpresa, sacco di merda! - -[SALH2BH:SALH2] -~w~Signore e signori, Paulie Sindacco ha lasciato l'edificio! - -[SALH2BD:SALH2] -~w~Testa di cazzo, non ce la farai mai a prendermi! - -[SALH2O2:SALH2] -~w~Uccidi ~r~Paulie Sindacco~w~. Non farlo fuggire! - -[SALH2O3:SALH2] -Recupera un mezzo e tendi un'imboscata a ~r~Paulie~w~ dalla riva. - -{=================================== MISSION TABLE SALH3 ===================================} - -[SALH3_1:SALH3] -~w~Sal? Come va? - -[SALH3_2:SALH3] -~w~Fottutamente bene! Da Dio! - -[SALH3_3:SALH3] -~w~Punto uno. Il nuovo sindaco sta facendo di tutto per impedirmi la libertà provvisoria. - -[SALH3_4:SALH3] -~w~Punto due. Siamo in guerra con la stramaledetta Triade e i Diablo. - -[SALH3_5:SALH3] -~w~Punto tre. Ho sentito che la Yakuza vuole approfittarne per conquistare la città. - -[SALH3_6:SALH3] -~w~A parte queste piccole sciocchezze, va tutto bene! - -[SALH3_7:SALH3] -~w~Dopo tutti questi anni al potere, siamo stati scaricati come merda nel cesso! - -[SALH38:SALH3] -~w~Capo, posso occuparmi io di tutto quanto. - -[SALH39:SALH3] -~w~La Yakuza ha ricevuto un carico d'armi ad Aspatria. - -[SALH310:SALH3] -~w~Adesso niente potrà fermarla. - -[SALH311:SALH3] -~w~Vedremo. - -[SALH3_A:SALH3] -~w~Controlla il ~y~covo della Yakuza. - -[SALH3C1:SALH3] -~w~Trova un modo per entrare nel ~y~covo. - -[SALH3C2:SALH3] -~w~Ma cazzo! Non ci posso credere! - -[SALH3C3:SALH3] -~w~Distruggi il ~r~carro armato! - -[SALH3C4:SALH3] -~w~Ma che cazzo succede? - -[SALH3C5:SALH3] -~w~Uccidiamolo! - -[SALH3C6:SALH3] -~w~Il ~r~carro armato ~w~è blindato. Le armi convenzionali gli faranno il solletico a questo mostro! - -[SALH3G1:SALH3] -~w~Ehi 'amico', non c'è niente da vedere qui! - -[SALH3G2:SALH3] -~w~Sembra che l'ingresso sia riservato ai soli membri della Yakuza. - -[SALH3G3:SALH3] -~w~Porta le chiappe fuori da lì! - -[SALH3_B:SALH3] -~w~La macchina della Yakuza li ha ingannati! - -[SALH3_C:SALH3] -~w~Guida fino al ~y~covo~w~ e dai un'occhiata. - -{=================================== MISSION TABLE SALH4 ===================================} - -[SALH4_1:SALH4] -~w~Sal? - -[SALH4_2:SALH4] -~w~Anthony! Sto per uscire! - -[SALH42A:SALH4] -~w~Oggi c'è il mio ricorso in appello! - -[SALH4_3:SALH4] -~w~Ottimo! - -[SALH44C:SALH4] -~w~Certo Toni. - -[SALH44E:SALH4] -~w~Ehi, stanno arrivando le guardie... Ci vediamo sul davanti. - -[SALH4_5:SALH4] -~w~Recupera una macchina della polizia! - -[SALH45A:SALH4] -~w~Hai bisogno di una macchina della polizia o spaventerai il convoglio! - -[SALH4_6:SALH4] -~w~Vai a prendere posizione alla ~y~stazione di polizia. - -[SALH4_7:SALH4] -~w~Porca puttana! - -[SALH4_8:SALH4] -~w~Proteggi il ~b~furgone cellulare~w~ e fallo arrivare intero a destinazione! - -[SALH4_9:SALH4] -~w~Non allontanarti troppo dal ~b~furgone cellulare! - -[SALH410:SALH4] -~w~Stai perdendo il ~b~furgone cellulare! - -[SALH411:SALH4] -~r~Hai perso il furgone cellulare! Sal è stato giustiziato! - -[SALH412:SALH4] -~r~Il furgone cellulare è stato distrutto! - -[SALH413:SALH4] -~w~Non far incazzare i poliziotti, rovinerai i piani di Sal per la libertà provvisoria! - -[SALH416:SALH4] -~w~Scorta il ~b~convoglio~w~ a destinazione. - -[SALH417:SALH4] -~r~Hai fallito! I poliziotti hanno annullato l'udienza! - -[SALH420:SALH4] -~r~Sal è stato ucciso! - -[SALH421:SALH4] -~r~Hai perso il furgone cellulare! - -[SALH422:SALH4] -~w~Seminali o attirerai troppa attenzione sul convoglio! - -[SALH424:SALH4] -~w~Elimina il ~y~posto di blocco! - -[SALH415:SALH4] -~w~È bello essere di nuovo liberi. - -[SALH418:SALH4] -~w~Ascolta, voglio fare un salto a casa e cambiarmi questi stracci, va bene? - -[SALH419:SALH4] -~w~Ci vediamo là. - -[SALH414:SALH4] -~w~Posto di blocco illegale segnalato in zona... - -[SALH44A:SALH4] -~w~Se io sono qui dentro, chi li fermerà? - -[SALH4_4:SALH4] -~w~Sì, ma questi Siciliani non vogliono che arrivi davanti alla corte. - -[SALH44B:SALH4] -~w~Ehi, prima dovranno passare sul mio cadavere, Sal. - -[SALH44D:SALH4] -~w~Assicurati che riesca ad arrivare davanti alla corte! - -{=================================== MISSION TABLE SALH5 ===================================} - -[SALH51A:SALH5] -~w~Sbrigati, Toni. - -[SALH51B:SALH5] -~w~Se ho ragione, i Siciliani staranno andando dal sindaco. - -[SALH51C:SALH5] -~w~Dobbiamo arrivare prima di loro. - -[SALH511:SALH5] -~w~Brutta storia. - -[SALH554:SALH5] -~w~Accelera Toni! - -[SALH512:SALH5] -~w~Hai lasciato indietro ~b~Sal~w~. Torna a prenderlo. - -[SALH513:SALH5] -~w~Maledizione! Sono già qui! - -[SALH560:SALH5] -~w~Falli fuori Toni! - -[SALH561:SALH5] -~w~Io mi occuperò del sindaco! - -[SALH514:SALH5] -~w~Schifosi bastardi, l'hanno già preso! - -[SALH555:SALH5] -~w~Forza Toni! Da questa parte! - -[SALH515:SALH5] -~w~Eccoli! - -[SALH517:SALH5] -~w~Da dove arrivano quei bastardi? - -[SALH556:SALH5] -~w~Dietro di noi Toni! - -[SALH562:SALH5] -~w~Toni, davanti! - -[SALH519:SALH5] -~w~Toni! Elimina l'elicottero! - -[SALH522:SALH5] -~w~Pensano di potersi nascondere intorno al faro! - -[SALH557:SALH5] -~w~Fai fuori quei bastardi! - -[SALH558:SALH5] -~w~Bel colpo Toni! - -[SALH559:SALH5] -~w~Facciamola finita. - -[SALH526:SALH5] -~w~Io guido, tu coprici. - -[SALH527:SALH5] -~w~OK Toni... eccoci qui. - -[SALH528:SALH5] -~w~Quanti bastardi ci sono su questo scoglio? - -[SALH553:SALH5] -~w~Spari a un bastardo e ne arriva subito un altro che ti morde il culo! - -[SALH523:SALH5] -~r~Hai fatto uccidere Salvatore dai Siciliani! - -[SALH524:SALH5] -~r~Salvatore è stato ucciso! - -[SALH552:SALH5] -~r~Il sindaco è stato ucciso! - -[SALH573:SALH5] -~r~Hai distrutto la tua barca! Li hai persi! - -[SALH516:SALH5] -~w~Take out the guards and then let's get after them in that boat! - -[SALH518:SALH5] -~w~Another ~r~boat~w~ incoming... - -[SALH525:SALH5] -~w~Ha! They've left a rocket launcher on this thing! - -[SALH520:SALH5] -~y~I'll move closer to shore so we're more protected... Take it down! - -[SALH521:SALH5] -~w~Good work! Let's move out! - -[SALH53A:SALH5] -~w~Torini... torna tutto. - -[SALH53B:SALH5] -~w~Lascialo andare! - -[SALH53C:SALH5] -~w~Il sindaco è mio! - -[SALH53D:SALH5] -~w~QUESTA CITTÀ è mia! - -[SALH53E:SALH5] -~w~Salvatore... - -[SALH53F:SALH5] -~w~La Sicilia non ha mai voluto questo schifo di città. - -[SALH53G:SALH5] -~w~Ma finiti i contributi, cos'altro potevamo fare? - -[SALH53H:SALH5] -~w~Niente di personale. - -[SALH53I:SALH5] -~w~Niente di personale? - -[SALH53J:SALH5] -~w~Dopo quello che mi avete fatto passare! - -[SALH53K:SALH5] -~w~Ti strapperò il cuore! - -[SALH5TD:SALH5] -~w~Abbatti l'~r~elicottero di Massimo! - -[SALH5MO:SALH5] -~r~Massimo~w~ si sta muovendo! - -[SALH5GO:SALH5] -~r~Massimo è scappato! - -[SALH571:SALH5] -~w~Raggiungi il ~y~molo. - -[SALH570:SALH5] -~w~Fai fuori quei ~r~criminali Siciliani! - -[SALH572:SALH5] -~w~Elimina l'~r~informatore Siciliano! - -[SALH510:SALH5] -~w~Raggiungi il ~y~municipio~w~. Fai attenzione ai criminali Siciliani! - -[SICI_01:SALH5] -No, ti richiamo dopo... - -[SICI_04:SALH5] -Ehi, siamo tornati entrambi. Tu ed io! - -[SICI_05:SALH5] -Ce l'abbiamo fatta, eh? - -[SICI_06:SALH5] -Certamente. - -[SICI_07:SALH5] -Abbiamo sistemato i Forelli... - -[SICI_08:SALH5] -e spedito i Sindacco in fondo al fottuto oceano. - -[SICI_09:SALH5] -Adesso sono al telefono con i Siciliani, vogliono la pace. - -[SICI_10:SALH5] -Tutti vogliamo la pace! Ma a modo mio, non a modo loro. - -[SICI_11:SALH5] -Adesso comando io il gioco. - -[SICI_12:SALH5] -Nessun coglione del vecchio continente mi dirà più cosa devo fare. - -[SICI_13:SALH5] -Ho detto loro di andare a farsi fottere. - -[SICI_14:SALH5] -Davvero? Crede sia stato saggio? - -[SICI_15:SALH5] -Ehi, adesso sono il capo! IO! - -[SICI_16:SALH5] -Andiamo a fare una visitina al sindaco a proposito delle accuse a mio carico... - -[FIN1_01:SALH5] -Ehi, signor sindaco! - -[FIN1_03:SALH5] -Certo, grazie. - -[FIN1_04:SALH5] -E ciò vuol dire... - -[FIN1_05:SALH5] -Uh... che la città vi è grata? - -[FIN1_06:SALH5] -Riprova. - -[FIN1_07:SALH5] -Che lavora per me, giusto? - -[FIN1_08:SALH5] -Certamente, lavoro per lei. - -[FIN1_09:SALH5] -Bene, non ci richiami. Ci faremo vivi noi. - -[FIN1_10:SALH5] -E adesso fuori dalle palle. - -[FIN1_11:SALH5] -Grazie, signor Leone. - -[FIN1_12:SALH5] -Toni, ce l'abbiamo fatta: siamo noi al comando. Tu ed io. - -[FIN1_13:SALH5] -Siamo una bella squadra, vero? - -[FIN1_14:SALH5] -Ora ho bisogno che tu faccia ancora una cosetta per me: - -[FIN1_15:SALH5] -ho alcuni problemi da risolvere... - -[FIN2_01:SALH5] -Ehi Zio! Come va? - -[FIN2_02:SALH5] -Mi sembri in forma. - -[FIN2_03:SALH5] -Ahhhh Salvatore, volevamo solamente fare chiarezza. - -[FIN2_04:SALH5] -Sì Zio, lo apprezzo davvero. - -[FIN2_07:SALH5] -Bene, molto bene. - -[FIN2_08:SALH5] -Piccolo schifoso bastardo. - -[FIN2_09:SALH5] -Non mi fiderei mai di uno stronzo come lui. - -[FIN2_23:SALH5] -Giorno di gloria per i cani rognosi... - -[FIN2_10:SALH5] -Sì, ma ce l’abbiamo fatta. - -[FIN2_11:SALH5] -Sì, abbiamo fatto pulizia, sei stato in gamba Toni, sei stato davvero in gamba. - -[FIN2_12:SALH5] -Ho sempre saputo che sei un bravo ragazzo, mi hai salvato il culo un po' di volte. - -[FIN2_13:SALH5] -E io apprezzo questo tipo di lealtà. - -[FIN2_14:SALH5] -Grazie. - -[FIN2_15:SALH5] -Un gran lavoratore, mi piace. Merita rispetto. - -[FIN2_19:SALH5] -Vuoi dare un prezzo all'amicizia? - -[FIN2_20:SALH5] -Il tipo di amicizia che abbiamo tra noi? - -[FIN2_21:SALH5] -Vergogna! Vieni qui. - -[FIN2_22:SALH5] -Sei un bravo ragazzo, ma vergognati. - -[SICI_02:SALH5] -- Ehi Toni! ~n~ - Sal! Finalmente è tornato al suo posto. - -[FIN2_05:SALH5] -- Quindi siamo in pace ora, tu e il vecchio continente? ~n~ - Certamente. Io e tutta la mia gente. - -[FIN2_16:SALH5] -- Perciò ti ho portato quel mezzo milione promesso. ~n~ - Mezzo? Ma come, pensavo avesse detto un paio... - -[FIN2_18:SALH5] -Ho detto un milione di dollari! Ma come... - -[FIN1_02:SALH5] -Le abbiamo appena salvato la vita da un branco di Siciliani impazziti. - -{=================================== MISSION TABLE DONH1 ===================================} - -[DONH1JA:DONH1] -~w~Toni, il mio vecchio mentore, Avery Carrington, arriverà oggi in città... - -[DONH1JB:DONH1] -~w~Ho scoperto che sta lavorando per la Panlantic Corporation. - -[DONH1JC:DONH1] -~w~Farebbero qualsiasi cosa per appropriarsi di alcuni immobili. - -[DONH1JD:DONH1] -~w~DOBBIAMO recuperare i suoi progetti per acquisire le zone giuste. - -[DONH1JE:DONH1] -~w~Coraggio Toni! Stagli dietro! - -[DONH1CA:DONH1] -~w~Uh Toni, se recuperassi un veicolo mi faresti un favore. - -[DONH1DA:DONH1] -~w~All'aeroporto, Toni. - -[DONH1DB:DONH1] -~w~Non abbiamo tempo da perdere - -[DONH1EA:DONH1] -~w~Oh sì, questo è uno dei miei piani migliori... - -[DONH1EB:DONH1] -~w~Non credevo di essere così in gamba... - -[DONH1EC:DONH1] -~w~Con questo, guadagnerò una fortuna... - -[DONH1ED:DONH1] -~w~Sissignore, una fortuna... - -[DONH1EE:DONH1] -~w~Persino Avery sarebbe orgoglioso di me. - -[DONH1GA:DONH1] -~w~Eccolo! - -[DONH1GB:DONH1] -~w~Uccidilo Toni! - -[DONH1GC:DONH1] -~w~Ho bisogno di quei progetti! - -[DONH1HA:DONH1] -~w~Coraggio Toni! Sta scappando! - -[DONH1IA:DONH1] -~w~Toni, sei stato grandioso! - -[DONH1IB:DONH1] -~w~E ora torniamo alla mia dimora per stare al sicuro... - -[DONH1O0:DONH1] -~w~Porta Donald Love all'~y~aeroporto. - -[DONH1O1:DONH1] -~w~Uccidi ~r~Avery Carrington~w~ e recupera i suoi progetti! - -[DONH1O2:DONH1] -~r~Avery~w~ sta fuggendo! Fermalo! - -[DONH1O3:DONH1] -~r~Avery~w~ è salito su un altro veicolo. Non lasciarlo fuggire! - -[DONH1O4:DONH1] -~r~Avery~w~ sta scappando! Prendilo! - -[DONH1O5:DONH1] -~w~Vai a prendere ~b~Donald Love. - -[DONH1O6:DONH1] -~w~Ottimo lavoro! Recupera i ~g~progetti. - -[DONH1O7:DONH1] -~w~Porta Donald e i progetti al ~y~centro d'accoglienza. - -[DONH1O8:DONH1] -~w~Hai perso i ~g~progetti~w~! Torna indietro a prenderli. - -[DONH1OA:DONH1] -~w~Ti sono addosso! ~r~Avery~w~ sta fuggendo! Uccidilo! - -[DONH1OB:DONH1] -~w~Hai bisogno di un veicolo. - -[DONH1OC:DONH1] -~w~Non lasciare indietro ~b~Donald! - -[DONH1OD:DONH1] -~w~Attento! I progetti andranno perduti se la ~r~macchina di Avery~w~ verrà distrutta con lui a bordo! - -[DONH1OE:DONH1] -~r~Avery Carrington~w~ sta fuggendo. Inseguilo! - -[DONH1F0:DONH1] -~r~I progetti sono stati distrutti! - -[DONH1F1:DONH1] -~r~Avery Carrington è fuggito! - -[DONH1F2:DONH1] -~r~Donald è stato ucciso! - -[DONH1OF:DONH1] -~r~Avery Carrington~w~ è quasi giunto a destinazione. Fermalo! - -[DONH1O9:DONH1] -~w~Non lasciare indietro ~b~Donald~w~! Quei Colombiani lo uccideranno! - -[DONH1FA:DONH1] -~w~Hmmm, la Panlantic deve aver assunto il Cartello per proteggere Avery. - -[LAND_01:DONH1] -So a cosa stai pensando Toni: la caduta dei potenti, - -[LAND_02:DONH1] -ma è solo una pausa temporanea, amico mio. - -[LAND_03:DONH1] -OK. - -[LAND_04:DONH1] -Oh, non fare il permaloso. - -[LAND_05:DONH1] -So che ho detto delle brutte cose sul fatto che fosse colpa tua e tutto il resto, - -[LAND_06:DONH1] -ma l'arroganza è una brutta bestia, almeno quanto le termiti. - -[LAND_07:DONH1] -E credimi, ultimamente convivo con entrambi. - -[LAND_08:DONH1] -Adesso, tu e io... stiamo tornando! - -[LAND_09:DONH1] -Io non me ne sono mai andato... - -[LAND_10:DONH1] -Siamo in questa storia insieme, amigo. - -[LAND_11:DONH1] -No, non lo siamo. - -[LAND_12:DONH1] -Ti prego! - -[LAND_13:DONH1] -Ti prego... ti prego... scordatelo, amico. - -[LAND_18:DONH1] -Andiamo, te ne parlerò in macchina. - -[LAND_19:DONH1] -Spero tu abbia una macchina, la mia è... ehm... dal meccanico! - -[LAND_16:DONH1] -- 10% di cosa? Di questo cesso? Oh, sei troppo gentile. ~n~ - No... di una torta più grossa. - -[LAND_14:DONH1] -- 'È tutta colpa tua'. Patetico. ~n~ - 10%? - -{=================================== MISSION TABLE DONH2 ===================================} - -[DONH2_1:DONH2] -~w~Vai alla ~y~chiesa~w~ di Staunton Island. - -[DONH2_2:DONH2] -~w~Picchia il ~r~reporter ~w~oppure minaccialo con una pistola per farti dare le foto. - -[DONH2_3:DONH2] -~w~Hai delle foto per me. Dove sono? - -[DONH2_4:DONH2] -~w~Non farmi del male! - -[DONH2_5:DONH2] -~w~Dove sono quelle cazzo di foto? - -[DONH2_6:DONH2] -~w~Non so di cosa tu stia parlando! - -[DONH2_7:DONH2] -~w~Dove sono? - -[DONH2_8:DONH2] -~w~Ti prego, no! - -[DONH2_9:DONH2] -~w~Avanti fighetta! Dammele! - -[DONH210:DONH2] -~w~OK! OK! - -[DONH2EX:DONH2] -~w~Ti dirò dove sono le foto! - -[DONH211:DONH2] -~w~...sono nel mio garage! - -[DONH212:DONH2] -~w~Vai al ~y~garage del reporter. - -[DONH213:DONH2] -~w~Aiuto! Aiuto! Mi stanno rapendo! - -[DONH214:DONH2] -~w~Aiuto! Vuole uccidermi! - -[DONH215:DONH2] -~w~...Sono troppo intelligente per morire! - -[DONH216:DONH2] -~w~...Non posso morire, sto ancora lavorando sul mio romanzo! - -[DONH217:DONH2] -~w~Il mio editore non ha mai avvertito di questi problemi! - -[DONH218:DONH2] -~w~Non muovere un dito, faccia da culo! - -[DONH219:DONH2] -~w~Fermati, testa di cazzo! - -[DONH220:DONH2] -~w~Cazzo, smettila di tentare di scappare! - -[DONH221:DONH2] -~w~Toni! Finalmente! - -[DONH222:DONH2] -~w~Un giornalista ci ha visti mentre uccidevamo Avery! - -[DONH223:DONH2] -~w~Ha delle foto! Oddio! Sono finito! - -[DONH224:DONH2] -~w~Datti una calmata! Dov'è il reporter? - -[DONH225:DONH2] -~w~Oh, Toni, sei un uomo meraviglioso! - -[DONH226:DONH2] -~w~Apparentemente sembra lavori sotto copertura in una chiesa di Staunton Island. - -[DONH227:DONH2] -~w~Recupera le foto e mandalo al Creatore! - -[DONH228:DONH2] -~r~Ned è scappato! - -[DONH230:DONH2] -~w~Uccidi ~r~Ned Burner. - -[DONH231:DONH2] -~r~Ned è morto prima che tu potessi recuperare le foto! - -[DONH229:DONH2] -STRONZATE! - -[DONCUTA:DONH2] -~w~Eccole... prendile! Non le ho ancora sviluppate! - -[DONCUTB:DONH2] -~w~Sei un pezzo di merda! - -[DONH2SM:DONH2] -Terrore - -[DONH233:DONH2] -Continua a intimidire il reporter: se il suo indicatore di terrore scenderà troppo, potrebbe tentare di scappare. - -[DONH2LB:DONH2] -~w~Hai lasciato indietro il ~b~reporter~w~, torna a prenderlo. - -[DONH2LC:DONH2] -~r~Hai abbandonato il reporter. - -{=================================== MISSION TABLE DONH3 ===================================} - -[DONH3I1:DONH3] -~w~Sono tornato! - -[DONH3I2:DONH3] -~w~Resuscitato, Toni! Rinato, come la fenice che risorge dalle sue ceneri. - -[DONH3I3:DONH3] -~w~Come Lazzaro... sì... Lazarus Love! - -[DONH3I4:DONH3] -~w~Ah, sarò di nuovo ricco! - -[DONH3I5:DONH3] -~w~La Panlantic mi pagherà una fortuna per completare questo affare! - -[DONH3I6:DONH3] -~w~Ce l'abbiamo fatta Toni! - -[DONH3I7:DONH3] -~w~Se lo dici te. - -[DONH3I8:DONH3] -~w~È l'ora di organizzare una festicciola con un elenco di invitati esclusivi. - -[DONH3I9:DONH3] -~w~Andiamo! - -[DONH3C1:DONH3] -~w~Toni, abbiamo bisogno di un mezzo, non abbiamo troppo tempo. - -[DONH3L1:DONH3] -~w~Hai bisogno di ~b~Donald.~w~ Torna a prenderlo! - -[DONH3L2:DONH3] -~w~Forza Toni! Non ci rimane molto tempo! - -[DONH3L3:DONH3] -~w~Rimetti a posto quel cadavere! - -[DONH3_5:DONH3] -~w~Toni, morivo dalla voglia di organizzare questa festa. - -[DONH35D:DONH3] -~w~Proprio come i miei ospiti. - -[DONH35A:DONH3] -~w~Trova un ~b~cadavere. - -[DONH35B:DONH3] -~w~Recupera il ~b~cadavere di Avery. - -[DONH35C:DONH3] -~w~Recupera ~b~il cadavere di Ned. - -[DONH3_6:DONH3] -~w~Porta Donald e Avery all'~y~aeroporto. - -[DONH36A:DONH3] -~w~Ehi, riporta qui quell'ambulanza! - -[DONH36B:DONH3] -~w~Avery. - -[DONH36C:DONH3] -~w~Oh, Avery! Sei invecchiato dall'ultima volta che ci siamo visti. - -[DONH36D:DONH3] -~w~...mi hai regalato delle perle di saggezza. - -[DONH36E:DONH3] -~w~...e presto pasteggerò ancora! - -[DONH36F:DONH3] -~w~...Oddio! Ha una parrucca! - -[DONH36G:DONH3] -~w~Toni. Portaci al jet privato di Avery all'aeroporto. - -[DONH3_7:DONH3] -~w~Porta Donald e Ned all'~y~aeroporto. - -[DONH37F:DONH3] -~w~Toni. Porta me e Ned all'aeroporto. - -[DONH37A:DONH3] -~w~Ehi! Quel tipo sta rubando il cadavere! - -[DONH37B:DONH3] -~w~Ah, Ned Burner, reporter d'assalto. - -[DONH37C:DONH3] -~w~Ah, Ned. Ti darò l'esclusiva per la - -[DONH37D:DONH3] -~w~mia meravigliosa festa. - -[DONH37E:DONH3] -~w~Non è roba da tutti. - -[DONH37G:DONH3] -~w~C'è da morire per avere un invito. - -[DONH3_8:DONH3] -~w~Porta il cadavere di Avery all'~y~aeroporto. - -[DONH3_9:DONH3] -~w~Porta il cadavere di Ned all'~y~aeroporto. - -[DONH3A1:DONH3] -~w~Porta qui le vecchie ossa di Avery prima che la sicurezza ci scopra. - -[DONH3A2:DONH3] -~w~È quasi l'ora della sua autopsia. - -[DONH3N1:DONH3] -~w~Porta qui il cadavere di Ned prima che la sicurezza ci scopra. È quasi l'ora della sepoltura. - -[DONH3F1:DONH3] -~r~Love è morto. - -[DONH3F2:DONH3] -~r~Hai perso il corpo di Avery! - -[DONH3F3:DONH3] -~r~Hai perso il corpo di Ned! - -[DONH3C2:DONH3] -~w~La sicurezza dell'aeroporto chiuderà l'hangar di Avery Carrington alle 22:00. - -[DONH3F4:DONH3] -~r~Troppo tardi! La sicurezza dell'aeroporto ha chiuso l'hangar! - -[DONH3F5:DONH3] -~r~Troppo tardi! La sicurezza dell'aeroporto ha trovato Donald con il cadavere di Avery! - -[DONH3W1:DONH3] -~w~Muoviti! La sicurezza dell'aeroporto chiuderà l'hangar di Avery Carrington alle 22:00. - -[DONH3F6:DONH3] -~r~Troppo tardi! La sicurezza dell'aeroporto ha trovato Donald con il cadavere di Ned! - -{=================================== MISSION TABLE DONH4 ===================================} - -[DONH4A:DONH4] -~w~Donald mi ha mandato qui per prelevare un po' di ehm... roba. - -[DONH4B:DONH4] -~w~Perfetto. - -[DON4EX1:DONH4] -~w~Ho quello che vi serve ragazzi, ma vi costerà un po' di soldi. - -[DON4EX2:DONH4] -~w~Don ha detto che mi avresti pagato subito. Ti rimborserà più tardi. - -[DONH4C:DONH4] -~w~...ci avrei scommesso. - -[DONH4D:DONH4] -~w~Sì, come no! Intestalo a 'Super cazzone'! - -[DONH4E:DONH4] -~w~Dov'è la merce? - -[DONH4F:DONH4] -~w~Calma amico! Roba del genere necessita di tempo per essere assemblata. - -[DON4EX4:DONH4] -~w~Mi farò vivo. - -[DONH4G:DONH4] -Missione completata! - -[DONH4_1:DONH4] -NESSUNO - -[DONH4PS:DONH4] -~w~8-Ball ti farà sapere quando il materiale è pronto. - -{=================================== MISSION TABLE DONH5 ===================================} - -[DONH5_0:DONH5] -Furgone - -[DNH5_A0:DONH5] -~w~Ascolta amico, questo furgone è carico di brutto, perciò fai attenzione - -[DNH5_A1:DONH5] -~w~Pronto? Tutto a posto. - -[DNH5_A2:DONH5] -~w~Certo, te lo passo subito. - -[DNH5_A3:DONH5] -~w~Toni, siamo a un passo dal diventare clamorosamente ricchi. - -[DNH5_A4:DONH5] -~w~Abbiamo esaminato i progetti di Fort Staunton. Il suo punto debole è la vecchia metropolitana che passa nel sottosuolo. - -[DNH5_A5:DONH5] -~w~Ottimo lavoro, Don... ora devo solo occuparmi di un centinaio di italiani pazzi. - -[DNH5_A6:DONH5] -~w~Vai verso il tunnel Porter e troverai facilmente l'ingresso. - -[DNH5_B0:DONH5] -~w~Ehi! Tu non dovresti essere qui! - -[DNH5_B1:DONH5] -~w~Vattene immediatamente! - -[DNH5_C0:DONH5] -~w~Sali sul ~b~furgone. - -[DNH5_C4:DONH5] -~w~Piazza gli ~y~esplosivi! - -[DNH5_C5:DONH5] -~w~Piazza i rimanenti ~y~esplosivi! - -[DNH5_C6:DONH5] -~w~Fuggi dall'~y~ingresso della metropolitana! - -[DNH5_D0:DONH5] -~w~I Forelli? Cosa ci fanno qui? - -[DNH5_D1:DONH5] -~w~Non permettere che i Forelli distruggano il furgone! - -[DNH5_1:DONH5] -~w~Usa un veicolo per superare le barriere. - -[DONH5_2:DONH5] -~w~Sfonda le barriere a maggiore velocità! - -[DNH5_X0:DONH5] -~r~Hai distrutto il furgone! - -[DNH5_C1:DONH5] -~w~Torna sul ~b~furgone. - -[DNH5_C2:DONH5] -~w~Vai a una delle ~y~entrate~w~ del tunnel di Porter Road. - -[DNH5_C3:DONH5] -~w~Segui il ~y~tunnel. - -[DNH5_E0:DONH5] -~w~Uccidi quei ~r~lavoratori del cantiere. - -[DNH5_E1:DONH5] -~w~Uccidi quel ~r~lavoratore del cantiere. - -[DNH5_E2:DONH5] -~w~I Forelli hanno bloccato la via di ritorno. Trova un'altra ~y~uscita. - -[DNH5_E3:DONH5] -~w~Usa un veicolo per superare le barriere e raggiungi l'~y~uscita. - -[DNH5_X1:DONH5] -~r~I Forelli hanno distrutto il furgone! - -[DNH5_W1:DONH5] -~w~Non allontanarti troppo dal ~b~furgone! - -[DNH5_E4:DONH5] -~w~Non lasciare alcun ~r~testimone. - -{=================================== MISSION TABLE DONH6 ===================================} - -[DONH6_V:DONH6] -~r~v1,00 - -[DONH6_1:DONH6] -~w~Raggiungi l'~y~abitazione. - -[DONH6_5:DONH6] -~w~Oddio Toni! Fai qualcosa! - -[DONH6_6:DONH6] -~w~Hai ~1~ secondi per tornare nella proprietà! - -[DONH6_7:DONH6] -Tempo Di Ritorno - -[DONH6_8:DONH6] -~r~Non sei riuscito a tornare in tempo alla villa... Donald è stato giustiziato! - -[DONH610:DONH6] -~w~Recupera una macchina! - -[DONH611:DONH6] -~w~Oddio! Ce ne sono ancora! - -[DONH624:DONH6] -~W~Parti a razzo Toni! - -[DONH612:DONH6] -~w~Ce l'abbiamo fatta! - -[DONH623:DONH6] -~w~Portami al jet di Avery. Lui e Ned sono ancora a bordo, quindi non viaggerò da solo. - -[DONH622:DONH6] -~w~Vai al ~y~jet di Avery. - -[DONH613:DONH6] -~w~Andiamo all'aeroporto. - -[DONH625:DONH6] -~w~Vai all'~y~aeroporto. - -[DONH615:DONH6] -~w~Hai lasciato indietro ~b~Donald~w~! Torna a prenderlo! - -[DONH619:DONH6] -~r~Donald è stato ucciso! - -[DONH6_9:DONH6] -~w~D? Forza! Andiamo! - -[DONH614:DONH6] -~w~Sei sicuro che sia tutto a posto, Toni? - -[DONH616:DONH6] -~w~Oh... il mio... GIARDINO! - -[DOH616A:DONH6] -~w~Guarda cos'hai fatto al mio bellissimo giardino! - -[DONH617:DONH6] -~w~D... o pensi ai fiori, o eviti i fori. Scegli tu. - -[DONH618:DONH6] -~w~Portami all'aeroporto! - -[DONH620:DONH6] -~w~Amico, non sai quanto odio i saluti. - -[DOH620A:DONH6] -~w~'Adieu'. - -[DONH621:DONH6] -~w~D... è stato istruttivo. - -[DONH66S:DONH6] -~w~Hai ~1~ secondo per tornare nella proprietà! - -[DONH66A:DONH6] -~w~Elimina quei ~r~gangster Colombiani! - -[DONP_01:DONH6] -Bruuuchi... bruuuchi... bruuu... bruu... br... No, non va bene. - -[DONP_02:DONH6] -Ohmmmmmmmm. Maledizione. - -[DONP_03:DONH6] -È così... Oh merda, se avessi qualcosa di freddo da stringere, - -[DONP_06:DONH6] -Antonio! Oh, sono alla ricerca dell'illuminazione spirituale, - -[DONP_07:DONH6] -purtroppo oggi non è giornata... - -[DONP_08:DONH6] -Forse domani. - -[DONP_09:DONH6] -Nel messaggio sembravi un po' preoccupato. - -[DONP_10:DONH6] -Preoccupato? Sto meditando. Preoccupato, moi? - -[DONP_11:DONH6] -Sono in armonia con il cosmo. È praticamente impossibile. - -[DONP_12:DONH6] -Oh merda, hai ragione. - -[DONP_13:DONH6] -Uhm, stanno arrivando un mucchio di Colombiani - -[DONP_14:DONH6] -che potrebbero uccidermi se non terrò la bocca chiusa e non li pagherò. - -[DONP_15:DONH6] -Oh! Questo spiega tutti quei Colombiani che si aggirano qua fuori. - -[DONP_16:DONH6] -Oh merda! Ti prego Antonio, devi portarmi fuori di qui! - -[DONP_17:DONH6] -Non voglio... ti prego! Non voglio morire! Non voglio... - -[DONP_18:DONH6] -Ma non eri in armonia con il cosmo, eh? - -[DONP_19:DONH6] -Grazie Toni! Non te ne pentirai, te lo prometto. - -[DONP_04:DONH6] -- sarebbe tutto più semplice... ~n~ - Che succede, D? - -{=================================== MISSION TABLE TOSH1 ===================================} - -[TOSH1AB:TOSH1] -~w~Fermatelo! - -[TOSH1AC:TOSH1] -~w~Prendetelo! - -[TOSH1AD:TOSH1] -~w~Sparategli! - -[TOSH1AA:TOSH1] -~w~Eccolo! - -[TOSH120:TOSH1] -~w~Ruba ~b~il carico d'armi~w~ della Yakuza a Bedford Point. - -[TOSH121:TOSH1] -~w~Dovrai superare le ~r~guardie della Yakuza. - -[TOSH122:TOSH1] -~w~Attento alle altre ~r~barche della Yakuza. - -[TOSH130:TOSH1] -~w~Porta le armi al ~y~contatto di Toshiko. - -[TOSH131:TOSH1] -~w~Torna al ~b~carico d'armi. - -[TOSH1BA:TOSH1] -~w~Ehi ragazzo, questa sì che è roba coi fiocchi! - -[TOSH1BB:TOSH1] -~w~Sai, faccio così tanti affari qui al porto che dovrei trasferirmi, invece di - -[TOSH1BC:TOSH1] -~w~stare a sud della fottuta isola! - -[TOSH1BD:TOSH1] -~w~Bene, è stato divertente! - -[TOSH1DB:TOSH1] -~r~Le armi sono state distrutte! - -[TOSH1PH:TOSH1] -~w~La Yakuza sarà di guardia. Forse dovresti passare da Phil Cassidy strada facendo. - -[DEAD_01:TOSH1] -Quindi lei sarebbe il gangster grosso e cattivo? - -[DEAD_02:TOSH1] -Non mi sembra un duro. - -[DEAD_03:TOSH1] -...Grazie - -[DEAD_04:TOSH1] -Sa cosa vuol dire vivere senza amore, signor Toni? - -[DEAD_05:TOSH1] -Significa vivere nell'odio... - -[DEAD_06:TOSH1] -Le credo sulla parola. - -[DEAD_07:TOSH1] -Bramo dal desiderio di uccidere un uomo, signor Cipriani. - -[DEAD_08:TOSH1] -Distruggere... ucciderlo non basterebbe. - -[DEAD_09:TOSH1] -Voglio vedere lui e la sua organizzazione umiliati prima della sua morte. - -[DEAD_10:TOSH1] -Voglio che soffra. - -[DEAD_11:TOSH1] -OK. - -[DEAD_12:TOSH1] -L'uomo che deve distruggere è mio marito: Kazuki Kasen. - -[DEAD_13:TOSH1] -Non si preoccupi. - -[DEAD_14:TOSH1] -Verrà ricompensato profumatamente per i suoi servizi. - -[DEAD_15:TOSH1] -E se dicessi no? - -[DEAD_16:TOSH1] -Non lo farà... perché se a me interessa che muoia, per lei è una necessità. - -[DEAD_17:TOSH1] -In realtà, gli ha già inferto un duro colpo, signor Cipriani. - -[DEAD_18:TOSH1] -Tuttavia, oggi prenderà in consegna un nuovo carico di munizioni. - -[DEAD_19:TOSH1] -Voglio che rubi le armi da sotto il suo naso da idiota. - -{=================================== MISSION TABLE TOSH2 ===================================} - -[TOSH2AA:TOSH2] -~w~Signor Toni. - -[TOSH2AL:TOSH2] -~w~Mio marito si è molto infuriato in seguito alle sue azioni. - -[TOSH2AB:TOSH2] -~w~Ha mostrato a lui e ai suoi uomini - -[TOSH2AM:TOSH2] -~w~la loro stupidità. - -[TOSH2AC:TOSH2] -~w~Mi piace fare il mio lavoro. E ora, principessa? - -[TOSH2AE:TOSH2] -~w~Mio marito sposterà una grande quantità di denaro dal suo casinò. - -[TOSH2AF:TOSH2] -~w~Voglio che lei distrugga quei soldi. - -[TOSH2AG:TOSH2] -~w~Potrei utilizzare quei soldi in un altro modo, se non le dispiace. - -[TOSH2AH:TOSH2] -~w~Voglio che tutti vedano i suoi soldi bruciare in mezzo alla strada. - -[TOSH2AI:TOSH2] -~w~OK... OK... quando avverrà il trasferimento? - -[TOSH2AJ:TOSH2] -~w~È già iniziato. - -[TOSH2AK:TOSH2] -~w~Stanno andando via dal casinò in questo istante, non ha molto tempo. - -[TOSH2O0:TOSH2] -~w~Distruggi TUTTI i ~r~portavalori.~w~ Non permettere che raggiungano il ~y~covo della Yakuza! - -[TOSH2O1:TOSH2] -~w~Stanno scappando! Non lasciar fuggire nessun ~r~furgone! - -[TOSH2O2:TOSH2] -~w~Li hai spaventati! Non permettere che i loro ~r~furgoni ~w~scappino! - -[TOSH2E1:TOSH2] -~w~Il ~r~convoglio~w~ si sta avvicinando al ~y~covo della Yakuza! - -[TOSH2E2:TOSH2] -~w~Un ~r~furgone~w~ è quasi arrivato al ~y~covo della Yakuza! - -{=================================== MISSION TABLE TOSH3 ===================================} - -[TOSH3M1:TOSH3] -~w~C'è qualcuno in casa? - -[TOSH3M2:TOSH3] -~w~Signor Toni? Un momento, prego... - -[TOSH3M3:TOSH3] -~w~Mio marito è furioso. - -[TOSH3EA:TOSH3] -~w~Si sta domandando come sia stato possibile un attacco così preciso e mirato. - -[TOSH3M4:TOSH3] -~w~Se non è stupido, lo scoprirà presto. - -[TOSH3M5:TOSH3] -~w~Forse potremmo aiutarlo. Ai suoi uomini piace spettegolare. - -[TOSH3EB:TOSH3] -~w~Diamo loro un motivo per farlo. - -[TOSH3M6:TOSH3] -~w~Dove stiamo andando? - -[TOSH3M7:TOSH3] -~w~All'opera. - -[TOSH3M8:TOSH3] -~w~All'opera? Io? Sta scherzando? - -[TOSH3M9:TOSH3] -~w~Non sia ridicolo signor Toni, tutti amano l'opera. - -[TOSH3A:TOSH3] -~w~Se prende la mia macchina potremo andare a ritirare il suo smoking. - -[TOSH3EC:TOSH3] -~w~Non abbiamo molto tempo, lo spettacolo inizierà tra poco. - -[TOSH3B:TOSH3] -~w~Porta fuori la ~b~macchina di Tohisko~w~. - -[TOSH3C:TOSH3] -~w~Passa a prendere ~b~Toshiko. - -[TOSH3C2:TOSH3] -~w~Prendi lo smoking da ~y~Mr. Benz. - -[TOSH3B3:TOSH3] -~w~Riporta Toshiko al suo ~y~appartamento. - -[TOSH3B4:TOSH3] -~r~Hai lasciato indietro Toshiko. - -[TOSH3B2:TOSH3] -Torna nella ~b~macchina di Toshiko. - -[TOSH3C3:TOSH3] -~w~Vai all'~y~opera. - -[TOSH3D:TOSH3] -~w~Dove sta andando? Arriveremo tardi! - -[TOSH3D2:TOSH3] -~w~Non mi lasci indietro Toni san, la prego! - -[TOSH3Z1:TOSH3] -~w~Signor Toni, lei crede che io sia una persona cattiva? - -[TOSH3Z2:TOSH3] -~w~Beh principessa, non sono proprio un santo. - -[TOSH3Z3:TOSH3] -~w~No... non saprei che farmene di un santo. - -[TOSH3Z4:TOSH3] -~w~Mio marito è un samurai, signor Toni. - -[TOSH3Z5:TOSH3] -~w~È molto forte... ma anche molto, molto cattivo. - -[TOSH3Z6:TOSH3] -~w~Mi ha sposata solo per diventare il waka-gashira di Liberty City. - -[TOSH3Z7:TOSH3] -~w~Non mi ha mai amata... preferisce la compagnia dei suoi uomini. - -[TOSH3Z8:TOSH3] -~w~Capisce? - -[TOSH3Z9:TOSH3] -~w~Quando scoprirà quello che sta facendo, la vorrà uccidere. - -[TOSH3Z0:TOSH3] -~w~La vita e la morte non hanno più importanza, conta solo la libertà. - -[TOSH3ZB:TOSH3] -~w~Che rilassante visione del mondo... - -[TOSH3E:TOSH3] -~w~Il sangue italiano non si deve mischiare con quello giapponese. - -[TOSH3F:TOSH3] -~w~A meno che non si trovi sul marciapiede. - -[TOSH3G:TOSH3] -~w~Proteggi Toshiko e fuggi con la ~b~sua macchina. - -[TOSH3H:TOSH3] -~w~Proteggi ~b~Toshiko~w~ e riportala al suo ~y~appartamento. - -[TOSH3S1:TOSH3] -~w~La mia macchina! - -[TOSH3S2:TOSH3] -~w~Ci salvi, Toni! - -[TOSH3S3:TOSH3] -~w~Coraggio, Toni! - -[TOSH3S4:TOSH3] -~w~Ci porti fuori di qui! - -[TOSH3S5:TOSH3] -~w~MI SALVI! - -[TOSH3S6:TOSH3] -~w~AIUTO! - -[TOSH3S7:TOSH3] -~w~Non ce la faremo mai! - -[TOSH3S8:TOSH3] -~w~AIUTO! - -[TOSH3S9:TOSH3] -~r~Toshiko è morta! - -[TOSH310:TOSH3] -~r~La macchina di Toshiko è stata distrutta! - -[TOSH311:TOSH3] -~r~Il tempo è scaduto! - -[TOSH3_1:TOSH3] -NESSUNO - -[TOS3NE1:TOSH3] -~w~Proteggi Toshiko e uccidi i ~r~Forelli. - -[TOS3NE2:TOSH3] -~w~Scappa con la ~b~macchina di Toshiko. - -[TOSH3EI:TOSH3] -~w~L'opera comincia alle 20:00. Non fare tardi! - -{=================================== MISSION TABLE TOSH4 ===================================} - -[TOSH4O2:TOSH4] -~w~L'elicottero di Kazuki si sta dirigendo verso il ~y~casinò! - -[TOSH4O4:TOSH4] -~w~Uccidi ~r~Kazuki! - -[TOSH4O5:TOSH4] -~w~Vai all'~y~appartamento di Toshiko. - -[TOSH4_3:TOSH4] -~w~Kazuki sta arrivando su quell'elicottero! Raggiungi l'eliporto e uccidilo. - -[TOSH4Y1:TOSH4] -~w~Prendiamolo! - -[TOSH4Y2:TOSH4] -~w~Uccidiamolo! - -[TOSH4CA:TOSH4] -~w~I miei uomini mi hanno disonorato... - -[TOSH4CB:TOSH4] -~w~ma sono pronto a ucciderti con le mie mani. - -[TOSH4CC:TOSH4] -~w~Voi due! Lasciateci soli! - -[TOSH4CD:TOSH4] -~w~Godrò nell'infilzarti con la mia spada! - -[TOSH4CE:TOSH4] -~w~Sì, l'ho sentito dire in giro. - -[TOSH4K1:TOSH4] -~w~Sparategli! - -[TOSH4K2:TOSH4] -~w~Uccidiamolo! - -[TOSH4_7:TOSH4] -~w~Porta la spada di Kazuki a Toshiko come prova della sua morte. - -[TOSH4_8:TOSH4] -~w~Hai spaventato Kazuki! Sta scappando! Hai perso l'opportunità di ucciderlo! - -[TOSH4_C:TOSH4] -Kazuki - -[TOSH4AA:TOSH4] -~w~Permesso? - -[TOSH4AB:TOSH4] -~w~Sto facendo il bagno, Toni san. - -[TOSH4AC:TOSH4] -~w~Ci è rimasto poco tempo. - -[TOSH4AD:TOSH4] -~w~Ora mio marito sa chi c'è veramente dietro le sue perdite. - -[TOSH4AE:TOSH4] -~w~Sta venendo per uccidere me e lei. - -[TOSH4AF:TOSH4] -~w~Beh, non rimarrò qui ad aspettarlo. Dove si trova? - -[TOSH4AG:TOSH4] -~w~È a Belleville, sta radunando i suoi uomini. - -[TOSH4AJ:TOSH4] -~w~Ma presto sarà qui. - -[TOSH4AH:TOSH4] -~w~Sayonara, dolcezza. - -[TOSH4AI:TOSH4] -~w~Pregherò per lei, Toni san. Buona fortuna. - -[TOSH4F1:TOSH4] -~r~Kazuki ti sta ridendo in faccia! - -[TOSH4OA:TOSH4] -~w~Uccidi le ~r~guardie~w~ di Kazuki! - -[TOSH4OB:TOSH4] -~w~Ritorna da ~y~Kazuki! - -[TOSH4OC:TOSH4] -~w~Attento, arrivano altri uomini della ~r~Yakuza! - -[TOSH4DA:TOSH4] -~w~Sparategli! - -[TOSH4DB:TOSH4] -~w~Uccidetelo! - -[TOSH4DC:TOSH4] -~w~Uccidetelo, brutti stronzi! - -[TOSH4O1:TOSH4] -~w~Raggiungi ~y~l'appartamento di Kazuki~w~ e uccidilo! - -[TOSH4O3:TOSH4] -~w~Raggiungi l'~y~eliporto! - -[CASH_01:TOSH4] -Quindi, uh... Toshiko. È finita. - -[CASH_02:TOSH4] -Sì sì, lo sapevo... salve signor Toni. - -[CASH_03:TOSH4] -Salve. Quindi, uhh... ha vinto. - -[CASH_04:TOSH4] -Ha ottenuto quello che voleva, è andato tutto alla perfezione. - -[CASH_06:TOSH4] -Grande, davvero grande. - -[CASH_07:TOSH4] -Bene... È il momento della paga, dolcezza... - -[CASH_08:TOSH4] -Siamo entrambi dei pazzi e degli assassini, signor Toni. - -[CASH_09:TOSH4] -Credo di sì. - -[CASH_10:TOSH4] -Il mondo richiede un dazio tremendo all'anima, non è d'accordo signor Toni? - -[CASH_11:TOSH4] -Sì, certo. - -[CASH_12:TOSH4] -Ma adesso è libera, può andare in Costa Rica, Aruba, roba del genere. - -[CASH_13:TOSH4] -Ricominciare da zero, è quello che ha sempre desiderato. - -[CASH_14:TOSH4] -Non credo di essere pronta per una vacanza al mare, signor Toni. - -[CASH_15:TOSH4] -Ho perso tutto... e l'ho fatto deliberatamente. - -[CASH_16:TOSH4] -Mi è stato concesso tutto ciò che volevo. - -[CASH_17:TOSH4] -Adesso voglio essere veramente libera. - -[CASH_18:TOSH4] -Arrivederci, Toni-san. +[MM_1_C:CARPAR1] +~y~ATTRAVERSA~g~ un punto di controllo per attivare il TIMER. ~g~Ogni punto di controllo ti fornirà ~y~~1~ SECONDI~g~ extra. {=================================== MISSION TABLE COPCAR ===================================} -[C_COMP1:COPCAR] -~w~Missione Vigilante: livello 12 completato! Aumentata la protezione del giubbotto antiproiettile! +[KILLS:COPCAR] +UCCISIONI: [C_BREIF:COPCAR] -~r~Sospetto~w~ visto in prossimità della zona ~a~. +~g~Sospettato visto in prossimità dell'area ~a~. -[C_BREIG:COPCAR] -~r~Sospetti~w~ visti in prossimità della zona ~a~. - -[C_RANGE:COPCAR] -~r~La radio della polizia è fuori campo, avvicinati a una stazione di polizia! - -[C_TIMEA:COPCAR] -~w~Tempo bonus! +~1~ secondi +[C_PASS:COPCAR] +MINACCIA ELIMINATA: ~1~$ [COPCART:COPCAR] -~w~Hai ~1~ secondi per tornare a un veicolo della polizia prima che la missione abbia termine. - -[COPCARU:COPCAR] -~w~Hai ~1~ secondo per tornare a un veicolo della polizia prima che la missione abbia termine. +~g~Hai ~1~ secondi per tornare a un veicolo della polizia prima che la missione abbia termine. [C_CANC:COPCAR] ~r~Missione Vigilante annullata! @@ -15335,2125 +9276,5450 @@ Arrivederci, Toni-san. [C_TIME:COPCAR] ~r~È scaduto il tuo tempo come tutore della legge! -[C_PASS3:COPCAR] -~w~MINACCIA ELIMINATA! Ricompensa: ~1~$ +[C_COMP1:COPCAR] +Missione Vigilante livello 12 completata: valore massimo dell'armatura aumentato a 150. -[C_LEVEL:COPCAR] -~r~Hai lasciato fuggire i criminali! +[CLEVEL:COPCAR] +Missione Vigilante livello ~1~ -[C_RANG2:COPCAR] -~r~La radio della polizia non funziona in metropolitana! +{=================================== MISSION TABLE COUNT1 ===================================} -{=================================== MISSION TABLE CARS ===================================} +[CM1_A:COUNT1] +Mr. Vercetti? Ehi, hai comprato la vecchia tipografia? -[CARS_10:CARS] -~w~Sali su una macchina per iniziare la prova di guida o abbandona il parcheggio per annullare la missione. +[CM1_B:COUNT1] +Sì, il mio vecchio un tempo lavorava nel campo. -[CARS_12:CARS] -~w~Se abbandoni la macchina, fallirai la missione +[CM1_C:COUNT1] +Avrei voluto seguire le sue orme, ma... ho deciso di vivere diversamente. -[CARS_1:CARS] -~w~Porta uno dei clienti a fare un giro di prova. +[CM1_D:COUNT1] +Stai progettando di vendere il vecchio macchinario smontandolo in pezzi? -[CARS_2:CARS] -~w~Dovrai cercare di capire le esigenze di ogni cliente. +[CM1_E:COUNT1] +Ho pensato che potremmo stampare ancora qualcosa... un giornale, una rivista... -[CARS_3:CARS] -~w~E poi usare le tue abilità di guida per mostrare al cliente che la macchina è esattamente ciò che sta cercando. +[CM1_F:COUNT1] +Che merda, figliolo, roba di bassa qualità. Ho sempre sognato stampare soldi. Non è poi così difficile. -[CARS_5:CARS] -~w~Impressiona il cliente. +[CM1_G:COUNT1] +Sai, l'ho fatto su scala ridotta per anni. -[CARS_6:CARS] -~w~Il cliente è a terra! Scegli un'altra macchina! +[CM1_H:COUNT1] +Davvero? -[CARS_30:CARS] -~w~Torna al ~y~parcheggio~w~ per concludere l'affare! +[CM1_I:COUNT1] +Certo. Ma prima abbiamo bisogno di matrici di buona qualità. -[CARS_C1:CARS] -~w~Va bene amico, vuoi rompere le scatole agli sbirri eh? +[CM1_J:COUNT1] +Ma certo! C'è già un'organizzazione di falsificatori in azione in Florida. -[CARS_C2:CARS] -~w~Sì, quel tipo se l'è meritata! +[CM1_K:COUNT1] +Un'organizzazione? -[CARS_P1:CARS] -~w~Wow! Questa macchina è una bomba! +[CM1_L:COUNT1] +Sì. Beh, ho sentito solo delle voci. -[CARS_P2:CARS] -~w~Woohoo! +[CM1_M:COUNT1] +Conosco un tipo che si intende di voci... -[CARS_P3:CARS] -~w~La mia vecchia zia guida così! +[CM1_N:COUNT1] +Un tempo passavo le serate con lui, mentre pulivo i rulli... -[CARS_P4:CARS] -~w~Ci sono gli airbag? +[CM1_2A:COUNT1] +Accidenti che culo incredibile! -[CARS_M1:CARS] -~w~Ah, che bella guida tranquilla. +[CM1_2B:COUNT1] +Va bene, bellezza, sei tu che ci perdi! -[CARS_M2:CARS] -~w~Sai qual è il limite di velocità? +[CM1_2C:COUNT1] +Ehi, ciao amico, come butta? -[CARS_M3:CARS] -~w~Oddio! Finirai col farci morire! +[CM1_2D:COUNT1] +Che cosa sai della falsificazione? -[CARS_O1:CARS] -~w~Grandioso! Nessuna strada asfaltata ci può fermare! +[CM1_2E:COUNT1] +Oh, sto bene Paul, e a te? -[CARS_O2:CARS] -~w~Amico, tocchiamo il cielo con un dito! +[CM1_2F:COUNT1] +Vieni qua. -[CARS_O3:CARS] -~w~Che volo amico! +[CM1_2G:COUNT1] +Va bene! Va bene! Va bene! Sei ovviamente un tipo impegnato. -[CARS_SC:CARS] -~w~Vendita completata. Percentuale: ~1~$ Bonus di tempo: ~1~ secondi. +[CM1_2H:COUNT1] +Tutto ciò che so sul campo è che la Triade fornisce le matrici. -[CARS_SD:CARS] -~w~Livello ~1~ completato. Percentuale: ~1~$ Bonus di tempo: ~1~ secondi. +[CM1_2I:COUNT1] +Hanno una società di spedizioni nel porto, -[CARS_IR:CARS] -~1~ DI FILA! Bonus! ~1~$. +[CM1_2J:COUNT1] +il capo di certo saprà quando passeranno nuovamente delle matrici! -[CARS_RE:CARS] -~w~Un piccolo extra per il nostro miglior venditore! +[CM1_2K:COUNT1] +Grazie Paul. -[CARSIC1:CARS] -~w~Ho bisogno di qualcosa che sia molto difficile da inseguire, amico. +[CM1_2L:COUNT1] +Qual è il tuo problema, sei un maniaco! -[CARSIC2:CARS] -~w~Ho bisogno di un mezzo per stirare questi pedoni del cazzo. +[CM1_2M:COUNT1] +Dammi un altro drink, in fretta! -[CARSIP1:CARS] -~w~Questa bimba sembra un fulmine! +[CM1_3:COUNT1] +~g~Ti hanno visto! -[CARSIP2:CARS] -~w~Ragazzi, credo che questa bestia sappia persino volare! +[CM1_5:COUNT1] +~g~Incontrati con Kent Paul al Malibu Club! -[CARSIM1:CARS] -~w~Ho sentito che questi aggeggi sono facili da guidare. +[CNT1_1:COUNT1] +Chi sei? Oooof! Aaiieee! Non il viso! Non il viso! -[CARSIM2:CARS] -~w~Siccome sono stato operato, ho bisogno di una utilitaria. +[CM1_1:COUNT1] +~g~Vai alla compagnia marittima Chartered Libertine nel porto. -[CARSIO1:CARS] -~w~Ottima per andare fuoristrada! +[CM1_2:COUNT1] +~g~L'ufficiale delle spedizioni è in possesso delle informazioni che ti servono. -[CARSIO2:CARS] -~w~Un mio amico compie dei bei numeri con questa, l'adoro! +[CNT1_2:COUNT1] +OK, parlerò, parlerò! -[CARS_N1:CARS] -~w~Non ho intenzione di comprare questa ferraglia! +[CM1_6:COUNT1] +~g~Ritorna con le informazioni alla tipografia! -[CARS_N2:CARS] -~w~Davvero credevi che avrei comprato questo rottame? +{=================================== MISSION TABLE COUNT2 ===================================} -[CARS_N3:CARS] -~w~I venditori di macchine usate sono tutti uguali! +[CNT2_B1:COUNT2] +Bene, il corriere porterà le matrici al porto oggi stesso. -[CARS_Y1:CARS] -~w~La prendo! +[CNT2_B2:COUNT2] +Ho intenzione di intercettare il corriere, recuperare le matrici, far perdere le tracce e tornare qua. -[CARS_Y2:CARS] -~w~È perfetta! +[CNT2_B3:COUNT2] +Bene. A seconda di quanto bene vadano le cose, -[CARS_Y3:CARS] -~w~Hai appena fatto un affare! +[CNT2_B4:COUNT2] +potremmo avere cinque minuti per stampare soldi prima che l'associazione dei falsificatori ci trovi, o potremmo avere tutto l'anno. -[CARS_R1:CARS] -~w~Mi piace la macchina, ma non il colore. +[CNT2_B5:COUNT2] +In ogni caso, voglio veder bigliettoni verdi uscire cinque minuti dopo che sarò tornato. Tutto chiaro? -[CARS_R2:CARS] -~w~Vai a riverniciare la macchina! +[CNT2_B6:COUNT2] +Non preoccuparti, Tommy. Saremo pronti. -[CARS_D1:CARS] -~w~Mi piace, ma è conciata male! +[CNT2_B7:COUNT2] +Io e i ragazzi saremo in giro per il quartiere se mai dovessi avere bisogno di una mano con gli inseguitori. -[CARS_D2:CARS] -~w~Vai a riparare la macchina! +[CNT2_B8:COUNT2] +Ottimo: siete tutti pronti? Perfetto. Ci vediamo più tardi... -[CARS_F1:CARS] -~r~Hai distrutto la macchina! +[CNT2_01:COUNT2] +~g~Il ~r~corriere~g~ con le matrici arriverà fra pochi attimi al ~y~porto~g~ in elicottero. -[CARS_F2:CARS] -~r~Hai ucciso il cliente! +[CNT2_02:COUNT2] +~r~Il corriere è scappato con l'elicottero. -[CARS_F3:CARS] -~r~Ci hai messo troppo! Il cliente si è stufato! +[CNT2_03:COUNT2] +~r~Il corriere è arrivato a destinazione sano e salvo. Sei in ritardo! -[CARS_F4:CARS] -~r~Il cliente odia questa macchina! +[CNT2_04:COUNT2] +~r~Hai distrutto le matrici nell'esplosione! -[CARS_F5:CARS] -~r~Hai chiuso con la vendita delle macchine. +[CNT2_05:COUNT2] +~g~Hai preso le matrici. Riportale alla tipografia. -[CARS_F6:CARS] -~r~Il cliente odia la macchina, l'hai distrutta! +[CNT2_06:COUNT2] +~g~Il corriere è morto e ha lasciato cadere le matrici: raccoglile prima che lo faccia qualcun altro. -[CARS_F7:CARS] -~r~Il cliente odia la macchina, sei andato troppo veloce! +[CNT2_07:COUNT2] +~g~Una delle guardie ha raccolto le matrici: non lasciarlo scappare! -[CARS_F8:CARS] -~r~Il cliente odia la macchina, sei andato troppo piano! +[CNT2_08:COUNT2] +~g~Il ~r~corriere~g~ con le matrici è arrivato al porto. -[CARS_SA:CARS] -Vendita +[CNT2_4:COUNT2] +Faccende private, non sei il ben venuto. -[CARS_7:CARS] -~w~Sali su una ~b~macchina! +[CNT2_09:COUNT2] +BENI TIPOGRAFIA ACQUISITI -[CARS_RF:CARS] -~w~Capital Autos è sotto la tua 'protezione'. Ricordati di passare a prendere i pagamenti regolarmente. +[CNT2_10:COUNT2] +~g~La tipografia d'ora in poi genererà introiti per un massimo di ~1~$. Ricordati di recuperarli regolarmente. -{=================================== MISSION TABLE BIKE ===================================} +[CNT2_11:COUNT2] +~r~Le matrici adesso sono in fondo all'oceano! -[BIKE_10:BIKE] -~w~Sali su una moto per iniziare la prova di guida o abbandona il vicolo per annullare la missione. +{=================================== MISSION TABLE CUBAN1 ===================================} -[BIKE_12:BIKE] -~w~Se abbandoni la moto, fallirai la missione. +[CUB1_A:CUBAN1] +Sì amico? -[BIKE_1:BIKE] -~w~Porta uno dei clienti a fare un giro di prova. +[CUB1_B:CUBAN1] +Ehi, tranquillo papà, è venuto per me. Sei tu l'uomo? -[BIKE_2:BIKE] -~w~Dovrai cercare di capire le esigenze di ogni cliente. +[CUB1_C:CUBAN1] +Oh sì, sei tu l'uomo. Credo per lo meno, vero? -[BIKE_3:BIKE] -~w~E poi usare le tue abilità di guida per mostrare al cliente che la moto è esattamente ciò che sta cercando. +[CUB1_D:CUBAN1] +No, non credo. -[BIKE_5:BIKE] -~w~Impressiona il cliente. +[CUB1_E:CUBAN1] +Ah sì? Vieni qua, osso duro. -[BIKE_30:BIKE] -~w~Torna al ~y~negozio di moto~w~ per concludere l'affare! +[CUB1_F:CUBAN1] +Pensi di potermi prendere in giro? -[BIKE_C1:BIKE] -~w~Va bene amico, vuoi rompere le scatole agli sbirri eh? +[CUB1_G:CUBAN1] +Credi di poter fare lo stupido con me? -[BIKE_C2:BIKE] -~w~Sì, quel tipo se l'è meritata! +[CUB1_H:CUBAN1] +No, credo tu stia facendo abbastanza lo stupido per entrambi. -[BIKE_P1:BIKE] -~w~Sì! Questa moto è stupefacente! +[CUB1_I:CUBAN1] +Ehi figliolo, ha detto che sei stupido. -[BIKE_P2:BIKE] -~w~Bene! +[CUB1_J:CUBAN1] +E io lo chiamo femminuccia, papà. -[BIKE_P3:BIKE] -~w~Forza, non sai andare più veloce di così? +[CUB1_K:CUBAN1] +Guarda un po' come va in giro vestito. -[BIKE_P4:BIKE] -~w~Attento! +[CUB1_L:CUBAN1] +Che cos'è questa? L'ultima moda femminile per la notte? -[BIKE_M1:BIKE] -~w~Ah, che bella guida tranquilla. +[CUB1_M:CUBAN1] +Perché un osso duro come te si veste da donnina? -[BIKE_M2:BIKE] -~w~Sai qual è il limite di velocità? +[CUB1_N:CUBAN1] +Hai le mutandine come le signorine, eh? -[BIKE_M3:BIKE] -~w~Oddio! Finirai col farci morire! +[CUB1_O:CUBAN1] +Cos'hai contro le donne? Preferisci gli uomini, amico? -[BIKE_O1:BIKE] -~w~Grandioso! Nessuna strada asfaltata ci può fermare! +[CUB1_P:CUBAN1] +Mi piacciono le donne! Tutte le donne! Adoro mia madre, chico. -[BIKE_O2:BIKE] -~w~Amico, tocchiamo il cielo con un dito! +[CUB1_Q:CUBAN1] +Va bene, va bene, ti credo sulla parola. -[BIKE_O3:BIKE] -~w~Che acrobazie da pazzi amico! +[CUB1_R:CUBAN1] +Sai guidare, amigo? -[BIKE_SC:BIKE] -~w~Vendita completata. Percentuale: ~1~$ Bonus di tempo: ~1~ secondi. +[CUB1_S:CUBAN1] +Certo... come una donna. -[BIKE_IR:BIKE] -~1~ DI FILA! Bonus! ~1~$. +[CUB1_T:CUBAN1] +Molto divertente. Mi piaci, ragazzo. Forse ci puoi aiutare. -[BIKE_RE:BIKE] -~w~Un piccolo extra per il nostro miglior venditore! +[CUB1_U:CUBAN1] +Potresti provare di essere un uomo. Huh? -[BIKE_RF:BIKE] -~w~Hogs & Cogs è sotto la tua 'protezione'. Ricordati di passare a prendere i pagamenti regolarmente. +[CUB1_V:CUBAN1] +Porta fuori la barca. -[BIKEIC1:BIKE] -~w~Ho bisogno di qualcosa che sia molto difficile da inseguire, amico. +[CUB1_W:CUBAN1] +Mostra di avere due grossi cojones, -[BIKEIC2:BIKE] -~w~Ho bisogno di un mezzo per fargliela pagare a quei fottuti pedoni. +[CUB1_X:CUBAN1] +e non piccoli minuscoli chiquita. -[BIKEIP1:BIKE] -~w~Questo razzo sembra veloce! +[CUB1_02:CUBAN1] +OK amico, trattala come una vera signora. -[BIKEIP2:BIKE] -~w~Voglio qualcosa che impressioni le tipe! +[CUB1_03:CUBAN1] +Non male, sei un vero uomo. -[BIKEIM1:BIKE] -~w~Ho sentito che questi aggeggi sono facili da guidare. +[CUB1_04:CUBAN1] +Accidenti, hai davvero due grossi cojones, amigo. -[BIKEIM2:BIKE] -~w~Sono ancora alle prime armi, ho bisogno di una moto meno potente. +[CUB1_05:CUBAN1] +Amigo, sei un vero uomo. -[BIKEIO1:BIKE] -~w~Ottima per andare fuoristrada! +[CUB1_06:CUBAN1] +E tu ti reputi un uomo? -[BIKEIO2:BIKE] -~w~Questi affari possono fare delle acrobazie impressionanti, vero? +[CUB1_07:CUBAN1] +Sei un piccolo gattino impaurito, bamboccio: vai a piangere dalla mamma! -[BIKE_N1:BIKE] -~w~Non ho intenzione di comprare questa ferraglia! +[CUB1_08:CUBAN1] +Sei un grande spreco di spazio. Cammini come un uomo, parli come un uomo, ma guidi come un idiota. -[BIKE_N2:BIKE] -~w~Davvero credevi che avrei comprato questo rottame? +[CUB1_09:CUBAN1] +Amico, sei tu l'uomo. Mi piaci, amico. Mi piaci molto. -[BIKE_N3:BIKE] -~w~I venditori di moto usate sono tutti uguali! +[CUB1_10:CUBAN1] +A qualsiasi ora, amico, perché tu hai i cojones e tutti i miei amici hanno grandi cajones. -[BIKE_Y1:BIKE] -~w~La prendo! +[CUB1_11:CUBAN1] +~r~Hai ucciso Rico! -[BIKE_Y2:BIKE] -~w~È la moto perfetta per me! +[CUB1_12:CUBAN1] +Passa per il primo punto di controllo per cominciare il test. -[BIKE_Y3:BIKE] -~w~Hai appena fatto un affare! +[CUB1_14:CUBAN1] +Torna alla barca! -[BIKE_R1:BIKE] -~w~Mi piace la moto ma non il colore. +[CUB1_15:CUBAN1] +~r~Sei troppo lento, amico. -[BIKE_R2:BIKE] -~w~Vai a riverniciare la moto! +[CUB1_01:CUBAN1] +Ehi, sono Rico. Sei tu l'uomo con i grandi cojones? -[BIKE_D1:BIKE] -~w~Mi piace, ma è conciata male! +[CUB1_13:CUBAN1] +~g~Hai tre minuti per completare il percorso. -[BIKE_D2:BIKE] -~w~Fai riparare la moto! +{=================================== MISSION TABLE CUBAN2 ===================================} -[BIKE_F1:BIKE] +[CUB2_A:CUBAN2] +Un cafecito, por favor, Alberto... + +[CUB2_N:CUBAN2] +Nessun problema, Tommy. + +[CUB2_B:CUBAN2] +Papà! Un gran problema! + +[CUB2_O:CUBAN2] +Umberto, figlio mio, cosa succede? + +[CUB2_C:CUBAN2] +Gli Haitiani! Odio quei maledetti Haitiani! + +[CUB2_D:CUBAN2] +Hanno osato crearmi problemi per l'ultima vota! + +[CUB2_E:CUBAN2] +Questi Haitiani. Facciamoli fuori! + +[CUB2_F:CUBAN2] +Avremo bisogno di supporto. + +[CUB2_G:CUBAN2] +Ho già perso degli hermanos là fuori. + +[CUB2_H:CUBAN2] +Amigo, tu guidi bene! + +[CUB2_I:CUBAN2] +Per una donna, giusto? + +[CUB2_J:CUBAN2] +Non è il momento degli scherzi! + +[CUB2_K:CUBAN2] +Forza, guida nuovamente per me! + +[CUB2_L:CUBAN2] +Porta i miei ragazzi in posizione e faremo fuori quegli Haitiani! + +[CUB2_M:CUBAN2] +Si sono messi contro me, hanno scherzato con il pezzo grosso della città! + +[CUB2_01:CUBAN2] +Troppo piccola, amico, devi prendere una macchina più grande. + +[CUB2_02:CUBAN2] +Abbiamo bisogno di rinforzi dal café! + +[CUB2_03:CUBAN2] +~g~Prendi una macchina e recupera i Cubani di fronte al café Robina. + +[CUB2_04:CUBAN2] +~g~Scarica i Cubani sul luogo dello scontro. + +[CUB2_05:CUBAN2] +Fai fuori quel codardo di un cecchino! + +[CUB2_07:CUBAN2] +Combattono come donnicciole! Mettetevi al riparo! + +[CUB2_09:CUBAN2] +Cecchino sul tetto! + +[CUB2_11:CUBAN2] +~r~Idiota, avevamo bisogno della macchina. + +[CUB2_12:CUBAN2] +Ehi amigo! Sono felice che ce l'hai fatta. + +[CUB2_13:CUBAN2] +Covo puzzolente di Haitiani, li uccideremo tutti! + +[CUB2_14:CUBAN2] +CAAARICAAAA! + +[CUB2_15:CUBAN2] +Adesso, fratelli, CAAARICAAAA! + +[CUB2_16:CUBAN2] +Tommy, abbiamo provato il nostro coraggio! + +[CUB2_17:CUBAN2] +Rubiamo quel van pieno di droga e scappiamo in fretta! + +[CUB2_18:CUBAN2] +~g~Recupera una macchina per caricare i Cubani. + +[CUB2_19:CUBAN2] +Combatteremo come uomini! + +[CUB2_21:CUBAN2] +Combattiamo come uomini con grandi cojones! + +[CUB2_22:CUBAN2] +~g~Elimina il resto degli Haitiani così i Cubani potranno avanzare. + +[CUB2_23:CUBAN2] +~g~Little Haiti sarà piena di Haitiani desiderosi di pareggiare il conto con i Cubani. Guardati la schiena. + +[CUB2_24:CUBAN2] +~g~Torna al Café Robina con il van e parcheggialo sul retro. + +[CUB2_25:CUBAN2] +UCCIDI TUTTI GLI HAITIANI!!! + +{=================================== MISSION TABLE CUBAN3 ===================================} + +[CUB3_A:CUBAN3] +Alberto. Un caffè, senor. + +[CUB3_B:CUBAN3] +Papà, non servire questo serpente nascosto nella paglia. + +[CUB3_C:CUBAN3] +Sei un doppiogiochista, Tommy! + +[CUB3_D:CUBAN3] +O fai il doppio gioco o sei un perdente, ragazzo! + +[CUB3_E:CUBAN3] +Gli Haitiani! Merda, stanno ridendo di me. + +[CUB3_F:CUBAN3] +Ehi. Calmati. Qual è il tuo problema? + +[CUB3_G:CUBAN3] +Ridono di me, Tommy! Di me! + +[CUB3_H:CUBAN3] +Umberto Robina! Fanno tutto ciò che vogliono! + +[CUB3_I:CUBAN3] +Nessuno fa ciò che vuole, Umberto, fanno ciò che tu permetti loro di fare. + +[CUB3_J:CUBAN3] +Cosa? + +[CUB3_K:CUBAN3] +Vuoi che mi occupi di qualcuno? + +[CUB3_L:CUBAN3] +Posso pensarci io, ma ti costerà. + +[CUB3_M:CUBAN3] +Lo so che siamo come fratelli, ma stiamo parlando di affari. + +[CUB3_N:CUBAN3] +Tommy, sei un vero uomo. Un vero businessman, un gentleman. + +[CUB3_O:CUBAN3] +Questi Haitiani. Hanno un carico di merce in arrivo via mare, roba di prima qualità. + +[CUB3_P:CUBAN3] +La prendiamo e li facciamo fuori. + +[CUB3_Q:CUBAN3] +Tu la prendi, io ti copro. Come mio fratello, come mio figlio. + +[CUB3_R:CUBAN3] +Preferisco i soldi che saltellare sulle tue gambe, amigo. + +[CUB3_01:CUBAN3] +Ehi Rico, bella barca. Sei pronto? + +[CUB3_03:CUBAN3] +~g~Raccogli tutte le valigette piene di soldi e droga. + +[CUB3_04:CUBAN3] +~g~Riporta la droga e i soldi a Umberto. + +[CUB3_05:CUBAN3] +Sì Tommy. Vedi di sparare come si deve oggi, + +[CUB3_06:CUBAN3] +non voglio riempire la mia barca di buchi, OK? + +[CUB3_07:CUBAN3] +~g~Incontrati con Rico, lui ti porterà fino alla locazione dell'incontro. + +[CUB3_02:CUBAN3] +~g~UCCIDI TUTTI GLI HAITIANI SULLE BARCHE!!! + +[CUB3_08:CUBAN3] +Uh oh... un gruppo di Cubani. Siamo sotto attacco! + +{=================================== MISSION TABLE CUBAN4 ===================================} + +[CUB4_A:CUBAN4] +Ehi signorine, sapete che cosa voglio fare? + +[CUB4_B:CUBAN4] +Voglio far fuori un Haitiano. E poi? + +[CUB4_C:CUBAN4] +Poi voglio fare l'amore come un vero uomo. + +[CUB4_D:CUBAN4] +Capito chica? Proprio così. + +[CUB4_E:CUBAN4] +Fallito! + +[CUB4_F:CUBAN4] +Cafone. + +[CUB4_G:CUBAN4] +Ehi bella, non ti toccherei neanche con un bastone da lontano! + +[CUB4_H:CUBAN4] +Umberto Robina, a lui piacciono le vere donne! Non delle capre in minigonna! + +[CUB4_I:CUBAN4] +Tommy! Tommy, ti voglio bene, davvero! Andiamo! + +[CUB4_J:CUBAN4] +Dove? Non posso prendere prima una tazza di caffè? + +[CUB4_K:CUBAN4] +Non c'è tempo per il caffè! Inoltre, io l'ho già preso. + +[CUB4_L:CUBAN4] +Dobbiamo far fuori gli Haitiani. + +[CUB4_M:CUBAN4] +Tommy, come fai a uccidere un serpente? + +[CUB4_N:CUBAN4] +Lo mordi sul culo! Ah ah ah! + +[CUB4_O:CUBAN4] +Se lo dici te, Umberto. + +[CUB4_P:CUBAN4] +Tommy, recupera una piccola auto Haitiana. + +[CUB4_Q:CUBAN4] +Quando ce l'hai, torna qui e carica il mio ragazzo, + +[CUB4_R:CUBAN4] +Pepe, e portalo fino agli Haitiani. + +[CUB4_S:CUBAN4] +Poi aggiri l'impianto di lavorazione degli Haitiani e utilizzi il solvente come esplosivo. + +[CUB4_T:CUBAN4] +Boom! Bye bye! + +[CUB4_U:CUBAN4] +Umberto, e tu? + +[CUB4_V:CUBAN4] +Oh, io resto nelle retrovie e controllo il café con papà. + +[CUB4_W:CUBAN4] +Non si sente molto bene, sai? + +[CUB4_02:CUBAN4] +~g~Le bombe verranno piazzate con un timer di 45 secondi. + +[CUB4_04:CUBAN4] +~r~Hai allarmato la base, adesso non riusciremo mai a entrare! + +[CUB4_07:CUBAN4] +Il solvente è sul retro, amigo. + +[CUB4_08:CUBAN4] +Hola, Amigos. + +[CUB4_09:CUBAN4] +Bueno. Haitiane Putas. Muerte. + +[CUB4_10:CUBAN4] +Vamos. + +[CUB4_11:CUBAN4] +Vamos davvero. + +[CUB4_12:CUBAN4] +Ehi, abbiamo bisogno di un'auto degli Haitiani! + +[CUB4_13:CUBAN4] +Oye, andiamo a trovare i nostri muchachos! + +[CUB4_14:CUBAN4] +Seguimi, compadres. + +[CUB4_15:CUBAN4] +OK, vai dentro... + +[CUB4_16:CUBAN4] +Io posizionerò le bombe, coprimi! + +[CUB4_17:CUBAN4] +CORRI! + +[CUB4_18:CUBAN4] +Amico, questa sì che è una bella parte della città... + +[CUB4_19:CUBAN4] +Questo luogo è una fogna. + +[CUB4_20:CUBAN4] +Avevo una bella donna... viveva da queste parti. + +[CUB4_21:CUBAN4] +Lo sai, fanno delle buone pizze da queste parti. + +[CUB4_22:CUBAN4] +Whoa, amico. Guidi come un cavallo impazzito! + +[CUB4_23:CUBAN4] +Ti sei perso, amico? + +[CUB4_24:CUBAN4] +Hai lasciato indietro Pepe, vai a riprenderlo! + +[CUB4_03:CUBAN4] +~g~Resta in macchina fino a quando questa non sarà parcheggiata all'interno. + +[CUB4_26:CUBAN4] +~g~Prendi Pepe, dirigiti a nord verso Little Haiti e ruba una macchina Voodoo. + +[CUB4_27:CUBAN4] +~g~Raggiungi Rico e gli altri Cubani. + +[CUB4_28:CUBAN4] +~g~Unisciti agli altri Cubani presso la fabbrica di droga Haitiana. + +[CUB4_29:CUBAN4] +~g~Cammina su ogni segnalino per posizionare una bomba. + +[CUB4_30:CUBAN4] +~g~Dopo aver posizionato tutte e tre le bombe, scappa dalla fabbrica prima che esploda. + +[CUB4_31:CUBAN4] +~g~Scappa dalla fabbrica!!! + +[CUB4_32:CUBAN4] +~g~Parcheggia l'auto nel punto segnalato ed esci. + +[CUB4_06:CUBAN4] +~r~Non ti sei allontanato a sufficienza dalla base e abbiamo dovuto interrompere l'esplosione! + +{=================================== MISSION TABLE FINALE ===================================} + +[FIN_1A:FINALE] +Vieni qui brutto doppiogiochista di merda! + +[FIN_1B:FINALE] +Ti faccio a pezzi, traditore del cazzo! + +[FIN_1C:FINALE] +Questo è l'ultimo ballo per Lance Vance! + +[FIN_2B:FINALE] +Oh, ma davvero! + +[FIN_2C:FINALE] +Te l'avevo detto che ne avevo avuto abbastanza a scuola! + +[FIN_3:FINALE] +Adesso chi ti coprirà il culo, eh Tommy? + +[FIN_4:FINALE] +Sei storia, Tommy, storia! + +[FIN_5:FINALE] +Hai scelto il lato sbagliato, Lance... + +[FIN_11A:FINALE] +Sonny, mi hai rubato quindici anni di vita... + +[FIN_11B:FINALE] +E adesso te la farò pagare! + +[FIN_12A:FINALE] +Non hai ancora capito, vero? + +[FIN_12B:FINALE] +Io ti POSSIEDO, Tommy. + +[FIN_12C:FINALE] +Quei quindici anni erano miei! + +[FIN_13:FINALE] +Prendetelo ragazzi, non ha mai capito niente. + +[FIN1_01:FINALE] +Cosa sta succedendo? + +[FIN1_02:FINALE] +Tommy! Oh bene, bene. Ascolta, ascolta. Uh, ascolta. + +[FIN1_03:FINALE] +A me piacciono i pesci. Adoro i pesci. + +[FIN1_04:FINALE] +Mi piacciono quando nuotano in una boccia o come cibo in un piatto, + +[FIN1_05:FINALE] +ma per quanto li ami, non voglio dormire in loro compagnia. + +[FIN1_06:FINALE] +Va bene, ma adesso i tuoi fratelli italiani stanno venendo per mettermi ai piedi delle belle scarpe in cemento e io... + +[FIN1_07:FINALE] +Sta zitto Ken. Siediti. + +[FIN1_08:FINALE] +Lance, di che diavolo stai parlando? + +[FIN1_09:FINALE] +Sono i tuoi amici del nord, Tommy. Non sono felici di cosa hai fatto al loro uomo. + +[FIN1_10:FINALE] +Oggi verranno giù per questioni di lavoro. + +[FIN1_11:FINALE] +Ci hanno messo di più di quanto credessi... + +[FIN1_12:FINALE] +Ragazzi, dobbiamo essere molto chiari. Non voglio che ci siano dubbi sul fatto che questa è la mia operazione. MIA! + +[FIN1_13:FINALE] +Ken, recupera la prima partita di soldi falsi e metti venti milioni in delle valigette. + +[FIN1_14:FINALE] +Lance, raduna i ragazzi... + +[FIN2_01:FINALE] +Tommy! + +[FIN2_02:FINALE] +Cosa? Niente abbraccio per un vecchio amico? + +[FIN2_03:FINALE] +Sono stato per quindici anni fuori dal giro, + +[FIN2_04:FINALE] +sono un po' arrugginito in fatto di etichetta familiare. + +[FIN2_05:FINALE] +Sempre arrabbiato, vero Tommy? + +[FIN2_06:FINALE] +Non ti avevo detto che il tuo carattere ti avrebbe messo nei guai, eh? + +[FIN2_07:FINALE] +Ci sono venti milioni in quelle valigette... + +[FIN2_08:FINALE] +Quanti hai detto? Dieci? No, undici uomini. + +[FIN2_09:FINALE] +È così che sei diventato il macellaio di Harwood! Eh eh eh! + +[FIN2_10:FINALE] +Mi hai inviato per uccidere un uomo, UN UOMO. Sapevano che stavo arrivando Sonny... + +[FIN2_11:FINALE] +Modera il tono. + +[FIN2_12:FINALE] +Qualcuno potrebbe pensare che stai incolpando me per le sfortunate circostanze. + +[FIN2_13:FINALE] +Prendi i fottuti soldi... + +[FIN2_14:FINALE] +Prendi i fottuti soldi? + +[FIN2_15:FINALE] +Lo sai, Tommy? Ho fatto quello che ho potuto per te. Ho tirato i fili, ho chiesto favori. + +[FIN2_16:FINALE] +Ero tuo amico, Tommy. Pensavo che avresti avuto buon senso, che avresti capito cosa è bene per il business. + +[FIN2_17:FINALE] +Mi fidavo di te, Tommy. E tu mi hai deluso. + +[FIN2_18:FINALE] +Ma alla fine qualcuno nella tua organizzazione del cazzo ha capito come si fa il business. + +[FIN2_19:FINALE] +Non è vero, Lance? + +[FIN2_20:FINALE] +Mi dispiace Tommy. Questa è Vice City. Questo è il suo business. + +[FIN2_21:FINALE] +Ci hai venduto... + +[FIN2_22:FINALE] +No. Ho venduto TE, Tommy, ho venduto TE. + +[FIN2_23:FINALE] +I soldi veri sono di sopra nella cassaforte. + +[FIN2_24:FINALE] +Allora Tommy, questo era il grande piano? + +[FIN2_25:FINALE] +Pensavi davvero che avrei preso i soldi finti? + +[FIN2_26:FINALE] +Salva la faccia e scappa con la coda tra le gambe! + +[FIN2_27:FINALE] +No. + +[FIN2_28:FINALE] +Volevo solo farti incazzare prima di ucciderti. + +[FIN3_01:FINALE] +Tommy? + +[FIN3_02:FINALE] +Oh mio Dio, Tommy! Che cosa è successo? + +[FIN3_03:FINALE] +Che cosa ti sembra sia successo? + +[FIN3_04:FINALE] +Mi sembra ti si sia rovinato l'abito! + +[FIN3_05:FINALE] +Accidenti, Tommy, era così bello! Tommy, che diavolo è successo? + +[FIN3_06:FINALE] +Ho avuto una divergenza di vedute con un socio in affari, sai come vanno queste cose. + +[FIN3_07:FINALE] +Tommy, se io ho una divergenza con un socio, gli mando una lettera di insulti. + +[FIN3_08:FINALE] +Forse gli piscio nella casella della posta. Ma non do il via alla terza guerra mondiale! + +[FIN3_09:FINALE] +Lo sai, forse dovresti parlare con il mio strizzacervelli... + +[FIN3_10:FINALE] +Quello stupido idiota, Lance... + +[FIN3_11:FINALE] +Tommy, non mi è mai piaciuto quel tipo, OK? + +[FIN3_12:FINALE] +È nevrotico, insicuro, egocentrico... quel tipo è un vero stronzo! + +[FIN3_13:FINALE] +Sono felice che l'hai fatto fuori! + +[FIN3_14:FINALE] +Non penso che riceveremo ulteriori problemi dal nord... + +[FIN3_15:FINALE] +...fondamentalmente perché non c'è più un 'nord'. + +[FIN3_16:FINALE] +Adesso è tutto a sud. + +[FIN3_17:FINALE] +Aspetta, vuoi forse dire ciò che penso io, caro il mio Tommy? + +[FIN3_18:FINALE] +Cosa credi che significhi? + +[FIN3_19:FINALE] +Che siamo in carica... cioè, che sei in carica! Oh Tommy... + +[FIN3_20:FINALE] +Lo sai, Ken, questo potrebbe essere l'inizio di uno splendido rapporto lavorativo... + +[FIN3_21:FINALE] +Dopo tutto, tu sei un convincente, diffamante, fottuto ladro. + +[FIN3_22:FINALE] +e io sono uno psicopatico assassino convinto e uno spacciatore. + +[FIN3_23:FINALE] +Lo so, non è meraviglioso? + +[FIN_B1:FINALE] +~g~Uccidi ~y~Vance~g~, il fottuto traditore. + +[FIN_B2:FINALE] +~g~Trova ~p~Sonny~g~ e metti la parola fine a questa storia. + +[FIN_B3:FINALE] +~g~La Mafia sta cercando di rubare i tuoi soldi. Difendi la cassaforte. + +[FIN_B4:FINALE] +~g~Sei prossimo alla morte: recupera della ~w~salute~g~ dal basso. + +[FIN_B5:FINALE] +~g~La Mafia sta rubando i tuoi soldi. Difendi la ~c~cassaforte~g~. + +[FIN_B7:FINALE] +~r~La Mafia ha rubato i tuoi soldi! + +[DEFSAFE:FINALE] +~g~Ritorna alla cassaforte e difendila. + +{=================================== MISSION TABLE FIRETRK ===================================} + +[F_PASS1:FIRETRK] +Incendio spento! + +[F_FAIL2:FIRETRK] +~r~Sei arrivato tardi! + +[F_CANC:FIRETRK] +~r~Missione Pompieri annullata! + +[F_EXTIN:FIRETRK] +INCENDI: + +[F_START:FIRETRK] +~g~Veicolo in fiamme avvistato in ~a~. Vai a spegnere il fuoco. + +[SIREN_1:FIRETRK] +Per attivare la sirena di questo veicolo premi il ~h~~k~~VEHICLE_HORN~~w~. + +[SIREN_2:FIRETRK] +Per attivare la sirena di questo veicolo premi il ~h~~k~~VEHICLE_HORN~~w~. + +[FIREPRO:FIRETRK] +Missione Camion dei pompieri livello 12 completata: adesso sei permanentemente ignifugo!!! + +[F_FAIL1:FIRETRK] +Missione Camion dei pompieri terminata. + +[F_STAR1:FIRETRK] +~g~Veicoli in fiamme presso l'area ~a~. Vai a spegnere l'incendio. + +[SPRAY_4:FIRETRK] { reVC update } +Premi il tasto ~h~~k~~VEHICLE_FIREWEAPON~~w~ per sparare con il cannone ad acqua e la ~h~~k~~VEHICLE_TURRETLEFT~~w~ e ~h~~k~~VEHICLE_TURRETRIGHT~~w~ per mirare. + +[SPRAY_1:FIRETRK] { reVC update } +Premi il tasto ~h~~k~~VEHICLE_FIREWEAPON~~w~ per sparare con il cannone ad acqua e la ~h~~k~~VEHICLE_TURRETLEFT~~w~ e ~h~~k~~VEHICLE_TURRETRIGHT~~w~ per mirare. + +{=================================== MISSION TABLE GENERA1 ===================================} + +[GEN1_A:GENERA1] +Mr. Vercetti! + +[GEN1_B:GENERA1] +Colonnello. + +[GEN1_D:GENERA1] +No, grazie. + +[GEN1_E:GENERA1] +Mi vergogno ad ammettere che una delle cause dei nostri problemi comuni sembra sia stata la linguaccia di una persona di cui credevo di potermi fidare. + +[GEN1_F:GENERA1] +Mi sono tenuto Gonzalez per anni, ma ora la sua incompetenza ha raggiunto il fondo. + +[GEN1_G:GENERA1] +Sarebbe solo un bene se eliminassi Gonzalez... + +[GEN1_H:GENERA1] +È stato lui? A me importa solo dei miei soldi. + +[GEN1_I:GENERA1] +Questa gentilezza verrà ricompensata dopo troveremo insieme i tuoi soldi. + +[GEN1_J:GENERA1] +Lo troverai nella sua Penthouse, probabilmente mezzo ubriaco. Usa questo... + +[GEN1_06:GENERA1] +Eeek! Ha una motosega! + +[GEN1_07:GENERA1] +Stammi lontano, brutto bastardo! + +[GEN1_08:GENERA1] +Oddio santo, ho distrutto la mia vita e il mio look! + +[GEN1_10:GENERA1] +Ho deciso di chiudere quella tua maledetta boccaccia! + +[GEN1_11:GENERA1] +Smettila di correre, brutto grassone! + +[GEN1_12:GENERA1] +Stai fermo, così la facciamo finita! + +[GEN1_13:GENERA1] +Smettila di strillare, non gliene frega a nessuno, grassone! + +[GEN1_C:GENERA1] +Grazie per essere venuto. Siediti. Vuoi dell'aragosta? + +[GEN1_05:GENERA1] +~g~Uccidi Gonzalez! + +[GEN1_09:GENERA1] +Ti pagherò doppio, Tommy, DOPPIO! + +[GEN1_18:GENERA1] +~r~Gonzalez ha raggiunto sano e salvo la stazione di polizia! + +[GEN1_19:GENERA1] +~g~La polizia di Vice City ti sta inseguendo! + +[GEN1_20:GENERA1] +~g~Prendi un veicolo. + +[GEN1_21:GENERA1] +~g~Raggiungi il ~h~Pay 'N' Spray~g~ in ~h~Vice Point~g~. + +[GEN1_22:GENERA1] +~g~Guida il tuo veicolo attraverso il carrozziere per perdere il ~h~livello di sospetto~g~, ~h~riparare~g~ e ~h~ricolorare~g~ il mezzo. Costo: ~h~100$~g~. Questa volta è gratis. + +[GEN1_01:GENERA1] +Quando corri, tieni premuto il ~o~tasto |~w~ per preparare un attacco corpo a corpo. + +[GEN1_02:GENERA1] +Quando corri, tieni premuto il ~x~tasto /~w~ per preparare un attacco corpo a corpo. + +[GEN1_03:GENERA1] +Quando corri, tieni premuto il ~h~tasto R1~w~ per preparare un attacco corpo a corpo. + +[GEN1_14:GENERA1] +Rilascia il ~h~~k~~PED_FIREWEAPON~~w~ per eseguire l'attacco. + +[GEN1_15:GENERA1] +Rilascia il ~h~~k~~PED_FIREWEAPON~~w~ per eseguire l'attacco. + +[GEN1_16:GENERA1] +Rilascia il ~h~~k~~PED_FIREWEAPON~~w~ per eseguire l'attacco. + +[GEN1_23:GENERA1] +~g~Passa per le porte per tornare al piano terra. + +{=================================== MISSION TABLE GENERA2 ===================================} + +[COL2_A:GENERA2] +Tommy! Vieni qui da me. + +[COL2_B:GENERA2] +Non ti sembra delizioso, vero? Lingua di Tapia? + +[COL2_C:GENERA2] +Eerr... No, no grazie. + +[COL2_D:GENERA2] +Tommy, sei come un vento fresco della pampa che mi libera dall'olezzo della corruzione, + +[COL2_E:GENERA2] +benché mi addolori la recente dipartita, devo continuare come sempre con il mio lavoro. + +[COL2_F:GENERA2] +Non mi sembra ci stiamo avvicinando ai miei soldi... + +[COL2_G:GENERA2] +Tommy, amico mio, non sei più a Liberty. Qui le cose vanno in modo diverso. + +[COL2_H:GENERA2] +Continuerò le mie ricerche, ma nel frattempo ho un interessante accordo da proporti. + +[COL2_I:GENERA2] +Un favore per un amico, Cortez. + +[COL2_J:GENERA2] +Sei un vero amico, Tommy, Ero certo che non mi avresti deluso. + +[COL2_K:GENERA2] +Ho bisogno che tu incontri un corriere che mi ha recuperato una tecnologia di cui ho bisogno... + +[COL2_1:GENERA2] +La pioggia, è così très umido in questo periodo dell'anno... + +[COL2_2:GENERA2] +Cosa? + +[COL2_3:GENERA2] +Ah, comment? + +[COL2_4:GENERA2] +Ascolta, mi manda Cortez. Dammi quei maledetti chip. + +[COL2_5:GENERA2] +Oh... d'accord. + +[COL2_B1:GENERA2] +~g~Incontra il corriere al Mall. + +[COL2_B2:GENERA2] +~g~Il correre sta scappando con i chip: non farlo scappare! + +[COL2_B3:GENERA2] +~g~Porta i chip al Colonnello. + +[COL2_F1:GENERA2] +~r~Hai ucciso il contatto! + +[COL2_F2:GENERA2] +~r~Il corriere è morto. Raccogli i chip. + +[COL2_6A:GENERA2] +Fermo, brutto maiale imperialista americano! Questa è proprietà del governo francese. Passamela! + +[BLIPHLP:GENERA2] +Se il segnale sul radar è un triangolo verso l'alto, significa che il bersaglio è in posizione più elevata rispetto al giocatore. + +[COL2_F3:GENERA2] +~r~I chip adesso riposano in fondo all'oceano. + +[COL2_F4:GENERA2] +~r~Il corriere è scappato! Non sei riuscito a recuperare i chip. + +{=================================== MISSION TABLE GENERA3 ===================================} + +[GEN3_A:GENERA3] +Thomas, grazie per essere venuto. + +[GEN3_B:GENERA3] +Perdonami se giungo subito al punto. + +[GEN3_C:GENERA3] +Diaz mi ha chiesto di sovrintendere una piccola transizione di lavoro. + +[GEN3_D:GENERA3] +Speriamo vada meglio dell'ultima... + +[GEN3_E:GENERA3] +Ed è per questo che ho pensato a te, amico. + +[GEN3_F:GENERA3] +Ho lasciato un po' di supporto al parcheggio multipiano. + +[GEN3_G:GENERA3] +Raccogli il materiale, poi raggiungi e sorveglia gli uomini di Diaz all'incontro. + +[GEN3_H:GENERA3] +Gracias, amigo. + +[GEN3_1:GENERA3] +Ami l'azione, vedo... + +[GEN3_2:GENERA3] +Senti, ti capita mai di fare qualcos'altro che non sia seguirmi dappertutto? Perché non vieni con me e mi dimostri di servire a qualcosa? + +[GEN3_3:GENERA3] +Potrei anche farlo. A proposito, mi chiamo Lance. + +[GEN3_5:GENERA3] +Devi essere il nuovo uomo di Cortez. + +[GEN3_6:GENERA3] +Fino a quando non mi capiteranno opportunità più lucrose. + +[GEN3_7:GENERA3] +Arriveranno fra pochi minuti: meglio trovare un buon punto dove appostarsi... + +[GEN3_8:GENERA3] +OK! Io prendo il balcone, tu prendi il tetto dall'altra parte del cortile. + +[GEN3_9:GENERA3] +Sono vivo, brutti stronzi! E tutto grazie a te! Come ti chiami? + +[GEN3_10:GENERA3] +Tommy. + +[GEN3_11:GENERA3] +Ci incontreremo di nuovo, credo! + +[GEN3_12:GENERA3] +Dove diavolo è andato Lance? Merda... + +[GEN3_14:GENERA3] +Tommy! Ho bisogno di aiuto! + +[GEN3_15:GENERA3] +Non preoccuparti, ti copro io! + +[GEN3_16:GENERA3] +Gli uomini di Diaz si stanno facendo massacrare! + +[GEN3_19:GENERA3] +~g~Haitiani! Stanno mandando a monte l'affare! Proteggi Diaz! + +[GEN3_20:GENERA3] +~g~Entra nel parcheggio multipiano e recupera ciò che il Colonnello ha lasciato per te. + +[GEN3_22:GENERA3] +Salute di Diaz: + +[GEN3_23:GENERA3] +~g~Hai lasciato Lance indietro! Vallo a prendere! + +[GEN3_25:GENERA3] +~r~Lance è morto! + +[GEN3_28:GENERA3] +~g~Riporta la valigetta a Diaz. + +[GEN3_29:GENERA3] +~g~Raccogli la valigetta e riportala a Diaz. + +[GEN3_30:GENERA3] +~r~È scappato con i soldi! Diaz ti strapperà le palle per questo! + +[GEN3_33:GENERA3] +~r~Dovresti proteggere Diaz e i suoi uomini, non sparargli addosso! + +[GEN3_34:GENERA3] +~r~Non ci sarà nessun accordo se spari ai Cubani! + +[GEN3_35:GENERA3] +~g~Ha rubato i soldi di Diaz! + +[GEN3_36:GENERA3] +~g~Prendi la moto, inseguilo e recupera i soldi di Diaz! + +[GEN3_37:GENERA3] +~g~Stanno arrivando i Cubani. Assicurati che niente vada storto e proteggi Diaz e Lance. + +[GEN3_38:GENERA3] +~r~Diaz è morto! Non sei riuscito a proteggerlo! + +[GEN3_39:GENERA3] +~g~Raggiungi la tua postazione sopra alle scale. + +[GEN3_44:GENERA3] +~g~Vai con Lance all'appuntamento e proteggi Diaz. + +[GEN3_40:GENERA3] { reVC update } +Per ~h~sparare davanti~w~ su una ~h~moto~w~ premi il ~h~~k~~VEHICLE_FIREWEAPON~~w~. + +[GEN3_41:GENERA3] { reVC update } +Per ~h~sparare davanti~w~ su una ~h~moto~w~ premi il ~h~~k~~VEHICLE_FIREWEAPON~~w~. + +[GEN3_46:GENERA3] +Meerda! + +[GEN3_47:GENERA3] +Tommy! + +[GEN3_48:GENERA3] +Maledizione! + +[GEN3_49:GENERA3] +SALUTE DI LANCE: + +[GEN3_50:GENERA3] +~r~Hai distrutto i soldi di Diaz! La prossima volta cerca di non ridurre le banconote in cenere! + +[GEN3_51:GENERA3] +Altri fottuti Haitiani in un merdoso van! + +[GEN3_54:GENERA3] +Non restare lì impalato, idiota, insegui quello stronzo di un Haitiano! + +[GEN3_55:GENERA3] +Tommy! Io resto qua a proteggere Diaz! + +[GEN3_18:GENERA3] +~g~Stanno arrivando i Cubani, resta vicino a Diaz. Assicurati che niente vada storto e proteggi Diaz e Lance. + +[GEN3_56:GENERA3] +~r~Diaz è stato assalito e ucciso! La prossima volta, cerca di proteggerlo! + +[GEN3_57:GENERA3] +Il Kruger è un fucile d'assalto che permette di mirare in prima persona. + +[GEN3_58:GENERA3] +Tieni premuto il tasto ~h~R1~w~ per ~h~mirare~w~ con il fucile d'assalto. + +[GEN3_59:GENERA3] +Tieni premuto il tasto ~h~L1~w~ per ~h~mirare~w~ col fucile d'assalto. + +[GEN3_60:GENERA3] +Premi il tasto ~h~~k~~PED_FIREWEAPON~~w~ per ~h~sparare~w~ col fucile d'assalto. + +[GEN3_61:GENERA3] +Premi il tasto ~h~~k~~PED_FIREWEAPON~~w~ per ~h~sparare~w~ col fucile d'assalto. + +[GEN3_62:GENERA3] +Premi il tasto ~h~~k~~PED_FIREWEAPON~~w~ per ~h~sparare~w~ col fucile d'assalto. + +[GEN3_63:GENERA3] +Oltre a permetterti di sparare in corsa, con le ~h~moto~w~ puoi anche ~h~sparare in avanti~w~. + +[GEN3_64:GENERA3] { reVC update } +Per sparare in avanti quando sei su una moto, premi il tasto ~h~~k~~VEHICLE_FIREWEAPON~~w~. + +[GEN3_65:GENERA3] { reVC update } +Per sparare in avanti quando sei su una moto, premi il tasto ~h~~k~~VEHICLE_FIREWEAPON~~w~. + +[GEN3_66:GENERA3] { reVC update } +Per sparare in avanti quando sei su una moto, premi il tasto ~h~~k~~VEHICLE_FIREWEAPON~~w~. + +[GEN3_67:GENERA3] +Hai bisogno di una mitragliatrice per poter sparare in avanti. + +[GEN3_53:GENERA3] +I MIEI SOLDI! + +[GEN3_52:GENERA3] +Questi Haitiani pensano che possono farsi RICARDO DIAZ!?! + +{=================================== MISSION TABLE GENERA4 ===================================} + +[DETON:GENERA4] +DETONAZIONE: + +[COL4_3:GENERA4] +CONVOGLIO ALT! + +[COL4_6:GENERA4] +SIAMO SOTTO FUOCO NEMICO! + +[COL4_7:GENERA4] +Civile, si allontani dal carro armato! + +[COL4_8:GENERA4] +HO DETTO, si allontani, IMMEDIATAMENTE! + +[COL4_9:GENERA4] +POSIZIONI DIFENSIVE! + +[COL4_11:GENERA4] +Porta via quel civile, soldato! - Signorsì, signore! + +[COL4_12:GENERA4] +Civile nel CARRO ARMATO! FERMATELO! + +[COL4_13:GENERA4] +Questo è un convoglio militare, non ostacoli il passaggio. + +[COL4_14:GENERA4] +Fallo fuori, soldato. + +[COL4_15:GENERA4] +Spostate quel veicolo civile via dalla strada! -Signore! Sposto il veicolo, signore! + +[COL4_17:GENERA4] +OK, PLOTONE, IN MARCIA! + +[COL4_18:GENERA4] +Qualcuno è entrato nel carro armato, signore! + +[COL4_19:GENERA4] +Vai a prendere delle ciambelle, soldato! - Signorsì, signore! + +[COL4_20:GENERA4] +Bersaglio acquisito, signore! + +[COL4_21:GENERA4] +CECCHINO! + +[COL4_22:GENERA4] +Io me la squaglio. + +[COL4_23:GENERA4] +Obiettivo completato! Plotone riposo! -Andiamo a mangiarci qualche ciambella. + +[COL4_24:GENERA4] +Protocollo di sicurezza Delta India Echo attivato! Autodistruzione del veicolo attivata! + +[COL4_26:GENERA4] +Preparati a morire, maledetto comunista! + +[COL4_B2:GENERA4] +~r~Il carro armato è arrivato con successo a destinazione! + +[COL4_B5:GENERA4] +~r~Il carro armato è stato distrutto! + +[COL4_01:GENERA4] +Diaz era soddisfatto e vorrebbe incontrarti nuovamente. + +[COL4_02:GENERA4] +È un buon segno? + +[COL4_03:GENERA4] +Ma certo! Benché credo che Diaz sia il responsabile della nostra sfortunata perdita... + +[COL4_04:GENERA4] +Che cosa glielo fa pensare? + +[COL4_05:GENERA4] +Nessuno accusa direttamente un uomo come Diaz... sto solo pensando a voce altra... + +[COL4_06:GENERA4] +Non importa. Ho una proposta che potrebbe interessarti... + +[COL4_07:GENERA4] +Non ho più tempo per i suoi lavori, Cortez. + +[COL4_08:GENERA4] +Pensavo che un uomo con dei debiti così pericolosi fosse desideroso di opportunità. Per favore, Tommy, almeno ascoltami. + +[COL4_09:GENERA4] +Mi dica... + +[COL410:GENERA4] +Ho un acquirente per un mezzo militare che sta attraversando la città. Recuperalo per me... + +[COL411:GENERA4] +e, quando lo avrai, vorrei che mi chiamassi immediatamente. Poi... + +[COL4_B4:GENERA4] +~g~Il carro armato è chiuso. Trova un modo per far uscire gli occupanti. + +[COL4_1:GENERA4] +Che cos'ha il mitragliatore? -Non so signore! + +[COL4_4:GENERA4] +-Vai di sopra, soldato. -Signorsì, signore! + +[COL4_B1:GENERA4] +~g~Impadronisciti del mezzo militare che sta attraversando la città. + +[COL4_B3:GENERA4] +~g~Porta il carro armato al garage del Colonnello prima che si autodistrugga. + +[COL4_B6:GENERA4] +~g~Trova un modo per rubare il carro armato! + +[COL4_B7:GENERA4] +~g~Porta il carro armato dentro al garage. + +[COL4_B8:GENERA4] +~g~Esci dal carro armato e abbandona il garage. + +{=================================== MISSION TABLE GENERA5 ===================================} + +[COL5A_1:GENERA5] +Le circostanze richiedono una rapida partenza, amigo. + +[COL5A_2:GENERA5] +Qual è il problema? + +[COL5A_3:GENERA5] +Uh, i Francesi rivogliono la loro tecnologia missilistica indietro dopo quell'incidente... + +[COL5A_4:GENERA5] +Sento che è giunta l'ora di partire per porti più sicuri. + +[COL5A_5:GENERA5] +Non sarebbe meglio via aria? + +[COL5A_6:GENERA5] +Sarei morto ancor prima di raggiungere il check-in. Inoltre, devo portare la mia merce fuori dal paese. + +[COL5A_7:GENERA5] +Serve un'altra pistola? + +[COL5A_8:GENERA5] +Tu, amico, vali come dieci pistole... ah ah ah! + +[COL5B_1:GENERA5] +Thomas, mi hai protetto e servito bene. + +[COL5B_2:GENERA5] +Ma adesso devi abbandonarci prima che raggiungiamo il mare aperto. + +[COL5B_4:GENERA5] +Grazie mille, Colonnello. + +[COL5B_5:GENERA5] +Un'ultima richiesta, mentre sono via: terresti un occhio su Mercedes per me? + +[COL5B_6:GENERA5] +Credo sappia badare a sé stessa, ma certo, la terrò sott'occhio. + +[COL5B_7:GENERA5] +Grazie mille, amico. A presto! + +[COL5B_8:GENERA5] +Adios, amigo. + +[COL5_7:GENERA5] +Smettila di spararmi! + +[COL5_9:GENERA5] +Tommy, falli smettere di sparare! + +[COL5_10:GENERA5] +Ho l'immunità diplomatica! + +[COL5_11:GENERA5] +Non sparare, sono il Colonnello! + +[COL5_12:GENERA5] +Thomas, uccidili: la mia nazione ti sarà riconoscente. + +[COL5_13:GENERA5] +Tommy, siamo assaliti dai Francesi! + +[COL5_14:GENERA5] +Tommy, dovunque guardo vedo dei Francesi. Io li odio! + +[COL5_15:GENERA5] +Tommy, come stai? + +[COL5_16:GENERA5] +Questo è per la Piaf e Gainesbourg e per le vostre stupide baguette! + +[COL5_1:GENERA5] +A babordo! A babordo! + +[COL5_2:GENERA5] +Ci attaccano da tribordo! + +[COL5_3:GENERA5] +Il ponte qui davanti! + +[COL5_4:GENERA5] +Hanno un elicottero! + +[COL5_B1:GENERA5] +~g~Difendi a tutti i costi il Colonnello e il suo yacht. + +[COL5_B2:GENERA5] +~g~Vai a prua e libera la strada per il passaggio dello yacht del Colonnello. + +[COL5_B3:GENERA5] +~r~Il Colonnello è morto! + +[COL5_B4:GENERA5] +~g~Abbatti l'elicottero! + +[COL5B_3:GENERA5] +Farò calare la mia lancia personale. Tienila, amico, un pegno della mia gratitudine. + +[COL5_B5:GENERA5] +~g~Abbatti gli elicotteri e proteggi lo yacht. + +[COL5_B6:GENERA5] +~g~Hai finito i colpi: recuperane altri dalle scale al ponte superiore. + +[COL5_B7:GENERA5] +~g~Sei a corto di salute: recuperane altra dalle scale al ponte superiore + +{=================================== MISSION TABLE HAIT1 ===================================} + +[HAM1_A:HAIT1] +Permesso? + +[HAM1_B:HAIT1] +Entra pure, caro, e riposa l'anima. + +[HAM1_C:HAIT1] +Devi essere il grande uomo cattivo di cui parlava mio nonno. + +[HAM1_D:HAIT1] +Mi ha raccontato di te, sai, quando mi fa visita, + +[HAM1_E:HAIT1] +e degli altri che ti aspettano. + +[HAM1_F:HAIT1] +Adesso, siamo tutti morti da tempo, ma tu sai, + +[HAM1_G:HAIT1] +non vorrei essere nei tuoi panni, eh eh eh! + +[HAM1_H:HAIT1] +Ho ricevuto un messaggio. Sono venuto. + +[HAM1_I:HAIT1] +Li puoi sentire? + +[HAM1_J:HAIT1] +Stanno chiamando il tuo nome, devono proprio volerti, non credi? + +[HAM1_K:HAIT1] +Magari adesso dai una mano alla zia Poulet, uh, e forse lei ti aiuta. + +[HAM1_L:HAIT1] +Forse potrà darti un piccolo juju dopo tutto questo. + +[HAM1_M:HAIT1] +Un po' di magia per dare all'uomo di legge il malocchio, hmmm? + +[HAM1_N:HAIT1] +Ascolta, tutto questo è, uhm... darmi cosa? + +[HAM1_O:HAIT1] +Credo, credo proprio di aver sbagliato indirizzo... + +[HAM1_P:HAIT1] +Fai per me questo favore, Tommy... + +[HAM1_Q:HAIT1] +I Cubani, foofoo molto orgogliosi, hmmm, + +[HAM1_R:HAIT1] +hanno dato molti grattacapi ai miei ragazzi Haitiani. + +[HAM1_S:HAIT1] +Adesso hanno detto alla polizia dove nascondo le mie polveri. + +[HAM1_T:HAIT1] +Pensano sia droga, gli stupidi. + +[HAM1_U:HAIT1] +Adesso fai il bravo, Tommy, e vai a prendere le polveri per la zia Poulet. + +[HAM1_V:HAIT1] +Sì, sì, certo, vado. + +[HAM1_1:HAIT1] +~g~I poliziotti si stanno avvicinando alle nostre riserve. Fermali prima che ci riescano. + +[HAM1_2:HAIT1] +~r~I poliziotti sono arrivati per primi alla riserva! + +[HAM1_3:HAIT1] +~g~Riporta questa roba al nascondiglio! + +[HAM1_4:HAIT1] +~g~Ottimo! Adesso pensa al prossimo! + +[HAM1_6:HAIT1] +~r~La riserva è stata distrutta, idiota! + +[HAM1_7:HAIT1] +~g~La polizia ha preso la nostra riserva! Recuperala prima che se ne vada! + +[HAM1_8:HAIT1] +~g~I poliziotti sono vicini alla riserva: datti una mossa! + +[HAT_1A:HAIT1] +~g~Non muoverti, allocco! + +{=================================== MISSION TABLE HAIT2 ===================================} + +[HAT2_B1:HAIT2] +~g~Raggiungi il van che contiene le bombe volanti. + +[HAT2_B2:HAIT2] +Uccidi i Cubani... + +[HAT2_B4:HAIT2] +...e distruggi le loro imbarcazioni! + +[HAT2_B5:HAIT2] +~g~I Cubani stanno fuggendo: non lasciarli scappare! + +[HAT2_B6:HAIT2] +~r~L'aereo radiocomandato si sta allontanando dal raggio d'azione! + +[HAT2_B7:HAIT2] +~g~Uno dei Cubani sta fuggendo in macchina. Non lasciare nessun testimone! + +[HAT2_B8:HAIT2] +~g~Non hai più aerei radiocomandati! + +[HAT2_B9:HAIT2] +Aerei radiocomandati: + +[HAT2_1:HAIT2] +Oh. Scusa, devo aver sbagliato indirizzo... + +[HAT2_2:HAIT2] +Puoi entrare comunque a riposare i piedi e a bere un po' di tè. + +[HAT2_3:HAIT2] +Hai qualcosa per me, Tommy? + +[HAT2_4:HAIT2] +Sì... + +[HAT2_5:HAIT2] +Questo posto mi sembra familiare. Un odore della mia gioventù... un deja vu... + +[HAT2_6:HAIT2] +Adesso Tommy, ti sussurrerò una piccola commissione che devi farmi. Ascoltami attentamente, va bene? + +[HAT2_7:HAIT2] +Mi ricordi qualcuno che... + +[HAT2_8:HAIT2] +I Cubani hanno imbarcazioni molto veloci che utilizzano per trasportare la droga via mare. + +[HAT2_9:HAIT2] +È il loro modo di vivere. + +[HAT2_10:HAIT2] +Mio nipote ha costruito delle simpatiche bombe per farli fuori. + +[HAT2_11:HAIT2] +Fai esplodere le barche e inchioda le loro bare. + +[HAT2_12:HAIT2] +Beh, grazie per il tè. + +[HAT2_B3:HAIT2] { reVC update } +Premi il ~h~~k~~VEHICLE_FIREWEAPON~~w~ per sganciare una bomba. Premi il ~h~~k~~VEHICLE_ENTER_EXIT~ "~w~ per annullare. + +{=================================== MISSION TABLE HAIT3 ===================================} + +[HAM3_A:HAIT3] +Salve, salve, io, uh... Stavo cercando qualcuno... + +[HAM3_B:HAIT3] +Mi sembri affamato, Tommy. + +[HAM3_C:HAIT3] +Ci conosciamo? + +[HAM3_D:HAIT3] +Zitto ora. + +[HAM3_E:HAIT3] +Un'ultima cosa e potrai andare, Tommy. + +[HAM3_F:HAIT3] +I miei ragazzi sono in guerra con i Cubani. + +[HAM3_G:HAIT3] +Ma niente pistole. + +[HAM3_H:HAIT3] +Hmmm, ma i Cubani hanno una sorpresa in serbo. + +[HAM3_I:HAIT3] +Mentre combattono per la strada, tu prendi questo fucile e li elimini durante la confusione. + +[HAM3_J:HAIT3] +Nessuno ti vede, nessuno ti sente. + +[HAM3_K:HAIT3] +Adesso, Tommy, fai questo per me e non sarai più aggrappato al mio grembiule. + +[HAM3_1:HAIT3] +~g~Dobbiamo vincere questa battaglia. Se tutti gli Haitiani muoiono, sarà la fine. + +[HAM3_3:HAIT3] +~g~Sospetto che i Cubani bareranno, per cui stai in guardia. + +[HAM3_4:HAIT3] +~r~Ti hanno visto! La missione è fallita! + +[HAM3_5:HAIT3] +~g~Devi eliminare i Cubani da lontano. Non devono vederti. + +[HAM3_8:HAIT3] +~g~Gli Haitiani stanno morendo! Migliora la tua mira! + +[HAM3_7:HAIT3] +~g~Attento! I Cubani hanno chiamato rinforzi. Uccidili tutti quanti! + +[HAM3_2:HAIT3] +~r~Gli Haitiani sono morti! + +[HAM3_L:HAIT3] +Sssì zia... + +{=================================== MISSION TABLE HOTEL ===================================} + +[INTB_A:HOTEL] +Tommy! Tommy, quanto tempo è passato! + +[INTB_B:HOTEL] +Ciao Sonny. + +[INTB_C:HOTEL] +Lo so, lo so, sei sopraffatto dall'emozione. + +[INTB_D:HOTEL] +Quindici anni... sembra come se fosse ieri. + +[INTB_E:HOTEL] +Credo dipenda dal punto di vista. + +[INTB_F:HOTEL] +Ehi, stare dentro per la famiglia non è una passeggiata, + +[INTB_G:HOTEL] +ma la famiglia si preoccupa dei suoi, OK? + +[INTB_H:HOTEL] +Allora, raccontami come è andata... Eri in ballo con l'oro bianco? + +[INTB_I:HOTEL] +Ascolta Sonny, ci avevano incastrato. L'incontro era un'imboscata. Harry e Lee sono morti. + +[INTB_J:HOTEL] +Basta con queste storie, Tommy. Hai ancora i soldi, vero? + +[INTB_K:HOTEL] +...no Sonny... non ho i soldi. + +[INTB_L:HOTEL] +Quelli erano i miei soldi, Tommy, I MIEI SOLDI! + +[INTB_M:HOTEL] +Non cercare di fottermi, Tommy, perché sai che non sono una persona a cui piace essere presa per il culo! + +[INTB_N:HOTEL] +Aspetta Sonny. + +[INTB_O:HOTEL] +Hai la mia parola che recupererò i tuoi soldi e la droga. + +[INTB_P:HOTEL] +E ti farò avere per posta l'uccello dei responsabili. + +[INTB_Q:HOTEL] +Ehi, ne sono certo. Non sei uno stupido, Tommy, ma ti avverto: non lo sono neanch'io. + +[INTB_R:HOTEL] +Se fosse stato qualcun altro, adesso sarebbe già MORTO. + +[INTB_S:HOTEL] +Ma visto che sei tu, che ci conosciamo da tempo, ti permetterò di gestire la situazione. + +[INTB_T:HOTEL] +Ehi, Sonny, hai la mia parola. + +[INTB_U:HOTEL] +Mi farò vivo. + +{=================================== MISSION TABLE ICECRE1 ===================================} + +[ICC1_4:ICECRE1] +~g~Non ci sono clienti in quest'area, prova in un'altra. + +[ICC1_5:ICECRE1] +Transazioni effettuate: + +[ICC1_7:ICECRE1] +~g~Riceverai soldi per ogni transazione, ma più ne esegui, maggiori saranno le probabilità di attirare l'attenzione della polizia. + +[ICC1_8:ICECRE1] +~g~Per eseguire una transazione, ~h~parcheggia il camioncino~g~ e premi il ~h~~k~~VEHICLE_HORN~~g~ per suonare il campanello e attrarre i clienti. + +[ICC1_9:ICECRE1] +~g~Le gang locali non apprezzeranno il tuo lavoro nel loro territorio, per cui aspettati azioni ostili. + +[ICC1_10:ICECRE1] +~g~Hai portato a termine ~1~ transazioni! + +[ICC1_11:ICECRE1] +~g~Hai portato a termine ~1~ transazione! + +[ICC1_13:ICECRE1] +~r~Non hai portato a termine nessuna transazione. + +[ICC1_14:ICECRE1] +BENI FABBRICA DI GELATO ACQUISITI + +[ICC1_15:ICECRE1] +~g~La fabbrica di gelato d'ora in poi genererà introiti per un massimo di ~1~$. Ricordati di recuperarli regolarmente. + +[ICC1_16:ICECRE1] +~g~Utilizza il Mr. Whoopee per distribuire i prodotti Cherry Poppers per Vice City. + +[ICE_AT1:ICECRE1] +FABBRICA DI GELATO COMPLETATA + +[ICE_AT2:ICECRE1] +~g~La fabbrica Cherry Popper d'ora in poi genererà introiti per un massimo di ~1~$. Ricordati di recuperarli regolarmente. + +[ICC1_17:ICECRE1] +Missione di distribuzione terminata. + +[ICC1_18:ICECRE1] +Vendita totale gelati: ~1~$ + +[ICC1_19:ICECRE1] +Transizioni totali eseguite: ~1~ + +{=================================== MISSION TABLE ICECUT ===================================} + +[ICC1_A:ICECUT] +Chi sei? + +[ICC1_B:ICECUT] +Il nuovo proprietario. + +[ICC1_C:ICECUT] +Sei per caso, o lo sei mai stato, un bambino? + +[ICC1_D:ICECUT] +Ma di cosa stai parlando? + +[ICC1_E:ICECUT] +Sei stato un bambino? + +[ICC1_F:ICECUT] +Certo! Calmati! Che ti prende? + +[ICC1_G:ICECUT] +Lo sapevo. Un bambino. + +[ICC1_H:ICECUT] +Uno sporco, puzzolente, moccioso, lamentoso, vile, vomitevole, piagnucoloso piccolo bambino! + +[ICC1_I:ICECUT] +Un bambino... un mostruoso, orribile disgustoso piccolo bambino. Boo hoo. + +[ICC1_J:ICECUT] +La mamma non ti ama, brutto piccolo avanzo! + +[ICC1_K:ICECUT] +Ow! Accidenti, calmati! + +[ICC1_L:ICECUT] +Io ODIO i bambini, odio i poppanti. + +[ICC1_M:ICECUT] +Sono sporchi, puzzolenti, mocciosi, vomitevoli piccoli... + +[ICC1_N:ICECUT] +Ne ho avuto abbastanza! + +[ICC1_O:ICECUT] +Ma che diavolo hai? + +[ICC1_P:ICECUT] +Tu fai gelati, vero? Sono solo per bambini. + +[ICC1_Q:ICECUT] +Ma che psicopatica sei? + +[ICC1_R:ICECUT] +È così mi sono chiesta: perché fare felici i bambini se li odio? + +[ICC1_S:ICECUT] +Oh, stupidi, schifosi, mocciosi... + +[ICC1_T:ICECUT] +Sta zitta! + +[ICC1_U:ICECUT] +...Monellaccio! + +[ICC1_V:ICECUT] +La gelateria è solo una facciata. + +[ICC1_W:ICECUT] +Noi distribuiamo altro, prodotti non caseari. + +[ICC1_X:ICECUT] +E se vedo un bambino, non perdo occasione. + +[ICC1_Y:ICECUT] +Non è vero, bambini? Sì, sì, lo faccio. La mamma non vi ama. + +[ICC1_Z:ICECUT] +Lei vi ODIA! + +[ICC1_ZA:ICECUT] +PROPRIETÀ ACQUISTATA! + +{=================================== MISSION TABLE INTRO ===================================} + +[INT1_A:INTRO] +Tommy Vercetti... Ommerda! + +[INT1_B:INTRO] +Pensavo non lo avrebbero mai rilasciato. + +[INT1_C:INTRO] +Ha tenuto la testa bassa... molta gente ha dimenticato. + +[INT1_D:INTRO] +Ma molti ricorderanno ben presto... + +[INT1_E:INTRO] +Quando lo vedranno camminare per le strade del loro vicinato. + +[INT1_F:INTRO] +Non sarà una cosa positiva per il business. + +[INT1_G:INTRO] +Beh, che cosa facciamo, Sonny? + +[INT1_H:INTRO] +Lo trattiamo come un amico e lo teniamo impegnato fuori città, OK? + +[INT1_I:INTRO] +Parlavamo di espanderci verso sud, vero? + +[INT1_J:INTRO] +Vice City è oro puro in questi giorni. + +[INT1_K:INTRO] +I Colombiani, i Messicani, che diamine, + +[INT1_L:INTRO] +anche i rifugiati Cubani si sono ritagliati una bella fetta della torta. + +[INT1_M:INTRO] +Ma si tratta di droga, Sonny, + +[INT1_N:INTRO] +nessuno delle famiglie toccherà quella merda! + +[INT1_O:INTRO] +I tempi cambiano. + +[INT1_P:INTRO] +Le famiglie non possono girare le spalle mentre i nostri nemici si godono il raccolto. + +[INT1_Q:INTRO] +Per cui mandiamo qualcuno a fare il lavoro sporco + +[INT1_R:INTRO] +e a prendere una bella fetta per noi, OK? + +[INT1_S:INTRO] +Chi è il nostro contatto laggiù? + +[INT1_T:INTRO] +Ken Rosenberg, uno schmuck di un avvocato. + +[INT1_U:INTRO] +Come farà a tenere al guinzaglio Vercetti? + +[INT1_V:INTRO] +Non dovrà farlo. + +[INT1_W:INTRO] +Mandiamolo alla ribalta a Vice City + +[INT1_X:INTRO] +con un po' di denaro per cominciare, OK? + +[INT1_Y:INTRO] +Lasciamogli qualche mese. + +[INT1_Z:INTRO] +Poi andiamo giù, + +[INT1_A1:INTRO] +gli facciamo visita, giusto? + +[INT1_A2:INTRO] +E vediamo come se la sta cavando... + +[INT2_A:INTRO] +Ehi, ehi, amici! Sono, uh, Ken Rosenberg! Eh, eh, ottimo, ehi! + +[INT2_B:INTRO] +Bene, uh, vi accompagno in auto all'appuntamento, OK? + +[INT2_C:INTRO] +Ho parlato con i fornitori e loro sono molto, ehm, + +[INT2_D:INTRO] +desiderosi di avviare una relazione commerciale, per cui, uh, + +[INT2_E:INTRO] +se tutto dovesse andare come deve, noi, dovremmo, uh, + +[INT2_F:INTRO] +ottenere dei buoni risultati economici, il che, cioè... + +[INT2_G:INTRO] +è bene... + +[INT2_H:INTRO] +OK allora. Sono fratelli, OK. + +[INT2_I:INTRO] +Uno si occupa del, uh, business, + +[INT2_J:INTRO] +mentre l'altro si occupa dei voli. + +[INT2_K:INTRO] +Adesso operano dal Messico, + +[INT3_A:INTRO] +OK, sono loro sull'elicottero. + +[INT3_B:INTRO] +Bene, questo è l'accordo. + +[INT3_C:INTRO] +Vogliono uno scambio diretto in campo aperto. + +[INT3_D:INTRO] +Va bene? OK, nervi saldi, andiamo. + +[INT3_E:INTRO] +Vedi di star calmo. + +[INT3_F:INTRO] +Resto qui con l'auto pronta a partire! + +[INT3_G:INTRO] +Chiaro? + +[INT3_H:INTRO] +Colombiana 100% pura di prima classe, amici miei. + +[INT3_I:INTRO] +I verdoni? + +[INT3_J:INTRO] +Da dieci e da venti... usati. + +[INT3_L:INTRO] +Forza, vieni qua! Muoviti! + +[INTRO1:INTRO] +metto fuori la testa per un maledetto secondo, e il fato mi tira palate di merda in faccia! + +[INTRO2:INTRO] +Vai a riposarti. + +[INTRO3:INTRO] +Che cosa intendi fare? + +[INTRO4:INTRO] +Passerò domani a trovarti in ufficio e troveremo un modo per risolvere questo casino. + +[INT3_K:INTRO] +Siamo d'accordo allora, amico. AH AH! + +[INT3_M:INTRO] +Fammi dare un'occhiata. + +[INT2_L:INTRO] +no, no, no, aspetta... + +{=================================== MISSION TABLE KENT1 ===================================} + +[KPM1_A:KENT1] +Ehi bello, ho delle informazioni sul tuo amico. + +[KPM1_B:KENT1] +Ma di cosa stai parlando? + +[KPM1_C:KENT1] +Conosci quel fallito di Diaz, il signore degli spacciatori? + +[KPM1_D:KENT1] +Ha preso il tuo amico, Lance. Sembra che abbia cercato di scavalcarlo... + +[KPM1_E:KENT1] +ma non ha saltato abbastanza in alto, se capisci cosa intendo. + +[KPM1_F:KENT1] +Dove lo hanno portato? Senza giri di parole! + +[KPM1_G:KENT1] +Stai calmo! Lo hanno trasportato attraverso la città fino alla discarica. + +[KPM1_H:KENT1] +Maledizione... Brutto idiota. + +[KPM1_2:KENT1] +~r~Dovevi portare Lance fuori vivo da lì! + +[KPM1_3:KENT1] +SALUTE DI LANCE: + +[RESC_1:KENT1] +Ce la fai a usare un'arma? + +[RESC_2:KENT1] +Certo... credo... È bello rivederti! + +[RESC_3:KENT1] +Andiamocene da qua. + +[RESC_4:KENT1] +Bene, con questo hai mandato a puttane tutti i miei bei piani. L'hai proprio fatta grossa, Lance. + +[RESC_5:KENT1] +Ha ucciso mio fratello. Che cosa ti aspettavi facessi, che gli tagliassi il prato? + +[RESC_6:KENT1] +Dobbiamo far fuori quello stronzo di Diaz prima che sia lui a farlo. + +[RESC_7:KENT1] +Preparati e incontriamoci al ponte di Star Island, OK? + +[RESC_8:KENT1] +OK, ricevuto. + +[KPM1_1:KENT1] +~g~Lance viene tenuto nella discarica: vai a salvarlo! + +[KPM1_4:KENT1] +~g~Porta Lance all'ospedale! + +[M_PASSN:KENT1] +MISSIONE COMPLETATA! + +[KPM1_5:KENT1] +~g~Gli uomini di Diaz ti stanno dietro: porta Lance all'ospedale. + +{=================================== MISSION TABLE KICKSTT ===================================} + +[KICK1_2:KICKSTT] +~r~Non sei tornato abbastanza velocemente alla tua moto! + +[KICK1_7:KICKSTT] ~r~Hai distrutto la moto! -[BIKE_F2:BIKE] -~r~Hai ucciso il cliente! +[KICK1_8:KICKSTT] +~g~Ritorna sulla moto! -[BIKE_F3:BIKE] -~r~Ci hai messo troppo! Il cliente si è stufato! +[KICK1_T:KICKSTT] +TEMPO IMPIEGATO: -[BIKE_F4:BIKE] -~r~Il cliente odia questa moto! +[KICKTM:KICKSTT] +~b~DURATA EVENTO: ~1~:~1~ -[BIKE_F5:BIKE] -~r~Hai chiuso con la vendita delle moto. +[KICKTM2:KICKSTT] +~b~DURATA EVENTO: ~1~:0~1~ -[BIKE_F6:BIKE] -~r~Il cliente odia la moto, l'hai distrutta! +[GETBIKE:KICKSTT] +~g~Hai ~1~ secondi per tornare sulla tua moto prima che la missione abbia termine. -[BIKE_F7:BIKE] -~r~Il cliente odia la moto, sei andato troppo veloce! +[KICK1_1:KICKSTT] +~g~Completa il tracciato il più velocemente possibile. -[BIKE_F8:BIKE] -~r~Il cliente odia la moto, sei andato troppo piano! +[KICK1_6:KICKSTT] +~g~Complimenti! -[BIKE_B1:BIKE] -~w~Hai ~1~ secondi per tornare sulla ~b~moto! +[KICK_10:KICKSTT] +~g~Usa il Sanchez per completare il percorso passando per tutti i punti di controllo. -[BIKE_B2:BIKE] -~w~Riprendi il ~b~cliente~w~ sulla moto! +[KICK_12:KICKSTT] +~g~Ti sei bloccato! -[BIKE_B3:BIKE] -~w~Lascia salire il ~b~cliente~w~ sulla moto! +[KICK_13:KICKSTT] +~g~Ci hai messo troppo tempo! -[BIKE_SA:BIKE] -Vendita +[KICK_11:KICKSTT] +~g~Per abbandonare la missione, posizionati a piedi sul ~q~segnalino rosa~g~. -[BIKE_7:BIKE] -~w~Sali su una ~b~moto! +{=================================== MISSION TABLE LAWYER1 ===================================} -[BIKE_S1:BIKE] -~w~Hai venduto tutte le Freeway in magazzino! +[LAW1_A:LAWYER1] +Vai a riposarti un po', ha detto... -[BIKE_S2:BIKE] -~w~Hai venduto tutte le PCJ 600 in magazzino! +[LAW1_B:LAWYER1] +...ho passato tutta la sera su questa seggiola a bere caffè con la luce spenta. -[BIKE_S3:BIKE] -~w~Hai venduto tutte le Faggio in magazzino! +[LAW1_C:LAWYER1] +È un disastro. Siamo veramente fottuti, amico! -[BIKE_S4:BIKE] -~w~Hai venduto tutte le Sanchez in magazzino! +[LAW1_D:LAWYER1] +Quei gorilla, non sto scherzando, verranno qui da me e mi staccheranno la testa. È ridicolo! -[BIKE_SN:BIKE] -~w~È stata consegnata della nuova merce! +[LAW1_E:LAWYER1] +NON mi sono laureato in giurisprudenza per questo! Bene, dimmi un po': che cosa hai intenzione di fare? -{=================================== MISSION TABLE RAC1 ===================================} +[LAW1_F:LAWYER1] +Sta zitto, siediti e rilassati. Ti dirò che cosa faremo. -[RAC1_A0:RAC1] -~w~Se vuoi provare di essere un pilota modello, presentati alla partenza della prossima gara. +[LAW1_G:LAWYER1] +Tu dovrai scoprire chi ha preso la nostra cocaina... e io li farò fuori. -{=================================== MISSION TABLE RAC2 ===================================} +[LAW1_H:LAWYER1] +È una buona idea. Anzi, è un'OTTIMA idea. Fammici pensare, fammici pensare, fammici pensare. -[RAC2_A0:RAC2] -~w~Ehi, si sta per tenere una corsa su strada. Porta il tuo veicolo alla partenza. +[LAW1_I:LAWYER1] +Ah! C'è quel Colonnello in pensione, il Colonnello Juan Garcia Cortez. -{=================================== MISSION TABLE RAC3 ===================================} +[LAW1_J:LAWYER1] +È stato lui che mi ha aiutato a preparare il piano -[RAC3_A0:RAC3] -~w~Non ci sono macchine più veloci e guidatori più abili. +[LAW1_K:LAWYER1] +ben lontano dai criminali di Vice City. OK? -[RAC3_A1:RAC3] -~w~Ci vediamo alla prossima gara... ti guarderò dal mio specchietto retrovisore. +[LAW1_L:LAWYER1] +Adesso ascolta: sta organizzando un party nella baia sul suo costoso yacht -{=================================== MISSION TABLE BIK1 ===================================} +[LAW1_M:LAWYER1] +e tutte le personalità di spicco di Vice City saranno presenti. -[BIK1_A0:BIK1] -~w~Pensi di potermi battere? Ti farò un culo così! +[LAW1_N:LAWYER1] +Io ho un invito, chiaramente ne ho uno... -[BIK1_A1:BIK1] -~w~Porta la tua moto sulla griglia di partenza e vediamo cosa sai fare! +[LAW1_O:LAWYER1] +ma non ho la minima intenzione di mettere la testa fuori dalla porta, per nessun motivo! -{=================================== MISSION TABLE BIK2 ===================================} +[LAW1_P:LAWYER1] +Te l'ho detto, sta zitto! Ci andrò io... -[BIK2_A0:BIK2] -~w~Se pensi di potermi battere in una gara, fatti sotto! +[LAW1_Q:LAWYER1] +Whoa, whoa, whoa! Ehi, anche a me piace lo stile del 78, ma, lo sai, non si tratta di una festa con birra e spogliarelliste. -[BIK2_A1:BIK2] -~w~Ci vediamo alla linea di partenza. +[LAW1_R:LAWYER1] +Intendo dire, senza offesa, che molta gente potrebbe girarsi a guardarti per la ragione sbagliata... -{=================================== MISSION TABLE BIK3 ===================================} +[LAW1_S:LAWYER1] +Vuoi dire che c'è qualcosa che non va in come mi vesto? -[BIK3_A0:BIK3] -~w~È semplice. Su due ruote non mi batte nessuno. E te lo dimostrerò. +[LAW1_T:LAWYER1] +OK, ascolta. Fermati da Rafael's, digli che ti mando io e lui si occuperà di renderti presentabile. -{=================================== MISSION TABLE TT1 ===================================} +[LAW1_U:LAWYER1] +OK, forza, andiamo... -[TT1_A0:TT1] -~w~~k~ ~AMBUY~ ~w~per gareggiare. ~n~~k~ ~AMEXI~ ~w~per uscire. +[LAWP_1:LAWYER1] +Buenas noches. -[TT1_0:TT1] -Tempo +[LAWP_2:LAWYER1] +Da quanto ho capito, è qui per conto di Mr. Rosenberg. -[TT1_1:TT1] -~w~Nuovo giro record: ~1~:~1~ +[LAWP_3:LAWYER1] +Spero che gli avvenimenti recenti non abbiano avuto effetti sulla sua salute o, uh, -[TT1_1A:TT1] -~w~Nuovo giro record: ~1~:0~1~ +[LAWP_4:LAWYER1] +sulla sua sanità mentale, Mr...? -[TT1_C1:TT1] -~w~3... +[LAWP_5:LAWYER1] +Vercetti. Ha solo avuto un attacco di... agorafobia. -[TT1_C2:TT1] -~w~2... +[LAWP_6:LAWYER1] +Eccellente, eccellente. E lei? -[TT1_C3:TT1] -~w~1... +[LAWP_7:LAWYER1] +Voglio solo la mia merce. -[TT1_C4:TT1] -~w~VIA! +[LAWP_8:LAWYER1] +Ah. Si è trattato di sfortunate circostanze per tutte le persone coinvolte. -[TT1_D1A:TT1] -~w~Salto: ~1~ piedi +[LAWP_9:LAWYER1] +Chiaramente, ho dato il via a delle ricerche personali -[TT1_D2:TT1] -~w~Giro ~1~ Tempo ~1~:~1~ +[LAWP_10:LAWYER1] +ma una situazione così delicata richiede tempo. -[TT1_D3:TT1] -~w~Giro ~1~ Tempo ~1~:0~1~ +[LAWP_11:LAWYER1] +Magari ne parleremo più tardi, va bene? -[TT1_D4:TT1] -~w~Giro +[LAWP_12:LAWYER1] +Nel frattempo, le presento mia figlia, -[TT1_F2:TT1] -~r~Hai abbandonato il percorso! +[LAWP_13:LAWYER1] +Mercedes! -[TT1_F3:TT1] -~r~Hai distrutto la moto! +[LAWP_14:LAWYER1] +Cara mia, perché non ti prendi cura del nostro ospite mentre io mi occupo delle mie cose? -[TT1_D5A:TT1] -~w~Salto: ~1~ piedi - 10$ bonus! +[LAWP_15:LAWYER1] +Certamente, papà. -[TT1_D1:TT1] -~w~Salto: ~1~ metri +[LAWP_16:LAWYER1] +Mi scusi. -[TT1_D5:TT1] -~w~Salto: ~1~ metri - 10$ bonus! +[LAWP_17:LAWYER1] +Mercedes? -[TT1_2:TT1] -~w~Hai battuto il tempo limite! Hai sbloccato il percorso successivo: bonus 100$! +[LAWP_18:LAWYER1] +Non è facile portare questo nome. -[TT1_3:TT1] -~w~Hai battuto il tempo limite: bonus 100$! +[LAWP_19:LAWYER1] +Comunque, lasci che le presenti alcuni dei nostri distinti ospiti... -[TTDONE:TT1] -~w~Tutti i percorsi completati! Hai sbloccato la 'Manchez'. +[LAWP_20:LAWYER1] +Lui è Alex Shrub, il nostro deputato, con Candy Suxxx, la famosa star siliconata... -[TT1_2A:TT1] -~r~Non sei riuscito a battere il tempo limite. +[LAWP_21:LAWYER1] +Avete conosciuto la mia dolce moglie, Laura? -[TT1_2B:TT1] -~r~Non sei riuscito a battere il record del percorso. +[LAWP_22:LAWYER1] +Veramente questa è Candy, mia moglie si trova in Alabama ora. -{=================================== MISSION TABLE RCR ===================================} +[LAWP_23:LAWYER1] +E da quella parte abbiamo la stella dei Vice City Mambas, BJ. -[RCRACE3:RCR] -~w~Batti gli altri veicoli radiocomandati in una gara di ~1~ giri attorno al parco! +[LAWP_24:LAWYER1] +un vero ammaliatore -[RCRACE4:RCR] -~w~Batti gli altri veicoli radiocomandati in una gara di ~1~ giri attorno all'aeroporto! +[LAWP_25:LAWYER1] +L'ho placcato, davvero, e l'ho fatto finire su una sedia a rotelle! -[RCRACE7:RCR] -~w~Pronti... +[LAWP_26:LAWYER1] +Ah, ah, questa è buona! -[RCRLAP5:RCR] -~w~Nuovo giro migliore di ~1~ secondi! +[LAWP_27:LAWYER1] +Beh, adesso sto cercando di acquistare dei terreni di qualità. -[RCRLAP6:RCR] -~w~~1~ giri rimanenti! +[LAWP_28:LAWYER1] +E quella specie di anfibio da piscina è Jezz Torrent, -[RCRLAP7:RCR] -~w~Giro finale! +[LAWP_29:LAWYER1] +voce solista dei Love Fist. -[RCRLTME:RCR] -Tempo del giro +[LAWP_30:LAWYER1] +Ve lo posso dire... sapete come giocano a ping-pong in Tailandia? -[RCRLOSE:RCR] -~r~Hai perso! Non sarai mai il numero uno! +[LAWP_31:LAWYER1] +Da non crederci... -[RCRLOS2:RCR] -~r~Non vincerai mai una gara se non riesci a rimanere in pista! +[LAWP_32:LAWYER1] +di certo, non richiede l'uso della racchetta, se capite cosa intendo! -[RCRTIME:RCR] -~w~Hai ~h~~1~ ~w~secondi per tornare in pista! +[LAWP_33:LAWYER1] +Impotente. -[RCRWIN1:RCR] -~w~Congratulazioni hai VINTO, ma non hai battuto il giro più veloce. +[LAWP_34:LAWYER1] +E il loquace trio. -[RCRWIN2:RCR] -~w~La prossima gara sarà composta da ~1~ giri! +[LAWP_35:LAWYER1] +Quella pustola sudata e addormentata è il braccio destro di papà, Gonzalez, -[RCRWIN3:RCR] -~w~È disponibile la RC Race a Belleville Park, Staunton. +[LAWP_36:LAWYER1] +mentre gli altri due sono il pastore Richards -[RCRWIN4:RCR] -~w~È disponibile la RC Race all'aeroporto di Shoreside. +[LAWP_37:LAWYER1] +e il regista pseudo-intellettuale, Steve Scott. -[RCRWIN5:RCR] -~w~Hai superato tutti i livelli! Ritornaci e batti i tuoi giri più veloci! +[LAWP_38:LAWYER1] +...pare che abbiano una passione per le ninfomani... -[RCR1:RCR] -~w~1... +[LAWP_39:LAWYER1] +...quando lo squalo gigante arriva e -[RCR2:RCR] -~w~2... +[LAWP_40:LAWYER1] +strappa a morsi i loro uccelli! -[RCR3:RCR] -~w~3... +[LAWP_41:LAWYER1] +Ah! Non si è mai visto qualcosa del genere prima, vero? -[RCRGO:RCR] -~w~VIA! +[LAWP_42:LAWYER1] +Colonnello! -[RCBLAP:RCR] -Il giro più veloce attuale: ~1~:~1~ +[LAWP_43:LAWYER1] +I suoi party sono sempre un successo! Ah ah ah! -[RCBLAP1:RCR] -Il giro più veloce attuale: ~1~:0~1~ +[LAWP_44:LAWYER1] +Posso solo chiedere scusa per il mio ritardo. -[RCBLA2:RCR] -Giro record: ~1~:~1~ +[LAWP_45:LAWYER1] +Ah, de nada amigo. E come vanno gli affari? -[RCBLA3:RCR] -Giro record: ~1~:0~1~ +[LAWP_46:LAWYER1] +Sai, sono molto difficili...i nemici sono sempre alle costole. -[RCRRLA1:RCR] -~w~Nuovo giro record: ~1~:~1~ +[LAWP_47:LAWYER1] +Il tempo di ricompensare gli amici e liquidare i nemici, amigo. -[RCRRLA2:RCR] -~w~Nuovo giro record: ~1~:0~1~ +[LAWP_48:LAWYER1] +Chi è il chiacchierone? -[RCRACEA:RCR] -RC allo sbando +[LAWP_49:LAWYER1] +Ricardo Diaz. È Mr. Coca. -[RCRACEB:RCR] -RC allo scozzo +[LAWP_50:LAWYER1] +Mercedes! -[RCRACEC:RCR] -RC all'inseguimento +[LAWP_51:LAWYER1] +Oh, stavo giusto riaccompagnando i miei amici in città. -[RCLE11:RCR] -RC allo sbando LIVELLO UNO +[LAWP_52:LAWYER1] +Un'altra volta, Ricardo! -[RCLE12:RCR] -RC allo sbando LIVELLO DUE +[LAWP_53:LAWYER1] +Andiamocene. -[RCLE13:RCR] -RC allo sbando LIVELLO TRE +[LAWP_54:LAWYER1] +Anzi, portatemi al club Pole Position. -[RCLE21:RCR] -RC allo scozzo LIVELLO UNO +[LAW1_2:LAWYER1] +~g~Raggiungi lo yacht del Colonnello. -[RCLE22:RCR] -RC allo scozzo LIVELLO DUE +[LAW1_4:LAWYER1] +~r~Hai ucciso la figlia del Colonnello! -[RCLE23:RCR] -RC allo scozzo LIVELLO TRE +[LAW1_5:LAWYER1] +Lavorerai per mio padre? -[RCLE31:RCR] -RC all'inseguimento LIVELLO UNO +[LAW1_6:LAWYER1] +Forse. -[RCLE32:RCR] -RC all'inseguimento LIVELLO DUE +[LAW1_7:LAWYER1] +Ti dispiace se appoggio la mano tra le tue gambe? -[RCLE33:RCR] -RC all'inseguimento LIVELLO TRE +[LAW1_8:LAWYER1] +Forse... -[RCRACE2:RCR] -~w~Batti gli altri veicoli radiocomandati in una gara di ~1~ giri attorno al cantiere edile! +[LAW1_9:LAWYER1] +È così difficile avere un padre ricco e potente. Vamos. -[RCRWIN6:RCR] -~w~Gareggia di nuovo e tenta di battere il giro più veloce! +[LAW1_10:LAWYER1] +Ci vediamo in giro, stallone! -[RCQUIT:RCR] -~r~Si stanno scaricando le batterie? +[LAW1_11:LAWYER1] +Sono sicuro di sì. -[RCRFAIL:RCR] -~r~Non sei riuscito ad arrivare primo! +[LAW1_12:LAWYER1] +Hmmm... bella moto. -[RCRLAP1:RCR] -~c~1° ~w~GIRO +[LAW1_13:LAWYER1] +No! La mia moto! -[RCRLAP2:RCR] -~c~2° ~w~GIRO +[LAW1_3:LAWYER1] +~g~Porta la figlia del Colonnello al club Pole Position. -[RCRLAP3:RCR] -~c~3° ~w~GIRO +[HELP20:LAWYER1] +Segui il ~h~segnale a forma di maglietta~w~ per trovare Rafael's. -[RCRLAP4:RCR] -~c~4° ~w~GIRO +[LAW1_14:LAWYER1] +Accidenti, mi piace: la tua moto va alla grande. -[RCRWIN:RCR] -~w~Congratulazioni hai VINTO con il giro più veloce di ~1~:~1~! Bonus 500$! +[LAW1_15:LAWYER1] +Eh sì, l'ho appena presa da Howlin' Pete's. -[RCRWINB:RCR] -~w~Congratulazioni hai VINTO con il giro più veloce di ~1~:0~1~! Bonus 500$! +{=================================== MISSION TABLE LAWYER2 ===================================} -{=================================== MISSION TABLE TOUR ===================================} +[LAW2_A:LAWYER2] +Ah! Beh, spero tu ti sia divertito. Io stavo quasi per impazzire dalla preoccupazione. Che cos'hai scoperto? -[TOUR_H1:TOUR] -~w~Suggerimenti: mettiti ~h~davanti~w~ al turista, ~h~non troppo lontano.~w~ Assicurati che sia ~h~il turista che lo sfondo ~w~ siano nella foto. +[LAW2_B:LAWYER2] +Che ci sono più criminali a piede libero in città che nella prigione. Abbiamo bisogno di qualcuno di strada... -[TOUR_I2:TOUR] -~w~Riceverai un'extra per le foto di alta qualità! +[LAW2_C:LAWYER2] +OK, fammici pensare, fammici pensare, fammici pensare... -[TOUR_S0:TOUR] -~w~Ti sono rimaste ~h~~1~~w~ fotografie. +[LAW2_D:LAWYER2] +Ah! Trovato! -[TOUR_S1:TOUR] -~w~Ti rimane una sola foto. Assicurati che sia un buono scatto! +[LAW2_E:LAWYER2] +OK, c'è questo inglese, un tizio legato al campo della musica, -[TOUR_S2:TOUR] -~w~Non sprecare scatti! Ti rimangono ~h~~1~~w~ fotografie. +[LAW2_F:LAWYER2] +mi sembra si chiami Kent Paul. -[TOUR_S4:TOUR] -~w~Devi inquadrare bene il ~b~turista~w~ nell'immagine! Ti rimangono ~h~~1~~w~ fotografie. +[LAW2_G:LAWYER2] +Comunque, ha ficcato il naso nelle chiappe di metà della gente di Vice City -[TOUR_F1:TOUR] -~r~Il turista è morto! +[LAW2_H:LAWYER2] +per cui, se qualcuno sa dove sono questi 20 chili di coca, -[TOUR_F2:TOUR] -~r~Hai perso il turista! +[LAW2_I:LAWYER2] +è sicuramente lui, chiaro? È sempre al Malibu. -[TOUR_F3:TOUR] -~r~Non sei riuscito a scattare una foto del turista! +[LAW2_J:LAWYER2] +Andrò a trovarlo. -[TOUR_F4:TOUR] -~r~Il tempo è scaduto! +[LAW2B_A:LAWYER2] +Ehi, da dove sbuchi? -[TOUR_F5:TOUR] -~r~Missione annullata. +[LAW2B_B:LAWYER2] +Ho cercato per anni un fiorellino come te, bellezza... -[TOUR_F6:TOUR] -~r~Il rapinatore è scappato con la macchina fotografica del turista! +[LAW2B_C:LAWYER2] +Kent Paul, tesoro. Sì, sono il capo da queste parti. -[TOUR_O1:TOUR] -~w~Porta il turista in un ~y~punto famoso. +[LAW2B_D:LAWYER2] +Sto cercando un tipo inglese... -[TOUR_O2:TOUR] -~w~Non lasciare indietro il ~b~turista~w~! +[LAW2B_E:LAWYER2] +Risolvo i problemi, capisci cosa intendo? -[TOUR_O3:TOUR] -~w~Segui il ~b~turista~w~ a piedi nel luogo della foto. +[LAW2B_F:LAWYER2] +Ti tratterò bene: qualsiasi cosa tu voglia, te la farò avere, cara. -[TOUR_O4:TOUR] -~w~Usa la macchina fotografica dei ~b~turisti~w~ per scattare le immagini. +[LAW2B_G:LAWYER2] +Non preoccuparti di niente, bellezza. -[TOUR_O5:TOUR] -~w~Riporta il turista all'~y~aeroporto. +[LAW2B_H:LAWYER2] +Vattene, tesoro. -[TOUR_O6:TOUR] -~w~Veloce! Il tempo sta per scadere! +[LAW2B_I:LAWYER2] +Oi oi oi oi oi! -[TOUR_O7:TOUR] -~w~Prendi il ~b~turista. +[LAW2B_J:LAWYER2] +Sei Kent Paul? Sono un amico di Rosenberg... -[TOUR_O8:TOUR] -~w~Prendi il prossimo ~b~turista~w~ prima che scada il tempo. +[LAW2B_K:LAWYER2] +Rosenberg... Rosenberg... Oh, l'avvocato matto! -[TOUR_O9:TOUR] -~w~Dovresti seguire il ~b~turista!~w~ Stai perdendo tempo. +[LAW2B_L:LAWYER2] +Quel tipo potrebbe difendere un innocente fino alla sedia elettrica! -[TOUR_OA:TOUR] -~w~Il ~b~turista~w~ ti sta aspettando per prendere una foto. Muoviti, il tempo sta per scadere! +[LAW2B_M:LAWYER2] +Dacci un altro drink, amico. -[TOUR_W1:TOUR] -~w~Guadagno: ~h~~1~$~w~ Spiacente, nessun bonus questa volta. +[LAW2B_N:LAWYER2] +Un altro comico. -[TOUR_W2:TOUR] -~w~Guadagno: ~h~~1~$~w~ più ~h~~1~$~w~ per aver scattato una bella foto! +[LAW2B_O:LAWYER2] +Ascoltami: mi hanno soffiato venti chili e un sacco di contanti... -[TOUR_W3:TOUR] -~w~Guadagno: ~h~~1~$~w~ più ~h~~1~$~w~ per aver scattato un'ottima foto! +[LAW2B_P:LAWYER2] +Droga amico? È roba da delinquenti. -[TOUR_W4:TOUR] -~w~Guadagno: ~h~~1~$~w~ più ~h~~1~$~w~ per aver scattato una foto eccezionale! +[LAW2B_Q:LAWYER2] +Che cosa ne sai? -[TOUR_W5:TOUR] -~w~Ben fatto! Tutte le missioni 'Soddisfatti o non pagati' sono state completate. ~1~$ per il completamento! +[LAW2B_R:LAWYER2] +Oi oi! Ciò che volevo dire è -[TOURDAM:TOUR] -~w~VISTA ~1~: ~w~Porta questo turista alla Cochrane Dam e scatta una foto per provare che è stato lì! +[LAW2B_S:LAWYER2] +che c'è uno chef che spaccia sottobanco nella cucina di un hotel su Ocean Drive. -[TOURBRI:TOUR] -~w~VISTA ~1~: ~w~Questa signora vuole vedere Callahan Bridge dal lato di Portland. +[LAW2B_T:LAWYER2] +Recentemente, mi è sembrato molto felice di come gli buttava... Potresti passare a trovarlo e investigare... -[TOURDRK:TOUR] -VISTA ~1~: ~w~Scatta una foto di questa fan davanti alla casa di Black Lightman a Cedar Grove, Shoreside Vale. +[LAW2B_U:LAWYER2] +Lo farò... ci becchiamo in giro. -[TOURSTA:TOUR] -~w~VISTA ~1~: ~w~Scatta una foto di questa fanatica sportiva davanti al Liberty Memorial Coliseum di Staunton. +[LAW2B_V:LAWYER2] +Beh, sì certo! Vai, vai pure idiota. Ci penserò io a tenerti a bada! -[TOURCHU:TOUR] -~w~VISTA ~1~: ~w~Accompagna questo pellegrino alla storica cattedrale di Liberty a Staunton. +[LAW2B_W:LAWYER2] +Dammi un bicchiere... e dov'è finita quella sgualdrina? -[TOURBCH:TOUR] -~w~VISTA ~1~: ~w~Mostra alla turista la splendida visuale di Portland Rock e del faro da Portland Beach. +[LAW2C_A:LAWYER2] +Oh, ottimo lavoro, sei proprio un duro. Riducilo in poltiglia, questo sicuramente lo aiuterà a diventare più loquace! -[TOURCHI:TOUR] -~w~VISTA ~1~: ~w~L'ambientazione orientale di Chinatown Plaza a Portland è una destinazione fondamentale per i turisti. +[LAW2C_B:LAWYER2] +Ne vuoi anche tu? -[TOURSHO:TOUR] -~w~VISTA ~1~: ~w~Questa turista vuole che le sue amiche pensino che ha fatto compere nell'esclusivo Staunton Shopping Mall. Portala là e scatta una foto. +[LAW2C_C:LAWYER2] +Ehi, calma. Quel che va bene a te, va bene a me, amico. -[TOURCAS:TOUR] -~w~VISTA ~1~: ~w~C'è un giocatore d'azzardo che vuole farsi scattare una foto davanti al casinò di Staunton. +[LAW2C_D:LAWYER2] +Ah sì? E di cosa si tratta? -[TOURMUS:TOUR] -~w~VISTA ~1~: ~w~Questa studente vuole visitare il museo di Liberty City a Staunton e vuole una foto che mostri l'imponenza dell'edificio. +[LAW2C_E:LAWYER2] +I verdoni... e l'amica bianca del mio povero fratello. Sfortunatamente, hai appena fatto fuori il nostro contatto. -[TOURHAL:TOUR] -~w~VISTA ~1~: ~w~Questo turista vuole visitare il municipio a Staunton ancora una volta prima di andarsene. +[LAW2C_F:LAWYER2] +Gli incidenti capitano. Scompari. -[TOURRED:TOUR] -~w~VISTA ~1~: ~w~Gli amici dicono che non è abbastanza uomo da farsi un giro nel Red Light District di Portland! Mostra loro il contrario! +[LAW2C_G:LAWYER2] +Ehi, ehi, whoa. Non c'è bisogno di recitare la parte del 'Giustiziere solitario'. -[TOURMU0:TOUR] -~w~Il ~r~rapinatore~w~ ha rubato la macchina fotografica del turista! +[LAW2C_H:LAWYER2] +Io la vedo così: siamo due hombres in una strana città. Dobbiamo guardarci a vicenda le spalle. -[TOURMU1:TOUR] -~w~Un criminale in meno del quale preoccuparsi! Raccogli la ~g~macchina fotografica. +[LAW2C_I:LAWYER2] +Le mie spalle stanno benissimo, fratello... -[TOUR00:TOUR] -~w~Porta il turista alla ~y~Cochrane Dam~w~ a Shoreside Vale. +[LAW2C_J:LAWYER2] +Ne sei sicuro? Ehi, prendi questa. -[TOUR01:TOUR] -~w~Porta la turista al ~y~Liberty Memorial Coliseum~w~ di Staunton. +[LAW2C_K:LAWYER2] +Seguimi! -[TOUR02:TOUR] -~w~Porta il turista a ~y~Chinatown Plaza~w~ a Portland. +[LAW2_1:LAWYER2] +Che cos'hai da guardare? -[TOUR03:TOUR] -~w~Porta il turista alla ~y~cattedrale di Liberty~w~ a Staunton. +[LAW2_2:LAWYER2] +Ti conviene iniziare a parlare... -[TOUR06:TOUR] -~w~Porta il turista allo ~y~Strip Club~w~ nel Red Light District di Portland. +[LAW2_3:LAWYER2] +Maledetto stronzo! -[TOUR07:TOUR] -~w~Porta la turista al ~y~Liberty City Museum~w~ di Staunton. +[LAW2_4:LAWYER2] +Da questa parte! -[TOUR08:TOUR] -~w~Porta il turista al ~y~casinò~w~ di Staunton. +[LAW2_5:LAWYER2] +Vediamo cosa riesco a scoprire. Ci vediamo, Tommy. -[TOUR10:TOUR] -~w~Porta il turista al ~y~municipio~w~ a Staunton. +[LAW2_6:LAWYER2] +~g~Vai al Malibu e trova Kent Paul. -[TOUR11:TOUR] -~w~Porta il turista alla spiaggia di ~y~Portland. +[LAW2_7:LAWYER2] +~g~Trova lo chef in Ocean Drive. -[TOUR04:TOUR] -~w~Porta la turista al ~y~Callahan Bridge~w~, dal lato di Portland. +[LAW2_10:LAWYER2] +~g~Torna in macchina all'hotel. -[TOUR09:TOUR] -~w~Porta il turista alla ~y~casa di Black Lightman~w~ a Cedar Grove, Shoreside Vale. +[LAW2_11:LAWYER2] +~g~Raccogli il suo cellulare. -[TOUR_I1:TOUR] -~w~Scorta i turisti nei punti famosi di Liberty City. +[LAW2_12:LAWYER2] +Cellulare acquisito! Adesso potrai ricevere telefonate! -[TOUR_IA:TOUR] -~w~Quando arrivi a destinazione, scatta delle foto ricordo per loro. +[LAW2_13:LAWYER2] +~g~Hai lasciato Lance indietro! Vallo a prendere! -[TOUR_IB:TOUR] -~w~Poi portali indietro prima che l'aereo decolli. +[LAW2_14:LAWYER2] +Andiamocene da qui! -[TOURMEM:TOUR] -~w~VEDUTA ~1~: ~w~Questo veterano vuole rendere omaggio ai suoi commilitoni al Liberty City War Memorial a Belleville Park, Staunton. +[GUN_2A:LAWYER2] +Tieni premuto il ~h~~k~~PED_LOCK_TARGET~~w~ per la ~h~mira automatica~w~ e premi il ~h~~k~~PED_FIREWEAPON~~w~ per ~h~sparare~w~! -[TOUR05:TOUR] -~w~Porta il turista al ~y~Liberty City War Memorial~w~ a Belleville Park, Staunton. +[GUN_2C:LAWYER2] +Tieni premuto il ~h~~k~~PED_LOCK_TARGET~~w~ per la ~h~mira automatica~w~ e premi il ~h~~k~~PED_FIREWEAPON~~w~ per ~h~sparare~w~! + +[GUN_2D:LAWYER2] +Tieni premuto il ~h~~k~~PED_LOCK_TARGET~~w~ per la ~h~mira automatica~w~ e premi il ~h~~k~~PED_FIREWEAPON~~w~ per ~h~sparare~w~! + +[HELP17:LAWYER2] +Premi il ~h~~k~~PED_FIREWEAPON~~w~ per attaccare lo chef. + +[HELP18:LAWYER2] +Premi il ~h~~k~~PED_FIREWEAPON~~w~ per attaccare lo chef. + +[LAW3_11:LAWYER2] +Posizionati sul ~q~segnalino rosa~w~ per vedere le armi in offerta. + +[LAW3_12:LAWYER2] +Puoi selezionare l'arma premendo il ~h~tasto direzionale~w~ a ~h~sinistra~w~ o a ~h~destra~w~. + +[LAW3_13:LAWYER2] +Se hai denaro a sufficienza puoi comprare armi premendo il ~h~~k~~PED_SPRINT~~w~. + +[LAW3_14:LAWYER2] +Puoi uscire da un negozio premendo il ~h~~k~~VEHICLE_ENTER_EXIT~~w~. + +[LAW3_15:LAWYER2] +Segui il ~h~segnale a forma di pistola~w~ per trovare ~h~Ammu-Nation~w~. + +[LAW2_15:LAWYER2] +~g~Raggiungi Ammu-Nation. + +[LAW2_K:LAWYER2] +Vedi di star calmo. + +[LAW2_16:LAWYER2] +Devi sapere qualcosa su questa città: hai bisogno di potenza di fuoco. + +[LAW2_17:LAWYER2] +Forza, l'armaiolo locale è solo a qualche isolato di distanza. + +[LAW2_18:LAWYER2] +Tommy, tutti quanti hanno bisogno di un po' di relax ogni tanto. + +[LAW2_19:LAWYER2] +Ecco il club a luci rosse Pole Position. Facci un salto ogni tanto. + +{=================================== MISSION TABLE LAWYER3 ===================================} + +[LAW3_A:LAWYER3] +Aarrgh! Maledizione, sei tu! Oddio, avrò bisogno di un nuovo paio di pantaloni! + +[LAW3_B:LAWYER3] +Ehi, quei psicopatici del nord hanno drizzato le orecchie e verranno a visitarci molto presto. + +[LAW3_C:LAWYER3] +Dove diavolo sono i fottuti soldi? + +[LAW3_D:LAWYER3] +Rilassati, rilassati. Non siamo ancora arrivati a questa parte. + +[LAW3_E:LAWYER3] +Pensavo ti stessi prendendo cura di questo aspetto, davvero. + +[LAW3_F:LAWYER3] +E adesso quei delinquenti si aspettano addirittura da noi un favore. + +[LAW3_G:LAWYER3] +Vuoi dire che io devo far loro un favore. + +[LAW3_H:LAWYER3] +Oh, beh, certo, proprio così. Credi davvero che potrei intimidire una giuria? + +[LAW3_I:LAWYER3] +Non riuscirei a intimidire neppure un bambino... e credimi, ci ho provato. + +[LAW3_J:LAWYER3] +Adesso o ci riusciamo, oppure il cugino di Forelli, Giorgio, si becca cinque anni per frode. + +[LAW3_K:LAWYER3] +Devi CONVINCERE questi tipi! + +[LAW3_L:LAWYER3] +Capisco. Devo aiutare la giuria a cambiare idea. Non preoccuparti... + +[LAW3_M:LAWYER3] +No no no no NO! Ci ho provato. Le cose con la giuria non sono andate per il meglio, + +[LAW3_N:LAWYER3] +per cui ASSICURATI che cambino davvero idea. + +[LAW3_1:LAWYER3] +Giorgio ti manda i suoi saluti. + +[LAW3_2:LAWYER3] +Ricorda: colpevole è una parolaccia. + +[LAW3_3:LAWYER3] +Innocente fino a prova contraria... ecco cosa dire. + +[LAW3_4:LAWYER3] +Lo sai che non è colpevole. + +[LAW3_5:LAWYER3] +Ti ricordi di Giorgio? Ricordati che è innocente. + +[LAW3_6:LAWYER3] +Non colpevole... Capito? Bene. + +[LAW3_8:LAWYER3] +~r~Hai ucciso un giurato! + +[LAW3_9:LAWYER3] +~g~Distruggi l'auto del giurato per farlo uscire! + +[HELP40:LAWYER3] +Puoi distruggere le macchine utilizzando un martello o un'arma simile. + +[LAW3_10:LAWYER3] +~g~Visita il ~h~ferramenta~g~ per comprare un'arma corpo a corpo. + +[LAW3_20:LAWYER3] +~g~Distruggi la macchina del giurato! + +[LAW3_21:LAWYER3] +Non posso credere che sta succedendo! + +[LAW3_22:LAWYER3] +Incredibile! + +[LAW3_23:LAWYER3] +OK! OK! Ho compreso il messaggio! + +[LAW3_24:LAWYER3] +~g~Quel martello potrebbe tornare utile. + +[LAW3_7:LAWYER3] +~g~Minaccia i due giurati, ma NON ucciderli! + +[HELP23:LAWYER3] +Segui il ~h~segnale a forma di martello~w~ se vuoi comprare delle armi corpo a copro dal ferramenta. + +[LAW3_16:LAWYER3] +Stupidi idioti del Florida. + +[LAW3_17:LAWYER3] +Via dai piedi. + +{=================================== MISSION TABLE LAWYER4 ===================================} + +[LAW4_A:LAWYER4] +Avery, è chiaro che... Tommy! Tommy! Qualche progresso? No no no, parliamone dopo, mi racconti dopo. + +[LAW4_B:LAWYER4] +Tommy, ti presento Avery Carrington: credo tu lo abbia incontrato al party. + +[LAW4_C:LAWYER4] +Non di persona. + +[LAW4_D:LAWYER4] +Piacere. + +[LAW4_E:LAWYER4] +Avery ha una proposta da farci. + +[LAW4_F:LAWYER4] +Non ti sembra che abbiamo già altro da fare? + +[LAW4_G:LAWYER4] +Sto cercando di tenere lontani i lupi dalla porta, per cui apprezzerei un po' di collaborazione. + +[LAW4_H:LAWYER4] +Sono tirato come un filo e, anche se dovessi morire alla fine della settimana, desidererei non farlo da povero! + +[LAW4_I:LAWYER4] +Adesso calmatevi, tutti e due. + +[LAW4_J:LAWYER4] +Figliolo, dammi una mano e vedrò di mettere a nanna sottoterra qualsiasi stronzo vi stia dando problemi. + +[LAW4_K:LAWYER4] +OK, cosa posso fare? + +[LAW4_L:LAWYER4] +Questa società di consegne ha un deposito su un terreno di prima qualità. Non vogliono vendere. + +[LAW4_M:LAWYER4] +Si sono rintanati come dei ratti di prateria, per cui vorrei andassi a trovarli e li facessi uscire con un po' di fumo. + +[LAW4_N:LAWYER4] +Raggiungi il posto e fai scoppiare un vespaio: + +[LAW4_O:LAWYER4] +mentre la sorveglianza sarà impegnata, entra dentro e mettili fuori gioco. + +[LAW4_P:LAWYER4] +Passa pure da Rafael's per un cambio d'abito: ci potresti mettere un po', ma va bene lo stesso. + +[LAW4_Q:LAWYER4] +Potrebbe funzionare una sommossa. + +[LAW4_R:LAWYER4] +Se le cose vanno come devono, passa a trovarmi nel mio ufficio... + +[LAW4_1:LAWYER4] +Disperdetevi! L'amministrazione discuterà qualsiasi rimostranza in modo appropriato! + +[LAW4_2:LAWYER4] +Disperdetevi! Tornate a casa! + +[LAW4_3:LAWYER4] +Disperdetevi! Questo comportamento è inaccettabile! + +[LAW4_4:LAWYER4] +Disperdetevi! Rischiate di finire tutti per strada! + +[LAW4_5:LAWYER4] +Forza, ragazzi! Spacchiamo il cranio a qualche rosso! + +[LAW4_13:LAWYER4] +~g~Comincia a combattere con almeno 4 lavoratori per avviare la sommossa. + +[LAW4_14:LAWYER4] +~g~Distruggi i van nell'autorimessa! + +[HELP38:LAWYER4] +Se uccidi qualcuno con un'arma, la lascerà cadere. + +[HELP39:LAWYER4] +Puoi far esplodere i barili di esplosivo, ma tieni la distanza! + +{=================================== MISSION TABLE MIAMI_1 ===================================} + +[T4X4_1A:MIAMI_1] +~g~Hai ~1~ secondi per attraversare ~y~24~g~ punti di controllo. ~g~Puoi attraversarli in ~y~QUALSIASI ORDINE~g~. + +[T4X4_1B:MIAMI_1] +~y~ATTRAVERSA~g~ il primo punto di controllo per attivare il ~r~TIMER~g~. + +[T4X4_1C:MIAMI_1] +~1~ su 24! + +[GETBIK1:MIAMI_1] +Hai ~1~ secondi per salire su una PCJ 600! + +[GETBIK3:MIAMI_1] +~r~Hai bisogno di una PCJ 600 per affrontare questa missione! + +{=================================== MISSION TABLE MM ===================================} + +[BLOD_04:MM] +CONDIZIONI MACCHINA: + +[BLOD_05:MM] +~g~TEMPO BERSAGLIO: ~1~ minuto + +[BLOD_06:MM] +~g~TEMPO BERSAGLIO: ~1~ minuti + +[BLOD_07:MM] +NUOVO miglior tempo: ~1~ secondi + +[BLOD_08:MM] +Veicoli distrutti: ~1~ + +[BLOD_09:MM] +~1~$ + +[BLOD_10:MM] +VINCITORE!!! + +[BLOD_01:MM] +Guida attraverso i punti di controllo per aumentare il tuo tempo globale. + +[BLOD_02:MM] +Fallirai se il tempo globale scadrà a zero. + +[BLOD_03:MM] +Porta il tuo tempo globale sopra a quello bersaglio per vincere! + +{=================================== MISSION TABLE OVALRIG ===================================} + +[HOTR_01:OVALRIG] +~g~La gara dura 12 giri: solo il primo, il secondo e il terzo si qualificheranno come vincitori. + +[HOTR_02:OVALRIG] +~g~Se il tuo mezzo viene distrutto, sarai squalificato. + +[HOTR_03:OVALRIG] +~g~Se danneggi il mezzo, potrai ripararlo ai box. + +[HOTR_04:OVALRIG] +~g~Da qui potrai uscire dallo stadio. + +[HOTR_05:OVALRIG] +Condizioni macchina: + +[HOTR_06:OVALRIG] +Giri: + +[HOTR_10:OVALRIG] +Tempo di gara: + +[HOTR_09:OVALRIG] +Posizione: + +[HOTR_12:OVALRIG] +~r~La tua macchina è stata distrutta! + +[HOTR_13:OVALRIG] +~r~Non hai vinto la gara! + +[HOTR_14:OVALRIG] +~r~Sei stato squalificato! + +[HOTR_15:OVALRIG] +Tempo: ~1~:~1~ + +[HOTR_16:OVALRIG] +Tempo: ~1~:0~1~ + +[HOTR_17:OVALRIG] +Tempo migliore: ~1~:~1~ + +[HOTR_18:OVALRIG] +Tempo migliore: ~1~:0~1~ + +[HOTR_19:OVALRIG] +Tempo migliore: NA + +[HOTR_20:OVALRIG] +Nuovo tempo migliore: ~1~:~1~ + +[HOTR_21:OVALRIG] +Nuovo tempo migliore: ~1~:0~1~ + +[HOTR_22:OVALRIG] +Miglior risultato: NA + +[HOTR_23:OVALRIG] +Miglior risultato: PRIMO + +[HOTR_24:OVALRIG] +Miglior risultato: SECONDO + +[HOTR_25:OVALRIG] +Miglior risultato: TERZO + +[HOTR_26:OVALRIG] +Miglior risultato: ~1~ + +[HOTR_27:OVALRIG] +Miglior giro: ~1~.~1~ secondi + +[HOTR_28:OVALRIG] +Miglior giro: ~1~.0~1~ secondi + +[HOTR_29:OVALRIG] +~1~$ + +[HOTR_30:OVALRIG] +PRIMA POSIZIONE + +[HOTR_31:OVALRIG] +SECONDA POSIZIONE + +[HOTR_32:OVALRIG] +TERZA POSIZIONE + +[HOTR_33:OVALRIG] +Miglior giro: NA + +[HOTR_11:OVALRIG] +Nuovo giro migliore: ~1~.~1~ secondi + +[HOTR_34:OVALRIG] +Nuovo giro migliore: ~1~.0~1~ secondi + +{=================================== MISSION TABLE PHIL1 ===================================} + +[PHIL1_A:PHIL1] +Phil? + +[PHIL1_B:PHIL1] +CORRI! + +[PHIL1_C:PHIL1] +Corri! + +[PHIL1_E:PHIL1] +Merda Phil, tu bevi quella schifezza? + +[PHIL1_F:PHIL1] +Accidenti, non la devi mica bere... + +[PHIL1_G:PHIL1] +basta una sniffata per sballare. + +[PHIL1_H:PHIL1] +Ascoltami Phil, mi hai detto che potevi fornirmi delle armi... + +[PHIL1_I:PHIL1] +Stanne certo! + +[PHIL1_J:PHIL1] +C'è un trafficante d'armi Messicano con cui ho fatto un po' di affari. + +[PHIL1_K:PHIL1] +Fa la sua consegna settimanale più o meno adesso. + +[PHIL1_L:PHIL1] +Sperona il suo camion e fai cadere le armi prima che scappi. + +[PHIL1_M:PHIL1] +E già che ci sei, fammi un favore: + +[PHIL1_N:PHIL1] +fallo fuori. + +[PHI1_01:PHIL1] +~g~Fai cadere le armi dal camion del trafficante. + +[PHI1_02:PHIL1] +~g~Il trafficante ha lasciato cadere il carico. Distruggi le casse e recupera le armi. + +[PHI1_03:PHIL1] +~g~Sembra abbiano chiesto rinforzi. + +[PHI1_04:PHIL1] +~g~Adesso finisci i trafficanti ancora vivi. + +[PHI1_HP:PHIL1] +Quando utilizzi una granata a tempo, lanciala e poi falla esplodere in un secondo momento. + +[PHIL1_O:PHIL1] +Hoooooweeeeee! + +[PHIL1_D:PHIL1] +Nona avvicinare mai una fiamma alla broda di Phil Cassidy! + +{=================================== MISSION TABLE PHIL2 ===================================} + +[PHIL2_A:PHIL2] +Ehi Phil, come butta? + +[PHIL2_B:PHIL2] +Eeeeehi Tommy, Come va? E passcato moolto tempo... + +[PHIL2_C:PHIL2] +Devi davvero smetterla con quella broda, + +[PHIL2_D:PHIL2] +accidenti, puzza di solvente. Mi fa bruciare gli occhi... + +[PHIL2_E:PHIL2] +Shshs shhh silenzio Tommy, + +[PHIL2_F:PHIL2] +e vieni qua che ho qualcoscia da farti vedere... qualcoscia... + +[PHIL2_G:PHIL2] +Woof! Oddio! Riuscirei a sniffarlo da qui in fondo! Mi gira già la testa! + +[PHIL2_H:PHIL2] +Non preoccuparti per l'odore, Tommy, guarda quescto... + +[PHIL2_I:PHIL2] +La fottuta batteria o qualcosc'altro... Scen'è un altra sulla mensola... + +[PHIL2_J:PHIL2] +TA-DAAA! + +[PHIL2_K:PHIL2] +Ommerda! + +[PHI2_01:PHIL2] +~g~Forza, porta Phil all'ospedale. + +[PHI2_03:PHIL2] +~r~Phil Cassidy è morto!!! Adesso chi ti rifornirà di armi? + +[PHI2_05:PHIL2] +Non all'ospedale, amico! Troppi poliziotti e Viet Cong! + +[PHI2_06:PHIL2] +C'è un vecchio ex-medico militare che mi deve qualche favore e una falciatrice. + +[PHI2_07:PHIL2] +Si trova lungo Little Havana, oooh guarda, un pesce gigante. + +[PHI2_08:PHIL2] +Attento! Nemico tra gli alberi! + +[PHI2_09:PHIL2] +Mi sbaglio o le strade sono di gelatina? + +[PHI2_10:PHIL2] +Cucchiaio Storto a Mamma Gallina, mi ricevi? + +[PHI2_11:PHIL2] +Cucchiaione-ione Woo Woo Woooo! + +[PHI2_12:PHIL2] +Sta venendo per me, amico! + +[PHI2_13:PHIL2] +Piume nere che svolazzano dappertutto... + +[PHI2_14:PHIL2] +È così bello, amico... così bello... ma così freddo... + +[PHI2_15:PHIL2] +10-4, abbiamo un guidatore ubriaco. + +[PHI2_04:PHIL2] +SALUTE DI PHIL: + +[PHI_AS1:PHIL2] +PHILS PLACE COMPLETATO + +[PHI_AS2:PHIL2] +~g~Nuove armi disponibili presso Phils Place. {=================================== MISSION TABLE PIZZA ===================================} -[PIZ1_06:PIZZA] -~w~Premi~h~ ~k~ ~TGSUB~ ~w~quando sei in moto per annullare la missione. +[PIZ1_01:PIZZA] +~g~Vai a consegnare queste pizze: devi lanciarle ai clienti. Fai un giro e tira le pizze. [PIZ1_02:PIZZA] -~w~Hai finito le pizze! Torna da ~y~Joe's~w~ per recuperarne altre. +~g~Hai lanciato tutte le pizze, torna indietro e prendine altre. + +[PIZ1_05:PIZZA] +~g~Hai cinque minuti per consegnare le pizze prima che i clienti chiamino un altro negozio di consegne. [PIZ1_07:PIZZA] ~r~Hai ucciso un cliente! Sei licenziato! [PIZ1_08:PIZZA] -~r~Tempo scaduto, sei licenziato! - -[PIZ1_09:PIZZA] -~r~Hai distrutto il nostro motorino! Fuori di qui! - -[PIZ1_11:PIZZA] -~w~Devi usare il ~b~motorino~w~ delle pizze per consegnare gli ordini! - -[PIZ1_12:PIZZA] -Pizze - -[PIZ1_13:PIZZA] -~w~Pizza! Calda e pronta a partire! L'adoro! - -[PIZ1_14:PIZZA] -~w~Queste sono già pronte... Fila! - -[PIZ1_15:PIZZA] -~w~Questa è bella piccante! - -[PIZ1_16:PIZZA] -~w~Togliti le mani dal culo e corri a consegnare le pizze, spicciati! - -[PIZ1_17:PIZZA] -~w~Queste pizze devono essere consegnate oggi, non l'anno prossimo! - -[PIZ1_18:PIZZA] -~w~Consegnare le pizze è un brutto lavoro? Beh, scusami tanto, professore! - -[PIZ1_19:PIZZA] -~w~Hai intenzione di fare queste consegne o no? - -[PIZ1_20:PIZZA] -~w~Sei licenziato! ...Scherzavo, ma nemmeno tanto, se non farai queste consegne in tempo! - -[PIZ1_21:PIZZA] -~w~Pizze! Forza! I grassoni ci stanno aspettando! - -[PIZ1_22:PIZZA] -~w~Hai sputato sulle pizze? Avresti dovuto, aggiunge quel tocco di gusto in più! - -[PIZ1_23:PIZZA] -~w~Pensi che si consegneranno da sole? - -[PIZ1_24:PIZZA] -~w~Se le consegni fredde, difficilmente ti pagheranno! - -[PIZ1_25:PIZZA] -~w~Sbrigati! - -[PIZ1_26:PIZZA] -~w~Ehi, consegna queste! - -[PIZ1_27:PIZZA] -~w~OK, fai la consegna e torna a prenderne altre. - -[PIZ1_28:PIZZA] -~w~Le nostre pizze sono le migliori! Consegnale in tempo o ti prenderò a calci! - -[PIZ1_29:PIZZA] -~w~Ne vuoi ancora? Non so più come insultarti! - -[PIZ1_30:PIZZA] -~w~Ci ho starnutito sopra! Non importa, consegnale lo stesso! - -[PIZ1_31:PIZZA] -~w~Odio questo lavoro, ma almeno ti faccio sgobbare in giro. - -[PIZ1_3A:PIZZA] -~w~Se non le consegnerai in tempo, non ti darò un soldo! - -[PIZ1_32:PIZZA] -~r~Non sopporti la nostra pizza? - -[PIZ1_33:PIZZA] -~w~Torna da ~y~Joe's~w~ per nuovi ordini. - -[PIZ1_34:PIZZA] -~w~Consegna effettuata, soldi incassati! - -[PIZ_WON:PIZZA] -~w~Lavoro di consegna delle pizze completato! Il tuo livello massimo di salute è aumentato! - -[PIZ_WO1:PIZZA] -~w~Il ristorante di Joe's è sotto la tua 'protezione'. Ricordati di passare a prendere i pagamenti regolarmente. - -[PIZ1_01:PIZZA] -~w~Vai a consegnare queste pizze ai nostri ~b~clienti~w~ il più rapidamente possibile. - -[PIZ1_05:PIZZA] -~w~Per lanciare una pizza a un cliente, usa la visuale laterale. - -{=================================== MISSION TABLE TAXI ===================================} - -[TAXI1:TAXI] -~w~Cerca un ~b~passeggero. - -[TAXI1A:TAXI] -~w~Non ci sono passeggeri da queste parti, continua a cercare! - -[TAXI2:TAXI] -~r~Tempo scaduto! - -[TAXI3:TAXI] -~w~Il passeggero è fuggito terrorizzato! - -[TAXI4:TAXI] -~w~Corsa completata: ~1~$ - -[TAXI4A:TAXI] -~w~Corsa completata: bonus ~1~$ + ~1~ DI FILA! ~1~$ - -[TAXI5:TAXI] -~w~BONUS VELOCITÀ: ~1~$ - -[TAXI5A:TAXI] -~w~BONUS VELOCITÀ: bonus ~1~$ + ~1~ DI FILA! ~1~$ - -[TAXI7:TAXI] -~w~La tua macchina è distrutta, falla riparare! - -[TAXI8:TAXI] -~r~Missione taxi annullata. - -[TAXI9:TAXI] -~r~Il tuo taxi è stato distrutto! - -[FARES:TAXI] -Corse - -[TIP:TAXI] -Mancia - -[FARE9:TAXI] -~w~Destinazione ~y~'Portland docks'. - -[FARE20:TAXI] -~w~Destinazione ~y~'il parco' ~w~a Belleville. - -[FARE22:TAXI] -~w~Destinazione ~y~'Cochrane Dam'. - -[FARE2:TAXI] -~w~Destinazione ~y~'Head Radio'~w~, Harwood. - -[FARE3:TAXI] -~w~Destinazione ~y~'porto dei traghetti'~w~, Harwood. - -[FARE4:TAXI] -~w~Destinazione ~y~'ospedale'~w~, Portland View. - -[FARE7:TAXI] -~w~Destinazione ~y~'cantiere edile'~w~, Hepburn Heights. - -[FARE8:TAXI] -~w~Destinazione ~y~'ristorante di Cipriani'~w~, Saint Mark's. - -[FARE10:TAXI] -~w~Destinazione ~y~'Punk Noodles'~w~, Chinatown. - -[FARE12:TAXI] -~w~Destinazione ~y~'porto dei traghetti'~w~, Rockford. - -[FARE13:TAXI] -~w~Destinazione ~y~'la chiesa'~w~, Bedford Point. - -[FARE14:TAXI] -~w~Destinazione ~y~'uffici del Liberty Tree'~w~, Bedford Point. - -[FARE15:TAXI] -~w~Destinazione ~y~'università di Liberty'~w~, Liberty Campus. - -[FARE16:TAXI] -~w~Destinazione ~y~'Hogs 'n' Cogs'~w~, Belleville Park Area. - -[FARE17:TAXI] -~w~Destinazione ~y~'palazzo di giustizia'~w~, Belleville Park Area. - -[FARE18:TAXI] -~w~Destinazione ~y~'Mr. Benz'~w~, Bedford Point. - -[FARE19:TAXI] -~w~Destinazione ~y~'Joe's Pizza'~w~, Bedford Point. - -[FARE21:TAXI] -~w~Destinazione ~y~'Terminal A'~w~, aeroporto internazionale Francis. - -[FARE23:TAXI] -~w~Destinazione ~y~'la villa'~w~, Cedar Grove. - -[FARE24:TAXI] -~w~Destinazione ~y~'l'ospedale'~w~, Pike Creek. - -[FARE25:TAXI] -~w~Destinazione ~y~'il parco'~w~, Shoreside Vale. - -[FARE26:TAXI] -~w~Destinazione ~y~'North West Towers'~w~, Wichita Gardens. - -[FARE27:TAXI] -~w~Destinazione ~y~'deposito dei pullman'~w~, Trenton. - -[FARE28:TAXI] -~w~Destinazione ~y~'Mr. Benz'~w~, Chinatown. - -[FARE29:TAXI] -~w~Destinazione ~y~'Mr. Benz'~w~, Pike Creek. - -[FARE30:TAXI] -~w~Destinazione ~y~'Terminal C'~w~, aeroporto internazionale Francis. - -[FARE31:TAXI] -~w~Destinazione ~y~'AM Petroleum'~w~, Pike Creek. - -[FARE32:TAXI] -~w~Destinazione ~y~'Liberty Pharmaceuticals'~w~, Pike Creek. - -[FARE11:TAXI] -~w~Destinazione ~y~'negozio di Phil Cassidy'~w~, Bedford Point. - -[FARE1A:TAXI] -~w~Destinazione ~y~'Paulie's Revue Bar'~w~, Red Light District. - -[FARE1C:TAXI] -~w~Destinazione ~y~'Sex Club Seven'~w~, Red Light District. - -[FARE5:TAXI] -~w~Destinazione ~y~'Ammu-Nation'~w~, Red Light District. - -[FARE6:TAXI] -~w~Destinazione ~y~'Capital Autos'~w~, Saint Mark's. - -{=================================== MISSION TABLE AMBU ===================================} - -[A_FAIL2:AMBU] -~r~La tua scarsa sollecitudine è stata fatale al paziente! - -[A_FAIL3:AMBU] -~r~Il paziente è morto! - -[ATUTOR4:AMBU] -~w~Ogni impatto riduce le speranze di sopravvivenza del paziente. - -[A_TIME:AMBU] -~w~Paziente recuperato +~1~ secondi - -[A_TIME2:AMBU] -~w~Bonus! +~1~ secondi - -[AREWARD:AMBU] -~w~Livello ~1~ completato! Ricompensa: ~1~$ - -[A_RANGE:AMBU] -~r~La radio dell'ambulanza è fuori campo, avvicinati a un ospedale! - -[ATUTOR5:AMBU] -~w~Carica un ~b~paziente. - -[ATUTOR6:AMBU] -~w~Porta il paziente all'~y~ospedale! - -[ATUTOR7:AMBU] -~w~Carica altri ~b~pazienti~w~, o porta questo all'~y~ospedale. - -[A_FULL:AMBU] -~w~L'ambulanza è piena! Scarica i pazienti all'~y~ospedale! - -[A_RANG2:AMBU] -~r~La radio dell'ambulanza non funziona in metropolitana! - -{=================================== MISSION TABLE TV ===================================} - -[TV_01:TV] -Slash TV - -[TV_02:TV] -~w~Uccidi tutti gli psicopatici... continuano ad arrivare! - -[TV_03:TV] -~w~Ogni livello diventa sempre più difficile per via del maggior numero di nemici... con maggiori premi in palio! - -[TV_04:TV] -~w~LIVELLO ~1~ - -[TV_10:TV] -~w~Hai vinto un premio extra! - -[TV_09:TV] -Soldi totali guadagnati nell'episodio: ~1~$! - -[TV_05:TV] -~w~LIVELLO COMPLETATO! - -[TV_06:TV] -~w~Hai vinto ~1~$ in premi! - -[TV_07:TV] -~w~PRONTI... - -[TV_08:TV] -~w~VIA! - -{=================================== MISSION TABLE NOODLE ===================================} - -[NDL1_02:NOODLE] -~w~Uh oh, hai finito i noodle! Torna da ~y~Punk Noodles~w~ per recuperarne altri. - -[NDL1_06:NOODLE] -~w~Premi~h~ ~k~ ~TGSUB~ ~w~quando sei in moto per annullare la missione. - -[NDL1_07:NOODLE] -~r~Hai ucciso un cliente! Sei licenziato! - -[NDL1_08:NOODLE] ~r~Tempo scaduto. Sei licenziato! -[NDL1_09:NOODLE] -~r~Hai distrutto il nostro motorino! Sei licenziato! +[PIZ1_09:PIZZA] +~r~Hai distrutto il nostro mezzo! Sei licenziato! -[NDL1_11:NOODLE] -~w~Torna sul ~b~motorino! +[PIZ1_11:PIZZA] +Ehi! Rimettiti in sella! -[NDL1_12:NOODLE] -Noodle +[PIZ1_12:PIZZA] +Pizze mancanti: -[NDL1_13:NOODLE] -~w~Noodle! Un bel po' di noodle da consegnare! +[PIZ1_06:PIZZA] +Premi il ~h~~k~~TOGGLE_SUBMISSIONS~~w~ mentre sei in moto per interrompere la missione. -[NDL1_14:NOODLE] -~w~I nostri clienti non sono mai sazi dei miei noodle. +[PIZ1_13:PIZZA] +Consegnale belle calde e fragranti. -[NDL1_15:NOODLE] -~w~Ci sono dei noodle da consegnare! +[PIZ1_14:PIZZA] +Amico, eccoti le pizze. -[NDL1_16:NOODLE] -~w~Proviamo a consegnare questi noodle in tempo! +[PIZ1_15:PIZZA] +Ehi, amico, consegnale in fretta. -[NDL1_17:NOODLE] -~w~Ehi amico! Questi noodle sono pronti! +[PIZ1_16:PIZZA] +Che cosa stai aspettando, amico? Hai delle pizze da consegnare! -[NDL1_18:NOODLE] -~w~Consegna questi noodle! +[PIZ1_17:PIZZA] +So che non volevi fare il fattorino delle pizze, ma non me ne frega niente. -[NDL1_19:NOODLE] -~w~I nostri clienti vogliono noodle caldi, non freddi! +[PIZ1_18:PIZZA] +Consegna queste. -[NDL1_20:NOODLE] -~w~In cucina fa troppo caldo? Confucio dice 'spegni il forno'. +[PIZ1_19:PIZZA] +Devi consegnare queste. -[NDL1_21:NOODLE] -~w~Consegnerai questi noodle, vero? +[PIZ1_20:PIZZA] +Forza, ragazzo, consegna queste o sei licenziato. -[NDL1_22:NOODLE] -~w~Altri noodle pronti per essere consegnati. +[PIZ1_21:PIZZA] +C'è gente in attesa, amico. -[NDL1_23:NOODLE] -~w~Noodle, noodle, noodle! Consegnali belli caldi! +[PIZ1_22:PIZZA] +Che cosa stai aspettando? Devono essere consegnate! -[NDL1_24:NOODLE] -~w~C'è gente che sta aspettando! Oh, che fine faremo... +[PIZ1_23:PIZZA] +Consegna queste maledette pizze. -[NDL1_25:NOODLE] -~w~Perché quest'ordine non è ancora stato consegnato? +[PIZ1_24:PIZZA] +Forza, consegnale calde. -[NDL1_26:NOODLE] -~w~Cosa stai aspettando? Il capodanno cinese? +[PIZ1_25:PIZZA] +Ehi, ti occuperesti di queste? -[NDL1_27:NOODLE] -~w~Questi noodle si stanno raffreddando. Sbrigati! +[PIZ1_26:PIZZA] +Ehi, consegna subito queste: forza amico. -[NDL1_28:NOODLE] -~w~Volevo fare l'astronauta, ma ho ereditato questo posto da mio padre... cosa potevo fare? +[PIZ1_27:PIZZA] +Forza, siamo di fretta: consegnale subito. -[NDL1_29:NOODLE] -~w~Se vuoi mantenere il tuo posto di lavoro, sbrigati a fare le consegne. +[PIZ1_28:PIZZA] +Ancora tu? Bene, consegnale in fretta, amico. -[NDL1_30:NOODLE] -~w~Noodle fritti croccanti... Non li capisco, ma li adoro. +[PIZ1_29:PIZZA] +Non c'è tempo da perdere, consegnale tutte. -[NDL1_31:NOODLE] -~w~Avrei detto che consegnare pizze era più nel tuo stile. +[PIZ1_30:PIZZA] +Muoviti, brutto pelandrone, consegna questa roba in tempo. -[NDL1_3A:NOODLE] -~w~Ne vogliono sempre di più. Torna quando avrai finito. +[PIZ1_31:PIZZA] +Non otterrai una promozione se non ti muoverai più in fretta. -[NDL1_32:NOODLE] -~r~Qual è il tuo problema? Non ti piacciono i noodle? +[PIZ1_32:PIZZA] +~r~La pizza è troppo calda per te? -[NDL1_33:NOODLE] -~w~Torna da ~y~Punk Noodles~w~ per altre ordinazioni. +[PIZ1_33:PIZZA] +~g~Torna alla pizzeria per altre ordinazioni. -[NDL1_34:NOODLE] -~w~Noodle consegnati, soldi incassati! +[PIZ1_34:PIZZA] +~g~Pizze consegnate, ecco i soldi. -[NDL_WON:NOODLE] -~w~Complimenti, lavoro di consegna dei noodle completato! Il tuo livello massimo di salute è aumentato! +[PIZ_WON:PIZZA] +Missione Pizza completata. Valore massimo dell'salute aumentato a 150. -[NDL_WO1:NOODLE] -~w~Punk Noodles è sotto la tua 'protezione'. Ricordati di passare a prendere i pagamenti regolarmente. +{=================================== MISSION TABLE PORN1 ===================================} -[NDL1_01:NOODLE] -~w~Consegna questi noodle ai nostri ~b~clienti~w~! +[POR1_A:PORN1] +Azione! -[NDL1_05:NOODLE] -~w~Per lanciare i noodle a un cliente, usa la visuale laterale. +[POR1_B:PORN1] +Whoa! Questo sì che è un bel... -{=================================== MISSION TABLE MPSURV ===================================} +[POR1_C:PORN1] +30 centimetri, è questa la norma, baby. -[SAL01:MPSURV] -~w~Maria, sto andando in ospedale per quella 'cosa' che sai. +[POR1_D:PORN1] +TAGLIA! Chi è quell'idiota? Tu! TU! Che cosa stai facendo sul mio set? PERCHÉ? -[SAL02:MPSURV] -~w~Quando sarà fuori, questo vecchio stallone riprenderà a galoppare come al solito... +[POR1_E:PORN1] +Cosa sono tute queste stronzate? -[SAL04:MPSURV] -~w~PS: prepara la sella per quando sarò fuori, pupa! +[POR1_F:PORN1] +Alieni? Canne da pesca? -[SAL05:MPSURV] -~w~PPS: ...non lasciare questo foglio in giro! +[POR1_G:PORN1] +Chi ha mai visto uno squalo così grande? -[SAL03:MPSURV] -~w~Stai lontana dai guai perché sarà pieno di scagnozzi che tenteranno di prendere il controllo! +[POR1_H:PORN1] +Tutta questa roba deve andarsene. -[SAL03A:MPSURV] -~w~Letteralmente! +[POR1_I:PORN1] +Perché sei venuto a rompere, idiota? -{=================================== MISSION TABLE JDREF ===================================} +[POR1_J:PORN1] +Eh? -[JDT1_BA:JDREF] -~w~Non c'è lavoro per uno dei Leone! +[POR1_K:PORN1] +Per la passera, ecco perché! Che cos'è questo? -[JDT1_BB:JDREF] -~w~...Ehi Toni, torna quando darai meno nell'occhio. +[POR1_L:PORN1] +Questa è la mia arte. SORVEGLIANZA! -[CHNGOUT:JDREF] -~w~Cambiati l'abito dei Leone, altrimenti JD non ti potrà parlare. +[POR1_M:PORN1] +Ascolta, lurido fighettino, ti ho comprato. Ho comprato tutto questo. -{=================================== MISSION TABLE CRED01 ===================================} +[POR1_N:PORN1] +E ho intenzione di cambiare le cose da queste parti... -[CR01_01:CRED01] -~n~ ~n~ ~n~ ~n~CREDITS +[POR1_O:PORN1] +Ti farò ricco. -[CR01_02:CRED01] -~n~ ~n~ ~n~ ~n~ROCKSTAR NORTH +[POR1_P:PORN1] +Uh. Tu sei... tu... tu sei Tommy Vercetti? Pensavo che tu fossi... -[CR01_03:CRED01] -~n~ ~n~ ~n~ ~n~Producer ~n~Leslie Benzies +[POR1_Q:PORN1] +Esatto. -[CR01_04:CRED01] -~n~ ~n~ ~n~ ~n~Art Director ~n~Aaron Garbut +[POR1_R:PORN1] +Faremo numerosi cambiamenti da queste parte e inizieremo a fare soldi veri. -[CR01_05:CRED01] -~n~ ~n~ ~n~ ~n~Technical Direction ~n~Obbe Vermeij, Adam Fowler +[POR1_S:PORN1] +Effettivamente, hai mai pensato che... -[CR01_06:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~Written By ~n~Dan Houser, James Worrall ~n~ & David Bland +[POR1_T:PORN1] +Ma prima dobbiamo trovare delle tope che meritino. -[CR01_07:CRED01] -~n~ ~n~ ~n~ ~n~Programming ~n~Alexander Roger, Alexander Illes, ~n~Andrzej Madajczyk, Barane Chan, ~n~Derek Payne, Derek Ward, +[POR1_U:PORN1] +Sì. Le ragazze sono carine, ma sai... Wow! -[CR01_08:CRED01] -~n~ ~n~Gordon Yeoman, Graeme Williamson, ~n~Greg Smith, James Broad, ~n~John Gurney, John Whyte, +[POR1_02:PORN1] +~g~Metti fuori gioco il pappone di Candy e poi passa a prenderla. -[CR01_09:CRED01] -~n~ ~n~Keith McLeman, Mark Nicholson, ~n~Shaun McKillop +[POR1_04:PORN1] +Yo, Candy. Sto cercando delle attrici talentuose: sei interessata? -[CR01_10:CRED01] -~n~ ~n~ ~n~ ~n~Audio Programmer ~n~Matthew Smith +[POR1_05:PORN1] +Certo! Ma prima dovrai parlare con il mio agente... -[CR01_11:CRED01] -~n~ ~n~ ~n~ ~n~Sound Design and Mastering ~n~Allan Walker +[POR1_06:PORN1] +Che DIAVOLO stai facendo? -[CR01_12:CRED01] -~n~ ~n~ ~n~ ~n~Lead Cut Scene Animator ~n~Mondo Ghulam +[POR1_07:PORN1] +Avresti fatto meglio a stare a casa oggi! -[CR01_13:CRED01] -~n~ ~n~ ~n~ ~n~Cut Scene Animator ~n~Dermot Bailie +[POR1_7B:PORN1] +Ma hai visto questo stronzo? -[CR01_14:CRED01] -~n~ ~n~ ~n~ ~n~Character Animator ~n~Felipe Busquets +[POR1_08:PORN1] +Ehi Mercedes! -[CR01_15:CRED01] -~n~ ~n~ ~n~ ~n~In-Game Animation ~n~Gus Braid, Terry Kenny +[POR1_09:PORN1] +Ehi Tommy, vuoi divertirti? -[CR01_16:CRED01] -~n~ ~n~ ~n~ ~n~Characters Artist ~n~Ian McQue +[POR1_10:PORN1] +Non adesso, tesoro. Sei interessata a fare dei film? -[CR01_17:CRED01] -~n~ ~n~ ~n~ ~n~Vehicle Artist ~n~Joylon Orme +[POR1_11:PORN1] +Certo, sempre che possano premiare il mio talento. -[CR01_18:CRED01] -~n~ ~n~ ~n~ ~n~Additional Art ~n~Rick Stirling, Alisdair Wood +[POR1_13:PORN1] +~g~Porta le ragazze allo studio e presentale a Steve. -[CR01_19:CRED01] -~n~ ~n~ ~n~ ~n~Music Producer ~n~Craig Conner +[POR1_14:PORN1] +Sei assunta! -[CR01_20:CRED01] -~n~ ~n~ ~n~ ~n~Audio Design and Dialogue Editor ~n~Will Morton +[POR1_15:PORN1] +Ehi Tommy, vieni anche tu per un riscaldamento? -[CR01_21:CRED01] -~n~ ~n~ ~n~ ~n~Additional Dialogue Editor ~n~Jon McCavish +[POR1_17:PORN1] +Whoa, che bello squalo! -[CR01_22:CRED01] -~n~ ~n~ ~n~ ~n~Development Support ~n~Milly Cottam +[POR1_18:PORN1] +~r~Mercedes è morta! -[CR01_23:CRED01] -~n~ ~n~ ~n~ ~n~Graphic Designers ~n~Stuart Petri, Steve Walsh +[POR1_20:PORN1] +Tommy, dove stai andando? Torna qui! -[CR01_24:CRED01] -~n~ ~n~ ~n~ ~n~Lead Level Design ~n~William Mills +[POR1_21:PORN1] +Dove stai andando? -[CR01_25:CRED01] -~n~ ~n~ ~n~ ~n~Level Design ~n~Chris Rothwell, Andy Duthie, ~n~Chris McMahon, Neil Ferguson +[POR1_22:PORN1] +Tommy, quando passeremo un po' di tempo io e te da soli? -[CR01_26:CRED01] -~n~ ~n~ ~n~ ~n~QA Manager ~n~Craig Arbuthnott +[POR1_01:PORN1] +~g~Candy Suxxx sarebbe perfetta per il ruolo da protagonista! -[CR01_27:CRED01] -~n~ ~n~ ~n~ ~n~Senior Lead Test ~n~Neil Corbett +[POR1_12:PORN1] +~g~Porta Candy con te all'appuntamento con Mercedes. -[CR01_28:CRED01] -~n~ ~n~ ~n~ ~n~Lead Test ~n~David Murdoch, Neil Meikle, ~n~Alex Bazlinton, Brenda Carey +[POR1_16:PORN1] +Magari più tardi... -[CR01_29:CRED01] -~n~ ~n~ ~n~ ~n~Build Engineer / Lead Test ~n~Neil Walker +[POR1_24:PORN1] +~g~Torna indietro e prendi Candy. -[CR01_30:CRED01] -~n~ ~n~ ~n~ ~n~Audio Test ~n~George Williamson +[POR1_25:PORN1] +~g~Hai lasciato Candy indietro, torna a prenderla. -[CR01_31:CRED01] -~n~ ~n~ ~n~ ~n~Test ~n~Brian Kelly, Lindsay Robertson, ~n~Sundram Soosay, Eugene Kuczerepa, ~n~Christopher Soosay, Ben Abbott, +[POR1_23:PORN1] +~g~Candy starà lavorando in ~h~Downtown~g~. -[CR01_32:CRED01] -~n~ ~n~Oliver Elliott, Louis Dinan, ~n~Bobby Wright, Thomas Philips, ~n~Nick Rees, Ivor Williams +[POR1_26:PORN1] +~g~Ecco Candy, sembra sia stata ancora con il deputato Shrub. -[CR01_33:CRED01] -~n~ ~n~ ~n~ ~n~Test Tools Programming ~n~James Whitcroft, Alex Carter +[POR1_27:PORN1] +Forza, andiamo. -[CR01_34:CRED01] -~n~ ~n~ ~n~ ~n~IT Manager ~n~Lorraine Roy +[POR1_28:PORN1] +Tommy, fai attenzione! Il mio seno siliconato non è ancora assicurato! -[CR01_35:CRED01] -~n~ ~n~ ~n~ ~n~IT Support ~n~Christine Chalmers, Dave Bruce +[POR1_29:PORN1] +È questo il modo di guidare? -[CR01_36:CRED01] -~n~ ~n~ ~n~ ~n~Studio Director ~n~Andrew Semple +[POR1_30:PORN1] +Non posso recitare dopo tutto questo! -[CR01_37:CRED01] -~n~ ~n~ ~n~ ~n~Office Administration ~n~Kim Gurney +[POR1_31:PORN1] +Cosa? Stai cercando di uccidermi? Credevo di essere una star! -[CR01_38:CRED01] -~n~ ~n~ ~n~ ~n~Administration Support ~n~Charlene Maguire, Kim Wilson +{=================================== MISSION TABLE PORN2 ===================================} -[CR02_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ROCKSTAR LEEDS +[POR2_A:PORN2] +Come stanno andando le riprese, Steve? -[CR02_02:CRED01] -~n~ ~n~ ~n~ ~n~Studio Director ~n~Gordon Hall +[POR2_B:PORN2] +Beh, Candy è un talento naturale e l'altra ragazza... è insaziabile! -[CR02_03:CRED01] -~n~ ~n~ ~n~ ~n~Head of Development ~n~David Box +[POR2_C:PORN2] +Si è passata metà del cast e dello staff prima ancora che iniziassi a fare i controlli delle luci. -[CR02_04:CRED01] -~n~ ~n~ ~n~ ~n~Lead Programming ~n~Andrew Greensmith, Matthew Shepcar ~n~ ~n~ ~n~ ~n~Console Programming ~n~Nigel Conroy, Richard Frankish, ~n~Andrew Greensmith, Robin Mangham, ~n~Damian McKenna, Finlay Munro, ~n~Stuart Roskell, Matthew Shepcar +[POR2_D:PORN2] +Comunque, eh, domani andiamo fuori a registrare le scene sulla barca... -[CR02_05:CRED01] -~n~ ~n~ ~n~ ~n~Programming ~n~Jon Bellamy, Ross Childs, ~n~Nigel Conroy, Neil Dodwell, ~n~Alastair Dukes, David Huebner, +[POR2_E:PORN2] +Scene sulla barca? Quali scene sulla barca? -[CR02_06:CRED01] -~n~ ~n~Robin Mangham, Jason McGann, ~n~Warren Merrifield, Stephen McGreal +[POR2_F:PORN2] +I pescatori sono presi dalla passione quando lo squalo gigante arriva e... -[CR02_07:CRED01] -~n~ ~n~ ~n~ ~n~Sound Programming ~n~Finlay Munro, Charles Waddington +[POR2_G:PORN2] +Che cosa ho detto sullo squalo gigante? -[CR02_08:CRED01] -~n~ ~n~ ~n~ ~n~Art Director ~n~Ian Bowden +[POR2_H:PORN2] +Ho detto: 'NIENTE SQUALO GIGANTE', tutto chiaro? -[CR02_09:CRED01] -~n~ ~n~ ~n~ ~n~Art Department Director ~n~Chris Smart +[POR2_I:PORN2] +Lascia semplicemente le telecamere puntate sull'azione! -[CR02_10:CRED01] -~n~ ~n~ ~n~ ~n~Lead Character Artist ~n~Paul Smith +[POR2_J:PORN2] +OK, OK. Ehi Tommy, ci devo pure provare, no? -[CR02_11:CRED01] -~n~ ~n~ ~n~ ~n~Character Artist ~n~Chris Allison +[POR2_K:PORN2] +Hai fatto stampare quei volantini? -[CR02_12:CRED01] -~n~ ~n~ ~n~ ~n~Lead City Artist ~n~Dan Roberts +[POR2_L:PORN2] +Sì, ma nessuno ci farà distribuire quella roba, cioè... -[CR02_13:CRED01] -~n~ ~n~ ~n~ ~n~City Artists ~n~Paul McKee, James McHale, ~n~Siu Lee +[POR2_M:PORN2] +Lasciano semplicemente troppo, uh... poco all'immaginazione. -[CR02_14:CRED01] -~n~ ~n~ ~n~ ~n~Cutscene Interiors ~n~Izzy Stewart +[POR2_N:PORN2] +Non preoccuparti per quello. -[CR02_15:CRED01] -~n~ ~n~ ~n~ ~n~Concept Artist ~n~John Wigley +[POR2_O:PORN2] +Ho le mie idee sulla distribuzione. -[CR02_16:CRED01] -~n~ ~n~ ~n~ ~n~Additional Character Animation ~n~Alan Bowker +[POR2_P:PORN2] +OK. Ehi Candy, uh, nella mia roulotte. -[CR02_17:CRED01] -~n~ ~n~ ~n~ ~n~Additional Artists ~n~Andy Walker, Jason Gee, ~n~Chris Edwards, Lee Clark +[POR2_01:PORN2] +~g~C'è un idrovolante che è stato utilizzato nelle scene di alcuni vecchi film di Indy nel retro degli studi. -[CR02_18:CRED01] -~n~ ~n~ ~n~ ~n~Design Director ~n~David Bland +[POR2_02:PORN2] +~g~Passa sopra uno dei punti di controllo per cominciare a distribuire volantini. -[CR02_19:CRED01] -~n~ ~n~ ~n~ ~n~Lead Level Design ~n~John Li +[POR2_03:PORN2] +~g~Lancia i volantini fino alla fine del punto di controllo. -[CR02_20:CRED01] -~n~ ~n~ ~n~ ~n~Senior Level Design ~n~Tony Gowland, Martyn Bramall +[POR2_04:PORN2] +~r~CARBURANTE AL MINIMO!!! -[CR02_21:CRED01] -~n~ ~n~ ~n~ ~n~Level Design ~n~Sam Hackett, Stephen Robertson, ~n~Tom Kingsley, Chris Edwards, ~n~Kris Gormley +[POR2_05:PORN2] +Usalo per distribuire i volantini per la città. -[CR02_22:CRED01] -~n~ ~n~ ~n~ ~n~Associate Designer ~n~Mark McGinley +[DILDO:PORN2] +Carburante: -[CR02_23:CRED01] -~n~ ~n~ ~n~ ~n~QA Manager ~n~Paul Colls +[POR2_Q:PORN2] +Accidenti. -[CR02_24:CRED01] -~n~ ~n~ ~n~ ~n~QA ~n~Jody Cobb, ~n~ ~n~Luke Brown, Nick Robey, ~n~Matthew Haven +[PORN2_9:PORN2] +~g~Hai ~1~ secondi per tornare sulla tua Skimmer prima che la missione abbia termine. -[CR02_25:CRED01] -~n~ ~n~ ~n~ ~n~Company Secretary ~n~Naomi Martin +{=================================== MISSION TABLE PORN3 ===================================} -[CR02_26:CRED01] -~n~ ~n~ ~n~ ~n~IT Manager ~n~Chris Waring +[POR3_A:PORN3] +OK, qual è il problema adesso? -[CR03_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ROCKSTAR NYC +[POR3_B:PORN3] +SSShhhh! -[CR03_02:CRED01] -~n~ ~n~ ~n~ ~n~Executive Producer ~n~Sam Houser +[POR3_C:PORN3] +Beh, dopo il suo incontro ravvicinato con le ninfo-invasori, -[CR03_03:CRED01] -~n~ ~n~ ~n~ ~n~VP of Creative ~n~Dan Houser +[POR3_D:PORN3] +il nostro eroe non riesce a pensare ad altro che a questa immensa montagna fallica... -[CR03_04:CRED01] -~n~ ~n~ ~n~ ~n~VP of Development ~n~Jamie King +[POR3_E:PORN3] +ed è qui che vogliamo girare la scena con la tinozza piena di puré, ma poi noi... -[CR03_05:CRED01] -~n~ ~n~ ~n~ ~n~Art Director ~n~Alex Horton +[POR3_F:PORN3] +Non me ne può fregar di meno, -[CR03_06:CRED01] -~n~ ~n~ ~n~ ~n~Chief Technology Officer ~n~Gary J. Foreman +[POR3_G:PORN3] +Basta che continui, continui, continui. -[CR03_07:CRED01] -~n~ ~n~ ~n~ ~n~Associate Producer ~n~Rich Rosado +[POR3_H:PORN3] +Ehi Tommy... -[CR03_08:CRED01] -~n~ ~n~ ~n~ ~n~Director of Quality Assurance ~n~Jeff Rosa +[POR3_I:PORN3] +mi hai accennato qualcosa al telefono riguardo dei problemi legali... -[CR03_09:CRED01] -~n~ ~n~ ~n~ ~n~Senior Lead Analyst ~n~Lance Williams +[POR3_J:PORN3] +Ah sì! Il deputato Alex Shrub, lanciato verso la cattura di nuovi elettori, ha deciso di conquistare i puritani. -[CR03_10:CRED01] -~n~ ~n~ ~n~ ~n~Project Lead ~n~Jameel Vega +[POR3_K:PORN3] +Si mormora che voglia supportare delle misure per limitare, diciamo, -[CR03_11:CRED01] -~n~ ~n~ ~n~ ~n~Rockstar Test Team ~n~Ethan Abeles, William Rompf, ~n~Christopher Mansfield, Chris Choi, ~n~Mike Hong, Tamara Carrion, +[POR3_L:PORN3] +l'aspetto più carnale della grande industria nazionale dell'intrattenimento. -[CR03_12:CRED01] -~n~ ~n~Rich Huie, Mike Nathan, ~n~Vance Wallace, Marc Rodriguez, ~n~Adam Tetzloff +[POR3_M:PORN3] +Ottimo. -[CR03_13:CRED01] -~n~ ~n~ ~n~ ~n~Business Development Director ~n~Sean Macaluso +[POR3_N:PORN3] +Candy! Conosci Shrub, -[CR03_14:CRED01] -~n~ ~n~ ~n~ ~n~Soundtrack Supervision ~n~Heinz Henn, Ivan Pavlovich, ~n~Tim Sweeney +[POR3_O:PORN3] +voi ragazzi vi siete lanciati in qualcosa di perverso? -[CR04_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~CUT SCENES & DIALOGUE +[POR3_P:PORN3] +Oh sì, oh sì, oh sì! Sì sì sì SÌ OOOoooh! -[CR04_02:CRED01] -~n~ ~n~ ~n~ ~n~Motion Capture Director ~n~Navid Khonsari +[POR3_Q:PORN3] +Ti prego, dimmi che lo hai ripreso. -[CR04_03:CRED01] -~n~ ~n~ ~n~ ~n~Motion Capture Performed by ~n~Danny Mastrogiorgio, Jeffrey C. Hawkins, ~n~Bruce MacVittie, David Zayas, ~n~Peter Appel, Hannah Moon, ~n~Alyssa Truppelli, Joe Lotruglio +[POR3_R:PORN3] +Faceva parte del... uh... o stava parlando con... -[CR04_04:CRED01] -~n~ ~n~ ~n~ ~n~Voices Performed by ~n~Salvatore Leone - Frank Vincent ~n~Toni Cipriani - Danny Mastrogiorgio ~n~Donald Love - Will Janowitz +[POR3_S:PORN3] +Ehi, non saprei dire. Comunque... -[CR04_05:CRED01] -~n~ ~n~ Vincenzo Cilli - Joe Lotruglio ~n~Maria Latore - Fiona Gallagher ~n~JD O'Toole - Greg Wilson +[POR3_T:PORN3] +Ti consiglio vivamente di seguirla dopo le riprese, -[CR04_06:CRED01] -~n~ ~n~Leon McAffrey - Ron Orbach ~n~Ray Machowski - Peter Appel ~n~Toshiko Kasen - Hannah Moon +[POR3_U:PORN3] +vedi se va dritta al suo nuovo nido d'amore. -[CR04_07:CRED01] -~n~ ~n~ Ned Burner - Peter Bradbury ~n~Ma Cipriani - Sondra James ~n~Giovanni Casa - Joel Jones +[POR3_V:PORN3] +Hai una macchina fotografica? -[CR04_08:CRED01] -~n~ ~n~Kazuki Kasen - Keenan Shimizu, ~n~Massimo Torini - Duccio Faggella ~n~Mickey Hamfists - Chris Tardio +[POR3_X:PORN3] +Certo, dategliene una. -[CR04_09:CRED01] -~n~ ~n~Jane Hopper - Gordana Rashovich ~n~Mayor O'Donovan - John Braden ~n~8 Ball - Guru +[POR3_02:PORN3] +~r~Hai ucciso il deputato! Adesso come farai a ricattarlo? -[CR04_10:CRED01] -~n~ ~n~Radio Newscaster - Sharon Washington ~n~TV Reporter - Brooke Alexander +[POR3_03:PORN3] +~r~Hai allarmato la sorveglianza del deputato: lo porteranno immediatamente via. -[CR04_11:CRED01] -~n~ ~n~ ~n~ ~n~Pedestrian Dialogue ~n~Una Cruickshank, Gregory Johnson, ~n~Sanford Santacroce, Ayana Osada +[POR3_04:PORN3] +Candy, mi chiameresti Martha? -[CR04_12:CRED01] -~n~ ~n~ ~n~ ~n~Pedestrian Voices ~n~Jamie Hector, Jackson Loo, ~n~Bruce MacVittie, Jeff Gurner, ~n~Jamie Hector, Andrea Kessler, +[POR3_05:PORN3] +Oh Alex, cioè Martha. Tutto ciò che vuoi! -[CR04_13:CRED01] -~n~ ~n~Lynne Horton, Phil Mikkelson, ~n~Koji Nonoyama, Devin Bennett, ~n~Jay Capozello, Mike Nathan, +[POR3_06:PORN3] +Martha, qualcuno ci sta osservando... che cosa perversa. -[CR04_14:CRED01] -~n~ ~n~Ethan Abeles, Lance Williams, ~n~Natalya Wilson, Jay Gladstone, ~n~Craig Blair, Dave Edwards, +[POR3_07:PORN3] +Ehi tu. Dammi quella macchina fotografica! -[CR04_15:CRED01] -~n~ ~n~Gregory Johnson, John Zurhellen, ~n~Blair Sadler, Georgia Sadler, ~n~Nicole Sadler, Judy Henderson, +[POR3_01:PORN3] +~g~Segui la ~h~limousine~g~ di Candy. -[CR04_16:CRED01] -~n~ ~n~Kim Graham, Kerry Shaw, ~n~Tamara Carrion, Franceska Clemens, ~n~Navid Khonsari, Noelle Sadler, +[POR3_15:PORN3] +~r~Hai distrutto la limousine di Candy! -[CR04_17:CRED01] -~n~ ~n~Nicholas Mongomery, Anthony Macbain, ~n~Ryan Rayhill, Josh Slater, ~n~Carmelo Gaeta, Hikari Yokoyama, +[POR3_17:PORN3] +~g~Torna allo studio con il rullino. -[CR04_18:CRED01] -~n~ ~n~Chris Jobin, Michael Rothstein, ~n~Stacey Rachels, Jennifer Koontz, ~n~Dan Merrill, Ali Khonsari, +[POR3_19:PORN3] +~r~Hai finito il rullino! -[CR04_19:CRED01] -~n~ ~n~Ellen Rose, Chris Standal, ~n~Lorie Goodman, Neal Johnston, ~n~Son Garth, James Larsen, +[POR3_21:PORN3] +~g~Hai perso la limousine di Candy! -[CR04_20:CRED01] -~n~ ~n~Karl Weibel, Ramin Khonsari, ~n~Ed. Thomas Jr., Stanton Sargent, ~n~Oswald Greene, Audrey Amey, +[POR3_22:PORN3] +~g~L'hotel WR Chariot di fronte al balcone dovrebbe essere un luogo ideale per scattare le foto. -[CR04_21:CRED01] -~n~ ~n~Sanford Santacroce, Jeff Madrick, ~n~Ben Weaver, Andrea Kessler, ~n~CS Lee, Yoshi Amao, +[POR3_23:PORN3] +~g~C'è un ingresso laterale che ti permetterà di entrare nell'hotel. -[CR04_22:CRED01] -~n~ ~n~ Jackson Loo, Martha Morrison, ~n~Sarah Bloodsworth, Adam Deher, ~n~Billy Gonzalez +[POR3_08:PORN3] +Tieni premuto il ~h~~k~~PED_LOCK_TARGET~~w~ per ~h~mirare~w~ con la macchina fotografica. -[CR04_23:CRED01] -~n~ ~n~ ~n~ ~n~Additional Motion Graphics ~n~Maryam Parwana +[POR3_09:PORN3] +Tieni premuto il ~h~~k~~PED_LOCK_TARGET~~w~ per ~h~mirare~w~ con la macchina fotografica. -[CR04_24:CRED01] -~n~ ~n~ ~n~ ~n~Dialogue Recording & Mixing ~n~Nicholas Montgomery +[POR3_10:PORN3] +Premi il ~h~~k~~PED_SNIPER_ZOOM_IN~~w~ per ~h~zoomare~w~ con la macchina fotografica e il ~h~~k~~PED_SNIPER_ZOOM_OUT~~w~ per ~h~allargare il campo~w~. -[CR04_25:CRED01] -~n~ ~n~ ~n~ ~n~Foley Recording ~n~Bryan Scibinico +[POR3_11:PORN3] +Premi il ~h~~k~~PED_SNIPER_ZOOM_IN~~w~ per ~h~zoomare~w~ con la macchina fotografica e il ~h~~k~~PED_SNIPER_ZOOM_OUT~~w~ per ~h~allargare il campo~w~. -[CR04_26:CRED01] -~n~ ~n~ ~n~ ~n~Foley recorded at Dig It Studios +[POR3_12:PORN3] +Premi il ~h~~k~~PED_FIREWEAPON~~w~ per scattare una foto. -[CR04_27:CRED01] -~n~ ~n~ ~n~ ~n~Production Team ~n~Noelle Sadler, Eli Weissman, ~n~Kerry Shaw, John Zurhellen, ~n~Peter Adler, Anthony Carvalho, +[POR3_13:PORN3] +Premi il ~h~~k~~PED_FIREWEAPON~~w~ per scattare una foto. -[CR04_28:CRED01] -~n~ ~n~Phil Poli, Jaesun Celebre, ~n~Franceska Clemens, Anthony Litton +[POR3_14:PORN3] +Premi il ~h~~k~~PED_FIREWEAPON~~w~ per scattare una foto. -[CR04_29:CRED01] -~n~ ~n~ ~n~ ~n~Casting ~n~Judy Henderson and Associates +[POR3_20:PORN3] +~g~Se hai bisogno di un mezzo, usa lo ~h~Sparrow~g~ sul retro. -[CR04_30:CRED01] -~n~Motion Capture recorded at Perspective Studios +[POR3_16:PORN3] +~g~Hai bisogno di tre foto di qualità di Alex Shrub con Candy. -[CR05_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~RADIO +[POR3_24:PORN3] +FOTO SCATTATE: -[CR05_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ Banter, Talk Radio, Commercials and Imaging written by ~n~Dan Houser and Lazlow +{=================================== MISSION TABLE PORN4 ===================================} -[CR05_03:CRED01] -~n~ ~n~ ~n~ ~n~Production by ~n~Lazlow +[POR4_A:PORN4] +Mi dispiace, ma adesso proprio non riesco ad ingoiarlo. -[CR05_04:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~LCFR +[POR4_B:PORN4] +Oh EDDAI tesoro! -[CR05_05:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voices ~n~Smith Harrison, Karen Saltus +[POR4_C:PORN4] +È inalberato come un capodoglio, accidenti, -[CR05_06:CRED01] -~n~ ~n~ ~n~ ~n~Heartland Values with Nurse Bob ~n~Nurse Bob - Chuck Montgomery +[POR4_D:PORN4] +come fai a non farti coinvolgere dalla parte? -[CR05_07:CRED01] -~n~ ~n~ ~n~ ~n~Guests and Callers ~n~Ayana Osada, Nick Montgomery, ~n~Russell Lewis, Nick Born, ~n~Sean Macaluso, Kerry Shaw, +[POR4_E:PORN4] +Ma Stevie... -[CR05_08:CRED01] -~n~ ~n~Chad Johnson, Craig Conner, ~n~Mary Elizabeth, Rob Cross, ~n~Josh Bitney +[POR4_F:PORN4] +Come sta andando il mio regista? -[CR05_09:CRED01] -~n~ ~n~ ~n~ ~n~Electron Zone ~n~Steve - Ptolemy Slocum ~n~Bill - Michael Urichek +[POR4_G:PORN4] +Oh, accidenti. Lo scontro tra l'integrità artistica e -[CR05_10:CRED01] -~n~ ~n~ ~n~ ~n~Callers ~n~Alice Saltzman, Jeremy Wheaton, ~n~Ryan Rayhill, Maine Anderson, ~n~Patton Oswalt, Wil Wheaton, ~n~Anthony Cumia, Madena Parwana +[POR4_H:PORN4] +i sobbalzi e le pompanti azioni continua senza sosta. -[CR05_11:CRED01] -~n~ ~n~ ~n~ ~n~Breathing World ~n~Lee Chowder - Ashley Albert ~n~Crow - Gregg Martin +[POR4_I:PORN4] +E, prima che tu me lo chieda, sì, tutti e quattro i film saranno pronti per... -[CR05_12:CRED01] -~n~ ~n~ ~n~ ~n~Coq 'O' Vin ~n~Richard Goblin - Mike Shapiro +[POR4_J:PORN4] +Dolcezza, potresti PER FAVORE tenere l'anaconda nell'inquadratura, -[CR05_13:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voice ~n~Ben Krech +[POR4_K:PORN4] +mi costa più lei all'ora di te! -[CR05_14:CRED01] -~n~ ~n~ ~n~ ~n~Callers ~n~Franceska Clemins, Sarah Bloodsworth, ~n~Adam Deher, Martha Morrison, ~n~Carmelo Gaeta +[POR4_L:PORN4] +Oh, scusa Steve. -[CR05_15:CRED01] -~n~ ~n~ ~n~ ~n~Chatterbox ~n~Lazlow as himself +[POR4_M:PORN4] +Pensavo, abbiamo bisogno di qualche grossa acrobazia per promuovere il lancio. -[CR05_16:CRED01] -~n~ ~n~ ~n~ ~n~Callers ~n~Susan Lewis, Ben Weaver, ~n~Jacky Bam Bam, Ben Sparks, ~n~Deanna Moyer, Liezl Jacinto, +[POR4_N:PORN4] +Qualcosa che farà davvero impatto sulla città... ti viene in mente niente? -[CR05_17:CRED01] -~n~ ~n~Joshua Batista, Gregg Opie Hughes, ~n~Sondra James, Elizabeth Satterwhite +[POR4_O:PORN4] +Beh, nei vecchio tempi si facevano le feste di gala, -[CR06_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~HEAD RADIO +[POR4_P:PORN4] +attori, limousine, il cielo notturno illuminato dai riflettori... -[CR06_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Michael Hunt - Russ Mottla +[POR4_Q:PORN4] +Riflettori? Mi è venuta un'idea... -[CR06_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voices ~n~Jeff Berlin, Katelyn Hutchinson +[POR4_R:PORN4] +...sì, sì, sì. I vestiti pieni di lustrini, e le limousine, oh, le prime visioni... -[CR06_04:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Production ~n~Jeff Berlin +[POR4_S:PORN4] +Oh, sì signora, certo signora, -[CR06_05:CRED01] -~n~ ~n~ ~n~ ~n~"Train" ~n~Conor & Jay ~n~Written by Craig Conner & Julie Wemyss ~n~Produced by Craig Conner ~n~Guitars by Jon McCavish ~n~Vocals by Julie Wemyss and Craig Conner +[POR4_T:PORN4] +e la stampa, e gli sbarramenti di luci... -[CR06_06:CRED01] -~n~ ~n~ ~n~ ~n~"The One For Me" ~n~Cloud Nineteen ~n~Written & Produced by ~n~Will Morton ~n~Additional Lyrics by Paul Mackie ~n~Guitars by Allan Walker & Chris Morton ~n~Lead Vocals by Raff ~n~Backing Vocals by Paul Mackie & Raff +[POR4_01:PORN4] +~g~Raggiungi ~y~Downtown~g~ e posiziona i riflettori sopra l'edificio. -[CR06_07:CRED01] -~n~ ~n~ ~n~ ~n~"Take The Pain" ~n~Purser ~n~Written & Produced by ~n~Will Morton, Chris Morton ~n~Additional Lyrics by Paul Mackie ~n~Lead Vocals by Paul Mackie ~n~Additional Vocals by Will Morton +[POR4_02:PORN4] +~g~Avrai bisogno di una moto veloce per saltare da un tetto all'altro. La guardia della sorveglianza possiede una ~y~PCJ 600~g~... -[CR06_08:CRED01] -~n~ ~n~ ~n~ ~n~"Free Yourself" ~n~L-Marie featuring Raff ~n~Written & Produced by Craig Conner ~n~Vocals by L-Marie and Raff ~n~Backing Vocals by Craig Conner +[POR4_03:PORN4] +~g~Devi raggiungere i tetti degli edifici. Ci dovrebbe essere un ascensore in uno degli uffici ai piani superiori... -[CR06_09:CRED01] -~n~ ~n~ ~n~ ~n~"Drive" ~n~15 Ways ~n~Written & Produced by Colin Entwistle ~n~Vocals by Paul Mackie +[POR4_06:PORN4] +~g~Torna all'ufficio ai piani inferiori se vuoi accedere nuovamente ai tetti. -[CR06_10:CRED01] -~n~ ~n~ ~n~ ~n~"Welcome To The Real World" ~n~Rosco Stow ~n~Written & Produced by Craig Conner ~n~Guitars Written, Produced and Performed by Allan Walker ~n~Lead Vocals by Andy Dorrat ~n~Backing Vocals by Craig Conner, ~n~Anna Stuart and Kim Gurney +[POR4_07:PORN4] +~g~Avrai bisogno di una moto per saltare da un edificio all'altro. -[CR06_11:CRED01] -~n~ ~n~ ~n~ ~n~"Keep Dreaming" ~n~Vanilla Smoothie ~n~Written & Produced by ~n~Alastair MacGregor ~n~Guitars by Allan Walker ~n~Vocals by Fiona Stoddart +[POR4_08:PORN4] +~g~Lanciati attraverso la finestra per avviare il percorso. Avrai tempo fino alle 07:00 prima che diventi troppo luminoso per muoverti non visto. -[CR07_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~LIPS 106 +[POR4_09:PORN4] +~g~I bonus ti mostreranno il successivo edificio su cui saltare. -[CR07_02:CRED01] -~n~ ~n~ ~n~ ~n~DJs ~n~Cliff - Ed McMann ~n~Andee - Shelley Miller +[POR4_10:PORN4] +~r~È troppo tardi per arrivare in cima non visto. -[CR07_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voice ~n~Jonathan Hanst +[POR4_11:PORN4] +Ritorna alla scala se vuoi accedere nuovamente ai tetti. -[CR07_04:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Production ~n~Jonathan Hanst +[POR4_05:PORN4] +~g~Queste scale portano a un ufficio ai piani inferiori. -[CR07_05:CRED01] -~n~ ~n~ ~n~ ~n~"Funk In Time" ~n~Rudy La Fontaine ~n~Written & Produced by Jon McCavish ~n~Guitars by Julian Pais ~n~Vocals by Julian Pais +[POR_AS1:PORN4] +STUDIO CINEMATOGRAFICO COMPLETATO -[CR07_06:CRED01] -~n~ ~n~ ~n~ ~n~"Love Is The Feeling" ~n~Sawarr ~n~Written by Craig Conner & Julie Wemyss ~n~Produced by Craig Conner ~n~Vocals by Julie Wemyss +[POR_AS2:PORN4] +~g~L'Inter Global Films d'ora in poi genererà introiti per un massimo di ~1~$. Ricordati di recuperarli regolarmente. -[CR07_07:CRED01] -~n~ ~n~ ~n~ ~n~"Mine Until Monday" ~n~Sunshine Shine ~n~Written & Produced by Will Morton ~n~Additional Lyrics by Paul Mackie ~n~Vocals by Paul Mackie & Raff +{=================================== MISSION TABLE PROT1 ===================================} -[CR07_08:CRED01] -~n~ ~n~ ~n~ ~n~"Get Down" ~n~Credit Check ~n~Written & Produced by ~n~Alastair MacGregor ~n~Guitars by Martyn Livingstone ~n~Bass by Andy Wilson ~n~Vocals by Louise Ferrier +[PRO1_B:PROT1] +Non sopporto più questo aspetto. Tommy, che ne dici? E se mettessimo un bar... -[CR07_09:CRED01] -~n~ ~n~ ~n~ ~n~"Tonight" ~n~Cool Timers ~n~Written & Produced by Craig Conner ~n~Vocals by Julie Wemyss +[PRO1_D:PROT1] +Ascoltami, -[CR07_10:CRED01] -~n~ ~n~ ~n~ ~n~"Bassmatic" ~n~Nina Barry ~n~Written & Produced by Jon McCavish ~n~Vocals by Riz Maslen +[PRO1_E:PROT1] +è giunta l'ora di prendere in mano questa città. È tutto pronto per questo. -[CR07_11:CRED01] -~n~ ~n~ ~n~ ~n~"Into Something (C'mon Get Down)" ~n~The Jackstars ~n~Written & Produced By ~n~Craig Conner ~n~Vocals by Lucie Danti-Juan ~n~Backing vocals by ~n~Kevin Stacey & Craig Conner +[PRO1_F:PROT1] +Dobbiamo cominciare a impadronirci del territorio -[CR08_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~DOUBLE CLEF FM +[PRO1_G:PROT1] +e far sapere a Vice City che ci sono nuovi giocatori in città, mi segui? -[CR08_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Sergio Boccino - Robert Blumenfeld +[PRO1_I:PROT1] +Tommy, ciò di cui hai bisogno è una facciata legale, delle proprietà. A me ha sempre fatto comodo. -[CR08_03:CRED01] -~n~ ~n~ ~n~ ~n~Caller ~n~Gerald Cosgrove +[PRO1_J:PROT1] +Dobbiamo iniziare a mostrare i denti o tutto questo lavoro sarà stato vano. -[CR08_04:CRED01] -~n~ ~n~ ~n~ ~n~"Il Trovatore: Anvil Chorus" ~n~Composed by Giuseppe Verdi ~n~Performed by ~n~Nuremberg Symphonic Orchestra ~n~& Munich State Opera Choir ~n~Courtesy of Point Classics, LLC +[PRO1_K:PROT1] +I gruppi locali sanno che Diaz è morto e si rifiutano di pagare per la protezione! -[CR08_05:CRED01] -~n~ ~n~ ~n~ ~n~"Il Trovatore: Tacea la notte placida" ~n~Composed by Giuseppe Verdi ~n~Performed by ~n~Nuremberg Symphonic Orchestra & ~n~Munich State Opera Choir ~n~(Eva Illes, Soprano) ~n~Courtesy of Point Classics, LLC +[PRO1_L:PROT1] +Potremmo provare con la corruzione... -[CR08_06:CRED01] -~n~ ~n~ ~n~ ~n~"Nabucco: Chorus of the Hebrew Slaves" ~n~Composed by Giuseppe Verdi ~n~Performed by Philharmonia Slavonica ~n~Courtesy of Point Classics, LLC +[PRO1_M:PROT1] +Corruzione? A fanculo la corruzione! Ti mostrerò io come si fa a spaventarli. -[CR08_07:CRED01] -~n~ ~n~ ~n~ ~n~"Così fan tutte: È amore un ladroncello" ~n~Composed by Wolfgang Amadeus Mozart ~n~Performed by ~n~Bratislava Opera Soloists, ~n~Choir and Orchestra ~n~(Ida Kirilova "Dorabella") ~n~Courtesy of Point Classics, LLC +[PRO1_01:PROT1] +~g~Assali i negozi e fuggi: i proprietari chiederanno la tua protezione. -[CR08_08:CRED01] -~n~ ~n~ ~n~ ~n~"Marriage of Figaro: Overture" ~n~Composed by Wolfgang Amadeus Mozart ~n~Performed by ~n~London Philharmonic Orchestra ~n~Courtesy of Point Classics, LLC +[PRO1_03:PROT1] +~r~Si trattava di un assali e fuggi, non di un assali e bevi un caffè. -[CR08_09:CRED01] -~n~ ~n~ ~n~ ~n~"I Pagliacci: Vesti la giubba" ~n~Composed by Ruggiero Leoncavallo ~n~Performed by ~n~Nuremberg Symphonic Orchestra ~n~(José Maria Perez, Tenor) ~n~Courtesy of Point Classics, LLC +[PRO1_04:PROT1] +Tutti i miei beni, distrutti! -[CR09_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~RISE FM +[PRO1_05:PROT1] +Rovinato... ROVINATO! -[CR09_02:CRED01] -~n~ ~n~ ~n~ ~n~Engineered by Mike Callaghan +[PRO1_06:PROT1] +Maledizione, devo pagare la protezione! -[CR09_03:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Boy Sanchez - Oliver Vaquer +[PRO1_07:PROT1] +La mia meravigliosa vetrina! -[CR09_04:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voices ~n~DJ Andre, Lupus Thunder, ~n~Andi Hanley, Mat Ckillz, ~n~Couzin Ed, Lazlow, +[PRO1_08:PROT1] +Il mio negozio, il mio bellissimo negozio. -[CR09_05:CRED01] -~n~ ~n~Terry Donovan, Bill Brissette, ~n~Juan Aller, Ed Andrews, ~n~Xeni Jardin, Matthew Orr, ~n~Jeff Berlin +[PRO1_09:PROT1] +Vercetti, ricorda questo nome. -[CR09_06:CRED01] -~n~ ~n~ ~n~ ~n~"Sing It Back ~n~(Boris Musical Mix)" ~n~Moloko ~n~Written by M. Brydon, R. Murphy ~n~Published by Chrysalis Music (ASCAP) ~n~Remix and Additional Production by ~n~Boris Dlugosch ~n~(p) + © 1998 The Echo Label ~n~Courtesy of Chrysalis Music Limited +[PRO1_10:PROT1] +Adesso gestisco io questa città. IO! -[CR09_07:CRED01] -~n~ ~n~ ~n~ ~n~"Free" ~n~Ultra Nate ~n~Written by U. Nate, L. Springsteen, ~n~J. Ciafone ~n~Published by Warner/ Chappell Music/ BMG Music ~n~(p) + © 1997 Strictly Rhythm Records LLC ~n~Courtesy of Warner Strategic Marketing +[BUYP1:PROT1] +Non puoi comprare proprietà in certe aree della mappa. -[CR09_08:CRED01] -~n~ ~n~ ~n~ ~n~"I Believe" ~n~Happy Clappers ~n~Written by C. Scott, G. Ripley, M. Knotts, M. Topham ~n~Published by All Boys Music Ltd ~n~(p) + © 1994 C J Scott Productions ~n~Courtesy of C J Scott Productions +[BUYP2:PROT1] +Se vedi un'icona a forma di casa verde, puoi comprare quella proprietà. -[CR09_09:CRED01] -~n~ ~n~ ~n~ ~n~"House Music" ~n~Eddie Amador ~n~Written by Eddie Amador ~n~Published by ~n~Deep Dish Music ~n~(p) + © 1998 Yoshitoshi Records ~n~Courtesy of ~n~Deep Dish Recordings, Inc. ~n~by arrangement with ~n~Nasseri Music Business Solutions +[PRO1_N:PROT1] +Sarò di ritorno fra cinque minuti... -[CR09_10:CRED01] -~n~ ~n~ ~n~ ~n~"Feel What You Want" ~n~Kristine W ~n~Written by R. Dougan, R. Armstrong, ~n~K. Weitz ~n~Published by BMG Music/Weitz House Publishing (ASCAP)/ EMI Music Publishing ~n~(p) + © 1996 RCA/ BMG ~n~Courtesy of Sony BMG Entertainment +[PRO1_11:PROT1] +~g~Raggiungi il ~y~Mall North Point~g~ in ~y~Vice Point~g~. -[CR09_11:CRED01] -~n~ ~n~ ~n~ ~n~"Hideaway ~n~(Deep Dish Vocal Remix)" ~n~De'Lacy ~n~Written by K. Hedge, J. Milan ~n~Published by ~n~Warner-Tamerlane Publishing Corp ~n~Remix and Additional Production by ~n~Deep Dish ~n~(p) 1995 Easy Street Recordings Inc ~n~© 1998 Kickin Music Ltd ~n~Courtesy of Easy Street Recordings Inc. and Slip n' Slide Records +[PRO1_12:PROT1] +~g~Distruggi le vetrine di tutti i negozi e i proprietari saranno pronti a chiederti protezione. -[CR09_12:CRED01] -~n~ ~n~ ~n~ ~n~"Spin Spin Sugar ~n~(Armand's Dark Garage Mix)" ~n~Sneaker Pimps ~n~Written by I. Pickering, L. Coverdale Howe, C. Corner ~n~Remix and Additional Production by ~n~Armand Van Helden ~n~Published by BMG Songs, Inc ~n~(p) + © 1997 Clean Up Records Ltd ~n~Courtesy of EMI Music / ~n~One Little Indian, Ltd +[PRO1_A:PROT1] +Oh, dobbiamo ridecorare questo posto, deve sembrare più vecchio. -[CR09_13:CRED01] -~n~ ~n~ ~n~ ~n~"Plastic Dreams" ~n~Jaydee ~n~Written by R. Albers ~n~Published by TBM Holland ~n~(p) 1992 R & S Records ~n~© Robin Albers ~n~Courtesy of Robin "Jaydee" Albers +[PRO1_C:PROT1] +Sei il mio avvocato, Rosenberg, non il mio arredatore. Chiaro? -[CR09_14:CRED01] -~n~ ~n~ ~n~ ~n~"Altered States" ~n~Ron Trent ~n~Written by R. Trent ~n~Published by ~n~High Fashion Music/ Nanada Music ~n~(p) + © 1993 Warehouse ~n~Djax-Up Beats ~n~Courtesy of High Fashion Music/ ~n~Djax-Up Beats +[BUYP3:PROT1] +Posizionati all'interno del simbolo e premi il tasto ~h~~k~~PED_ANSWER_PHONE~~w~ per acquistare la proprietà. -[CR09_15:CRED01] -~n~ ~n~ ~n~ ~n~"There Will Come A Day (Half Tab Dub)" ~n~The Absolute featuring Suzanne Palmer ~n~Written by M. Pichiotti, C.J. Snider ~n~Published by Much Noyse Music/ ~n~Hoobini Music (ASCAP) ~n~(p) + © 1995 Mark Productions, Inc ~n~Courtesy of Mark Productions, Inc +[PRO1_13:PROT1] +~g~Hai cinque minuti per distruggerli tutti. -[CR09_16:CRED01] -~n~ ~n~ ~n~ ~n~"Positive Education" ~n~Slam ~n~Written by S. McMillan, O. Meikle, ~n~G. Gibbons, J. Muotone ~n~Published by EMI Music Publishing ~n~(p) + © 1997 Soma Recordings Ltd ~n~Courtesy of Soma Recordings Ltd +{=================================== MISSION TABLE PROT2 ===================================} -[CR09_17:CRED01] -~n~ ~n~ ~n~ ~n~"Flash" ~n~Green Velvet ~n~Written by C. Jones ~n~Published by Curtis A. Jones Music (ASCAP) ~n~(p) 1995 Relief Records ~n~© 2000 Warner Bros. Records and N.E.W.S. Records and Relief Records ~n~Courtesy of Warner Strategic Marketing, N.E.W.S. Records, Relief Records +[PRO2_A:PROT2] +Qual è il problema? -[CR09_18:CRED01] -~n~ ~n~ ~n~ ~n~"Circus Bells (Hardfloor Remix)" ~n~Robert Armani ~n~Written by R. Armani ~n~Published by ~n~High Fashion Music/ Nanada Music ~n~(p) + © 1993 Warehouse/ ~n~Djax-Up Beats ~n~Courtesy of High Fashion Music/ ~n~Djax-Up Beats +[PRO2_B:PROT2] +Alcuni bar si rifiutano di pagare. -[CR09_19:CRED01] -~n~ ~n~ ~n~ ~n~"Higher State Of Consciousness" ~n~Wink ~n~Written by J. Wink ~n~Published by Strictly Rhythm Publishing, Inc. (ASCAP) / Warner/Chappell Music / Wink Inc. (ASCAP) / EMI Music Publishing ~n~(p) + © 1995 Strictly Rhythm Records LLC ~n~Courtesy of Warner Strategic Marketing +[PRO2_C:PROT2] +Dicono di essere protetti da una gang locale di malviventi. -[CR10_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~RADIO DEL MUNDO +[PRO2_D:PROT2] +Ma non preoccuparti, Tommy, me ne occupo io. -[CR10_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Panjit Gavaskar - Hajaz Akram +[PRO2_E:PROT2] +E tu te ne occupi in questo modo? -[CR10_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voice ~n~Jessica Wachsman +[PRO2_F:PROT2] +Voi due, alzate il culo... -[CR10_04:CRED01] -~n~ ~n~ ~n~ ~n~"Raghupati (Folk Tune)" ~n~Ananda Shankar ~n~Arranged by A. Shankar, Lewinson, Hassilev ~n~Published by Warner Chappell Inc ~n~(p) + © 1970 Reprise Records for the U.S. and WEA International Inc ~n~Courtesy of Warner Strategic Marketing +[PRO2_G:PROT2] +Andiamo. -[CR10_05:CRED01] -~n~ ~n~ ~n~ ~n~"Dum Maro Dum" ~n~Asha Bhosle ~n~Written by RD Burman, Anand Bakshi ~n~Published by Saregama India Ltd ~n~(p) + © 1971 Saregama India Ltd ~n~Courtesy of Saregama India Ltd +[PRO2_01:PROT2] +~g~Fai fuori le guardie che sorvegliano il Front Page Bar e scopri chi le ha rifornite. -[CR10_06:CRED01] -~n~ ~n~ ~n~ ~n~"Neeve Nanna (Only You Were Mine)" ~n~Vijaya Anand ~n~Written by Vijaya Anand ~n~Published by Shake Boom! (ASCAP)/ ~n~Luaka Bop Inc ~n~(p) 1988 Lahari/Audiovision ~n~© 1992 Sire Records Company ~n~Courtesy of ~n~Luaka Bop Records +[PRO2_10:PROT2] +~g~Altri due sono riusciti a scappare. Rintracciali e finisci questa storia. -[CR10_07:CRED01] -~n~ ~n~ ~n~ ~n~"Kidda" ~n~Natacha Atlas ~n~Written by N. Atlas, J. Reynolds, J. Adams ~n~Published by Warner Chappell Music Ltd ~n~(p) + © 1997 Nation Records Ltd/ ~n~Beggars Banquet Records Ltd ~n~Courtesy of Nation Records Ltd/ ~n~Beggars Banquet Records Ltd +[PRO2_11:PROT2] +Entra in macchina, idiota. -[CR10_08:CRED01] -~n~ ~n~ ~n~ ~n~"Hebeena Hebeena" ~n~Farid El Atrache ~n~Written by Barakat, Atrache ~n~Published by Voices Of Lebanon ~n~(p) + © 1974 Voices Of Lebanon ~n~Courtesy of EMI Music/ EMI Music Arabia +[PRO2_02:PROT2] +La tua protezione ha bisogno di più protezione. -[CR10_09:CRED01] -~n~ ~n~ ~n~ ~n~"Aini Bet Ref" ~n~Ahmed Mneimneh ~n~Written by A. Alishaan ~n~Published by D. Dersahakian (ASCAP) ~n~(p) + © Voice of Stars & ~n~Lys Records ~n~Courtesy of Voice of Stars & ~n~Lys Records +[PRO2_03:PROT2] +Maledizione, non ancora! Non ne voglio sapere! -[CR10_10:CRED01] -~n~ ~n~ ~n~ ~n~"Im Nin'Alu" ~n~Ofra Haza ~n~Traditional, Arranged by I. Ashdot, B. Nagari ~n~Published by Blue Lake Music ~n~ (p) + © 1988 Sire Records Company ~n~Courtesy of Warner Strategic Marketing +[PRO2_04:PROT2] +Questi idioti operano per la DBP Security, con sede dietro all'isolato. -[CR10_11:CRED01] -~n~ ~n~ ~n~ ~n~"Ballaa Tsoubou Hal Kahwa" ~n~Samira Tawfic ~n~Written by R. Al Khylani, J. Al A'ss ~n~Published by Copyright Control ~n~(p) + © Voices Of Lebanon ~n~Courtesy of EMI Music/ EMI Music Arabia +[PRO2_05:PROT2] +Vedete di risolverla per i fatti vostri. -[CR11_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~K-JAH +[PRO2_06:PROT2] +Ci si vede più tardi. -[CR11_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Natalee Walsh Davis - Pascale Armand +[PRO2_07:PROT2] +Sì, sì, certo. -[CR11_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voices ~n~Karl Weibel, Pat McKay +[PRO2_08:PROT2] +~g~La DBP Security presto scoprirà le tue intenzioni: attacca prima che si ritiri. -[CR11_04:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Production ~n~Jay Wright Productions +[PRO2_09:PROT2] +~g~Vai a parlare con il proprietario del Front Page. -[CR11_05:CRED01] -~n~ ~n~ ~n~ ~n~"Pick a Sound" ~n~Selah Collins, Ruddy Ranks, Redeye ~n~Written by S. Collins, H. Burke, ~n~E. Donaldson ~n~Published by Copyright Control/ MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records +{=================================== MISSION TABLE PROT3 ===================================} -[CR11_06:CRED01] -~n~ ~n~ ~n~ ~n~"What a Wonderful Feeling" ~n~Errol Bellot, Ruddy Ranks, Redeye ~n~Written by E. Bellot, H. Burke, ~n~E. Donaldson ~n~Published by MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records +[PRO3_A:PROT3] +Cretino! Ma a cosa pensavi? -[CR11_07:CRED01] -~n~ "Watch How the People Dancing" ~n~Kenny Knots, Ruddy Ranks, Redeye ~n~Written by K. Wright ~n~Published by Jetstar ~n~Courtesy of Honest Jons Records +[PRO3_B:PROT3] +Ti rendi conto che cosa hai combinato? -[CR11_08:CRED01] -~n~ ~n~ ~n~ ~n~"Lean Boot" ~n~Richie Davis, Ruddy Ranks, Redeye ~n~Written by R. Davis, H. Burke, ~n~E. Donaldson ~n~Published by Westbury Music/ MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records +[PRO3_C:PROT3] +Potremmo essere tutti rovinati! -[CR11_09:CRED01] -~n~ ~n~ ~n~ ~n~"Ready For the Dancehall Tonight" ~n~Peter Bouncer, Ruddy Ranks, Redeye ~n~Written by Peter McKenzie, H. Burke, ~n~E. Donaldson ~n~Published by MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records +[PRO3_D:PROT3] +Il timer deve essersi inceppato. -[CR11_10:CRED01] -~n~ ~n~ ~n~ ~n~"You Ha Fe Cool" ~n~Richie Davis, Ruddy Ranks, Redeye ~n~Written by R. Davis, H. Burke, ~n~E. Donaldson. ~n~Published by Westbury Music/MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records +[PRO3_E:PROT3] +Quel posto era stato minato per saltare come una fabbrica di fuochi d'artificio. -[CR11_11:CRED01] -~n~ ~n~ ~n~ ~n~"Ring My Number" ~n~Kenny Knots, Ruddy Ranks, Redeye ~n~Written by Kenneth Wright, H. Burke, ~n~E. Donaldson. ~n~Published by MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records +[PRO3_F:PROT3] +Ma qualcuno ha informato i poliziotti... -[CR11_12:CRED01] -~n~ ~n~ ~n~ ~n~"Run Come Call Me" ~n~Kenny Knots, Ruddy Ranks, Redeye ~n~Written by Kenneth Wright, H. Burke, ~n~E. Donaldson ~n~Published by MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records +[PRO3_G:PROT3] +Qual è il problema, ragazzi? -[CR12_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~THE LIBERTY JAM +[PRO3_H:PROT3] +Mike doveva dar fuoco a un locale del Mall, -[CR12_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~DJ Clue as himself +[PRO3_I:PROT3] +ma ha fatto casino con i fusibili e adesso la polizia sta indagando. -[CR12_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voices ~n~Jay Wright, Tom Yankowski, Chris Mercado, Vanessa Grullon +[PRO3_J:PROT3] +Dobbiamo preparare la nostra roba e andarcene da qui! -[CR12_04:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Production ~n~Jay Wright Productions +[PRO3_K:PROT3] +Rilassatevi, tutti e due: fatemi pensare per un attimo! -[CR12_05:CRED01] -~n~ ~n~ ~n~ ~n~"All I Need" ~n~Method Man ~n~Written by C. Smith, R. Diggs ~n~Published by Sony BMG Music ~n~(p) + © 1994 Def Jam Recordings ~n~Courtesy of Def Jam Recordings/ UME +[PRO3_L:PROT3] +Tommy Vercetti non scappa con la coda fra le gambe. -[CR12_06:CRED01] -~n~ ~n~ ~n~ ~n~"Shook Ones Pt. II" ~n~Mobb Deep ~n~Written by A. Johnson, K. Muchita ~n~Published by ~n~BMG Songs Inc. (ASCAP) ~n~(p) + © 1995 BMG Music ~n~Courtesy of RCA Records by arrangement with Sony BMG Ent +[PRO3_M:PROT3] +I poliziotti passeranno al setaccio l'intero edificio, giusto? -[CR12_07:CRED01] -~n~ ~n~ ~n~ ~n~"Incarcerated Scarface" ~n~Raekwon ~n~Written by R. Diggs, C. Woods, A. Tilman ~n~Published by ~n~Careers-BMG Music Publishing Inc./ ~n~Wu Tang Publishing (BMI)/ ~n~Bridgeport Music ~n~(p) + © 1995 BMG Music +[PRO3_N:PROT3] +Ma tutto ciò richiede tempo. -[CR12_08:CRED01] -Courtesy of RCA Records by arrangement with Sony BMG Ent ~n~This track contains a sample of "You're Getting A Little Too Smart" as performed by The Detroit Emeralds. Courtesy of Westbound Records. Used by permission. All rights reserved +[PRO3_O:PROT3] +Dobbiamo entrare e dar fuoco noi stessi al locale. -[CR12_09:CRED01] -~n~ ~n~ ~n~ ~n~"N.O.R.E." ~n~Noreaga ~n~Written by V. Santiago, J. Olivier, ~n~S. Barnes ~n~Published by Suite 1202 Music/ Jose Luis Gotcha Music (BMI)/ Slamuwell Productions/ Jelly's Jam LLC (ASCAP)/ ~n~12 & Under Music/ +[PRO3_P:PROT3] +Sì, ma... -[CR12_10:CRED01] -Jumping Bean Songs LLC (BMI) ~n~(p) + © 1998 Penalty Recordings ~n~Courtesy of Warner Strategic Marketing +[PRO3_Q:PROT3] +Solo un poliziotto potrebbe avvicinarsi a meno di un chilometro dal luogo! -[CR12_11:CRED01] -~n~ ~n~ ~n~ ~n~"Shut 'Em Down (Remix)" ~n~Onyx featuring Noreaga & Big Pun ~n~Written by F. Scruggs, K. Jones, T. Taylor, E. Hinson, E. Simmons ~n~Published by Universal Music/ ~n~Let Me Show You Music/ ~n~Jelly Jams Music/ +[PRO3_R:PROT3] +Allora andiamo come poliziotti. -[CR12_12:CRED01] -III Posse Music/ Ill Hill Billy'z Music/ Warner-Tamerlane Music ~n~(p) + © 1998 Rush Associated Labels Recordings ~n~Courtesy of Universal Music Enterprises +[PRO3_S:PROT3] +Recupereremo delle uniformi... e avremo bisogno di una volante. -[CR12_13:CRED01] -~n~ ~n~ ~n~ ~n~"Beware" ~n~Big Pun ~n~Written by C. Rios, J. Tineo ~n~Published by Let Me Show You Music/ ~n~Joe Cartegena Music (ASCAP), ~n~Administered by Jelly Jams Music (BMI)/ ~n~P.H.D. Music (ASCAP) +[PRO3_T:PROT3] +Tutto questo grazie a te, Mike. -[CR12_14:CRED01] -(p) + © 1998 Loud Records LLC ~n~Courtesy of Columbia Records by arrangement with Sony BMG Ent +[PRO3_U:PROT3] +Mi dispiace. -[CR12_15:CRED01] -~n~ ~n~ ~n~ ~n~"Twinz (Deep Cover 98)" ~n~Big Pun ~n~Written by C. Rios, J. Cartegena, ~n~C. Brodus, A. Young, C. Wolfe ~n~Published by Let Me Show You Music/ ~n~Joe Cartegena Music (ASCAP)/ ~n~Jelly Jams Music (BMI)/ ~n~Sony Tunes Inc. (ASCAP) +[PRO3_V:PROT3] +Ho capito. -[CR12_16:CRED01] -~n~(p) + © 1998 Loud Records LLC ~n~Courtesy of Columbia Records by arrangement with Sony BMG Ent ~n~This track contains a sample of "Deep Cover" as performed by Dr. Dre. Courtesy of Solar Records. Used by permission. All rights reserved +[PRO3_W:PROT3] +Quello che dobbiamo fare è attirare i poliziotti con un gestaccio, -[CR12_17:CRED01] -~n~ ~n~ ~n~ ~n~"Get At Me Dog" ~n~DMX featuring Sheek of The Lox ~n~Written by E. Simmons, D. Blackman, ~n~A. Fields, S. Taylor ~n~Published by Universal Music Publishing/ EMI April Music/ ~n~Sony ATV Tunes +[PRO3_X:PROT3] +Metterli con le spalle al muro -[CR12_18:CRED01] -~n~(p) + © 1998 Rush Associated Labels Recordings ~n~Courtesy of Universal Music Enterprises +[PRO3_Y:PROT3] +e sopraffarli. -[CR12_19:CRED01] -~n~ ~n~ ~n~ ~n~"Ruff Ryders Anthem (Remix)" ~n~DMX featuring DJ Clue, Jadakiss, Styles, Drag-On & Eve ~n~Written by J. Phillips, M.J. Smalls, E. Shaw, K. Ifill, E. Simmons, K. Dean, E. Jeffers ~n~Published by Universal Music Publishing/ EMI Music Publishing +[PRO3_Z:PROT3] +Ottimo piano, andiamo! -[CR12_20:CRED01] -(p) + © 1998 Roc-a-Fella Records ~n~Courtesy of Universal Music Enterprises +[PRO3_A1:PROT3] +Bene. -[CR12_21:CRED01] -~n~ ~n~ ~n~ ~n~"Do What You Feel" ~n~Redman featuring Method Man ~n~Written by P. Michael, R. Noble, C. Smith ~n~Published by Careers BMG/ Sony ATV Tunes/ Famous Music ~n~(p) + © 1996 Def Jam ~n~Courtesy of Universal Music Enterprises +[PRO3_01:PROT3] +OK Lance, attira l'attenzione dei poliziotti! -[CR12_22:CRED01] -~n~ ~n~ ~n~ ~n~"Chain Gang Freestyle" ~n~The Lox & Black Rob ~n~Written by Frierson, Phillips, Styles, Jacobs, Ross, Shaw ~n~Published by EMI Music Publishing ~n~Courtesy of Bad Boy Records +[PRO3_02:PROT3] +~g~Prendi la macchina della polizia e vai a posizionare la bomba nel Tarbrush Café dentro al Mall. -[CR12_23:CRED01] -~n~ ~n~ ~n~ ~n~"Chest2chest Freestyle" ~n~The Lox ~n~Written by Phillips, Styles, Jacobs, Shaw, Barnes, Lemay, Montgomery ~n~Published by Taggie Music (BMI)/ ~n~Universal Polygram Int'l. (ASCAP)/ ~n~EMI Music Publishing ~n~Courtesy of Bad Boy Records +[PRO3_03:PROT3] +~g~Hai lasciato Lance indietro, torna a prenderlo. -[CR12_24:CRED01] -This track contains a sample of "Next Level" as performed by Showbiz & AG. Courtesy of Universal Music Enterprises. Used by permission. All rights reserved +[PRO3_04:PROT3] +~g~Andiamo. -[CR13_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~MSX 98 +[PRO3_05:PROT3] +~r~Hai ucciso Lance! -[CR13_02:CRED01] -~n~ ~n~ ~n~ ~n~MC ~n~Codebreaker as himself +[PRO3_07:PROT3] +~g~È saltata la vostra copertura. Muoviti a piazzare la bomba! -[CR13_03:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Timecode +[PRO3_09:PROT3] +Legali e imbavagliali! -[CR13_04:CRED01] -~n~ ~n~ ~n~ ~n~Station Production ~n~Timecode +[PRO3_10:PROT3] +Oooh. Mi calza a pennello! -[CR13_05:CRED01] -~n~ ~n~ ~n~ ~n~"Renegade Snares" ~n~Omni Trio ~n~Written, Produced & Engineered by ~n~R. Haigh ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1993 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[PRO3_11:PROT3] +Un po' stretto sul pacco... -[CR13_06:CRED01] -~n~ ~n~ ~n~ ~n~"Terrorist" ~n~Renegade ~n~Written, Produced & Engineered by ~n~A. Dookith ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[PRO3_12:PROT3] +Oh sì, hai ragione, anche a me! -[CR13_07:CRED01] -~n~ ~n~ ~n~ ~n~"Finest Illusion (Legal Mix)" ~n~Foul Play ~n~Written, Produced & Engineered by ~n~J. Morrow, S. Bradshaw, ~n~S. Gurley ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1993 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[PRO3_13:PROT3] +Tranquillo fratello: nessun poliziotto guida così male! -[CR13_08:CRED01] -~n~ ~n~ ~n~ ~n~"Living For the Future (FBD Project Remix)" ~n~Omni Trio ~n~Written, Produced & Engineered by ~n~R. Haigh ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[PRO3_14:PROT3] +Ricorda: sorridi agli altri poliziotti! -[CR13_09:CRED01] -~n~ ~n~ ~n~ ~n~"Stay Calm (Foul Play Remix)" ~n~DJ Pulse ~n~Written, Produced & Engineered by ~n~A. Brown ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[PRO3_15:PROT3] +Ehi agente, bel distintivo, bel distintivo. -[CR13_10:CRED01] -~n~ ~n~ ~n~ ~n~"Disturbance (Tango Remix)" ~n~Hyper-On Experience ~n~Written, Produced & Engineered by ~n~A. Banks, D. Demierre ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[PRO3_16:PROT3] +Un po' più sciolto, Lance. -[CR13_11:CRED01] -~n~ ~n~ ~n~ ~n~"Cold Fresh Air" ~n~Higher Sense ~n~Written, Produced & Engineered by ~n~A. Miles, DJ Rhythm ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[PRO3_17:PROT3] +OK, i timer sono pronti, 5 secondi alla scadenza. -[CR13_12:CRED01] -~n~ ~n~ ~n~ ~n~"Living For the Future" ~n~Omni Trio ~n~Written, Produced & Engineered by ~n~R. Haigh ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[PRO3_18:PROT3] +5 secondi? Dobbiamo scappare di corsa da qua! -[CR13_13:CRED01] -~n~ ~n~ ~n~ ~n~"Thru The Vibe (2 on 1 Mix)" ~n~Omni Trio ~n~Written, Produced & Engineered by ~n~R. Haigh ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[PRO3_19:PROT3] +Questo deve davvero averli irritati. -[CR13_14:CRED01] -~n~ ~n~ ~n~ ~n~"The Helicopter Tune" ~n~Deep Blue ~n~Written, Produced & Engineered by ~n~S. O'Keefe ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[PRO3_20:PROT3] +~g~Fatevi inseguire dai due poliziotti nel garage. -[CR13_15:CRED01] -~n~ ~n~ ~n~ ~n~"Dred Bass" ~n~Dead Dred ~n~Written, Produced & Engineered by ~n~W. Smith, L. Smith ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd +[PRO3_21:PROT3] +~g~Ottieni un livello di sospetto così i poliziotti ti inseguiranno fino al garage. -[CR14_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~FLASHBACK FM +[PRO3_22:PROT3] +~g~La porta del garage è bloccata! Liberala così potrai chiuderla. -[CR14_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Reni Wassulmaier - Barbara Rosenblatt +[PRO3_23:PROT3] +~g~Cammina sul segnalino per piazzare la bomba. -[CR14_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voice ~n~Mike Shapiro +[PRO3_24:PROT3] +~g~Allontanati dal Café! -[CR14_04:CRED01] -~n~ ~n~ ~n~ ~n~"First Hand Experience ~n~In Second Hand Love" ~n~Giorgio ~n~Written by G. Moroder, P. Bellotte ~n~Published by WB Music Corp. (ASCAP) ~n~(p) + © 1977 Giorgio Moroder ~n~Courtesy of Giorgio Moroder +[PRO_AS1:PROT3] +CIRCOLO DI PROTEZIONE COMPLETATO -[CR14_05:CRED01] -~n~ ~n~ ~n~ ~n~"I Wanna Rock You" ~n~Giorgio ~n~Written by G. Moroder, H. Faltermeyer, ~n~K. Forsey ~n~Published by WB Music Corp. (ASCAP) ~n~(p) + © 1979 Giorgio Moroder ~n~Courtesy of Giorgio Moroder +[PRO_AS2:PROT3] +~g~La proprietà di Vercetti d'ora in poi genererà introiti per un massimo di ~1~$. Ricordati di recuperarli regolarmente. -[CR14_06:CRED01] -~n~ ~n~ ~n~ ~n~"E=MC2" ~n~Giorgio ~n~Written by G. Moroder, H. Faltermeyer, ~n~P. Bellotte ~n~Published by WB Music Corp. (ASCAP) ~n~(p) + © 1979 Giorgio Moroder ~n~Courtesy of Giorgio Moroder +[PRO3_08:PROT3] +~g~Torna alla ~h~proprietà di Vercetti~g~ su ~h~Starfish Island~g~. -[CR14_07:CRED01] -~n~ ~n~ ~n~ ~n~"Chase" ~n~Giorgio Moroder ~n~Written by G. Moroder ~n~Published by Warner/ Chappell Music ~n~(p) + © 1978 Casablanca Films/ ~n~Columbia Pictures ~n~Courtesy of Sony Pictures Entertainment +{=================================== MISSION TABLE RACES ===================================} -[CR14_08:CRED01] -~n~ ~n~ ~n~ ~n~"I'm Left, You're Right, She's Gone" ~n~Giorgio ~n~Written by G. Moroder, P. Bellotte ~n~Published by WB Music Corp. (ASCAP) ~n~(p) + © 1977 Giorgio Moroder ~n~Courtesy of Giorgio Moroder +[RACES_2:RACES] +~g~Hai bisogno di un veicolo per partecipare, non è mica una maratona! -[CR14_09:CRED01] -~n~ ~n~ ~n~ ~n~"From Here To Eternity" ~n~Giorgio ~n~Written by G. Moroder, P. Bellotte ~n~Published by WB Music Corp. (ASCAP) ~n~(p) + © 1977 Casablanca Records ~n~Courtesy of Universal Music Enterprises +[RACES_3:RACES] +3..2..1.. VIA VIA VIA! -[CR15_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~COMMERCIAL VOICES +[RACES_8:RACES] +~r~Non hai vinto la corsa! -[CR15_02:CRED01] -~n~ ~n~ ~n~ ~n~Alex Anthony, Anouchka Benson, ~n~Audrey Amey, Bill Smith, ~n~Billy Gonzalez, Brian Thomas, +[RACES00:RACES] +Corsa ~1~: -[CR15_03:CRED01] -~n~ ~n~Chris Jobin, Chris Silvestro, ~n~Craig Blair, Dan Houser, ~n~Dan Merrill, Ed Thomas, +[RACES01:RACES] +Terminal Velocity -[CR15_04:CRED01] -~n~ ~n~Ethan Abeles, Garth Johnston, ~n~Gregg Martin, Gregory Johnson, ~n~Hikari Yokoyama, James Ferrante, +[RACES02:RACES] +Ocean Drive -[CR15_05:CRED01] -~n~ ~n~James Larson, Jay Capozello, ~n~Jayson Gladstone, Jeff Berlin, ~n~Jen Sweeney, Jessica Wachsman, +[RACES03:RACES] +Border Run -[CR15_06:CRED01] -~n~ ~n~ JJ Adler, Jonathan Hanst, ~n~Joshua Batista, Karen Saltus, ~n~Koji Nonoyami, Lance Williams, +[RACES04:RACES] +Capital Cruise -[CR15_07:CRED01] -~n~ ~n~Lazlow, Lynne Horton, ~n~Michael Nathan, Mike Ferrante Jr., ~n~Chris Ferrante, Mike Shapiro, +[RACES05:RACES] +Tour! -[CR15_08:CRED01] -~n~ ~n~Natalya Wilson, Noelle Sadler, ~n~Phil Mikkelson, Ron Reeve, ~n~Smith Harrison, Stacy Rachels, +[RACES06:RACES] +V.C. Endurance -[CR15_09:CRED01] -~n~ ~n~ Steve Carlesi, Julie Wemyss, ~n~Kim Gurney +[RACES07:RACES] +Costo d'ingresso: ~1~$ -[CR16_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~CUTSCENE MUSIC +[RACES08:RACES] +Tempo migliore: ~1~:~1~ -[CR16_02:CRED01] -~n~ ~n~ ~n~ ~n~"Japanese Geisha" ~n~Sonia Slany ~n~Written by Sonia Slany ~n~Published by West One Music ~n~Courtesy of APM Music, LLC +[RACES09:RACES] +Miglior risultato: PRIMO -[CR16_03:CRED01] -~n~ ~n~ ~n~ ~n~"The Heist" ~n~Bugz in the Attic ~n~Written by K. Tatham ~n~Published by Copyright Control ~n~(p) 2005 Bugz In The Attic ~n~Courtesy of Bugz In The Attic ~n~www.bugzintheattic.co.uk +[RACES10:RACES] +Miglior risultato: SECONDO -[CR16_04:CRED01] -~n~ ~n~ ~n~ ~n~"A Dark March" ~n~Danger Mouse ~n~Written by Danger Mouse ~n~Published by ~n~Underground Animals (ASCAP) +[RACES11:RACES] +Miglior risultato: TERZO -[CR17_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ROCKSTAR NYC PUBLISHING TEAM +[RACES12:RACES] +Miglior risultato: QUARTO -[CR17_02:CRED01] -~n~ ~n~ ~n~ ~n~Terry Donovan, Jenefer Gross, ~n~Jennifer Kolbe, Devin Winterbottom, ~n~Adam Tedman, Michael Elkind, +[RACES13:RACES] +Lunghezza tracciato: ~1~.~1~ km -[CR17_03:CRED01] -~n~ ~n~Paul Yeates, Hosi Simon, ~n~Daniel Einzig, Marlene Yamaguchi, ~n~Gauri Khindaria, Stanton Sarjeant, +[RACES15:RACES] +Miglior tempo: ND -[CR17_04:CRED01] -~n~ ~n~Jordan Chew, Ryan Rayhill, ~n~Devin Bennett, Todd Zuniga, ~n~Thomas O'Donnell, Maria Tabia, +[RACES16:RACES] +Miglior risultato: ND -[CR17_05:CRED01] -~n~ ~n~Anthony Carvalho, Lyonel Tollemache, ~n~John Notarfrancesco, Jerry Luna, ~n~Stuart Petri, Stephen Walsh, +[RACES18:RACES] +HAI VINTO: ~1~$ -[CR17_06:CRED01] -~n~ ~n~Michael Carnevale, Andrea Borzuku, ~n~John Schuhmann, Alice Chuang, ~n~Mike Torok, Mayumi Kobayashi, +[RACES19:RACES] +Non puoi permetterti di partecipare a questa gara. -[CR17_07:CRED01] -~n~ ~n~Elizabeth Satterwhite, Bruce Dugan, ~n~Eli Weissman, Phil Poli, ~n~Jaesun Celebre, Russell Lewis, +[RACES22:RACES] +Tempo migliore: ~1~:0~1~ -[CR17_08:CRED01] -~n~ ~n~Sean Mackenzie, Megan Henretta, ~n~Angus Wong, Kristine Severson +[RACES23:RACES] +Lunghezza tracciato: ~1~.~1~ miglia -[CR17_09:CRED01] -~n~ ~n~ ~n~ ~n~Cover Art ~n~Steven Olds, Stephen Bliss, ~n~Anthony Macbain +[RACES_1:RACES] +~g~Recupera un veicolo veloce e raggiungi la griglia di partenza. -[CR17_10:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ROCKSTAR LONDON PD +[RACEHLP:RACES] +~w~Premi il ~h~~k~~PED_SPRINT~~w~ per avviare la corsa selezionata. ~w~Premi il ~h~~k~~VEHICLE_ENTER_EXIT~~w~ per uscire. -[CR17_11:CRED01] -~n~ ~n~ ~n~ ~n~ Chris Madgwick, Chris Wood, ~n~Daimion Pinnock, David McCarthy, ~n~Graham Ainsley, Jurgen Mol, +{=================================== MISSION TABLE RCHELI1 ===================================} -[CR17_12:CRED01] -~n~ ~n~ Laura Battistuzzi, Maike Köhler, ~n~Shino Hori, Lucien King +[WRECKED:RCHELI1] +~r~Il veicolo è a pezzi! -[CR18_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ROCKSTAR LINCOLN +[RCH1_4:RCHELI1] +Punti di controllo rimanenti: -[CR18_02:CRED01] -~n~ ~n~ ~n~ ~n~QA Manager ~n~Mark Lloyd +[RCH1_6:RCHELI1] +~g~Usa l'elicottero radiocomandato per attraversare i punti di controllo nella zona dell'aeroporto. -[CR18_03:CRED01] -~n~ ~n~ ~n~ ~n~Deputy QA Manager ~n~Tim Bates +[RCH1_7:RCHELI1] +~g~In totale ci sono 20 punti di controllo. -[CR18_04:CRED01] -~n~ ~n~ ~n~ ~n~QA Supervisor ~n~Kevin Hobson +[RCH1_12:RCHELI1] +~r~L'elicottero radiocomandato si sta allontanando dal raggio d'azione! -[CR18_05:CRED01] -~n~ ~n~ ~n~ ~n~Lead Tester ~n~Eddie Gibson ~n~ ~n~ ~n~ ~n~Secondary Lead Tester ~n~Mike Bennett +[RCH1_13:RCHELI1] +~r~L'elicottero radiocomandato è fuori portata! -[CR18_06:CRED01] -~n~ ~n~ ~n~ ~n~Testers ~n~Jonathan Stones, Mike Emeny, ~n~Andy Mason, Lee Johnson, ~n~Carl Young, Matthew Lunnon, ~n~Dan Goddard, Steve McGagh, ~n~Craig Reeve, Joby Luckett +[RCH1_8:RCHELI1] { reVC update } +~g~Se desideri interrompere la missione, premi il ~h~~k~~VEHICLE_FIREWEAPON~~g~ per far esplodere l'elicottero. -[CR18_07:CRED01] -~n~ ~n~ ~n~ ~n~Localization Team ~n~ ~n~ ~n~ ~n~Localization Supervisor ~n~Chris Welsh +{=================================== MISSION TABLE RCPLNE1 ===================================} -[CR18_08:CRED01] -~n~ ~n~ ~n~ ~n~Testers ~n~Antoine Cabrol, Dominic Garcia, ~n~Paolo Ceccotti, Ferruccio Cinquemani, ~n~Nicolas Klimoff, Jesús Pérez Rosales ~n~ ~n~ ~n~ ~n~IT Support ~n~Nick McVey +[RCPL1_4:RCPLNE1] +~g~Sfida nella GARA A TAPPE altri 3 aerei radiocomandati. -[CR19_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~SPECIAL THANKS +[RCPL1_5:RCPLNE1] +~g~Vola attraverso i punti di controllo in Vice City. -[CR19_02:CRED01] -~n~ ~n~ ~n~ ~n~Scooter, Ross Wallace, ~n~Steve Taylor, Kevin Wong, ~n~Kevin Bolt, John Haime, +[RCPL1_6:RCPLNE1] { reVC update } +~g~Se desideri interrompere la missione, premi il ~h~~k~~VEHICLE_FIREWEAPON~~g~ per far esplodere l'aereo. -[CR19_03:CRED01] -~n~ ~n~Dave Watson, Thomas French, ~n~James Arthur, Martin Connor, ~n~Brendon McDonald, Julie Wemyss, +[RCPL1_8:RCPLNE1] +~g~L'aereo radiocomandato è quasi fuori portata! -[CR19_04:CRED01] -~n~ ~n~Raff Crolla, James Duffy, ~n~Kim Gurney, Andrew Ness, ~n~Andy Brooks (Gearbox), Alan Mcgregor, +[RCPL1_9:RCPLNE1] +~r~L'aereo radiocomandato è fuori portata! -[CR19_05:CRED01] -~n~ ~n~Chris McCallum, Fred, Narns, ~n~Alan, Taruki, Red, ~n~Big Foot, Rita Liberator, ~n~Elliot Torres +{=================================== MISSION TABLE RCRACE1 ===================================} -[CR19_06:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~THANKS +[RCR1_4:RCRACE1] +Giri rimanenti: -[CR19_07:CRED01] -~n~ ~n~ ~n~ ~n~Deborah Mannis-Gardner ~n~and Mark Schwartz. ~n~Randy Acker, Karen Adams, ~n~Mark Ainley, Robin Albers, +[RCR1_1:RCRACE1] +~g~Sfida in una gara a tappe altre 3 macchine radiocomandate. -[CR19_08:CRED01] -~n~ ~n~Duncan Baker, Armen Boladian, ~n~Tanya Bridges, Richard Brown, ~n~Matt Brookman, Elena Byington, +[RCR1_2:RCRACE1] +~g~Per vincere, completa per primo due giri del tracciato! -[CR19_09:CRED01] -~n~ ~n~Ed Butts, Rob Cairns, ~n~Mike Callaghan, Joseph Carlone, ~n~Kevin Carson, Jason Chin, +[RCR1_6:RCRACE1] +~g~La macchina radiocomandata è quasi fuori portata! -[CR19_10:CRED01] -~n~ ~n~Allison Cipris, Alimah Deen, ~n~James Ellis, Helen English, ~n~Nasko Fejza, Scott Gardner, +[RCR1_7:RCRACE1] +~r~La macchina radiocomandata è fuori portata! -[CR19_11:CRED01] -~n~ ~n~Jochem Gerrits, ~n~Laurie Goldstein Thomas Golubic, ~n~Nick Guarino, Jon Handle, ~n~Millie Hysu, Robert Jo, +{=================================== MISSION TABLE ROCK1 ===================================} -[CR19_12:CRED01] -~n~ ~n~Paul Johannes, Gavin Johnson, ~n~Curtis A. Jones, Jennifer Justice, ~n~Rod Kotler, Diana La Pointe, +[RBM1_A:ROCK1] +AllllllllRrrighttt! -[CR19_13:CRED01] -~n~ ~n~Michael Lau, Jim Long, ~n~Alex De Maegd, John Massa, ~n~Kendall Minter, Steve Morgan, +[RBM1_B:ROCK1] +Brillante, davvero brillante! -[CR19_14:CRED01] -~n~ ~n~Giorgio Moroder, Suzanne Moss, ~n~Melissa Munana, Kirin Murphy, ~n~Kurosh Nasseri, +[RBM1_D:ROCK1] +Ehi, hai già incontrato i Love Fist? -[CR19_15:CRED01] -~n~ ~n~Gwen Niles Sean Ogden ~n~aka DJ Nightshade, ~n~Robin Orlowski, Jonathan Palmer, ~n~Tanvi Patel, Jane Peterer, +[RBM1_E:ROCK1] +No, non ancora, ma mi piace molto la vostra musica. -[CR19_16:CRED01] -~n~ ~n~Mark Picchiotti, Rob Playford, ~n~Dan Quan, R. Ramnarayan, ~n~Mary Beth Roberts, ~n~Virgil Roberts, Lindsay Rodman, +[RBM1_F:ROCK1] +Lascia che ti presenti la band. -[CR19_17:CRED01] -~n~ ~n~Jim Romano, Craig Roseberry, ~n~Gerry Rosenblatt, RZA, ~n~Ali Samii, Alan Scholefield, +[RBM1_G:ROCK1] +Questo è P, Percy, Dick. Willy è nel cesso! Jezz è invece il tipo che hai visto prima nella cabina di registrazione. -[CR19_18:CRED01] -~n~ ~n~Christopher Scott, Suzi Scott, ~n~Fredro Scruggs, Jennefer Showalter, ~n~Alan Skiena, Saskia Slegers, +[RBM1_H:ROCK1] +Ragazzi, vorrei presentarvi un mio carissimo amico. -[CR19_19:CRED01] -~n~ ~n~Fran Spero, Lem Springsteen, ~n~David Steel, Jane Ventom, ~n~Christian Wiseman, Debi Wylde, +[RBM1_I:ROCK1] +Si chiama Tommy. Ci conosciamo da tempo. -[CR19_20:CRED01] -~n~ ~n~Donna Young, Richie Zito +[RBM1_J:ROCK1] +Ciao amico. + +[RBM1_K:ROCK1] +E, ehm, qual era il tuo nome? + +[RBM1_L:ROCK1] +Eddai Jezz che lo sai, + +[RBM1_M:ROCK1] +non fare questi scherzetti con me, amico, + +[RBM1_N:ROCK1] +sono troppo furbo per cascarci, tesoro! + +[RBM1_O:ROCK1] +Vedi, la situazione Tom è che i ragazzi hanno bisogno di aiuto. + +[RBM1_P:ROCK1] +Non hanno i contatti giusti da questa parte, del tipo 'come sta tuo padre'. + +[RBM1_Q:ROCK1] +Abbiamo bisogno di droga, amico! + +[RBM1_R:ROCK1] +Dobbiamo fare un po' di casino alla Love Fist, capito? + +[RBM1_S:ROCK1] +Beh, questa è Vice City. Qual è il problema? + +[RBM1_U:ROCK1] +Love Juice, sì! + +[RBM1_V:ROCK1] +Love Juice? + +[RBM1_W:ROCK1] +Sì, due parti di broda, una parte di polvere, cinque bombe effervescenti e un litro di petrolio. + +[RBM1_X:ROCK1] +Ci puoi aiutare, amico? + +[RBM1_Y:ROCK1] +Beh, significherebbe molto per i ragazzi. + +[RBM1_Z:ROCK1] +Lo farai per loro, vero? + +[RBM1_7:ROCK1] +~r~Non hai portato la Love Juice in tempo! + +[RBM1_8:ROCK1] +~r~Mercedes è morta! + +[RBM1_10:ROCK1] +~r~Idiota! Hai distrutto la merce! + +[RBM1_13:ROCK1] +~g~Porta la 'Love Juice' e Mercedes alla band prima che salgano sul palco. + +[RBM1_15:ROCK1] +~r~Hai perso lo spacciatore, i soldi e la droga! + +[RBM1_17:ROCK1] +~g~Uccidi lo spacciatore e recupera la droga! + +[MOB_07A:ROCK1] +Ehi amico, ai ragazzi non dispiacerebbe un po' di compagnia, se capisci cosa intendo... + +[MOB_07B:ROCK1] +Conosco la ragazza giusta. + +[ROK1_5:ROCK1] +Ehi Mercedes! + +[ROK1_6:ROCK1] +Ciao Tommy, come stai? + +[ROK1_7:ROCK1] +Non male. Senti, ti piacerebbe intrattenere i Love Fist? + +[ROK1_8:ROCK1] +OK, ma per questo favore voglio una ricompensa... + +[RBM1_14:ROCK1] +~g~Hai bisogno di una macchina o di una moto! + +[RBM1_1:ROCK1] +~g~Vai a prendere Mercedes al suo appartamento. + +[RBM1_12:ROCK1] +~g~Raccogli gli ingredienti per la 'Love Juice' dallo spacciatore. + +[ROK1_2:ROCK1] +NON NECESSARIO + +[ROK1_3:ROCK1] +NON NECESSARIO + +[MERC_39:ROCK1] +Ci vediamo più tardi, tesoro. + +[RBM1_C:ROCK1] +Ehi, Tommy! Sono felice che ce tu l'abbia fatta. + +[ROK1_1A:ROCK1] +Stai cercando qualcosa di speciale? Ho proprio ciò che ti serve! + +[ROK1_9:ROCK1] +Grazie per i soldi, idiota! + +[RBM1_T:ROCK1] +Abbiamo bisogno di Love Juice, hai presente? + +{=================================== MISSION TABLE ROCK2 ===================================} + +[RBM2_A:ROCK2] +Tommy, amico, sono felice di vederti! + +[RBM2_B:ROCK2] +Cosa succede? + +[RBM2_C:ROCK2] +Brutte vibrazioni, Tommy... + +[RBM2_E:ROCK2] +C'è questo tipo, lo conosciamo appena, ma lui la sa lunga su di noi. + +[RBM2_F:ROCK2] +Come questo tipo. Sa tutto su di noi. + +[RBM2_G:ROCK2] +Sa che Willy ama la biancheria intima femminile, eh! + +[RBM2_H:ROCK2] +O che a Percy piacciono i Duran Duran! + +[RBM2_K:ROCK2] +Sì, come nella storia dei missili, esatto. Ma ascolta, questo bastardo... + +[RBM2_L:ROCK2] +cioè, sì, questo tipo, vuole vedere i Love Fist morti. + +[RBM2_M:ROCK2] +Morti, Tommy. + +[RBM2_N:ROCK2] +Love Fist morti. Lo sai come si dice, i buoni muoiono giovani. + +[RBM2_O:ROCK2] +Ma Tommy, devi salvare i Love Fist! + +[RBM2_P:ROCK2] +Abbiamo un concerto fra due ore e credo... + +[RBM2_Q:ROCK2] +I ragazzi credono che il maniaco stia architettando qualcosa di losco. + +[RBM2_1:ROCK2] +~g~Guida la limousine al concerto e cerca di attirare allo scoperto lo psicopatico. + +[RBM2_2:ROCK2] +~r~Hai distrutto l'auto della band! + +[RBM2_3:ROCK2] +~g~Vai al concerto! + +[RBM2_4:ROCK2] +~g~Becca lo psicopatico! Non farlo scappare! + +[RBM2_5:ROCK2] +~r~Lo hai perso, idiota! + +[RBM2_7:ROCK2] +~r~I fan sono stati attaccati: lo psicopatico non si farà vivo! + +[RBM2_8:ROCK2] +~r~Le guardie della sorveglianza sono state attaccate: lo psicopatico non si farà vivo! + +[PSYCH_1:ROCK2] +Vedrò i Love Fist bruciare! + +[PSYCH_2:ROCK2] +I Love Fist hanno rovinato la mia vita! + +[RBM2_I:ROCK2] +Sta zitto, idiota. Solo perché a Jezz piacciono le pecore. + +[RBM2_R:ROCK2] +Ma sta' zitto! + +[RBM2_D:ROCK2] +Certo, niente scherzi, è roba forte, davvero forte sai? + +[RBM2_J:ROCK2] +È una questione di passione, sai? + +{=================================== MISSION TABLE ROCK3 ===================================} + +[RBM3_A:ROCK3] +Tommy! Tommy! Tommy amico, lo psicopatico è tornato! + +[RBM3_B:ROCK3] +Che succede? + +[RBM3_C:ROCK3] +Quello psicopatico non vuole lasciar stare i Love Fist! + +[RBM3_D:ROCK3] +Non lo hai ucciso, amico. E adesso è tornato. + +[RBM3_E:ROCK3] +Sì, sì, sì e il problema è che... + +[RBM3_F:ROCK3] +Il problema è che abbiamo bisogno di qualcuno di cui ci fidiamo per guidare la limousine, + +[RBM3_G:ROCK3] +poiché il pazzo continua a minacciarci! + +[RBM3_I:ROCK3] +Stiamo letteralmente cadendo a pezzi. + +[RBM3_J:ROCK3] +OK ragazzi, calmatevi. Me ne occuperò io. + +[RBM3_K:ROCK3] +Generalmente non perdo tempo a portare in giro un gruppo di ubriaconi scozzesi bisessuali, + +[RBM3_L:ROCK3] +ma, nel vostro caso, farò un'eccezione. + +[ROK3_03:ROCK3] +Conviene fare un giro più lungo. + +[ROK3_04:ROCK3] +Ehi Tommy, cambia la stazione. + +[ROK3_08:ROCK3] +Mi sto annoiando di tutto questo. + +[ROK3_09:ROCK3] +Tieni premuto il maledetto pedale! + +[ROK3_61:ROCK3] +Dobbiamo trovare la bomba! + +[ROK3_28:ROCK3] +Suonerò il basso all'inferno. + +[ROK3_30:ROCK3] +Qualcuno faccia qualcosa. + +[ROK3_32:ROCK3] +OK, osso duro, fai qualcosa tu allora. + +[ROK3_34:ROCK3] +Willy, potresti succhiare la broda con una cannuccia. + +[ROK3_37:ROCK3] +Passa una cannuccia a Willy! + +[ROK3_41:ROCK3] +Quale filo, Tommy? + +[ROK3_42:ROCK3] +Quello verde. + +[ROK3_43:ROCK3] +Non c'è un filo verde! Questo forse è verde... + +[ROK3_44:ROCK3] +Qualcuno di questi fili ti sembra verde? + +[ROK3_49:ROCK3] +Ti ho tenuto con me per anni. + +[ROK3_51:ROCK3] +Una ragazzina isterica. + +[ROK3_52:ROCK3] +Sì. + +[ROK3_53:ROCK3] +Taci e taglia un filo. + +[ROK3_54:ROCK3] +Quale filo? + +[ROK3_55:ROCK3] +Questo qua... + +[ROK3_56:ROCK3] +NO! + +[ROK3_57:ROCK3] +Oddio, siamo vivi. Non siamo esplosi, amico. Tommy, bel lavoro. Rock and roll, ragazzi. + +[ROK3_58:ROCK3] +Non abbiamo uno spettacolo a cui andare? Del casino da fare? Fans di cui abusare? + +[ROK3_59:ROCK3] +LOVE FIST! + +[ROK3_60:ROCK3] +Hai finito con quella bottiglia? + +[RBM3_4:ROCK3] +~r~Hai ucciso i Love Fist! + +[RBM3_6:ROCK3] +DETONAZIONE: + +[RBM3_1:ROCK3] +~g~Trasporta i Love Fist al concerto. + +[RBM3_2:ROCK3] +Mentre la bomba è innescata, esploderà se cercherai di lasciare la macchina... + +[RBM3_3:ROCK3] +Se la barra di detonazione si riempie completamente, la bomba esploderà. + +[RBM3_8:ROCK3] +Più velocemente guidi, più lentamente si riempirà. + +[RBM3_7:ROCK3] +~g~BOMBA DISINNESCATA! + +[ROK3_6A:ROCK3] +~g~Love Fist. Avete finito di inquinare l'etere. + +[ROK3_6B:ROCK3] +~g~Vi ho dato la possibilità di essere amici. Adesso vi darò la possibilità di morire. + +[ROK3_62:ROCK3] +Per cui abbiamo pensato di mostrarti il nostro Tempio del Rock. + +[ROK3_63:ROCK3] +Per percepire il furore alla Love Fist! + +[ROK3_64:ROCK3] +Ascolta come parli, amico. Si tratta di carta pesta e adesivo. + +[ROK3_65:ROCK3] +Ehi, ragazzi, questo è il tempio e noi siamo i sacerdoti. + +[ROK3_66:ROCK3] +Beh, se i ragazzi amano i loro sacerdoti a pezzi e mezzi sordi, + +[ROK3_67:ROCK3] +chi sono per discutere? + +[ROK3_68:ROCK3] +Oddio, si è rovinato nuovamente il nastro. + +[ROK3_69:ROCK3] +Se andiamo avanti così, dovremo suonare dal vivo. + +[ROK3_70:ROCK3] +Oooh merda! La pancia... + +[ROK3_74:ROCK3] +Ah guarda: che cos'è? Ehi Tommy, metti su questo nastro. + +[ROK3_01:ROCK3] +Finalmente, amico: è l'ora di un bel drink. + +[ROK3_02:ROCK3] +Il concerto è a cento metri lungo la strada. + +[ROK3_05:ROCK3] +Mi rimbambisco se non agito la testa. + +[ROK3_07:ROCK3] +Tommy, amico, devi salvare la band! + +[ROK3_29:ROCK3] +Tommy, continua a guidare senza rallentare! + +[ROK3_31:ROCK3] +Bella: 'Qualcuno faccia qualcosa'. Ma che idiozia è questa? Ho conosciuto froci più coraggiosi. + +[ROK3_33:ROCK3] +Ascolta, sono un musicista. Non ho la minima idea di come disarmare una bomba. + +[ROK3_35:ROCK3] +Sì, mi è giunta voce che sei bravo in queste cose. + +[ROK3_38:ROCK3] +Una cannuccia? Questo è il furgone da tour dei Love Fist! + +[ROK3_39:ROCK3] +Dove diavolo la trovo una cannuccia, amico? + +[ROK3_46:ROCK3] +Avrei dovuto scaricarti quando ne ho avuto la possibilità. + +[ROK3_47:ROCK3] +Capitalista. + +[ROK3_48:ROCK3] +Schiavo dalla gloria. + +[ROK3_73:ROCK3] +Jezz sta riproducendo il nastro. + +[RBM3_9:ROCK3] +Se ti fermi o guidi lentamente, la barra di detonazione aumenterà. + +[ROK3_50:ROCK3] +Sta zitto. Sei un idiota. + +[ROK3_36:ROCK3] +Ehi, ero completamente fuori di testa quella notte, e voi lo sapete! + +[RBM3_H:ROCK3] +Mi sto cagando addosso, amico. Voglio la mamma! + +[ROK3_45:ROCK3] +La fine imminente mi fa vedere tutto verde. + +[ROK3_6C:ROCK3] +~g~Rallenta e la limousine esploderà, insieme ai vostri GROSSI CULI PELOSI! + +[ROK3_71:ROCK3] +Dobbiamo andare avanti con quello che abbiamo. Grazie ancora Tommy. Cioè, sai cosa intendo, ciao! + +[ROK3_1:ROCK3] +Alla fine è giunta l'ora di un meritato bicchierino. Lo spettacolo si tiene a circa cento metri lungo la strada. + +[ROK3_2:ROCK3] +Conviene fare un giro più lungo. Ehi Tommy, cambia la stazione. + +[ROK3_3:ROCK3] +Sì Tommy, mi rimbambisco se non agito la testa. Ehi guarda, cos'è questo? Ehi Tommy, metti su questa cassetta. + +[ROK3_4:ROCK3] +Love Fist. Avete finito di inquinare l'etere. Vi ho dato la possibilità di essere amici. + +[ROK3_5:ROCK3] +Adesso vi darò la possibilità di morire. Se rallentate, la vostra limousine esploderà, insieme ai vostri GROSSI CULI PELOSI! + +[ROK3_6:ROCK3] +Tommy, devi salvare la band! Mi sto annoiando di tutto questo. Tieni premuto il maledetto pedale! + +[ROK3_7:ROCK3] +Dobbiamo trovare la bomba! Perché? Non possiamo guidare tutto il giorno? È vero, c'è un sacco di roba da bere... + +[ROK3_8:ROCK3] +La bomba non sarà nel motore? Dovremmo fermarci per prenderla! Moriremo tutti quanti! Credo che mi ubriacherò! + +[ROK3_9:ROCK3] +Ehi, c'è una coda da rispettare, amico! La risposta non è nel minibar! Spostati! + +[ROK3_10:ROCK3] +Ehi, dalla bottiglia di vodka escono un sacco di fili! Non è vodka, quella è BRODA! + +[ROK3_11:ROCK3] +WAAAAAAGGGHHHH!!! Ed è predisposta per esplodere! WAAAAAAAAAAAAGGGHHHHHHHH!!! + +[ROK3_12:ROCK3] +Lo dicevano che l'alcol mi avrebbe fatto fuori... L'ho visto in televisione, devi tagliare uno dei fili. Quale? Non lo so, amico. + +[ROK3_13:ROCK3] +Non ne ho idea. Willy, dimmi qualcosa. Suonerò il basso all'inferno. + +[ROK3_14:ROCK3] +Tommy, continua a guidare senza rallentare! Qualcuno faccia qualcosa. Bella! + +[ROK3_15:ROCK3] +'Qualcuno faccia qualcosa'. Ma che idiozia è questa? Ho conosciuto froci più coraggiosi. OK, osso duro, fai qualcosa tu allora. + +[ROK3_16:ROCK3] +Ascolta, io sono un musicista. Non ho la minima idea di come disarmare una bomba. Willy, potresti succhiare la broda con una cannuccia. + +[ROK3_17:ROCK3] +Sì, mi è giunta voce che sei bravo in queste cose. Ehi, ero completamente fuori di testa quella notte, e voi lo sapete! + +[ROK3_18:ROCK3] +Passa una cannuccia a Willy! Una cannuccia? Questo è il furgone da tour di Love Fist! + +[ROK3_19:ROCK3] +Dove diavolo la trovo una cannuccia, non so se mi spiego? Quale filo, Tommy? Quello verde. Non c'è un filo verde! + +[ROK3_20:ROCK3] +Questo forse è verde... Qualcuno di questi fili ti sembra verde? + +[ROK3_21:ROCK3] +Ih no! La fine imminente mi fa vedere tutto verde! Avrei dovuto scaricarti quando ne ho avuto la possibilità. + +[ROK3_22:ROCK3] +Accecato dalla gloria. Capitalista. Ti ho tenuto con me per anni. Sta zitto. Sei un idiota. + +[ROK3_23:ROCK3] +Una ragazzina isterica. Sì. Taci e taglia un filo. Quale filo? Questo qua... + +[ROK3_24:ROCK3] +NO! Oddio, siamo vivi. Non siamo esplosi, amico. + +[ROK3_25:ROCK3] +Tommy, bel lavoro. Rock and roll, ragazzi. Non abbiamo uno spettacolo a cui andare? + +[ROK3_26:ROCK3] +Del casino da fare? Fans di cui abusare? LOVE FIST! + +[ROK3_27:ROCK3] +Hai finito con quella bottiglia? + +{=================================== MISSION TABLE SERG1 ===================================} + +[TEX1_A:SERG1] +Vieni a metterti qui vicino a me, figliolo. + +[TEX1_B:SERG1] +Diamine, mio padre diceva sempre 'A caval donato non si guarda in bocca' ed effettivamente non lo ha mai fatto. + +[TEX1_C:SERG1] +Vuoi un goccio di sano Kentucky? + +[TEX1_D:SERG1] +No, grazie. + +[TEX1_E:SERG1] +Sei uno dalla testa lucida, mi piace. + +[TEX1_F:SERG1] +Ora, il business dei terreni non ha niente a che fare con quello che dicono i giornali. + +[TEX1_G:SERG1] +Si tratta solo di polvere! E la volontà di possederla! Mi segui, figliolo? + +[TEX1_H:SERG1] +Sì, certo. + +[TEX1_J:SERG1] +Tu mi sembri la persona giusta per convincerlo. + +[TEX1_K:SERG1] +La persuasione è il mio forte. + +[TEX1_L:SERG1] +Bene. Lo troverai al circolo sportivo, presso il campo da golf. + +[TEX1_M:SERG1] +Non permettono di entrare con le armi, per cui le sue guardie del corpo non saranno armate. + +[TEX1_N:SERG1] +Vai e riempilo di santissime mazzate. + +[TEX1_O:SERG1] +Prendi, ti ho iscritto al club, inoltre, credo proprio avrai bisogno di abiti più adeguati. + +[TEX1_2:SERG1] +~g~Raggiungi il club di golf Leaf Links. + +[TEX1_0:SERG1] +~g~Il bersaglio si sta allenando a golf: assicurati che sia la sua ultima partita. + +[TEX1_3:SERG1] +Chi è questo tipo? Ragazzi, occupatevene voi. + +[TEX1_6:SERG1] +Bel culo bimba! + +[TEX1_7:SERG1] +Ma sono io? + +[TEX1_I:SERG1] +Bene, c'è un tenace bastardo che non si decide a vendere. + +[TEX1_8:SERG1] +Ogni volta che entri su un cart da golf, ottieni automaticamente una mazza da golf, sempre se lo spazio per l'arma corpo a corpo è disponibile. + +[TEX1_9:SERG1] +Prendilo! + +[TEX1_10:SERG1] +Uccidi lo psicopatico! + +[TEX1_1:SERG1] +~g~Recupera degli abiti da golf presso Jocksport's. + +{=================================== MISSION TABLE SERG2 ===================================} + +[TEX_2A:SERG2] +~g~Eccellente! Ti hanno visto! + +[TEX_2B:SERG2] +~r~Pazzo! La gente deve essere TESTIMONE di un attacco da parte di un Cubano! + +[TEX_2C:SERG2] +~g~Vai a recuperare dei vestiti con i colori della gang dei Cubani da Rafael's! + +[TEX_2D:SERG2] +~g~Adesso metti fuori gioco il capo della gang degli Haitiani presso l'impresa di pompe funebri Romero's. + +[TEX2_A:SERG2] +Tommy, questo è Donald Love. Donald, questo è Tommy Vercetti, + +[TEX2_B:SERG2] +l'ultimo cowboy arrivato da queste parti. + +[TEX2_C:SERG2] +Yeh... uh... + +[TEX2_D:SERG2] +Donald, sta zitto e ascoltami, potresti imparare qualcosa. + +[TEX2_E:SERG2] +Adesso, niente fa calare i prezzi dei terreni come una bella guerra tra gang rivali. + +[TEX2_F:SERG2] +Eccetto, forse, un disastro, come una piaga biblica o qualcosa del genere. + +[TEX2_G:SERG2] +Ma per il caso in questione mi sembra un po' troppo. + +[TEX2_H:SERG2] +Capisci, brutto idiota quattr'occhi? + +[TEX2_I:SERG2] +Recentemente è morto un capo gang degli Haitiani e, a quanto sembra, sono stati i Cubani. + +[TEX2_J:SERG2] +Togliamo loro qualsiasi dubbio, allora! Vestiti da ombre Cubano + +[TEX2_K:SERG2] +e vai a disturbare il funerale. Fai un bel casino e dattela a gambe. + +[TEX2_L:SERG2] +Hai capito, Donald? + +[TEX2_M:SERG2] +Questo dovrebbe mettere il coyote nel pollaio, vero? + +[TEX2_N:SERG2] +Dopodiché dovremo solo attendere e veder crollare i prezzi. + +[TEXEXIT:SERG2] +~g~Vattene da Little Haiti! + +{=================================== MISSION TABLE SERG3 ===================================} + +[TEX3_A:SERG3] +Guarda qua, figliolo. Ho un problema e sono certo tu possa darmi una mano. + +[TEX3_B:SERG3] +Non sono un geometra. + +[TEX3_C:SERG3] +No, mi riferivo principalmente alle tue doti di demolitore. + +[TEX3_D:SERG3] +Ecco la faccenda: questo è il progetto approvato, e questo, + +[TEX3_E:SERG3] +questo è il terreno che stiamo seguendo. + +[TEX3_F:SERG3] +Stai cercando di dirmi che questo nuovo isolato di uffici è nel posto sbagliato. + +[TEX3_G:SERG3] +Capisci al volo. + +[TEX3_H:SERG3] +Adesso devo allontanarmi per un po' dalla città... + +[TEX3_I:SERG3] +...e se la costruzione di quegli uffici dovesse subire un improvviso e insormontabile problema strutturale, beh, allora... + +[TEX3_J:SERG3] +come ogni civile e ragionevole individuo, ti sentiresti obbligato a intervenire + +[TEX3_K:SERG3] +per favorire il ringiovanimento di un'area così importante della città? + +[TEX3_L:SERG3] +Dove posso ordinare altra gente come te? + +[TEX3_1:SERG3] +~g~Utilizza l'elicottero radiocomandato per trasportare le bombe nelle quattro aree bersaglio dell'edificio. + +[TEX3_2:SERG3] +~g~Devi posizionare una bomba su ogni bersaglio. Puoi piazzare l'esplosivo in qualsiasi ordine. + +[TEX3_5:SERG3] +~g~Se fai cadere una bomba senza successo, potrai raccoglierla nuovamente e riprovare. + +[TEX3_7:SERG3] +~g~Dovrai piazzare tutti gli esplosivi rimanenti in 7 minuti! + +[TEX3_8:SERG3] +~g~Hai mancato il bersaglio! Raccogli la bomba e riprova! + +[TEX3_10:SERG3] +~g~Fai cadere la bomba sul bersaglio. + +[TEX3_11:SERG3] +Bersagli rimanenti: + +[TEX3_17:SERG3] +~r~Il tempo è scaduto: non sei riuscito a demolire l'edificio! + +[TEX3_18:SERG3] +~r~L'elicottero radiocomandato è stato distrutto! Come farai adesso a trasportare le bombe? + +[TEX3_19:SERG3] +~r~Hai fatto cadere la bomba in acqua! Hai bisogno di tutte le 4 bombe per demolire il cantiere! + +[TEX3_20:SERG3] +~g~L'elicottero radiocomandato è quasi fuori portata. Torna indietro al cantiere e completa il lavoro! + +[TEX3_21:SERG3] +~r~L'elicottero radiocomandato è fuori portata! + +[TEX3_24:SERG3] +Premi il ~h~~k~~VEHICLE_LOOKLEFT~~w~ per ruotare l'elicottero in senso antiorario. + +[TEX3_25:SERG3] +Premi il ~h~~k~~VEHICLE_LOOKLEFT~~w~ per ruotare l'elicottero in senso orario. + +[TEX3_27:SERG3] +~g~Le scale centrali ti permetteranno di accedere a tutti i piani dell'edificio. + +[TEX3_31:SERG3] +~r~Hai distrutto il van contenente le bombe e l'elicottero radiocomandato! + +[TEX3_32:SERG3] +Puoi ~h~guardare indietro~w~ premendo ~h~simultaneamente ~k~~VEHICLE_LOOKLEFT~ e ~k~~VEHICLE_LOOKRIGHT~~w~. + +[TEX3_4:SERG3] { reVC update } +~g~Per sganciare una bomba, premi il ~h~~k~~VEHICLE_FIREWEAPON~~g~. + +[TEX3_29:SERG3] { reVC update } +Per sganciare una bomba, premi il ~h~~k~~VEHICLE_FIREWEAPON~~w~. + +[TEX3_26:SERG3] +Premi il ~h~~k~~VEHICLE_BRAKE~~w~ per ridurre la velocità del rotore dell'elicottero in modo da farlo abbassare. + +[TEX3_22:SERG3] +Premi il ~h~~k~~VEHICLE_ACCELERATE~~w~ per aumentare la velocità del rotore dell'elicottero in modo da ~h~farlo alzare. + +[TEX3_16:SERG3] +~g~Raggiungi il van ~w~TOPFUN~g~ presso il cantiere edile da demolire. + +[TEX3_33:SERG3] +Una volta raccolta una bomba, il radar mostrerà la pozione del bersaglio rispetto all'elicottero radiocomandato. + +[TEX3_34:SERG3] +Un ~h~triangolo verso l'alto~w~ indica che il bersaglio si trova ~h~più in alto~w~ dell'elicottero. + +[TEX3_35:SERG3] +Un ~h~triangolo verso il basso~w~ indica che il bersaglio si trova ~h~più in basso~w~ dell'elicottero. + +[TEX3_36:SERG3] +Un ~h~quadrato~w~ indica che il bersaglio si trova alla ~h~stessa altezza~w~ dell'elicottero. + +[TEX3_6:SERG3] +~g~Una volta raccolta la prima bomba, comincerà il conto alla rovescia. + +[TEX3_28:SERG3] +Per ~h~raccogliere una bomba~w~, avvicinaci l'elicottero radiocomandato. L'elicottero può trasportare una sola bomba alla volta. + +[TEX3_30:SERG3] +Per raccogliere una bomba, avvicinaci l'elicottero radiocomandato. L'elicottero può trasportare una sola bomba alla volta. + +[TEX3_12:SERG3] +~g~Bomba posizionata! Ancora 3 bersagli! Torna indietro e recupera un'altra bomba. + +[TEX3_13:SERG3] +~g~Bomba posizionata! Ancora 2 bersagli! Torna indietro e recupera un'altra bomba. + +[TEX3_14:SERG3] +~g~Bomba posizionata! Ancora 1 bersaglio! Torna indietro e recupera un'altra bomba. + +[TEX3_15:SERG3] +~r~Conto alla rovescia avviato! ~g~Devi posizionare le ~w~4 bombe~g~ in tempo! + +[TEX3_37:SERG3] +Sposta ~h~in basso la levetta analogica destra~w~ per aumentare la velocità del rotore e ~h~far salire~w~ l'elicottero. + +[TEX3_38:SERG3] { reVC update } +{Sposta ~h~~k~~VEHICLE_ACCELERATE~~w~ per ridurre la velocità del rotore e ~h~far scendere~w~ l'elicottero.} +Sposta ~h~in alto la levetta analogica destra~w~ per ridurre la velocità del rotore e ~h~far scendere~w~ l'elicottero. + +[TEX3_39:SERG3] +~g~Per sganciare una bomba, premi il tasto ~h~~k~~VEHICLE_HANDBRAKE~~g~. + +[TEX3_40:SERG3] +Per sganciare una bomba, premi il tasto ~h~~k~~VEHICLE_HANDBRAKE~~w~. + +[TEX3_23:SERG3] +Premi i tasti ~h~~k~~VEHICLE_TURRETUP~~w~ e ~h~~k~~VEHICLE_TURRETDOWN~~w~ per inclinare l'elicottero nella direzione desiderata. + +{=================================== MISSION TABLE TAXI1 ===================================} + +[FARES:TAXI1] +CLIENTI: + +[TAXI1:TAXI1] +~g~Trova un passeggero. + +[TSCORE2:TAXI1] +~1~$ + +[IN_ROW:TAXI1] +Bonus ~1~ DI SEGUITO! ~1~$ + +[TAXI3:TAXI1] +~r~Il passeggero è fuggito terrorizzato! + +[TAXI7:TAXI1] +~r~La tua auto è distrutta, falla riparare. + +[TAXI4:TAXI1] +Corsa completata! + +[TAXI5:TAXI1] +BONUS VELOCITÀ! + +[TAXI6:TAXI1] +Missione taxi terminata + +[TAXIH1:TAXI1] +Fermati vicino a un pedone evidenziato per farlo salire a bordo e portarlo a destinazione prima che scada il tempo. + +[FARE1:TAXI1] +~g~Destinazione: ~w~'Club Pole Position'~g~ in Ocean Beach. + +[FARE3:TAXI1] +~g~Destinazione: ~w~'Marina'~g~ in Ocean Beach. + +[FARE4:TAXI1] +~g~Destinazione: ~w~'Ammu-Nation'~g~ in Ocean Beach. + +[FARE5:TAXI1] +~g~Destinazione: ~w~'Hardware store'~g~ in Washington Beach. + +[FARE6:TAXI1] +~g~Destinazione: ~w~'Mall North Point'~g~ in Vice Point. + +[MFARE1:TAXI1] +~g~Destinazione: ~w~'Ammu-Nation'~g~ in Downtown. + +[MFARE2:TAXI1] +~g~Destinazione: ~w~'il terminal'~g~ all'aeroporto internazionale Escobar. + +[WFARE3:TAXI1] +~g~Destinazione: ~w~'Sunshine Autos'~g~ in Little Havana. + +[WFARE4:TAXI1] +~g~Destinazione: ~w~'Taxi Kaufman'~g~ in Little Haiti. + +[WFARE5:TAXI1] +~g~Destinazione: ~w~'Hardware store'~g~ in Little Havana. + +[WFARE6:TAXI1] +~g~Destinazione: ~w~'Howlin Petes Bike'~g~ in Downtown. + +[FARE7:TAXI1] +~g~Destinazione: ~w~'il negozio dei gioiellieri'~g~ in Vice Point. + +[FARE8:TAXI1] +~g~Destinazione: ~w~'la spiaggia'~g~ in Ocean Beach. + +[FARE9:TAXI1] +~g~Destinazione: ~w~'la spiaggia'~g~ in Washington Beach. + +[FARE10:TAXI1] +~g~Destinazione: ~w~'la spiaggia'~g~ in Vice Point. + +[FARE11:TAXI1] +~g~Destinazione: ~w~'l'ospedale'~g~ in Ocean Beach. + +[FARE12:TAXI1] +~g~Destinazione: ~w~'l'ospedale'~g~ in Vice Point. + +[FARE13:TAXI1] +~g~Destinazione: ~w~'la stazione di polizia'~g~ in Washington Beach. + +[FARE14:TAXI1] +~g~Destinazione: ~w~'la stazione di polizia'~g~ in Vice Point. + +[FARE15:TAXI1] +~g~Destinazione: ~w~'il ristorante della pizza'~g~ in Vice Point. + +[WFARE7:TAXI1] +~g~Destinazione: ~w~'la stazione di polizia'~g~ in Little Havana. + +[WFARE8:TAXI1] +~g~Destinazione: ~w~'la stazione di polizia'~g~ in Downtown. + +[WFARE9:TAXI1] +~g~Destinazione: ~w~'l'ospedale'~g~ in Downtown. + +[WFARE10:TAXI1] +~g~Destinazione: ~w~'l'ospedale'~g~ in Little Havana. + +[WFARE11:TAXI1] +~g~Destinazione: ~w~'lo stadio'~g~ in Downtown. + +[WFARE12:TAXI1] +~g~Destinazione: ~w~'il ristorante della pizza'~g~ in Little Haiti. + +[WFARE13:TAXI1] +~g~Destinazione: ~w~'il ristorante della pizza'~g~ in Downtown. + +[WFARE14:TAXI1] +~g~Destinazione: ~w~'i bacini'~g~ in Viceport. + +[WFARE15:TAXI1] +~g~Destinazione: ~w~'la farmacia'~g~ in Little Haiti. + +[FARE2:TAXI1] +~g~Destinazione: ~w~'Club Malibu'~g~ in Vice Point. + +{=================================== MISSION TABLE TAXICUT ===================================} + +[TAXC_A:TAXICUT] +Immagino tu sia il nuovo proprietario. + +[TAXC_B:TAXICUT] +Di chi fai parte? Mafia? Cartello? Non sembri Messicano... + +[TAXC_C:TAXICUT] +Comunque, immagino ora comincerai con la vecchia frase 'le cose stanno per cambiare da queste parti', + +[TAXC_D:TAXICUT] +magari minaccerai uno degli autisti... + +[TAXC_E:TAXICUT] +vacci piano con quello là, Ted, ha appena avuto un'ernia al disco. + +[TAXC_F:TAXICUT] +Beh, sì. Le cose stanno per cambiare da queste parti, signora. + +[TAXC_G:TAXICUT] +Che felicità, figliolo. Me ne occupo io... + +[TAXC_H:TAXICUT] +Ormai lo faccio da anni. + +[TAXC_I:TAXICUT] +Attenzione a tutti: + +[TAXC_J:TAXICUT] +è cambiata la gestione e le cose stanno nuovamente per cambiare da queste parti. + +[TAXC_K:TAXICUT] +Il nostro nuovo direttore, della... + +[TAXC_L:TAXICUT] +Di quale gang fai parte? + +[TAXC_M:TAXICUT] +Beh, non faccio parte di nessuna gang. + +[TAXC_N:TAXICUT] +Allora qual è il tuo maledetto nome, ragazzo? + +[TAXC_O:TAXICUT] +Vercetti, Tommy Vercetti. + +[TAXC_P:TAXICUT] +In nostro nuovo direttore, della Vercetti Gang, + +[TAXC_Q:TAXICUT] +si assicurerà che non ci succedano incidenti. + +[TAXC_R:TAXICUT] +Capisce? Fine! + +[TAXC_S:TAXICUT] +Ti è piaciuto il 'Capisce'? A me è piaciuto il 'Capisce'. + +[TAXC_T:TAXICUT] +Allora è così che ha funzionato nel passato: + +[TAXC_U:TAXICUT] +noi portiamo avanti l'azienda come sempre. + +[TAXC_V:TAXICUT] +Se abbiamo problemi con la concorrenza, tu ti occupi di riempirli di botte. + +[TAXC_W:TAXICUT] +Poi loro ci riempiono di botte, + +[TAXC_X:TAXICUT] +poi tu riempi loro di botte nuovamente, + +[TAXC_Y:TAXICUT] +eccetera, eccetera. Tutto chiaro? + +[TAXC_Z:TAXICUT] +Uh, sì, almeno credo... + +[TAXC_A1:TAXICUT] +Prendi un taxi dal garage se ti senti di lanciarti subito nella mischia. + +{=================================== MISSION TABLE TAXIWA1 ===================================} + +[OUTTIME:TAXIWA1] +~r~Troppo lento, troppo lento! + +[TAX1_1:TAXIWA1] +OK, abbiamo un cliente danaroso che richiede un taxi da Starfish Island: qualche volontario? + +[TAX1_2:TAXIWA1] +Qui Tommy, lo prendo io! + +[TAX1_3:TAXIWA1] +Questo cliente è mio, indietro! + +[TAX1_4:TAXIWA1] +Forza, forza, entra in fretta! + +[TAX1_5:TAXIWA1] +OK, OK! Ti prego, non farmi male! + +[TAXW1_1:TAXIWA1] +~g~Passa a prendere il VIP su Starfish Island. + +[TAXW1_2:TAXIWA1] +~g~Porta indietro il VIP! Metti fuori gioco l'altra macchina! + +[TAXW1_3:TAXIWA1] +~r~Il VIP è morto! + +[TAXW1_4:TAXIWA1] +~r~Il VIP è arrivato a destinazione! + +[TAXW1_6:TAXIWA1] +~g~Porta il VIP all'aeroporto! + +{=================================== MISSION TABLE TAXIWA2 ===================================} + +[TAX2_1:TAXIWA2] +Chiamata a tutti i veicoli: stiamo perdendo clienti in tutta la città. Che cosa sta succedendo? + +[TAX2_2:TAXIWA2] +I taxi VC continuano a batterci sul tempo. Sono in troppi, non possiamo competere! + +[TAX2_3:TAXIWA2] +Mr. Vercetti, se sei in ascolto, devi mettere fuori gioco un po' dei taxi VC, se no falliamo! + +[TAXW2_1:TAXIWA2] +~g~Distruggi 3 taxi rivali! + +{=================================== MISSION TABLE TAXIWA3 ===================================} + +[TAX3_1:TAXIWA3] +Taxi 13, la signorina Cortez ha bisogno di essere prelevata da Down Town e ha richiesto esplicitamente di te. + +[TAX3_2:TAXIWA3] +OK, ricevuto. Taxi 13 chiudo. + +[TAX3_3:TAXIWA3] +Hmmm, nessun segno di Mercedes... + +[TAXW3_3:TAXIWA3] +~g~Metti fuori combattimento il capo dei taxisti! + +[TAXW3_2:TAXIWA3] +~g~Resta vivo fino allo scadere del tempo. + +[TAX_AS1:TAXIWA3] +BENI COMPAGNIA DEI TAXI ACQUISITI + +[TAX_AS2:TAXIWA3] +La compagnia dei taxi d'ora in poi genererà introiti per un massimo di ~1~$. Ricordati di recuperarli regolarmente. + +[TAX3_4:TAXIWA3] +È giunta l'ora che l'angelo custode dei Taxi Kaufman entri in azione! + +[TAX3_5:TAXIWA3] +Ehi ragazzo, ti abbronzo il fondoschiena! + +{ re3 updates } +{ new languages } +[FEL_JAP] +GIAPPONESE + +[FEL_POL] +POLACCO + +[FEL_RUS] +RUSSO + +{ new display menus } +[FET_GFX] +GRAPHICS SETUP + +[FED_MIP] +MIP MAPPING + +[FED_AAS] +ANTI ALIASING + +[FED_FIL] +TEXTURE FILTERING + +[FED_BIL] +BILINEAR + +[FED_TRL] +TRILINEAR + +[FED_WND] +WINDOWED + +[FED_FLS] +FULLSCREEN + +[FEM_CSB] +CUTSCENE BORDERS + +[FEM_SCF] +SCREEN FORMAT + +[FEM_ISL] +MAP MEMORY USAGE + +[FEM_LOW] +LOW + +[FEM_MED] +MEDIUM + +[FEM_HIG] +HIGH + +[FEM_2PR] +PS2 ALPHA TEST + +[FEC_FRC] +FREE CAM + +{ Linux joy detection } +[FEC_JOD] +DETECT JOYSTICK + +[FEC_JPR] +Press any key on the joystick of your choice that you want to use on the game, and it will be selected. + +[FEC_JDE] +Detected joystick + +{ mission restart } +[FET_RMS] +RIGIOCA MISSIONE + +[FESZ_RM] +RIGIOCA? + +[FED_VPL] +VEHICLE PIPELINE + +[FED_PRM] +PED RIM LIGHT + +[FED_RGL] +ROAD GLOSS + +[FED_CLF] +COLOUR FILTER + +[FED_WLM] +WORLD LIGHTMAPS + +[FED_MBL] +MOTION BLUR + +[FEM_SIM] +SIMPLE + +[FEM_NRM] +NORMAL + +[FEM_MOB] +MOBILE + +[FED_MFX] +MATFX + +[FED_NEO] +NEO + +[FEM_PS2] +PS2 + +[FEM_XBX] +XBOX + +[FEC_IVP] +INVERT PAD VERTICALLY + +[FEM_NON] +NONE + +[FEC_DS2] +DUALSHOCK 2 + +[FEC_DS3] +DUALSHOCK 3 + +[FEC_DS4] +DUALSHOCK 4 + +[FEC_360] +XBOX 360 CONTROLLER + +[FEC_ONE] +XBOX ONE CONTROLLER + +[FEC_TYP] +GAMEPAD TYPE + +[FET_AGS] +GAMEPAD SETTINGS + +[FEM_AUT] { aspect ratio related } +AUTO [DUMMY] THIS LABEL NEEDS TO BE HERE !!! diff --git a/utils/gxt/spanish.txt b/utils/gxt/spanish.txt index 3f57b1a..82c1958 100644 --- a/utils/gxt/spanish.txt +++ b/utils/gxt/spanish.txt @@ -1,413 +1,95 @@ -[LETTER1] -abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789"$,.'-?!!SDBF +{ + New strings are at the bottom of file. + Do not change the order of strings. + You can fix the typos of existing translation but please refrain from + unnecessary edits like rephasing because you think it suits better for your taste. -[DEFNAM] -Claude---------------------- + SPANISH NOTE: + This is European Spanish, do not mix it with Latin American Spanish. + If you want the Latin American Spanish translation you'd have to create + a separate txt for it. +} +{ Grand Theft Auto Vice City Spanish (Spain) Translation } +{ Contains some of the official fixes made by Rockstar for the iOS port } +{ Additional translation rewrites, corrections and fixes by IlDucci } [IN_VEH] -~w~¡Eh! ¡Vuelve al ~b~vehículo~w~! - -[IN_VEH2] -~w~Para este trabajo necesitas un carro. - -[IN_BOAT] -~w~Para esto necesitas una embarcación. +~g~¡Eh! ¡Vuelve al vehículo! [HEY] -~w~No vayas solo, mantén al grupo unido. - -[HEY2] -~w~No te separes, mantén al grupo unido. - -[HEY3] -~w~You've dropped your main man, go back and get 8-Ball! - -[HEY6] -~w~You left your honor with the Yakuza Kanbu. You must protect him! - -[HEY7] -~w~Un arma más podría ser útil. ¡Vuelve y recoge al contacto! - -[HEY9] -~w~¿Quieres que se corra la voz? ¡Ve a ver al contacto! - -[GATE_1] -~w~Los Sindacco solo abrirán las puertas a sus coches. - -[HELPA] -~w~Éste es tu ~h~piso franco~w~. - -[HELPB] -~w~Mientras no estés en una misión, guarda el progreso pasando por el ~h~icono de guardar~w~. El tiempo avanzará 6 horas. - -[HELPC] -~w~Los vehículos que dejes en el ~h~garaje de al lado~w~ se conservarán al guardar la partida. - -[HELPD] -Para salir del piso franco, camina hasta la ~h~señal~w~. - -[HELP0] -~w~Pulsa~h~ ~k~ ~VEEE~ ~w~para entrar o salir de un vehículo. - -[HELP1] -~w~Párate en el centro de la ~h~señal amarilla~w~. +~g~¡No vayas solo, mantén tu grupo unido! [HELP3] -~w~Solo esprintarás un tiempo limitado antes de cansarte. +Solo puedes esprintar durante cortos periodos de tiempo, antes de cansarte. -[HELP4] -~w~Pulsa~h~ ~k~ ~VEACC~ ~w~para ~h~acelerar,~h~ ~k~ ~VESTR~ ~w~para dirigir. +[HELP4_D] +Mueve el ~h~joystick analógico derecho~w~ hacia arriba para ~h~acelerar. -[HELP5] -~w~Pulsa~h~ ~k~ ~VEBRK~ ~w~para ~h~frenar~w~ o para ~h~dar marcha atrás~w~ si el vehículo se ha parado. +[HELP5_D] +Tira del ~h~joystick analógico derecho~w~ hacia atrás para ~h~frenar~w~, o para ~h~dar marcha atrás~w~ si el vehículo se ha detenido. -[HELP6] -~w~Pulsa~h~ ~k~ ~VEHB~ ~w~para usar el ~h~freno de mano~w~. +[HELP7_A] +Pulsa y mantén pulsado el ~h~~k~~PED_LOCK_TARGET~ ~w~para ~h~apuntar~w~ con el rifle de francotirador. -[HELP7] -~w~Mantén pulsado~h~ ~k~ ~PDLT~ ~w~para apuntar con un rifle de francotirador. - -[HELP8] -~w~Usa~h~ ~k~ ~SNZI~ ~w~y~h~ ~k~ ~SNZO~ ~w~para ~h~acercar y alejar el zoom~w~ mientras apuntas. +[HELP7_D] +Pulsa y mantén pulsado el ~h~~k~~PED_LOCK_TARGET~ ~w~para ~h~apuntar~w~ con el rifle de francotirador. [HELP10] -~w~La ~h~placa amarilla~w~ indica que estás ~h~buscado~w~. La policía intentará detenerte. +Esta insignia indica que tienes un nivel de se busca por la policía. [HELP11] -~w~Cuantas más placas se muestren, más se empeñará la ley en detenerte. - -[HELP12] -~w~Camina hasta la ~h~señal amarilla~w~ para empezar una misión. +Cuantas más insignias tengas, mayor es tu nivel de se busca. [HELP13] -~w~Busca los caminos que no aparecen en el ~h~radar~w~ y aprovéchalos. - -[HELP14] -~w~Usa el ~h~radar~w~ para trazar la ruta por la ciudad y sigue el ~h~punto amarillo~w~ para encontrar el ~h~piso franco~w~. ~w~Usa el ~h~radar~w~, en la parte inferior de la pantalla, para orientarte por la ciudad y encontrar los objetivos. - -[HELP16] -~w~Usa~h~ ~k~ ~VESTR~ ~w~para dirigir. - -[HELP17] -~w~Phil Cassidy's, la mercancía de más calibre: ¡pronto nuevas existencias! - -[HELP18] -~w~¡Nuevas existencias en la armería Phil Cassidy's Fully Cocked! - -[HELP18B] -~w~¡Phil Cassidy's ya tiene existencias de la ~h~minigun~w~! - -[HELP19A] -~w~Para ~h~disparar en marcha~w~, mantén pulsado~h~ ~k~ ~VELL~ ~w~o~h~ ~k~ ~VELR~ ~w~y dispara con~h~ ~k~ ~VEWEP~~w~. - -[HELP19C] -~w~Solo puedes disparar en marcha si tienes un ~h~subfusil~w~. - -[HELP19D] -~h~Las motos ~w~te permiten ~h~disparar hacia adelante~w~ si pulsas~h~ ~k~ ~VEWEP~~w~. - -[HELP19F] -Solo puedes disparar hacia adelante si tienes un ~h~subfusil~w~. - -[HELP20] -~w~¡Has encontrado un ~h~soborno policial~w~! Al recogerlos, reduces el ~h~nivel de búsqueda~w~ en una estrella. - -[HELP21] -~w~Usa~h~ ~k~ ~PDCWE~ ~w~para cambiar de arma mientras vas a pie. - -[HELP22] -~w~Para encontrar el ~h~almacén de Vincenzo~w~, sigue el ~h~punto "V"~w~ en el radar. - -[HELP23] -~w~El punto es un ~h~triángulo hacia abajo~w~; esto indica que el ~h~objetivo está por debajo~w~ de ti. - -[HELP24] -~w~Mantén pulsado~h~ ~k~ ~VELL~ ~w~o~h~ ~k~ ~VELR~ ~w~para mirar a ~h~derecha o izquierda~w~ en un vehículo. Mantén pulsados ambos para mirar ~h~hacia atrás~w~. - -[HELP25] -~w~Pulsa~h~ ~k~ ~CVEIW~ ~w~para cambiar los ~h~modos de cámara~w~. - -[HELP26] -~w~Salta a una embarcación y pulsa~h~ ~k~ ~VEEE~ ~w~para subir. - -[HELP27] -~w~Si estás cerca de una embarcación, pulsa~h~ ~k~ ~VEEE~ ~w~para abordarla. - -[HELP29] -~w~Pulsa~h~ ~k~ ~VEHN~ ~w~para tocar el ~h~claxon~w~ del vehículo. - -[HELP30] -~w~Usa~h~ ~k~ ~VECRS~ ~w~para cambiar de ~h~emisora de radio~w~. - -[HELP33] -~w~Ahora que los sicarios han cobrado, harán su trabajo por mucho que tarden. - -[HELP34] -~w~Mantén pulsado~h~ ~k~ ~VELB~ ~w~para mirar hacia atrás cuando estés en un coche. - -[HELP38] -~w~Si matas a alguien que tenga un arma, la dejará caer. - -[HELP40] -~w~Cuando vayas a pie, usa~h~ ~k~ ~PDLOO~ ~w~para mirar alrededor. - -[HELP58] -~w~Mantén pulsado~h~ ~k~ ~PDLT~ ~w~para ~h~fijar un blanco~w~ y pulsa~h~ ~k~ ~PDFW~ ~w~para disparar. - -[HELP59] -~w~Con el blanco fijado, pulsa~h~ ~k~ ~PDCTL~ ~w~para cambiar de objetivo. - -[HELP60] -~w~Algunos bidones explotarán si les disparas, pero acuérdate de guardar la distancia. - -[TANK] -~w~Usa~h~ ~k~ ~VEWEA~ ~w~para apuntar con el cañón del Rhino y~h~ ~k~ ~VEWEP~ ~w~para disparar. - -[ANSWER] -~w~Pulsa~h~ ~k~ ~ANS~ ~w~para responder al teléfono móvil y~h~ ~k~ ~VEEE~ ~w~para colgar. - -[BOMB] -~w~Si llevas un coche al taller de ~h~bombas~w~, 8-Ball te cobrará ~h~500 $~w~ por ponerle una. - -[BRIDGE1] -~w~Puente Callahan: en construcción. Fecha estimada de finalización: mayo de 1998 - -[STRIK_1] -~w~Cuando la huelga haya acabado, podrás coger el ~h~ferry~w~ a Staunton Island. - -[SPRAY] -~w~Si llevas un vehículo a un ~h~Pay 'n' Spray~w~ te quitarán el ~h~nivel de búsqueda~w~ y te lo ~h~repararán~w~ y ~h~repintarán~w~ por ~h~100 $~w~. - -[S_TRN_1] -~w~Puedes usar el ~h~metro~w~ para ir por Liberty City. Pulsa~h~ ~k~ ~VEEE~ ~w~para ~h~entrar ~w~o ~h~salir~w~ de él. - -[TUBE1] -~w~Cuando abran la estación, podrás coger el ~h~metro~w~ a Staunton Island. - -[TUBE2] -~w~Podrás ir al ~h~aeropuerto internacional Francis ~w~cuando abran esta estación. - -[TUBE_2] -~w~Para subirte al ~h~metro~w~, pulsa~h~ ~k~ ~VEEE~~w~. - -[SPRAY1] -~w~Al aparcar en un ~h~Pay 'n' Spray~w~ te quitarán el ~h~nivel de búsqueda~w~ y ~h~repararán~w~ y ~h~repintarán~w~ el vehículo. Suele costar ~h~100 $~w~, pero esta vez es gratis. - -[HELPE31] -~w~El jugador irá teniendo a su disposición nuevas prendas durante la partida que tendrá que recoger en Mr. Benz. - -[HELPE32] -~w~Durante la partida, el jugador tendrá oportunidad de comprar armas más potentes en Ammu-Nation. - -[HELPCOM] -~w~Desbloqueadas nuevas prendas en el piso franco. - -[HELP41] -~w~Aparca en el ~h~Pay 'n' Spray~w~ para reparar y repintar el coche. Sigue el ~h~punto del bote de spray~w~ en el radar para encontrar el sitio. - -[PAGEB1] -~w~La ~h~pistola~w~ ya está disponible en el piso franco. - -[PAGEB10] -~w~Has encontrado todos los paquetes ocultos. ¡Tienes una ~h~gratificación de 50.000 $~w~! - -[EXPO_W] -~w~Love Media necesita uno de esos. - -[FERRY_2] -~w~Vuelve cuando el ferry esté atracado. - -[FERRY_3] -~w~¡Tu vehículo no cabe en el ferry! - -[FERRY_4] -~w~¡Los delincuentes buscados no pueden subir al ferry! - -[FERRY_5] -~w~Necesitas ~h~25 $~w~ para un pasaje en el ferry. Vuelve cuando tengas dinero suficiente. - -[FERRY_6] -~w~No puedes usar el ferry mientras estás en una misión. - -[FERR_SK] -~w~Pulsa~h~ ~k~ ~TRSK~ ~w~para saltar al final del viaje. - -[FERR_C1] -~w~Ferry a Staunton. Tarifa: ~h~25 $~w~. Pulsa~h~ ~k~ ~TGSUB~ ~w~para comprar el pasaje. - -[FERR_C2] -~w~Ferry a Portland. Tarifa: ~h~25 $~w~. Pulsa~h~ ~k~ ~TGSUB~ ~w~para comprar el pasaje. - -[A_H1] -~w~~k~ ~AMBUY~ ~w~comprar. ~n~~k~ ~AMEXI~ ~w~salir. - -[A_UZI_A] -~w~Ammu-Nation ya dispone de micro subfusiles. - -[AMMU] -~w~Las armas estarán disponibles en ~h~Ammu-Nation~w~ cuando lleguen existencias. Disculpen las molestias. - -[WANT_A] -~w~Cuando te hayan ~h~'trincado'~w~, te llevarán a la comisaría más cercana. - -[WANT_B] -~w~Fracasará cualquier misión en la que estuvieras y la poli se quedará con tus armas y un dinero para el soborno. - -[WANT_C] -~w~Solo acabarás ~h~'trincado'~w~ si tienes un ~h~nivel de búsqueda~w~ en forma de fila de estrellas en la esquina superior de la pantalla. - -[WANT_D] -~w~Cuantas más estrellas tengas, con más empeño te perseguirá la ley. - -[WANT_E] -~w~Hay maneras de reducir el nivel de búsqueda. Mantén los ojos abiertos para encontrarlas. - -[WANT_F] -~w~Cuando vayas en un vehículo, pásate por un ~h~Pay 'n' Spray~w~ para quitarte el nivel de búsqueda. - -[HEAL_A] -~w~Cuando estés ~h~'eliminado'~w~, te llevarán al hospital más próximo. - -[HEAL_B] -~w~Perderás todas las armas y fallarás cualquier misión en la que estuvieras. También te cobrarán por curarte. - -[HEAL_C] -~w~Tu ~h~salud~w~ se indica en la barra roja de la parte superior derecha de la pantalla. - -[HEAL_D] -~w~Hay maneras de curarte o protegerte. Mantén los ojos abiertos para encontrarlas. - -[H_WE_01] -~w~Camina por encima de las armas para recogerlas. Solo puedes hacerlo si vas a pie. - -[H_WE_02] -~w~Si ya tienes un arma de ese tipo, pulsa~h~ ~k~ ~PUCF~ ~w~para sustituirla por la nueva. - -[PU_CF] -~w~Pulsa~h~ ~k~ ~PUCF~ ~w~para coger esta arma. Se perderá cualquier otra del mismo tipo. - -[CLOTHA] -~h~~k~ ~AMMOV~ ~w~para ver prendas. ~h~~k~ ~AMBUY~ ~w~ cambiar de ropa. ~h~~k~ ~AMEXI~ ~w~ cancelar. - -[CLOTHB] -~w~Aquí puedes cambiar de ropa cuando quieras. - -[SIREN_1] -~w~Para encender o apagar la ~h~sirena de un vehículo de emergencia~w~, pulsa~h~ ~k~ ~VEHN~~w~. - -[FHOSE_1] -~w~Mantén pulsado~h~ ~k~ ~VEWEP~ ~w~para disparar el cañón de agua. - -[PHOTO1] -~w~Mantén pulsado~h~ ~k~ ~PDLT~ ~w~para enfocar con la cámara. - -[PHOTO2] -~w~Mientras enfocas con la cámara, usa~h~ ~k~ ~SNZI~ ~w~y~h~ ~k~ ~SNZO~ ~w~para ~h~acercar y alejar el zoom~w~. - -[PHOTO3] -~w~Pulsa~h~ ~k~ ~PDFW~ ~w~para hacer una foto mientras enfocas con la cámara. - -[BENZ_H1] -~w~Sigue el ~h~punto de la camisa~w~ en el radar para encontrar ~h~la tienda de ropa Mr. Benz~w~. - -[BENZ_LE] -~w~El ~h~traje de Leone~w~ ya está disponible en el piso franco. - -[BENZ_GU] -~w~La ~h~ropa de Ángel Vengador~w~ ya está disponible en el piso franco. - -[BENZ_CH] -~w~La ~h~ropa de chófer~w~ ya está disponible en el piso franco. - -[BENZ_TU] -~w~El ~h~esmoquin~w~ ya está disponible en el piso franco. - -[ATUTOR] -~w~Alterna la activación de las misiones de médico ATS pulsando~h~ ~k~ ~TGSUB~~w~. - -[CTUTOR] -~w~Alterna la activación de las misiones de vigilante pulsando~h~ ~k~ ~TGSUB~~w~. - -[FTUTOR] -~w~Alterna la activación de las misiones de bombero pulsando~h~ ~k~ ~TGSUB~~w~. - -[TRATUT1] -~w~Alterna la activación de las misiones de basurero pulsando~h~ ~k~ ~TGSUB~~w~. - -[TTUTOR] -~w~Alterna la activación de las misiones de taxista pulsando~h~ ~k~ ~TGSUB~~w~. - -[A_COMP2] -~w~Misión de médico ATS: nivel 12 completado. Ya no te cansarás al correr. - -[FIREPRO] -~w~Misión de bombero: nivel 12 completado. Ya eres ignífugo. - -[RCHELP] -~w~Para ~h~detonar~w~ el coche de radiocontrol, pulsa~h~ ~k~ ~VEWEP~~w~. - -[TAXIH1] -~w~Para cerca de un ~h~peatón resaltado~w~ para recogerlo y luego llévalo rápido a su destino. - -[TIPHLP] -~w~La ~h~barra de propinas~w~ desciende con el ~h~tiempo~w~ y cuando el taxi sufre ~h~daños~w~. - -[ANG_E3] -~w~Ve y busca otros Ángeles Vengadores por Chinatown. - -[ANGOUT] -~w~Vuelve cuando lleves la ropa de ~h~Ángel Vengador~w~. - -[ANGCOM2] -~w~Misiones de Ángel Vengador, Staunton: nivel 15 completado. Ya no perderás dinero si te trincan. - -[ANGCOM3] -~w~Misiones de Ángel Vengador, Shoreside: nivel 15 completado. Tienes un vehículo "especial" en el piso franco. - -[TVOHELP] -~w~Prueba a volver cuando lleves la ~h~máscara de hockey~w~. +Algunas veces puedes necesitar ir por caminos que el radar no detecta. [TIMER] Ésta es una misión cronometrada, debes completarla antes de que el cronómetro llegue a cero. -[GARAGE] -Mete el vehículo en el garaje y sal a pie. +[HORN] +~g~Toca la bocina. -[TRASH] -~g~¡El vehículo está hecho fosfatina! ¡Haz que lo reparen! - -[WRECKED] -~r~¡El vehículo está destrozado! - -[SPOOK] -SUSTÓMETRO - -[SPOTTED] -~r~¡Te persiguen! +[NOMONEY] +~g~¡Necesitas más dinero! [REWARD] -~w~Recompensa: ~1~ $ +RECOMPENSA ~1~ $ -[GAMEOVR] -FIN DE LA PARTIDA +[M_FAIL] +¡MISIÓN FALLIDA! -[Z] -Valor del eje Z: ~1~ +[M_PASS] +¡MISIÓN SUPERADA! ~1~ $ [DEAD] ¡ELIMINADO! -[GOODBOY] -~w~¡Bonificación de 50 $ por buen ciudadano! +[BUSTED] +¡ARRESTADO! + +[WEATHE1] +FORZAR TIEMPO SOLEADO + +[WEATHE2] +FORZAR TIEMPO EXTREMADAMENTE SOLEADO + +[WEATHE3] +FORZAR TIEMPO NUBLADO + +[WEATHE4] +FORZAR TIEMPO LLUVIOSO + +[WEATHE5] +FORZAR TIEMPO CON NIEBLA + +[WEATHE6] +TIEMPO NORMAL [NUMBER] ~1~ -[SCORE] -~1~ $ - [LOADCAR] -CARGANDO VEHÍCULO... (PULSA EL botón L PARA CANCELAR) +CARGANDO VEHÍCULO... (PULSA L1 PARA CANCELAR) [CARSOFF] Coches desactivados. @@ -416,319 +98,1813 @@ Coches desactivados. Coches activados. [TEXTXYZ] -Escribiendo coordenadas en archivo... +Escribiendo coordenadas en el archivo... [CHEATON] -Modo trucos SÍ +Modo trucos ACTIVADO [CHEATOF] -Modo trucos NO +Modo trucos DESACTIVADO [IMPORT1] -Sal y espera a que llegue el vehículo. +Ve fuera y espera tu vehículo. -[KE_PLYR] -Jugador +[PAGEB11] +Entregado lanzallamas en el escondite -[KE_CTCS] -Contactos +[WANT_A] +Sólo serás arrestado si tienes un ~h~nivel de se busca. -[KE_WEPS] -Armas +[WANT_B] +Tu ~h~nivel de se busca~w~ viene representado por la fila de estrellas en la parte superior derecha de la pantalla. -[KE_ADR] -Adrenalina +[WANT_C] +Ahora tienes un ~h~nivel de se busca~w~ de una... -[KE_BRIB] -Soborno +[WANT_D] +dos... -[KE_HLTH] -Salud +[WANT_E] +tres... -[KE_KILF] -Frenesí +[WANT_F] +A medida que tu ~h~nivel de se busca~w~ aumente, atraerás a representantes más poderosos de las fuerzas policiales. -[KE_ARM] -Blindaje +[WANT_G] +Cuando te hayan ~h~''arrestado''~w~ serás conducido a la comisaría más cercana. -[KE_USJ] -AU +[WANT_H] +Los polis te quitarán todas las armas y parte de tu dinero como soborno. -[KE_PKG] -Paquete oculto +[WANT_I] +Cualquier misión en la que estuvieses habrá fracasado. -[KE_INFO] -Información +[WANT_J] +Encontrarás modos de reducir tu nivel de se busca cuanto más juegues. -[DAM] -Daño +[WANT_K] +Si estás en un coche, el ~h~TALLER DE PINTURA~w~ limpiará ~h~tu nivel de búsqueda. -[KILLS] -Abat. +[HEAL_B] +Cuando seas ~h~''eliminado''~w~ serás conducido al hospital más cercano. -[TIME] -Crono +[HEAL_C] +Perderás tus armas y los médicos te quitarán algo de dinero por recomponerte. -[STOPS] -Paradas +[HEAL_E] +Encontrarás modos de curarte o de protegerte cuanto más juegues al juego. -[BULL] -Bullion +[BRIBE1] +Acabas de recoger un soborno de la policía, esto disminuirá en una estrella tu nivel de se busca. -[EVID] -Prueba +[SAVE1] +Entra al corona para ~h~guardar la partida~w~. No puedes guardar durante una misión. -[HEALTH] -Integridad coche +[SAVE2] +Cualquier vehículo que quede en este garaje será almacenado cuando se guarde la partida. -[COLLECT] -Recogido +[AMMU] +Ve dentro de Ammu-Nation para comprar un arma. -[LEVEL] -Nivel +[R_TIME] +TIEMPO DE CARRERA: -[SALES] -Ventas +[PROP_1] +No tienes suficiente dinero para adquirir esta propiedad -[CITYZON] -Liberty City - -[VICE_C] -Liberty City +[PROP_2] +No puedes comprar propiedades mientras estás en una misión. [IND_ZON] -Portland - -[PORT_W] -Callahan Point - -[PORT_S] -Atlantic Quays - -[PORT_E] -Puerto de Portland - -[PORT_I] -Trenton - -[S_VIEW] -Portland View - -[CHINA] -Chinatown - -[EASTBAY] -Playa de Portland - -[LITTLEI] -Saint Mark's - -[REDLIGH] -Red Light District - -[TOWERS] -Hepburn Heights - -[HARWOOD] -Harwood - -[ROADBR1] -Puente Callahan - -[ROADBR2] -Puente Callahan - -[TUNNELP] -Túnel de Porter - -[BOMB1] -Taller de 8-Ball +Vice City Beach [COM_ZON] -Staunton Island +Península de Vice City -[STADIUM] -Aspatria +[BEACH1] +Ocean Beach -[STADIU2] -Aspatria +[BEACH2] +Washington Beach -[STADIU3] -Aspatria +[BEACH3] +Vice Point -[HOSPI_2] -Rockford +[GOLFC] +Leaf Links -[UNIVERS] -Liberty Campus +[STARI] +Starfish Island -[CONSTRU] -Fort Staunton +[DOCKS] +Viceport -[PARK] -Parque de Belleville +[HAVANA] +Little Havana -[COM_EAS] -Newport +[HAITI] +Little Haiti -[SHOPING] -Bedford Point +[PORNI] +Prawn Island -[SHOP2] -Bedford Point +[DTOWN] +Centro de la ciudad -[SHOP3] -Bedford Point +[VICE_C] +Vice City -[YAKUSA] -Torrington +[A_PORT] +Escobar International -[SUB_ZON] -Shoreside Vale +[JUNKY] +Vertedero -[AIRPORT] -Aerop. Intnal. Francis +[PISTOL] +Pistola -[PROJECT] -Wichita Gardens +[PYTHON] +.357 -[SUB_IND] -Pike Creek +[UZI] +Uz-1 -[SWANKS] -Cedar Grove +[TEC9] +Tec 9 -[BIG_DAM] -Presa de Cochrane +[M4] +M4 -[SUB_ZO2] -Shoreside Vale +[INGRAM] +Mac -[SUB_ZO3] -Shoreside Vale +[MP5] +MP + +[RUGER] +Kruger + +[SNIPE] +Rifle de francotirador + +[GRENADE] +Granadas + +[SHOTGN1] +Escopeta + +[SHOTGN2] +S.P.A.S. 12 + +[SHOTGN3] +Escopeta de cañones recortados + +[ARMOUR] +Chaleco antibalas + +[LASER] +.308 Rifle de francotirador + +[BASEBAT] +Bate de béisbol + +[HAMMER] +Martillo + +[SCREWD] +Destornillador + +[CLEVER] +Cuchillo de carnicero + +[MACHETE] +Machete + +[KNIFE] +Cuchillo + +[KATANA] +Katana + +[CHAINSA] +Sierra eléctrica + +[G_COST] +~1~ $ [CAR_1] Ambulancia -[CAR_2] -Coche de bomberos +[MALIBU] +El Club Malibú -[CAR_3] -Policía +[MANSION] +Mansión de Díaz -[CAR_4] -Furgón policial +[TMANS] +Finca de Vercetti -[CAR_5] -Barracks +[STRIP] +El Club Pole Position -[CAR_6] -Rhino +[MALL1] +Centro comercial North Point -[CAR_7] -Coche del FBI +[BANKINT] +El Banco Corrupto Grande -[CAR_8] -Securicar +[RANGE] +Campo de tiro con rifle -[CAR_9] -Moonbeam +[POL_HQ] +Cuartel general de VCPD -[CAR_10] -Autocar +[INT_B] +Un viejo amigo -[CAR_11] -Camión remolcador +[INTB_1] +~g~Ve a la oficina del Abogado. -[CAR_12] -Camión articulado +[LAW_1] +La fiesta -[CAR_13] -Camión de la basura +[LAW_2] +Pelea en el callejón trasero -[CAR_14] -Patriot +[LAW_3] +Furia en el jurado -[CAR_15] -Mr. Whoopee +[LAW_4] +Disturbios -[CAR_16] -Mule +[COL_1] +Cerdo traidor -[CAR_17] -Yankee +[COL_2] +Tiros en el centro comercial -[CAR_18] -Pony +[COL_3] +Ángeles guardianes -[CAR_19] -Bobcat +[COL_4] +¡Señor, sí, señor! -[CAR_20] -Rumpo +[COL_5] +¡Todos con las manos arriba! -[CAR_21] -Blista +[COK_1] +La caza -[CAR_22] -Dodo +[COK_2] +Phnom Penh '86 -[CAR_23] -Autobús +[COK_3] +El barco más rápido -[CAR_24] -Sentinel +[COK_4] +Oferta y demanda -[CAR_25] -Cheetah +[KENT_1] +El corredor de la muerte -[CAR_26] -Banshee +[ASS_1] +Borrar -[CAR_27] -Stinger +[BUD_1] +Extorsión -[CAR_28] -Infernus +[BUD_2] +Pelea en el bar -[CAR_29] -Esperanto +[BUD_3] +Tierra de polis -[CAR_30] -Kuruma +[CAP_1] +Liquida al cobrador -[CAR_31] -Stretch +[FIN_1] +Mantén cerca a tus amigos... -[CAR_32] -Perennial +[BANK_1] +¿Sin escapatoria? -[CAR_33] -Landstalker +[BANK_2] +El tirador -[CAR_34] -Manana +[BANK_3] +El conductor -[CAR_35] -Idaho +[BANK_4] +El atraco -[CAR_36] -Stallion +[CNT_1] +Descubriendo el pastel -[CAR_37] -Taxi +[CNT_2] +Ataca al mensajero -[CAR_38] -'Cabbie' +[PORN_1] +Campaña de reclutamiento -[CAR_39] -Buggy +[PORN_2] +Consolador Dodo -[SINDACO] -Argento de Sindacco +[PORN_3] +La foto policial de Marta -[HEARSE] -Hearse +[PORN_4] +Punto G + +[TAX_1] +Taxis Kaufman + +[TAXI_1] +V.I.P. + +[TAXI_2] +Rivalidad amistosa + +[TAXI_3] +Taxigedón + +[ICE_1] +Distribución + +[TEX_1] +Hierro número cuatro + +[TEX_2] +Dos leves impactos + +[TEX_3] +Demoledor + +[PHIL_1] +Traficante de armas + +[PHIL_2] +Boomshine Saigon + +[BIKE_1] +Moto con llantas de aleación + +[BIKE_2] +Incitando al macho + +[BIKE_3] +Moto robada + +[ROCK_1] +Love Juice + +[ROCK_2] +Asesino psicópata + +[ROCK_3] +Gira publicitaria + +[ROCK_4] +¡Love Fist! + +[HAT_1] +Poción mágica + +[HAT_2] +¡Bombas fuera! + +[HAT_3] +Juego sucio + +[CUB_1] +El desafío del barco trucado + +[CUB_2] +Carne de cañón + +[CUB_3] +Encuentro naval + +[CUB_4] +Vudú troyano + +[JOB_1] +Muerte en la carretera + +[JOB_2] +Elimina a la esposa + +[JOB_3] +Autocidio + +[JOB_4] +Comprobar el registro + +[JOB_5] +Cabos sueltos + +[ANSWER] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para responder a una llamada a tu teléfono móvil. + +[MOB_01A] +¡Estás bien figura! Soy Paul. Puede que tenga algún resultado para ti, pero necesito hablar contigo cara a cara. + +[MOB_01B] +Estoy de relax en el Malibu. + +[MOB_01C] +Creo que después de esto me vas a deber un favor o dos, guapo. Hasta luego. + +[MOB_02A] +Ssssnniiiiffffff... ¡Eh! Hola, ¿Tommy? ¡Tommy! + +[MOB_02B] +Tenemos un problema en la imprenta. Mejor que vayas y lo compruebes. + +[MOB_02C] +Algún tipo de lío. Las cosas andan revueltas. Tengo que irme. + +[MOB_03A] +¿Sr. Vercetti? Tengo un trozo de mierda firmada que dice + +[MOB_03B] +que usted ha asumido todas las deudas de BJ's Auto. + +[MOB_03C] +Con la repentina desaparición de BJ no tengo más remedio + +[MOB_03D] +que hacerle responsable de su inestabilidad financiera + +[MOB_03E] +Hasta que esta cuenta quede completamente saldada + +[MOB_03F] +debería considerar que las calles de Vice City son poco seguras. + +[MOB_04A] +¿Cómo estás, tío? Soy Paulo. + +[MOB_04B] +Mira, Tommy, me olvidé de mencionar que vamos a necesitar más seguridad para el concierto. + +[MOB_04C] +Hay una banda de moteros liderada por Mitch Baker que serían la publicidad ideal. + +[MOB_04D] +Solucióname esto y te conseguiré un pase para la actuación, ¿vale? + +[MOB_05A] +Soy Mitch. Hiciste un buen trabajo, Tommy. Es bueno volver a tener a mi pequeña en casa. + +[MOB_05B] +Dile al Sr. Kent Paul que dispondrá de seguridad para la actuación. + +[MOB_05C] +Tiene mi palabra de ello. + +[MOB_05D] +Intenta no meterte en problemas. + +[MOB_06A] +Tommy, esos de abajo han estado rajando sobre ti, chico. + +[MOB_06B] +Pensé que podrías necesitar consuelo casero así que la tía Poulet te preparará una sopa, ¿hmmm? + +[MOB_06C] +Pásate por mi cocina alguna vez, ¿de acuerdo Tommy? + +[MOB_08A] +Eh Tommy, pensé que podrías necesitar algún asesoramiento financiero. + +[MOB_08B] +Una vez que tengas la operación en marcha, tendrás que pasarte a recoger la recaudación de la semana. + +[MOB_08C] +Deja que esos tipos crean que son los amos del lugar e intentarán cepillarse los beneficios... ¿vale? + +[MOB_08D] +Eh, sé como llevar el negocio, Ken. + +[MOB_08E] +Vale, vale. Lo sé, ya sabes. Lo sé. Estaba, + +[MOB_08F] +Sólo estaba, ya sabes, diciéndote que sé, que tú sabes que yo lo sé. + +[MOB_08G] +¡Solo manteniéndolo a punto, nene! + +[MOB_08H] +Lo que sea, Ken, lo que sea... + +[MOB_09A] +¡Eh, Leo! ¡Tengo trabajo para ti! + +[MOB_09B] +No soy Leo. + +[MOB_09C] +¡Eh, como Leo sepa que tienes su teléfono, te va a liquidar! + +[MOB_09D] +Quizás Leo ya esté muerto. Quizás yo le maté y cogí su teléfono, ¿te has parado a pensar eso, gilipollas? + +[MOB_09E] +¿Mataste a Leo? Debes tener unas pelotas muy grandes... ¿quieres trabajar para mí? + +[MOB_09F] +Pásate por el café de mi padre en Little Havana y podremos hablar de tú a tú. + +[MOB_10A] +¡Tommy! Mira, tengo que pedirte un favor. + +[MOB_10B] +¡Steve! ¿Cómo van con el rodaje? + +[MOB_10C] +Bien, bien. Yo, je, NOSOTROS necesitamos una escena con una persecución de coches, pero nuestro presupuesto no da para más. + +[MOB_10D] +Me han dejado un coche en la ciudad. Tú sabrás qué hacer. + +[MOB_10E] +De acuerdo, Steve, estaré al tanto. Te veo luego. + +[MOB_11A] +¿Qué hay, hijo? Pensé sólo en llamarte para darte algún consejo. + +[MOB_11B] +Hola, Avery. ¿Qué te preocupa? + +[MOB_11C] +Hay muchas oportunidades en esta ciudad si dispones de las propiedades adecuadas, ¿entiendes lo que quiero decir? + +[MOB_11D] +Creo que sí... + +[MOB_11E] +Lo que digo es que mantengas los ojos abiertos y podrás encontrar la oportunidad de negocio perfecta. Te veré luego. + +[MOB_11F] +Nos vemos, Avery. + +[MOB12_A] +¡Eh, Tommy, soy Avery! Ahora escucha, estoy muy liado en este momento + +[MOB12_B] +y uno de mis representantes necesita carabina para ir a Gator Keys. + +[MOB12_C] +Estoy detrás de unas tierras por allí, así que voy a enviar alguien a que ablande el trato. + +[MOB12_D] +Podrías hacerme un favor y asegurarte de que llega allí, ¿entendido? + +[MOB12_E] +Sí, eso está hecho, Avery. ¿Dónde te gustaría que le recogiese? + +[MOB12_F] +Está terminando algunos negocios en la obra. Le dije que le recogerías allí. + +[MOB12_G] +Ningún problema. Nos vemos, Avery. + +[MOB13_A] +¿Vercetti? ¡VERCETTI! ¡Maldito seas, tío, tienes que ayudarme! + +[MOB13_B] +¿Sr. Moffat? ¿Cómo le va la vida en familia? + +[MOB13_C] +Maldito seas, DEMONIOS, ¿me oyes? + +[MOB13_D] +Bueno, fue agradable charlar... + +[MOB13_E] +¡ESPERA! Espera, Vercetti Tommy, ¿Puedo llamarte Tommy? + +[MOB13_F] +Los dos somos hombres de negocios, ¿verdad? Reconoces un buen negocio cuando lo ves. + +[MOB13_G] +No tengo tiempo para charlar, vaya al grano. + +[MOB13_H] +DINERO. El dinero es el maldito asunto. + +[MOB13_I] +Me escapado de la trena otra vez, pero nunca tardan mucho en encontrarme... ¡creen que es un maldito juego! + +[MOB13_J] +Estoy en un teléfono público en alguna parte de este agujero de mierda olvidado de la mano de Dios. + +[MOB13_K] +Sácame de aquí antes de que me lleven de vuelta y... oh... Dios... + +[MOB13_L] +Bueno, estoy ocupado durante las próximas... + +[MOB13_M] +¡No! ¡No me jodas, ten piedad! Ningún hombre debería tener que hacer esas, esas cosas. + +[MOB13_N] +Estoy de rodillas, Tommy, en el fango, rogándote, por favor... + +[MOB13_O] +Supongo que podría desviarme hacia allí, veré si puedo localizarte... + +[MOB13_P] +Oh, Dios, ya vienen. Por el amor de Dios, date prisa, ¡date prisa! + +[MOB_14A] +Hola, Tommy, me vas a adorar, amigo. + +[MOB_14B] +Un pajarito me ha dicho que la división SWAT de Vice City tiene un depósito en una entidad bancaria ciertamente grande, + +[MOB_14C] +donde guardan todos los sobornos que han recibido durante estos años, + +[MOB_14D] +¡como una especie de fondo de retiro para los veteranos! + +[MOB_14E] +Por supuesto, si esta información te ayudase a adquirir parte de ese dinero, + +[MOB_14F] +¿Supongo que te sentirías obligado a mandarme algo? + +[MOB_14G] +Lo tendré en mente, gracias Kent. + +[MOB_14H] +Es Paul. Soy de Kent, cerca de Londres, idiota. + +[MOB_14I] +Mi conocimiento de la geografía provincial inglesa ya no es lo que era. + +[MOB15_A] +Tommy, colega, soy Paul, de Kent, + +[MOB15_B] +un par de titis han escrito tu nombre por todas partes, en el Malibú. + +[MOB15_C] +¿De qué estás hablando? + +[MOB15_D] +Tías. Palomitas. Ya sabes. Chicas. De las buenas, no creas que son furcias ni nada por el estilo. + +[MOB15_E] +Tienes que venir a echarles un vistazo. + +[MOB16_A] +Tommy, aquí Paulo, ¿qué pasa amigo? + +[MOB16_B] +¿Qué quieres Paul? No quiero ropa de imitación. + +[MOB16_C] +Muy divertido, colega, pero yo no toco la ropa falsificada. + +[MOB16_D] +Nada, sólo llamaba para ver si consigo un papel en una de tus películas, + +[MOB16_E] +en Inglaterra hice un montón de porno, colega. + +[MOB16_F] +Guardo más fuego que tu, hijo mío. + +[MOB16_G] +Paul, gracias por la oferta, lo tendré en mente. + +[MOB16_H] +En serio, no te olvides de mí, después de todo lo que he hecho por ti. + +[MOB16_I] +Eso es lo que estoy intentando olvidar. + +[MOB19_A] +Tommy V, aquí KP. Kent Paul. En las calles se dice que hay gente que te quiere despellejar. + +[MOB19_B] +Mantén los ojos abiertos. Y recuerda, yo no te he dicho nada de esto. + +[MOB_20A] +De acuerdo, Tommy, soy Paul. Me ha dicho un pajarito que has sido un chico muy malo. + +[MOB_20B] +A alguien le ha ofendido que de repente estés actuando como si fueses el mandamás, dándote aires de grandeza. + +[MOB_20C] +Bueno, no digas que nunca te advertí. Presumir es un juego de tontos, hijo. + +[MOB_20D] +En cualquier caso, oí que se ha puesto un precio a tu cabeza y que alguien te la va a partir, + +[MOB_20E] +así que ten cuidado, y acuérdate de mí, colega. + +[MOB21_A] +Tommy, Thomas, soy Cortez. ¿Qué pasa? + +[MOB21_B] +Las cosas van bien. ¿Cómo estás? + +[MOB21_G] +De todos modos, Tommy, quisiera preguntarte algo sobre Mercedes. + +[MOB21_H] +¿Sí? ¿Qué pasa con ella? + +[MOB21_I] +Oh Tommy, Tommy, oigo todas esas historias y no sé qué pensar. + +[MOB21_K] +Quizás ella piense que puede hacer lo que quiera ahora que pero dime, Tommy, ¿es verdad? + +[MOB21_M] +¿El qué es verdad? + +[MOB21_N] +Las historias que he oído. ¿De verdad va a ser abogada? + +[MOB21_O] +Oh Tommy, la vergüenza. Los Cortez somos una familia orgullosa + +[MOB21_P] +y nunca permitiríamos que una hija nuestra se convirtiese en abogada. Por favor, dime que no es así. No creo que pudiese soportarlo. + +[MOB21_Q] +Coronel, puedo asegurarle que Mercedes nunca será abogada. No tema. + +[MOB21_R] +Gracias, Tommy, gracias. La vergüenza sería insoportable. + +[MOB21_S] +Lo sé, coronel. + +[MOB21_T] +Bueno, Tommy, debes perdonarme, ha llegado el nuevo ministro de interior. + +[MOB21_U] +Hace muchos años, yo maté a su padre en un golpe fallido así que debo ser cortés. Buenos días, amigo. + +[MOB21_C] +Tommy, aquí siempre es una lucha. Siento el ruido, acabamos de tener otro golpe fallido. + +[MOB21_D] +La gente es la señora más exigente de todas. + +[MOB21_E] +Desde que he vuelto de Vice City y hasta ahora, hemos tenido tres revoluciones y cuatro golpes. + +[MOB21_F] +Afortunadamente, me han ascendido cada vez. + +[MOB21_J] +Quizás todo el mundo me está humillando. + +[MOB21_L] +pero dime, Tommy, ¿es verdad? + +[MOB22_A] +Tommy, estás demostrando ser muy útil, amigo mío. + +[MOB22_B] +Gracias, Cortez. ¿Qué hay de mi asunto? + +[MOB22_C] +Tommy, estoy trabajando infatigablemente en tu nombre para conseguir llegar al fondo de esta zanja de apestosas mentiras y engaños, + +[MOB22_D] +tienes mi palabra al respecto, pero mientras tanto, + +[MOB22_E] +por favor, acepta el estimable agradecimiento de mi gente por tu trabajo para nosotros. + +[MOB_25A] +Tommy, soy Cortez. Los franceses me están causando todo tipo de problemas. + +[MOB_25B] +Malditos hipócritas. ¡Se pasan cien años robando a países pobres y me llaman ladrón a mí! + +[MOB_25C] +Voy a necesitar tu ayuda tan pronto como sea posible. + +[MOB_25D] +Por favor, Tommy, date prisa, te necesito, ¿de acuerdo? Odio a esos malditos franceses. + +[MOB_26A] +Hola, ¿Tommy? + +[MOB_26B] +¿Sí? + +[MOB_26C] +Soy Baker. Sólo quería decirte que verdaderamente disfruté con el espectáculo. + +[MOB_26D] +Los chicos y yo queremos darte las gracias, y recordarte, + +[MOB_26E] +que te tienes nuestro respeto. Buenos días. Sigue cabalgando duro, chico. + +[MOB_29A] +Hola, ¿hablo con el Sr. Tommy Vercetti? + +[MOB_29B] +Sí. + +[MOB_29C] +Bueno, he oído por radio macuto que usted es el hombre que hay que buscar cuando alguien tiene una plaga de bichos. + +[MOB_29D] +Puede... + +[MOB_29E] +Bueno, yo tengo una plaga de bichos de verdad. Haitianos, por todas partes. + +[MOB_29F] +Mi nombre es Umberto Robina y quiero que nos reunamos en el Café Robina lo antes posible, + +[MOB_29G] +porque, como le digo, estos malditos haitianos se han pasado de la raya esta vez. + +[MOB_29H] +Prueba + +[MOB_30A] +Tommy, soy Umberto Robina. + +[MOB_30B] +¿Cómo está el café? + +[MOB_30C] +Oh, maravilloso. Increíble. Tommy, increíble. Sin blandengues, Tommy, sólo hombres de verdad, ya sabes, ¡y las mujeres hermosas! + +[MOB_30D] +De todos modos, quería decirte que para papá y para mí, para nosotros, ahora eres un cubano. + +[MOB_30E] +Has demostrado que tienes unas pelotas de cojones, tío. + +[MOB_30F] +Gracias, Umberto. Nadie me había dicho eso desde que salí de la cárcel. Nos vemos. + +[MOB_33A] +Tommy, soy Phil, olvida toda esa mierda del pasado y escúchame, ¿me oyes? + +[MOB_33B] +Bien. Tengo un pelotazo extra a punto de fermentar y me preguntaba si te apetecería probarlo. + +[MOB_33C] +En serio, Tommy, si quieres una copa, o si necesitas ponerte a tono, este material hará de ti un hombre. + +[MOB_33D] +A mí me pasó aunque todavía no puedo ver por un ojo. Te estaré esperando, lo que oyes. + +[MOB_34A] +Tommy, de verdad que he disfrutado trabajando contigo. No me había divertido tanto desde la loma en Vietnam, colega. + +[MOB_34B] +De todas formas, si necesitas algo, llámame, ¿me oyes? + +[MOB_34C] +Siempre me acuerdo de aquellos con los que he servido, + +[MOB_34D] +y estoy seguro de que puedo ayudarte, ¿me oyes? + +[MOB_35A] +Tommy, la herida está cicatrizando bien. Lo gracioso es + +[MOB_35B] +que he luchado en 6 zonas de combate y siempre he salido sin un rasguño, ¡y ahora esto! + +[MOB_35C] +Phil el manco. Aún así, tengo una buena selección armas de fuego para mancos, así que nunca seré Phil el desarmado, lo que oyes. + +[MOB_35D] +Venga, hijo, corta con esa mierda sentimental y pídete una copa, ¡me oyes! + +[MOB_36A] +Tommy, soy Phil, quiero darte las gracias por ayudarme allí, hijo, + +[MOB_36B] +maldito Charlie, siempre te tenderá una emboscada de un modo o de otro. + +[MOB_36C] +Bueno, la herida está cicatrizando bien, y eso quiere decir que voy a dejar de estafar al gobierno con mi cheque de incapacidad. Gracias, colega. + +[MOB_40A] +Eh, Tommy, soy Sonny. ¿Qué tal el bronceado? + +[MOB_40B] +No tengo bronceado. + +[MOB_40C] +Bueno, tampoco tienes mi dinero, así que me estoy preguntando, + +[MOB_40D] +¿qué estás haciendo? Así que, dime Tommy ¿qué estás haciendo? + +[MOB_40E] +Estoy buscando el dinero, Sonny. No te preocupes. + +[MOB_40F] +Me estoy preocupando, Tommy, ese es mi estilo, + +[MOB_40G] +porque parece que en mi vida tengo este problema con gente que no es de confianza. + +[MOB_40H] +No seas una persona poco fiable, Tommy, por favor. + +[MOB_40I] +Haznos un favor. Tengo muchas ganas de tener noticias tuyas. + +[MOB_41A] +Tommy, ¿te acuerdas de mí? + +[MOB_41B] +Hola, Sonny. + +[MOB_41C] +Sí, está bien, Sonny. Somos viejos amigos, + +[MOB_41D] +y nunca me escribes, nunca llamas. ¿No quieres que sigamos siendo amigos? + +[MOB_41E] +He estado muy ocupado intentando arreglar las cosas. No me diste mucho apoyo. + +[MOB_41F] +Oh, y es culpa mía, ¿verdad? Bueno, he oído que has estado muy ocupado. + +[MOB_41G] +Ocupado matando a capos. Ocupado tomando el poder. + +[MOB_41H] +No te olvides de nosotros, Tommy, porque puedo asegurarte que yo no me he olvidado de ti. + +[MOB_42A] +Tommy. + +[MOB_42B] +Sonny. + +[MOB_42C] +Obviamente tienes un problema a la hora de escuchar a los demás, de modo que lo intentaré de nuevo. + +[MOB_42D] +Tommy, ¿dónde está el maldito dinero, dónde está el maldito material y dónde está mi parte de tus nuevos golpes? + +[MOB_42E] +Me estás haciendo quedar como un idiota, Tommy, y no me hace gracia. + +[MOB_43A] +Tommy, Tommy, Tommy, tenía a Sonny al teléfono, de acuerdo, ¿me sigues? + +[MOB_43B] +No sé tú, pero hay algo sobre un hombre que amenaza con asesinar a mi familia + +[MOB_43C] +que realmente me pone enfermo. ¿Qué vas a hacer? + +[MOB_43D] +Ten calma, Ken, todo irá bien. + +[MOB_43E] +¡ESTOY calmado, todo lo calmado que puede estar un hombre cuando teme por su vida! + +[MOB_43F] +Ken, ahora mismo tengo otras cosas en la cabeza, + +[MOB_43G] +nos ocuparemos de Forelli cuando llegue el momento. + +[MOB_43H] +Estoy calmado. ¿No te lo parece? Debe ser la muerte inminente la que le hace esto a mi voz. + +[MOB45_A] +Tommy, tenemos cosas de las que hablar. + +[MOB45_B] +¿Cuál es el problema, Lance? + +[MOB45_C] +Eres tú, amigo, creo que no me estás dando una tajada justa. + +[MOB45_D] +Y lo que es más, me estás avergonzando delante de los chicos. No puedo permitirlo. + +[MOB45_E] +Lance, las cosas no son así. Has estado cometiendo errores. + +[MOB45_F] +Tommy, no soy tu chico de los recados. No soy tu emisario. + +[MOB45_G] +Lance, no la cagues, y no tendremos ningún problema. Si la cago yo, entonces podrás venir a reprochármelo en cualquier momento. + +[MOB45_H] +Tommy, he hecho de todo por ti, pero me tratas como si fuese estúpido. No hagas eso. + +[MOB45_I] +Lance no te voy a timar ni a apuñalarte por la espalda, de acuerdo. + +[MOB45_J] +Tómatelo con calma. Esto ya es lo suficientemente duro sin que te me pongas sentimental. + +[MOB45_K] +Confía en mí. ¿Me oyes, me oyes? + +[MOB45_L] +Te oigo, pero Tommy, no puedo aguantar esto por más tiempo. + +[MOB45_M] +Lance, no seas así. Ahora te estoy dando un aviso. + +[MOB45_N] +¿Me oyes? Relájate, tómate unos días libres, y luego hablaremos, ¿vale? + +[MOB46_A] +¡Eh, Tommy! Soy Lance. + +[MOB46_B] +¿Sí? + +[MOB46_C] +Me alegro tanto de tener noticias tuyas, Lance. Venga, tío, enróllate, enróllate. + +[MOB46_D] +Estoy ocupado. ¿Qué quieres? + +[MOB46_E] +Nada. Solo llamo para decirte, ya sabes. Mira Tommy, podemos hacer esto. + +[MOB46_F] +Tú y yo, sin ningún problema. ¿Sabes lo que quiero decir? + +[MOB46_G] +Vamos a tener que hacerlo, porque de otro modo, estaremos muertos, Lance. + +[MOB46_H] +Ya hemos ido demasiado lejos. Pero gracias por llamar. Hablaré contigo más tarde. + +[MOB_47A] +Tommy, Lance, tenemos problemas serios. Ven aquí. Enseguida. + +[MOB52_A] +Eh, Leo, creo que tengo un comprador para la mercancía de Díaz. + +[MOB52_B] +Tienes que llamarle, tío, montar el trato, ¿sabes? + +[MOB52_C] +¿Dónde estás? + +[MOB52_D] +¿Estás bien, Leo? Te noto un tanto diferente. + +[MOB52_E] +Simplemente dime dónde estás. + +[MOB52_F] +¿Quién demonios eres? ¡Que se ponga Leo! + +[MOB52_G] +Leo se ha ido de viaje unos días, me dejó al cargo de todo. + +[MOB52_H] +¡Que te jodan, tío! + +[MOB54_A] +¡Hola, Tommy! + +[MOB54_B] +Hola, Mercedes, ¿cómo te va? + +[MOB54_C] +Tengo un apartamento nuevo en Vice Point, + +[MOB54_D] +pensé que quizás querrías pasarte en algún momento. + +[MOB54_E] +Me encantaría. Te veo luego. + +[MOB55_A] +Tommy, soy yo. + +[MOB55_B] +Hola, Mercedes. + +[MOB55_C] +Tommy, estoy tan aburrida, ¿cuándo vamos a divertirnos un poco? + +[MOB55_D] +¿Qué quieres decir? + +[MOB55_E] +Bueno, sé que estás ocupado luchando y matando y sobornando a gente, + +[MOB55_F] +pero yo sólo quiero divertirme un poco. Así que no te olvides de mí, ¿me oyes? + +[MOB56_A] +Tommy, oí que te cargaste a Ricardo Díaz. + +[MOB56_B] +Hubo un desafortunado tiroteo en su mansión. + +[MOB56_C] +Creo que se quemó hasta morir en su camisa acrílica. + +[MOB56_D] +Tommy, estoy tan orgullosa de ti. Sabía que eras un hombre de verdad. + +[MOB56_E] +Era un marrano en pantalones, me haces sentir muy orgullosa de ser tu amiga. + +[MOB56_F] +No, sé que vas a estar ocupado intentando tomar las riendas de esta ciudad, + +[MOB56_G] +pero no te olvides de mí, ¿me oyes? + +[MOB57_A] +Soy Mercedes. Ya no te amo, Tommy. + +[MOB57_B] +Ya no lo hago. De verdad. Porque ya no eres amable con Mercedes. + +[MOB57_C] +Ya no la tratas como una dama. Me ignoras y te odio. + +[MOB57_D] +¡Insisto en que vengas a verme enseguida! + +[MOB58_A] +Tommy. + +[MOB58_B] +Hola, Mercedes. + +[MOB58_C] +Hola, tipo duro. Estoy muy enfadada contigo, Tommy. + +[MOB58_D] +No me hagas ir nunca más por ahí con Jezz Torrent otra vez. + +[MOB58_E] +Es patético. A mitad de camino, empieza a llorar por su perrito + +[MOB58_F] +que murió cuando él tenía siete años y que si su madre nunca le había querido. + +[MOB58_G] +Y Tommy. En privado lleva peluca y sostén. + +[MOB58_H] +¡No estoy muy contenta contigo! + +[MOB59_A] +Ooh Tommy, soy Mercedes. + +[MOB59_B] +Sólo quería decirte que me divertí mucho en el plató de rodaje. + +[MOB59_C] +Cualquier otra cosa que tengas así, me lo dices. + +[MOB59_D] +Lo digo de verdad. Siempre quise ser actriz. + +[MOB59_E] +Creo que aprendí mucho sobre el proceso dramático. + +[MOB59_F] +¡Es tan instructivo! Gracias. Gracias. Hasta muy, muy pronto. Adiós. + +[MOB_99] +Ve al teléfono público del lugar. + +[MOB_98] +Ve al teléfono público del lugar. + +[MOB_97] +Ve al teléfono público del lugar. + +[MOB_96] +Ve al teléfono público del lugar. + +[MOB_95] +Ve al teléfono público del lugar. + +[A_TIME] ++~1~ segundos + +[DODO_FT] +¡Volaste durante ~1~ segundos! + +[GA_8] +Utiliza el detonador para activar la bomba. + +[GA_10] +Muy bien. Aquí están tus ~1~ $. + +[GA_11] +Ya tenemos ese coche. ¡No nos sirve! + +[GA_12] +Bomba activada. + +[GA_13] +Entregado como un profesional. Completa la lista y habrá una bonificación para ti. + +[GA_14] +Todos los coches. ¡ESTUPENDO! Aquí tienes una cosilla. + +[GA_15] +Espero que te guste el nuevo color. + +[GA_16] +Volver a pintarlo es gratis. + +[GA_19] +No estamos interesados en este modelo. + +[GA_20] +Tenemos más de eso de los que podemos colocar. Lo siento, tío, no hay trato. + +[CHASE] +Atención de la prensa + +[CHASE1] +Ignorado + +[CHASE2] +Aburrido + +[CHASE3] +Algo interesante + +[CHASE4] +Página 7 del periódico local + +[CHASE5] +Portada del periódico local + +[CHASE6] +Página 2 del Vice Courier + +[CHASE7] +Portada del Vice Courier + +[CHASE8] +TV Local a las 3 de la mañana + +[CHASE9] +Noticias locales en TV + +[CHASE10] +Cobertura en directo de la TV Local + +[CHASE11] +Página 12 del UFA Today + +[CHASE12] +Página 4 del UFA Today + +[CHASE13] +Imagen en UFA Today + +[CHASE14] +TV Nacional a las 4 de la mañana + +[CHASE15] +Noticias de la TV Nacional + +[CHASE16] +Cobertura en directo de la TV Nacional + +[CHASE17] +Noticias internacionales + +[CHASE18] +Crisis nacional + +[CHASE19] +Crisis internacional + +[CHASE20] +Acontecimiento mundial + +[CHASE21] +Leyenda + +[CR_1] +La grúa no puede levantar este vehículo + +[PU_MONY] +No tienes suficiente dinero. + +[CO_ALL] +Los tienes todos. Aquí tienes una cosilla... + +[FEM_ON] +SÍ + +[FEM_OFF] +NO + +[FEM_YES] +Sí + +[FEM_NO] +No + +[FEM_RET] +REINTENTAR + +[FEC_NA] +NO DISPONIBLE + +[FEC_CWL] +Escoger arma hacia la izquierda + +[FEC_CWR] +Escoger arma hacia la derecha + +[FEC_LOF] +Mirar hacia adelante + +[FEC_TAR] +Objetivo + +[FEC_MOV] +Movimiento + +[FEC_CAM] +Modos de cámara + +[FEC_PAU] +Pausa + +[FEC_ENV] +Entrar en el vehículo + +[FEC_JUM] +Saltar + +[FEC_ATT] +Atacar o disparar arma + +[FEC_RUN] +Correr + +[FEC_FPC] +Cámara en primera persona + +[FEC_LL] +Mirar a la izquierda + +[FEC_LB] +Retrovisor + +[FEC_LR] +Mirar a la derecha + +[FEC_ABR] +Acelerar, frenar o dar marcha atrás + +[FEC_HOR] +Bocina + +[FEC_VES] +Control del vehículo + +[FEC_BRA] +Freno o marcha atrás + +[FEC_HAB] +Freno de mano + +[FEC_CAW] +Arma del vehículo + +[FEC_ACC] +Acelerar + +[FEC_CCF] +Configuración: + +[FEC_CF1] +Configuración 1 + +[FEC_CF2] +Configuración 2 + +[FEC_CF3] +Configuración 3 + +[FEC_CF4] +Configuración 4 + +[FEC_CDP] +Pantalla del mando + +[FEC_ONF] +A pie + +[FEC_INC] +En coche + +[FEC_VIB] +Vibración : + +[FEL_ENG] +Inglés + +[FEL_FRE] +Francés + +[FEL_GER] +Alemán + +[FEL_ITA] +Italiano + +[FEL_SPA] +Español + +[FED_DBG] +Menú de soluciones técnicas + +[FED_RID] +Recargar IDE + +[FED_RIP] +Recargar IPL + +[FED_PAH] +Parse Heap + +[FED_DFL] +CLos guiones::DbgBandera + +[FED_DLS] +Gran luz blanca de solución técnica encendida + +[FED_SPR] +Mostrar grupos de aceras + +[FED_SCR] +Mostrar grupos de carreteras + +[FED_SCZ] +Mostrar zonas de desechos + +[FED_DSR] +Solicitud de solución técnica del streaming + +[FED_SCP] +gbMostrarcolisiónPolys + +[PL_STAT] +Estadísticas del jugador + +[PE_WAST] +Gente que te has cargado + +[PE_WSOT] +Gente eliminada por otros + +[TM_BUST] +Veces detenido + +[GNG_WST] +Miembros de la banda liquidados + +[DED_CRI] +Criminales liquidados + +[PER_COM] +Porcentaje completado + +[KGS_EXP] +Kilogramos de explosivos empleados + +[ACCURA] +Precisión + +[ST_WEAP] +Presupuesto armamentístico + +[ST_PROP] +Presupuesto de propiedades + +[ST_AUTO] +Presupuesto para reparación de coches y pintura + +[ST_PHOT] +Fotografías tomadas + +[ST_LOAN] +Visitas de usureros prestamistas + +[ST_STOR] +Almacenes desvalijados + +[ST_MOVI] +Escenas de especialista + +[ST_PIZZ] +Pizzas entregadas + +[ST_GARB] +Recogidas de basura efectuadas + +[ST_ICEC] +''Helado'' vendido + +[TOP_SHO] +Puntuación máxima en el campo de tiro + +[SHO_RAN] +Clasificación del campo de tiro + +[SEAGULL] +Gaviotas disparadas + +[PROPOWN] +Propiedad en posesión + +[ST_TIME] +Tiempo de juego + +[ST_FTIM] +Horas de vuelo + +[ST_PRAN] +Clasificación de los pilotos + +[ST_RAN0] +Aprendiz + +[ST_RAN1] +Navegante + +[ST_RAN2] +Copiloto + +[ST_RAN3] +Junior + +[ST_RAN4] +Competente + +[ST_RAN5] +Senior + +[ST_RAN6] +As + +[ST_RAN7] +Barón rojo + +[ST_DRWN] +Peces alimentados + +[ST_FASH] +Presupuesto para moda + +[ST_DAMA] +Coste de propiedades destruidas + +[TM_DED] +Visitas al hospital + +[DAYSPS] +Días transcurridos en el juego + +[NUMSHV] +Visitas a pisos francos + +[MXCARD] +Max. Distancia de salto LOCO (pies) + +[MXCARJ] +Max. Altura de salto LOCO (pies) + +[MXCARDM] +Máxima distancia de salto LOCO (m) + +[MXCARJM] +Máxima altura de salto LOCO (m) + +[MXFLIP] +Máximas vueltas de salto LOCO + +[MXJUMP] +Máxima rotación de salto LOCO + +[BUL_FIR] +Balas disparadas + +[BUL_HIT] +Aciertos + +[SPRAYIN] +Pintura + +[BSTSTU] +Mejor maniobra LOCA hasta ahora + +[INSTUN] +Maniobra loca + +[PRINST] +Maniobra loca perfecta + +[DBINST] +Maniobra loca doble + +[DBPINS] +Maniobra loca doble perfecta + +[TRINST] +Maniobra loca triple + +[PRTRST] +Maniobra loca triple perfecta + +[QUINST] +Maniobra loca cuádruple + +[PQUINS] +Maniobra loca cuádruple perfecta + +[NOSTUC] +No se ha completado ninguna + +[NOUNIF] +Saltos únicos completados + +[NMISON] +Intentos de misión + +[PASDRO] +Pasajeros en destino + +[MONTAX] +Dinero conseguido con el taxi + +[DAYPLC] +Gastos diarios provocados a la policía + +[CRIMRA] +Tasa criminal: + +[STPR_1] +El Malibú + +[STPR_2] +Imprenta + +[STPR_3] +Estudio de cine + +[STPR_4] +Fábrica de helados + +[STPR_5] +Salón de coches + +[STPR_6] +Compañía de taxis + +[STPR_7] +Astillero + +[SET1EN] +Configuración 1. Activada + +[GMSAVE] +Guardar partida + +[FEDS_TB] +Volver + +[FEST_OO] +de + +[FEC_TUC] +Control de la torreta + +[FEC_RS3] +Cambiar emisora de radio (Botón L3) + +[FEC_HO3] +Bocina (Botón L3) + +[C_FAIL] +¡Misión de justiciero terminada! + +[C_ESCP] +~r~¡El sospechoso ha escapado! + +[C_VIGIL] +¡BONIFICACIÓN DE JUSTICIERO! + +[HEAL_A] +Tu ~h~salud~w~ aparece en naranja en la parte superior derecha de la pantalla. + +[WRONGCD] +Disco incorrecto. Introduce el disco correcto. + +[NOCD] +La bandeja del disco está vacía. Por favor, inserta el disco. + +[OPENCD] +La bandeja del disco está abierta. Por favor, cierra la bandeja de disco. + +[CDERROR] +Error al leer el DVD de Grand Theft Auto: Vice City + +[RESTART] +Iniciando nueva partida + +[GA_3] +No hay más regalitos. ¡100 $ para volver a pintar! + +[GA_1] +¡Hala! ¡Demasiado peligroso para mi gusto! + +[GA_1A] +Vuelve cuando no estés tan ocupado... + +[HELP9_C] +Pulsa ~h~~k~~k~~PED_FIREWEAPON~~w~para ~h~disparar~w~ el fusil de francotirador. + +[TAXI2] +~r~¡Te has quedado sin tiempo! + +[PAGEB13] +Salud entregada en el escondite + +[PAGEB14] +Adrenalina entregada en el escondite + +[FESZ_CA] +Cancelar + +[FES_NGA] +Nueva partida + +[FES_CAN] +Cancelar + +[FESZ_QL] +Todo el progreso no guardado de tu partida actual se perderá. ¿Continuar cargando? + +[FESZ_QD] +¿Proceder a borrar esta partida guardada? + +[FESZ_QO] +¿Proceder para sobrescribir esta partida guardada? + +[FESZ_QR] +¿Seguro que quieres empezar una nueva partida? Todo el progreso desde la última partida guardada se perderá. ¿Continuar? + +[T4X4_1] +Prueba de PCJ + +[BMX_1] +Trial de tierra + +[BMX_2] +Pista de pruebas + +[BMXFAIL] +~r~¡No has conseguido un nuevo récord! + +[BMX_REC] +~g~¡Nuevo récord establecido: ~1~! + +[T4X4_3] +¡AGARRADO! + +[MM_1] +CONOCIRCUITO + +[T4X4_F] +~r~¡Te rajaste! ¿Demasiado duro para ti? [LANDSTK] Landstalker @@ -740,7 +1916,7 @@ Idaho Stinger [LINERUN] -Camión articulado +Linerunner [PEREN] Perennial @@ -748,26 +1924,29 @@ Perennial [SENTINL] Sentinel +[RIO] +Río + [PATRIOT] Patriot [FIRETRK] -Coche de bomberos +Camión de bomberos [TRASHM] -Camión de la basura +Trashmaster [STRETCH] -Stretch +Limusina [MANANA] -Manana +Mañana [INFERNS] Infernus -[BLISTA] -Blista +[VOODOO] +Voodoo [PONY] Pony @@ -782,7 +1961,7 @@ Cheetah Ambulancia [FBICAR] -Coche del FBI +FBI Washington [MOONBM] Moonbeam @@ -793,23 +1972,26 @@ Esperanto [TAXI] Taxi -[KURUMA] -Kuruma +[WASHING] +Washington [BOBCAT] Bobcat [WHOOPEE] -Mr. Whoopee +Mr Whoopee [BFINJC] -BF Inyección +BF Injection + +[HUNTER] +Hunter [POLICAR] Policía [ENFORCR] -Furgón policial +Enforcer [SECURI] Securicar @@ -829,11 +2011,8 @@ Rhino [BARRCKS] Barracks OL -[BARRACK] -Barracks OL - -[TRAIN] -Tren +[CUBAN] +Cuban Hermes [HELI] Helicóptero @@ -845,7 +2024,7 @@ Dodo Autocar [CABBIE] -'Cabbie' +Taxi clásico [STALION] Stallion @@ -856,101 +2035,59 @@ Rumpo [RCBANDT] Bandit RC -[BELLYUP] -Furgón de pescado de la Tríada +[ROMERO] +Romero's Hearse -[MRWONGS] -Mr. Wongs +[PACKER] +Packer -[MAFIACR] -Sentinel de Leone +[ADMIRAL] +Admiral -[YARDICR] -Lobo de los Yardies +[SQUALO] +Squalo -[YAKUZCR] -Stinger de la Yakuza +[SEASPAR] +Sea Sparrow -[DIABLCR] -Stallion de los Diablos +[PIZZABO] +Pizza Boy -[COLOMCR] -Cruiser del Cártel +[GANGBUR] +Gang Burrito -[HOODSCR] -Rumpo XL de los Hoods - -[AEROPL] -Avión +[TROPIC] +Tropic [SPEEDER] -Planeadora +Speeder [REEFER] Reefer -[PANLANT] -Panlantic - [FLATBED] -Camión remolcador +Flatbed [YANKEE] Yankee -[BORGNIN] -Bickle'76 +[CADDY] +Caddy -[TOYZ] -TOYZ +[ZEBRA] +Taxi cebra -[MCLARN] -Lancer MF1 +[TOPFUN] +Top Fun -[SHELBY] -Hellenbach GT +[SKIMMER] +Skimmer -[SUBARU] -Impreza WRX +[PCJ600] +PCJ 600 -[SUPRA] -Supra - -[SKYLINE] -Skoiloine - -[CYCLONE] -Cyclone GT - -[ESPRIT] -V8 Ghost - -[MINI] -Tommy - -[HOTROD] -Thunder-Rodd - -[CAMPVAN] -Rumpo de la campaña - -[BALLOT] -Camioneta electoral - -[GHOST] -Ghost - -[ANGEL] -Angel - -[ANGEL2] -Avenger - -[PIZZABO] -Repartidor de pizzas - -[NOODLBO] -Repartidor del chino +[PHOENIX] +Phoenix [FAGGIO] Faggio @@ -958,1763 +2095,92 @@ Faggio [FREEWAY] Freeway +[RCBARON] +Barón RC + +[RCRAIDE] +Raider RC + +[GLENDAL] +Glendale + +[OCEANIC] +Oceanic + [SANCHEZ] -Sánchez +Sanchez -[SANCH2] -Mánchez +[SPARROW] +Sparrow -[F_PASS1] -~w~¡Fuego apagado! Recompensa: ~1~ $ +[LOVEFIS] +Love Fist -[F_RANGE] -~r~La radio del coche de bomberos no recibe nada, ¡acércate a un parque de bomberos! +[COASTG] +Guardacostas -[C0TGSUB] -botón R3 +[DINGHY] +Dinghy -[C0VESTR] -joystick analógico izquierdo, o botones de dirección izquierdo y derecho +[HERMES] +Hermes -[C1VESTR] -joystick analógico izquierdo +[SABRE] +Sabre -[C2VESTR] -joystick analógico izquierdo, o botones de dirección izquierdo y derecho +[SABRETU] +Sabre Turbo -[C3VESTR] -joystick analógico izquierdo +[WALTON] +Walton -[C2VEHB] -~T~ +[REGINA] +Regina -[C3VEHB] -botón L1 +[COMET] +Comet -[C0VEHN] -botón L3 +[DELUXO] +Deluxo -[C0VELL] -botón L2 +[BURRITO] +Burrito -[C1VELL] -botón L2 +[SPAND] +Spand Express -[C2VELL] -botón L2 +[MARQUIS] +Marquis -[C3VELL] -botón L2 +[BAGGAGE] +Mozo de equipaje -[C0VELR] -botón R2 +[KAUFMAN] +Taxi Kaufman -[C1VELR] -botón R2 +[COASTMA] +Guardacostas Maverick -[C2VELR] -botón R2 +[MAVERIC] +Maverick -[C3VELR] -botón R2 +[RANCHER] +Rancher -[C0VELB] -botón L2 y botón R2 +[FBIRANC] +FBI Rancher -[C1VELB] -botón L2 y botón R2 +[VIRGO] +Virgo -[C2VELB] -botón L2 y botón R2 +[GREENWO] +Greenwood -[C3VELB] -botón L2 y botón R2 +[HOTRING] +Hotring Racer -[C0VECRS] -botón L1 - -[C1VECRS] -botón SELECT - -[C0VEWEI] -joystick analógico izquierdo hacia arriba y abajo, o pulsa botones de dirección arriba y abajo - -[C1VEWEI] -joystick analógico izquierdo hacia arriba y abajo - -[C2VEWEI] -joystick analógico izquierdo hacia arriba y abajo, o pulsa botones de dirección arriba y abajo - -[C3VEWEI] -joystick analógico izquierdo hacia arriba y abajo - -[C0PDCWE] -botón L2 y botón R2 - -[C1PDCWE] -botón L2 y botón R2 - -[C0PUCF] -botón L1 - -[C1PUCF] -botón L1 - -[C2PUCF] -~T~ - -[C3PUCF] -~O~ - -[C0PDLT] -botón R1 - -[C1PDLT] -botón R1 - -[C2PDLT] -botón R1 - -[C3PDLT] -botón L1 - -[C0PDCTL] -botón L2 y botón R2 - -[C1PDCTL] -botón L2 y botón R2 - -[C2PDCTL] -botón L2 y botón R2 - -[C3PDCTL] -botón L2 y botón R2 - -[C0CVEIW] -botón SELECT - -[C1CVEIW] -botones de dirección arriba y abajo - -[C2CVEIW] -botón SELECT - -[C3CVEIW] -botón SELECT - -[C0PDBAK] -botón R3 - -[C1PDBAK] -botón R3 - -[C2PDBAK] -botón R3 - -[C3PDBAK] -botón R3 - -[C0PDLO1] -botón L - -[C1PDLO1] -botón L - -[C2PDLO1] -botón L - -[C3PDLO1] -botón L - -[C0PDLO2] -pad analógico - -[C2PDLO2] -pad analógico - -[C0ANS] -botón L1 - -[C1ANS] -botón L1 - -[C2ANS] -botón L1 - -[C3ANS] -botón L1 - -[WEATHER] -FORCE WEATHER - -[WEATHE2] -CLIMA NORMAL - -[GA_4] -~w~Las bombas de coche cuestan 500 $ c/u. - -[GA_5] -~w~Tu vehículo ya va equipado con una bomba. - -[GA_6] -Aparca, activa la bomba pulsando~h~ ~k~ ~PED_FIREWEAPON~ ~w~¡y A CORRER! - -[GA_7] -~w~Activa la bomba con ~h~ ~k~ ~PED_FIREWEAPON~ ~w~. Estallará cuando el motor arranque. - -[GA_8] -~w~Usa el detonador para activar la bomba. - -[GA_9] -Has reunido ~1~ de 10 coches especiales. - -[GA_10] -Muy bien. Aquí tienes tus ~1~ $. - -[GA_11] -Ya tenemos ese vehículo. ¡Éste no nos sirve de nada! - -[GA_12] -Bomba activada - -[GA_13] -Eres todo un profesional. Completa la lista y tendrás una bonificación. - -[GA_14] -Todos los coches. ¡BIEN! Toma una pequeña recompensa. - -[GA_15] -~w~Espero que te guste el nuevo color. - -[GA_17] -~w~¡Nuevo motor y capa de pintura! - -[GA_19] -No nos interesa ese modelo. - -[GA_20] -Tenemos más de ésos de los que queremos. Tío, no hay trato. - -[GA_22] -~w~No puedes poner una bomba en una moto. - -[GA_23] -~w~Bomba colocada. Piezas y mano de obra: 500 $ - -[GA_24] -~w~Bomba colocada. ¡Ésta corre a cuenta de la casa! - -[CR_1] -~w~La grúa no puede levantar este vehículo. - -[PU_MONY] -~w~No tienes suficiente dinero. - -[PAUSED] -PARTIDA EN PAUSA - -[FEB_STA] -Estad. - -[FEB_MAP] -Mapa - -[FEB_BRI] -Instrucc. - -[FEB_CON] -Controles - -[FEB_DIS] -Pantalla - -[FEB_LAN] -Idioma - -[FEP_STA] -ESTADÍSTICAS - -[FEP_MAP] -MAPA - -[FEP_BRI] -INSTRUCCIONES - -[FEP_CON] -CONTROLES - -[FEP_DIS] -PANTALLA - -[FEP_LAN] -IDIOMA: - -[FEF_ST1] -¿Quién es el malo? - -[FEF_ST2] -Cuánta destrucción has causado. - -[FEF_BR1] -¿Has perdido el hilo? - -[FEF_CO1] -¿Necesitas más control, pringao? - -[FEF_SA1] -Keep your place in the pile! - -[FEF_SA2] -Guarda y carga las partidas. - -[FEF_AU1] -¡Dale caña! - -[FEF_AU2] -Elige una emisora y un efecto de sonido. - -[FEF_DI1] -¡Cambia el juego! - -[FEF_DI2] -Ajusta el juego a tu tele. - -[FEF_LA1] -¿Me estás hablando en chino? - -[FEF_LA2] -Elige el idioma que prefieras. - -[FEM_ON] -SÍ - -[FEM_OFF] -NO - -[FEM_YES] -Sí - -[FEM_NO] -No - -[FEM_NON] -Nada - -[FEI_SEL] -Seleccionar - -[FEI_TAR] -Objetivo Sí/No - -[FEI_BAC] -Atrás - -[FEI_RES] -Reanudar - -[FEI_NAV] -Mover - -[FEI_BTX] -/ - -[FEI_BTT] -" - -[FEI_STA] -START (inicio) - -[FEI_BTD] -pad analógico - -[FEI_BTU] -;= - -[FEI_R1B] -L \ R - -[FEI_SCR] -Desplazar - -[FEI_ZOO] -Zoom - -[FEH_STA] -ESTADÍSTICAS - -[FEH_CON] -CONTROLES - -[FEH_LAN] -IDIOMA - -[FET_SG] -GUARDAR PARTIDA - -[FEH_BRI] -INSTRUCCIONES - -[FEH_DIS] -PANTALLA - -[FEH_MAP] -MAPA - -[FEM_OK] -ACEPTAR - -[FEC_CRO] -Agacharse - -[FE_MLG] -LEYENDA DEL MAPA - -[MAP_LEG] -LEYENDA: - -[LG_01] -Posición del jugador - -[LG_13] -Ammu-Nation - -[LG_16] -Piso franco - -[LG_22] -Pay 'n' Spray - -[LG_23] -Mr. Benz - -[LG_25] -Teléfono - -[LG_26] -Emisora Wildstyle - -[LG_27] -Emisora Flash FM - -[LG_28] -Emisora KChat - -[LG_29] -Emisora Fever 105 - -[LG_30] -Emisora VROck - -[LG_31] -Emisora VCPR - -[LG_32] -Emisora Espantoso - -[LG_33] -Emisora Emotion 98.3 - -[LG_34] -Emisora Wave 103 - -[LG_35] -Destino - -[LG_36] -Sun Yard - -[LG_37] -Club de striptease - -[LG_38] -8-Ball - -[LG_39] -Confesionario - -[LG_40] -Mamá Cipriani - -[LG_41] -Donald Love - -[LG_42] -J.D. O'Toole - -[LG_43] -Salvatore Leone - -[LG_44] -María - -[LG_45] -McAffrey - -[LG_46] -Toshiko Kasen - -[LG_47] -Vincenzo Cilli - -[LG_48] -Taller de bombas - -[LG_49] -Tienda de ropa - -[LG_50] -Phil Cassidy's - -[LG_51] -Amenaza - -[LG_52] -Amigo - -[LG_53] -Objeto - -[LG_54] -Objetivo del jugador - -[FEB_PMB] -Instrucciones de misiones previas: - -[FEC_NA] -N/D - -[FEC_CWL] -Cambiar de arma (izq.) - -[FEC_CWR] -Cambiar de arma (der.) - -[FEC_CW] -Cambiar de arma - -[FEC_CT] -Cambiar de objetivo - -[FEC_TAR] -Apuntar - -[FEC_MOV] -Movimiento - -[FEC_CAM] -Modos de cámara - -[FEC_PAU] -Pausa - -[FEC_ENV] -Entrar en vehículo - -[FEC_JUM] -Saltar - -[FEC_ATT] -Atacar/disparar - -[FEC_RUN] -Correr - -[FEC_FPC] -Mirar - -[FEC_LL] -Mirar a la izquierda - -[FEC_LB1] -Mirar - -[FEC_LB2] -atrás - -[FEC_LB] -Mirar atrás - -[FEC_LR] -Mirar a la derecha - -[FEC_HOR] -Claxon - -[FEC_VES] -Control del vehículo - -[FEC_RSC] -Cambiar de emisora - -[FEC_BRA] -Freno o marcha atrás - -[FEC_HAB] -Freno de mano - -[FEC_CAW] -Arma del vehículo - -[FEC_ACC] -Acelerar - -[FEC_SMT] -Misión especial - -[FEC_CCF] -CONFIGURACIÓN: - -[FEC_CF1] -CONFIG. 1 - -[FEC_CF2] -CONFIG. 2 - -[FEC_CF3] -CONFIG. 3 - -[FEC_CF4] -CONFIG. 4 - -[FEC_CDP] -TIPO: - -[FEC_ONF] -A PIE - -[FEC_INC] -EN VEHÍCULO - -[FEC_VIB] -VIBRACIÓN: - -[FEC_ILU] -INVERTIR VISTA: - -[FEC_SWP] -MOVIM. DEL JUGADOR: - -[FEC_AS] -pad analógico - -[FEC_DP] -botones de dirección - -[FEA_OUT] -Salida: - -[FEA_ST] -Estéreo - -[FEA_MNO] -Mono - -[FEA_CTD] -¡Atención! Esta prestación necesita que se conecte hardware compatible con DTS. ¿Seguir? - -[FEA_DTS] -DTS - -[FEA_RSS] -EMISORA: - -[FEA_NON] -Radio apagada - -[FED_BRI] -BRILLO: - -[FED_TRA] -RASTROS: - -[FED_RDR] -MODO RADAR: - -[FEL_ENG] -INGLÉS - -[FEL_FRE] -FRANCÉS - -[FEL_GER] -ALEMÁN - -[FEL_ITA] -ITALIANO - -[FEL_SPA] -ESPAÑOL - -[FED_DBG] -Menu Debug - -[FED_RID] -Reload IDE - -[FED_RIP] -Reload IPL - -[FED_PAH] -Parse Heap - -[FED_RCD] -CCullZones::RecalculateCullZoneData - -[FED_DFL] -CTheScripts::DbgFlag - -[FED_DLS] -Big White Debug Light Switched - -[FED_SPR] -Show Ped Road Groups - -[FED_SCR] -Show Car Road Grups - -[FED_SCZ] -Show Cull Zones - -[FED_DSR] -Debug Streaming Requests - -[FED_SCP] -gbShowCollisionPolys - -[FEM_MCM] -Memory Card Menu - -[FEM_RMC] -Register MemCard One - -[FEM_TFM] -Test Format MemCard One - -[FEM_TUM] -Test UnFormat MemCard One - -[FEM_CRD] -Create Root Dir - -[FEM_CLI] -Create And Load Icons - -[FEM_FFF] -Fill First File with Guff - -[FEM_SOG] -Save Only The Game - -[FEM_CES] -Check Every 0kB4 Save - -[FEM_STG] -Guardar la partida - -[FEM_STS] -Save The Game under GTA3 name - -[FEM_CPD] -Create copy protected mag directory - -[FEM_MC2] -Memory Card Menu 2 - -[FEM_TS] -Test Save: - -[FEM_TL] -Test Load: - -[FEM_TD] -Test Delete: - -[FEM_SL0] -Ranura0 - -[FES_LOA] -CARGAR PARTIDA - -[ST_TIME] -Tiempo de juego actual - -[ST_OVTI] -Tiempo de juego total - -[NUMSHV] -Número de guardados - -[PL_STAT] -Estadísticas del jugador - -[PE_WAST] -Gente abatida por ti - -[PE_WSOT] -Gente abatida por otros - -[CAR_EXP] -Coches explotados - -[BOA_EXP] -Embarcaciones destruidas - -[TM_BUST] -Veces que te han trincado - -[M_WASTE] -Civiles liquidados (hombres) - -[F_WASTE] -Civiles liquidados (mujeres) - -[PIG_WST] -Polis liquidados - -[GNG_WST] -Miembros de bandas liquidados - -[MED_WST] -Médicos liquidados - -[FIRE_WS] -Bomberos liquidados - -[DED_CRI] -Criminales liquidados - -[DED_DED] -Vagabundos liquidados - -[DED_HOK] -Prostitutas liquidadas - -[HEL_DST] -Helicópteros destruidos - -[PER_COM] -Porcentaje completado - -[KGS_EXP] -Kg de explosivos empleados - -[ACCURA] -Precisión - -[ELBURRO] -Best Turismo time in secs - -[CAR_CRU] -Coches triturados - -[HED_EX] -Cabezas reventadas - -[ST_HEAD] -Disparos en la cabeza - -[BUL_FIR] -Balas disparadas - -[BUL_HIT] -Balas en el blanco - -[SPRAYIN] -Manos de pintura - -[TM_DED] -Visitas al hospital - -[ST_GANG] -Banda más odiada - -[ST_GNG1] -Leone - -[ST_GNG2] -Tríadas - -[ST_GNG3] -Diablos - -[ST_GNG4] -Yakuza - -[ST_GNG5] -Yardies - -[ST_GNG6] -Colombianos - -[ST_GNG7] -Hoods - -[ST_GNG8] -Sindacco - -[ST_GNG9] -Forelli - -[DAYSPS] -Días transcurridos en el juego - -[MMRAIN] -Lluvia caída - -[ST_STAR] -Estrellas de búsqueda obtenidas - -[ST_STGN] -Estrellas de búsqueda eludidas - -[TOT_DIS] -Distancia total recorrida (millas) - -[TOTDISM] -Distancia total recorrida (m) - -[DISTBIK] -Dist. recorrida en moto (millas) - -[DISTBIM] -Distancia recorrida en moto (m) - -[DISTHEL] -Dist. recorrida en helicóptero (millas) - -[DISTHEM] -Distancia recorrida en helicóptero (m) - -[DISTBOA] -Dist. recorrida en embarcación (millas) - -[DISTBOM] -Distancia recorrida en embarcación (m) - -[ST_WHEE] -Mayor tiempo a caballito (s) - -[ST_STOP] -Mayor tiempo sobre rueda delantera (s) - -[ST_2WHE] -Mayor tiempo sobre 2 ruedas (s) - -[ST_WHED] -Mayor distancia a caballito (m) - -[ST_STOD] -Mayor distancia rueda delantera (m) - -[ST_2WHD] -Mayor distancia sobre 2 ruedas (m) - -[ST_FAPD] -Caída de morros más larga (m) - -[FEST_HV] -Mayor nivel de vigilante - -[FIRELVL] -Mayor nivel de bombero - -[ST_STOR] -Stores Knocked Off - -[ST_ASSI] -Trabajos de asesinato completados - -[ST_FTIM] -Horas de vuelo - -[ST_FASH] -Fashion Budget - -[ST_WEAP] -Gasto en armas - -[ST_PROP] -Gasto en propiedades - -[ST_DAMA] -Bienes destruidos - -[ST_AUTO] -Gasto en reparación de coches y pintura - -[MXCARD] -Dist. máx. en salto demencial (pies) - -[MXCARJ] -Altura máx. en salto demencial (pies) - -[MXCARDM] -Dist. máx. en salto demencial (m) - -[MXCARJM] -Altura máx. en salto demencial (m) - -[MXFLIP] -Vueltas máx. en salto demencial - -[MXJUMP] -Rotación máx. en salto demencial - -[FST_MFR] -Emisora favorita - -[FST_LFR] -Emisora menos usada - -[BSTSTU] -La mejor acrobacia demencial: - -[INSTUN] -Acrobacia demencial - -[PRINST] -Acrobacia demencial perfecta - -[DBINST] -Acrobacia demencial doble - -[DBPINS] -Acrobacia demencial doble perfecta - -[TRINST] -Acrobacia demencial triple - -[PRTRST] -Acrobacia demencial triple perfecta - -[QUINST] -Acrobacia demencial cuádruple - -[PQUINS] -Acrobacia demencial cuádruple perfecta - -[NOSTUC] -No hay acrobacias demenciales completadas - -[NOUNIF] -Saltos únicos completados - -[NOUNGM] -Total de saltos únicos - -[NMISON] -Intentos de misión - -[NMMISP] -Misiones superadas - -[PASDRO] -Pasajeros llevados a su destino - -[MONTAX] -Dinero ganado en taxi - -[CARSLD] -Coches vendidos - -[MONCAR] -Dinero ganado vendiendo coches - -[BIKESLD] -Motos vendidas - -[MONBIKE] -Dinero ganado vendiendo motos - -[CARSEXP] -Coches encontrados para Love Media - -[SLTVLVL] -Mayor nivel en Slash TV - -[SLTVKIL] -Oponentes muertos en Slash TV - -[MONTRS] -Dinero ganado recogiendo basura - -[HTMKLD] -Sicarios liquidados - -[GDAMSP] -Misiones de Ángel Vengador superadas - -[HGAJD] -Justicia total de Ángel Vengador impartida - -[BNDRACE] -Carreras de RC - -[FSTTRT] -Mayor tiempo pasado en Wong Side of the Track - -[HGHTRC] -Mayor suma ganada en Wong Side of the Track - -[FSTHRT] -Carrera más rápida en helicóptero - -[BHLPOS] -Mejor posición en carrera de helicópteros - -[TMSOUT] -Cambios de ropa - -[BSRPS0] -Low-rider Rumble - -[BSRPS1] -Deimos Dash - -[BSRPS2] -Wi-Cheetah Run - -[BSRPS3] -Red Light Racing - -[BSRPS4] -Torrington TT - -[BSRPS5] -Gangsta GP - -[DBIKE0] -Trazado 1 - -[DBIKE1] -Trazado 2 - -[DBIKE2] -Trazado 3 - -[DBIKE3] -Trazado 4 - -[DBIKE4] -Trazado 5 - -[DBIKE5] -Trazado 6 - -[DBIKE6] -Trazado 7 - -[DBIKE7] -Trazado 8 - -[DBIKE8] -Trazado 9 - -[DBIKE9] -Trazado 10 - -[DBIKEHE] -Bump & Grinds - -[DBIKEBP] -Mejor posición - -[DBIKEFL] -Vuelta más rápida - -[DBIKEFT] -Mejor tiempo - -[ST_PHOT] -Fotos tomadas - -[ST_PIZZ] -Pizzas entregadas - -[ST_NOOD] -Fideos entregados - -[MO_TOUR] -Dinero ganado con turistas - -[TA_TOUR] -Turistas llevados a lugares turísticos - -[SC_SCRA] -Récord en Scrapyard Challenge - -[SC_9MM] -Récord en 9mm Mayhem - -[SC_SCOO] -Récord en Scooter Shooter - -[DAYPLC] -Gasto diario de la policía - -[SEAGULL] -Gaviotas abatidas - -[CRIMRA] -ÍNDICE DELICTIVO - -[CHASE] -Atención mediática - -[CHASE1] -"¿Quién es ése?" - -[CHASE2] -"¡Qué aburrimiento!" - -[CHASE3] -Vagamente interesados - -[CHASE4] -Periódico local, página 7 - -[CHASE5] -Primera plana del periódico local - -[CHASE8] -TV local, 3:00 - -[CHASE9] -Noticias TV local - -[CHASE10] -En directo TV local - -[CHASE11] -El UFA Today, página 12 - -[CHASE12] -El UFA Today, página 4 - -[CHASE13] -Foto en el UFA Today - -[CHASE14] -Tele nacional, 4:00 - -[CHASE15] -Noticias TV nacional - -[CHASE16] -En directo TV nacional - -[CHASE17] -Noticias internacionales - -[CHASE18] -Crisis nacional - -[CHASE19] -Crisis internacional - -[CHASE20] -Suceso mundial - -[CHASE21] -Leyenda viva - -[WHEEL01] -~w~BONIF. POR IR A DOS RUEDAS: ~1~ $ Distancia: ~1~,~1~ m. Tiempo: ~1~ s. - -[WHEEL02] -~w~BONIF. POR IR A DOS RUEDAS: ~1~ $ Distancia: ~1~ pies Tiempo: ~1~ s. - -[WHEEL06] -~w~BONIF. POR CABALLITO: ~1~ $ Distancia: ~1~,~1~ m. Tiempo: ~1~ s. - -[WHEEL07] -~w~BONIF. POR CABALLITO: ~1~ $ Distancia: ~1~ pies Tiempo: ~1~ s. - -[WHEEL11] -~w~BONIF. RUEDA DELANTERA: ~1~ $ Distancia: ~1~,~1~ m. Tiempo: ~1~ s. - -[WHEEL12] -~w~BONIF. RUEDA DELANTERA: ~1~ $ Distancia: ~1~ pies Tiempo: ~1~ s. - -[GMSTOR] -Game Store - -[PREBRF] -Instrucciones previas - -[CNTLS] -Controles - -[MUSMEN] -Música/efectos - -[GAMSET] -Ajustes del juego - -[LANGUA] -Idioma - -[DSPLAY] -Pantalla - -[DEBUGM] -Debug Menu - -[QUITOP] -Salir de opciones - -[CONTRL] -Config. de controles - -[SET1EN] -Config. 1 activada - -[SET1] -Config. 1 - -[SET2EN] -Config. 2 activada - -[SET2] -Config. 2 - -[SET3EN] -Config. 3 activada - -[SET3] -Config. 3 - -[SET4EN] -Config. 4 activada - -[SET4] -Config. 4 - -[GOBACK] -Volver - -[MUSVOL] -Volumen música - -[SFXVOL] -Volumen efectos - -[SCROPT] -OPCIONES DE PANTALLA - -[CTRSCR] -Centrar pantalla - -[SCRFOR] -Formato de pantalla - -[GMSVLQ] -PARTIDA: GUARDAR-CARGAR-SALIR - -[GMREST] -Reiniciar partida - -[GMLOAD] -Cargar partida - -[GMSAVE] -Guardar partida - -[NOGMSV] -Solo puedes guardar en tu escondite. - -[DLFILE] -Borrar archivos de Grand Theft Auto - -[CHFILE] -ESCOGER ARCHIVO PARA CARGAR - -[CHFIDL] -ESCOGER ARCHIVO PARA BORRAR - -[SVCONF] -CONFIRMACIÓN DE GUARDADO - -[SVFNAM] -El nombre del archivo guardado es - -[LANGSL] -SELECCIÓN DE IDIOMA - -[ENGLIS] -Inglés - -[GERMAN] -Alemán - -[ITALIA] -Italiano - -[FRENCH] -Francés - -[SPAIN] -Español - -[RELIDE] -ReLoadIde - -[RELIPE] -ReLoadIpl - -[PARSHP] -Parse Heap - -[DBGFON] -CTheScripts::DbgFlag On - -[DBFOFF] -CTheScripts::DbgFlag Off - -[BGWHON] -Big White Debug Light Switched On - -[BGWOFF] -Big White Debug Light Switched Off - -[DSTRON] -Debug Streaming Requests On - -[DSTROFF] -Debug Streaming Requests Off - -[PDRGON] -ShowPedRoadGroups On - -[PRGOFF] -ShowPedRoadGroups Off - -[CRRGON] -ShowCarRoadGroups On - -[CRGOFF] -ShowCarRoadGroups Off - -[CLZOON] -Show Cull Zones On - -[CLZOOF] -Show Cull Zones Off - -[SHPLON] -gbShowCollisionPolys On - -[SHPLOF] -gbShowCollisionPolys Off - -[CULREC] -CCullZones::RecalculateCullZoneData() - -[FORMM1] -FormatMemCard 1 (teststuff) - -[UNFRM1] -UnFormatMemCard 1 (teststuff) - -[GORLEV] -Gore Level - -[SICASS] -Sick Fuck - -[SICSIC] -Sick Fucker - -[SCASSL] -Sick Fuck Selected - -[SCSCSL] -Sick Fucker Selected - -[PRVMEN] -Previous Mission Briefs - -[FORMEN] -Format Menu - -[MEMTST] -MemoryCardTest screen - -[REGCAR] -Register MemoryCard One - -[TEFONE] -Test Format MemCard One - -[TEUFON] -Test UnFormat MemCard One - -[CRROOT] -CreateRootDir - -[CRLDIC] -Create and Load Icons - -[FLFSGF] -Fill First File With Guff - -[PUSAVE] -Save Only the Game - -[CHEVOK] -CheckEveryOkB4Save - -[SVGMON] -SaveTheGame - -[CNTSAV] -No se puede guardar. Estás en una misión. - -[CNCSAV] -No se puede guardar. Estás en un vehículo. - -[CRMGSV] -Create copy protected mag directory - -[MGSVCN] -MagazineDirectory Created - -[MGSVNC] -MagazineDirectory Not Created - -[YES] -Sí - -[NO] -No - -[X] -x - -[LAST] -Last message. - -[GS_STYL] -ESTILO: - -[GS_FFAL] -TODOS CONTRA TODOS - -[GS_LOC] -LUGAR: - -[GS_SLMT] -LÍMITE DE PUNTOS: - -[GS_KLMT] -MÁX. ABAT.: - -[GS_TLMT] -LÍMITE DE TIEMPO: - -[GS_ULMT] -SIN LÍMITE - -[GS_PRUP] -MEJORAS: - -[GS_RACE] -CARRERA: - -[GS_LAPS] -VUELTAS: - -[GS_OK] -ACEPTAR - -[FEH_MP] -MULTIJUGADOR - -[FEMP_J] -Unirse - -[FEMP_CS] -PERSONAJE: - -[FEMP_PS] -AJUSTES DEL JUGADOR - -[FEMP_GS] -ELEGIR PARTIDA - -[FEMP_NG] -INICIAR NUEVA PARTIDA - -[SVRLIST] -LISTA DE ANFITRIONES - -[SVRINFO] -DETALLES DEL ANFITRIÓN - -[SVRNAME] -NOMBRE: - -[NO_SVRS] -BUSCANDO ANFITRIONES - -[NO_PLRS] -BUSCANDO JUGADORES - -[NO_NAME] -SIN NOMBRE - -[NO_WIFI] -Para jugar partidas multijugador, debes tener el interruptor WLAN activado. - -[FEMP_SG] -INICIAR PARTIDA - -[FEMP_S] -Inicio - -[FEMP_WS] -Esperando al anfitrión... - -[SVRLOST] -Se ha perdido la comunicación con el anfitrión. - -[NOSVRS] -No se ha podido encontrar al anfitrión. - -[MP_WARN] -Iniciar una partida multijugador hará que pierdas todo el progreso desde la última vez que guardaste. - -[FEDS_XB] -Seleccionar - -[FEDS_TB] -Atrás - -[FEDS_ST] -botón START (inicio): REANUDAR - -[FEST_OO] -de - -[FED_SUB] -SUBTÍTULOS: - -[FEC_TUC] -Control de torreta - -[FEC_SM3] -Activar misión especial (botón R3) - -[FEC_RS3] -Cambiar de emisora (botón L3) - -[FEC_HO3] -Claxon (botón L3) - -[FIRST] -~g~1° - -[SECOND] -~g~2° - -[THIRD] -~g~3° - -[FOURTH] -~g~4° - -[NOCONTE] -Por favor conectar un mando analógico (DUALSHOCK®) o un mando analógico (DUALSHOCK®2) en el puerto de mando 1 para continuar. - -[WRCONT] -El mando conectado al puerto de mando 1 es incompatible. GTA: Liberty City Stories requiere un mando analógico (DUALSHOCK®) o un mando analógico (DUALSHOCK®2). - -[WRCONTE] -El mando conectado al puerto de mando 1 es incompatible. GTA: Liberty City Stories requiere un mando analógico (DUALSHOCK®) or un mando analógico (DUALSHOCK®2). - -[WRONGCD] -Disco incorrecto. Inserta el disco de GTA: Liberty City Stories. - -[NOCD] -La bandeja del disco está vacia. Inserta el disco de GTA: Liberty City Stories. - -[OPENCD] -La bandeja del disco está abierta. Cierra la bandeja del disco. - -[RESTART] -Iniciando nueva partida. - -[GA_3] -~w~¡100 $ por repintar! - -[GA_1A] -~w~Vuelve cuando no estés tan ocupado... - -[AWAY] -~r~¡Se ha largado de aquí! - -[GA_6B] -Aparca, activa la bomba pulsando~h~ ~k~ ~PDFW~ ~w~¡y A CORRER! - -[GA_7B] -~w~Activa la bomba con~h~ ~k~ ~PDFW~ ~w~. Estallará cuando el motor arranque. - -[FESZ_CA] -Cancelar - -[FESZ_QU] -Salir - -[FESZ_L1] -La partida se ha cargado. - -[FESZ_L2] -Nombre del archivo guardado: - -[FESZ_OK] -ACEPTAR - -[FES_LGA] -Cargar partida - -[FES_DGA] -BORRAR DATOS GUARDADOS - -[FES_NGA] -NUEVA PARTIDA - -[FES_CAN] -Cancelar - -[FESZ_QL] -Todo el progreso no guardado de la partida se perderá. ¿Seguro que quieres cargar? - -[FESZ_QD] -¿Seguro que quieres borrar esta partida guardada? - -[FESZ_QO] -¿Seguro que quieres sobrescribir esta partida guardada? - -[FESZ_QR] -¿Quieres empezar una nueva partida? Se perderá todo el progreso desde la última partida guardada. ¿Continuar? - -[FESZ_QS] -¿SEGURO QUE QUIERES GUARDAR? - -[T4X4_2A] -~g~Tienes ~y~2 minutos~g~ para pasar por ~y~12~g~ puntos de control. ~g~Puedes pasar por ellos en ~y~CUALQUIER ORDEN~g~. - -[T4X4_2B] -¡~1~ de 12! - -[T4X4_2C] -~y~PASA POR~g~ el primer punto de control para activar el cronómetro. ~g~Cada punto de control te concederá ~y~10 SEGUNDOS~g~. - -[T4X4_F] -~r~¡Has abandonado! ¿Demasiado duro para ti? - -[UPSIDE] -~r~¡Has volcado! +[BLISTAC] +Blista Compact [FEST_DF] Dist. recorrida a pie (millas) @@ -2728,449 +2194,1622 @@ Distancia recorrida a pie (m) [FESTDCM] Distancia recorrida en coche (m) +[TOT_DIS] +Distancia total recorrida (millas) + +[TOTDISM] +Distancia total recorrida (m) + +[DISTHEL] +Dist. recorrida en helicóptero (millas) + +[DISTHEM] +Distancia recorrida en helicóptero (m) + +[DISTBOA] +Dist. recorrida en barco (millas) + +[DISTBOM] +Distancia recorrida en barco (m) + [FEST_LS] -Gente salvada en ambulancia +Gente salvada en una ambulancia [FEST_CC] -Criminales abatidos misión Vigilante +Criminales asesinados en misión Vigilante [FEST_FE] -Fuegos totales apagados - -[FEST_LF] -Vuelo más largo en Dodo - -[FEST_BD] -Mejor tiempo desactivando una bomba +Total de fuegos extinguidos [FEST_RP] -Destrucciones superadas - -[FEST_CN] -Mayor tiempo en Karmageddon - -[FEST_TR] -Máx. abatidos RC Triad Take-Down +Masacres superadas [FEST_MP] Misiones superadas +[FEST_BB] +Bling-bling Scramble: + [FEST_H0] Mayoría de puntos de control [FEST_GC] Total de coches de bandas: +[FEST_H1] +Destrucción del diablo + +[FEST_H2] +Masacre de la mafia + +[FEST_H3] +Casino Calamity + +[FEST_H4] +Rumpo Wrecker + [USJ] -~w~¡BONIF. ACROBACIA ÚNICA! +¡BONIFICACIÓN POR MANIOBRA ÚNICA! -[USJ_FAL] -~w~¡ACROBACIA ÚNICA FALLADA! - -[HM1_1] -~g~Fríe a 20 Purple Nines en 2 min. y 30 s. - -[KM1_8A] -Pulsa~h~ ~k~ ~PDFW~ ~w~para ~h~activar la bomba~w~ y no olvides apartarte. - -[KM1_8D] -Pulsa~h~ ~k~ ~PDFW~ ~w~para ~h~activar la bomba~w~ y no olvides apartarte. +[USJ_DUN] +MANIOBRA YA COMPLETADA [RATNG1] -CIUDADANO DE A PIE +Ciudadano honrado [RATNG2] -NADIE EN ESPECIAL +Nadie en especial [RATNG3] -PUERCO INCÍVICO +Basurero [RATNG4] -CHORICILLO +Cleptómano [RATNG5] -VÁNDALO +Vándalo [RATNG6] -RECADERO +Chico de los recados [RATNG7] -RATERO +Carterista [RATNG8] -MANGUI +Cleptómano [RATNG9] -LADRÓN +Chivato [RATNG10] -RATA +Rata + +[RATNG11] +Lince [RATNG12] -CHANCHULLERO +Estafador [RATNG13] -TRAMPOSO +Timador [RATNG14] -TIMADOR +Corredor de apuestas [RATNG15] -ESTAFADOR +Buscavidas [RATNG16] -BRAVUCÓN +Matón [RATNG17] -MALEANTE +Chusma [RATNG18] -GRANUJA +Bribón [RATNG19] -RUFIÁN +Rufián [RATNG20] -PROSCRITO +Proscrito [RATNG21] -MATÓN +Malhechor [RATNG22] -SACAMANTECAS +Asesino [RATNG23] -GORILILLA +Super matón [RATNG24] -GORILÓN +Matón [RATNG25] -REINCIDENTE +Presidiario [RATNG26] -EX PRESIDIARIO +Exconvicto [RATNG27] -DELINCUENTE +Criminal [RATNG28] -EXTORSIONADOR +Saqueador [RATNG29] -CEREBRO +Mafioso [RATNG30] -CHÓFER +Conductor [RATNG31] -GUARDAESPALDAS +Gorila [RATNG32] -HOMICIDA +Asesino profesional [RATNG33] -CAZARRECOMPENSAS +Asuntos internos [RATNG34] -AJUSTICIADOR +Agente [RATNG35] -RONIN +Ronin [RATNG36] -AMAÑADOR +Manitas [RATNG37] -SICARIO +Asesino a sueldo [RATNG38] -ASOCIADO +Asociado [RATNG39] -CARNICERO +Carnicero [RATNG40] -LIMPIADOR +Encargado de la limpieza [RATNG41] -ASESINO +Asesino [RATNG42] -CONSIGLIERE +Consigliere [RATNG43] -"BAUTIZADO" +Maleante [RATNG44] -MANO DERECHA +Mano derecha [RATNG45] -VERDUGO +Ejecutor [RATNG46] -LUGARTENIENTE +Teniente [RATNG47] -JEFECILLO +Subjefe [RATNG48] -CAPO +Capo [RATNG49] -BOSS +Jefe [RATNG50] -CEREBRO CRIMINAL +Negado [RATNG51] -DON +Don [RATNG52] -PADRINO - -[TRAIN_1] -Estación de Kurowski - -[TRAIN_2] -Estación de Rothwell - -[TRAIN_3] -Estación de Baillie - -[SUBWAY1] -Estación de Portland - -[SUBWAY2] -Estación de Rockford - -[SUBWAY3] -Estación de Staunton South - -[SUBWAY4] -Terminal de Shoreside - -[DETON] -DETONACIÓN - -[RCBOMB1] -RC Triad Take-Down - -[RECORD] -~w~Nuevo récord: ¡~1~ muertos! - -[NRECORD] -~r~¡No has batido el récord anterior de ~1~ muertos! - -[RCBOMBF] -~r~¡Has salido de la furgoneta! - -[RC_2] -Tienes 2 min. para volar tantos coches de la Mafia como puedas. - -[RC_3] -Tienes 2 min. para volar tantos coches de la Yakuza como puedas. - -[RC_4] -Tienes 2 min. para volar tantos coches de los Yardies como puedas. - -[RC_5] -Tienes 2 min. para volar tantos coches de los Hoods como puedas. - -[RC_6] -Tienes 2 min. para volar tantos coches del Cártel como puedas. - -[RAMPKA] -~w~Necesitas un vehículo para esta destrucción. +Rey de la Jodida Ciudad [PAGE_00] . -[TURTXT] -¡Aniquilación móvil! - -[TURPASS] -~w~¡Aniquilación superada! - -[TUR3D] -~w~Integridad coche - -[FTFRENZ] -Firetruck Frenzy - [WELCOME] BIENVENIDO A [TSCORE] -~w~GANANCIAS TOTALES: ~1~ $ +GANANCIAS: ~1~ $ -[PBOAT_1] -Pulsa~h~ ~k~ ~VEWEP~ ~w~para disparar los cañones de la embarcación. +[PBOAT_2] { reVC update } +Pulsa ~h~~k~~VEHICLE_FIREWEAPON~~w~ para disparar los cañones del barco. -[HM2_1] -Usa los buggies de RC para destruir los coches blindados. Pulsa~h~ ~k~ ~VEWEP~ ~w~para detonar. +[HJSTAT] +Distancia: ~1~.~1~m Altura: ~1~.~1~m Vueltas: ~1~ Rotación: ~1~_ -[HM2_1A] -Usa los buggies de RC para destruir los coches blindados. Pulsa~h~ ~k~ ~VEWEP~ ~w~para detonar. +[HJSTATW] +Distancia: ~1~.~1~m Altura: ~1~.~1~m Vueltas: ~1~ Rotación: ~1~_ ¡qué gran aterrizaje! -[HM2_2] -~r~¡No has destruido todos los coches blindados! - -[HM2_6] -~g~¡Coche blindado destruido! - -[FESZ_UC] -CANCELAR - -[FEDS_SM] -L1, R1: CAMBIAR MENÚ - -[FEDS_AS] -;=: CAMBIAR SELECCIÓN - -[FEDSAS2] -<>: CAMBIAR SELECCIÓN - -[FEDS_SS] -L1,R1: CAMBIAR SELECCIÓN - -[FEDSSC1] -;: DESPLAZAM. MÁS RÁPIDO - -[FEDSSC2] -=: DETENER DESPLAZAM. - -[FES_LOF] -Error al cargar. - -[FES_SLO] -EL ARCHIVO GUARDADO - -[FES_ISC] -ESTÁ DAÑADO - -[FESZ_TI] -GUARDAR Z1 - -[FESZ_SA] -Guardar partida - -[MC_LDFL] -Error al cargar. - -[MC_NWRE] -Se está reiniciando la partida. - -[BIFP_1] -~w~¡Auu! Distancia de la caída de morros: ~1~,~1~ m - -[BIFP_1F] -~w~¡Auu! Distancia de la caída de morros: ~1~ pies - -[DIAB1_5] -TIEMPO DE CARRERA: - -[F_FAIL1] -~r~Misión de bombero terminada. - -[F_CANC] -~r~¡Misión de bombero cancelada! - -[F_FAIL3] -~r~¡Demasiado tarde! - -[F_FAIL4] -~r~¡Ha muerto uno de los pasajeros! - -[F_FAIL5] -~r~¡Uno de los coches ha sido destruido! - -[F_FAIL6] -~r~¡El coche ha sido destruido! - -[F_EXTIN] -Incendios - -[A_CANC] -~r~¡Misión de médico ATS cancelada! - -[ALEVEL] -~w~Nivel de misión de médico ATS ~1~ - -[A_FAIL1] -~r~Misión de médico ATS terminada. +[ATUTOR] +Pulsa ~h~~k~~TOGGLE_SUBMISSIONS~~w~ para activar o desactivar las misiones de ATS. [FEST_HA] -Mayor nivel de médico ATS - -[A_SAVES] -~w~GENTE SALVADA: ~1~ +Nivel más alto de misión de ATS [C_KILLS] -~w~CRIMINALES LIQUIDADOS: ~1~ +CRIMINALES ASESINADOS: ~1~ -[F_START] -Se ha informado de un ~b~vehículo en llamas~w~ en la zona de ~a~. Ve y apaga el incendio. +[HJSTATF] +Distancia: ~1~ pies Altura: ~1~ pies Vueltas: ~1~ Rotación: ~1~_ -[F_STAR1] -Se ha informado de varios ~b~vehículos en llamas~w~ en la zona de ~a~. Ve y apaga los incendios. +[HJSTAWF] +Distancia: ~1~ pies Altura: ~1~ pies Vueltas: ~1~ Rotación: ~1~_, ¡y qué gran aterrizaje! -[F_REWAR] -~w~¡FUEGO APAGADO! ¡Completado el nivel ~1~! Recompensa: ~1~ $ +[CRED001] +ROCKSTAR NORTH + +[CRD001A] +DIRECTOR DEL ESTUDIO + +[CRD001B] +ANDREW SEMPLE + +[CRED002] +PRODUCTOR + +[CRD002A] +DIRECTOR DE DESARROLLO + +[CRED003] +LESLIE BENZIES + +[CRED004] +DIRECTOR DE ARTE + +[CRED005] +AARON GARBUT + +[CRED006] +DIRECTORES TÉCNICOS + +[CRED007] +OBBE VERMEIJ + +[CRED008] +ADAM FOWLER + +[CRED010] +ANDREW DUTHIE + +[CRED011] +CRAIG FILSHIE + +[CRED012] +WILLIAM MILLS + +[CRED013] +CHRIS ROTHWELL + +[CRD013A] +IMRAN SARWAR + +[CRD013B] +JAMES WORRALL + +[CRD013C] +JOHN HAIME + +[CRED014] +ESCRITO POR + +[CRED015] +JAMES WORRALL + +[CRED016] +PAUL KUROWSKI + +[CRED017] +DAN HOUSER + +[CRED018] +DISEÑO DEL PERSONAJE PRINCIPAL + +[CRD018A] +DISEÑO DE PERSONAJES + +[CRED019] +IAN MCQUE + +[CRD019A] +TOKS SOLARIN + +[CRD019B] +ALAN DAVIDSON + +[CRED020] +ANIMACIÓN PRINCIPAL + +[CRED021] +ALEX HORTON + +[CRD022A] +ANIMACIÓN + +[CRED022] +LEE MONTGOMERY + +[CRD022B] +DUNCAN SHIELDS + +[CRD022C] +GUS BRAID + +[CRED023] +DISEÑO DE VEHÍCULOS + +[CRD023A] +JOLYON ORME + +[CRD023B] +ALAN DUNCAN + +[CRD024A] +DISEÑO DEL VEHÍCULO PRINCIPAL + +[CRED024] +PAUL KUROWSKI + +[CRED025] +DISEÑO DE MAPAS + +[CRED026] +ADAM COCHRANE + +[CRED027] +NIK TAYLOR + +[CRED028] +GARY MCADAM + +[CRED029] +KEIRAN BAILLIE + +[CRED030] +ALISDAIR WOOD + +[CRED031] +ANDREW SOOSAY + +[CRD031A] +STEVEN MULHOLLAND + +[CRD031B] +WAYLAND STANDING + +[CRD031C] +CAMPBELL J. DICK + +[CRD031D] +DISEÑO GRÁFICO + +[CRD031E] +STUART PETRI + +[CRED032] +PROGRAMADOR JEFE + +[CRD032A] +PROGRAMADORES + +[CRED033] +ALEXANDER ROGER + +[CRED034] +GRAEME WILLIAMSON + +[CRED035] +BARANE CHAN + +[CRED036] +DEREK PAYNE + +[CRED037] +GORDON YEOMAN + +[CRD037A] +ALAN CAMPBELL + +[CRD037B] +MARK HANLON + +[CRD037C] +ANDRZEJ MADAJCZYK + +[CRED038] +PRODUCTOR JEFE MUSICAL + +[CRED039] +CRAIG CONNER + +[CRED040] +STUART ROSS + +[CRED041] +INGENIERO JEFE DE AUDIO + +[CRED042] +ALLAN WALKER + +[CRD041A] +INGENIERO DE AUDIO + +[CRD041B] +AUDIO + +[CRD042A] +WILL MORTON + +[CRED043] +PROGRAMADOR DE AUDIO + +[CRED044] +RAYMOND USHER + +[CRED045] +JEFE DE PRUEBAS + +[CRED046] +CRAIG ARBUTHNOTT + +[CRED047] +CONTROL DE CALIDAD PRINCIPAL + +[CRED048] +NEIL CORBETT + +[CRED049] +KEVIN WONG + +[CRED050] +CONTROL DE CALIDAD + +[CRED051] +DAVID BEDDOES + +[CRED052] +DAVID WATSON + +[CRED053] +BARRY CLARK + +[CRED054] +ROSS SPARROW + +[CRED055] +JAMES ALLAN + +[CRED056] +NEIL MEIKLE + +[CRD056A] +GEORGE WILLIAMSON + +[CRD056B] +MATT JONES + +[CRD056C] +ROB HARBOUR + +[CRD056D] +TOM WHITTAKER + +[CRED057] +SOPORTE TÉCNICO PRINCIPAL + +[CRED058] +LORRAINE ROY + +[CRD057A] +SOPORTE TÉCNICO + +[CRED059] +CHRISTINE CHALMERS + +[CRD060A] +SOPORTE DE OFICINA + +[CRD060B] +KIM GURNEY + +[CRD060C] +CASSIE OLIVER + +[CRED060] +ROCKSTAR NUEVA YORK + +[CRED061] +GABINETE DE APOYO + +[CRED062] +SAM HOUSER + +[CRED063] +PRODUCTOR + +[CRED064] +DAN HOUSER + +[CRED065] +VICEPRESIDENTE DE DESARROLLO + +[CRED066] +JAMIE KING + +[CRED067] +OFICIAL JEFE DE TECNOLOGÍA + +[CRED068] +GARY J. FOREMAN + +[CRED069] +PRODUCTOR ASOCIADO + +[CRED070] +JEREMY POPE + +[CRD071A] +DIRECTOR DE CONTROL DE CALIDAD + +[CRD072A] +JEFF ROSA + +[CRED071] +SUPERVISOR MUSICAL + +[CRED072] +TERRY DONOVAN + +[CRED073] +EQUIPO DE PRODUCCIÓN + +[CRED074] +TERRY DONOVAN + +[CRED075] +JENNIFER KOLBE + +[CRED076] +JENEFER GROSS + +[CRED077] +LAURA PATERSON + +[CRED078] +JEFF CASTANEDA + +[CRED079] +JERONIMO BARRERA + +[CRED080] +CARLY SLATER + +[CRED081] +JUNG KWAK + +[CRED082] +BRIAN WOOD + +[CRED083] +RENAUD SEBANNE + +[CRED084] +RICHARD KRUGER + +[CRD084A] +DANIEL EINZIG + +[CRD084B] +JACEN BURROWS + +[CRD084C] +LINN PR + +[CRD084D] +DISEÑO DE PORTADA + +[CRD084E] +STEPHEN BLISS + +[CRED085] +KENT PAUL'S 80 NOSTALGIA ZONE + +[CRED086] +ESCRITO POR DAN HOUSER + +[CRD086A] +PRODUCIDO POR ADAM TEDMAN + +[CRED087] +WWW.KENTPAUL.COM AND WWW.VICECITY.COM + +[CRED088] +CREADO POR + +[CRD088A] +ADAM TEDMAN + +[CRD088B] +DAVID YU + +[CRD088C] +JERRY LUNA + +[CRD088D] +STUART PETRI + +[CRD088E] +MICHAEL CARNEVALE + +[CRD088F] +GREG LAU + +[CRD088G] +FUTABA HAYASHI + +[CRED089] +JEFE DE CONTROL DE CALIDAD + +[CRED090] +CRAIG ARBUTHNOTT + +[CRED091] +ANALISTA JEFE + +[CRED092] +ADAM DAVIDSON + +[CRD092A] +JOE HOWELL + +[CRD092B] +MARC FERNANDEZ + +[CRED093] +ANALISTA DEL JUEGO + +[CRED094] +RICHARD HUIE + +[CRED095] +EQUIPO DE PRUEBAS DE ROCKSTAR + +[CRED096] +LANCE WILLIAMS + +[CRED097] +JOE GREENE + +[CRED098] +BRIAN PLANER + +[CRD098A] +ELIZABETH SATTERWHITE + +[CRD098B] +JAMEEL VEGA + +[CRD098C] +MIKE HONG + +[CRED099] +LEE CUMMINGS + +[CRED100] +HISTORIA + +[CRED101] +JAMES WORRALL + +[CRED102] +DAN HOUSER + +[CRED103] +ADAM TEDMAN + +[CRED104] +PAUL YEATES + +[CRED105] +JENEFER GROSS + +[CRED106] +LAURA PATERSON + +[CRED107] +SECUENCIAS + +[CRED108] +ESCRITAS POR DAN HOUSER Y JAMES WORRALL + +[CRED109] +DIRECCIÓN DE AUDIO DE DAN HOUSER Y NAVID KHONSARI + +[CRED110] +PRODUCIDAS POR JAMIE KING + +[CRD110A] +SELECCIÓN DE ACTORES: JAMIE KING, SEAN MACALUSO + +[CRED111] +REPARTO + +[CRD111A] +PERSONAJES DE REPARTO + +[CRED112] +TOMMY VERCETTI - RAY LIOTTA + +[CRED113] +KEN ROSENBERG - WILLIAN FICHTNER + +[CRED114] +SONNY FORELLI - TOM SIZEMORE + +[CRED115] +STEVE SCOTT - DENNIS HOPPER + +[CRED116] +AVERY CARRINGTON - BURT REYNOLDS + +[CRED117] +RICARDO DÍAZ - LUIS GUZMÁN + +[CRED118] +LANCE VANCE - PHILIP MICHAEL THOMAS + +[CRED119] +CORONEL JUAN CORTEZ - ROBERT DAVI + +[CRED120] +UMBERTO ROBINA - DANNY TREJO + +[CRED121] +PHIL CASSIDY - GARY BUSEY + +[CRED122] +MITCH BAKER - LEE MAJORS + +[CRED123] +MERCEDES CORTEZ - FAIRUZA BALK + +[CRED124] +KENT PAUL - DANNY DYER + +[CRED125] +JEZZ TORRENT - KEVIN MCKIDD + +[CRED126] +SUPERVISOR TAXIS - DEBORAH HARRY + +[CRED127] +CANDY SUXX - JENNA JAMESON + +[CRED128] +BJ SMITH - LAWRENCE TAYLOR + +[CRED129] +TÍA POULET - YOUREE CLEOMILI HARRIS + +[CRED130] +PROVEEDOR - ARMANDO RIESCO + +[CRED131] +COUGAR - BLAYNE PERRY + +[CRED132] +HILARY - CHARLES TUCKER + +[CRED133] +CONGRESISTA ALEX SHRUB - CHRIS LUCAS + +[CRED134] +VIEJO KELLY - GEORGE DICENZO + +[CRD134A] +CAM JONES - GREG SIMS + +[CRD134B] +PSICÓPATA - HUNTER PLATIN + +[CRD134C] +MAUDE LA VENDEDORA DE HELADOS - JANE GENNARO + +[CRD134D] +JETHRO - JOHN ZURHELLEN + +[CRD134E] +GONZÁLEZ - JORGE PUPO + +[CRD134F] +DWAYNE - NAVID KHONSARI + +[CRD134G] +DICK - PETER MCKAY + +[CRD134H] +MIKE EL MATÓN & CHICO PORNO - ROBERT CIHRA + +[CRD134I] +PERCY - RUSSELL FOREMAN + +[CRED135] +CAPTURA DE MOVIMIENTOS + +[CRED136] +ANIMACIÓN DE + +[CRD136A] +DIRECCIÓN TÉCNICA DE ALEX HORTON + +[CRED137] +DIRIGIDO POR + +[CRD137A] +DIRIGIDO POR NAVID KHONSARI + +[CRED138] +PRODUCIDO POR + +[CRD138A] +PRODUCIDO POR JAMIE KING + +[CRD138B] +RENAUD SEBBANE + +[CRED139] +GRABADO EN PERSPECTIVE STUDIOS, BROOKLYN + +[CRED140] +ACTORES DE CAPTURA DE MOVIMIENTOS + +[CRD140A] +BLAYNE PERRY + +[CRD140B] +JONATHON SALE + +[CRD140C] +CHARLES TUCKER + +[CRD140D] +EDDIE MARRERO + +[CRD140E] +WILLIAM MCCALL + +[CRD140F] +JORGE PUPO + +[CRD140G] +ROBERT JACKSON + +[CRD140H] +TARA RADCLIFFE + +[CRD140I] +JENIFER GAMBETESE + +[CRD140J] +KRIS ACHEVARRIA + +[CRD140K] +ALI ORDOUBADI + +[CRD140L] +KAHLEEM POOLE + +[CRED141] +DIÁLOGOS DE LOS PEATONES + +[CRD141A] +ESCRITOS POR DAN HOUSER, MARC FERNÁNDEZ, GILLIAN TELLING Y NAVID KHONSARI + +[CRD141B] +CON LA AYUDA DE JEREMY POPE, LANCE WILLIAMS, Y JENNY JEMISON + +[CRED142] +ESCRITO POR + +[CRD142A] +DAN HOUSER Y JAMES WORRALL + +[CRED143] +DIRIGIDO POR DAN HOUSER, CRAIG CONNER, MARC FERNÁNDEZ, Y ALLAN WALKER + +[CRED144] +PRODUCIDO POR RENAUD SEBANNE + +[CRED145] +PEATONES + +[CRED146] +ADAM DAVIDSON, ADAM WATKINS, ALEJANDRO K. BROWN, ALEX ANTHONY SIOUKAS, ALEX GARCÍA, + +[CRED147] +ALICE SALTZMAN, ALISON CIHRA, AMY SALIMA, AMY SALZMAN, ANDREA VIDELA, ANTHONY ATTI, + +[CRED148] +ANTHONY RIVERA, BIJAN SHAMS, BLAYNE PERRY, BRETT BISOGNO, BREYE MATA, BRIAN PANEN, + +[CRED149] +BROCK VODER, CAREY BERTINI, CHARISSE LAMBERT, CHRIS DIFAT, CHRIS REISENBERGER, + +[CRED150] +CHRISTOPHER BRODAY, CHRISTOPHER CARRO, CYNTHIA GREENE, DAMARIES LÓPEZ, DAN LEE, + +[CRED151] +DAN SCHNEIDER, DAN TOYAMA, DAVID DEAN CHALTFIELD, JR., DAVID HARRISON, DAVID WILEY, + +[CRED152] +DEBORAH COLLINS, DEBRANDA CHANEY-GILES, DEMETRA KOUKOULAS, DENISE ROSADO, + +[CRED153] +DEVIN BENNETT, DEVIN WINTERBOTTOM, DORIS WOO, DOUGLAS HARRISON, DUNCAN COUTTS, + +[CRED154] +DUPE AJAYI, EDWIN AVELLANEDA, ELIZABETH HOWELL, ELIZABETH SATTERWHITE, ERIC NAGLE, + +[CRED155] +ESTEBAN KARPLUS, F. FONT, FUTABA HAYASHI, GENE HILGREEN, GERALD COSGROVE, + +[CRED156] +GERARD LUNA, GILLIAN TELLING, GREGG CARLUCCI, GREGORY CLERVOIX, GREGORY SCHWEIZER, + +[CRED157] +HADLEY TOMICKI, J. ROSSETT, JAMEEL VEGA, JASON JONES, JEFF ROSA, JENNIFER JEMISON, + +[CRED158] +JEREMY TAGGERT, JESSICA RIDER, JOSEPH GREENE,JOSEPH HOWELL, KATE DUKICH, + +[CRED159] +KEL O'NEILL, KEVIN HOPKINS, LADAWN JAMES, LANCE WILLIAMS, LAURA BUBBLES, + +[CRED160] +LAURA PATTERSON, LEE CUMMINGS, LETICIA L. YOUNG, LINDSAY KENNEDY, LISA ORITZ, + +[CRED161] +LORNA JORDAN, LUCIO AMADIO, MARCO FERNÁNDEZ, MARIKO TANAKA, MARLON MATTHEWS, + +[CRED162] +MARY TELLING, MASAYOSHI MITSUYAMA, MATTHEW CHUNG, MAX ALLSTADT, MAX BOGDANOV, + +[CRED163] +MELISSA ÁLVAREZ, MICHAEL MAY, MICHAEL ROTHSTEIN, MIGUEL VIDAL, MIKE FEDERLINE, + +[CRED164] +NATALIE DESCALZO, N'GAI MEMBERS, NICOLAS MALLO, NOELLE SADLER, NORBERT MORIVAN, + +[CRED165] +OSWALD GREENE, JR., PETER MCKAY, PETER APPEL, PRESTON SAVARESE, RAFAEL GONZÁLEZ, + +[CRED166] +RANDY JOHNSON, REY CONCEPCIÓN, RICHARD KROGER, ROB TIBBS, ROBERT JACKSON, + +[CRED167] +ROBERT SCHULER, ROSS A. MCINTYRE, RUSSELL FOREMAN, RUTH NÚÑEZ, SALVADORE SUAZO, + +[CRED168] +SAM WHITE, SANTOS GONZÁLEZ, SCOTT SMITH, SEYMOUR FRAILMAN, SPELMAN BRAUMAN, + +[CRED169] +STEPHANIE TELLING, STEVE KNEZEVICH, STEVE ROBERT, SUMIKO YASUDA, SUSAN LEWIS, + +[CRED170] +SYLVIA COLACIOS, TOMOKO MIYAZAKI, TRON, VERDEL HALE, YVES MONDESIR, ZENO LEINFELDER, + +[CRED171] +DAVID BEDDOES, CHRISTINE CHALMERS, BARRY CLARK, NEIL CORBETT, KIM GURNEY, NEIL MEIKLE, + +[CRED172] +CASSIE OLIVER, LORRAINE ROY, DAVID WATSON, KEVIN WONG, WILL MORTON + +[CRED175] +ADAM DAVIDSON + +[CRED176] +LANCE WILLIAMS + +[CRED177] +NEIL MCCAFFREY + +[CRED178] +LAURA PATERSON + +[CRED179] +REY CONCEPCIÓN + +[CRED180] +CHARLES HEROLD + +[CRED181] +ANDREW GREENWALD + +[CRED182] +JAMES MIELKE + +[CRED183] +PETER SUCIU + +[CRED184] +ALEX ODULIO + +[CRED185] +DON NKRUMAH + +[CRED186] +KENDALL PITTMAN + +[CRED187] +SAL SUAZO + +[CRED188] +EREK MATEO + +[CRED189] +CHRIS DIFATE + +[CRED190] +LEILA MILTON + +[CRED191] +DARREN ZOLTOWSKI + +[CRED192] +VIRGINIA SMITH + +[CRED193] +KEVIN CASSIN + +[CRED194] +JASON SHIGEMORI + +[CRED195] +KELLY KINSELLA + +[CRED196] +MOLLIE STICKNEY + +[CRED197] +STANTON SARJEANT + +[CRED198] +LAURA WALSH + +[CRED199] +MARK GARONE + +[CRED200] +JOANNA SLY + +[CRED201] +ELIZABETH HOWELL + +[CRED202] +ANA HÉRCULES + +[CRED203] +SHIRLEY IRICK + +[CRED204] +KASHONA FIELDS + +[CRED205] +JOEL M. LILJE + +[CRED206] +JOHN DIBENEDETTO + +[CRED207] +NANCY GILES + +[CRED208] +RYAN CROY + +[CRED209] +JENNIFER KOLBE + +[CRED210] +LIAM BURKE + +[CRED211] +SIGRID PREISSL + +[CRED212] +ANITA FITZSIMONS + +[CRED213] +PHILIPPA RASELLI + +[CRED214] +WIL QUESNEL + +[CRED215] +FALKO BURKERT + +[CRED216] +SARA SEWELL + +[CRED217] +EMISORAS DE RADIO Y MÚSICA + +[CRED218] +ASESOR MUSICAL + +[CRD218A] +HEINZ HENN + +[CRD218B] +STUART ROSS + +[CRED219] +COORDINADOR DE LA BANDA SONORA + +[CRED220] +TERRY DONOVAN + +[CRED221] +PRODUCTOR DE ROCKSTAR GAMES + +[CRED222] +DAN HOUSER Y LAZLOW + +[CRED223] +PRODUCTOR DE ROCKSTAR NORTH + +[CRED224] +CRAIG CONNER + +[CRED225] +ALLAN WALKER + +[CRED226] +LAZLOW + +[CRED227] +DJ BANTER E IMÁGENES + +[CRED228] +ESCRITO POR DAN HOUSER Y LAZLOW + +[CRED229] +FLASH FM + +[CRD229A] +TONI-MARIA CHAMBERS + +[CRD229B] +VOCES FICTICIAS Y PRODUCCIÓN-JEFF BERLIN + +[CRED230] +GRACIAS ESPECIALES A + +[CRED231] +TOMMY MOTTOLA, + +[CRED232] +MICHELLE ANTHONY, + +[CRED233] +STEVE BARNETT, + +[CRED234] +CHUCK FLECKENSTEIN, + +[CRED235] +RITA LIBERATOR + +[CRED236] +MARTIN & CLAIRE LOGAN + +[CRED237] +SANDRA HUTTON + +[CRED238] +CHRISTINE DAVIDSON + +[CRED239] +ALAN, RED & BIGFOOT + +[CRED240] +LE T + +[CRED241] +COLIN DONALD + +[CRED242] +KERRY STALLWOOD + +[CRED243] +ALAN MCGREGOR + +[CRED244] +CHRIS MORTON + +[CRED245] +EMIL BUSSE + +[CRED246] +EMILY BAILLIE + +[CRED247] +KEVIN ARCHIBALD + +[CRED248] +MORAG KERR + +[CRED249] +CATH WALKER + +[CRED250] +ISO BAR + +[CRED251] +WATERLINE + +[CRED252] +NEWS CAFE + +[CRD251A] +THE POND + +[CRD252A] +PIVO + +[CRED253] +BUDGET VIDEO RENTALS + +[CRED254] +LORNA'S SCOOTER + +[CRED255] +GARETH MURFIN + +[CRED256] +ARTE ADICIONAL + +[CRED257] +TONY PORTER + +[CRED258] +CRAIG MOORE + +[CRED259] +ANIMACIÓN DE SINCRONIZACIÓN LABIAL DE LAS SECUENCIAS + +[CRED260] +COSGROVE HALL FILMS + +[CRED261] +PRODUCTOR - OWEN BALLHATCHET + +[CRED262] +ANIMADOR SENIOR - JON TURNER + +[CRED263] +ANIMADORES - RICHARD DRUMM + +[CRED264] +DAVE BROWN + +[CRED265] +MAIR THOMAS + +[CRED266] +PRASHANT PATEL + +[CRED267] +ASESOR TECNOLOGÍA DE AUDIO + +[CRED268] +RIK EDE PARA GAMESOUND LTD. + +[CRED269] +SOPORTE DTS INTEGRATION + +[CRED270] +TED LAVERTY DE DTS + +[CRED271] +CHRIS GREER DE DTS + +[CRED272] +JASON PAGE DE SCEE + +[CRED273] +INVESTIGACIÓN Y ANÁLISIS + +[CRED274] +VROCK + +[CRED275] +DJ: LAZLOW COMO ÉL MISMO + +[CRED276] +VOZ-JOE KELLY + +[CRED277] +PRODUCCIÓN-JONATHAN HANST + +[CRED278] +WAVE 103 + +[CRED279] +DJ: ADAM FIRST-JAMIE CANFIELD + +[CRED280] +VOZ-JEN SWEENEY + +[CRED281] +PRODUCCIÓN-JONATHAN HANST + +[CRED282] +FEVER 105 + +[CRED283] +DJ: OLIVER 'LADYKILLER' BISCUIT-JULIUS DYSON + +[CRED284] +VOZ MASCULINA-ED MCMANN + +[CRED285] +VOZ FEMENINA-SHAWNEE SMITH + +[CRED286] +PRODUCCIÓN- LISTEN KITCHEN + +[CRED287] +EMOTION 98.3 + +[CRED288] +DJ: FERNANDO- FRANK CHAVEZ + +[CRED289] +VOZ-JEN SWEENEY + +[CRED290] +PRODUCCIÓN-JONATHAN HANST + +[CRED291] +RADIO ESPANTOSO + +[CRED292] +DJ: PEPE-TONY CHILRODES + +[CRED293] +WILDSTYLE + +[CRED294] +DJ: MISTER MAGIC AS HIMSELF + +[CRED295] +VOZ-FRANK SILVESTRO + +[CRED296] +PRODUCCIÓN-LAZLOW + +[CRED297] +KCHAT + +[CRED298] +ESCRITO POR DAN HOUSER Y LAZLOW + +[CRED299] +PRODUCIDO Y EDITADO POR LAZLOW + +[CRED300] +DJ AMY SHECKENHAUSEN -LEYNA WEBER + +[CRED301] +JEZ TORRENT-KEVIN MCKIDD + +[CRED302] +MANDY -COLLEEN CORBETT + +[CRED303] +MICHELLE CARAPADIS-MARY BIRDSONG + +[CRED304] +MR.ZOO-CARL DOWLING + +[CRED305] +GETHSEMANEE-LYNN LIPTON + +[CRED306] +CLAUDE MAGINOT-JOHN MAUCERI + +[CRED307] +BJ SMITH-LAWRENCE TAYLOR + +[CRED308] +THOR-FRANK FAVA + +[CRED309] +PERSONAS LLAMANDO A LA RADIO + +[CRED310] +COUZIN ED, JOSH CLARK, JASON BUHRMESTER, JUAN ALLER, WAYNE OLIVER, SUSAN LEWIS, GILLIAN TELLING, TOM MURRAY, MIKE FERRANTE SR., EMMANUEL GOLDSTEIN, DAN HOUSER, NICK MANDELOS, GERRY COSGROVE, MIKE PALERMO, PORKCHOP, KEITH BROADAS + +[CRED311] +LEWIS, GILLIAN TELLING, TOM MURRAY, MIKE FERRANTE SR., EMMANUEL GOLDSTEIN, + +[CRED312] +DAN HOUSER, NICK MANDELOS, GERRY COSGROVE, MIKE PALERMO, PORKCHOP, + +[CRED313] +KEITH BROADAS + +[CRED314] +VCPR + +[CRED315] +ESCRITO POR DAN HOUSER Y LAZLOW + +[CRED316] +PRODUCIDO POR LAZLOW + +[CRED317] +MAURICE CHAVEZ-PHILLIP ANTHONY RODRIGUEZ + +[CRED318] +JONATHAN FREELOADER- PATRICK OLSEN + +[CRED319] +MICHELLE MONTANIUS-KELLY GUEST + +[CRED320] +REP. ALEX SHRUB- CHRIS LUCAS + +[CRED321] +CALLUM CRAYSHAW- SEAN MODICA + +[CRED322] +JOHN F. HICKORY- LJ GANSEN + +[CRED323] +PASTOR RICHARDS- DAVID GREEN + +[CRED324] +JAN BROWN- MAUREEN SILLIMAN + +[CRED325] +BARRY STARK- RENAUD SEBBANE + +[CRED326] +JENNY LOUISE CRAB- MARY BIRDSONG + +[CRED327] +KONSTANTINOS SMITH- KONSTANTINOS.COM + +[CRED328] +JEREMY ROBARD-PETER SILVESTRO + +[CRED329] +ANUNCIOS DE RADIO + +[CRED330] +ESCRITOS POR DAN HOUSER Y LAZLOW + +[CRED331] +PRODUCIDOS POR LAZLOW + +[CRED332] +JINGLES ADICIONALES PRODUCIDOS POR CRAIG CONNER + +[CRED333] +VOCES EN LOS ANUNCIOS: + +[CRED334] +ADAM DAVIDSON, ALEX ANTHONY, ALICE SALTZMAN, AMY SALZMAN, KATE DUKICH, + +[CRED335] +ARAN RONICLE, BARB JONES, BEN KRECH, BRIAN THOMAS, BROCK YODER, CHRIS + +[CRED336] +FERRANTE, CRAIG CONNER, DAVE RYAN, DAVID GREEN, DORIS WOO, DOUGLAS + +[CRED337] +HARRISON, ED MCMANN, FRANK CHÁVEZ, FRANK FAVA, GENE HILGREEN, GREG + +[CRED338] +SCHWEIZER, HUNTER PLATIN, JAMES FERRANTE, JEFF BERLIN, JEFF ROSA, JOE KELLY, + +[CRED339] +JOHN MAUCERI, JOSH CLARK, JULIE WEMYSS, KEVIN STRALEY, KIM GURNEY, LANCE + +[CRED340] +WILLIAMS, LAURA PATERSON, LAZLOW, LISA ORTIZ, LORNA JORDAN, LUCIEN JONES, + +[CRED341] +MAUREEN SILLIMAN, MIKE FERRANTE JR., PETE GUSTIN, PETER SILVESTRO, RAFF + +[CRED342] +CROLLA, RANDY JOHNSON, RICHARD KRUGER, RON REEVE, SHELLEY MILLER, SKY, TJ ALLARD + +[CRD344A] +AUDIO GRABADO EN DIGITAL ARTS STUDIOS, + +[CRED344] +NYC, TRACK 9 STUDIOS, NYC, + +[CRED345] +WEDDINGTON MULTIMEDIA, LOS ANGELES, + +[CRD345A] +SYNC SOUND, NYC Y RADIO LAZLOW, LONG ISLAND. + +[CRED346] +GRACIAS A AXEL ERICSON Y WON LEE EN DIGITAL ARTS, PAUL VÁSQUEZ EN TRACK 9 STUDIOS, JOHN BOWEN Y JOHN HASSLER EN SYNC SOUND + +[CRED347] +MARK LLOYD + +[CRED348] +TIM BATES + +[CRED349] +KIT BROWN + +[CRED350] +ANDY MASON + +[CRED351] +PHIL DEANE + +[CRED352] +PHIL ALEXANDER + +[CRED353] +MATT HEWITT + +[CRED354] +DENBY GRACE + +[CRED355] +ANTOINE CABROL + +[CRED356] +JONOTHAN STONES + +[CRED357] +MIKE BLACKBURN + +[CRED358] +TIM MCGAFF [CINCAM] -Cámara cinematográfica +Cámara cinemática -[FEDS_AM] -<>: CAMBIAR MENÚ +[RC4] +MASACRES RUMPO -[KABOOM] -¡BUUUUM! - -[SPLAT] -SPLAT! - -[PANCAK] -PANCAKED! - -[SOAKED] -SOAKED! - -[HEAD] -Head Radio - -[DBL_CLF] -Double Clef FM - -[FLASHB] -Flashback FM - -[RISE] -Rise FM - -[LIPS] -Lips 106 - -[CHAT] -Chatterbox FM - -[K_JAH] -K-Jah Radio - -[GAM_FM] -Game Radio FM - -[MSX_FM] -MSX FM +[LEGAL] +~g~¡Elimina la amenaza criminal! [GA_2] -~w~Nuevo motor y capa de pintura: 100 $ +Nuevo motor y trabajo de pintura. ¡Los policías no te reconocerán! + +[HELP15] +Cuando vayas a pie, pulsa ~h~~k~~PED_LOOKBEHIND~~w~ para ~h~mirar detrás~w~. Utiliza el ~h~joystick analógico derecho~w~ para ~h~mirar a tu alrededor~w~. + +[FEC_LB4] +Mirar detrás (botón R3) [PERPIC] -Paquetes ocultos encontrados +Objetos ocultos encontrados + +[CO_ONE] +Objeto oculto ~1~ de ~1~ [GA_21] -~w~No puedes guardar más vehículos en este garaje. +No puedes almacenar más coches en este garaje. [CHEAT1] Truco activado @@ -3185,14355 +3824,959 @@ Truco de salud Truco de blindaje [CHEAT5] -Truco de nivel de búsqueda +Truco de nivel de se busca [CHEAT6] Truco de dinero [CHEAT7] -Truco de clima - -[FEDS_BA] -botón ": ATRÁS - -[FED_WIS] -PANTALLA PANORÁMICA: +Truco de tiempo [USJ_ALL] -~w~¡ACROBACIAS ÚNICAS COMPLETADAS! +¡TODAS LAS MANIOBRAS ÚNICAS COMPLETADAS! [JAN] -Ene. +Ene [FEB] -Feb. +Feb [MAR] -Mar. +Mar [APR] -Abr. +Abr [MAY] -May. +May [JUN] -Jun. +Jun [JUL] -Jul. +Jul [AUG] -Ago. +Ago [SEP] -Sep. +Sep [OCT] -Oct. +Oct [NOV] -Nov. +Nov [DEC] -Dic. +Dic [DEFDT] --:---:---- --:--:-- [BONUS] -~g~BONIF. DE ~1~ $ +~g~BONIFICACIÓN ~1~ $ -[TAXI_M] -Taxista +[HORN1] +Pulsa ~h~~k~~VEHICLE_HORN~~w~para tocar el ~h~claxon. -[COP_M] -Vigilante +[HORN2] +Pulsa ~h~~k~~VEHICLE_HORN~~w~para tocar el ~h~claxon. -[FIRE_M] -Bombero - -[AMBUL_M] -Médico ATS - -[HJ_IS] -~w~BONIF. ACROBACIA DEMENCIAL: ~1~ $ - -[HJ_PIS] -~w~BONIF. ACROBACIA DEMENCIAL PERFECTA: ~1~ $ - -[HJ_DIS] -~w~BONIF. ACROBACIA DEMENCIAL DOBLE: ~1~ $ - -[HJ_PDIS] -~w~BONIF. ACROBACIA DEMENCIAL DOBLE PERFECTA: ~1~ $ - -[HJ_TIS] -~w~BONIF. ACROBACIA DEMENCIAL TRIPLE: ~1~ $ - -[HJ_PTIS] -~w~BONIF. ACROBACIA DEMENCIAL TRIPLE PERFECTA: ~1~ $ - -[HJ_QIS] -~w~BONIF. ACROBACIA DEMENCIAL CUÁDRUPLE: ~1~ $ - -[HJ_PQIS] -~w~BONIF. ACROBACIA DEMENCIAL CUÁDRUPLE PERFECTA: ~1~ $ - -[HJBAD] -~w~¡Un aterrizaje penoso! Casi ganas ~1~ $ - -[HJUP] -Takeoff health: ~1~ - -[HJDOWN] -Landing health: ~1~ - -[FESZ_LS] -Éxito al cargar. - -[CEDBUG1] -!!Debug Event!! - -[CEDBUG2] -!!Player is dead or not playing!! - -[CEDBUG3] -!!Player is in INDUSTRIAL level!! - -[CEDBUG4] -Trying to make COLLECTIVE with ~1~ - -[CEDBUG5] -Debug Value: ~1~ - -[CEDBUG6] -Debug Values: A: ~1~ B: ~1~ - -[CEDBUG7] -Debug Values: A: ~1~ B: ~1~ C: ~1~ - -[LINE] -This is Line ~1~ - -[MRACE08] -~w~¡Vuelve cuando tengas un vehículo! - -[MRACE01] -~w~Espera a que venga algún rival y toca el claxon para empezar la carrera. - -[MRACE02] -~w~La carrera empezará cuando el primer jugador toque el claxon. - -[MRACE05] -~r~¡HAS PERDIDO! - -[MRACE07] -~r~¡Estás muerto! ¡Eres un perdedor! - -[MRACE06] -~r~¡Cobarde! ¡Te has retirado! - -[MRACE09] -~w~¡Vuelve a la carrera! - -[MRACE10] -~w~¡Has ganado (aunque ibas solo)! - -[MRACEPO] -Posición - -[MRCPU03] -¡HAS PRENDIDO FUEGO A TODOS! - -[MRCPU04] -¡ESTÁS ARDIENDO! ( ------- TRASHMASTER ODD-JOB MISSION ------- ) - -[TRASH1] -Basurero - -[TRASH1A] -~w~Recoge los cubos de basura y llévalos al vertedero. - -[TRASH1C] -~w~El cronómetro empezará cuando recojas un cubo. Puedes recogerlos en CUALQUIER ORDEN. - -[TRASH1G] -~r~¿Demasiado duro para ti? ¡Basura! - -[TRASH1H] -~r~¡Has agotado el tiempo! - -[TRASH1J] -~r~¡Te has alejado demasiado de la ruta! - -[TRASH1K] -~w~Recoge los ~g~cubos~w~. - -[TRASH1L] -~w~Vuelve al ~y~vertedero~w~. - -[TRASH1M] -~w~¡Basura recogida! + ~1~ s. - -[PCJINFO] -~w~Pasa por los 25 ~y~puntos de control~w~ en menos de ~1~ s. - -[PCJFAIL] -~r~¡No has conseguido hacerlo en menos de ~1~ s.! - -[PCJPROM] -~w~¡Tienes ~1~ s. para volver a subir a la ~b~moto~w~! - -[PCJPRO1] -~w~¡Tienes ~1~ s. para volver a subir a la ~b~moto~w~! - -[PCJDEST] -~r~¡Moto destrozada! - -[PCJRET] -~r~No has vuelto a la moto. - -[PCJTIME] -~r~¡Se te ha acabado el tiempo! - -[PCJCHEC] -~w~~1~ de ~1~ puntos de control - -[TRRACE1] -~w~Conseguirás más tiempo por cada punto de control que pases... - -[TRRACE3] -~w~Has terminado con ~1~ s. de sobra. - -[TRRACE4] -~w~You reached ~1~ checkpoints out of ~1~ checkpoints first. - -[TRRACE5] -~w~¡Eso te da ~1~ $! - -[TRRACE6] -~w~¡BIEN HECHO! ¡Has pasado el primero por todos los puntos de control! ¡Bonif. de 1.000 $! - -[TRRACE7] -~r~¡Te has salido de la pista! - -[TRRACE8] -~r~¡Tu moto está destrozada! - -[TRRACE9] -~r~No has vuelto a la moto a tiempo. - -[TRRAC10] -~r~¡Te has quedado sin moto! - -[TRRAC11] -~r~¡Se te ha acabado el tiempo! - -[ANG] -Ángeles Vengadores - -[ANG_1] -~w~¡Eh, amigo! ¡Vamos a limpiar de chorizos esta ciudad! - -[ANG_2A] -Pulsa~h~ ~k~ ~TGSUB~ ~w~para unirte a los Ángeles Vengadores. - -[ANG_3] -~w~Tú y yo nos podríamos adueñar de esta ciudad solitos. Pero, esto... mejor buscamos ayuda por si acaso. - -[ANG_3A] -~w~Para cerca de otros Ángeles Vengadores para que se unan a tu banda. - -[ANG_4] -~w~¡Eo! ¡Me he unido a esta panda de gallinas para dar hostias! ¡Así que vamos! - -[ANG_5] -~w~Yo soy tu hombre... - -[ANG_6] -~w~¡Vamos a quemar chusma! - -[ANG_7] -~w~¡Mola dar hostias! - -[ANG_7A] -~w~¿Os dais cuenta? - -[ANG_7B] -~w~¡No queremos bandas de chuloputas en nuestras calles! - -[ANG_7C] -~w~¡No en mi vecindario! - -[ANG_7D] -~w~¡Es hora de devolvérsela! - -[ANG_7E] -~w~¡Somos la ley en esta ciudad! - -[ANG_8] -Tiempo restante - -[ANG_9] -~w~¡Tiempo prorrogado! - -[ANG_10] -~r~¡Se te ha acabado el tiempo! - -[ANG_11] -~w~Hay un grupo de 'indeseables' pululando por aquí... Vamos a darles una lección. - -[ANG_12] -~w~Hay unos linchadores montando jarana por la calle. ¡Pacifiquemos a esos idiotas! - -[ANG_13] -~w~¿Adónde va a ir a parar esta ciudad? ¿Acaso creen que pueden reunirse libremente? ¡Démosles una lección! - -[ANG_13A] -~w~Han visto a una banda muy chunga pegando a la gente por la calle... - -[ANG_14] -~w~Han informado de otro delito... ¡En marcha! - -[ANG_16] -~w~Han visto a gente aparcar en zona prohibida. ¡ADELANTE! - -[ANG_16A] -~w~Sé de unos tíos que siempre están tramando algo. Ya es hora de que les demos una buena tunda. - -[ANG_OBJ] -~w~Acaba con la ~r~banda~w~ problemática. - -[ANG_17] -~w~¡Bien hecho, amigo! Gracias a ti, no hay delincuentes en este barrio. Al menos por ahora... - -[ANG_18] -~w~¡Se están abriendo! - -[ANG_19] -~w~Encuentra a un Ángel Vengador y párate a su lado para la próxima misión. - -[ANG_20] -~w~¡Se están largando! - -[ANG_21] -~w~¡Que no escapen! - -[VIC1] -Home Sweet Home - -[VIC2] -Slacker - -[VIC3] -Dealing Revenge - -[VIC4] -Snuff - -[VIC5] -Smash and Grab - -[VIC6] -Hot Wheels - -[VIC7] -The Portland Chainsaw Masquerade - -[MAR1] -Shop 'til you Strop - -[MAR2] -Taken for a Ride - -[MAR3] -Booby Prize - -[MAR4] -Biker Heat - -[MAR5] -Overdose of Trouble - -[SAL1] -The Offer - -[SAL2] -Ho Selecta! - -[SAL3] -Frighteners - -[SAL4] -Rollercoaster Ride - -[SAL5] -Contra-Banned - -[SAL6] -Sindacco Sabotage - -[SAL7] -The Trouble with Triads - -[SAL8] -Driving Mr. Leone - -[JDT1] -Bone Voyeur! - -[JDT2] -Don in 60 Seconds - -[JDT3] -A Volatile Situation - -[JDT4] -Blow up 'Dolls' - -[JDT5] -Salvatore's Salvation - -[JDT6] -The Guns of Leone - -[JDT7] -Calm before the Storm - -[JDT8] -The Made Man - -[MAC1] -Snappy Dresser - -[MAC2] -Big Rumble in Little China - -[MAC3] -Grease Sucho - -[MAC4] -Dead Meat - -[MAC4_0] -Casa - -[MAC5] -No Son of Mine - -[SALH1] -Rough Justice - -[SALH2] -Dead Reckoning - -[SALH3] -Shogun Showdown - -[SALH4] -The Shoreside Redemption - -[SALH4_V] -~r~v1.1 - -[SALH5] -The Sicilian Gambit - -[SALH5_V] -~r~v1.1 - -[DONH1] -Panlantic Land Grab - -[DONH2] -Stop the Press - -[DONH3] -Morgue Party Resurrection - -[DONH4] -No Money, Mo' Problems - -[DONH5] -Bringing the House Down - -[DONH6] -Love on the Run - -[TOSH1] -More Deadly than the Male - -[TOSH2] -Cash Clash - -[TOSH2F0] -~r~¡Un furgón ha llegado al recinto de los yakuza! - -[TOSH2F1] -~r~¡El convoy ha llegado al recinto de los yakuza! - -[TOSH2F2] -~r~¡No has destruido los furgones! - -[TOSH2M0] -~w~¡Uno menos! - -[TOSH2M1] -~w~¡Otro menos! - -[TOSH3] -A Date with Death - -[TOSH4] -Cash in Kazuki's Chips - -[PO_MOB1] -~w~¿Toni? ¡Soy tu madre! - -[POMOB1A] -~w~¿Cuánto hace que has vuelto a la ciudad? - -[POMOB1B] -~w~¿Cómo es que no has venido a verme? - -[POMOB1C] -~w~¿Qué te pasa? - -[POMOB1D] -~w~¡Virgen Santa! ¡Soy tu madre! Vamos. - -[PO_MOB2] -~w~¡Hola, Toby! Soy María. - -[PO_MOB3] -~w~¡Eh, Toni! Soy J.D. - -[POMOB3A] -~w~Ya me he enterado de que vas a hacer cosas importantes. - -[POMOB3B] -~w~Espero que no te olvides de tu viejo amigo J.D. cuando estés en la cresta de la ola. ¿Vale? - -[POMOB4A] -~w~¿Qué cojones quieres? - -[POMOB4B] -~w~¿Alguien que limpie tus trapos sucios? ¿O quizá el culito? - -[POMOB4C] -~w~No seas así. Escucha, siento todo lo que ha pasado... - -[POMOB4F] -~w~¿Un pastel de arsénico? - -[POMOB4G] -~w~Olvídalo. - -[POMOB4I] -~w~Salvatore se ha enterado y me ha dicho que debemos hacer las paces. - -[POMOB4J] -~w~Así que te tiendo la mano y te pido perdón. Venga, ven. - -[PO_MOB5] -~w~¿Toni? Soy Salvatore. - -[POMOB5A] -~w~¡Tenemos un marrón del quince! ¡Ven aquí corriendo! - -[PO_MOB6] -~w~¿Anthony? Soy Salvatore. - -[POMOB6A] -~w~¿Has visto a María? - -[ST_MOB8] -~w~¿Sí...? - -[STMOB8A] -~w~¿Toni? Soy Sal. - -[STMOB8B] -~w~Tenemos que hablar, pero no me fío de los móviles. - -[STMOB8C] -~w~Te llamaré al teléfono público que hay delante de los juzgados. - -[ST_MOB1] -~w~Toni. Soy Donald. - -[STMOB1A] -~w~Tengo algo urgente que requiere de tus... habilidades especiales. - -[STMOB1B] -~w~Pásate por mi despacho en cuanto puedas. - -[ST_MOB2] -~w~¿Diga? - -[STMOB2A] -~w~¿Cipriani? Soy yo, McAffrey. - -[STMOB2B] -~w~Tengo unas noticias que le gustarán a Salvatore. - -[STMOB2C] -~w~Ven a verme al sitio de siempre. - -[ST_MOB3] -~w~¿Diga? - -[STMOB3A] -~w~Soy Sal. - -[STMOB3B] -~w~Escucha, los Forelli tenían al alcalde Hole en el bolsillo. - -[STMOB3D] -~w~Sé de un pez gordo de los negocios que haría cualquier cosa por conseguir el cargo. - -[STMOB3E] -~w~Es un capullo integral, así que es ideal para el puesto. - -[STMOB3F] -~w~Le he dicho que le ayudarías a ganar las elecciones... ¡por nosotros! - -[ST_MOB4] -~w~Hola. - -[STMOB4A] -~w~Toni. Soy yo, Sal. - -[STMOB4B] -~w~Huelo a los Forelli detrás del marrón en el que estoy. - -[STMOB4C] -~w~Lo que quiero saber es, ¿por qué querían que el alcalde me la metiera doblada? - -[STMOB4D] -~w~Escucha, ve a verme al embarcadero. - -[STMOB4E] -~w~Vamos a hacer unas averiguaciones. - -[ST_MOB5] -~w~¡Hola! - -[STMOB5B] -~w~Ve a la cabina de teléfono de Torrington. - -[STMOB5C] -~w~Tenemos que hablar. - -[STMOB5D] -~w~De camino, quiero que vayas a ver a un socio mío en Aspatria. - -[STMOB5E] -~w~Nos ayudará a meterles presión a los Sindacco y los Forelli. - -[ST_MOB6] -~w~¿Sí...? - -[STMOB6A] -~w~¿Toni? Soy Sal. - -[STMOB6B] -~w~Ve a la cabina de teléfono de Liberty Campus. - -[STMOB6C] -~w~Es importante. - -[ST_MOB7] -~w~¿Diga? - -[STMOB7A] -~w~¿Toni? Aquí Sal. - -[STMOB7B] -~w~Ve a Belleville y busca la cabina de teléfono. - -[STMOB7C] -~w~Necesito que hagas algo urgente. - -[ST_MOB9] -~w~Toni Cipriani al aparato. - -[STMOB9A] -~w~¿Toni? Soy tu madre. - -[STMOB9B] -~w~¡He oído que te han 'bautizado'! - -[STMOB9C] -~w~¡Nunca dudé de ti, hijo! - -[STMOB9D] -~w~Y ver cómo al final has demostrado lo que vales... - -[STMOB9E] -~w~Voy a retirar el encarguito que hice contra ti. - -[STMOB9F] -~w~Pelillos a la mar. - -[STMOB9G] -~w~Al fin y al cabo, lo hice pensando en lo que más te convenía. - -[STMOB9H] -~w~Ah, ¿qué clase de hijo hace que su madre llegue a tales extremos? - -[STMOB9I] -~w~Nos vemos pronto, hijo. No te olvides de tu vieja madre. - -[STMO10] -~w~¿Diga? - -[STMO10A] -~w~Eh, tío duro. Soy McAffrey. - -[STMO10B] -~w~Los federales han trincado a tu jefe, Salvatore. - -[STMO10C] -~w~Y están cabreadísimos. - -[STMO10D] -~w~Le van a cargar a Sal todos los marrones de esta ciudad. - -[STMO10E] -~w~Así que nunca nos hemos visto, ¿eh? - -[SH_MOB1] -~w~¿Toni...? - -[SHMOB1A] -~w~¿Sal? ¿Eres tú? - -[SHMOB1B] -~w~¡Eh, callad! ¡Que estoy hablando con mi abogado...! - -[SHMOB1C] -~w~¿Toni...? Digo... eeh... ¿Lionel? - -[SHMOB1D] -~w~Escucha. Me han trincado. ¿Te lo puedes creer? - -[SHMOB1E] -~w~Me la han metido hasta el fondo. - -[SHMOB1F] -~w~Ven a toda hostia, necesito que te encargues de una cosa. - -[SHMOB1G] -~w~¿Lionel...? - -[SH_MOB2] -~w~¿Diga? - -[SHMOB2A] -~w~¿Toni? Soy Donald. - -[SHMOB2B] -~w~No, espera, ¡no cuelgues! - -[SHMOB2C] -~w~Tengo una proposición muy cachonda que hacerte... - -[SHMOB2D] -~w~Pasa por mi... em... residencia actual, y te pongo al tanto. - -[SHMOB2E] -~w~¿Toni...? - -[SHMOB2F] -~w~Por favor, Toni, ten piedad. Te llamo con mi última mo... - -[SH_MOB3] -~w~¿Es el Sr. Cipriani? - -[SHMOB3A] -~w~¿Quién es? ¿Cómo ha conseguido este número? - -[SHMOB3B] -~w~Si uno pone todo su empeño, puede conseguir mucho. - -[SHMOB3C] -~w~Creo que usted ya lo sabe, Sr. Cipriani. - -[SHMOB3D] -~w~Necesito su ayuda con algo muy delicado. - -[SHMOB3E] -~w~A cambio, será recompensado con generosidad. - -[SHMOB3F] -~w~Se lo explicaré cuando venga a mi apartamento, en Torrington. - -[SH_MOB4] -~w~¡Toni! ¡Soy Sal! - -[SHMOB4A] -~w~¡Lo has logrado! ¡Casi ni me lo creo, chico! - -[SHMOB4B] -~w~¡Apenas hay ratas en casa! - -[SHMOB4C] -~w~Ven a verme. Nos quedan por atar unos cabos sueltos. - -[SH_MOB5] -~w~¿Toni? Aquí Donald. - -[SHMOB5A] -~w~Si lo de Panlantic sale adelante, vamos a necesitar, ejem... - -[SHMOB5B] -~w~¿Cómo decirlo sin que suene mal...? - -[SHMOB5C] -~w~'Limpiar' una pequeña parcela en Fort Staunton. - -[SHMOB5D] -~w~Cuando dices 'vamos' quieres decir 'voy', ¿no? - -[SHMOB5E] -~w~Toni, tú y yo nos entendemos bien. - -[SHMOB5F] -~w~Ve a ver a 8-Ball. Seguro que nos podrá facilitar el material necesario. - -[SHMOB5G] -~w~Seguro que nos podrá facilitar el material necesario. - -[SH_MOB6] -~w~¿Tío? Soy 8-Ball. - -[SHMOB6A] -~w~Los petardos ya están listos. - -[AHIT_H0] -~w~¿No sabes nada mejor, capullo? - -[AHIT_H1] -~w~¡Por el amor de Dios! ¿Cuándo se rendirán estos capullos? - -[AHIT_H2] -~w~¡Bésame el culo, gilipollas! - -[AHIT_H3] -~w~¡Estos chicos empiezan a cabrearme! - -[AHIT_BI] -~w~¡Estate alerta! ¡Uno de los sicarios de mamá está cerca! - -[AHIT_TA] -~w~¡Mucho ojo! ¡Uno de los asesinos a sueldo de mamá anda por aquí! - -[AHIT_BU] -~w~¡Cuidado! ¡Un sicario de mamá va a por ti! - -[AHIT_AM] -~w~¡Ojo! ¡Uno de los asesinos contratados por mamá te ha visto! - -[AHIT_VA] -~w~¡Ojo avizor! ¡Uno de los asesinos a sueldo de mamá está en la zona! - -[AHIT_PO] -~w~¡Ojito! ¡Uno de los sicarios de mamá se dispone a matar! - -[AHIT_CA] -~w~¡Cuidado! ¡Uno de los asesinos de mamá se te está acercando! - -[K_TKT] -Scrapyard Challenge - -[K_TK2] -~w~Pasa por las anillas para conseguir puntos. - -[K_TK4] -~w~¡Consigue tantos puntos como puedas antes de que se acabe el tiempo! - -[K_CD] -~s~Tienes ~1~ s. para volver a la ~b~moto~s~. - -[K_TKP1] -~w~¡1 punto! - -[K_TKP2] -~w~¡2 puntos! - -[K_TKP3] -~w~¡3 puntos! - -[K_SC] -Puntuación - -[K_SCX] -~w~¡Has conseguido ~1~ puntos! - -[K_SCX1] -~w~¡Has conseguido 1 punto! - -[K_HSC1] -~w~¡Nuevo récord de ~1~ puntos! - -[K_HSC2] -~r~No has conseguido batir el récord de ~1~ puntos. - -[KRUSH] -¡Ahora ganarás cuatro veces más dinero al usar la trituradora de coches! - -[KRUSH2] -¡Ahora ganarás ocho veces más dinero al usar la trituradora de coches! - -[TURFAIL] -~r~¡FIN DE LA MISIÓN EVENTUAL! - -[TKR1] -9mm Mayhem - -[TKR2] -Scooter Shooter - -[TCKILL] -Abatidos - -[TCHEAL] -Daño - -[TC2_1] -~r~¡Has matado al conductor! - -[TC2_2] -~r~¡Vehículo destruido! - -[TC2_3] -~r~¡Se acabó el tiempo! - -[TC_T_E] -~w~¡Objetivo eliminado! ~1~ $ - -[TUP_BR] -~w~Elimina tantos ~r~objetivos~w~ como puedas antes de que se acabe el tiempo. - -[TUP_BR2] -~w~¡Elimina a más de ~1~ ~r~objetivos~w~ para conseguir un nuevo récord! - -[TUP_AD] -~w~Tienes 3 pastillas de adrenalina. Pulsa el botón R1 para usar una. - -[TUPSC1] -~w~¡Nuevo récord de ~1~ abatidos! - -[TUPSC2] -~r~No has conseguido superar el récord de ~1~ abatidos. - -[MPWCS1] -The Wedding List - -[MPWCS2] -Eh, ¿qué te cuentas? - -[MPWCS3] -Oye, mi hijo Joey va a dar un braguetazo. - -[MPWCS4] -Le he buscado a una chica con clase, igualita a mi María... ¡Ganas tengo de que se conozcan! - -[MPWCS5] -Pero no quiero que ella lo vea conducir uno de esos trastos que arregla en su taller. - -[MPWCS6] -Así que peina esta ciudad y búscale un buga decente. - -[MPWCS7] -Te aseguro que te recompensaré. - -[MPTCS1] -Tanks for the Memories - -[MPTCS2] -Aquí Sal. Necesito distraer a la poli y tú vas a ayudarme. - -[MPTCS3] -Tengo un tanque aparcado al otro lado de la ciudad. ¡Cógelo y arrasa con todo! - -[MPTCS4] -Quiero que la gente crea que se han meado en la tumba de Patton. - -[MPTCS5] -Escucha, esta distracción es muy importante, así que he avisado también a otros hombres de confianza. - -[MPTCS6] -Solo pienso pagar al que esté a los mandos más tiempo. - -[MPRCS1] -Street Rage - -[MPRCS2] -Soy Salvatore Leone, el benefactor público consagrado. - -[MPRCS3] -¡No hagan caso de lo que dice el fiscal general! - -[MPRCS4] -Soy un amigo bueno y generoso de Liberty City. Por eso hoy patrocino esta gran carrera. - -[MPRCS5] -¿Cuánto me cuesta esta mierda? - -[MPRCS6] -¡¿QUÉ?! Llévenme a urgencias. ¡Tengo un dolor en el pecho! - -[MPHPCS2] -Aquí Sal... Los federales me han pinchado el teléfono, así que seré sutil. - -[MPHPCS3] -Hay un maletín lleno de 'lechugas' debajo del teléfono y una lista de nombres. Adivina qué quiero... - -[MPHPCS4] -¡Aguarda...! No, no quiero que repartas la pasta entre esos cabrones. - -[MPHPCS5] -Ya sabes... Apártalos de mi vista. - -[MPHPCS6] -Espera, no quería decir 'apartar' en el sentido de 'alejar'. Quería decir... um... - -[MPHPCS7] -¡Mira, mata a todos los cabrones de esa lista! - -[DEB0] -DEBUG 0 - -[DEB1] -DEBUG 1 - -[DEB2] -DEBUG 2 - -[DEB3] -DEBUG 3 - -[DEB4] -DEBUG 4 - -[NUM0] -DEBUG 0 (~1~) - -[NUM1] -DEBUG 1 (~1~) - -[NUM2] -DEBUG 2 (~1~) - -[NUM3] -DEBUG 3 (~1~) - -[NUM4] -DEBUG 4 (~1~) - -[CARS] -Vendedor de coches - -[BIKE] -Vendedor de motos - -[RACE_0] -Posición - -[RACE_FL] -~w~ÚLTIMA VUELTA - -[RACE_X0] -~w~Consigue un coche y ponte en la ~y~línea de salida~w~. - -[RACE_X1] -~w~Consigue una moto y ponte en la ~y~línea de salida~w~. - -[RACE_X2] -~w~¡Necesitas un coche para participar! - -[RACE_X3] -~w~¡Necesitas una moto para participar! - -[RACE_X4] -~w~Tienes ~1~ s. para encontrar un coche. - -[RACE_X5] -~w~Tienes ~1~ s. para encontrar una moto. - -[RACE_X6] -~w~Tienes 1 s. para encontrar un coche. - -[RACE_X7] -~w~Tienes 1 s. para encontrar una moto. - -[RACE_T0] -~r~¡No has quedado el primero! - -[RACE_T1] -~r~Te han descalificado por abandonar el coche. - -[RACE_T2] -~r~Ha muerto uno de los corredores - se ha cancelado la carrera. - -[RACE_T3] -~r~Te han descalificado por abandonar la moto. - -[RACE_Y3] -~w~3 - -[RACE_Y2] -~w~2 - -[RACE_Y1] -~w~1 - -[RACE_Y] -~w~¡YA! - -[RACE_Z1] -~w~¡1ª POSICIÓN! - -[RACE_Z2] -~w~¡2ª POSICIÓN! - -[RACE_Z3] -~w~¡3ª POSICIÓN! - -[RACE_Z4] -~w~¡ÚLTIMA POSICIÓN! - -[RACE_R1] -~w~RÉCORD: ~1~:~1~~1~ ¡NUEVO RÉCORD! - -[RACE_R2] -~w~¡NUEVO RÉCORD! - -[RACE_S0] -~w~TIEMPO: ~1~:~1~~1~ - -[RACE_S1] -~w~MEJOR VUELTA: ~1~:~1~~1~ - -[RAC1] -Low-Rider Rumble - -[RAC2] -Deimos Dash - -[RAC3] -Wi-Cheetah Run - -[BIK1] -Red Light Racing - -[BIK2] -Torrington TT - -[BIK3] -Gangsta GP - -[TT1] -Bumps & Grinds - -[TT1_A1] -~w~< TRAZADO ~1~ > - -[TT1_B1] -~w~Objetivo del trazado: ~1~:~1~ - -[TT1_B1A] -~w~Objetivo del trazado: ~1~:0~1~ - -[TT1_B2] -~w~Mejor tiempo de trazado: ~1~:~1~ - -[TT1_B2A] -~w~Mejor tiempo de trazado: ~1~:0~1~ - -[TT1_B3] -~w~Mejor tiempo de vuelta: ~1~:~1~ - -[TT1_B3A] -~w~Mejor tiempo de vuelta: ~1~:0~1~ - -[TT1_B4] -~w~~1~:~1~ - -[TT1_B4A] -~w~~1~:0~1~ - -[TT1_B5] -~w~¡Nuevo récord de trazado! ~1~:~1~ - -[TT1_B5A] -~w~¡Nuevo récord de trazado! ~1~:0~1~ - -[TT1_L] -~r~ Bloqueado. - -[A_PISTO] -~w~< Pistola > - -[A_UZI] -~w~< Micro subfusil > - -[A_AK] -~w~< AK 47 > - -[A_SNIPE] -~w~< Rifle de francotirador > - -[A_GRENA] -~w~< Granadas > - -[A_ARMOU] -~w~< Blindaje corporal > - -[A_ROCKE] -~w~< Lanzacohetes > - -[A_SHOTG] -~w~< Escopeta > - -[A_M4] -~w~< M-4 > - -[A_FLAME] -~w~< Lanzallamas > - -[A_MINIG] -~w~< Minigun > - -[A_COST] -~w~Precio: ~h~~1~ $ - -[A_COST2] -~w~Precio: ~h~~1~ $ ~n~ ~r~Esto sustituirá a tu arma actual. - -[A_COST3] -~w~Precio: ~h~~1~ $ ~n~ ~r~Tu blindaje corporal está en buen estado. - -[A_COST4] -~w~Precio: ~h~~1~ $ ~n~ ~r~No puedes permitirte esto. - -[A_STOCK] -~r~Sin existencias - -[A_VIC4] -~w~Una pistola suele valer 240 $, pero ésta va a cuenta de Vincenzo. - -[A_DONS4] -~w~Donald Love ya ha pagado esto. - -[A_NEDS4] -~w~Un 'santo varón' reservó esto para usted. - -[A_TALK1] -~w~Tengo todo lo que necesita para defenderse. - -[A_TALK2] -~w~¿Quiere también un permiso? - -[A_TALK3] -~w~No necesito pedirle el carné. Usted parece de confianza. - -[A_TALK4] -~w~Bienvenido. Pruebe el campo de tiro en la trastienda. - -[BENZ_GO] -~w~¡Cámbiate de ropa! - -[PIZ_B01] -~w~¡Tienes ~1~ s. para volver a subir a la ~b~moto de repartidor~w~! - -[PIZ_B02] -~w~¡Tienes ~1~ s. para volver a subir a la ~b~moto de repartidor~w~! - -[PIZ_F04] -~r~¡No has vuelto a la moto de repartidor! - -[NDL_B01] -~w~¡Tienes ~1~ s. para volver a subir a la ~b~moto de repartidor~w~! - -[NDL_B02] -~w~¡Tienes ~1~ s. para volver a subir a la ~b~moto de repartidor~w~! - -[NDL_F04] -~r~¡No has vuelto a la moto de repartidor! - -[EXPO_D] -~w~Tarifa por objeto encontrado: ~1~ $ ¡Acaba la lista para conseguir un extra! - -[PUPSPN] -~w~¡MEJORA GENERADA! - -[PUPMEGA] -~y~¡MEGADAÑO! - -[PUPREGN] -~y~¡REFUERZO DE SALUD! - -[PUPINVS] -~y~¡INVISIBILIDAD! - -[PUPFREZ] -~y~¡FRENESÍ! - -[MPK] -ha matado a - -[MPKHEAD] -ha recibido un tiro en la cabeza - -[MPNEED] -solo necesita - -[MPNAME] -Nombre - -[MPSCORE] -Punt. - -[MPPING] -Ping - -[MPCPS] -Puntos de control - -[MPTIME] -Tiempo - -[MPBONUS] -Bonificación - -[MPQG] -¿Salir de la partida? - -[MPQUIT] -Salir - -[MPCONT] -Continuar - -[MPHIGH] -Tiempo más alto - -[MPBY] -por - -[MPOVER] -Game Over - -[MPFIRST] -ha terminado primero - -[MPWITH] -gana con ($): - -[MPHP05] -~w~5 s. para el siguiente objetivo. - -[MPHP04] -~w~4 s. para el siguiente objetivo. - -[MPHP03] -~w~3 s. para el siguiente objetivo. - -[MPHP02] -~w~2 s. para el siguiente objetivo. - -[MPHP01] -~w~1 s. para el siguiente objetivo. - -[RCRANGE] -~w~¡Está demasiado lejos! - -[CAD5_AA] -Aquí Sal. - -[CAD5_AB] -¡Esos Forelli me han tocado los huevos! ¡Y van pagarlo! - -[CAD5_AC] -Quiero que cojas sus coches más fardones... - -[CAD5_AD] -... y los lleves al depósito de coches de los Sindacco, sus mayores rivales. - -[CAD5_AE] -Asegúrate de que los Forelli no roben ningún coche de los Sindacco como represalia. - -[CAD5_AF] -¿Capisci? - -[CAD4_AA] -Soy yo, Sal. - -[CAD4_AB] -Le debo una a Franco Forelli, y tú me vas a ayudar a devolvérsela. - -[CAD4_AC] -En el depósito de coches de los Sindacco tienen algunos bugas muy fardones. - -[CAD4_AD] -Quiero que los robes todos y los lleves al aparcamiento de los Forelli. - -[CAD4_AE] -Asegúrate de que no roben ningún vehículo de los Forelli mientras estés por allí. - -[CAD4_AF] -Eh, y no la cagues. - -[MPC_000] -Toni - -[MPC_001] -'Lionel' - -[MPC_002] -Cipriani - -[MPC_003] -Chófer - -[MPC_004] -Mono - -[MPC_005] -Toni Esmoquin - -[MPC_006] -Furía - -[MPC_007] -El Rey - -[MPC_008] -Cocks - -[MPC_009] -Streak - -[MPC_010] -'T' - -[MPC_011] -Dragón - -[MPC_012] -J.D. - -[MPC_013] -El Masoca - -[MPC_014] -Avery - -[MPC_015] -Choc-Choc - -[MPC_016] -8-Ball - -[MPC_017] -Maria - -[MPC_018] -'Hamfists' - -[MPC_021] -Número 1 - -[MPC_023] -Hung Lo - -[MPC_025] -Yamazaki - -[MPC_031] -Agente '69' - -[MPC_032] -El Especialista - -[MPC_034] -G.I. Jones - -[MPC_035] -Sam - -[FEA_FM0] -HEAD RADIO - -[FEA_FM1] -DOUBLE CLEF FM - -[FEA_FM2] -K-JAH - -[FEA_FM3] -RISE FM - -[FEA_FM4] -LIPS 106 - -[FEA_FM5] -RADIO DEL MUNDO - -[FEA_FM6] -MSX 98 - -[FEA_FM7] -FLASHBACK FM - -[FEA_FM8] -THE LIBERTY JAM - -[FEA_FM9] -LCFR - -[MRACELA] -Vuelta - -[DTB_01] -~w~Defiende tu base de los enemigos que la ataquen. - -[DTB_02] -~w~Protege tus coches a toda costa. - -[CAD2_AB] -~w~Buenas noticias: los Forelli y los Sindacco vuelven a llevarse a matar. - -[CAD2_AC] -~w~Los dos quieren hacerse con toda la venta de coches de Liberty. - -[CAD2_AD] -~w~Como ya 'ayudamos' a los Forelli la semana pasada... - -[CAD2_AE] -~w~... es hora de que equilibremos las cosas. - -[CAD2_AF] -~w~Ayuda a los Sindacco a arrasar el aparcamiento de los Forelli. - -[POMOB6B] -~w~Te juro que yo solo la veo cuando necesita pasta. - -[POMOB2A] -~w~Salvatore me ha dado tu número... Bueno, lo miré en su agenda. ¡Qué más da! - -[POMOB2B] -~w~Tú eres su nuevo perrito, ¿no? Bueno, pues me apetece un paseo. - -[POMOB2C] -~w~Te quiero ver aquí enseguida. - -[GS_RGUN] -EMPEZAR CON ARMAS: - -[TUSHTK] -AWOL Angel - -[SC_WICH] -Récord en AWOL Angel - -[NE_WIFI] -Ha ocurrido un error de red. Se ha apagado el interruptor WLAN. Enciéndelo para jugar las partidas multijugador. - -[BNDRAC0] -Thrashin' RC - -[BNDRAC1] -Ragin' RC - -[BNDRAC2] -Chasin' RC - -[GS_G1] -LIBERTY CITY SURVIVOR - -[GS_G2] -STREET RAGE - -[GS_G3] -PROTECTION RACKET - -[GS_G4] -GET STRETCH - -[GS_G5] -TANKS FOR THE MEMORIES - -[GS_G6] -THE HIT LIST - -[GS_G7] -THE WEDDING LIST - -[TRCR1] -~w~1 - -[TRCR2] -~w~2 - -[TRCR3] -~w~3 - -[TRCRGO] -~w~¡YA! - -[GA_16] -~w~La mano de pintura va incluida. - -[NEW_TAX] -~w~Misión de taxista completada. Mean Street Taxis acaba de recibir un nuevo vehículo en las cocheras de Trenton. - -[EXPO_2] -~w~Si les proporcionas en buen estado los vehículos que quieren, te recompensarán bien. - -[FEMP_NC] -Estableciendo conexiones de red... Espera. - -[C1TGSUB] -botón R3 - -[C2TGSUB] -botón R3 - -[C3TGSUB] -~S~ - -[C2VEHN] -botón R1 - -[C2VECRS] -botón L3 - -[C3VECRS] -~O~ - -[C2PDCWE] -botón L2 y botón R2 - -[C3PDCWE] -botón L2 y botón R2 - -[BENZ_LA] -~w~El ~h~traje de abogado~w~ ya está disponible en el piso franco. - -[BENZ_TR] -~w~La ~h~ropa informal~w~ ya está disponible en el piso franco. - -[SLH1_OU] -~w~Necesitas un ~h~traje de abogado~w~ para entrar a ver a Sal. - -[SLH1_OR] -~w~Debes llevar un traje de abogado para ver a Sal. - -[L_TRN_1] -~w~Puedes usar el ~h~tren elevado~w~ para viajar por Portland. Pulsa~h~ ~k~ ~VEEE~ ~w~para entrar o salir de él. - -[HELP2] -~w~Pulsa~h~ ~k~ ~PDSPR~ ~w~al correr para ~h~esprintar~w~. - -[STMOB5A] -~w~Toni, soy Sal. - -[SCH_TK7] -~r~Has abandonado el vertedero. - -[STMOB3C] -~w~Pero nosotros nos haremos con el control del ayuntamiento. - -[SALH3A] -~w~Consigue un medio de transporte para Donald. - -[MPCASH] -Dinero - -[MPCARS] -Coches - -[CRUSHED] -Valor de la chatarra: ~1~ $ - -[BENZ_BO] -~w~Coge una muda de ~h~ropa interior~w~ en el piso franco. - -[BENZ_EL] -~w~El ~h~mono de 'el Rey'~w~ ya está disponible en el piso franco. - -[BENZ_CO] -~w~El ~h~disfraz de mascota de los Cox~w~ ya está disponible en el piso franco. - -[BENZ_HE] -~w~Misiones de Ángel Vengador, Shoreside: nivel 15 completado. La ~h~ropa de superhéroe~w~ ya está disponible en el piso franco. - -[BENZ_DR] -~w~El ~h~mono de Dragón~w~ ya está disponible en el piso franco. - -[TRTIT] -Wong Side Of The Tracks - -[TRRACE2] -~w~¡Cuidado! Los hermanos Wong parecen muy duros... - -[MPTOTAL] -Tiempo - -[TOUR_W6] -~w~Han dejado un Landstalker blindado exclusivo junto a tu piso franco. Guárdalo bien en tu garaje. - -[OUTFITS] -Ropa desbloqueada - -[MPHPMAR] -es el señalado y debe morir. - -[FEC_CWT] -Cambiar de arma\objetivo - -[EXPO_1] -~w~Love Media necesita premios que dar en sus competiciones 'Car-razy Car Give Away'. - -[PCJLAP] -~w~Nuevo récord de vuelta: ~1~ s. - -[MPBLCAR] -Coche azul: - -[MPRDCAR] -Coche rojo: - -[RAMP_A] -~w~¡DESTRUCCIONES COMPLETADAS! ~1~ $ - -[FET_SAV] -Guardar partida - -[FET_WRN] -¡Aviso! Se han activado uno o más trucos. Esto puede afectar a la partida guardada. Se recomienda que no guardes esta partida. - -[HELP39] -~w~Mueve~h~ ~k~ ~VEWEI~ ~w~para desplazar tu peso en la moto. +[HORN3] +Pulsa ~h~~k~~VEHICLE_HORN~~w~para tocar el ~h~claxon. [FEC_EXV] -Salir del vehículo +Entrar y salir de vehículo -[MPCOLL] -COCHES RECOGER: +[TAXI_M] +'TAXISTA' -[FEMP_HG] -ANFITRIÓN DE PARTIDA +[COP_M] +'JUSTICIERO' -[FEMP_JG] -UNIRSE A PARTIDA +[FIRE_M] +'BOMBERO' -[K_TK3] -~w~1 punto por las ~g~verdes~w~, 2 por las de color ~y~ámbar~w~ y 3 por las ~r~rojas~w~. +[AMBUL_M] +'ATS' -[FEMP_GJ] -ELIGE LA PARTIDA A UNIRSE +[HJ_IS] +BONIFICACIÓN POR ACROBACIA: ~1~ $ -[FEMP_H] -ANFITRIÓN: +[HJ_PIS] +BONIFICACIÓN POR ACROBACIA PERFECTA: ~1~ $ -[FEMP_P] -JUGADORES: +[HJ_DIS] +BONIFICACIÓN POR ACROBACIA DOBLE: ~1~ $ -[FEMP_HN] -SER ANFITRIÓN DE NUEVA PARTIDA +[HJ_PDIS] +BONIFICACIÓN POR ACROBACIA DOBLE PERFECTA: ~1~ $ -[PO_MOB4] -~w~Eh, soy yo, Vincenzo. +[HJ_TIS] +BONIFICACIÓN POR ACROBACIA TRIPLE: ~1~ $ -[POMOB4D] -~w~Venga, pásate por mi casa, tengo algo para ti. +[HJ_PTIS] +BONIFICACIÓN POR ACROBACIA TRIPLE PERFECTA: ~1~ $ -[POMOB4E] -~w~¿Sí? ¿Y de qué se trata? ¿Unos zapatos de cemento? +[HJ_QIS] +BONIFICACIÓN POR ACROBACIA CUÁDRUPLE: ~1~ $ -[POMOB4H] -~w~No. Vamos, Toni, estoy muy arrepentido... +[HJ_PQIS] +BONIFICACIÓN POR ACROBACIA CUÁDRUPLE PERFECTA: ~1~ $ -[FEMP_F] -COMPLETO +[FESZ_LS] +Carga completada con éxito. -[FEMP_R] -RESTAURAR PREDETERMINADOS +[HELI_1A] +Prueba tus habilidades con el Sparrow, comprueba lo rápido que puedes completar el circuito. -[YOU] -TÚ +[HELI_1B] +¡Circuito completado! ~1~ $ -[NE_POW] -Ha ocurrido un error de red. Se ha apagado el interruptor POWER/HOLD (alimentación/bloqueo). +[HELIODD] +Trabajos esporádicos del helicóptero -[FEMP_SQ] -¿Seguro que quieres empezar una partida multijugador? +[LAW] +LAS MISIONES DEL ABOGADO -[BIKETXT] -~w~Hogs & Cogs solo está abierto entre las 08:00 y las 18:00. Vuelve entonces. +[LAW1_1] +~g~Consigue unos trapos nuevos en la tienda de ropa de Rafael. -[RACE_2] -Tiempo +[LAW4_6] +¡Quemad la dirección! -[FEF_CO2] -Elige la mejor configuración de los controles para tu estilo de juego. +[LAW4_7] +¡Matad a los jefes! -[TYREPOP] -Neumáticos reventados a tiros +[LAW4_8] +Luchad, luchad, luchad, luchad. -[FE_INIP] -Iniciando y cargando el MENÚ PAUSA... Espera. +[LAW4_9] +¡Más vacaciones, menos trabajo! -[DON4EX3] -~w~¿Aceptas cheques? +[LAW4_11] +¡Luchad! ¡Luchad! ¡Luchad! ¡Luchad! -[CRUSH] -~w~Convierte la chatarra en dinero. Ciertos vehículos serán triturados si los dejas en el área señalada con neumáticos. +[LAW4_12] +¡Viva la revolución! -[ANG_15] -~w~Unos idiotas le han robado el coche a un pobre hombre... ¡A por ellos! +[GENERAL] +LAS MISIONES DEL CORONEL -[CDERROR] -Por favor, espera... +[GEN3_4] +Tommy Vercetti. Vamos... -[FEC_LOF] -Mirar hacia delante +[GEN3_13] +¿Cuál es tu problema, tío? ¡Sube al tejado al otro lado del patio antes de que aparezcan! -[MPHELP] -AYUDA +[GEN3_17] +¡Mierda! ¿Intentas matarme? -[C1VEHN] -botón L1 +[GEN3_21] +~g~¡Tiene el dinero de Díaz! ¡Ve tras él y recupéralo! -[C3VEHN] -botón L3 +[GEN3_24] +~r~¡Díaz murió! ¡Has fracasado al protegerle! -[MPOBJ] -OBJETIVO: +[GEN3_26] +~r~¡Le pegaste un tiro a Díaz! -[MPLEG] -LEYENDA DEL RADAR: +[GEN3_27] +~r~¡Disparaste a los guardaespaldas de Díaz! -[GS_O1] -¡Cada uno a lo suyo! ¡Mata a los demás jugadores! +[GEN3_31] +~g~Ahora ve al punto de entrega y cuida de Díaz. -[GS_O2] -Pasa por los puntos de control para llegar el primero a la línea de meta. +[GEN3_32] +~g~Ve a tu posición elevada en el tejado del edificio opuesto a donde está Lance. -[GS_OD3] -Defiende de los atacantes enemigos las cuatro limusinas que hay en tu base. +[COKE] +LAS MISIONES DEL BARÓN DE LA NIEVE -[GS_O6] -Mata al jugador "señalado" lo más rápido posible. Si eres tú el "señalado", sobrevive cuanto puedas. +[COK1_3] +¡Espero que te caigas y te rompas el cuello! -[GS_O7] -Recoge coches por la ciudad y llévalos a los contenedores que te esperan. +[COK1_6] +Estoy cansado de estos mamones. -[FHOSE_2] -~w~El~h~ ~k~ ~VEWEA~ ~w~ajustará la posición del cañón de agua. +[COK2_7] +¿Veis esos marcadores chicos? ¡Probad a dar a las luces! -[MPI01] -MEJORA +[COK2_10] +Desde luego eres mejor disparando que charlando. -[MPI02] -SALUD +[COK2_11] +Gracias. Eres un verdadero encanto. -[MPI03] -BLINDAJE +[COK2_12] +Lo sé, Tommy. -[MPI04] -ARMA +[COK2_18] +¿Te gusta Kenny Loggins? -[SPIDER] -Deimos SP +[COK2_19] +Dios, ¡me encanta este disco! -[PONTIAC] -Phobos Vt +[COK2_26] +~r~¡Mataste a Lance! -[FORELLI] -Forelli ExSess +[COK3_1] +¡No dispares tío! -[AHIT_LO] -Puede que se haya largado, pero volverá para terminar su trabajo. +[COK3_2] +¿Qué hay ahí? -[FEM_ROF] -Radio apagada +[COK3_3] +Se está llevando el barco. Gorrón. -[GA_1] -~w~¿Estás de broma? ¡No pienso tocar eso! +[COK3_4] +¡Ayuda! ¡Un tipo me está robando el barco, tío! -[TRA_NEX] -Próxima parada: +[COK4_W] +¡Uugghh! Ése era el último. -[TRA_CUR] -Parada actual: +[COK4_X] +Voy a arrancarlo -[PAGEB2] -~w~La ~h~escopeta~w~ ya está disponible en el piso franco. +[COK4_Y] +Creo que tenemos algunos amigos nuevos. -[PAGEB3] -El ~h~blindaje corporal~w~ ya está disponible en el piso franco. - -[PAGEB4] -~w~El ~h~subfusil~w~ ya está disponible en el piso franco. - -[PAGEB5] -~w~El ~h~.357~w~ ya está disponible en el piso franco. - -[PAGEB6] -~w~El ~h~M4~w~ ya está disponible en el piso franco. - -[PAGEB7] -~w~El ~h~rifle de francotirador con mira láser~w~ ya está disponible en el piso franco. - -[PAGEB8] -~w~El ~h~lanzallamas~w~ ya está disponible en el piso franco. - -[PAGEB9] -~w~El ~h~lanzacohetes~w~ ya está disponible en el piso franco. - -[PAGE_01] -Mata a tiros a ~1~ de la Tríada en 2 min. - -[PAGE_02] -Vuela ~1~ vehículos en 2 min. - -[PAGE_03] -Incinera a ~1~ Diablos en 2 min. - -[PAGE_04] -Mata a ~1~ mafiosos Leone en 2 min. - -[PAGE_05] -Quema ~1~ vehículos en 2 min. - -[PAGE_06] -Atropella a ~1~ peatones en 2 min. - -[PAGE_07] -Destroza ~1~ vehículos en 2 min. - -[PAGE_08] -Aniquila a ~1~ peatones en 2 min. - -[PAGE_09] -Quema a ~1~ yakuza en 2 min. - -[PAGE_10] -Asesina a ~1~ Forelli en 2 min. - -[PAGE_11] -Atropella a ~1~ peatones en 2 min. - -[PAGE_12] -Mata a ~1~ peatones en 2 min. - -[PAGE_13] -Mata a ~1~ yakuza en 2 min. - -[PAGE_15] -Aniquila a ~1~ peatones en 2 min. - -[PAGE_16] -Destroza ~1~ vehículos en 2 min. - -[PAGE_17] -Abate a ~1~ peatones como francotirador en 2 min. - -[PAGE_18] -Destroza ~1~ vehículos en 2 min. - -[PAGE_20] -Achicharra a ~1~ peatones en 2 min. - -[MPI05] -ENEMIGO - -[MPI07] -PTO. CONTROL - -[MPI08] -SIGUIENTE - -[MPI09] -LÍNEA DE META - -[MPI10] -CORREDOR - -[MPI11] -BASE - -[MPI12] -BASE ENEMIGA - -[MPI13] -TANQUE - -[MPI14] -SEÑALADO - -[MPI15] -COCHE - -[MPI16] -CONTENEDOR - -[FEI_LEG] -Leyenda Sí/No - -[SR_ON] -Ahora que ya te has hecho un nombre en el circuito de carreras callejeras, busca a los rivales que intentan contactar contigo. - -[FEC_FRA] -Puntería libre - -[KAR_ON] -Vuelve al coche de bomberos siempre que quieras e intenta batir tu mejor tiempo. - -[DON2EX5] -~w~8-Ball no cederá a menos que le pagues 20.000 $ del ala. - -[PCJTIT] -GO GO Faggio - -[FEST_GO] -Mejor tiempo en "Go Go Faggio" - -[RC_1] -~w~Mata a más de ~1~ de la Tríada. Cada muerto te dará una bonificación al tiempo. - -[EXPO_C] -~w~¡Gracias! ¡Ya están todos! Tienes una bonificación alucinante a la puerta de tu piso de Newport. - -[TRRACE0] -~w~Pasa por los ~y~puntos de control~w~ y llega vivo al final de la carrera. - -[RACE_P1] -~w~1° - -[RACE_P2] -~w~2° - -[RACE_P3] -~w~3° - -[RACE_P4] -~w~4° - -[OUTF_00] -~w~Ropa informal - -[OUTF_01] -~w~Traje de Leone - -[OUTF_03] -~w~Uniforme de Ángel Vengador - -[OUTF_04] -~w~Ropa de chófer - -[OUTF_05] -~w~Traje de abogado - -[OUTF_06] -~w~Esmoquin - -[OUTF_07] -~w~Mono de 'el Rey' - -[OUTF_08] -~w~Disfraz de mascota de los Cox - -[OUTF_09] -~w~Ropa interior - -[OUTF_10] -~w~Ropa de superhéroe - -[OUTF_11] -~w~Mono de Dragón - -[SLTVMON] -Dinero total ganado en Slash TV - -[DBIKEAI] -Mayor altura alcanzada (m) - -[MPC_039] -Vincenzo - -[MPC_040] -Salvatore - -[MPC_041] -Toshi - -[MPC_042] -Toshiko - -[MPC_043] -Ophelia Lardaz - -[MPC_044] -Ed Banger - -[MPC_045] -Robin Emblind - -[MPC_046] -Sra. Menalot - -[MPC_047] -Hugh Jazz - -[MPC_048] -Wayne - -[MPC_049] -Paulie - -[MPC_050] -Anne Job - -[MPC_051] -Randy Boner - -[MPC_052] -Owen Monie - -[MPC_053] -Ekant Sing - -[MPC_054] -M.T. Head - -[MPC_055] -Rick O'Shea - -[MPC_056] -Arden Long - -[MPC_057] -Ann Thrax - -[MPC_058] -Fay Slift - -[MPC_059] -Mona Lott - -[C0VEACC] -~X~ - -[C1VEACC] -~X~ - -[C2VEACC] -~X~ - -[C3VEACC] -joystick analógico derecho hacia arriba - -[C0VEBRK] -~S~ - -[C1VEBRK] -~S~ - -[C2VEBRK] -~S~ - -[C3VEBRK] -joystick analógico derecho hacia abajo - -[C0VEHB] -botón R1 - -[C1VEHB] -botón R1 - -[C0VEEE] -~T~ - -[C1VEEE] -~T~ - -[C2VEEE] -botón L1 - -[C3VEEE] -~T~ - -[C0VEWEP] -~O~ - -[C1VEWEP] -~O~ - -[C2VEWEP] -~O~ - -[C3VEWEP] -botón R1 - -[C0PDSPR] -~X~ - -[C1PDSPR] -~X~ - -[C0SNZI] -~S~ - -[C1SNZI] -~S~ - -[C0SNZO] -~X~ - -[C1SNZO] -~X~ - -[C0PDFW] -~O~ - -[C1PDFW] -~O~ - -[C0TRSK] -~X~ - -[C1TRSK] -~X~ - -[C2TRSK] -~X~ - -[C3TRSK] -~X~ - -[C0AMBUY] -~X~ - -[C1AMBUY] -~X~ - -[C2AMBUY] -~X~ - -[C3AMBUY] -~X~ - -[C0AMEXI] -~T~ - -[C1AMEXI] -~T~ - -[C2AMEXI] -~T~ - -[C3AMEXI] -~T~ - -[C2PDSPR] -~O~ - -[C3PDSPR] -~X~ - -[C2SNZI] -~T~ - -[C3SNZI] -~S~ - -[C2SNZO] -~S~ - -[C3SNZO] -~X~ - -[C2PDFW] -~X~ - -[C3PDFW] -botón R1 - -[MPC_020] -Rico Garlik - -[MPC_022] -Lou Scannon - -[MPC_024] -Cruz Vormen - -[MPC_026] -Busta Moves - -[MPC_027] -Juan Kerr - -[MPC_028] -Nick Yakar - -[MPC_029] -Lou Bricant - -[MPC_030] -Lance Urwell - -[MPC_033] -Agente Ochre - -[MPC_036] -Papi Love - -[MPC_037] -Lucy Lastic - -[MPC_038] -Bill Durzbum - -[MPISCOL] -Objeto recogido - -[MPSTART] -Iniciando partida... - -[MRACEC1] -~w~1... - -[MRACEC2] -~w~2... - -[MRACEC3] -~w~3... - -[MPC_019] -Phil DeGirth - -[GDA_HL] -Mayor nivel de Ángel Vengador - -[MP_SNEW] -Carga o inicia una nueva partida para un jugador o multijugador. - -[DON2EX9] -~w~¡~r~Ned~w~ se está escapando! No lo pierdas. - -[FEI_CHA] -Cambiar de equipo - -[FES_RES] -RESTAURAR AJUSTES DEL JUEGO - -[FESZ_QT] -¿Seguro que quieres restaurar todos los ajustes de controles, sonido y pantalla? - -[FEH_LOA] -JUEGO - -[MPEMPTY] -Vacío - -[FEMP_SN] -INICIAR PARTIDA (se necesitan 2 o más jugadores) - -[JD_SUIT] -~w~J.D. no te dará trabajo mientras vistas como un Leone. - -[SAVD_SH] -(piso franco). - -[SAVD_DY] -Día - -[SAVD_CO] -completado. - -[SAVD_AL] -Portland safehouse. Day 71, $57640. 17% complete. - -[SAV_SLT] -Nueva partida guardada - -[POMOB6C] -~w~Pásate a verme pronto. Tengo un trabajo para ti. - -[ANG_2] -~w~Pulsa~h~ ~k~ ~TGSUB~ ~w~para alternar la activación de las misiones de Ángel Vengador. - -[TVHELP] -~w~Pulsa~h~ ~k~ ~TGSUB~ ~w~para alternar la activación de las misiones de SLASH TV. - -[PAGERA] -~w~El ~h~M60~w~ ya está disponible en el piso franco. - -[CO_ALL] -~w~¡Recogidos todos los paquetes ocultos! - -[CO_ONE] -~w~¡Has recogido ~1~ de ~1~ paquetes ocultos! - -[PAGE_14] -Fríe a ~1~ gánsteres colombianos en 2 min. - -[PAGE_19] -Atropella a ~1~ gánsteres colombianos en 2 min. - -[ANG_22] -~r~Canceladas las misiones de Ángel Vengador. - -[SLATVQO] -~r~Cancelada la misión de Slash TV. - -[C0FREE1] -botón L3 - -[C1FREE1] -botón L3 - -[C2FREE1] -botón L3 - -[C3FREE1] -botón L3 - -[C0FREE2] -joystick analógico izquierdo - -[C2FREE2] -joystick analógico izquierdo - -[ANGCOM1] -~w~¡Has superado la misión de Ángel Vengador de nivel 15 de Portland! ¡Han dejado la moto única 'Avenger' junto a tu piso franco! - -[K_CE] -~w~Tienes ~1~ s. para volver a la ~b~moto~w~. - -[HELP31] -~w~Si te han ~h~'trincado'~w~ o ~h~'eliminado'~w~ durante una misión, aparecerá este ~h~taxi~w~. - -[LOSER] -~y~¡HAS PERDIDO! - -[RCRHELP] -~w~Pulsa~h~ ~k~ ~TGSUB~ ~w~para ~h~salir de la carrera~w~. Pulsa~h~ ~k~ ~VEWEP~ ~w~para devolver el coche de RC al último punto de control. - -[SRC_ON] -Ahora que ya te has hecho un nombre en el circuito ilegal de carreras de coches, los rivales intentarán contactar contigo. - -[SRB_ON] -Ahora que ya te has hecho un nombre en el circuito ilegal de carreras de motos, los rivales intentarán contactar contigo. - -[RACE_R0] -~w~RÉCORD ANTERIOR: ~1~:~1~~1~ - -[POMOB3C] -~w~Eh, pásate por aquí algún día, colega. ¿Vale? - -[MPHPCS1] -The Hit List - -[MPWLGOC] -Sal del coche. - -[MPWLLTC] -Sal del contenedor. - -[MPWLDTC] -Entrega el coche. - -[MPWLCD] -Coche entregado. - -[MPWLNGC] -Ahora coge los coches. - -[MPAUTO] -NO REPETIR - -[MRACEGO] -~w~YA - -[MRACE04] -HAS GANADO - -[MRACEWI] -ha ganado la carrera. - -[MRCPU01] -~y~REPARACIÓN AL INSTANTE - -[DTB01] -Defiende los coches - -[DTB02] -Destruye los coches - -[DTB03] -Coche perdido - -[DTB04] -Coche destruido - -[MPWIN] -ha ganado. - -[MPKSELF] -ha caído. - -[MPMORE] -abatidos más. - -[MP1MORE] -abatido más. - -[MPSTRT] -Empezamos - -[MPTANK] -tiene el tanque. - -[MPONE] -solo tiene que coger un coche más. - -[MPDEL] -ha entregado un coche. - -[MPGOCAR] -Ve a buscar el coche. - -[MPGOGAR] -Entrega el coche. - -[MPDEST] -Vehículo objetivo destruido. - -[MPLEFT] -ha dejado la partida. - -[MPHPGO2] -~w~Eres el blanco a matar. - -[MPHPKI] -~w~Has matado a un asesino. - -[LOCKON] -Te están apuntando. - -[MPHPGO] -~w~Elimina al señalado. - -[MPTNK] -Métete en el tanque. - -[MRCPU02] -HAS REVENTADO LOS NEUMÁTICOS DE TODOS - -[MRCPU05] -TE HAN REVENTADO LOS NEUMÁTICOS - -[MRCPU06] -~y~Neumáticos adherentes - -[WINNER] -~Y~HAS GANADO. - -[MPDRAW] -~w~EMPATE - -[MPDADDY] -ERES EL PUTO AMO. - -[MPRUN] -GOBIERNAN LAS CALLES. - -[MPBITCH] -¿QUIÉN ES AHORA EL AMO, CAPULLO? - -[FEMP_SM] -Juega a Grand Theft Auto con tus amigos o con frikis desconocidos que pasen por ahí. - -[MPYL] -¡PERDEDOR! - -[MPTMWIN] -SON LOS PUTOS AMOS. - -[GS_SCAR] -VEHÍCULO: - -[GS_MIN] -min. - -[GS_MINS] -min. - -[MPTNKGA] -Ya tienes el tanque, tío duro. - -[MPTNKGB] -Ahora, consérvalo. - -[GS_TYPE] -ESCENARIO: - -[CLILOST] -Se ha perdido la comunicación con los demás jugadores. - -[ONEHPC] -¡Completado el 100 por cien! En Fort Staunton te espera un regalito. - -[MPBLTM] -Los Sindacco - -[MPRDTM] -Los Forelli - -[MTN_1] -Los Sindacco - -[MTN_2] -Los Forelli - -[MPRDCAP] -Coche ha sido capturado - -[MPBLCAP] -Coche ha sido capturado - -[MPRDST] -Coche ha sido robado - -[MPBLST] -Coche ha sido robado - -[MPBLEST] -Coche ha sido robado - -[MPRDRET] -Coche ha sido devuelto - -[MPBLRET] -Coche ha sido devuelto - -[MPRDPOS] -Coche no está en posición - -[MPBLPOS] -Coche no está en posición - -[GS_TEAM] -UNIRSE A: - -[FEMP_TS] -UNIRSE A: - -[MPTEAM] -Banda - -[GS_OA3] -Destruye cuatro limusinas en la base de la banda rival. - -[GS_O4] -Roba el coche de la banda rival y llévalo a tu base. A la vez, protege el coche de tu banda. - -[MPI06] -MIEMBRO BANDA - -[FEMP_ST] -INICIAR PARTIDA (se necesitan 1 o más jugadores por banda) - -[HELP32] -~w~Por una pequeña suma (o gratis si no tienes dinero), te llevará al ~h~lugar de contacto~w~ de la última misión. - -[BENZ_HO] -El ~h~mono~w~ ya está disponible en el piso franco. Vuelve aquí de noche con él para jugar a Slash TV. - -[SLATXT] -~w~Vuelve aquí vestido con el mono entre las 18:00 y las 05:00 para jugar a Slash TV. - -[OUTF_02] -~w~Mono - -[CAN_CON] -~w~Pulsa~h~ ~k~ ~TGSUB~ ~w~de nuevo para cancelar la misión. - -[GNG1] -LEONES - -[GNG2] -TRIADS - -[GNG3] -DIABLOS - -[GNG4] -YAKUZA - -[GNG5] -YARDIES - -[GNG6] -COLOMBIANS - -[GNG7] -HOODS - -[GNG8] -SINDACCOS - -[GNG9] -FORELLIS - -[GNG0] -SICILIANS - -[MP_GNG1] -BANDA 1: - -[MP_GNG2] -BANDA 2: - -[GS_TEMS] -GUERRA DE BANDAS - -[CARS_O] -~w~Capital Autos en Harwood busca nuevos vendedores, por si quieres ganar un dinerillo extra. - -[CARTXT] -~w~Capital Autos solo está abierto entre las 08:00 y las 18:00. Vuelve entonces. - -[GS_TO1] -¡Mata a la banda rival! - -[MPTNEED] -solo necesitan - -[MPTWIN] -win - -[BADTEAM] -A una de las bandas ya no le quedan jugadores. - -[RACELAP] -Vuelta - -[GS_D1] -¡UN CLÁSICO DE LOS JUEGOS! CON USTEDES, EL 'DARWINISMO URBANO'. - -[GS_D2] -¿QUIÉN ES EL MEJOR CONDUCTOR (O TRAMPOSO)? - -[GS_D3] -PROTEGE TUS COCHES DE LOS GRANUJAS Y VÁNDALOS. - -[GS_D4] -ROBA EL COCHE DE LA BANDA RIVAL Y RÍETE EN SU CARA. - -[GS_D5] -¿QUIÉN QUIERE ESTE TANQUECITO? - -[GS_D6] -EL HOMBRE SEÑALADO HA DE SER ELIMINADO. - -[GS_D7] -CAMBIA COCHES POR DINERO. - -[HELP61] -~w~Si el ~h~punto luminoso señala hacia arriba~w~, el ~h~objetivo está por encima de ti~w~. Un ~h~punto luminoso cuadrado~w~ indica que ~h~el blanco está a tu altura~w~. - -[ST_DRWN] -Peces 'alimentados' - -[RACE_T4] -~r~Te han descalificado por no haber encontrado un coche. - -[RACE_T5] -~r~Te han descalificado por no haber encontrado una moto. - -[PCJ600] -PCJ-600 - -[FEC_HBB] -Freno de mano~h~ ~k~ ~VEACC~ ~w~y~h~ ~k~ ~VEBRK~ - -[HJSTAT] -~w~Distancia: ~1~,~1~ m. Altura: ~1~,~1~ m. Vueltas: ~1~ Rotación: ~1~° - -[HJSTATW] -~w~Distancia: ~1~,~1~ m. Altura: ~1~,~1~ m. Vueltas: ~1~ Rotación: ~1~° ¡Y vaya aterrizaje! - -[HJSTATF] -~w~Distancia: ~1~ pies Altura: ~1~ pies Vueltas: ~1~ Rotación: ~1~° - -[HJSTAWF] -~w~Distancia: ~1~ pies Altura: ~1~ pies Vueltas: ~1~ Rotación: ~1~° ¡Y qué estupendo aterrizaje! - -[MPUNLK] -Se ha desbloqueado nuevo contenido multijugador. ¡Dales envidia a los demás jugadores con todas las cositas que has conseguido! - -[MPUNLKA] -Se ha desbloqueado todo el contenido multijugador. ¡Dales envidia a los demás jugadores con todas las cositas que has conseguido! - -[TOUR] -See the Sight Before your Flight - -[NDL1_A] -Noodle Punk - -[PIZ1_A] -Well Snacked Pizza - -[GS_SCUT] -REPR. ESCENA: - -[TR_00] -CARRERA UNO - -[TR_01] -CARRERA DOS - -[TR_02] -CARRERA TRES - -[TR_03] -CARRERA CUATRO - -[TR_04] -CARRERA CINCO - -[TR_05] -CARRERA SEIS - -[TR_06] -CARRERA SIETE - -[TR_07] -CARRERA OCHO - -[CHSE] -PERSECUCIÓN - -[NOCHANG] -No puedes cambiar de ropa durante esta misión. - -[OUTF_12] -Antonio - -[OUTF_13] -Chándal - -[OUTF_14] -Gánster - -[OUTF_15] -Consejero - -[BENZ_AN] -~w~El ~h~traje de Antonio~w~ ya está disponible en el piso franco. - -[BENZ_SW] -~w~El ~h~chándal~w~ ya está disponible en el piso franco. - -[BENZ_GD] -~w~El ~h~traje de gánster~w~ ya está disponible en el piso franco. - -[BENZ_WI] -~w~El ~h~traje de consejero~w~ ya está disponible en el piso franco. - -[RAMPAGE] -DESTRUCCIÓN - -[GS_TTGT] -TIEMPO TANQUE: - -[GS_O5] -Para ganar, sobrevive el máximo posible en el tanque. Provócale daños al tanque para quitárselo a otro jugador. - -[HELP28] -~w~Para lanzar un ~h~explosivo~w~ pulsa~h~ ~k~ ~PDFW~~w~. Cuanto más lo mantengas pulsado más lejos llegará. - -[RATNG53] -Deshonroso - -[RATNG54] -Rata tramposa - -[RATNG55] -Tiburón - -[RATNG56] -Timador - -[RATNG57] -El padrino de la trola - -[RATNG11] -SANGUIJUELA - -[CHASE6] -Liberty Tree Página 2 - -[CHASE7] -Liberty Tree Primera plana - -[AUTOLD] -Cargando desde el Memory Stick™. No extraigas el Memory Stick™ ni apagues el sistema. - -[LDFAIL] -Error al cargar. Los datos guardados están dañados. - -[MEMCHKA] -No hay Memory Stick™. Se necesitan - -[MEMCHKB] -por lo menos para guardar los datos del juego. - -[MEMCHKC] -No hay espacio suficiente libre en el Memory Stick™. Se necesitan - -[MEMCHKD] -por lo menos para guardar los datos del juego. - -[M_FAIL] -¡MISIÓN FRACASADA! - -[M_OVER] -¡MISIÓN FALLIDA! - -[M_PASS] -~Y~¡MISIÓN SUPERADA! ~n~~1~ $ - -[M_PASSN] -~Y~¡MISIÓN SUPERADA! - -[MRACE11] -~w~Vuelve a un vehículo para terminar la carrera. - -[FEI_LE1] -Leyenda - Sí - -[FEI_LE2] -Leyenda - No - -[FEI_TA1] -Objetivo - Sí - -[FEI_TA2] -Objetivo - No - -[C1FREE2] -joystick analógico izquierdo - -[C3FREE2] -joystick analógico izquierdo - -[FEA_MP3] -PISTAS PERSONALIZ.: - -[FEA_NA] -NO DISPONIBLE - -[MPC_060] -Antonio - -[MPC_061] -Chándal - -[MPC_062] -Gánster - -[MPC_063] -Consejero - -[MPC_064] -Kazuki - -[NUMDBL1] -DEBUG 1 (~1~) (~1~) - -[SVRMBRS] -JUGADORES: - -[RAMP_P] -¡DESTRUCCIÓN SUPERADA! - -[RAMP_F] -¡DESTRUCCIÓN FRACASADA! - -[MPWLPAC] -ha recogido un coche objetivo. - -[MPWLDAC] -ha entregado un coche objetivo. - -[LDWAIT] -Pulsa ~X~ para continuar. - -[LOADING] -Cargando, espera... - -[RACEP1] -1° - -[RACEP2] -2° - -[RACEP3] -3° - -[RACEP4] -4° - -[RACEP5] -5° - -[RACEP6] -6° - -[FEA_UT] -Pista desconocida - -[LOADIN2] -Cargando... - -[DNH5_X2] -~r~No has activado todas las bombas. - -[MRACE12] -TIENES - -[MRACE13] -S. PARA ENCONTRAR UN VEHÍCULO - -[MRACE14] -S. PARA ENCONTRAR UN VEHÍCULO - -[DTB_03] -~w~Ganará el equipo que defienda más tiempo sus coches. - -[PUPCOL] -ha recogido una mejora. - -[TNKCSE] -Provócale daños al tanque para quitárselo a otro jugador. - -[TNKTM] -Para ganar, sobrevive el máximo posible en el tanque. - -[MPFAIL] -FRACASO - -[GS_LOC2] -LUGAR: - -[DTBSWPA] -Has rechazado a los Sindacco durante - -[DTBSWPB] -Ahora, destroza sus coches en menos tiempo. - -[DTBSWPC] -Has destrozado los coches de los Forelli en - -[DTBSWPD] -Ahora, protege tus vehículos durante más tiempo. - -[CHANOP] -Cambiar opciones - -[MPSSCT] -DINERO A OBTENER: - -[F_RANG2] -~r~La radio del coche de bomberos no funciona en el metro. - -[T_RANG2] -~r~En el metro no hay basura que recoger. - -[T_RANGE] -~r~Aquí no hay basura que recoger. - -[FEU_YES] -SÍ - -[FEU_NO] -NO - -[HELP43] -~w~Si usas el freno de mano podrás girar la embarcación con más rapidez. - -[RACE_T6] -~r~Uno de los vehículos ha quedado destrozado - se ha cancelado la carrera. - -[FED_POS] -POSICIÓN DE LA PANTALLA - -[FES_DSS] -Selecciona partida guardada para borrar: - -[FES_LSS] -Selecciona partida guardada para cargar: - -[FES_DSC] -Éxito al borrar. Selecciona ACEPTAR para continuar. - -[FES_DGM] -BORRAR PARTIDA - -[ITBEG] -Al principio... - -[FET_LG] -CARGAR PARTIDA - -[FES_SCG] -¿Deseas guardar la partida? - -[FESZ_QZ] -¿Seguro que quieres guardar la partida? - -[FES_SSC] -Éxito al guardar. Selecciona ACEPTAR para continuar. - -[FEM_NTF] -La memory card (8MB) (para PlayStation®2) de la ranura para MEMORY CARD 1 no tiene formato. - -[FES_CFM] -Formateando la memory card (8MB) (para PlayStation®2) de la ranura para MEMORY CARD 1. No extraigas la memory card (8MB) (para PlayStation®2) ni el mando. No reinicies ni apagues la consola. - -[FES_LOQ] -¡Error al cargar! La partida guardada en la memory card (8MB) (para PlayStation®2) no es compatible con este juego. Intenta cargar una partida guardada diferente. El juego va a reiniciarse. - -[FEM_NTH] -No hay memory card (8MB) (para PlayStation®2) en la ranura para MEMORY CARD 1. - -[FES_CMP] -¡Error al guardar! Comprueba la memory card (8MB) (para PlayStation®2) de la ranura para MEMORY CARD 1 e inténtalo de nuevo. - -[FESZ_FO] -La memory card (8MB) (para PlayStation®2) de la ranura para MEMORY CARD 1 no tiene formato. ¿Deseas formatearla ahora? - -[FES_NOC] -No hay memory card (8MB) (para PlayStation®2) en la ranura para MEMORY CARD 1. - -[FES_LOE] -¡Error al cargar! Comprueba la memory card (8MB) (para PlayStation®2) de la ranura para MEMORY CARD 1 e inténtalo de nuevo. El juego va a reiniciarse. - -[FES_DEE] -¡Fallo al borrar! Comprueba la memory card (8MB) (para PlayStation®2) de la ranura para MEMORY CARD 1 e inténtalo de nuevo. - -[SLONFM] -¡Error al formatear! Comprueba la memory card (8MB) (para PlayStation®2) en la ranura para MEMORY CARD 1 e inténtalo de nuevo. - -[SLONDR] -No hay espacio suficiente libre en la memory card (8MB) (para PlayStation®2) de la ranura para MEMORY CARD 1. Si deseas guardar datos del juego, inserta una memory card (8MB) (para PlayStation®2) con al menos 330 KB de espacio libre en la ranura para MEMORY CARD 1. - -[SLNSP] -No hay espacio suficiente libre en la memory card (8MB) (para PlayStation®2) de la ranura para MEMORY CARD 1. Se necesitan al menos 101 KB adicionales de espacio libre en la memory card (8MB) (para PlayStation®2) en la ranura para MEMORY CARD 1 para guardar datos del juego. - -[SLONNF] -La memory card (8MB) (para PlayStation®2) de la ranura para MEMORY CARD 1 no tiene formato. ¿Deseas formatearla ahora? - -[FESZ_FF] -¡Error al formatear! Comprueba la memory card (8MB) (para PlayStation®2) en la ranura para MEMORY CARD 1 e inténtalo de nuevo. - -[MCDNSP] -No hay memory card (8MB) (para PlayStation®2) en la ranura para MEMORY CARD 1. Si deseas guardar datos del juego, inserta una memory card (8MB) (para PlayStation®2) en la ranura para MEMORY CARD 1 con al menos 330 KB de espacio libre. ¿Deseas empezar el juego de todos modos? - -[MCGNDP] -No hay espacio suficiente libre en la memory card (8MB) (para PlayStation®2) de la ranura para MEMORY CARD 1. Se necesitan al menos 330 KB de espacio libre para guardar datos del juego. ¿Deseas empezar el juego de todos modos? - -[MCGNSP] -No hay espacio suficiente libre en la memory card (8MB) (para PlayStation®2) de la ranura para MEMORY CARD 1. Se necesitan al menos 101 KB adicionales de espacio libre para guardar datos del juego. ¿Deseas empezar el juego de todos modos? - -[FESZ_WR] -Guardando datos. No extraigas la memory card (8MB) (para PlayStation®2) de la ranura para MEMORY CARD 1, ni el mando. No reinicies ni apagues la consola. - -[FELD_WR] -Cargando datos. No extraigas la memory card (8MB) (para PlayStation®2) de la ranura para MEMORY CARD 1, ni el mando. No reinicies ni apagues la consola. - -[FEDL_WR] -Borrando datos. No extraigas la memory card (8MB) (para PlayStation®2) de la ranura para MEMORY CARD 1, ni el mando. No reinicies ni apagues la consola. - -[C0VEWEA] -joystick analógico derecho - -[C1VEWEA] -joystick analógico derecho - -[C2VEWEA] -joystick analógico derecho - -[C3VEWEA] -botones de dirección - -[C0PDLOO] -joystick analógico derecho - -[C1PDLOO] -joystick analógico derecho - -[C2PDLOO] -joystick analógico derecho - -[C3PDLOO] -joystick analógico derecho - -[C0AMMOV] -joystick analógico izquierdo o botones de dirección - -[C1AMMOV] -joystick analógico izquierdo o botones de dirección - -[C2AMMOV] -joystick analógico izquierdo o botones de dirección - -[C3AMMOV] -joystick analógico izquierdo o botones de dirección - -[FEC_ACB] -Acelerar/Frenar - -[FES_SAV] -GUARDAR PARTIDA - -[FES_FMS] -Éxito al formatear. - -[MCDNCK] -Comprobando la memory card (8MB) (para PlayStation®2) de la ranura para MEMORY CARD 1. No extraigas la memory card (8MB) (para PlayStation®2) ni el mando. No reinicies ni apagues la consola. - -[FESZ_QC] -¿Sobrescribir esta partida guardada dañada? - -[NOCONT] -Conecta un control analógico (DUALSHOCK®) o un control analógico (DUALSHOCK®2) al puerto de control 1 para continuar. - -[FES_LCF] -¡Error al cargar! Comprueba la memory card (8MB) (para PlayStation®2) de la ranura para MEMORY CARD 1 e inténtalo de nuevo. - -[DBGHELP] -~h~DEBUG MENU~w~ Select Item with ~h~left button & right button. ~w~Press ~h~X button ~w~to launch. Press ~h~TRIANGLE button ~w~to quit menu. - -[DBGSEL1] -Level Skip Menu - -[DBGSEL2] -Car Viewer - -[DBGSEL3] -Character Viewer - -[DBGSEL4] -Building Viewer - -[DBGSEL5] -Weapon Cheat - -[DBGSEL6] -Player Cheat - -[DBGSEL7] -Weather and Time Changer - -[DBGSEL8] -Marketing Camera - -[DBGSEL9] -MoCap Menu - -[DBGSE10] -USJ Editor - -[DBGSE11] -Toggle Player Coordinates - -[DBGFIL0] -Ped Selector - -[DBGFIL1] -Car Selector - -[PLCHLD] -Placeholder: mission will complete in 5 seconds - -[PLCHLD2] -Placeholder Cutscene - -[PLCHLD3] -Placeholder (MOCAP) Cutscene - -[LS_MAC] -Ma Cipriani stream - -[LS_JDT] -J.D. O'Toole stream - -[LS_SAL] -Salvatore stream - -[LS_COMP] -Completed all Missions in this stream - -[TEMP1] -Number: ~1~ - -[LS2_H1] -Use ~h~analog up & down ~w~to select story stream. Use ~h~analog left & right ~w~to select mission. Use ~h~L button & R button ~w~to select an island. Press ~h~X button ~w~to start mission. Press ~h~TRIANGLE button ~w~to exit. - -[LS2_H2] -You cannot use levelskip when you are ~h~on a mission. - -[LS2_VIC] -~y~Vincenzo Cilli -~g~ ~a~ - -[LS2_MAC] -~y~Ma Cipriani -~g~ ~a~ - -[LS2_JDT] -~y~J.D. O'Toole -~g~ ~a~ - -[LS2_SAL] -~y~Salvatore -~g~ ~a~ - -[LS2_MAR] -~y~Maria -~g~ ~a~ - -[LS2_NED] -~y~Ned Burner -~g~ ~a~ - -[LS2_DON] -~y~Donald Love -~g~ ~a~ - -[LS2_RAY] -~y~Ray Machowski -~g~ ~a~ - -[LS2_TOS] -~y~Toshiko Kasen -~g~ ~a~ - -[FREEON] -Time Frozen - -[FREEOFF] -Time Unfrozen - -[WTC_INS] -Use ~h~analog up & down ~w~to change weather. Use ~h~analog left & right ~w~to change hour. Press ~h~TRIANGLE button ~w~to exit. Press ~h~SQUARE button ~w~to freeze time. - -[WTC_TIM] -TIME: ~1~:00 - -[WTC_WE0] -WEATHER: CLOUDY - -[WTC_WE1] -WEATHER: EXTRA COLOURS - -[WTC_WE2] -WEATHER: EXTRA SUNNY - -[WTC_WE3] -WEATHER: FOGGY - -[WTC_WE4] -WEATHER: HURRICANE - -[WTC_WE5] -WEATHER: RAINY - -[WTC_WE6] -WEATHER: SNOW - -[WTC_WE7] -WEATHER: SUNNY - -[CVHELP] -Use ~h~up button and down button ~w~to change character. Use ~h~left button and right button ~w~to rotate camera. HOLD ~h~SQUARE ~w~to zoom in (toggles upper and lower body). Press ~h~TRIANGLE ~w~to quit character viewer. - -[VMENU1] ---------- Select a Viewer --------- --- ~h~Car~w~ - Character - Building -- - -[VMENU2] ---------- Select a Viewer --------- --- Car - ~h~Character~w~ - Building -- - -[VMENU3] ---------- Select a Viewer --------- --- Car - Character - ~h~Building~w~ -- - -[CV_C] -COMPARISON MODEL - -[CV_0] -ROW: -- MODEL: player - -[CV_1] -ROW: 114 MODEL: cop - -[CV_2] -ROW: 115 MODEL: swat - -[CV_3] -ROW: 116 MODEL: fbi - -[CV_4] -ROW: 117 MODEL: army - -[CV_5] -ROW: 118 MODEL: medic - -[CV_6] -ROW: 119 MODEL: fireman - -[CV_7] -ROW: 71 MODEL: male01 - -[CV_9] -ROW: 120 MODEL: taxi_d - -[CV_10] -ROW: 2 MODEL: pimp - -[CV_11] -ROW: 13 MODEL: criminal01 - -[CV_12] -ROW: 14 MODEL: criminal02 - -[CV_13] -ROW: 15 MODEL: male02 - -[CV_14] -ROW: 16 MODEL: male03 - -[CV_15] -ROW: 121 MODEL: fatmale01 - -[CV_16] -ROW: 17 MODEL: fatmale02 - -[CV_17] -ROW: 18 MODEL: female01 - -[CV_18] -ROW: 19 MODEL: female02 - -[CV_19] -ROW: 20 MODEL: female03 - -[CV_20] -ROW: 21 MODEL: fatfemale01 - -[CV_21] -ROW: 22 MODEL: fatfemale02 - -[CV_22] -ROW: 23 MODEL: prostitute - -[CV_23] -ROW: 24 MODEL: prostitute2 - -[CV_24] -ROW: 25 MODEL: p_man1 - -[CV_25] -ROW: 26 MODEL: p_man2 - -[CV_26] -ROW: 27 MODEL: p_wom1 - -[CV_27] -ROW: 28 MODEL: p_wom2 - -[CV_28] -ROW: 29 MODEL: ct_man1 - -[CV_29] -ROW: 30 MODEL: ct_man2 - -[CV_30] -ROW: 31 MODEL: ct_wom1 - -[CV_31] -ROW: 32 MODEL: ct_wom2 - -[CV_32] -ROW: 33 MODEL: li_man1 - -[CV_33] -ROW: 34 MODEL: li_man2 - -[CV_34] -ROW: 35 MODEL: li_wom1 - -[CV_35] -ROW: 36 MODEL: li_wom2 - -[CV_36] -ROW: 37 MODEL: docker1 - -[CV_37] -ROW: 38 MODEL: docker2 - -[CV_38] -ROW: 39 MODEL: scum_man - -[CV_39] -ROW: 40 MODEL: scum_wom - -[CV_40] -ROW: 41 MODEL: worker1 - -[CV_41] -ROW: 42 MODEL: worker2 - -[CV_42] -ROW: 43 MODEL: b_man1 - -[CV_43] -ROW: 44 MODEL: b_man2 - -[CV_44] -ROW: 67 MODEL: b_man3 - -[CV_45] -ROW: 45 MODEL: b_wom1 - -[CV_46] -ROW: 46 MODEL: b_wom2 - -[CV_47] -ROW: 70 MODEL: b_wom3 - -[CV_48] -ROW: 47 MODEL: mod_man - -[CV_49] -ROW: 48 MODEL: mod_wom - -[CV_50] -ROW: 49 MODEL: st_man - -[CV_51] -ROW: 50 MODEL: st_wom - -[CV_52] -ROW: 51 MODEL: fan_man1 - -[CV_53] -ROW: 52 MODEL: fan_man2 - -[CV_54] -ROW: 53 MODEL: fan_wom - -[CV_55] -ROW: 54 MODEL: hos_man - -[CV_56] -ROW: 55 MODEL: hos_wom - -[CV_57] -ROW: 56 MODEL: const1 - -[CV_58] -ROW: 57 MODEL: const2 - -[CV_59] -ROW: 58 MODEL: shopper1 - -[CV_60] -ROW: 59 MODEL: shopper2 - -[CV_61] -ROW: 60 MODEL: shopper3 - -[CV_62] -ROW: 61 MODEL: stud_man - -[CV_63] -ROW: 62 MODEL: stud_wom - -[CV_64] -ROW: 63 MODEL: cas_man - -[CV_65] -ROW: 64 MODEL: cas_wom - -[CV_79] -ROW: 123 MODEL: gang01 LEONE_A - -[CV_80] -ROW: 124 MODEL: gang02 LEONE_B - -[CV_81] -ROW: 69 MODEL: gang03 TRIAD_A - -[CV_82] -ROW: 3 MODEL: gang04 TRIAD_B - -[CV_83] -ROW: 4 MODEL: gang05 DIABLO_A - -[CV_84] -ROW: 5 MODEL: gang06 DIABLO_B - -[CV_85] -ROW: 68 MODEL: gang07 YAKUZA_A - -[CV_86] -ROW: 6 MODEL: gang08 YAKUZA_B - -[CV_87] -ROW: 7 MODEL: gang09 YARDIE_A - -[CV_88] -ROW: 8 MODEL: gang10 YARDIE_B - -[CV_89] -ROW: 9 MODEL: gang11 COLOMBIAN_A - -[CV_90] -ROW: 10 MODEL: gang12 COLOMBIAN_B - -[CV_91] -ROW: 11 MODEL: gang13 HOOD_A - -[CV_92] -ROW: 12 MODEL: gang14 HOOD_B - -[CV_93] -ROW: 89 MODEL: gang15 Forelli thug1 - -[CV_94] -ROW: 90 MODEL: gang16 Forelli thug2 - -[CV_95] -ROW: 88 MODEL: gang17 Sindacco thug1 - -[CV_96] -ROW: 89 MODEL: gang18 Sindacco thug2 - -[CV_109] -ROW: 65 MODEL: SAL_01 Salvatore (Mob Don) - -[CV_110] -ROW: 66 MODEL: RAY_01 Ray (Bad Cop) - -[CV_111] -ROW: 72 MODEL: VINC_01 Vincenzo Cilli - -[CV_112] -ROW: 73 MODEL: GRDANG1 Avenging Angel - -[CV_113] -ROW: 74 MODEL: NED_01 Ned Burner (Reporter) - -[CV_114] -ROW: 75 MODEL: MASTOR Massimo Torrini (Assassin) - -[CV_115] -ROW: 76 MODEL: TOOL_01 JD O'Toole - -[CV_116] -ROW: 77 MODEL: Not used Fthr Kenny - -[CV_117] -ROW: 78 MODEL: GRDANG2 Avenging Angel 2 - -[CV_118] -ROW: 79 MODEL: M_HOLE Mayor RC Hole - -[CV_119] -ROW: 80 MODEL: FRANFOR Franco Forelli - -[CV_120] -ROW: 81 MODEL: KAZUKI Kazuki Kasen - -[CV_121] -ROW: 82 MODEL: PAULIE Paulie Sindacco - -[CV_122] -ROW: 83 MODEL: HOPPER Jane Hopper - -[CV_123] -ROW: 84 MODEL: AVERY Avery Carrington - -[CV_124] -ROW: 85 MODEL: CASA Giovanni Casa - -[CV_125] -ROW: 86 MODEL: BABY Giovanni Casa (baby) - -[CV_126] -ROW: 87 MODEL: MCAFFRY Det. Leon McAffrey - -[CV_127] -ROW: 92 MODEL: EIGHT 8Ball - -[CV_128] -ROW: 93 MODEL: MAR_01 Maria - -[CV_129] -ROW: 94 MODEL: LOVE_01 Donald Love - -[CV_130] -ROW: 95 MODEL: MICKEYH Mickey H - -[CV_131] -ROW: 96 MODEL: WAYNE Wayne (Biker Dude) - -[CV_132] -ROW: 97 MODEL: BIKER1 Biker Dude 1 - -[CV_133] -ROW: 98 MODEL: BIKER2 Biker Dude 2 - -[CV_134] -ROW: 99 MODEL: DONOVAN O'Donovan - -[CV_135] -ROW: 100 MODEL: KAS_01 Toshiko Kasen (kimono) - -[CV_136] -ROW: 101 MODEL: WKAS_01 Toshiko Kasen (western) - -[CV_137] -ROW: 104 MODEL: JDMADE JD O'Toole - Made Man - -[CV_138] -ROW: 106 MODEL: THUG_01 Sicilian Thug 1 - -[CV_139] -ROW: 107 MODEL: THUG_02 Sicilian Thug 2 - -[CV_140] -ROW: 109 MODEL: CAMP_MAN Campaign Worker - -[CV_141] -ROW: 110 MODEL: CAMP_WOM Campaign Worker 2 - -[CV_142] -ROW: 111 MODEL: MIGUEL Miguel - -[CV_143] -ROW: 112 MODEL: DELIASS Deli Assistant - -[CV_144] -ROW: 113 MODEL: HOBO_01 Donald Love 2 - -[CV_68] -ROW: 122 MODEL: HITMAN Hitman - -[CV_146] -ROW: 125 MODEL: HOLEJOG Mayor RC Hole (Jogging outfit) - -[CV_147] -ROW: 126 MODEL: Chauff Chauffeur - -[CV_148] -ROW: 128 MODEL: plr2 (Lawyer) - -[CV_149] -ROW: 129 MODEL: plr3 (Travel clothes) - -[CV_150] -ROW: 130 MODEL: plr4 (Chauffeur) - -[CV_151] -ROW: 131 MODEL: plr5 (Hockey mask) - -[CV_152] -ROW: 132 MODEL: plr6 (Tuxedo) - -[CV_153] -ROW: 133 MODEL: plr7 (Avenging Angel) - -[CV_154] -ROW: 134 MODEL: plr8 (The King of Rock'n Roll) - -[CV_155] -ROW: 135 MODEL: plr9 (Cock's Mascot) - -[CV_156] -ROW: 136 MODEL: plr10 (Boxer Shorts) - -[CV_157] -ROW: 137 MODEL: plr11 (Bad Super Hero) - -[CV_158] -ROW: 138 MODEL: plr12 (Dragon) - -[CV_159] -ROW: 139 MODEL: PHILC Phil Cassidy - -[CV_160] -ROW: 140 MODEL: GREASE Grease Zuko - -[CV_161] -ROW: 141 MODEL: GUN_ASS Gun assistant - -[CV_162] -ROW: -- MODEL: JD_shot JD shot dead - -[CV_163] -ROW: -- MODEL: BODYBAG bodybag - -[CV_164] -ROW: 142 MODEL: SAL_CON Sal Convict - -[VV_131] -ID:131 MODEL: Landstalker (TBC) - -[VV_135] -ID:135 MODEL: Perenial (TBC) - -[VV_138] -ID:138 MODEL: Firetruck - -[VV_141] -ID:141 MODEL: Manana (TBC) - -[VV_148] -ID:148 MODEL: FBI Car (TBC) - -[VV_152] -ID:152 MODEL: Kuruma (TBC) - -[VV_164] -ID:164 MODEL: Dodo (TBC) - -[VV_169] -ID:169 MODELL: Rc Bandit - -[VV_170] -ID:170 MODEL: BellyUp (Triad) (TBC) - -[VV_172] -ID:172 MODEL: Leone Sentinel (TBC) - -[VV_174] -ID: 174 MODEL: Yakuza (TBC) - -[VV_179] -ID:179 MODEL: Flatbed (TBC) - -[VV_181] -ID:181 MODEL: Borgnine Taxi (TBC) - -[VV_188] -ID: 188 MODEL: Sindacco Argento (TBC) - -[VV_189] -ID: 189 MODEL: Forelli Lexcess (TBC) - -[VV_192] -ID:192 MODEL: Speeder (TBC) - -[BV_H1] -Press CIRCLE to swap building model. - -[BV_0A] -ROW: 2 - Portland. Safehouse Exterior. Press CIRCLE to swap. - -[BV_0B] -ROW:24 - Portland. Safehouse Interior. Press CIRCLE to swap. - -[BV_1] -ROW: 3 - Portland. Ferry Terminal. - -[BV_2A] -ROW: 4 - Portland. Callahan Bridge 1. Press CIRCLE to swap. - -[BV_2B] -ROW: 4 - Portland. Callahan Bridge 2. Press CIRCLE to swap. - -[BV_3] -ROW: 5 - Portland. Les Cargo Freighter. - -[BV_4A] -ROW: 6 - Portland. Doll's House Brothel 1. Press CIRCLE to swap. - -[BV_4B] -ROW: 6 - Portland. Doll's House Brothel 2. Press CIRCLE to swap. - -[BV_5] -ROW: 7 - Portland. Tower Block. - -[BV_6] -ROW: 8 - Portland. Eddie's Garage. - -[BV_7] -ROW: 9 - Portland. Bowler's Fist Pub. - -[BV_8] -ROW:10 - Portland. Hepburn Heights. - -[BV_9] -ROW:11 - Portland. Short Stay Hotel. - -[BV_10] -ROW:12 - Portland. Car Dealership. - -[BV_11] -ROW:13 - Portland. Bus Graveyard. - -[BV_12A] -ROW:14 - Portland. Drugs Warehouse 1 (awaiting approval). Press CIRCLE to swap. - -[BV_12B] -ROW:14 - Portland. Drugs Warehouse 2 (awaiting approval). Press CIRCLE to swap. - -[BV_13] -ROW:15 - Portland. Ma Cipriani's Restaurant. - -[BV_14] -ROW:17 - Portland. Basketball Court, Callahan. - -[BV_15] -ROW:18 - Portland. Bike Shop. - -[BV_16] -ROW:19 - Portland. Building near Basketball Court. - -[BV_17A] -ROW:20 - Portland. Luigi's Nightclub 1. - -[BV_17B] -ROW:20 - Portland. Luigi's Nightclub 2. - -[BV_17C] -ROW:20 - Portland. Luigi's Nightclub 3. - -[BV_18] -ROW:21 - Portland. Casa's Gourmet Deli. - -[BV_19] -ROW:22 - Portland. Rusty Ship. - -[BV_20] -ROW:23 - Portland. Door for Shopfront. - -[BV_21] -ROW:25 - Staunton. Casino. - -[BV_22] -ROW:26 - Staunton. Phil Cassidy's Store. - -[BV_23] -ROW:27 - Staunton. Zip store. - -[BV_24] -ROW:28 - Staunton. Container Park. - -[BV_25] -ROW:29 - Staunton. Ferry Terminal. - -[BV_26A] -ROW:30 - Staunton. Fort Staunton 1 NORTH. - -[BV_26B] -ROW:30 - Staunton. Fort Staunton 2 NORTH. - -[BV_27A] -ROW:30 - Staunton. Fort Staunton 1 SOUTH. - -[BV_27B] -ROW:30 - Staunton. Fort Staunton 2 SOUTH. - -[BV_28] -ROW:31 - Ferry - Not Visible At Present. - -[BV_29A] -ROW:32 - Staunton. Safehouse Exterior (unchanged). Press CIRCLE to swap. - -[BV_29B] -ROW:32 - Staunton. Safehouse Interior. Press CIRCLE to swap. - -[BV_30] -ROW:33 - Staunton. Steps Added To Building. - -[BV_31] -ROW:34 - Portland. Outbuilding. - -[BV_32A] -ROW:34 - Shoreside. Safehouse Exterior (unchanged). Press CIRCLE to swap. - -[BV_32B] -ROW:34 - Shoreside. Safehouse Interior. Press CIRCLE to swap. - -[BV_33] -Not in Doc - Staunton - Warehouse Interior (not internally approved). - -[BV_34A] -Not in Doc - Staunton - Church Exterior. Press CIRCLE to swap. - -[BV_34B] -Not in Doc - Staunton - Church Interior for scripted cutscene. Press CIRCLE to swap. - -[MODWOR] -Modify World Speed - -[MODTIT] -Changing World Speed - -[NEDS2] -The Passion Of The Heist - -[NEDS3] -Karmageddon - -[NEDS4] -False Idols - -[DONS1] -The Morgue Party Candidate - -[GAR_WIL] -Mete el coche en el garaje. - -[DONS2] -Steering The Vote - -[DONS3] -Cam-Pain - -[DONS4] -Friggin' The Riggin' - -[DONS5] -Love & Bullets - -[DONS6] -Counterfeit Count - -[DONS7] -Love On The Rocks - -[DONS7AA] -¡Toni, tienes que ayudarme! - -[DONS7AB] -O'Donovan tiene pruebas que me relacionan con Salvatore, ¡es el fin! - -[DONS7AC] -Tranquilo, todos los días desaparecen pruebas. - -[DONS7AD] -Por no mencionar jueces, testigos y miembros del jurado... - -[DONS7AE] -Esperaba que lo vieras así. - -[DONS7AF] -Uno de mis hombres ha seguido al tipo que tiene las pruebas. - -[DONS7AG] -Os veréis en el paso elevado de Newport. - -[SALS1] -A Walk In The Park - -[SALS2] -Making Toni - -[SALS3] -Caught In The Act - -[SALS4] -Search And Rescue - -[SALS5] -Taking The Peace - -[SALS6] -Shoot The Messenger - -[RAYS1] -Sayonara Sindaccos - -[RAYS2] -The Whole 9 Yardies - -[RAYS3] -Crazy '69' - -[RAYS4] -Night Of The Livid Dreads - -[RAYS5] -Munitions Dump - -[MC_01] -MOCAP Scenes - -[MC_02] -You cannot be on a mission when using the cutscene selector. - -[MC_04] -Select the scene you want and press CROSS. Press TRIANGLE to exit. - -[MC_03] -~g~scene name - script name~w~ - -[MC_S01] -1. Biker - mar4 - -[MC_S02] -2. Bonevoy - jdt1 - -[MC_S03] -3. Campain - dons3 - -[MC_S04] -4. Cashchp - tosh4 - -[MC_S05] -5. Contban - sal5 - -[MC_S06] -6. Crazy69 - rays3 - -[MC_S07] -7. Cuttest - none - -[MC_S08] -8. Deadly - tosh1 - -[MC_S09] -9. Donprob - donh6 - -[MC_S10] -10. Drivnmr - sal8 - -[MC_S11] -11. Electon - dons7 - -[MC_S12] -12. Homswet - vic1 - -[MC_S13] -13. Hotwhel - vic6 - -[MC_S14] -14. Kidnapp - jdt5 - -[MC_S15] -15. Landgrb - donh1 - -[MC_S16] -16. Morgue - dons1 - -[MC_S17] -17. Overdos - mar5 - -[MC_S18] -18. Rufjust - salh1 - -[MC_S19] -19. Sayonar - rays1 - -[MC_S20] -20. sicilan - salh5 - -[MC_S21] -21. Theofer - sal1 - -[MC_S22] -22. Intro - -[MC_S23] -23. Final - -[MC_S24] -24. Final_2 - -[NEDS1] -L.C. Confidential - -[WILGAR2] -Deja el coche y sal afuera. - -{=================================== MISSION TABLE SAL1 ===================================} - -[SAL1_M1:SAL1] -~w~Salvatore quiere hablar. - -[SAL1_M2:SAL1] -~w~Yo no le sigo el juego a Salvatore. - -[SAL1_M3:SAL1] -~w~Gracias por el donativo, chico... Nos vemos. - -[SAL1_M5:SAL1] -~w~¡Eh! - -[SAL1_D1:SAL1] -~w~¡Eh! ¡Esquirol! - -[SAL1_D2:SAL1] -~w~¡A por él! - -[SAL1_D3:SAL1] -~w~¡Ahí está! - -[SAL1_D4:SAL1] -~w~¡Va por allí! - -[SAL1_E1:SAL1] -~w~¡Escapa de los muelles! - -[SAL1_A1:SAL1] -~w~Reúnete con la líder sindical, Jane Hopper, en los ~y~muelles de Portland~w~. - -[THEO_01:SAL1] -Eh, jefe, ¿está bien? - -[THEO_02:SAL1] -¿A ti te lo parece? - -[THEO_03:SAL1] -No. - -[THEO_04:SAL1] -Entonces ¿por qué preguntas, capullo? - -[THEO_05:SAL1] -Siempre estás diciendo obviedades. - -[THEO_06:SAL1] -No puedo creer que esté rodeado de gente como tú. - -[THEO_07:SAL1] -Perdón. - -[THEO_08:SAL1] -Mira, lo siento. Toni, eres uno de mis aliados de más confianza. - -[THEO_09:SAL1] -Después de lo que has hecho, eres más que un hijo. Mejor que mi hijo, - -[THEO_10:SAL1] -mejor que cualquier hijo. - -[THEO_11:SAL1] -Tu madre tiene mucha suerte. - -[THEO_12:SAL1] -Eso me dicen. - -[THEO_13:SAL1] -Anthony, estamos acabados. - -[THEO_14:SAL1] -Somos como los dinos pepinos esos... o como se llamen. - -[THEO_15:SAL1] -Mira, hasta en mi propia familia me siento como Jesús rodeado de doce Judas. - -[THEO_16:SAL1] -Escucha, para que veas. - -[THEO_17:SAL1] -Hay una líder sindical -sí, una tía- que necesito que me haga un favor. - -[THEO_18:SAL1] -¿Y qué me pide? Dinero... - -[THEO_19:SAL1] -Solo quiero acceso permanente a los muelles mientras sigan las huelgas, - -[THEO_20:SAL1] -que yo ayudé a organizar, para que los chicos descarguen algunas drogas, - -[THEO_21:SAL1] -¡y ahora me sale con esta mierda! - -[THEO_22:SAL1] -Mira, son gente por la que me he dejado la piel, - -[THEO_23:SAL1] -por la que he matado, gente honrada. - -[THEO_26:SAL1] -Es una desgracia. Los hombres de honor como tú y yo estamos acabados. - -[THEO_27:SAL1] -Escucha, Toni, quiero que le lleves algo. - -[THEO_28:SAL1] -¿Le va a tolerar esto a una mujer? - -[THEO_29:SAL1] -¿Qué remedio me queda de momento? - -[THEO_30:SAL1] -Mira, vas allí, le pagas y le dices que me gustaría tener una charla con ella. - -[THEO_31:SAL1] -Venga. - -[THEO_24:SAL1] -- ¿Y así me lo pagan? ~n~ - Es un insulto. - -{=================================== MISSION TABLE SAL2 ===================================} - -[SAL2_N:SAL2] -Chicas - -[SAL2_A0:SAL2] -~w~¿Uno de tus nuevos cachorritos, Sal? - -[SAL2_A1:SAL2] -~w~¿Sr. Leone? - -[SAL2_A2:SAL2] -~w~¡Toni! ¿Come stai? - -[SAL2_A3:SAL2] -~w~Encantado de verte. Quiero que hagas algo por mí... - -[SAL2_A4:SAL2] -~w~Si no puedo tener a esa puta líder sindical de mi lado, por mi madre que me meto en el bolsillo a sus chicos. ¿Capisci? - -[SAL2_A:SAL2] -~w~Recoge a seis ~b~putas~w~ y llévalas al piquete de los muelles de Portland. - -[SAL2_B0:SAL2] -~w~¡Mira encanto, no me gusta eso de los tríos! - -[SAL2_B1:SAL2] -~w~¡Cuando tengas más sitio, hablamos de follar! ¡No me subo a un descapotable, chato! - -[SAL2_D0:SAL2] -~w~¿Estás solito, bombón? - -[SAL2_D1:SAL2] -~w~¡Eh, guapetón! ¿Quieres divertirte un poco? - -[SAL2_D2:SAL2] -~w~Cariño... ¡Vamos a montar una fiesta tú y yo! - -[SAL2_D3:SAL2] -~w~¿Dónde es la fiesta, corazón? - -[SAL2_D4:SAL2] -~w~¡Eh, tete! ¿Pasamos un buen rato? - -[SAL2_D5:SAL2] -~w~Tú eres la sal... Y yo la pimienta. - -[SAL2_F0:SAL2] -~w~¡Eh! ¡Yo también voy! - -[SAL2_F1:SAL2] -~w~Así que solos tú y yo, ¿eh? - -[SAL2_F2:SAL2] -~w~¿Hace un ñiqui ñiqui o qué? - -[SAL2_F3:SAL2] -~w~Eh, ¿dónde es la fiesta? - -[SAL2_F4:SAL2] -~w~¡Ay, bueno! No te pongas así. - -[SAL2_F5:SAL2] -~w~¡Solo quiero una fiestecita contigo! - -[SAL2_G0:SAL2] -~w~Llévala al ~y~piquete~w~. - -[SAL2_G1:SAL2] -~w~Lleva a las chicas al ~y~piquete~w~. - -[SAL2_G2:SAL2] -~w~Encárgate del ~r~cliente~w~. - -[SAL2_G3:SAL2] -~w~Encárgate de los ~r~clientes~w~. - -[SAL2_G4:SAL2] -~w~¡Recoge a más ~b~chicas~w~! - -[SAL2_H:SAL2] -~w~¿Dónde es la fiesta, corazón? - -[SAL2_P:SAL2] -~w~¡Divertíos, chicos! Cortesía de Salvatore Leone... - -[SAL2_I0:SAL2] -~w~¡Búscate otra chica, caraculo! ¡Ésta es mía! - -[SAL2_I1:SAL2] -~w~¡Eh! ¿Es que eres un mirón o qué? - -[SAL2_I3:SAL2] -~w~¡Eh! ¿Quién diablos es ése? ¡A por él! - -[SAL2_I5:SAL2] -~w~¡Eh, colega! ¡A la cola! Nosotros vamos primero. - -[SAL2_I7:SAL2] -~w~¡Eres el mejor! ¡No pares...! ¡Ay, sí, cariño! - -[SAL2_I9:SAL2] -~w~Pues ponte a trabajar... - -[SAL2_K0:SAL2] -~w~¡No se juega con Toni Cipriani! - -[SAL2_K1:SAL2] -~w~Venga. Vámonos. - -[SAL2_K2:SAL2] -~w~¡Vamos, tía! ¡Mueve el pandero! - -[SAL2_C0:SAL2] -~w~¡Eh! ¡Vuelve, cielo! Que no muerdo... - -[SAL2_C1:SAL2] -~w~¡Eh, chico! ¿Adónde vas? - -[SAL2_L0:SAL2] -~w~No voy a tirarme aquí todo el día, capullo. - -[SAL2_L1:SAL2] -~w~Voy a poner el taxímetro en marcha. - -[SAL2_X0:SAL2] -~r~¡Se acabó el tiempo! - -[SAL2_X1:SAL2] -~r~¡Has matado a demasiadas putas! - -[SAL2_X2:SAL2] -~r~Has atacado a los estibadores. ¡Ahora no se fiarán de ti! - -[SAL2_X3:SAL2] -~r~Has atacado a las chicas de los estibadores. ¡Ahora no se fiarán de ti! - -[SAL2_G5:SAL2] -~w~Parece que te ha salido un admirador. - -[SAL2_I8:SAL2] -~w~No querrás ir a la cárcel, ¿verdad, encanto? - -[SAL2_I6:SAL2] -~w~¡Sí! ¡Sí...! - -[SAL2_M:SAL2] -~w~¡Intenta no matarlas! Busca a otra ~b~chica~w~. - -[SAL2_W1:SAL2] -~w~¡Solo tienes hasta las 0~1~:~1~ antes de que el piquete cambie de turno! - -[SAL2_W2:SAL2] -~w~¡Solo tienes hasta las ~1~:~1~ antes de que el piquete cambie de turno! - -[SAL2_G6:SAL2] -~w~Detente en la ~y~señal amarilla~w~ para dejar a las chicas. - -[SAL2_G7:SAL2] -~w~Molesta al cliente para que la ~b~chica~w~ salga del coche. - -[SAL2_B:SAL2] -~w~Ya no caben más chicas en el coche. - -{=================================== MISSION TABLE SAL3 ===================================} - -[SAL3_A0:SAL3] -~w~¡Toni! ¿Cómo estás, chico? - -[SAL3_A1:SAL3] -~w~Pareces un poco delgado. ¿Tu mamá no te da bien de comer? - -[SAL3_A2:SAL3] -~w~Estoy bien, Sr. Leone. - -[SAL3_A3:SAL3] -~w~Escucha, esos sindicalistas ya me están cabreando. - -[SAL3_A5:SAL3] -~w~pero tenemos que presionar un poco a los mandamases del sindicato, que son 'menos receptivos'. - -[SAL3_B0:SAL3] -~w~Acojona a los ~r~mandamases~w~. Asegúrate de que capten la idea. - -[SAL3_B3:SAL3] -~w~Así harán lo que les digamos a partir de ahora. - -[SAL3_BA:SAL3] -~w~¡Estás loco, tío! ¡No quiero más marrones! - -[SAL3_CA:SAL3] -~w~¿Qué haces? ¿Estás loco? - -[SAL3_DA:SAL3] -~w~¡Solo me quedaba pagar dos letras del coche! ¡Hijo de puta! - -[SAL3_BB:SAL3] -~w~¡Desde ahora harás lo que te digamos! - -[SAL3_CB:SAL3] -~w~¡No te metas en los asuntos de los Leone! - -[SAL3_A4:SAL3] -~w~Parece que algunos empiezan a ver las cosas a mi manera... - -[SAL3_A6:SAL3] -~w~¿Sabes a qué me refiero? - -[SAL3_B1:SAL3] -~w~No te puedes dejar entender si están muertos. No mates a más ~r~líderes sindicales~w~. - -[SAL3_B2:SAL3] -~r~¡Se supone que debes asustarlos, no matarlos! - -[SAL3_B4:SAL3] -~w~Busca a otro ~r~líder sindical~w~ al que dejarle las cosas claras. - -{=================================== MISSION TABLE SAL5 ===================================} - -[SAL5_D3:SAL5] -~w~Mete el ~h~vehículo ~w~en el garaje. - -[SAL5_D4:SAL5] -~w~Baja del vehículo y sal del ~h~garaje~w~. - -[SAL5_B:SAL5] -~w~Consigue un vehículo de cuatro plazas y busca ~b~refuerzos~w~. - -[SAL5_C:SAL5] -~w~Necesitas un vehículo con cuatro plazas. - -[SAL5_C0:SAL5] -~w~Recoge a los ~b~refuerzos~w~. - -[SAL5_C1:SAL5] -~w~Necesitas un vehículo con más plazas para llevar más ~b~refuerzos~w~. - -[SAL5_C2:SAL5] -~w~Ve a los ~y~muelles de Portland~w~. - -[SAL5_AA:SAL5] -~w~Eh, colega... ¡Tenías que estar aquí hace horas! - -[SAL5_AB:SAL5] -~w~Basta de quejas, Miguel. ¿Tienes la mercancía? - -[SAL5_AG:SAL5] -~w~¿Tienes el dinero? - -[SAL5_AH:SAL5] -~w~Claro... - -[SAL5_AI:SAL5] -~w~¿Qué? - -[SAL5_AJ:SAL5] -~w~¡Puto chicano! - -[SAL5_C8:SAL5] -~w~¡Métete en el ~b~vehículo~w~ de las drogas y sal escopetado! - -[SAL5_C9:SAL5] -~w~Lleva el vehículo al ~y~garaje de Salvatore~w~. - -[SAL5_D1:SAL5] -~w~¡Vuelve al ~b~vehículo~w~! - -[SAL5_D2:SAL5] -~r~¡Las drogas se han echado a perder! - -[SAL5_AF:SAL5] -~w~¡Je, je, ja! Me gustas, Toni. ¡Tienes los huevos de un toro! - -[SAL5_C3:SAL5] -~w~¡Despista a la poli! - -[SAL5_D5:SAL5] -~r~¡Han incautado las drogas! - -[SAL5_AD:SAL5] -~w~Eh, soy un hombre ocupado, Toni. ¡La próxima buscaré a otro comprador! - -[SAL5_AE:SAL5] -~w~Sí, pues no creo que encuentres a nadie que te pague lo que nosotros. - -[SAL5_D6:SAL5] -~w~Acaba con los ~r~traficantes~w~. - -[CONT_01:SAL5] -Cierra la boca, puta desagradecida. - -[CONT_06:SAL5] -Sería la primera vez que me tocases en un mes. - -[CONT_07:SAL5] -¿Y por qué cojones iba a tocarte? - -[CONT_08:SAL5] -No me gusta el género usado. - -[CONT_09:SAL5] -Me das asco. - -[CONT_12:SAL5] -Ay, por favor. ¿Sabes qué? - -[CONT_15:SAL5] -Hola, Toni... - -[CONT_16:SAL5] -¡Quiero mi dinero, viejo! - -[CONT_17:SAL5] -Largo de aquí, pordiosera. - -[CONT_18:SAL5] -Eh, Anthony, eres mi ángel de la guarda. - -[CONT_19:SAL5] -Mujeres, ¿qué se puede esperar de ellas, eh? - -[CONT_20:SAL5] -Por suerte, al menos puedo confiar en alguien. En ti, Toni. - -[CONT_21:SAL5] -Eres muy importante para mí. ¿Alguna vez te lo he dicho? - -[CONT_22:SAL5] -¡No se te levanta ni con grúa, viejo de mierda! - -[CONT_23:SAL5] -Contigo no. No me van los retretes públicos, so zorra. - -[CONT_24:SAL5] -Muy importante, escucha bien. Ahora mandamos tú y yo. - -[CONT_25:SAL5] -Estamos echando a esos gilipollas. - -[CONT_26:SAL5] -¿Echándolos? ¿Con lo que a ti te gusta pasar el rato con hombres? - -[CONT_27:SAL5] -Y tú solo estás contenta cuando tienes las bragas en los tobillos... - -[CONT_28:SAL5] -¡y la espalda apoyada en la pared! - -[CONT_29:SAL5] -Dios. ¡Sé de conejos que follarían menos que tú! - -[CONT_33:SAL5] -En fin, está al llegar un cargamento de lo que tú ya sabes. - -[CONT_34:SAL5] -Esto nos va a poner a ti y a mí en la cresta de la ola. - -[CONT_35:SAL5] -Todo tendría que ir como la seda. - -[CONT_36:SAL5] -Pero necesito a alguien, alguien de confianza, que se encargue de esto. - -[CONT_37:SAL5] -Muy bien, Toni, luego hablamos. - -[CONT_38:SAL5] -Además, nunca había visto a nadie con ropa interior con suspensión. - -[CONT_39:SAL5] -¡Diablos! ¿Por qué me casaría con ella? - -[CONT_40:SAL5] -¡Buscaba una guarra y me casé con una puta! - -[CONT_41:SAL5] -Tengo que haber puteado bien a alguien en mi otra vida, - -[CONT_42:SAL5] -vaya que sí. - -[CONT_02:SAL5] -- Si vuelves a abrirla, te vas a enterar de lo que vale un peine. ~n~ - Vaya, muy bien, machote. - -[CONT_04:SAL5] -- ¿Y qué harás? ¿Pegarme? ~n~ - Debería hacerlo... - -[CONT_10:SAL5] -- ¿Que te doy asco? ~n~ - ¡Sí, asco! - -[CONT_13:SAL5] -- Papá tenía razón cuando decía que no eras más que un cerdo... ~n~ - Sí, sí, sí, sí... - -[CONT_43:SAL5] -- Así que escucha, es importante... ~n~ - Que te jodan, Salvatore Leone, - -[CONT_31:SAL5] -eunuco italianini, maltratador de mierda. ~n~ - ¿Que me jodan? ¡Que te jodan a ti! ¡Ya lo habrán hecho todos! - -{=================================== MISSION TABLE SAL4 ===================================} - -[SAL4_I1:SAL4] -~w~Esta huelga continuará hasta que la ciudad me dé más garantías. - -[SAL4_I2:SAL4] -~w~Las mafias creen que pueden controlar el sindicato. ¡Ya pueden decir misa! - -[SAL4_I3:SAL4] -~w~¡No me asustan! - -[SAL4_I4:SAL4] -~w~¡Tengo más huevos que todos ellos juntos! - -[SAL4_I5:SAL4] -~w~Lo que hay que oír... - -[SAL4_I6:SAL4] -~w~Debería liquidar a esa zorra. ¡Me está haciendo la cama! - -[SAL4_I7:SAL4] -~w~Bueno, a eso pueden jugar dos... - -[SAL4_I8:SAL4] -~w~Toni, vas entregar un mensaje de mi parte. - -[SAL4_A2:SAL4] -~w~Ahora quita al ~r~chófer~w~ de la ecuación... - -[SAL4_A3:SAL4] -~w~¡Eh! - -[SAL4_A4:SAL4] -~w~Sube a la ~b~limusina~w~. - -[SAL4_A5:SAL4] -~w~Lleva la limusina a la ~y~emisora~w~. - -[SAL4_A6:SAL4] -~w~Espera a que salga Hopper. - -[SAL4_A7:SAL4] -~w~Vuelve a poner la limusina en la posición correcta. Hopper no debe sospechar nada. - -[SAL4_B1:SAL4] -~w~Al ferry de Harwood, ¡y pise a fondo! - -[SAL4_B2:SAL4] -~w~¡Como mande! - -[SAL4_C1:SAL4] -~w~¡Acojona a Hopper! - -[SAL4_C2:SAL4] -Susto - -[SAL4S1:SAL4] -~w~¡Tranquilo, esto no es una carrera! - -[SAL4S2:SAL4] -~w~¿Seguro que se va por aquí? - -[SAL4S3:SAL4] -~w~¡Usted no es el chófer de siempre! - -[SAL4S4:SAL4] -~w~¿Quién diablos es usted? - -[SAL4S5:SAL4] -~w~¡Cierra la boca! - -[SAL4S6:SAL4] -~w~Desde ahora, harás exactamente lo que te diga Salvatore Leone. - -[SAL4S7:SAL4] -~w~¿Capisci? - -[SAL4S8:SAL4] -~w~¡Me... me niego a asustarme por esto! - -[SAL4S9:SAL4] -~w~¡Ya veremos! - -[SAL4S10:SAL4] -~w~¡Déjeme salir ahora mismo! - -[SAL4S11:SAL4] -~w~¡Por favor! ¡Nos vamos a matar! - -[SAL4S12:SAL4] -~w~¡Noooooo! - -[SAL4S13:SAL4] -~w~¿Qué he hecho yo para merecer esto? - -[SAL4_F1:SAL4] -~w~¿Dónde está mi limusina? - -[SAL4_F2:SAL4] -~w~Usted no es mi chófer, ¡voy a llamar a la policía! - -[SAL4_F3:SAL4] -~r~¡Es tarde, Hopper te ha descubierto! - -[SAL4_F4:SAL4] -~w~¡Que se joda Salvatore! - -[SAL4_F5:SAL4] -~r~¡La limusina está destrozada! - -[SAL4_F6:SAL4] -~r~¡Hopper ha muerto! - -[SAL4_F7:SAL4] -~r~¡Hopper se ha escapado! - -[SAL4_F8:SAL4] -~r~Los golpes han asustado a Hopper. - -[SAL4_F9:SAL4] -~r~Hopper se ha asustado. - -[SAL4_P1:SAL4] -~w~¡Vale! ¡Vale! ¡Ya tengo bastante! - -[SAL4P1A:SAL4] -~w~Haré lo que queráis. - -[SAL4_P2:SAL4] -~w~Lleva a Hopper al ~y~piquete del ferry~w~. - -[SAL4_P3:SAL4] -~w~Y no olvide nuestro pequeño trato, señorita... - -[SAL4_H1:SAL4] -~w~Una combinación de velocidad, choques y saltos acrobáticos asustará a Hopper y la hará entrar en razón. - -[SAL4_F0:SAL4] -~r~¡Demasiado tarde! ¡Hopper ya ha salido de la emisora! - -[SAL4_A:SAL4] -~w~Llega a la ~y~emisora de radio~w~ antes de que Hopper salga a las 0~1~:00. - -[SAL4_A1:SAL4] -~w~Llega a la ~y~emisora de radio~w~ antes de que Hopper salga a las ~1~:00. - -{=================================== MISSION TABLE SAL6 ===================================} - -[SAL6_A0:SAL6] -~w~Toni, tenemos problemas, ¡y gordos! - -[SAL6_A1:SAL6] -~w~¿Qué pasa, Sal? - -[SAL6_A3:SAL6] -~w~¡Nos están dando una buena! - -[SAL6_A4:SAL6] -~w~Acabamos una maldita guerra y ¡BANG, nos vemos metidos en otra! - -[SAL6_A5:SAL6] -~w~Hay que ver, justo cuando la cosa empezaba a marchar. ¡Tengo la negra! ¡La puta negra! - -[SAL6_A6:SAL6] -~w~¡Eh! No se preocupe ni un pelo, jefe. Yo me encargo. - -[SAL6_AA:SAL6] -~w~Sal te ha dejado armas en el garaje. - -[SAL6_B:SAL6] -~w~¡Detén el ataque de los ~r~Diablos~w~ antes de que mueran todos los Leone! - -[SAL6_1:SAL6] -~w~¡Solo quedan con vida ~1~ Leone! - -[SAL6_2:SAL6] -~w~¡Solo queda con vida 1 Leone! - -[SAL6_C1:SAL6] -~w~¡Nos están masacrando, Toni! - -[SAL6_C2:SAL6] -~w~¡No me pagan bastante para esta mierda, tío! - -[SAL6_C3:SAL6] -~w~¡Estás loco, Toni! ¡Vamos a morir todos! - -[SAL6_E1:SAL6] -~w~¿Sal? - -[SAL6_E2:SAL6] -~w~¡Toni! ¿Ya está? ¿Cómo ha ido? - -[SAL6_E3:SAL6] -~w~No muy bien, Sal. - -[SAL6_E4:SAL6] -~w~He salvado a unos cuantos, pero perdimos a muchos antes de llegar yo. - -[SAL6_E5:SAL6] -~w~Creo que vamos a perder esa parte de la ciudad. - -[SAL6_E6:SAL6] -~w~¡Por encima de mi cadáver! ¡Esto no ha terminado! - -[SAL6_E7:SAL6] -~w~¡No perderé una mierda! ¡Los Leone no se retiran! - -[SAL6_E8:SAL6] -~w~¿Me oyes, Toni? - -[SAL6_E9:SAL6] -~w~Lo que tú digas, Sal. - -[SAL6_G0:SAL6] -~r~Han muerto todos los Leone. - -[SAL6_Z1:SAL6] -Leone - -[SAL6_Z2:SAL6] -Diablos - -[SAL6_X0:SAL6] -Got threat - -[SAL6_X1:SAL6] -Had threat - -[SAL6_X2:SAL6] -Find threat - -[SAL6_X3:SAL6] -Complain - -[SAL6_C0:SAL6] -~w~¡Que les jodan! ¡Salgamos de aquí cagando leches! - -[SAL6_A2:SAL6] -~w~¿Adónde iremos a parar? ¡Los Diablos nos atacan por todas partes en Hepburn! - -{=================================== MISSION TABLE SAL7 ===================================} - -[SAL7_01:SAL7] -~w~¡Eh, Sal! - -[SAL7_02:SAL7] -~w~¡Toni! ¿Qué te parece el nuevo coche? - -[SAL7_05:SAL7] -~w~Una belleza, ¿no? Todo lujo, el mejor de la serie... - -[SAL7_A6:SAL7] -~w~¡Ah! ¡La crisis de los cincuenta! - -[SAL7_07:SAL7] -~w~¡Cállate! Escucha, Toni. - -[SAL7_08:SAL7] -~w~Tengo la polla de dinero que hay que recoger en mi almacén, en Callahan Point. - -[SAL7_10:SAL7] -~w~No me fío de otro para esto. - -[SAL7_11:SAL7] -~w~Chicas, ¿charlamos todo el día o nos vamos? - -[SAL7_12:SAL7] -~w~¡Que te zurzan, mujer! ¿Quién te ha dicho que podías hablar? - -[SAL7_20:SAL7] -~w~¡Vamos! ¡Deprisa! - -[SAL7_21:SAL7] -~w~Vale... - -[SAL7_22:SAL7] -~w~¡Venga! - -[SAL7_23:SAL7] -~w~¡Eh, Toni! ¿Come stai? - -[SAL7_30:SAL7] -~w~Ve al ~y~almacén~w~. - -[SAL7_40:SAL7] -~w~¡Recoge el dinero de Salvatore antes de que se queme! - -[SAL7_50:SAL7] -~w~Lleva el botín a casa de ~y~Salvatore~w~. - -[SAL7_NM:SAL7] -~w~¡Vuelve! Aún no tienes todo el ~g~dinero~w~. - -[SAL7_E1:SAL7] -~w~¡Matadlo! - -[SAL7_E2:SAL7] -~w~¡Muere! - -[SAL7_E3:SAL7] -~w~¡Solo es uno! - -[SAL7_E4:SAL7] -~w~¡Ya le veo! - -[SAL7_T1:SAL7] -~w~¡Atrás! - -[SAL7_T2:SAL7] -~w~¿Y ahora cómo te sientes? - -[SAL7_T3:SAL7] -~w~¡Vamos! - -[SAL7_T4:SAL7] -~w~¡Chúpate ésa! - -[SAL7_F1:SAL7] -~r~¡No has recogido todo el dinero de Salvatore a tiempo! - -[SAL7_06:SAL7] -~w~¿Qué es ese olor? - -[SAL7_42:SAL7] -~w~¡Recoge el ~g~dinero~w~ antes de que se queme! - -{=================================== MISSION TABLE SAL8 ===================================} - -[SAL8_VE:SAL8] -~r~V 1.2 - -[SAL8_11:SAL8] -~w~Toni, consigue un coche y vámonos... - -[SAL8_12:SAL8] -~w~Dirígete a la terminal del ferry. - -[SAL812A:SAL8] -~w~Pero la huelga sigue... No habrá ferris. - -[SAL812B:SAL8] -~w~Tú conduces. Yo pienso. - -[SAL8_14:SAL8] -~w~¡Dios Santo! ¡Está infestado de policías! ¡Salgamos cagando leches! - -[SAL8_15:SAL8] -~w~¿Adónde vamos? - -[SAL8_16:SAL8] -~w~¡Al puente Callahan! - -[SAL816A:SAL8] -~w~Pero si el puente aún no está acabado... - -[SAL816B:SAL8] -~w~¡Nosotros sí que estaremos acabados si no conduces! ¡Písale! - -[SAL816C:SAL8] -~w~Dirígete al ~y~puente Callahan~w~. - -[SAL8_17:SAL8] -~w~¿Qué diablos haces? - -[SAL8_18:SAL8] -~w~¡Toni! ¡Vamos a necesitar un coche! - -[SAL818A:SAL8] -~w~¡No pienso ir andando! - -[SAL8_19:SAL8] -~w~Has dejado atrás a ~b~Salvatore~w~. ¡Vuelve y recógelo! - -[SAL8_20:SAL8] -~w~¡Sácanos de aquí! - -[SAL8_22:SAL8] -~w~¡Lo has logrado, Toni! ¡Sabía que podía confiar en ti! - -[SAL822B:SAL8] -Escucha, sé de un lugar seguro donde podemos escondernos un tiempo. - -[SAL822C:SAL8] -Venga, en marcha. - -[SAL8_25:SAL8] -~w~¡Vamos a necesitar que este trasto lo dé todo de sí! ¡Pisa a fondo, Toni! - -[SAL825A:SAL8] -~w~¡OH, MIEEEERDA! - -[SAL8_26:SAL8] -Velocidad del salto - -[SAL8_27:SAL8] -~w~Sí, aquí es. - -[SAL8_28:SAL8] -~w~Voy a echar un vistazo, a ver qué se cuece. - -[SAL828A:SAL8] -~w~Puede que luego nos veamos. - -[SAL8_29:SAL8] -~r~¡Sal ha muerto! - -[SAL829A:SAL8] -~w~¡La poli te ha descubierto! - -[SAL831:SAL8] -~w~Ya está disponible el piso franco de Staunton. - -[SAL833:SAL8] -~w~¡Escapa de la poli! - -[SAL823A:SAL8] -~w~¿O no? - -[SAL8_24:SAL8] -~w~Aunque las líneas del metro y el ferry ya están abiertas oficialmente, - -[SAL824A:SAL8] -~w~trabajadores militantes siguen con el bloqueo en partes de la ciudad. - -[SAL824B:SAL8] -~w~El puente levadizo que conecta Staunton Island y Shoreside Vale permanece cerrado. - -[SAL824C:SAL8] -~w~Los huelguistas se niegan a dar crédito a las garantías dadas por el ayuntamiento sobre el futuro de los ferris. - -[SAL824D:SAL8] -~w~Como nota positiva, el nuevo puente Callahan está casi a punto. - -[SAL824E:SAL8] -~w~Pero este viajero de Liberty City no puede permitirse más retrasos. - -[SAL8_23:SAL8] -~w~Las protestas de los trabajadores, que habían aislado Portland del resto de la ciudad, han terminado por fin. - -[SAL812C:SAL8] -~w~Ve a la ~y~terminal del ferry~w~. - -[SAL8WAN:SAL8] -¡La poli se ha emperrado con Salvatore! Repintar el vehículo solo la despistará un rato. - -[SAL8_21:SAL8] -~w~Ve al ~y~puente~w~. - -[SAL830:SAL8] -~w~Ve al ~y~piso franco~w~. - -[SAL822A:SAL8] -~w~¡Te besaría si te hubieras afeitado! - -[SAL832:SAL8] -~w~¡Necesitas un vehículo! - -[DRIV_01:SAL8] -¿Y bien? - -[DRIV_02:SAL8] -¿Y bien qué? - -[DRIV_03:SAL8] -No te hagas el tonto conmigo, chico. - -[DRIV_06:SAL8] -Sé lo que has ido diciendo de mí. - -[DRIV_07:SAL8] -Crees que me chupo el dedo, ¿eh? - -[DRIV_08:SAL8] -¿Eso te crees? - -[DRIV_09:SAL8] -Jefe, yo no he ido diciendo nada de usted. - -[DRIV_10:SAL8] -Qué cojones. Ni yo sé qué me está pasando. - -[DRIV_11:SAL8] -Jesús. - -[DRIV_12:SAL8] -Me estoy volviendo paranoico, Toni. Un puto paranoico. - -[DRIV_13:SAL8] -Que yo crea que todos me odian no significa que no sea así, ¿sabes a qué me refiero? - -[DRIV_14:SAL8] -Alguien viene a por mí. ¡Es ese maldito alcalde! - -[DRIV_15:SAL8] -Quiere cargarme el muerto por toda la mierda que corre por el barrio. - -[DRIV_16:SAL8] -¡Por toda! No solo la mía, sino la de todos. - -[DRIV_17:SAL8] -Venga, vamos a ocuparnos de esto. - -[DRIV_04:SAL8] -- Yo ya sabía de eso cuando tu madre hacía la calle. ~n~ - ¿Qué mosca le ha picado? - -{=================================== MISSION TABLE JDT1 ===================================} - -[JDT1_CA:JDT1] -~w~Creo que las chicas me están robando. - -[JDT1_CB:JDT1] -~w~Vamos a 'apatrullar' el barrio, a ver qué pescamos. - -[JDT1_DA:JDT1] -~w~¡Ésa es una de mis chicas! - -[JDT1_DB:JDT1] -~w~¡Eh! Reconozco a esa chica. - -[JDT1_DC:JDT1] -~w~¡Es una de mis chicas! - -[JDT1_DD:JDT1] -~w~Esa chica es de las nuestras. - -[JDT1_DE:JDT1] -~w~Esa chica de allí... - -[JDT1_DF:JDT1] -~w~Para cerca de ella. - -[JDT1_DG:JDT1] -~w~Ponte a su lado. - -[JDT1_DH:JDT1] -~w~Vamos hasta ella. - -[JDT1_DI:JDT1] -~w~Aparca junto a ella. - -[JDT1_DJ:JDT1] -~w~Ve hasta ella. - -[JDT1_MA:JDT1] -~w~Hola, J.D. ¡Iba a llevarte esto, de verdad! - -[JDT1_MB:JDT1] -~w~¡Dios! ¿Es que ya no te fías de mí, J.D.? - -[JDT1_MC:JDT1] -~w~Eh, J.D. Ha sido un día muy malo... Esto es todo lo que tengo. - -[JDT1_MD:JDT1] -~w~¡"El Gran Hermano te vigila"! ¡Toma el puto dinero! - -[JDT1_ME:JDT1] -~w~Eh, J.D. Tengo el dinero justo aquí. - -[JDT1_MF:JDT1] -~w~¿Pensabas que no te lo iba a dar o algo así? - -[JDT1_MG:JDT1] -~w~¿Nos estás controlando, J.D.? - -[JDT1_MH:JDT1] -~w~Está todo... ¡Cuéntalo si quieres! - -[JDT1_EA:JDT1] -~w~¡Eh! ¡Ese chulo le está mangando a una de mis chicas! - -[JDT1_EB:JDT1] -~w~¡Recupera el dinero, Toni! - -[JDT1_EC:JDT1] -~w~¿Qué demonios hace ese chulito? - -[JDT1_ED:JDT1] -~w~¡Se está llevando mi pasta! - -[JDT1_EE:JDT1] -~w~¡A por él, Toni! - -[JDT1_45:JDT1] -~w~Quítale el ~g~dinero~w~ al chulo. - -[JDT1_46:JDT1] -~w~¡El chulo se ha escapado! - -[JDT1_FA:JDT1] -~w~¡En ese coche va una de mis chicas! - -[JDT1_FB:JDT1] -~w~Da marcha atrás hasta el ~b~coche~w~ y acércate para que eche un vistazo. - -[JDT1_FC:JDT1] -~w~Poco a poco... No queremos molestarles. - -[JDT1_FD:JDT1] -~w~Más cerca... - -[JDT1_FE:JDT1] -~w~Más cerca... - -[JDT1_FF:JDT1] -~w~Tranquilo... - -[JDT1_IA:JDT1] -~w~¡Por el amor de Dios, Toni! ¡Los has espantado! - -[JDT1_GA:JDT1] -~w~¡Dios, Toni! ¡No veo una leche! - -[JDT1_75:JDT1] -~w~Espera a que la ~b~chica~w~ le dé a J.D. su dinero. - -[JDT1_HA:JDT1] -~w~¡Oh, sí...! - -[JDT1_HB:JDT1] -~w~¡Vamos, nena! - -[JDT1_HC:JDT1] -~w~Así, así... - -[JDT1_HD:JDT1] -~w~¡Oh, SÍ...! - -[JDT1_HE:JDT1] -~w~¡Qué pasada! - -[JDT1_HF:JDT1] -~w~¿Ya hemos terminado aquí? - -[JDT1_JA:JDT1] -~w~¡Buen trabajo, Toni! - -[JDT1_JB:JDT1] -~w~No creo que las chicas de este turno me vayan a dar más problemas. - -[JDT1_LA:JDT1] -~w~¡Toni! ¡Esta vez la has cagado bien! - -[JDT1_LB:JDT1] -~w~¡Me vuelvo al club! - -[JDT1_ML:JDT1] -~w~ Quedan ~1~ $ por recaudar. - -[JDT1O01:JDT1] -~w~Sube a la ~b~furgoneta~w~ de J.D. - -[JDT1O02:JDT1] -~w~Has dejado atrás a ~b~J.D.~w~. ¡Vuelve y recógelo! - -[JDT1O03:JDT1] -~w~Espera a que suba ~b~J.D.~w~. - -[JDT1O04:JDT1] -~w~Busca a las chicas de J.D. en el Red Light District. - -[JDT1O05:JDT1] -~w~Vuelve al ~y~club de J.D.~w~. - -[JDT1O07:JDT1] -~w~Para cerca de la ~b~chica~w~. - -[JDT1O08:JDT1] -~w~Mata al ~r~chulo~w~. - -[JDT1O09:JDT1] -~w~Recauda el dinero de una de las ~b~chicas~w~ de J.D. - -[JDT1_F1:JDT1] -~r~La furgoneta de J.D. está destrozada. - -[JDT1_F2:JDT1] -~r~¡J.D. ha muerto! - -[JDT1_F3:JDT1] -~r~¡No has recaudado dinero suficiente en este turno! - -[JDT1_D1:JDT1] -~w~Las chicas de J.D. trabajan en el ~y~Red Light District~w~. ¡Vuelve allí! - -[JDT1_F4:JDT1] -~r~¡Han muerto demasiadas chicas de J.D.! - -[JDT1_KA:JDT1] -~w~¿Qué diablos ha sido eso? - -[JDT1_KB:JDT1] -~w~¿Le hemos dado a algo? - -[JDT1_KC:JDT1] -~w~¡Conduce con cuidado, Toni! - -[JDT1_81:JDT1] -~w~¡Has asustado al putero! ¡No quiere que haya mirones! - -[JDT1O10:JDT1] -~w~Lleva el ~b~coche~w~ hasta el callejón. - -[JDT1O11:JDT1] -~w~Toca el claxon para llamarles la atención. - -[JDT1O12:JDT1] -~w~Cuanto más dejes trabajar a la chica, más dinero ganará. - -[JDT1_MO:JDT1] -Deuda - -[JDT1_H1:JDT1] -~w~Usa ~k~ ~VEHN~ para tocar el claxon. - -[JDT1_WA:JDT1] -~w~¡Date prisa! ¡El turno de las ~b~chicas~w~ termina a las ~1~:~1~! - -[JDT1_WB:JDT1] -~w~¡Date prisa! ¡El turno de las chicas termina a las ~1~:~1~! - -[JDT1O06:JDT1] -~w~Recauda el dinero de J.D. entre sus prostitutas. Ve rápido, el turno acaba a las ~1~:~1~. - -[JDT1_WC:JDT1] -~w~¡Deprisa! ¡El turno de las ~b~chicas~w~ termina a las ~1~:0~1~! - -[JDT1_WD:JDT1] -~w~¡Deprisa! ¡El turno de las chicas termina a las ~1~:0~1~! - -[JDT1P06:JDT1] -~w~Ve a pedirles el dinero a las putas de J.D. Date prisa, porque su turno termina a las ~1~:0~1~. - -[BONE_01:JDT1] -¡Eh, J.D., sal un momento! - -[BONE_02:JDT1] -Eh, J.D., pervertido, ven cagando leches, - -[BONE_03:JDT1] -¡o entro ahí y te parto las piernas! - -[BONE_04:JDT1] -Voy corriendo... pero sin correrme, ¡ja, ja, ja! - -[BONE_05:JDT1] -Eh, Toni, ¿'qué pasa'? Un abrazote. - -[BONE_06:JDT1] -¡Puaj, estás pegajoso! - -[BONE_07:JDT1] -La porquería que se ponen las strippers, que se me pega. - -[BONE_08:JDT1] -Les gusta, ya sabes. Se la ponen por todas partes y... Bueno, ¿cómo te va? - -[BONE_09:JDT1] -¿Qué cojones llevas puesto? - -[BONE_10:JDT1] -¿El qué, esto? Soy un amante creativo. - -[BONE_11:JDT1] -Ya sabes, me gusta... experimentar, ¿no? - -[BONE_16:JDT1] -Mira, ése es el problema. Nos lo están mangando. - -[BONE_17:JDT1] -Bueno, tú espera aquí. - -[BONE_18:JDT1] -Tengo que quitarme... uh... esto, ¿sabes? - -[BONE_19:JDT1] -Eh, Raven, hora de guardar el consolador doble. - -[BONE_20:JDT1] -Eh, Toni, vamos a dar una vuelta en la furgoneta. - -[BONE_21:JDT1] -Tenemos que revisar unas cosas... ¡Vale! ¡Vale! - -[BONE_12:JDT1] -- No hay nada malo en ello, ¿no? Puedes mirar si quieres. ~n~ - Oh, eres un enfermo. Cierra la bocaza de una vez. - -[BONE_14:JDT1] -- Vale, cálmate, Toni... ~n~ - ¿Y mi dinero? - -{=================================== MISSION TABLE JDT2 ===================================} - -[JDT2_I1:JDT2] -~w~¡Gracias a Dios que has venido, Toni! - -[JDT2_I2:JDT2] -~w~¡Me han soplado que la poli va a hacernos una redada! - -[JDT2_I3:JDT2] -~w~¿Y...? Tienes los permisos... - -[JDT2_I4:JDT2] -~w~¡No para algunas cosas que se hacen aquí! - -[JDT2_I5:JDT2] -~w~Salvatore está aquí. Haciendo a las chicas una... 'visita especial', ¿sabes? - -[JDT2_I6:JDT2] -~w~¡Tenemos que sacarlo de aquí antes de que llegue la poli! - -[JDT2_I7:JDT2] -~w~¡Reúnete con él ahí delante! - -[JDT2_I8:JDT2] -~w~Ni un momento de respiro... - -[JDT2_05:JDT2] -~w~¡Sácame de aquí cagando leches! - -[JDT2_06:JDT2] -~w~¿Toni? ¡Despista a la poli! ¡Que no quiero llevármelos a casita! - -[JDT2_A1:JDT2] -~w~Sube al ~b~coche~w~. - -[JDT2_A2:JDT2] -~w~¡No pierdas a ~b~Salvatore~w~! ¡Vuelve y recógelo! - -[JDT2_A3:JDT2] -~w~Lleva a Salvatore a ~y~casa~w~. - -[JDT2_A5:JDT2] -~r~¡Salvatore ha muerto! - -[JDT2_C1:JDT2] -~w~Lo has hecho muy bien, hijo. Me gusta tu estilo. Siempre me ha gustado. - -[JDT2_C2:JDT2] -~w~Gracias, Sr. Leone. - -[JDT2_C3:JDT2] -~w~Mira, creo que Vincenzo abusa demasiado de tu tiempo. - -[JDT2_C4:JDT2] -~w~Me vendría bien un buen tipo como tú. - -[JDT2_C5:JDT2] -~w~Llámame un día de éstos. El tío Sal cuidará de ti. - -[JDT2_A9:JDT2] -~r~¡Han trincado a Salvatore! - -[JDT2_B2:JDT2] -~w~¡Despista a la poli! - -[JDT2_A6:JDT2] -~w~Vuelve al ~b~coche~w~ de Salvatore antes de que lo trinque la poli. - -[JDT2_F1:JDT2] -~r~¡Has perdido a Salvatore! - -[JDT2_A4:JDT2] -~w~¡Aleja a Salvatore del club y despista a la poli! - -{=================================== MISSION TABLE JDT3 ===================================} - -[JDT3_AA:JDT3] -~w~Eh, Toni. Ahora no puedo salir, estoy ocupado... ¿sabes? - -[JDT3_AB:JDT3] -~w~¿Por qué? ¿Qué está pasando ahí? ¿Y qué diablos es ese olor...? - -[JDT3_AC:JDT3] -~w~Mira, Toni, hoy estamos haciendo... auténticos 'servicios especiales'. - -[JDT3_AD:JDT3] -~w~¡Esto vale su peso en oro en Internet! - -[JDT3_AE:JDT3] -~w~Lo que debe preocuparte es esa casa de juego de los Leone, en Saint Mark's. - -[JDT3_AG:JDT3] -~w~A los Sindacco les toca mucho las narices. - -[JDT3_AH:JDT3] -~w~He oído que quieren borrarla del mapa, volándola. - -[JDT3_B:JDT3] -~w~¡Elimina a los ~r~saboteadores de los Sindacco~w~! - -[JDT3_C:JDT3] -~w~Han puesto una ~r~bomba~w~ fuera del ~y~casino~w~. - -[JDT3_D:JDT3] -La bomba explota - -[JDT3_E:JDT3] -~w~Un par como éstas y adiós muy buenas al ~y~casino~w~. - -[JDT3_F:JDT3] -~w~Una más y el ~y~casino~w~ será historia. - -[JDT3_H:JDT3] -~w~¡Hay más ~r~Sindacco~w~ de camino! ¡Páralos! - -[JDT3_I:JDT3] -~w~¡La bomba de la furgoneta está activada! - -[JDT3_J:JDT3] -~w~El ~y~casino~w~ está a salvo. ¡Sal de allí! - -[JDT3_K:JDT3] -~w~¡Deben de haber manipulado la furgoneta! ¡Está atascada en primera! - -[JDT3_L:JDT3] -~w~¡Los ~r~refuerzos de los Sindacco~w~ van al ~y~casino~w~! - -[JDT3_M:JDT3] -~w~Los ~r~Sindacco~w~ aún no se rinden, ¡vienen más! - -[JDT3_N:JDT3] -~w~Se están retirando. ¡Que no escape ni uno de los ~r~Sindacco~w~! - -[JDT3_O:JDT3] -Distancia segura - -[JDT3_P:JDT3] -~w~¡Los Sindacco han cargado una enorme furgoneta bomba! ¡Van a volar el casino de un solo golpe! - -[JDT3_Q:JDT3] -~w~Defiende el ~y~casino~w~. - -[JDT3_R:JDT3] -~w~Inspecciona el ~y~Casino~w~. - -[JDT3_S:JDT3] -~w~¡Impide que la ~r~furgoneta bomba~w~ destruya el ~y~casino~w~! - -[JDT3_T:JDT3] -~w~¡Aleja la ~r~furgoneta~w~ del ~y~casino~w~ antes de que estalle! - -[JDT3_BA:JDT3] -~w~¿Toni? Soy J.D. - -[JDT3_BB:JDT3] -~w~Mira, acabo de oír que un puñado de gorilas de los Sindacco van a por ti. - -[JDT3_BC:JDT3] -~w~¡Son duros y van bien armados! - -[JDT3_BD:JDT3] -~w~¡Ten cuidado! - -[JDT3_BE:JDT3] -~w~Gracias, J.D. - -[JDT3_BF:JDT3] -~w~Te debo una. - -[JDT3_G:JDT3] -~r~¡El casino está destruido! - -{=================================== MISSION TABLE JDT4 ===================================} - -[JDT4_3:JDT4] -~w~Los Sindacco que vigilan The Doll's House solo confiarán en ~h~sus coches~w~. - -[JDT4_A1:JDT4] -~w~¡Eso es clase! Si pierdes en la mesa, ¡puedes desquitarte en la cama! - -[JDT4_B0:JDT4] -~w~Busca un vehículo apropiado y ponle una bomba. - -[JDT4_B1:JDT4] -~w~Súbete al ~b~vehículo~w~ con la bomba. - -[JDT4_B3:JDT4] -~w~Ahora, baja y sal de aquí. - -[JDT4_B4:JDT4] -~w~¡Detona la bomba! - -[JDT4_B5:JDT4] -~w~Lleva el vehículo al ~h~taller de bombas~w~ y haz que lo equipen con una. - -[JDT4_B6:JDT4] -~w~¡No te acerques demasiado! - -[JDT4_C0:JDT4] -~r~Estabas muy cerca de la explosión. - -[JDT4_C1:JDT4] -~w~¡Esto es de parte de J.D.! - -[JDT4_D0:JDT4] -~w~¿Quién es ése? - -[JDT4_D2:JDT4] -~w~Debe de ser uno de los nuevos. - -[JDT4_0:JDT4] -CUENTA ATRÁS - -[JDT4_1:JDT4] -~w~No puedes ponerle una bomba a esto. - -[JDT4_2:JDT4] -~w~Sigue el ~h~punto de la bomba~w~ en el radar hasta ~h~el taller de 8-Ball~w~. - -[JDT4_A0:JDT4] -~w~Mira, Toni, los Sindacco tienen un local, The Doll's House. - -[JDT4_AA:JDT4] -~w~Es a la vez un casino y un burdel. - -[JDT4_A2:JDT4] -~w~¡Je, je! Bueno, el lugar es clave para su despliegue por aquí. - -[JDT4_A3:JDT4] -~w~Si lo dejaras, eh... fuera de juego... ya sabes, eh... volándolo o algo así... - -[JDT4_A4:JDT4] -~w~... mira lo que te digo: ¡le caeríamos en gracia a Salvatore! - -[JDT4_D1:JDT4] -~w~No me suena... - -[JDT4_B2:JDT4] -~w~Ve hasta el ~y~garaje~w~ de The Doll's House y aparca allí el vehículo. - -[JDT4_B7:JDT4] -~w~Conduce con cuidado porque si recibe demasiado daño explotará. - -[JDT4_B8:JDT4] -~w~Aparca el vehículo en el ~y~garaje~w~ de The Doll's House. - -[JDT4_4:JDT4] -~w~Pulsa~h~ ~k~ ~PDFW~ ~w~para ~h~detonar~w~ la bomba. - -[JDT4_B9:JDT4] -~w~¡Los Sindacco han desactivado la bomba! - -{=================================== MISSION TABLE JDT5 ===================================} - -[JDT5_B0:JDT5] -~w~¡Es uno de los tipos que se llevaron a Salvatore! - -[JDT5_D0:JDT5] -~w~¿Y él dónde está? ¿En el maletero? - -[JDT5_D1:JDT5] -~w~Bien. Nos lo llevamos a la trituradora. El jefe lo quiere más plano que una pizza. - -[JDT5_E:JDT5] -~w~¡Rescata a Salvatore del ~b~coche~w~ antes de que lo trituren! - -[JDT5_E0:JDT5] -~w~¡Te han calado! - -[JDT5_E1:JDT5] -~w~¡Nadie vigila el ~b~coche~w~! ¡Cógelo! - -[JDT5_E2:JDT5] -~w~Lleva el coche a ~y~casa de Salvatore~w~. - -[JDT5_E3:JDT5] -~w~¡Vuelve a meterte en el ~b~coche~w~! - -[JDT5_F0:JDT5] -~w~Mmmfff... mmmfff... mffff. - -[JDT5_F3:JDT5] -~w~Mmfff... arrgghh... mmffff. - -[JDT5_F4:JDT5] -~w~Mmmfff... arrgghh... arrggghh... arrg. - -[JDT5_F5:JDT5] -~w~Yarrgghh... yarragh... mmffff. - -[JDT5_G0:JDT5] -~w~¿Qué manera de conducir es ésa? ¿Intentabas matarme? - -[JDT5_G1:JDT5] -~w~Sr. Leone. Jefe. Lo siento. - -[JDT5_G2:JDT5] -~w~¿Qué puedo decirle? - -[JDT5_G4:JDT5] -~w~¡Les voy a sacar los ojos! ¡Esto no va quedar así! - -[JDT5_G5:JDT5] -~w~Por los clavos de Cristo, Toni. ¡Me has salvado! ¡Llámame Sal! - -[JDT5_X0:JDT5] -~r~Es difícil seguir a un muerto. - -[JDT5_X1:JDT5] -~r~¡Lo has perdido! - -[JDT5_F1:JDT5] -~w~¿Es usted, Sr. Leone? Soy yo, Toni. - -[JDT5_F2:JDT5] -~w~No se preocupe. Voy a sacarle de ahí. - -[JDT5_G3:JDT5] -~w~¡Hijos de la grandísima! ¿Creen que pueden hacerme esto a mí? - -[JDT5_X2:JDT5] -~r~¡Sal no ha sobrevivido! - -[JDT5_X4:JDT5] -~r~Te ha calado. Ahora nunca encontrarás a Sal. - -[JDT5_X3:JDT5] -~r~¡Salvatore ha sido triturado! - -[JDT5_C:JDT5] -~w~Sigue al ~r~coche~w~, pero que no te vean. - -[JDT5_0:JDT5] -~w~Si disparas al coche, podrías darle a Salvatore. - -[JDT5_H0:JDT5] -~w~Sigue al ~r~coche~w~ pero no te acerques mucho. - -[JDT5_H1:JDT5] -~w~¡Estás demasiado cerca! - -[JDT5_H2:JDT5] -~w~Evita alejarte demasiado y perder el ~r~coche~w~. - -[JDT5_H3:JDT5] -~w~¡Te has retrasado demasiado! - -[KIDN_01:JDT5] -¡J.D.! - -[KIDN_02:JDT5] -Toni, gracias a Dios que has venido. - -[KIDN_03:JDT5] -Estoy sudando más que mi tío en un patio de recreo. ¡Me voy a volver loco! - -[KIDN_06:JDT5] -Ay, Dios. No me lo puedo creer... Me va a cortar las pelotas. - -[KIDN_07:JDT5] -¡Y las colgará en la pared! Y no necesariamente en ese orden. - -[KIDN_08:JDT5] -¡Dios! Me siento como el día que el FBI me registró el disco duro. - -[KIDN_13:JDT5] -Ay, Dios, no me lo puedo creer... - -[KIDN_14:JDT5] -¿Por qué yo? ¡Yo no tengo la culpa! - -[KIDN_15:JDT5] -Pero con eso de Salvatore, los de antivicio me la meterán doblada. - -[KIDN_16:JDT5] -Dios, va a ser peor que aquellas acusaciones por abuso de menores. - -[KIDN_17:JDT5] -¿Has estado alguna vez en la trena por abuso de menores, tío? - -[KIDN_18:JDT5] -¡Te dan por el culo en las duchas! - -[KIDN_19:JDT5] -¡Pero si la tía ya tenía los 18! ¡Dios! Esto va a ser peor. - -[KIDN_20:JDT5] -Escucha, tarado chupapollas. Por el amor de Dios, ¿qué pasa? - -[KIDN_04:JDT5] -- ¿Qué vamos a hacer? ~n~ - ¿Con qué? - -[KIDN_11:JDT5] -- No, no... De eso ya voy hasta el culo... ~n~ - Pero ¿qué te pasa? - -[KIDN_09:JDT5] -Ay, el corazón me va a mil. ¿Tienes un Bellium? - -[KIDN_10:JDT5] -¿O un Rohiphop? Lo que sea... - -[KIDN_21:JDT5] -Se trata de Salvatore. Lo han secuestrado cuando salía del club. - -[KIDN_23:JDT5] -¿Y por qué no me lo has dicho, en vez de contarme tanta chorrada? - -{=================================== MISSION TABLE JDT6 ===================================} - -[JDT6_A0:JDT6] -~w~¡Gracias a Dios, Toni! - -[JDT6_A1:JDT6] -~w~¿J.D.? Eh, estoy aquí atrás... - -[JDT6_A2:JDT6] -~w~Ya lo sé. Te he visto entrar. ¡Rezaba para que aparecieras! - -[JDT6_A3:JDT6] -~w~¡Salvatore ha perdido la chaveta! - -[JDT6_A6:JDT6] -~w~Asegúrate de que no le pase nada a Salvatore. - -[JDT6_0:JDT6] -Salud de Sal - -[JDT6_1:JDT6] -~r~Salvatore no ha sobrevivido. - -[JDT6_3:JDT6] -~w~Salvatore estará aquí en ~1~ s. - -[JDT6_5:JDT6] -~w~Protege a ~b~Salvatore~w~ de los ~r~Sindacco~w~. - -[JDT6_6:JDT6] -~w~¡Ha muerto uno de los ~b~guardias de Salvatore~w~! - -[JDT6_7:JDT6] -~w~¡Han matado a ambos ~b~guardias de Salvatore~w~! - -[JDT6_8:JDT6] -~w~¡Es la poli! - -[JDT6_10:JDT6] -~w~Apóstate en un buen lugar antes de que llegue Salvatore. - -[JDT6_11:JDT6] -~w~¿Adónde vas? Salvatore necesita protección en el Red Light District. - -[JDT6_12:JDT6] -Llega Salvatore - -[JDT6_D1:JDT6] -~w~Eh... - -[JDT6_D4:JDT6] -~w~¡A alguien se le ha caído un dólar! - -[JDT6_C0:JDT6] -~w~¿Esto es lo mejor que tenéis? - -[JDT6_C1:JDT6] -~w~¡Vamos! - -[JDT6_C2:JDT6] -~w~¡Lucháis como mariconas! - -[JDT6_C3:JDT6] -~w~Oh, ¿tú también quieres un poco? - -[JDT6_C4:JDT6] -~w~¡Chúpate ésa! - -[JDT6_C5:JDT6] -~w~¡Sois unas putas ratas! - -[JDT6_C6:JDT6] -~w~Mami, ¡esto es la leche puta! - -[JDT6_A4:JDT6] -~w~Va a bajar aquí en persona para cargarse a todo Sindacco que vea... - -[JDT6_A5:JDT6] -~w~Así que yo he escurrido el bulto. Mira, he dejado un rifle en el tejado, al otro lado de la calle. - -[JDT6_9:JDT6] -~w~Coge el ~g~rifle de francotirador~w~ del tejado. - -{=================================== MISSION TABLE JDT7 ===================================} - -[JDT7_VE:JDT7] -~r~v1.00 - -[JDT7_02:JDT7] -~w~Así que Salvatore ya ha limpiado su casa... ¡y ahora está arreglando la tuya! - -[JDT7_03:JDT7] -~w~¡Ahora es todo mío, Toni! - -[JDT703A:JDT7] -~w~Hemos echado a esos chupapollas de los Sindacco. - -[JDT7_04:JDT7] -~w~He oído que los sicilianos intentan negociar la paz entre las familias. - -[JDT7_4A:JDT7] -~w~Ahora mismo hay un pez gordo en casa de Sal. - -[JDT7_4B:JDT7] -~w~Pero le huele a gato encerrado. - -[JDT7_4C:JDT7] -~w~Quiere que alguien se acerque allí y lo siga, a ver adónde va. - -[JDT7_06:JDT7] -~r~No has alcanzado el helicóptero a tiempo, ¡Massimo ya se ha ido! - -[JDT7_07:JDT7] -~w~Sigue a ~r~Massimo~w~ y no lo pierdas. - -[JDT7_08:JDT7] -~r~Está a punto de~w~ escaparse. - -[JDT7_09:JDT7] -~r~¡Massimo se te ha escapado! - -[JDT7_10:JDT7] -~w~Parece que el helicóptero aterriza. No te acerques demasiado o los espantarás... - -[JDT7_11:JDT7] -~r~Te has acercado demasiado. ¡Te han descubierto! - -[JDT7_14:JDT7] -~r~Se está~w~ yendo... ~r~Síguele~w~ otra vez... - -[JDT7_15:JDT7] -Parece que ~w~Massimo~w~ está aterrizando allá arriba... - -[JDT7_16:JDT7] -~w~Tienes que ~y~acercarte más~w~... - -[JDT7_17:JDT7] -~r~¡Te has cargado la tapadera! - -[JDT7_21:JDT7] -~w~¡Te han visto! ¡Liquida a ~r~los de la Tríada~w~! - -[JDT7_12:JDT7] -~w~Come siamo rimasti d'accordo, - -[JDT712A:JDT7] -~w~si haces que mis socios trabajen para ellos, se te recompensará bien. - -[JDT7_13:JDT7] -~w~Hepburn Heights será para los Diablos. - -[JDT7_18:JDT7] -~w~Así que sigue acorralando a quei bastardi dei Leone en Portland... - -[JDT718A:JDT7] -y cuando mis socios controlen esta ciudad, se cuidará de ti. - -[JDT718B:JDT7] -Ci pensiamo noi. - -[JDT7_20:JDT7] -~w~¡Por allí! ¡Es un Leone! - -[JDT7_22:JDT7] -Distancia - -[JD_FIN:JDT7] -~w~¡Termina con los de la ~r~Tríada~w~! - -[JDT7_05:JDT7] -~w~Llega a la ~y~mansión de Salvatore~w~ antes de que se marche Massimo. - -[JDT7O07:JDT7] -~w~Ve a la ~y~mansión de Salvatore~w~. Massimo se irá a las ~1~:~1~. - -[JDT7O08:JDT7] -~w~Son casi las ~1~:~1~. ¡Massimo está a punto de irse! - -{=================================== MISSION TABLE JDT8 ===================================} - -[JDT8_A0:JDT8] -~w~Toni... ¡hoy es un gran día! ¡Me van a tomar juramento, seré un "bautizado"! - -[JDT8_A1:JDT8] -~w~¿J.D., un intocable? ¡Que Dios nos coja confesados! - -[JDT8_A2:JDT8] -~w~He esperado mucho para esto... y nunca lo habría conseguido sin ti, Toni. - -[JDT8_A3:JDT8] -~w~¡Eh! ¡Que me voy a echar a llorar! - -[JDT8_A4:JDT8] -~w~¡Eh, Mickey! ¿Cómo va? - -[JDT8_A5:JDT8] -~w~Bien... Yo me sentaré atrás... - -[JDT8_C:JDT8] -~w~Sube al ~b~coche~w~ y lleva a J.D. a su 'bautizo'. - -[JDT8_C2:JDT8] -~w~¡Métete en el ~b~coche~w~! - -[JDT8_C3:JDT8] -~w~Ve hasta la ~y~ceremonia~w~. - -[JDT8_B0:JDT8] -~w~¡Eh, Toni, ya te digo! No puedo creerme que esté ocurriendo. - -[JDT8_B1:JDT8] -~w~He esperado tanto... - -[JDT8_B2:JDT8] -~w~¡Trabajé como un negro para los Sindacco durante años y nada! - -[JDT8_B3:JDT8] -~w~Esos cabrones me mantuvieron al margen... - -[JDT8_B5:JDT8] -~w~Pero Salvatore, Dios lo bendiga, no ha permitido que una minucia así sea un obstáculo. - -[JDT8_B6:JDT8] -~w~¡Ya te digo! - -[JDT8_B7:JDT8] -~w~¡Es genial! - -[JDT8_B8:JDT8] -~w~Toni, ¡estoy tan emocionado! - -[JDT8_B9:JDT8] -~w~Toni, nunca sé qué hacer cuando me pongo tan nervioso. - -[JDT8_BA:JDT8] -~w~Mírame, no puedo creer lo que me está ocurriendo. - -[JDT8_BB:JDT8] -~w~Al fin, ¿eh, Toni? ¡Seré un 'bautizado'! - -[JDT8_D1:JDT8] -~w~¿Dónde está Salvatore? - -[JDT8_D2:JDT8] -~w~Toni, la primera ronda es mía... - -[JDT8_D3:JDT8] -~w~¡BANG! - -[JDT8_H0:JDT8] -~w~Eh, ese tipo era una puta rata. - -[JDT8_H1:JDT8] -~w~¡Se la jugó a su propio jefe! Disgrazia'. - -[JDT8_H2:JDT8] -~w~Salvatore nunca podría haber confiado en ese capullo. - -[JDT8_H3:JDT8] -~w~Hunde el puto coche en el río. - -[JDT8_H4:JDT8] -~w~Puedes dejarme de camino. - -[JDT8_J:JDT8] -~w~Sube al ~b~coche~w~ y lleva a Mickey a casa. - -[JDT8_J1:JDT8] -~w~¡La poli te ha visto con el coche! - -[JDT8_J2:JDT8] -~w~¡La poli te ha visto con el ~b~coche~w~! - -[JDT8_J3:JDT8] -~w~¡Vuelve a meterte en el ~b~coche~w~! - -[JDT8_J4:JDT8] -~w~Deja a Mickey en ~y~su casa~w~. - -[JDT8_K0:JDT8] -~w~¡Yo salgo de aquí a toda hostia! - -[JDT8_K1:JDT8] -~w~Recuerda. Hunde el coche en el río. - -[JDT8_F:JDT8] -~w~Hunde el coche en el río. - -[JDT8_F1:JDT8] -~w~Hunde el ~b~coche~w~ en el río. - -[JDT8_G5:JDT8] -~r~¡J.D. ha muerto! - -[JDT8_G6:JDT8] -~r~¡Mickey ha muerto! - -[JDT8_G8:JDT8] -~r~Se supone que tenías que llevar el coche al río. - -[JDT8_X0:JDT8] -~w~¿Adónde vas, Toni? - -[JDT8_X3:JDT8] -~w~Vamos a llegar tarde. - -[JDT8_X1:JDT8] -~w~Si la poli ve el coche así, fijo que nos buscará las cosquillas. - -[JDT8_X2:JDT8] -~w~La ceremonia es en Harwood. - -[JDT8_A6:JDT8] -~w~Toni... ¡Hoy es un gran día! - -[JDT8_A7:JDT8] -~w~¡Van a tomarme juramento, seré un 'bautizado'! - -[JDT8_A8:JDT8] -~w~¿J.D., un intocable? - -[JDT8__1:JDT8] -~w~He esperado mucho para esto... - -[JDT8__2:JDT8] -~w~Y nunca lo habría logrado sin ti, Toni. - -[JDT8_A9:JDT8] -~w~¡Que Dios nos coja confesados! - -[JDT8_D0:JDT8] -~w~¿Eh, es aquí? - -[JDT8_B4:JDT8] -~w~solo por tener sangre irlandesa en las venas. - -[JDT8_G7:JDT8] -~r~¡Los pasajeros han muerto! - -[JDT8_C4:JDT8] -~w~¡Acaba con los ~r~sicarios de los Sindacco~w~ antes de que se carguen a J.D.! - -[JDT8_0:JDT8] -~w~Repintar el coche te hará ganar algo de tiempo, pero la poli volverá a pisarte los talones en cuanto vea el fiambre en el asiento del copiloto. - -[JDT8_K:JDT8] -~w~¡Oh, no, tío! - -[JDT8_BC:JDT8] -~w~Toni, colega, tienes que tranquilizarte. - -[JDT8_C5:JDT8] -~w~Acaba con los ~r~sicarios de los Sindacco~w~. - -{=================================== MISSION TABLE MAC1 ===================================} - -[MAC1_AA:MAC1] -~w~¿Mamá? - -[MAC1_AB:MAC1] -~w~¡Soy yo! ¡He vuelto! - -[MAC1_AC:MAC1] -~w~¿Toni...? ¿Dónde diablos te habías metido? - -[MAC1_AM:MAC1] -~w~¡Ni una llamada mientras estabas desaparecido! - -[MAC1_AD:MAC1] -~w~¿No tenían teléfono donde estabas? - -[MAC1_AE:MAC1] -~w~¡Vamos, mamá! Sabes que no podía llamarte. - -[MAC1_AF:MAC1] -~w~Un hombre de verdad habría llamado a su madre. - -[MAC1_AG:MAC1] -~w~Podrías tomar ejemplo de Giovanni Casa. - -[MAC1_AN:MAC1] -~w~Él llama a su madre cada día, - -[MAC1_AH:MAC1] -~w~se ha reformado... - -[MAC1_AO:MAC1] -~w~¡y sus salchichas sicilianas son las mejores de la ciudad! - -[MAC1_AI:MAC1] -~w~¡Casa! Pero mamá, Casa no se ha reformado. ¡Es un pervertido! - -[MAC1_AJ:MAC1] -~w~¡Eso no es más que un marujeo! ¿Qué clase de hombre eres, Toni? - -[MAC1_AK:MAC1] -~w~Muy bien, mamá, lo que tú digas. - -[MAC1_AL:MAC1] -~w~Igual le hago a Giovanni una visita... a ver en qué anda metido. - -[MAC1_HA:MAC1] -~w~Creo que tengo ganas de mimitos. - -[MAC1_17:MAC1] -~w~Demuéstrale a mamá que Giovanni Casa no es un buen tipo. - -[MAC1_B:MAC1] -~w~Ve a tu ~y~piso~w~ a recoger la cámara. - -[MAC1_B0:MAC1] -~w~Ve a la ~y~charcutería de Casa~w~. - -[MAC1B2:MAC1] -~w~¡Buen disparo! Ahora lleva la foto a ~y~casa de mamá~w~. - -[MAC1_B3:MAC1] -~w~Acércate en silencio a ~r~Casa~w~ y sácale una foto comprometedora. - -[MAC1_B5:MAC1] -~w~No espantes a ~r~Casa~w~. - -[MAC1_B6:MAC1] -~r~¡Se te ha acabado el carrete! No has conseguido la foto comprometedora de Casa para llevársela a mamá. - -[MAC1_B7:MAC1] -~w~Recoge la ~g~cámara~w~. - -[MAC1_C0:MAC1] -~w~No te acerques demasiado o ~r~Casa~w~ se olerá algo. - -[MAC1_C1:MAC1] -~r~¡Le has espantado! ¡Ya nunca conseguirás esa foto! - -[MAC1_C2:MAC1] -~r~¡Algo ha espantado a Casa! - -[MAC1_C3:MAC1] -~r~¡Has perdido a Casa! - -[MAC1_C4:MAC1] -~r~¡Casa la ha diñado! - -[MAC1_C5:MAC1] -~w~¡Estás muy cerca de ~r~Casa~w~! - -[MAC1_C6:MAC1] -~w~¡No pierdas a ~r~Casa~w~! - -[MAC1_D0:MAC1] -~w~Parece que Casa ha encontrado un poco de acción. - -[MAC1_JA:MAC1] -~w~Bien, señoritas, hora del biberón. - -[MAC1_JB:MAC1] -~w~¿Quién va a hacer de mamá? - -[MAC1_JC:MAC1] -~w~¡Ay, la...! - -[MAC1_IA:MAC1] -~w~Bien, señoritas. Un segundo y estoy con vosotras. - -[MAC1_IB:MAC1] -~w~Me voy a poner algo un poco más... propio de mí. - -[MAC1_CA:MAC1] -~w~¡El nene quiere un abrazo! - -[MAC1_CB:MAC1] -~w~¡Me he hecho popó! - -[MAC1_DA:MAC1] -~w~¡Chupa mi muñequito! ¡Chúpalo! - -[MAC1_EA:MAC1] -~w~¡Eh, venga, chicas! ¡Seguidme el rollo! - -[MAC1_FA:MAC1] -~w~¡MIERDA! ¡Aquí hay alguien! - -[MAC1_FB:MAC1] -~w~¡Rápido! ¡Meteos en la furgo! - -[MAC1_GA:MAC1] -~w~¡Ay, Dios! ¡Ay, Dios! - -[MAC1_GB:MAC1] -~w~¡NO... ME... MIRES! - -[MAC1_BA:MAC1] -~w~Eh, mamá. - -[MAC1_BB:MAC1] -~w~¡Mira esta foto! El 'bueno' de Giovanni Casa... en pañales, nunca mejor dicho. - -[MAC1_BC:MAC1] -~w~¿Así es como pasas el tiempo? - -[MAC1_BD:MAC1] -~w~¿Arrastrándote por el suelo para sacar fotos de hombres? - -[MAC1_BE:MAC1] -~w~¿Qué te pasa, Antonio? ¡Me avergüenzas! - -[MAC1_BF:MAC1] -~w~¡Pero...! - -[MAC1_BG:MAC1] -~w~Y, con pañales o sin ellos, es mucho más bueno que tú. - -[MAC1_B8:MAC1] -~w~Ahora sal. - -[MAC1_B1:MAC1] -~w~Sigue a ~r~Casa~w~ pero no te acerques mucho. - -[MAC1_C7:MAC1] -~w~Acerca el zoom a ~r~Casa~w~ para hacerle la foto de la ~r~vergüenza~w~. - -[MAC1_D1:MAC1] -~w~No te despegues de ~r~Casa~w~. Podría ser una oportunidad para una foto. - -{=================================== MISSION TABLE MAC2 ===================================} - -[MAC2_AA:MAC2] -~w~¡Mamá...! ¡Mamá...! Vamos, mamá... háblame. - -[MAC2_AB:MAC2] -~w~¡Yo ya no soy tu 'mamá', cobarde, gallina...! - -[MAC2_AC:MAC2] -~w~A mí no me engañas... Sé muy bien por qué no has vuelto a vivir aquí. - -[MAC2_AD:MAC2] -~w~¡Te dan miedo los de la Tríada! - -[MAC2_AE:MAC2] -~w~Tu padre, que el Señor lo guarde, no habría dejado que nadie le echara de su propia casa. - -[MAC2_AF:MAC2] -~w~¡Pero mamá...! - -[MAC2_AG:MAC2] -~w~Pero, a diferencia de ti, tu padre no era un cagueta. - -[MAC2_AH:MAC2] -~w~¡Hasta que los de la Tríada no te muestren respeto, no eres mi hijo! - -[MAC2_AI:MAC2] -~w~Mi hija quizás, pero no mi hijo... - -[MAC2_B1:MAC2] -~w~Demuéstrale a mamá que esa gente no te asusta. ¡Ocúpate de las ~r~dos bandas de la Tríada~w~ de Chinatown! - -[MAC2_I1:MAC2] -~w~Hay un líder de la Tríada en esa ~r~furgoneta blindada~w~ del pescado. ¡Échalo de la carretera! - -[MAC2_I2:MAC2] -~w~La ~r~furgoneta~w~ está huyendo... ¡Y se le cae la carga! ¡Cuidado! - -[MAC2_I3:MAC2] -~w~¡Están saliendo! ¡Acaba con esa escoria de la ~r~Tríada~w~! - -[MAC2_I4:MAC2] -~w~¡Te han descubierto! ¡Cárgate a todos los ~r~miembros de la Tríada~w~! - -[MAC2_I5:MAC2] -~w~Estás en territorio de la ~r~Tríada~w~. ¡Ten cuidado! - -[MAC2_I6:MAC2] -~w~Una menos, queda otra más. ¡Acaba con la otra ~r~banda~w~! - -[MAC2_BA:MAC2] -~w~¡Sí! ¿Me estás viendo, mamá? - -[MAC2_BB:MAC2] -~w~¡Aquí Toni Cipriani, dándoos para el pelo! - -[MAC2_BC:MAC2] -~w~¡Recordad este nombre, merluzos! - -{=================================== MISSION TABLE MAC3 ===================================} - -[MAC3_A0:MAC3] -~w~¿Mamá? Ya he vuelto... - -[MAC3_A1:MAC3] -~w~¡Pero mírate! ¡Estás hecho un fideo! - -[MAC3_A2:MAC3] -~w~Si aún vivieras aquí, con tu madre, como un hijo de verdad, ¡estarías comiendo bien! - -[MAC3_A3:MAC3] -~w~¡Y mira esos coches que llevas! - -[MAC3_A4:MAC3] -~w~Me avergüenzo de ti, Antonio, de verdad. - -[MAC3_A5:MAC3] -~w~¡La gente va a creer que te he educado mal! - -[MAC3_A6:MAC3] -~w~¿Qué puedo hacer, mamá? Sabes que haría cualquier cosa por ti. - -[MAC3_A7:MAC3] -~w~Ese chico de los Sucho corre hoy en el centro. - -[MAC3_A8:MAC3] -~w~¡Si fueras un poco más como él! - -[MAC3_A9:MAC3] -~w~Él respeta a su madre de verdad. - -[MAC3_AA:MAC3] -~w~Claro que, si tu padre estuviera aquí, ganaría la carrera... - -[MAC3_AB:MAC3] -~w~¡Y borraría de la cara esa sonrisa de chuleta a Sucho! - -[MAC3_AC:MAC3] -~w~Sí, haría que tragase plomo. - -[MAC3_AD:MAC3] -~w~¡Tu padre sí que era un hombre! ¡Los tenía bien puestos! - -[MAC3_B0:MAC3] -~w~Demuestra que ningún Sucho es rival para ti. Gana la carrera y acaba con él. - -[MAC3_C0:MAC3] -~w~Has derrotado al ~r~Sucho~w~, ¡ahora acaba con él! - -[MAC3_C1:MAC3] -~w~¡~r~El Sucho~w~ se está largando! - -[MAC3_X0:MAC3] -~r~¡Has dejado que el Sucho se escape! - -[MAC3_C2:MAC3] -~w~¡~r~Sucho~w~ se está escapando! - -{=================================== MISSION TABLE MAC4 ===================================} - -[MAC4_A0:MAC4] -~w~¡Mamá...! ¡Mamá...! ¿Estás ahí? - -[MAC4_A1:MAC4] -~w~¡No pienso dirigirte la palabra, Toni! - -[MAC4_A2:MAC4] -~w~¡Traicionas tus raíces sicilianas! - -[MAC4_A3:MAC4] -~w~Cuando le hiciste esa foto a Casa, dejó de pagarnos por la protección. - -[MAC4_A4:MAC4] -~w~¿Y qué haces tú al respecto? - -[MAC4_A5:MAC4] -~w~¡NADA! - -[MAC4_A6:MAC4] -~w~¡Tu padre ya lo habría hecho picadillo! - -[MAC4_A8:MAC4] -~w~¡pero hace falta valor para ofender a un Cipriani! - -[MAC4_A9:MAC4] -~w~¡Ojalá tuvieras tú tantas pelotas! - -[MAC4_AA:MAC4] -~w~¿Quieres que tenga las pelotas de Casa? - -[MAC4_AB:MAC4] -~w~¡Vale, mamá! ¡Tú lo has querido! - -[MAC4_B:MAC4] -~w~Pasa por la ~y~charcutería de Giovanni Casa~w~ y convéncelo de que dé una vuelta en coche contigo. - -[MAC4_B0:MAC4] -~w~Hola, Toni... ¿Cómo estás? - -[MAC4_B1:MAC4] -~w~¿Qué pasa? - -[MAC4_B2:MAC4] -~w~¿Se te ha comido la lengua el gato? - -[MAC4_B3:MAC4] -~w~Tú y yo tenemos que hablar, Casa... - -[MAC4_B4:MAC4] -~w~Pero en un lugar más discreto. - -[MAC4_C:MAC4] -~w~No dejes que ~r~Casa~w~ salga con vida. - -[MAC4_C1:MAC4] -~w~¡Pagaré por la protección, Toni! ¡Te juro que lo haré! - -[MAC4_C2:MAC4] -~w~¡Au! ¡Venga, Toni! ¡Te daré todo lo que quieras! - -[MAC4_C3:MAC4] -~w~¡Haré lo que sea, Toni! ¡Lo que sea! ¡Pero no me hagas daño! - -[MAC4_D1:MAC4] -~w~¡Vale! ¡Vale! ¡Tú ganas! - -[MAC4_D2:MAC4] -~w~¡Vale! ¡Vale! ¡Me rindo! ¡Me rindo! ¡Pero no me pegues más! - -[MAC4_D3:MAC4] -~w~¡Ven conmigo, caraculo! - -[MAC4_E0:MAC4] -~w~Lleva a Casa al ~y~aserradero~w~. - -[MAC4_E1:MAC4] -~w~¡No dejes a ~b~Casa~w~! - -[MAC4_F0:MAC4] -~w~Bueno y... eeh... ¿Adónde vamos? - -[MAC4_F1:MAC4] -~w~Aún somos amigos, ¿no, Toni? - -[MAC4_F2:MAC4] -~w~Te daré el dinero que te debo... De verdad. - -[MAC4_F3:MAC4] -¡Solo necesito un poco más de tiempo! - -[MAC4_F4:MAC4] -~w~¿Aún le gustan a tu mamá las salchichas picantes? - -[MAC4_F5:MAC4] -¡Le llevaré algunas, no hay problema! - -[MAC4_G0:MAC4] -~w~Bueno... ejem... ¿Y de qué querías hablarme, Toni? - -[MAC4_G1:MAC4] -~w~¿Es del dinero de la protección? - -[MAC4_G2:MAC4] -~w~¿Es eso o no? - -[MAC4_G3:MAC4] -~w~¿... Toni? - -[MAC4_G4:MAC4] -~w~Podemos hablarlo. ¿No, Toni? - -[MAC4_G6:MAC4] -~w~Y la gente no habla mucho estos días, Toni. - -[MAC4_G7:MAC4] -~w~Ponte allí y cierra la bocaza, Casa. - -[MAC4_G8:MAC4] -~w~Vale, Toni. Pero esto... esto me da muy mala espina. - -[MAC4_G9:MAC4] -~w~¡Eh! ¡Cuidado con eso, Toni! Es el interruptor de... - -[MAC4_GA:MAC4] -~w~¡AAARRRGGGHHHHHHHH! - -[MAC4_GB:MAC4] -~w~¡Sal de aquí a toda pastilla! - -[MAC4_H:MAC4] -~w~El picadillo para las 'salchichas a la Casa' está en la ~b~furgoneta~w~, listo para llevarlo a la charcutería. - -[MAC4_H1:MAC4] -~w~Lleva la mercancía a la ~y~charcutería de Casa~w~. - -[MAC4_H2:MAC4] -~w~¡No dejes la ~b~furgoneta~w~ ahí! - -[MAC4_H3:MAC4] -¡Líbrate de la poli! - -[MAC4_I0:MAC4] -~w~¿Una entrega especial de picadillo...? - -[MAC4_I1:MAC4] -~w~Nadie me había avisado. - -[MAC4_I2:MAC4] -~w~¡Guau! ¿Qué zoo hemos asaltado esta vez? - -[MAC4_I3:MAC4] -~w~¡Ahí atrás hay un montón de carne! - -[MAC4_I4:MAC4] -~w~¡Mm! ¡Deliciosa! Vale, me la llevo. - -[MAC4_I6:MAC4] -~w~Si lo descubre, se pondrá hecho una furia. - -[MAC4_I7:MAC4] -~w~¡Y yo estaré jodido! - -[MAC4_X0:MAC4] -~r~¡Demasiado rápido e indoloro para ser un castigo siciliano! - -[MAC4_X1:MAC4] -~r~Se supone que tenías que entregar la furgoneta. - -[MAC4_X2:MAC4] -~r~¡Has perdido a Casa! - -[MAC4_E2:MAC4] -~w~¡No te largues del ~y~aserradero~w~! - -[MAC4_I5:MAC4] -~w~Es una suerte que Casa no esté aquí. - -[MAC4_G5:MAC4] -~w~¡Sí! ¡Sí! Hablando se entiende la gente. - -[MAC4_CN:MAC4] -~w~¡Policía! - -[MAC4_CO:MAC4] -~w~¡Ayuda! - -[MAC4_CP:MAC4] -~w~¡Que alguien pida ayuda! - -[MAC4_CQ:MAC4] -~w~¡Socorro! - -[MAC4_CR:MAC4] -~w~¡Que alguien me ayude! - -[MAC4_CS:MAC4] -~w~¡Que alguien me saque de aquí! - -[MAC4_A7:MAC4] -~w~Puede que Casa sea un payasete, - -[MAC4_C0:MAC4] -~w~¿No podemos hablarlo civilizadamente, Toni? - -[MAC4_1:MAC4] -~w~Acércate sigilosamente a ~r~Casa~w~ por la espalda. - -{=================================== MISSION TABLE MAC5 ===================================} - -[MAC5_AA:MAC5] -~w~¿Mamá? ¿Estás ahí? - -[MAC5_AB:MAC5] -~w~¿Toni? Estoy al teléfono... - -[MAC5_AC:MAC5] -~w~Si, sí. Está aquí. Vale, de acuerdo. No se irá. Adiós. - -[MAC5_AD:MAC5] -~w~¿Toni? Has venido a enfadar a tu madre otra vez, ¿no? - -[MAC5_AE:MAC5] -~w~Te pasas todo el día haciéndote el duro. - -[MAC5_AF:MAC5] -~w~No vienes a verme ni me presentas a ninguna chica apañadita. - -[MAC5_AG:MAC5] -~w~Pero, ¿quién iba a quererte? ¡Si estás pálido y en los huesos! - -[MAC5_AH:MAC5] -~w~Intentas matarme a disgustos y bochornos. ~w~Pero se acabó. - -[MAC5_AI:MAC5] -~w~Desde ya... hemos terminado. - -[MAC5_AJ:MAC5] -~w~He encargado que te maten. Ésa es la única manera, Antonio... - -[MAC5_AK:MAC5] -~w~Siempre has sido un chico desobediente. - -[MAC5_AL:MAC5] -~w~¿Qué? ¡Mamá! - -[MAC5_AM:MAC5] -~w~Es lo mejor, hijo... ¡Al menos intenta morir como un hombre! - -[MAC5_AN:MAC5] -~w~¡Y deja de avergonzarme! - -[MAC5_B1:MAC5] -~w~¡Los sicarios de mamá ya están aquí! - -[MAC5_B2:MAC5] -~w~Demuéstrale a mamá que sus ~r~sicarios~w~ no son rivales para ti. ¡Mátalos! - -[MAC5_B3:MAC5] -~w~¡Ahora sí que se han enfadado! ~r~Elimínalos~w~. - -[MAC5_B4:MAC5] -~w~Los ~r~sicarios~w~ saben que estás aquí. Debes alejarte de Saint Mark's. - -[MAC4_B6:MAC5] -~w~¡Vienen más ~r~sicarios~w~! Sal de Saint Mark's. ¡Saben dónde estás! - -[MAC4_B7:MAC5] -~w~¡GRANADA! ¡CORRE! - -[MAC5_C1:MAC5] -~w~Te has librado de ellos... pero ahora que les han pagado, harán su trabajo, por mucho que cueste. - -[MAC5_C2:MAC5] -~w~Quedas avisado... ¡Volverán! - -[HM1:MAC5] -~w~¡No se rinden! Más ~r~sicarios~w~ van a por ti. ¡Cárgatelos! - -[HM2:MAC5] -~w~¡Cuidado! Los ~r~sicarios~w~ se te acercan. ¡Liquídalos! - -[HM3:MAC5] -~w~Se acercan más ~r~sicarios~w~. ¡Acaba con ellos! - -[HM4:MAC5] -~w~¡Hay más ~r~sicarios~w~ en camino! ¡Elimínalos! - -[MAC5_B5:MAC5] -~w~Encárgate de los ~r~sicarios~w~ restantes pero no te acerques a Saint Mark's. - -{=================================== MISSION TABLE MAR1 ===================================} - -[MAR1M1:MAR1] -~w~¡Llegas tarde! Típico de los hombres. - -[MAR1M2:MAR1] -~w~Quiero ir de compras y tú vas a conducir. - -[MAR1M3:MAR1] -~w~Así que ayúdame. Hoy quiero divertirme. ¡Aunque te dejes la piel! - -[MAR1M4:MAR1] -~w~Solo tengo que acabar de arreglarme. - -[MAR1M5:MAR1] -~w~¡Joder! Estoy divina. Vamos, Toni. - -[MAR1_B:MAR1] -~w~Lleva a María a la ~y~tienda~w~. - -[MAR1_D:MAR1] -~w~Espera aquí, corazón, no tardo mucho... - -[MAR1_D2:MAR1] -~w~Solo quería ver qué aspecto tenía a la luz del día. - -[MAR1_E:MAR1] -~w~¡Salgamos de aquí! - -[MAR1_E3:MAR1] -~w~Vuelve y recoge a ~b~María~w~. - -[MAR1_F:MAR1] -~w~¡Qué divertido! Pero ahora tengo que coger algunas cosas más. - -[MAR1_G:MAR1] -~w~No apagues el motor... - -[MAR1_GB:MAR1] -~w~¡Vamos, María! ¡Basta de mangar! - -[MAR1_GC:MAR1] -~w~Ay, tranquilo, nene. ¡Solo ha sido un malentendido! - -[MAR1_G2:MAR1] -~w~¡Te digo que aquí no llevo nada escondido! - -[MAR1_H:MAR1] -~w~¡Llévame a casa! - -[MAR1_I:MAR1] -~w~¡Si me dejas aquí, haré que Salvatore te corte las pelotas! - -[MAR1_J:MAR1] -~r~¡María ha muerto! ¡Madre del amor hermoso! - -[MAR1_K:MAR1] -~w~Toni, cariño, hoy me lo he pasado pipa. - -[MAR1_K2:MAR1] -~w~Igual podrías pasarte más tarde y lo pasaríamos mejor. - -[MAR1_K3:MAR1] -~w~¡Nos vemos luego, guapetón! - -[MAR1_L:MAR1] -~w~¡Nos sigue la poli! ¡Será mejor que la despistes! - -[MAR1_L2:MAR1] -~w~¡Creo que les has despistado! ¡Vamos de compras! - -[MAR1_M:MAR1] -~w~¡QUE ME ROBA! - -[MAR1EXT:MAR1] -~w~Lleva a María a su ~y~apartamento~w~. - -[MAR1_1:MAR1] -NONE - -[MAR1_D3:MAR1] -~w~¡Quítame tus sucias manos de encima! - -[MAR1_G3:MAR1] -~w~¡Que me dejes en paz! - -[MAR1_E2:MAR1] -~w~¡Líbrate de la presión policial! - -{=================================== MISSION TABLE MAR2 ===================================} - -[MAR2_AA:MAR2] -~w~¡Corta! Uno de los perros de Salvatore me llevará... - -[MAR2_AB:MAR2] -~w~Ay, es un encanto... - -[MAR2_AC:MAR2] -~w~aunque un poco delgadito. - -[MAR2_AE:MAR2] -~w~Escucha. Quiero dar una fiesta, pero tengo el armario vacío. - -[MAR2_AF:MAR2] -~w~¿Tienes 'harina'? De la fina, ¿eh? - -[MAR2_AG:MAR2] -~w~Estupendo. ¡Ciao! - -[MAR2_AH:MAR2] -~w~Vamos, Toni. Tengo que ir a un sitio. - -[MAR2_BA:MAR2] -~w~¿No tienes coche? - -[MAR2_BB:MAR2] -~w~En marcha. El camello no me esperará todo el día. - -[MAR2_3F:MAR2] -~w~Lleva a María a ver a los ~y~camellos~w~. - -[MAR2_BC:MAR2] -~w~Allí están. Ponte detrás de ellos. Buen chico. - -[MAR2_GA:MAR2] -~w~Tú espérame aquí. - -[MAR2_GB:MAR2] -~w~Esto no me gusta... - -[MAR2_GC:MAR2] -~w~Qué detalle que te preocupes. Pero soy la chica de Salvatore, tranqui. - -[MAR2_GE:MAR2] -~w~¡No voy a ir a ningún sitio contigo! ¿Quién diablos te crees que eres? - -[MAR2_GF:MAR2] -~w~¡En marcha! - -[MAR2_GG:MAR2] -~w~¡Toni! - -[MAR2_GH:MAR2] -~w~¡Oh, mierda! - -[MAR2_19:MAR2] -~w~¡Mata a los ~r~Sindacco~w~! - -[MAR2_EA:MAR2] -~w~¿Ya estás contenta? - -[MAR2_EB:MAR2] -~w~Toni Cipriani. ¡Mi héroe! - -[MAR2_EC:MAR2] -~w~¿Sabes qué? Estoy rota. Llévame a casa, machote. - -[MAR2_HA:MAR2] -~w~¿No quieres pasarte a... hacer... eh... un café o algo? - -[MAR2_HB:MAR2] -~w~Paso. - -[MAR2_HC:MAR2] -~w~¿Seguro? Bueno, llámame. - -[MAR2_O2:MAR2] -~w~Lleva a María a su ~y~apartamento~w~. - -[MAR2_CA:MAR2] -~w~¡Vamos, Toni! - -[MAR2_CB:MAR2] -~w~¡Por Dios, Toni, ven! - -[MAR2_CC:MAR2] -~w~¡Sálvame, Toni! - -[MAR2_CD:MAR2] -~w~¡Socorro! - -[MAR2_CE:MAR2] -~w~¡Veeeengaaaa! - -[MAR2_FA:MAR2] -~w~¿Y ahora de dónde se supone que sacaré la droga? - -[MAR2_FB:MAR2] -~w~¡Eres el colmo, Toni! - -[MAR2_LM:MAR2] -~w~Has dejado atrás a ~b~María~w~. Vuelve a por ella. - -[MAR2_MD:MAR2] -~r~María ha muerto. - -[MAR2_WA:MAR2] -~w~¡Los ~r~camellos~w~ se están escapando! - -[MAR2_DM:MAR2] -~r~¡Has perdido a los camellos! - -[MAR2_DA:MAR2] -~w~¡Vaya héroe estás hecho! - -[MAR2_DF:MAR2] -~r~¡Has asustado a los camellos de María! - -[MAR2_18:MAR2] -~w~Embiste el ~r~coche de los Sindacco~w~ para rescatar a María. - -[MAR2_AD:MAR2] -~w~... sí. - -{=================================== MISSION TABLE MAR3 ===================================} - -[MAR3_A0:MAR3] -~w~'Querido Toni, me he puesto como primer premio de una carrera callejera. - -[MAR3_A1:MAR3] -~w~Si Salvatore lo descubre, los dos nos vamos a meter en un marrón. - -[MAR3_A2:MAR3] -~w~Así que ven y sálvame el culo... Entonces puede que sea para ti... - -[MAR3_A3:MAR3] -~w~Tuya para siempre, María.' - -[MAR3_E0:MAR3] -~w~Venga, María. Vámonos. - -[MAR3_E1:MAR3] -~w~¡Por fin! El señor Tipo Duro mueve ficha. - -[MAR3_E2:MAR3] -~w~María, eres la chica de Salvatore... - -[MAR3_E3:MAR3] -~w~¡Yo no tengo dueño! - -[MAR3_E4:MAR3] -~w~¡Menudo carca estás hecho! - -[MAR3_E5:MAR3] -~w~¡Vámonos de marcha, Wayne! - -{=================================== MISSION TABLE MAR4 ===================================} - -[MAR4_B1:MAR4] -~w~Wayne está con su banda en ~y~Chinatown~w~. - -[MAR4_B2:MAR4] -~w~¡Plántate allí y bórralo del mapa! - -[MAR4_C1:MAR4] -¡~r~Wayne~w~ se escapa! ¡Pilla una moto y mátalo! - -[MAR4_C3:MAR4] -~w~¡Lo estás perdiendo! ¡No dejes que ~r~Wayne~w~ escape! - -[MAR4_D1:MAR4] -~w~¿Eres Wayne? - -[MAR4_D2:MAR4] -~w~¿Quién lo pregunta? - -[MAR4_D3:MAR4] -~w~Soy un amigo de María. - -[MAR4_D4:MAR4] -~w~Pegar a las mujeres te pone a cien... ¿eh? - -[MAR4_D5:MAR4] -~w~¡Esa perra se lo buscó! - -[MAR4_D6:MAR4] -~w~¿Sí? Bueno, pues tú también. - -[MAR4_D7:MAR4] -~w~¡A por él! - -[MAR4_T1:MAR4] -~w~¡Vamos, tío duro! - -[MAR4_T2:MAR4] -~w~¡No tienes huevos! - -[MAR4_T3:MAR4] -~w~¡Conduces la moto con el culo! - -[MAR4_T4:MAR4] -~w~¡Bésame el culo, si es que logras acercarte! - -[MAR4_F1:MAR4] -~r~¡Has dejado que Wayne se escape! - -[MAR4_P1:MAR4] -~w~¡Has liquidado al chulito! - -[MAR4_H1:MAR4] -Salud de Wayne - -[MAR4_C4:MAR4] -~w~No pierdas a ~r~Wayne~w~. ¡Persíguelo y acaba con él! - -[BIK_01:MAR4] -Y ahora ¿qué te ha dado? - -[BIK_02:MAR4] -Nada. - -[BIK_03:MAR4] -¿De qué se trata esta vez, eh? - -[BIK_04:MAR4] -¿Jaco? ¿Somníferos? ¿Anfetas? ¿Demasiada coca? - -[BIK_08:MAR4] -¿Quién te ha hecho esto? - -[BIK_09:MAR4] -Nadie. - -[BIK_10:MAR4] -¿Quién ha sido? - -[BIK_11:MAR4] -Ese tío con el que salgo, Wayne. - -[BIK_12:MAR4] -¿Sales con un tío? ¡Pero si eres la chica de mi jefe! - -[BIK_13:MAR4] -Vamos, Toni, no seas tan carroza. Además, me pasa un 'speed' que flipo, ¿sabes? - -[BIK_14:MAR4] -Me levanta la moral. - -[BIK_15:MAR4] -Y me pone muy perra en la cama. - -[BIK_16:MAR4] -Cállate. ¿Por qué te ha hecho esto... - -[BIK_17:MAR4] -ese picha floja de Wayne? - -[BIK_18:MAR4] -Le he dicho que estaba enamorada de otro. - -[BIK_19:MAR4] -Le he hablado de ti y de mí, Toni. - -[BIK_22:MAR4] -¿Dónde está ese Wayne? - -[BIK_23:MAR4] -Pasa lo suyo en un bar de Chinatown. - -[BIK_24:MAR4] -Te amo, Toni Cipriani. - -[BIK_06:MAR4] -- ¿No estás lo bastante colgada? ~n~ - ¡Cállate, Toni! - -[BIK_05:MAR4] -¿No has tomado bastante Ducepán? - -[BIK_20:MAR4] -- ¡Y entonces me ha pegado! ~n~- ¡Pero si no tenemos nada! Dios, vas a acabar conmigo. - -{=================================== MISSION TABLE MAR5 ===================================} - -[MAR5_EA:MAR5] -~w~¿Por qué me has traído aquí? - -[MAR5_EB:MAR5] -~w~No tengo aquí las pastis... Aquí es por donde Wayne solía pasarse. - -[MAR5_EC:MAR5] -~w~¡Ya me acuerdo! ¡Tengo algún Zap escondido en Hepburn Heights! - -[MAR5_ED:MAR5] -~w~¡Eh, es esa perra de María! ¡Y ése es el cabrón que mató a Wayne! - -[MAR5_AA:MAR5] -~w~¡Escondí el Zap detrás del cubo de basura! - -[MAR5_AB:MAR5] -~w~¡Mierda! ¡Se han llevado la basura! - -[MAR5_AC:MAR5] -~w~¡Espera! ¡Ya me acuerdo! ¡Aún tengo una reserva en el piso! - -[MAR5_AD:MAR5] -~w~¿Esta vez estás segura? - -[MAR5_AE:MAR5] -~w~¡Claro que sí! - -[MAR5_BA:MAR5] -~w~¡Quería decir en casa de Salvatore! ¡Sí, allí! - -[MAR5_BB:MAR5] -~w~¡Por el amor de Dios, María! - -[MAR5_FA:MAR5] -~w~¿Por qué conduces tan lento? ¡Podría haber muerto de sobredosis! - -[MAR5_FB:MAR5] -~w~¡Estoy hecha un desastre! Necesito ropa nueva, un planchado de cara... Todo... - -[MAR5_FC:MAR5] -~w~Cariño... ¿tienes algo de dinero? - -[MAR5_FD:MAR5] -~w~Eh... No, la verdad... - -[MAR5_FE:MAR5] -~w~¿Por qué leches te me has estado insinuando? ¡Soy la chica de Salvatore! - -[MAR5_FF:MAR5] -~w~¡Él está forrado! ¡No vuelvas a tirarme los trastos! - -[MAR5_CA:MAR5] -~w~(Gemido) - -[MAR5_CB:MAR5] -~w~Mierda, creo que voy a potar. - -[MAR5_CC:MAR5] -~w~¡Voy hasta los ojos, Toni! - -[MAR5_CD:MAR5] -~w~No me encuentro muy bien. - -[MAR5_CE:MAR5] -~w~¡Vas muy rápido! ¡Y muy lento! - -[MAR5_NC:MAR5] -~b~María~w~ apenas puede andar. ¡Consigue un coche! - -[MAR5_ND:MAR5] -~w~María apenas puede andar. ¡Consigue un vehículo! - -[MAR5_DA:MAR5] -~w~¡Te vamos a matar, cabronazo! - -[MAR5_DB:MAR5] -~w~¡Tú y tu putita moriréis esta noche! - -[MAR5_DC:MAR5] -~w~¡La has cagado bien por tocarnos los cojones! - -[MAR5_LM:MAR5] -~w~Has dejado atrás a ~b~María~w~. Vuelve a por ella. - -[MAR5_O1:MAR5] -~w~Lleva a María al restaurante de ~y~Callahan Point~w~. - -[MAR5_O2:MAR5] -~w~Lleva a María a ~y~Hepburn Heights~w~. - -[MAR5_O3:MAR5] -~w~Lleva a María a ~y~su piso~w~. - -[MAR5_O4:MAR5] -~w~Lleva a María a la ~y~mansión de Salvatore~w~. - -[MAR5_O5:MAR5] -~w~Vuelve a por ~b~María~w~. - -[MAR5_MD:MAR5] -~r~¡María ha muerto! - -[MAR5_O6:MAR5] -~w~Recoge a ~b~María~w~. - -[OVER_01:MAR5] -Oh, eh, cariño... Creía que nunca vendrías. - -[OVER_02:MAR5] -Pero ¿qué pasa contigo? - -[OVER_03:MAR5] -¡Ay! Nada, cariño. Va todo bien. - -[OVER_04:MAR5] -Levántate, sonada de mierda. ¿Qué te has metido ahora? - -[OVER_05:MAR5] -¿Metido, ahora? No gran cosa. - -[OVER_06:MAR5] -Un par de... un par de las verdes... un par de las rojas fuertes. - -[OVER_07:MAR5] -Y esas pastillas tan guays que me traen de Holanda. - -[OVER_08:MAR5] -¡Pura dinamita! Estoy de puta madre. - -[OVER_09:MAR5] -No, qué va. - -[OVER_10:MAR5] -¡Necesito un Zap y estaré como nueva! - -[OVER_11:MAR5] -Los tengo por aquí. - -[OVER_12:MAR5] -¿Qué es un Zap? - -[OVER_13:MAR5] -¿Un Zap? ¿No sabes lo que es un Zap? - -[OVER_14:MAR5] -Ay, Toni, eres tan carroza... - -[OVER_17:MAR5] -¡Necesito un Zap, Toni! ¡Me muero! - -[OVER_18:MAR5] -Ya he estado así, es una sobredosis. - -[OVER_19:MAR5] -¡Consígueme un Zap, Toni! - -[OVER_20:MAR5] -Los dejé en un restaurante de Callahan Point. - -[OVER_21:MAR5] -No te quedes ahí sentada, venga. - -[OVER_15:MAR5] -- Toni, te quiero. ~n~ - Vamos, no digas chorradas. - -{=================================== MISSION TABLE VIC1 ===================================} - -[VIC1I11:VIC1] -~w~Te he buscado un buen rincón donde vivir, Toni. - -[VIC1I12:VIC1] -~w~Parece hecho a tu medida. - -[VIC1I13:VIC1] -~w~Vamos primero allí. - -[VIC1I14:VIC1] -~w~Eres un pedazo de pan. - -[VIC1_3:VIC1] -~w~Lleva a Vincenzo a su ~y~almacén~w~. - -[VIC1_4:VIC1] -~w~¡Vuelve a meterte en el ~b~coche~w~! - -[VIC1_5:VIC1] -~w~Lleva a Vincenzo al ~y~piso franco~w~. - -[VIC1_6:VIC1] -~w~Camina hasta la señal amarilla, en la ~y~entrada~w~. - -[VIC1_7:VIC1] -~w~Ve hasta el icono de la ropa para cambiarte. - -[VIC1_8:VIC1] -~w~Vuelve afuera con Vincenzo. - -[VIC1_9:VIC1] -~w~Lleva a Vincenzo a ~y~Atlantic Quays~w~. - -[VIC1_9A:VIC1] -~w~Y ahora, llévame a mi casa. - -[VIC1_10:VIC1] -~w~Sube al ~b~coche~w~. - -[VIC1_D1:VIC1] -~w~¡Joder, Toni! ¡Conduces como una mujer! - -[VIC1_D2:VIC1] -~w~¡Cuidado con el puto coche! - -[VIC1_D3:VIC1] -~w~Toni, deja de faltarme el respeto y conduce como un hombre, ¡capullo! - -[VIC1_C1:VIC1] -~w~Es aquí, Toni. Hogar, dulce hogar. Bonito, ¿no? - -[VIC1_C2:VIC1] -~w~¿Se supone que este agujero va a ser mi casa? - -[VIC1_C3:VIC1] -~w~¡Venga! Si te va que ni pintado... - -[VIC1_C4:VIC1] -~w~Ya le estás faltando el respeto al bueno de Vincenzo. - -[VIC1_C5:VIC1] -~w~Venga, tipo duro, sube cagando leches y ponte algo de ropa decente. - -[VIC1_C6:VIC1] -~w~No tengo todo el día, espabila. - -[VIC1_C7:VIC1] -~w~Eh, los pisos no los regalan, Toni. - -[VIC1_C8:VIC1] -~w~No olvides quién paga las facturas. - -[VIC1_C9:VIC1] -~w~¡YO! Papá Vincenzo, un servidor. - -[VIC1C10:VIC1] -~w~A partir de ahora, trabajas para mí. - -[VIC1C11:VIC1] -~w~Espero volver a verte bien pronto por aquí. - -[VIC1_F:VIC1] -~r~Vincenzo ha muerto. - -[HOMS_01:VIC1] -Eh... ahí lo tenemos, ¿no? - -[HOMS_02:VIC1] -Escucha, Toni, sé que te has portado muy bien con nosotros, - -[HOMS_03:VIC1] -y que has estado mucho tiempo pasando inadvertido, - -[HOMS_04:VIC1] -así que tómatelo con calma un tiempo, ¿eh? - -[HOMS_05:VIC1] -Vincenzo cuidará de ti. - -[HOMS_06:VIC1] -Si necesitas pasta, pídesela. - -[HOMS_07:VIC1] -Necesitas un trabajo. Lucky se encargará de ti. - -[HOMS_08:VIC1] -¿Qué más puede pedir alguien de la familia? - -[HOMS_09:VIC1] -Ni mi hijo tiene tanta suerte. - -[HOMS_10:VIC1] -Sr. Leone, yo me esperaba otra cosa. - -[HOMS_11:VIC1] -Es decir, he hecho mucho por esta familia. - -[HOMS_12:VIC1] -Y ahora, quiere que acepte órdenes de este... este... este... - -[HOMS_13:VIC1] -Bueno, es que no me parece... justo. - -[HOMS_14:VIC1] -Toni, sé lo que has hecho, y nadie te está más agradecido que yo, de verdad, - -[HOMS_15:VIC1] -pero la idea de que vengas aquí... - -[HOMS_16:VIC1] -y te pongas a cuestionar mi liderazgo es, francamente, - -[HOMS_17:VIC1] -improcedente. ¿Capisci? - -[HOMS_18:VIC1] -Entendido, jefe. - -[HOMS_19:VIC1] -Bueno, cuando necesites algo, llama a Vincenzo a Atlantic Quay. - -[HOMS_20:VIC1] -Él se encargará de ti. ¿No, Lucky? - -[HOMS_21:VIC1] -Por supuesto, jefe. Lo que usted diga. - -[HOMS_22:VIC1] -¿Qué tal si vamos para allá? - -{=================================== MISSION TABLE VIC2 ===================================} - -[VIC2M2:VIC2] -Pero hace días que ese colgado no nos trae pasta. - -[VIC2M3:VIC2] -Igual hay que meterle una patada en el culo para espabilarlo y que trabaje. - -[VIC2M4:VIC2] -Es como una zorra... Me recuerda un poco a ti. - -[VIC2M5:VIC2] -~w~¿Qué insinúas? - -[VIC2M6:VIC2] -¡No INSINÚO nada! - -[VIC2M7:VIC2] -Te digo directamente que vayas allí y te asegures de que ese capullo empiece a traer el puto dinero. - -[VIC2_B:VIC2] -~W~Consigue un coche. - -[VIC2OB1:VIC2] -~w~Lleva al camello a ~y~trabajar~w~. - -[VIC2_C:VIC2] -~w~¡Necesitas un coche para llevarlo a su zona habitual! - -[VIC2_D:VIC2] -~w~Recoge al camello de Vincenzo en el distrito de ~y~St. Mark~w~. - -[VIC2_E:VIC2] -~w~Vincenzo dice que eres un rajado de mierda que no se curra su zona... - -[VIC2_E2:VIC2] -~w~¡Eh! No soy ningún rajado. - -[VIC2_EX:VIC2] -~w~He... estado enfermo, nada más. - -[VIC2_E3:VIC2] -~w~Volveré a currar mañana... o puede que pasado. - -[VIC2_E4:VIC2] -~w~Creo que vas a ir ahora mismo... ¡Te guste o no! - -[VIC2_F:VIC2] -~w~¡Eh! ¡No me dejes aquí! ¡Este barrio es muy chungo, colega! - -[VIC2_F2:VIC2] -~w~Has dejado atrás al ~b~camello de Vincenzo~w~, vuelve y recógelo. - -[VIC2_G:VIC2] -~w~¡Escucha, tío! Se lo dije a Vinnie... ¡Chinatown ya no es de los Leone! - -[VIC2_G2:VIC2] -~w~¡Están entrando los Sindacco! Si voy allí, soy hombre muerto. - -[VIC2_G3:VIC2] -~w~Claro... claro... - -[VIC2_G4:VIC2] -~w~¡Lo que yo te diga! Los Sindacco están en el ajo. - -[VIC2_G5:VIC2] -~w~No me encuentro muy bien... Creo que estoy destemplado o algo. - -[VIC2_H:VIC2] -~w~Para cerca del ~b~camello~w~. - -[VIC2_I:VIC2] -~w~Ay, tío... - -[VIC2_J:VIC2] -~r~¡El camello de Vincenzo la ha diñado! - -[VIC2_K:VIC2] -~w~Lleva al camello de Vincenzo a ~y~Chinatown~w~. - -[VIC2_1:VIC2] -NONE - -[VIC2M1:VIC2] -Tenemos a un camello trabajando en la zona norte de Chinatown. - -{=================================== MISSION TABLE VIC3 ===================================} - -[VIC3_H1:VIC3] -~w~Mantén pulsado~h~ ~k~ ~PDLT~ ~w~para ~h~fijar un blanco~w~ y pulsa~h~ ~k~ ~PDFW~ ~w~para atacar. - -[VIC3_H2:VIC3] -~w~Pulsa~h~ ~k~ ~PDFW~ ~w~para atacar al ~h~camello~w~. - -[VIC3O2:VIC3] -~w~Dirígete a ~y~Chinatown~w~. - -[VIC3O3:VIC3] -~w~Cárgate al ~r~camello~w~. - -[VIC3_1:VIC3] -~w~Vincenzo te ha dejado un regalito que puede ayudarte. - -[VIC3_BA:VIC3] -~w~¡Fuera del territorio de los Leone, pringado! - -[VIC3_BB:VIC3] -~w~¿Quieres más, caraculo? - -[VIC3_BC:VIC3] -~w~¡Aquí solo trafican los Leone! ¡Y nadie más! ¿Me oís, putos Sindacco? - -[VIC3_6:VIC3] -~w~Los Sindacco están traficando por toda Chinatown. - -[VIC3_AA:VIC3] -~w~¿Vinnie? - -[VIC3_AB:VIC3] -~w~¡Por Dios, Toni! ¿Es que no puedo tener ni un respiro? - -[VIC3_AD:VIC3] -~w~Bastantes 'aprietos' tengo para que encima aparezcas por mi queli... - -[VIC3_AE:VIC3] -~w~Pero ya que estás aquí, que sepas que no he visto nada de pasta... - -[VIC3_AF:VIC3] -~w~... de ese camello. ¿Y sabes por qué? - -[VIC3_AG:VIC3] -~w~Ilústrame... - -[VIC3_AJ:VIC3] -~w~Los Sindacco han empezado a traficar, ¡y encima en nuestro territorio! - -[VIC3_AK:VIC3] -~w~¿Vas a permitirlo, Toni? - -[VIC3_AL:VIC3] -~w~¡Quiero que vayas para Chinatown! - -[VIC3_AM:VIC3] -~w~Muy bien, 'jefe', voy para allá. - -[VIC3_AN:VIC3] -~w~¡Santo Dios! ¿Es que nunca está el puto papel a mano? - -[VIC3_AH:VIC3] -~w~¡Porque está muerto, idiota! Alguien se lo ha cargado. - -[VIC3O4:VIC3] -~r~Los Sindacco~w~ están traficando por toda Chinatown. ¡Dales una lección que no olviden! - -{=================================== MISSION TABLE VIC4 ===================================} - -[VIC4_H2:VIC4] -~w~Sigue el ~h~punto del bote de spray~w~ en el radar para encontrar el ~h~Pay 'n' Spray~w~. - -[VIC4_A2:VIC4] -~w~Ponte en la ~h~señal~w~ para ver las armas disponibles. - -[VIC4_A3:VIC4] -Selecciona diferentes armas usando~h~ ~k~ ~AMMOV~. - -[VIC4_A4:VIC4] -~w~Compra el arma seleccionada pulsando~h~ ~k~ ~AMBUY~ ~w~, pero solo si tienes el dinero suficiente. - -[VIC4_A6:VIC4] -~w~Hay ocho tipos de armas que puedes usar. - -[VIC4_A7:VIC4] -~w~Solo puedes llevar una de cada tipo a la vez: un tipo de pistola, un tipo de escopeta, etc. - -[VIC4_H1:VIC4] -~w~Sigue el ~h~punto de la pistola~w~ en el radar para encontrar ~h~Ammu-Nation~w~. - -[VIC4_H3:VIC4] -~w~Sigue el ~h~punto de la pistola~w~ en el radar para volver a encontrar ~h~Ammu-Nation~w~. - -[VIC4_AB:VIC4] -~w~Es difícil de olvidar... - -[VIC4_AD:VIC4] -~w~Lo interesante es que ahora quiere ser un Leone. - -[VIC4_AE:VIC4] -~w~¡Que le den! Ya eligió en su momento. - -[VIC4_AG:VIC4] -~w~Hola, ¿cerebrito? Dios, Toni, Sal dice que eres un matón lerdo, - -[VIC4_AH:VIC4] -~w~pero no me imaginaba que tanto. - -[VIC4_AJ:VIC4] -~w~Va a ser nuestro infiltrado. - -[VIC4_AK:VIC4] -~w~Solo hay un detalle. - -[VIC4_AL:VIC4] -~w~Un gorila de los Sindacco no le deja ni respirar. - -[VIC4_AM:VIC4] -~w~Quiero que elimines ese pequeño obstáculo... - -[VIC4_AN:VIC4] -~w~y pongas a J.D. de nuestra parte. ¿Capisci? - -[VIC4_2:VIC4] -~w~Coge el ~g~móvil~w~ como prueba de que has hecho el trabajo. - -[VIC4_BA:VIC4] -~w~Toni... ¡me has dado material para una 'snuff' del copón! - -[VIC4_BB:VIC4] -~w~¿J.D.? ¿Lo has visto? ¿ME HAS ESTADO FILMANDO? - -[VIC4_BC:VIC4] -~w~Ay, solo estaba... ¡Es para uso privado! - -[VIC4_BD:VIC4] -~w~¡Qué ganas tengo de que estemos en el mismo equipo! - -[VIC4_BE:VIC4] -~w~No te emociones demasiado. Aún me debes dinero. - -[VIC4_BF:VIC4] -~w~Quédate en prenda el coche del tarugo de los Sindacco, ¿eh? - -[VIC4_BG:VIC4] -~w~Lo repintas un poco, y nadie lo reconocerá. - -[VIC4_BH:VIC4] -~w~Ya me encargo yo del fiambre. - -[VIC4_CA:VIC4] -~w~¡Eh! ¡Fuera de aquí! - -[VIC4_CB:VIC4] -~w~¡Aquí no se te ha perdido nada! - -[VIC4_61:VIC4] -~w~Sube al ~b~coche~w~. - -[VIC4_62:VIC4] -~w~Ve hasta el Pay 'n' Spray. - -[VIC4_DC:VIC4] -~r~¡J.D. te ha dicho que repintes el buga! - -[VIC4_PR:VIC4] -(Ring, ring...) - -[VIC4O1A:VIC4] -~w~Ve ~y~adentro. - -[VIC4_O2:VIC4] -~w~Compra una pistola. - -[VIC4_O4:VIC4] -~w~Mata al ~r~gorila de los Sindacco~w~. - -[VIC4_FA:VIC4] -~r~¡Ahora no te venderá armas! - -[VIC4_O3:VIC4] -~w~Dirígete a las ~y~obras~w~. - -[VIC4_AC:VIC4] -~w~Ahora lleva un bar de guarras controlado por los Sindacco, quiero decir... un 'club de alterne'. - -[VIC4_AA:VIC4] -~w~Eh, ¿te acuerdas de J.D. O'Toole? - -[VIC4_AI:VIC4] -~w~Usemos a J.D. para sacar ventaja de los planes de los Sindacco. - -[HELP42:VIC4] -~w~Cuando apuntes, pulsa ~h~ ~k~ ~FREE1~ ~w~para entrar en el ~h~modo puntería libre~w~ y luego usa ~h~ ~k~ ~FREE2~ ~w~para mover el punto de mira. - -[VIC4_A1:VIC4] -~w~Ve a la tienda ~y~Ammu-Nation~w~ más cercana para conseguir un arma. - -[VIC4_O1:VIC4] -~w~Vuelve a ~y~Ammu-Nation~w~ y consigue un arma. - -[VIC4_1:VIC4] -~w~El ~r~capo de los Sindacco~w~ está detrás de las obras. ¡Mátalo! - -{=================================== MISSION TABLE VIC5 ===================================} - -[VIC5_H:VIC5] -Leone - -[VIC5_I0:VIC5] -~w~Ah, eres tú. - -[VIC5_I1:VIC5] -~w~Sí, soy yo. ¡Qué te parece! ¿Qué sabes tú? - -[VIC5_I2:VIC5] -~w~Te diré lo que sé, tío duro. - -[VIC5_I3:VIC5] -~w~Unos chicos nuestros han cagado un puto trabajo que era para imbéciles. - -[VIC5_I4:VIC5] -~w~Capullos de mierda, no pueden ni con un simple atraco. - -[VIC5_I5:VIC5] -~w~Y ahora la poli los ha acorralado en Chinatown. - -[VIC5_I6:VIC5] -~w~¡Pardillos! ¿Por qué estoy rodeado de tantos putos idiotas? - -[VIC5_I7:VIC5] -~w~No sé... ¿'Dime con quién andas...'? - -[VIC5_I8:VIC5] -~w~¡Vaya, así que eres un payaso! - -[VIC5_I9:VIC5] -~w~Bueno, pues ríete de esto, listillo: - -[VIC5I10:VIC5] -~w~¡Vas a limpiarme el culito en este asunto! - -[VIC5I11:VIC5] -~w~Venga, ve allí y trae de vuelta a esos capullos. - -[VIC5_F1:VIC5] -~r~Ha muerto uno de la banda. - -[VIC5_G0:VIC5] -~w~Consigue un coche de 4 plazas. - -[VIC5_O1:VIC5] -~w~Rescata a los ~b~hombres de Vincenzo~w~. - -[VIC5_O2:VIC5] -~w~¡Saca a ~b~la banda~w~ de aquí! - -[VIC5_O3:VIC5] -~w~¡Despista a la poli! - -[VIC5_O4:VIC5] -~w~Lleva a la banda con ~y~Vincenzo~w~. - -[VIC5_O5:VIC5] -~w~¡Mantén a ~b~la banda~w~ unida! - -[VIC5_O6:VIC5] -~w~Necesitas un vehículo con más espacio. - -[VIC5_G1:VIC5] -~w~¿Qué vamos a hacer? - -[VIC5_G2:VIC5] -~w~¡La cagamos! - -[VIC5_G3:VIC5] -~w~¡No pienso ir a la trena por ese bastardo de Vincenzo! - -[VIC5_G4:VIC5] -~w~¡Salgamos cagando leches! - -[VIC5_G5:VIC5] -~w~¡Espérame! - -[VIC5_G6:VIC5] -~w~¡Pisa a fondo, Toni! - -[VIC5_E1:VIC5] -~w~¿Habéis traído el botín o qué? - -[VIC5_E2:VIC5] -~w~Lo teníamos todo, jefe... - -[VIC5_E3:VIC5] -~w~Oye, mira, no pudimos hacer nada... - -[VIC5_E4:VIC5] -~w~No pudisteis hacer nada... - -[VIC5_E5:VIC5] -~w~Las cosas se torcieron... No podría haber salido peor. - -[VIC5_E6:VIC5] -~w~¿Qué te parece...? ¿Están mejor las cosas ahora, o peor? - -[VIC5_E7:VIC5] -~w~Si la volvéis a cagar alguna vez, las cosas también os irán peor. - -[VIC5_E8:VIC5] -~w~Y ahora limpiad esta mierda y fuera de mi vista. - -[VIC5_E9:VIC5] -~w~Tengo que hacer una llamada. - -[VIC5E10:VIC5] -~w~Te lo juro, Toni, el día que volviste, mi suerte se fue a tomar por culo. - -[VIC5E11:VIC5] -~w~Eres un puto gafe. - -{=================================== MISSION TABLE VIC6 ===================================} - -[VIC6_BA:VIC6] -~w~¡Alto! - -[VIC6_BB:VIC6] -~w~¡Quieto, capullo! - -[VIC6_P0:VIC6] -~w~Recoge el ~b~coche de Vincenzo~w~. - -[VIC6_P1:VIC6] -~w~¡Es una trampa de la poli! ¡Saca el coche de aquí! - -[VIC6_P2:VIC6] -~w~¡Despista a la poli! - -[VIC6_P3:VIC6] -~w~¡Has despistado a la poli! ¡Lleva el coche al ~y~garaje de Vincenzo~w~. - -[VIC6_P4:VIC6] -~w~Haz que Vincenzo no vuelva a tomarte el pelo. ¡Tritúrale el ~b~coche~w~! - -[VIC6_P5:VIC6] -~w~¡Súbete al ~b~coche~w~ de Vincenzo! - -[VIC6_P6:VIC6] -~w~Lleva el coche al ~y~garaje de Vincenzo~w~. - -[VIC6_PA:VIC6] -~r~¡Has destruido el coche! - -[VIC6_D1:VIC6] -~w~Sube al ~b~coche~w~. - -[VIC6_D3:VIC6] -~w~Lleva el coche a la ~y~trituradora~w~. - -[VIC6_D4:VIC6] -~w~Sal y espera a que la trituradora haga su trabajo. - -[VIC6_D5:VIC6] -~r~¡Tenías que haber triturado el coche! - -[VIC6_AA:VIC6] -~w~¡Eh! Toni, ¿y el coche? - -[VIC6_AB:VIC6] -~w~¡Eres un hijo de puta, Vinnie! ¡Me la has jugado! - -[VIC6_AC:VIC6] -~w~¿Que te la he jugado? ¿JUGÁRTELA? - -[VIC6_AD:VIC6] -~w~¡Cuando volviste a la ciudad no tenías nada! ¡NADA! - -[VIC6_AE:VIC6] -~w~¿Eso es jugártela, cabrón desagradecido? - -[VIC6_AF:VIC6] -~w~¡Te di un piso y un trabajo! - -[VIC6_AG:VIC6] -~w~Y por tanta generosidad solo espero que asumas algunos riesgos. - -[VIC6_AH:VIC6] -~w~No soy una hermanita de la caridad, ¿vale? Ni tu querido papá. - -[VIC6_AI:VIC6] -~w~¿Que había unos polis vigilando el coche? ¡Pues que les jodan! - -[VIC6_AJ:VIC6] -~w~Cuando te diga que hagas algo, lo haces. ¿Capisci? - -[VIC6_AK:VIC6] -~w~Oh, sí. Ya lo entiendo, Vinnie. - -[VIC6_AL:VIC6] -~w~Entiendo que mientras trabaje para ti seré el pito del sereno. - -[VIC6_AM:VIC6] -~w~Yo ya estaba en el ajo cuando tú aún te comías los mocos. - -[VIC6_AN:VIC6] -~w~Quédate con tu trabajo de mierda, 'jefe'. Lo dejo. - -[VIC6_AO:VIC6] -~w~Toni, te vas a arrepentir de... - -[VIC6_D2:VIC6] -~w~Para en la ~y~señal~w~. - -[HOTW_01:VIC6] -Claro, mamá. Luego te llamo. - -[HOTW_28:VIC6] -¡Vincenzo! - -[HOTW_02:VIC6] -Por supuesto que me estoy portando bien. - -[HOTW_03:VIC6] -Te quiero. - -[HOTW_04:VIC6] -Eh, Cheryl, encanto, date un respiro. - -[HOTW_05:VIC6] -Y ahora vete de aquí. - -[HOTW_06:VIC6] -Toma, para que te empolves. - -[HOTW_11:VIC6] -Das asco. ¿Es que no tienes respeto? - -[HOTW_12:VIC6] -¿Respeto? Esto es 'multitarea', Antonio. - -[HOTW_15:VIC6] -Si para ti es un problema, le pido a Ray que te ayude. - -[HOTW_16:VIC6] -Que te jodan. - -[HOTW_17:VIC6] -Solo te estaba tocando los huevos, cálmate. - -[HOTW_18:VIC6] -Escucha, tío duro. Necesito que me hagas un favor. - -[HOTW_19:VIC6] -Las chicas están locas por la coca. Tengo un coche lleno aparcado en Trenton. - -[HOTW_20:VIC6] -Ve a recogerlo... y dame un telefonazo. - -[HOTW_21:VIC6] -¿Acaso soy tu chófer? Que te den. - -[HOTW_22:VIC6] -Escucha, escucha, escucha... - -[HOTW_23:VIC6] -Lo haría yo, pero los federales me vigilan. - -[HOTW_24:VIC6] -Sabes que no te dejaré colgado. Confía en mí. - -[HOTW_25:VIC6] -Y recuerda que aquí tenemos una jerarquía. ¿Capisci? Ahora sé un buen chico. - -[HOTW_07:VIC6] -- Eh, ¿quién te quiere a ti, ángel? ~n~ - Tú, Vinnie. - -[HOTW_09:VIC6] -- ¿Hablabas con tu madre? ~n~ - Claro. - -[HOTW_13:VIC6] -- ¿Qué, es que a ti no te gusta que una tía buena te la chupe? ~n~ - ¿Qué? - -{=================================== MISSION TABLE VIC7 ===================================} - -[VIC7_VE:VIC7] -~r~V 1.01 - -[VIC7_1:VIC7] -~w~¡Vinnie, estoy aquí! ¿Dónde diablos te metes? ¿Qué es esto? - -[VIC7_2:VIC7] -~w~¿Toni? ¿Come stai...? Sabía que llamarías. - -[VIC7_3:VIC7] -~w~Escucha, estoy en los muelles de Portland. - -[VIC7_3A:VIC7] -~w~Nos está llegando un gran cargamento. Pásate. Estoy a bordo del carguero grande. - -[VIC7_3B:VIC7] -~w~No sé, Vinnie... Tengo cosas que hacer. - -[VIC7_3D:VIC7] -~w~Pero a partir de ahora seremos como socios. Más que socios... ¡Hermanos! - -[VIC7_3E:VIC7] -~w~Venga, vamos. ¿Qué me dices? Es lo que quiere Salvatore. - -[VIC7_3F:VIC7] -~w~Vale. Por Salvatore. - -[VIC7_3G:VIC7] -~w~Pero si me vuelves a salir con el rollo paternalista, te mato. - -[VIC7_4:VIC7] -~w~¡Buaja, ja, ja! ¡Te voy a descuartizar, hombrecillo! - -[VIC7_4A:VIC7] -~w~Reúnete con Vincenzo en el ~y~carguero~w~. - -[VIC7_5:VIC7] -~w~¡Mueeeeere! - -[VIC7_6:VIC7] -~w~¡Ja, ja, ja, ja, ja, ja, ja, ja! - -[VIC7_7:VIC7] -~w~¿Ya está muerto ese baboso tontolculo? - -[VIC7_8:VIC7] -~w~Odio decepcionarte, Vinnie. - -[VIC7_9:VIC7] -~w~¡Hijo de puta! ¿Es que ni siquiera sabes morirte? - -[VIC7_10:VIC7] -~w~No deberías haber vuelto, Toni. - -[VIC710A:VIC7] -~w~Yo me he dejado los riñones por Salvatore. - -[VIC710B:VIC7] -~w~Y tú simplemente vuelves a la ciudad y, hala, él que si 'Toni esto', que si 'Toni aquello'... - -[VIC7_11:VIC7] -~w~¡Ésta es mi ciudad, Toni! ¡MI CIUDAD! - -[VIC711A:VIC7] -~w~¡No me la vas a quitar! - -[VIC7_12:VIC7] -~w~Voy a disfrutar con esto. - -[VIC7_4B:VIC7] -~w~El lugar parece desierto. Sube al ~y~barco~w~. - -[VIC7_13:VIC7] -~w~Dirígete a la ~y~salida~w~. - -[VIC7_3C:VIC7] -~w~Mira, sé que he sido muy capullo contigo, Toni. Y lo siento mucho. - -[VIC7HUL:VIC7] -~w~Baja a la ~y~bodega~w~. - -{=================================== MISSION TABLE SALS1 ===================================} - -[SALS1_1:SALS1] -NONE - -[SALS1_6:SALS1] -Mata al ~r~alcalde R.C. Hole~w~. - -[SALS1_7:SALS1] -Hazte con el ~g~teléfono móvil~r~ del alcalde. - -[SALS1_8:SALS1] -~r~El alcalde ha terminado sus ejercicios. - -[SALS1_9:SALS1] -~r~El alcalde ha escapado. - -[SALS110:SALS1] -Llévale el teléfono a ~y~Salvatore~w~. - -[SALS111:SALS1] -¡Suelta el arma o disparo! - -[SALS112:SALS1] -¡Te persiguen! ¡El ~r~alcalde~w~ se está largando! - -[SS1_AA:SALS1] -¿Sí? Soy Toni. - -[SS1_AB:SALS1] -¡Ese bastardo del alcalde me está jodiendo y no pienso tolerarlo! - -[SS1_AC:SALS1] -Cálmate, Sal. Veré si puedo resolver el problema por ti. - -[SS1_AD:SALS1] -Eres un buen chico, Toni, tu padre se sentiría orgulloso de ti. - -[SS1_AE:SALS1] -Escucha, ese puto gordo del alcalde suele ir a correr a diario por el parque. - -[SS1_AF:SALS1] -Asegúrate de que pierda el aliento... ¡para siempre! - -[SS1_AG:SALS1] -¡Y trae su teléfono! - -[SS1_AH:SALS1] -A ver con quién ha estado hablando. - -[SALS1AA:SALS1] -¿Sí? Soy Toni. - -[SALS1AB:SALS1] -Ese puto alcalde me está jodiendo. - -[SALS1AC:SALS1] -¡Y no pienso tolerarlo! - -[SALS1AD:SALS1] -Tranquilo. Yo lo quitaré de en medio. - -[SALS1AE:SALS1] -Eres un buen chico, Toni. - -[SALS1AF:SALS1] -Ese puto gordo suele ir a correr a diario por el parque. - -[SALS1AG:SALS1] -Que pierda el aliento... ¡para siempre! - -[SALS1AH:SALS1] -Ah sí, y trae su teléfono. - -[SALS1AI:SALS1] -A ver con quién ha estado hablando... - -[SALS1C1:SALS1] -¡Suelte al arma, señor! - -[SALS1C2:SALS1] -¡Alto o disparo! - -[SALS1C3:SALS1] -¡Quieto! - -[SALS1C4:SALS1] -¡No haga una estupidez! - -[SALS113:SALS1] -~r~El teléfono del alcalde ha sido destruido. - -[SALS114:SALS1] -¡Cuidado! Te dispararán si te ven entrar armado en el parque. - -{=================================== MISSION TABLE SALS2 ===================================} - -[SALS2_1:SALS2] -~w~Sube al ~b~coche~w~. - -[SALS2_2:SALS2] -~w~Ve al ~y~lugar de reunión~w~. - -[SALS2_3:SALS2] -~w~Vuelve al ~b~coche~w~. - -[SALS2_4:SALS2] -~r~¡Han matado a Mickey! - -[SALS2_5:SALS2] -~r~¡Han matado a un hombre de Salvatore! - -[SALS2AA:SALS2] -'Toni. - -[SALS2AB:SALS2] -Unos cuantos chicos pasarán a recogerte. - -[SALS2AC:SALS2] -Asegúrate de estar cuando lleguen. - -[SALS2AD:SALS2] -Ciao, Salvatore.' - -[SALS2CA:SALS2] -Eh, ¿Toni? - -[SALS2CC:SALS2] -Vamos, sube, tú conduces. - -[SALS2CD:SALS2] -Mickey, qué... eeh... ¿qué pasa? - -[SALS2CE:SALS2] -Vamos, Cipriani. ¿Qué, te crees que he venido a liquidarte? - -[SALS2BA:SALS2] -Salvatore está ahí abajo... - -[SALS2BC:SALS2] -Toni, hijo mío, - -[SALS2BD:SALS2] -¡hoy es el día en que te bautizaremos! - -[SALS2BE:SALS2] -Oh, Salvatore. Sr. Leone. - -[SALS2BF:SALS2] -Mamá ha estado esperando este día. - -[SALS2CB:SALS2] -Venga, sube, vamos a dar una vuelta. - -[SALS2BB:SALS2] -Madonna mia, ¿a qué estás esperando? - -[SALS2AF:SALS2] -Eh, Toni, gracias. Estamos en contacto. - -{=================================== MISSION TABLE SALS3 ===================================} - -[SALS3_1:SALS3] -NONE - -[SALS3_2:SALS3] -Daño - -[SALS313:SALS3] -~r~¡El consejero del alcalde es historia! - -[SALS314:SALS3] -~r~¡Salvatore es historia! - -[SALS3AA:SALS3] -Toni, ¡sube! - -[SALS3AB:SALS3] -¿Adónde vamos? - -[SALS3AC:SALS3] -Vamos a tener una charlita con el ayudante del alcalde sobre Franco Forelli. - -[SALS3BA:SALS3] -¡Eh, fuera de mi barco! - -[SALS3BB:SALS3] -Usted se viene conmigo. - -[SALS3BC:SALS3] -¡No puede hacerme esto! - -[SALS3BD:SALS3] -Rápido, ¡el servicio secreto estará vigilando! - -[SALS3CA:SALS3] -Toni, cuidado, ¡hay pistoleros en esas rocas! - -[SALS3CB:SALS3] -¡Pistoleros al frente! - -[SALS3CC:SALS3] -¡Cuidado a la derecha, Toni! - -[SALS3CD:SALS3] -¡A la izquierda, Toni, izquierda! - -[SALS3CE:SALS3] -¡Hay más en el embarcadero! - -[SALS3CF:SALS3] -Hostia puta, ¡el servicio secreto viene en helicóptero! - -[SALS3DA:SALS3] -¡... El alcalde no hacía una mierda sin el beneplácito de Franco! - -[SALS3DB:SALS3] -¡Al alcalde nadie le daba órdenes! - -[SALS3DC:SALS3] -¡Aargh! ¡Espere, espere, tiene razón! - -[SALS3DE:SALS3] -¿Los sicilianos? ¿Por qué? - -[SALS3DF:SALS3] -Son los amos de Franco y quieren una guerra entre las Familias de Liberty. - -[SALS3DG:SALS3] -Cuando las cosas se apacigüen, se harán con todo. - -[SALS3DH:SALS3] -Toni, te llamo luego. - -[SALS3DI:SALS3] -Ahora voy a echar a este truño a la bahía. - -[SALS3DD:SALS3] -Esos sicilianos... Ellos forzaron a Franco a hacerlo. - -{=================================== MISSION TABLE SALS4 ===================================} - -[SALS4_1:SALS4] -NONE - -[SALS4BA:SALS4] +[COK4_2] Sí. -[SALS4BB:SALS4] -¡Gracias a Dios que lo has cogido! +[COK4_6] +¿A dónde crees que vamos? -[SALS4BC:SALS4] -¿Qué pasa, Sal? +[COK4_7] +¿Nos hemos perdido? -[SALS4BD:SALS4] -¡He ido a espiar a los Forelli a Fort Staunton y se ha montado un pollo! +[COK4_8] +¡Tenemos competencia! -[SALS4BE:SALS4] -Los Sindacco han declarado la guerra a los Forelli, +[COK4_9] +¡Elimínales! -[SALS4BF:SALS4] -¡y estoy en medio de este Cristo! +[COK4_9A] +¡Es hora del baile de Lance Vance! -[SALS4BG:SALS4] -Voy para allá. +[COK4_10] +¡Ya son astillas! Y comida para los peces. -[SALS4BH:SALS4] -Trae la limusina, está blindada. ¡Vamos a necesitarla! +[COK4_11] +¡Lo conseguimos! Esos otros barcos no son de la clase VIP. -[SALS4AA:SALS4] -¡Larguémonos de aquí, Toni! +[COK4_17] +¡Se están desesperando! -[SALS4AB:SALS4] -¡Llévame a la limusina! +[COK4_18] +¡Mis malditos pies están mojados! ¡NOS ESTÁ ENTRANDO AGUA! -[SALS4AE:SALS4] -Vale, tengo un sitio en Newport. ¡Llévame allí! +[COK4_21] +¡Subiendo el puente! -[SALS4AF:SALS4] -Eh, Toni, gracias. Estamos en contacto. +[COK4_22] +¡Salta, está apunto de estallar! -[SAL4_1:SALS4] -Recoge la ~b~limusina~w~ del Sr. Leone. +[COK4_23] +Buen disparo. -[SAL4_2:SALS4] -~r~¡Has destruido el coche! +[COK4_29] +~r~¡Mataste a Lance! -[SAL4_3:SALS4] -Lleva el coche a ~y~Fort Staunton~w~. +[ASS1_6] +¡Adelante Tommy, yo estaré bien! -[SAL4_4:SALS4] -~r~¡Has dejado que Salvatore muera! +[ASS1_7] +¡Comeos esto, asesinos hijos de puta! -[SAL4_6:SALS4] -~b~Salvatore~w~ está en el callejón. +[ASS1_8] +¡Me han dado! -[SAL4_9:SALS4] -Ve al ~y~garaje~w~. +[ASS1_9] +¡Te tengo cubierto, Tommy! -[SAL4_11:SALS4] -Has dejado atrás a ~b~Salvatore~w~. +[ASS1_10] +Eh, este seto es precioso. -[SAL4_12:SALS4] -Está bloqueada, deja la limusina aquí y sigue a pie. +[ASS1_11] +Tommy, ¿puedo tener una habitación con vistas a la bahía? -[SAL4_13:SALS4] -Vuelve a la ~b~limusina~w~. +[ASS1_12] +Unos techos altos muy bonitos... -[SAL4_14:SALS4] -Lleva a Salvatore y la limusina al ~y~garaje~w~ de Newport. +[ASS1_3] +¡Lance! ¡Necesito que me cubras! -[SAL4_15:SALS4] -¡Encuentra a ~b~Salvatore~w~! +[ASS1_4] +¡Díaz debe de estar dentro! -[SAL4_16:SALS4] -Lleva a Salvatore a la ~b~limusina~w~. +[ASS1_5] +¡Lance! -[SAL4_17:SALS4] -Espera a que ~b~Salvatore~w~ se meta en la limusina. +[TAXWAR] +MISIONES DE LA GUERRA DE TAXIS -{=================================== MISSION TABLE SALS5 ===================================} +[NOTAXI] +~g~Necesitas un Taxi Kaufman para activar esta misión. -[SALS5_1:SALS5] -~w~Pulsa~h~ ~k~ ~VEACC~ ~w~para controlar el coche de Paul Sindacco. +[TAXW1_5] +~g~¡Necesitas estar en un taxi Kaufman! -[SALS5_2:SALS5] -~w~Acaba con los ~r~Forelli~w~ en la reunión antes de que Sindacco encuentre el sistema de control. +[TAX2_4] +Adelante, Tommy. -[SALS5_3:SALS5] -~r~¡Paul Sindacco ha muerto! +[TAX2_5] +Dale una buena paliza. -[SALS5_4:SALS5] -~r~La furgoneta de Salvatore ha sido destruida. +[TAX2_6] +Ni siquiera tiene licencia. -[SALS5_5:SALS5] -~r~Sindacco ha llegado a la reunión. +[TAX2_7] +Malditos servicios de limusina. -[SALS5_6:SALS5] -~w~Ve a la ~b~furgoneta~w~. +[TAXW3_1] +~g~Ve y recoge a Mercedes. -[SALS5_7:SALS5] -~w~Tiempo restante +[RACE1] +~g~3..2..1.. ¡VAMOS VAMOS VAMOS! -[SALS5_8:SALS5] -~r~¡Sindacco ha encontrado el sistema de control! +[RACE2] +~g~3 -[SALS5_9:SALS5] -~w~El control por satélite del coche de Sindacco tendrá una respuesta lenta. +[RACE3] +~g~2 -[SALS510:SALS5] -~w~Daño +[RACE4] +~g~1 -[SALS5AA:SALS5] -¡Eh! +[RACE5] +~g~¡ADELANTE! -[SALS5AB:SALS5] -Toni, soy yo, tengo algo para ti... +[FIRST] +~b~1 -[SALS5AC:SALS5] -Te va a encantar, te lo pasarás pipa. +[SECOND] +~b~2 -[SALS5AD:SALS5] -¿Qué quiere que haga, Sal? +[THIRD] +~b~3 -[SALS5AE:SALS5] -Hay una furgoneta por allí. +[FOURTH] +~b~4 -[SALS5AF:SALS5] -Llámame cuando la encuentres. +[RACETM] +~b~TIEMPO DE CARRERA: ~1~:~1~ -[SALS5BA:SALS5] -Vale, Sal, ya estoy en la furgoneta. +[RACETM2] +~b~TIEMPO DE CARRERA: ~1~:0~1~ -[SALS5BB:SALS5] -Bien. Hemos estado trasteando en el coche de Paulie Sindacco. +[RACEFA] +~r~¡Has fracasado en ganar la carrera! -[SALS5BC:SALS5] -¿Y qué quiere que haga? +[HOTRNG] +HOTRING -[SALS5BD:SALS5] -Paulie se va a reunir con los Forelli. +[BLODRNG] +BLOODRING -[SALS5BE:SALS5] -Está intentando negociar una tregua. +[DIRTRNG] +DIRTRING -[SALS5BF:SALS5] -Usa el equipo de la furgoneta para controlar el coche de Paulie... +[TEX1_5] +~r~¡Se escapó! -[SALS5BG:SALS5] -y joder la reunión. +[SEG3_1] +TIEMPO: -[SALS5CA:SALS5] -Pero ¿qué...? +[SEG3_2] +~g~Ve a la camioneta que contiene el Helicótero RC y las bombas por control remoto con temporizador. -[SALS5CC:SALS5] -¡Dios, socorro! +[SEG3_3] +~g~Debes emplear el Helicótero RC para transportar 4 bombas hasta 4 objetivos en lugar del edificio. -[SALS5CD:SALS5] -¡Quita de en medio! +[SERG3_5] +~g~Sólo puedes llevar una bomba en cada ocasión y no puedes recoger bombas colocadas con éxito. -[SALS5CF:SALS5] -¡Que alguien me ayude! +[SEG3_7] +~g~Una vez que hayas soltado con éxito la PRIMERA bomba sobre una zona del objetivo, el cronómetro de detonación se pondrá en marcha; de modo que tendrás que soltar todas las bombas dentro de este período de tiempo. -[SALS5CG:SALS5] -¡Mi coche está poseíííídooo! +[SEG3_8] +~g~Las 4 bombas deben estar colocadas en las 4 zonas objetivo para superar la misión y demoler el edificio. -[SALS5CE:SALS5] -¡Este coche intenta matarme! +[SEG3_9] +~g~¡Alcanzaste el objetivo! Quedan 3. -[SALS5CB:SALS5] -Eh, ¿qué está pasando aquí? +[SEG3_10] +~g~¡Alcanzaste el objetivo! Quedan 2. -{=================================== MISSION TABLE SALS6 ===================================} +[SEG3_11] +~g~¡Alcanzaste el objetivo! ¡Sólo queda 1! -[SALS601:SALS6] -~w~Sal ha dejado una ~b~embarcación ~w~en el muelle sudoeste, detén al consejero. +[SEG3_12] +~r~¡Fallaste el blanco! ¡Ve a por una bomba! -[SALS602:SALS6] -~w~Va por la costa. ¡A por ~r~él~w~! +[SEG3_13] +~g~Deja caer la bomba en una zona del objetivo. -[SALS603:SALS6] -~r~Está volviendo ~w~con Franco Forelli. +[SEG3_14] +~r~Te quedaste sin tiempo y fracasaste en demoler el edificio. -[SALS604:SALS6] -~r~El consejero ha regresado a Fort Staunton. +[SEG3_15] +~r~¡Tu Helicótero RC ha sido destruido! ¿Cómo vas a transportar las bombas ahora? -[SALS605:SALS6] -~r~¡Se ha escapado! +[AVERY] +MISIONES DE AVERY -[SALS606:SALS6] -¡~r~Se escapa ~w~a pie! +[ASM] +MISIONES DE ASESINO -[SALS607:SALS6] -~w~Se escapa en un ~r~coche robado~w~. +[ASM_1] +MISIÓN DE ASESINO 1 -[SALS608:SALS6] -~r~¡No puedes perseguirle sin una embarcación! +[ASM1_1] +~g~Sr. Teal, su ayuda en la eliminación de los forasteros fue inestimablemente buena para el negocio. Tengo más trabajo para usted y más próximo a la ''intervención''. Encontrará su siguiente trabajo pegado con cinta adhesiva bajo el teléfono. -[SALS6AA:SALS6] -Hola. +[ASM1_2] +~g~Ve a la cabina telefónica que hay frente al centro comercial de Washington. -[SALS6AC:SALS6] -Forelli-Sindacco feud. +[ASM1_3] +~g~Carl Pearson, un repartidor de pizza. No debe finalizar sus entregas. -[SALS6AD:SALS6] -Se dirige a ver a Franco Forelli justo ahora. +[ASM1_4] +~g~Elimina al repartidor de pizza antes de que complete sus entregas. -[SALS6AE:SALS6] -A nosotros nos iría muy bien que Franco no se enterara de nada, +[ASM_2] +MISIÓN DE ASESINO 2 -[SALS6AF:SALS6] -y que esta guerra continuara. +[ASM_3] +MISIÓN DE ASESINO 3 -[SALS6AG:SALS6] -Encárgate de ese charlatán. +[ASM3_1] +~g~Ve a coger el arma que el Sr. Black ha dejado para ti. -[SALS6AH:SALS6] -Dalo por hecho, Sal. +[ASM3_2] +~g~No te acerques demasiado al objetivo o podría verte. -[SALS6AB:SALS6] -Toni, un consejero ha descubierto que la Mafia siciliana está tras la guerra entre los Forelli y los Sindacco. +[ASM3_3] +~g~Para un trabajo más rápido, colócate en lugares cercanos a su ubicación y evita ser visto. Esto te proporcionará una buena posición para eliminarles. -[SLS6_20:SALS6] -~w~Está volviendo con Franco Forelli, ¡acaba con ~r~él~w~! +[ASM3_4] +~g~¡Te ha visto! ¡Mejor elimínale de cualquier modo que puedas! -[SLS6_21:SALS6] -~w~¡Acaba con ~r~él~w~! +[ASM3_5] +~g~Marcus Hammond está situado cerca de los anuncios de Washington. -{=================================== MISSION TABLE NEDS1 ===================================} +[ASM3_6] +~g~Franco Carter está situado en el DBP de Seguridad, cerca de Ocean Drive. -[NEDS1_1:NEDS1] -El FBI va de camino a recoger un informe manipulado que salpica a estrellas del deporte. +[ASM3_7] +~g~Dick Tanner está cerca de la joyería de Vice Point. -[NEDS1_2:NEDS1] -Si el informe llega a manos de los federales, encerrarán a gente inocente. +[ASM3_8] +~g~Nick Kong está colocado cerca de Washington Beach. -[NEDS1_3:NEDS1] -Quiero que lo interceptes y me lo entregues, yo lo esconderé. +[ASM3_9] +~g~El conductor está situado en Washington. -[NEDS1_4:NEDS1] -Necesitarás un vehículo del FBI. +[ASM3_10] +~r~Fallaste en matarles a todos. -[NEDS1_5:NEDS1] -Ha habido un atraco a mano armada frustrado. El FBI está en la escena del crimen. +[ASM_4] +MISIÓN DE ASESINO 4 -[NEDS1_6:NEDS1] -Róbales el coche y ve al lugar de reunión antes de que sea tarde. +[ASM4_1] +~g~Ve a por el rifle que te han dejado entre el follaje que hay en las cercanías de la terminal del aeropuerto. -[NEDS1_8:NEDS1] -Vuelve al ~b~coche del FBI~w~. +[ASM4_2] +~g~No falles tu blanco o podrías alertar a sus guardaespaldas, y recuerda mantener las distancias para que no te detecte. -[NEDS1_9:NEDS1] -Ve al ~y~lugar de reunión~w~. +[ASM4_3] +~g~Vigila a la mujer de la galería que hay sobre los mostradores de facturación, dentro de la terminal del aeropuerto. PERO NO LA MATES. -[NEDS111:NEDS1] -¡Líbrate de la poli! +[ASM4_4] +~g~Mata al hombre al que ella dé el maletín, pero sólo DESPUÉS DE QUE ÉSTE LO RECOJA. Entonces recupera el maletín y llévalo a Ammu-Nation en el centro de la ciudad. -[NEDS113:NEDS1] -Aquí tengo el informe que prometí... +[ASM4_5] +~g~¡Consigue el maletín! -[NEDS114:NEDS1] -¡Qué...! ¿Ya hay un agente aquí? +[ASM4_6] +~g~Lleva al maletín a Ammu-Nation en el centro de la ciudad. -[NEDS115:NEDS1] -¿Otro coche del FBI? ¡Espera! ¡Eres un impostor! +[ASM4_7] +~r~¡Estúpido, has matado a la mujer! -[NEDS116:NEDS1] -¡Detén al ~r~confidente~w~! +[ASM4_8] +~r~¡El blanco te oyó disparar el arma! ¡El trato queda anulado! -[NEDS117:NEDS1] -Recupera el ~g~informe~w~. +[ASM4_9] +~r~¡El blanco ha embarcado en su vuelo! -[NEDS118:NEDS1] -Entrega el informe en el ~y~Liberty Tree~w~. +[ASM4_11] +~r~¡El blanco te ha visto! ¡El trato queda anulado! -[NEDS119:NEDS1] -~r~El coche del FBI que necesitabas es historia. +[ASM4_13] +~g~Te ha visto y está huyendo, ¡atrápale y consigue el maletín! -[NEDS120:NEDS1] -~r~¡Has llegado demasiado tarde! ¡El confidente le ha dado el informe al FBI! +[ASM4_14] +~g~La barra de distancia en la parte superior derecha de la pantalla te proporciona una indicación de lo cerca que estás de tu blanco. No permitas que se llene o éste te verá. -[NEDS121:NEDS1] -Buen trabajo, Toni. Dios estará muy contento contigo. +[ASM_5] +MISIÓN DE ASESINO 5 -[NEDS122:NEDS1] -Me aseguraré de que quede en buenas manos. +[KICK] +ARRANQUE -[NEDS123:NEDS1] -"Taluego". +[KICK1_3] +~g~Número de veces que pusiste el pie: ~1~ -[NEDS124:NEDS1] -~r~¡El informe se ha estropeado! +[KICK1_4] +~g~Tiempo de penalización: ~1~ segundos -[NEDS1AA:NEDS1] -Perdóneme, padre, porque he pecado... +[BANK] +MISIONES DEL ATRACO AL BANCO -[NEDS1AB:NEDS1] -Mierda, el diablo se va a poner las botas contigo, Antonio. +[BANK1] +MISIÓN DE ATRACO AL BANCO 1 -[NEDS1AE:NEDS1] -Un pobre diablo me ha confesado que ha falsificado un informe de dopaje sobre los mejores atletas del país. +[BANK2] +MISIÓN DE ATRACO AL BANCO 2 -[NEDS1AF:NEDS1] -Si impides que se lo dé al FBI, salvarás la carrera de muchos inocentes. +[BJM2_21] +~g~Acierta a tantos blancos como puedas mientras te quede munición. -[NEDS1AG:NEDS1] -Considérelo hecho, padre. +[BANK3] +MISIÓN DE ATRACO AL BANCO 3 -[NEDS1BA:NEDS1] -Llegas pronto. +[BJM3_1] +~g~Consigue un coche rápido y ve a la parrilla de salida. -[NEDS1BB:NEDS1] -No te conozco, ¿dónde está John-O? +[BNK4_2A] +Los chicos hicieron un trabajo genial con este pequeño. -[NEDS1BC:NEDS1] -¿John-O? No ha podido venir. +[BNK4_3G] +¡Oh, mierda, ahora los polis andan tras nosotros! -[NEDS1BD:NEDS1] -Eh, ¡ahí está John-O! +[BNK4_3H] +Y ni siquiera hemos llegado. -[NEDS1BE:NEDS1] -¡Dame eso! +[BNK4_3K] +Primero tendremos que despistar a los polis... -[NEDS1BF:NEDS1] -¡Que te den! +[BNK4_3L] +Joder, Tommy, ¿intentas matarnos a todos? -[NEDS1AD:NEDS1] -Ah, la segunda opción va más con mi estilo... +[BNK4_3N] +¡Todo lo que me importa acaba destrozado! -[NEDS1AC:NEDS1] -Ahora puedes irte y rezar un rosario, o hacer el trabajo sucio del Señor. +[BNK4_26] +¡Maldición! ¡Aquí vienen! -[NEDS1_7:NEDS1] -Ve a la escena del crimen, roba un ~b~coche del FBI~w~ y llega al punto de reunión antes de las ~1~:~1~. +[BNK4_32] +¡Usa los explosivos para abrir las cajas de depósito! -[NEDS125:NEDS1] -Ve a la escena del crimen, roba un ~b~coche del FBI~w~ y llega al punto de reunión antes de las 0~1~:~1~. +[BNK4_36] +¿Dónde está Cam? -[NEDS126:NEDS1] -Ve a la escena del crimen, roba un ~b~coche del FBI~w~ y llega al punto de reunión antes de las 0~1~:0~1~. +[BNK4_37] +Es historia... -[NEDS127:NEDS1] -Ve a la escena del crimen, roba un ~b~coche del FBI~w~ y llega al punto de reunión antes de las ~1~:0~1~. +[BNK4_38] +Ése era el último. ¡Vamos! ¡Vamos! ¡Vamos! -{=================================== MISSION TABLE NEDS2 ===================================} +[BNK_39] +¡Mierda! ¿Dónde está Hilary? -[NEDS2_1:NEDS2] -NONE +[BK4_40A] +¡Ya le daré yo miedo al abandono! -[NEDS2AA:NEDS2] -Perdóneme, padre, porque he pecado... +[BNK4_42] +¡Eh, tíos! ¡Subid! ¡Yo os cubro! -[NEDS2AB:NEDS2] -Hostia puta, Toni, ¿qué has hecho ahora? +[BNK4_43] +¡Ya cubro yo nuestros culos, tú conduce! -[NEDS2AC:NEDS2] -¡Eh! Esa boca, padre... +[BNK4_44] +¡Lo conseguimos! ¡Somos ricos! ¡Ricos! -[NEDS2AD:NEDS2] -Ah sí, Ave María, llena eres de lo que sea... +[BNK4_45] +Es una pena que Cam no lo consiguiese, ¡era un buen tipo! -[NEDS2AE:NEDS2] -Un alma descarriada ha confesado ser un perista de diamantes. +[BNK4_46] +Sí. Pero aún así... ¡más tajada para nosotros! -[NEDS2AF:NEDS2] -Ayuda a esa oveja descarriada a redimirse, quítale el botín y devolveremos los diamantes... +[BNK4_47] +¡Claro que sí! ¡Sí! -[NB2_2:NEDS2] -Coge el ~g~maletín~w~ y mata a todos los miembros de la banda. +[BNK4_48] +Tommy, ¿te gustaría un masaje? -[NB2_3:NEDS2] -Lleva el maletín a las ~y~oficinas del Liberty Tree~w~. +[BNK4_49] +¡Hola, Mercedes! Sí, estoy un poco tenso... -[NB2_4:NEDS2] -¡Hazte con el ~g~maletín~w~! +[BNK450A] +¿Qué te dije, Tommy? ¿Qué te dije? Maldito SWAT, será mejor que tengas cuidado cuando Kent Paul esté en la ciudad. -[NB2_1:NEDS2] -¡Esto es una encerrona! +[BNK450B] +Vamos, dame una tajada más grande, colega, venga. Tengo que comprarme ropa nueva. -[NB2_6:NEDS2] -¡Mata a todos los ~r~guardias~w~! +[BNK4_51] +Yo creo que tienes buen aspecto. -[NB2_7:NEDS2] -¡Destruye el ~r~helicóptero~w~! +[KENT] +MISIONES DE KENT PAUL -[NB2_5:NEDS2] -Acaba con el ~r~helicóptero~w~ y los ~r~guardias~w~ y coge el ~g~maletín~w~. +[KENT1] +MISIÓN DE KENT PAUL 1 -{=================================== MISSION TABLE NEDS3 ===================================} +[COUNT] +MISIONES DE FALSIFICACIÓN -[NEDS3AA:NEDS3] -Perdóneme, padre, porque he pecado... +[COUNT1] +MISIÓN DE FALSIFICACIÓN 1 -[NEDS3AB:NEDS3] -Toni, comparado con los degenerados que hay en esta ciudad, eres un santo. +[COUNT2] +MISIÓN DE FALSIFICACIÓN 2 -[NEDS3AC:NEDS3] -Sus coches sueltan el nocivo gas del diablo en los pulmones de nuestros hijos. ¡Están profanando el Edén! +[BIKE] +LAS MISIONES DE LA PANDILLA DE MOTEROS -[NEDS3AD:NEDS3] -Demuéstrales a esos pecadores lo equivocados que están. +[BIKE1] +MISIÓN DE MOTORISTA 1 -[NEDS3_1:NEDS3] -Coge el coche de bomberos y causa tantos choques en cadena, accidentes y actos de destrucción como puedas. +[BIKE2] +MISIÓN DE MOTORISTA 2 -[NEDS3_2:NEDS3] -~w~Roba el ~b~coche de bomberos~w~. +[BIKE3] +MISIÓN DE MOTORISTA 3 -[NEDS3_3:NEDS3] -~w~Tienes ~1~ s. para volver al ~b~coche de bomberos~w~. +[GOAWAY1] +Vuelve cuando hayas terminado con las misiones de la banda haitiana. -[NEDS3_4:NEDS3] -Puntuación +[HAIT] +LAS MISIONES DE LA BANDA HAITIANA -[NEDS3_5:NEDS3] -¡Ve a provocar tantos choques en cadena, accidentes y actos de destrucción como puedas! +[HAIT1] +MISIÓN HAITIANA 1 -[NEDS3_6:NEDS3] -¡Peatón chafado! +[HAIT2] +MISIÓN HAITIANA 2 -[NEDS3_7:NEDS3] -¡Vehículo hundido! +[HAIT3] +MISIÓN HAITIANA 3 -[NEDS3_8:NEDS3] -¡Vehículo destruido! +[HAM3_6] +~g~Utiliza el rifle de francotirador que te he dejado para cumplir tu tarea. -[NEDS3_9:NEDS3] -¡Vehículo volcado! +[ROCK] +LAS MISIONES DE LA BANDA DE ROCK -[NEDS310:NEDS3] -~r~El coche de bomberos está destrozado. +[ROK1_4] +~g~De acuerdo, creo que esto es lo que andabais buscando... -[NEDS311:NEDS3] -¡Trompo de 360°! +[ROK1_1E] +~g~¡Costará más de lo que tienes! -[NEDS312:NEDS3] -¡Trompo de 720°! +[ROK1_1F] +~g~Vuelve cuando tengas el dinero. -[NEDS313:NEDS3] -¡Trompo de 1080°! +[RBM2_6] +~g~¡Guau! ¡Ella es un tío, detenle! -[NEDS314:NEDS3] -~r~Has bajado del coche de bomberos. +[ROCK3] +MISIONES DE LA BANDA DE ROCK 3 -[NEDS315:NEDS3] -¡Vueltas de campana! +[RBM3_5] +~g~Lleva a los Love Fist al escenario. -[NEDS316:NEDS3] -¡Tres choques de una tacada! +[CUBANM] +LAS MISIONES DE LA BANDA CUBANA -[NEDS317:NEDS3] -¡Cuatro choques de una tacada! +[CUBAN1] +MISIÓN CUBANA 1 -[NEDS318:NEDS3] -¡Cinco choques de una tacada! +[CUBAN2] +MISIÓN CUBANA 2 -[NEDS319:NEDS3] -¡Bonif. por choque en cadena masivo! +[CUB2_10] +~r~¡Se supone que debes matar a haitianos, no a cubanos! -[NEDS320:NEDS3] -~r~¡No has conseguido suficientes puntos a tiempo! +[CUBAN3] +MISIÓN CUBANA 3 -[NEDS321:NEDS3] -¡Bonif. por desmontar! +[CUBAN4] +MISIÓN CUBANA 4 -[NEDS322:NEDS3] -¡Bonif. por desmontar y chafar! +[PROT] +MISIONES DE PROTECCIÓN -[NEDS323:NEDS3] -¡Bonif. por salto de altura! +[PORN] +MISIONES PORNO -[NEDS324:NEDS3] -¡Bonif. por salto de altura masivo! +[PORN1] +MISIÓN PORNO 1 -[NEDS325:NEDS3] -~w~Tienes menos de 1 s. para volver al ~b~coche de bomberos~w~. +[POR1_03] +~r~¡Candy está muerta! -[NEDS326:NEDS3] -¡Felicidades! Lo has conseguido con ~1~ s. de sobra. +[PORN2] +MISIÓN PORNO 2 -[NEDS327:NEDS3] -~w~Ahora destruye el ~r~coche de bomberos~w~. No dejes pruebas. +[PORN3] +MISIÓN PORNO 3 -[NEDS328:NEDS3] -Puntúa más cada choque espectacular, o cada vehículo que vuelque, dé vueltas de campana o quede destruido. +[PORN4] +MISIÓN PORNO 4 -[NEDS329:NEDS3] -Vehículo volcado x ~1~ +[PHIL] +MISIONES DE PHIL -[NEDS330:NEDS3] -Vueltas de campana x ~1~ +[PHIL1] +MISIÓN DE PHIL 1 -[NEDS332:NEDS3] -~w~Tienes 1 s. para volver al ~b~coche de bomberos~w~. +[PHIL2] +MISIÓN DE PHIL 2 -[NEDS333:NEDS3] -¡Felicidades! NUEVO MEJOR TIEMPO con ~1~ s. de sobra. +[PIZ1_A] +MISIÓN DEL REPARTIDOR DE PIZZAS -[NEDS334:NEDS3] -~w~Ahora destruye el coche de bomberos. No dejes pruebas. +[CNTBUY1] +Compra de la imprenta: ~1~ $ -[NEDS335:NEDS3] -¡Trompo de 180°! +[CARBUY] +Compra del salón de coches: ~1~ $ -[NEDS337:NEDS3] -Coge el coche de bomberos y causa choques en cadena, accidentes y destrucción antes de las ~1~:~1~. +[PORNBUY] +Compra del estudio cinematográfico: ~1~ $ -[NEDS338:NEDS3] -Coge el coche de bomberos y causa choques en cadena, accidentes y destrucción antes de las ~1~:0~1~. +[ICEBUY] +Compra de la fábrica de helados: ~1~ $ -[NEDS339:NEDS3] -Coge el coche de bomberos y causa choques en cadena, accidentes y destrucción antes de las 0~1~:~1~. +[TAXIBUY] +Compra de la empresa de taxis: ~1~ $ -[NEDS340:NEDS3] -Coge el coche de bomberos y causa choques en cadena, accidentes y destrucción antes de las 0~1~:0~1~. +[BANKBUY] +Compra del Malibú: ~1~ $ -[NEDS341:NEDS3] -Causa tantos choques en cadena, accidentes y actos de destrucción antes de las ~1~:~1~. +[BOATBUY] +Compra del astillero: ~1~ $ -[NEDS342:NEDS3] -Causa tantos choques en cadena, accidentes y actos de destrucción antes de las ~1~:0~1~. +[PRNT_NO] +No puedes comprar la imprenta en este momento, vuelve más tarde. -[NEDS343:NEDS3] -Causa tantos choques en cadena, accidentes y actos de destrucción como puedas antes de las 0~1~:~1~. +[CAR_NO] +No puedes comprar el salón de coches en este momento, vuelve más tarde. -[NEDS344:NEDS3] -Causa tantos choques en cadena, accidentes y actos de destrucción como puedas antes de las 0~1~:0~1~. +[PORN_NO] +No puedes comprar el estudio cinematográfico en este momento, vuelve más tarde. -[NEDS331:NEDS3] -¡Causa tantos choques en cadena, accidentes y actos de destrucción como puedas! +[ICE_NO] +No puedes comprar la fábrica de helados en este momento, vuelve más tarde. -{=================================== MISSION TABLE NEDS4 ===================================} +[TAXI_NO] +No puedes comprar la compañía de taxis en este momento, vuelve más tarde. -[NEDS4_1:NEDS4] -NONE +[BANK_NO] +No puedes comprar el Malibú en este momento, vuelve más tarde. -[NEDS4_2:NEDS4] -~w~Tres estrellas se dirigen a la radio del centro para una entrevista antes del estreno de esta noche. +[BOAT_NO] +No puedes comprar el astillero en este momento, vuelve más tarde. -[NEDS4_3:NEDS4] -~w~La actriz, Faith W, vuela desde el aeropuerto Francis en un helicóptero privado. +[COL2_6] +¡Alto, cerdo imperialista americano! -[NEDS4_4:NEDS4] -~w~DB-P, el gánster convertido en actor, viene en barco desde Portland. +[COL2_6B] +Eso es propiedad del gobierno francés. -[NEDS4_5:NEDS4] -~w~Black Lightman, un actor alcohólico y envejecido, saldrá de rehabilitación e irá en una limusina. +[COL2_6C] +¡y se acabó! -[NEDS4_8:NEDS4] -~w~Faith ha caído. +[COL3_A] +Thomas, aprecio que vinieses. -[NEDS4_9:NEDS4] -~w~DB-P ha caído. +[COL3_B] +Perdóname por ir directamente al asunto. -[NEDS410:NEDS4] -~w~Black Lightman ha caído. +[COL3_C] +Diaz me ha pedido que supervise una transacción de un negocio menor. -[NEDS411:NEDS4] -~w~Todas las estrellas han sido eliminadas. Vuelve a la ~y~iglesia~w~ y díselo al padre. +[COL3_D] +Esperemos que vaya mejor que la última vez. -[NEDS412:NEDS4] -~r~¡Faith ha llegado a la emisora! +[COL3_E] +Por eso es por lo que pensé en ti, amigo mío. -[NEDS413:NEDS4] -~r~¡DB-P ha llegado a la emisora! +[COL3_F] +He dejado algo de protección en el aparcamiento. -[NEDS414:NEDS4] -~r~¡Black Lightman ha llegado a la emisora! +[COL3_G] +Recógele y luego id a ver a los hombres de Diaz en el punto de entrega. -[NEDS415:NEDS4] -~w~Se subirá a un Patriot blindado. +[COL4_2] +¡No lo sé, señor! -[NEDS417:NEDS4] -~w~El Patriot está blindado. +[COL4_5] +¡Señor, sí, señor! -[NEDS418:NEDS4] -~w~Cuidado con el tirador. +[COL4_10] +Vamos a comer unos donuts. -[NEDS421:NEDS4] -~w~La armería Phil Cassidy's tiene el icono de una bandera en el radar. +[COL4_16] +¡Señor! ¡Moviendo el vehículo, señor! -[NEDS4AA:NEDS4] -Perdóneme, padre, porque he vuelto a pecar... +[COL4_25] +¡Iniciada autodestrucción del vehículo! -[NEDS4AB:NEDS4] -Y una vez más serás redimido, hijo mío. +[COL5_6] +Mercedes, esa chica me matará. -[NEDS4AC:NEDS4] -¡El culto a la celebridad ha llegado demasiado lejos! +[COL5_8] +¡Maldita cucaracha! -[NEDS4AD:NEDS4] -¿Qué clase de zorra le da una exclusiva a una emisora de radio en vez de al diligente periodista de un diario? +[COL5_5] +¡Morid, cerdos franceses! -[NEDS4AF:NEDS4] -¡Destruye a esos falsos ídolos! +[CNT2_1] +Matadle. -[NEDS4BA:NEDS4] -He hecho lo que me pidió, padre. +[CNT2_2] +¡Conseguid las planchas! -[NEDS4BB:NEDS4] -¡Estupendo! El diario ha triplicado su tirada desde que encontraste el camino. +[CNT2_3] +¡Proteged al mensajero! -[NEDS4BC:NEDS4] -¿Qué? +[FINKILL] +¡De acuerdo, chicos, matadle! -[NEDS4BD:NEDS4] -¡Gracias de nuevo por toda tu ayuda, Toni! +[FIN_1A] +¡Ven aquí, traidor, pedazo de mierda! -[NEDS4BE:NEDS4] -Eh, ¿qué carajo? +[FIN_1B] +¡Vas a caer, mamón traicionero! -[NEDS4BF:NEDS4] -¿QUIÉN ERES? +[FIN_1C] +¡Éste es el último baile para Lance Vance! -[NEDS422:NEDS4] -Consigue un lanzacohetes en la armería Phil Cassidy's Fully Cocked. +[FIN_2B] +¡Oh, eso crees tú! -[NEDS4_7:NEDS4] -~w~No dejes que ninguna ~r~estrella~w~ llegue a la emisora LCFR. +[FIN_2C] +¡Ya tuve suficiente de eso en la escuela! -[NEDS416:NEDS4] -~w~No dejes que ninguna ~r~estrella~w~ llegue a la emisora LCFR. +[FIN_3] +Ahora no hay nadie para cubrirte el trasero, ¿eh, Tommy? -[NEDS419:NEDS4] -~w~Encontrarás armamento pesado en la armería Phil Cassidy's Fully Cocked. +[FIN_4] +Eres historia, Tommy, historia. -[NEDS420:NEDS4] -~w~El padre Ned ha pagado un lanzacohetes. Recógelo en la armería Phil Cassidy's Fully Cocked. +[FIN_5] +Escogiste el lado equivocado, Lance... -[NEDS4_6:NEDS4] -~w~Si necesitas armas pesadas, ve a la armería Phil Cassidy's Fully Cocked. +[FIN_6] +Sonny está arriba con la caja fuerte y mi dinero... -{=================================== MISSION TABLE DONS1 ===================================} +[FIN_10] +¿Sonny? ¡Sonny! ¡Voy por ti! -[MORG_01:DONS1] -2-2-3, 3-2-3, 4-2-3, 5-2-3... +[FIN_11A] +Me arrebataste quince años, Sonny... -[MORG_02:DONS1] -¡Antonio! ¡Cómo me alegro de verte! +[FIN_11B] +¡Y ahora voy a hacértelo pagar! -[MORG_03:DONS1] -¿Qué está pasando? +[FIN_12A] +Todavía no lo captas, ¿verdad? -[MORG_04:DONS1] -Estamos dando una fiesta, chico, una fiesta. +[FIN_12B] +Eres de mi propiedad, Tommy. -[MORG_05:DONS1] -¡Sí, una fiesta de fiambres! +[FIN_12C] +¡Esos quince años eran míos para gastarlos! -[MORG_08:DONS1] -¿Una fiesta de fiambres? ¿De qué cojones hablas? +[FIN_13] +Atrapadle chicos, nunca comprendió nada. -[MORG_09:DONS1] -Vamos a tener una nochecita de las buenas. +[RACES_4] +3 -[MORG_10:DONS1] -Pero primero tenemos que ir a recoger a los invitados... +[RACES_5] +2 -[MORG_11:DONS1] -Venga, antes de que se mueran de aburrimiento. +[RACES_6] +1 -[MORG_12:DONS1] -Y no lo decía con segundas... +[RACES_7] +¡ADELANTE! -[MORG_13:DONS1] -Porque ya están muertos, ¿sabes...? +[RACES_9] +Tiempo: ~1~:~1~ -[MORG_14:DONS1] -El invitado de honor va camino del instituto forense. +[RACES] +TIEMPO: -[MORG_15:DONS1] -No le hagamos esperar. +[RACES17] +Nuevo mejor tiempo: ~1~:~1~ -[MORG_06:DONS1] -- ¡La primera de la temporada! ~n~ - Epa, epa, epa, epa... +[RACES18] +HAS GANADO: ~1~ $ -[DONS1_1:DONS1] -Nada +[RACES20] +Nuevo mejor tiempo: ~1~:0~1~ -[DL1_A:DONS1] -Voy a dar una fiesta de fiambres y quiero que recojas a los "invitados". +[RACES21] +Tiempo: ~1~:0~1~ -[DL1_2:DONS1] -~r~Has destruido el coche. -[DL1_3:DONS1] -La poli ha sido alertada, ¡quítate el nivel de búsqueda! +[RCH1_2] +~g~Los CONTROLES están esparcidos a lo largo del aeropuerto. -[DL1_4:DONS1] -Lleva el coche al ~y~garaje~w~ de Donald. +[RCH1_5] +Tiempo: -[DL1_6:DONS1] -~r~El coche fúnebre ha llegado a la comisaría. +[RCRC1_2] +~g~¡Ve a la parrilla de salida! -[DL1_9:DONS1] -Mete el coche en el taller de pintura. +[RCRC1_4] +~g~3 -[DL1_5:DONS1] -Roba el ~b~coche fúnebre~w~ antes de que llegue a su destino. +[RCRC1_5] +~g~2 -{=================================== MISSION TABLE DONS2 ===================================} +[RCRC1_6] +~g~1 -[DONS2AA:DONS2] -¿D.L.? +[RCRC1_7] +~g~¡ADELANTE! -[DONS2AB:DONS2] -¡Toni! +[RCRC1_8] +~g~Tiempo de carrera: ~1~ segundos -[DONS2AC:DONS2] -¿Cómo va la campaña? +[RCPL1_1] +~g~Compite en una CARRERA DE PUNTOS DE CONTROL con otros tres Barón RC. -[DONS2AD:DONS2] -Pende de un hilo. ¡Hasta el último voto va a contar! +[RCPL1_2] +~g~Debes atravesar la ~o~CORONA DEL CENTRO ~g~para pasar con éxito un punto de control. -[DONS2AE:DONS2] -Los militantes de O'Donovan trabajan duro en las zonas de voto indeciso. +[RCPL1_3] +~g~¡Ve ahora a la parrilla de salida! -[DONS2AF:DONS2] -Bueno, tenemos nuestro vehículo de megafonía, ¡hagamos contracampaña! - -[DONS2BA:DONS2] -¡Vota a O'Donovan para alcalde! - -[DONS2BB:DONS2] -¡Vota a O'Donovan para acabar con la corrupción! - -[DONS2BC:DONS2] -¡Dale tu confianza a O'Donovan para alcalde! - -[DONS2BD:DONS2] -¡Basta de delincuencia! ¡Vota a O'Donovan! - -[DONS2BE:DONS2] -¡Vota a la justicia! ¡Vota a O'Donovan! - -[DONS2CA:DONS2] -¡O'Donovan tiene tres concubinas! - -[DONS2CB:DONS2] -¿Quién se comió todas las galletitas? ¡O'Donovan! - -[DONS2CC:DONS2] -¡O'Donovan es un yonqui! - -[DONS2CD:DONS2] -¡O'Donovan es un sodomita compulsivo! - -[DONS2CE:DONS2] -¡O'Donovan es comunista! - -[DONS2CF:DONS2] -¡O'Donovan se pone la ropa interior de su hija! - -[DONS2CG:DONS2] -¡A O'Donovan se la ponen dura los gorrinos! - -[DONS2CH:DONS2] -¡O'Donovan odia a América! - -[DONS2CI:DONS2] -¡Love no gravará a los ricos! - -[DONS2CJ:DONS2] -¡Vota a Love para tener clases de medicina forense en el cole! - -[DONS2CK:DONS2] -¡Donald Love cree en el acceso a la morgue para todos! - -[DONS2CL:DONS2] -¡Donald Love es un héroe de guerra! - -[DONS2CM:DONS2] -¡Votar por Love es votar por la felicidad! - -[DONS2CN:DONS2] -Donald Love, ¡duro con los vegetarianos! - -[DONS2_1:DONS2] -~w~Sube a la ~b~camioneta~w~. - -[DONS2_3:DONS2] -~w~¡O'Donovan ha sacado sus ~r~camionetas~w~ para recuperar votos! - -[DONS2_4:DONS2] -~r~¡No has conseguido votos suficientes! - -[DONS2_6:DONS2] -~w~Tiempo restante - -[DONS2_7:DONS2] -~w~Vuelve a la ~b~camioneta~w~ y prosigue la misión. - -[DONS2_9:DONS2] -~w~¡O'Donovan ha sacado otra ~r~camioneta~w~! - -[DONS210:DONS2] -~w~Zonas - -[DONS211:DONS2] -~r~¡Has perdido todas las zonas de voto! - -[DONS212:DONS2] -~r~¡No has conseguido acabar con la oposición! - -[DONS2_2:DONS2] -~w~Pasa por los ~y~puntos de control de las zonas de voto indeciso~w~ para conseguir su apoyo. - -[DONS215:DONS2] -~w~¡O'Donovan te ha arrebatado una ~y~zona~w~! - -[DONS216:DONS2] -~w~¡No dejes que O'Donovan recupere todas las ~y~zonas~w~! - -[DONS213:DONS2] -~w~Ya tienes zonas suficientes, ahora acaba con las ~r~camionetas de la oposición~w~ para impedir que O'Donovan consiga más. - -[DONS2_8:DONS2] -~w~Consigue al menos cinco ~y~zonas de voto~w~. - -[DONS214:DONS2] -~w~Tienes menos de cinco ~y~zonas~w~, ¡recupéralas! - -[DONS217:DONS2] -~w~Hazte con más zonas para que aumente la gratificación por terminar. - -[DONS2_5:DONS2] -~r~La camioneta electoral ha sido destruida. - -[DONS218:DONS2] -~w~Consigue al menos 5 ~y~zonas de voto~w~ antes de las ~1~:~1~. - -[DONS219:DONS2] -~w~Consigue al menos 5 ~y~zonas de voto~w~ antes de las 0~1~:~1~. - -[DONS220:DONS2] -~w~Consigue al menos 5 ~y~zonas de voto~w~ antes de las 0~1~:0~1~. - -[DONS221:DONS2] -~w~Consigue al menos 5 ~y~zonas de voto~w~ antes de las ~1~:0~1~. - -[DONS230:DONS2] -~w~Ya tienes zonas suficientes, ahora acaba con la ~r~camioneta de la oposición~w~ para impedir que O'Donovan consiga más. - -{=================================== MISSION TABLE DONS3 ===================================} - -[CAMP_01:DONS3] -¡Antonio! '¿Qué pasa, amigo?' - -[CAMP_02:DONS3] -Sabes muy bien que soy italiano, Don, no español. - -[CAMP_03:DONS3] -Claro, qué despiste el mío. Es que me encantan todas las lenguas romances. - -[CAMP_04:DONS3] -Dios mío, qué bueno está. - -[CAMP_05:DONS3] -Sabe como el pollo, pero es como algo más... eeh... inteligente. - -[CAMP_06:DONS3] -¿Quieres un poco? - -[CAMP_07:DONS3] -Ya he comido, gracias. - -[CAMP_08:DONS3] -Muy mal. Está de muerte. - -[CAMP_09:DONS3] -Y están a punto de servirme más exquisiteces... - -[CAMP_10:DONS3] -Los liberales disfrutarán de lo suyo, por supuesto, - -[CAMP_11:DONS3] -¡pero qué poco saben de los verdaderos placeres de la vida! - -[CAMP_12:DONS3] -La sofisticación y la democracia nunca han sido buenos compañeros de cama. - -[CAMP_13:DONS3] -Escucha, Don, tenemos que ganar estas elecciones. - -[CAMP_14:DONS3] -Vale, tenemos que asegurarnos de que no haya huesos que desenterrar, - -[CAMP_15:DONS3] -si sabes a lo que me refiero... - -[CAMP_16:DONS3] -Claro. - -[CAMP_17:DONS3] -Lo que quiero decir es... - -[CAMP_18:DONS3] -¿cómo podemos ocuparnos de ese O'Donovan que encubre... - -[CAMP_19:DONS3] -digo... representa a los Forelli? - -[CAMP_20:DONS3] -El tío tiene un montón de gente que le hace campaña, - -[CAMP_21:DONS3] -toda clase de gente 'ilusa', no sé si me explico. - -[CAMP_22:DONS3] -Creo que debemos socavar la fe que tienen en la democracia, no sé si me entiendes. - -[CAMP_23:DONS3] -¿Quieres decir que tengo que espabilarlos a hostias? - -[CAMP_24:DONS3] -Ah, esa pasión tuya, Antonio, es... es... magnífica. - -[CAMP_25:DONS3] -Es tan... um... um...um... ¡wagneriana! ¿Sabes? Arriverdici, 'amigo'. - -[CAMP_26:DONS3] -Humphries, ¡traiga las asaduras! - -[DONS3_1:DONS3] -Toni debe librarse de los militantes de la oposición, debilitando así la eficacia de la campaña electoral de O'Donovan, candidato de los Forelli. - -[DONS3_2:DONS3] -~w~Mata a los ~r~militantes~w~ de la oposición. - -[DONS3_3:DONS3] -~r~Se te ha acabado el tiempo. - -[DONS3_4:DONS3] -Ya has terminado con estos ~r~militantes~w~. Ocúpate de los siguientes. - -[DONS3_5:DONS3] -~w~Mata a los ~r~militantes~w~ de la oposición antes de las ~1~:~1~. - -[DONS3_6:DONS3] -~w~Mata a los ~r~militantes~w~ de la oposición antes de las ~1~:0~1~. - -[DONS3_7:DONS3] -~w~Mata a los ~r~militantes~w~ de la oposición antes de las 0~1~:~1~. - -[DONS3_8:DONS3] -~w~Mata a los ~r~militantes~w~ de la oposición antes de las 0~1~:0~1~. - -{=================================== MISSION TABLE DONS4 ===================================} - -[DONS410:DONS4] -Ve al ~y~almacén de los Forelli~w~ y quema sus papeletas. - -[DONS411:DONS4] -Quema las ~r~papeletas~w~ y destroza las ~r~imprentas~w~. - -[DONS412:DONS4] -Destroza la ~r~imprenta~w~. - -[DONS413:DONS4] -Quema TODAS las ~r~papeletas~w~. - -[DONS414:DONS4] -Destruye las ~r~camionetas de los Forelli~w~ restantes. - -[DONS416:DONS4] -~r~¡Has perdido una camioneta de los Forelli! ¡Amañarán las elecciones! - -[DONS418:DONS4] -Quedan ~r~~1~ palés~w~ de votos falsos. - -[DONS419:DONS4] -Solo queda ~r~1 palé~w~ de votos falsos. - -[DONS420:DONS4] -Destruye la ~r~camioneta de los Forelli~w~ restante. - -[DONS421:DONS4] -¡Ya has destruido una! Ahora destroza la otra ~r~imprenta~w~. - -[DONS422:DONS4] -¡Imprenta destrozada! - -[DONS423:DONS4] -¡Ahora sal de aquí! - -[DONS424:DONS4] -¡Destroza las ~r~imprentas~w~! - -[DS4_AA:DONS4] -Tanta gente. Tanto dinero esperando a que le echen mano. - -[DS4_AB:DONS4] -No pretendo entender de política. - -[DS4_AC:DONS4] -Nadie la entiende. Todo es charlatanería y corrupción. - -[DS4_AD:DONS4] -Los Forelli tienen en secreto una participación en la compañía que hace las máquinas de votar. - -[DS4_AE:DONS4] -Eso es malo, ¿no? - -[DS4_AF:DONS4] -Está claro que no podemos fiarnos de ellos. - -[DS4_AG:DONS4] -No, es mejor que se estropeen, y así "menuda papeleta". Tú ya me entiendes. - -[DONS4H1:DONS4] -Encontrarás armamento pesado en la armería Phil Cassidy's Fully Cocked. - -[DONS4AA:DONS4] -¡Antonio, me alegro de verte! - -[DONS4AB:DONS4] -No soy un demócrata, pero lo de amañar las votaciones no va conmigo. - -[DONS4AC:DONS4] -¿Sabías que los Forelli participan en secreto en la compañía que hace las máquinas de votar? - -[DONS4AD:DONS4] -Eso es malo, ¿no? - -[DONS4AE:DONS4] -Está claro que no podemos fiarnos de ellos. - -[DONS4AF:DONS4] -No, es mejor que se estropeen, y así 'menuda papeleta'. Tú ya me entiendes. - -[DONS4_8:DONS4] -Ve a la armería Phil Cassidy's Fully Cocked. - -[DONS4H2:DONS4] -La armería Phil Cassidy's Fully Cocked tiene el icono de una bandera en el radar. - -[DONS427:DONS4] -¡Ahora sal de Fort Staunton! - -[DONS4_9:DONS4] -La armería Phil Cassidy's Fully Cocked te proporcionará equipo para malograr la campaña de los Forelli. - -[DONS417:DONS4] -Hay otro lanzallamas en la armería Phil Cassidy's Fully Cocked. - -[DONS425:DONS4] -Recoge el lanzallamas en la armería Phil Cassidy's Fully Cocked. - -[DONS426:DONS4] -~r~¡El dependiente es historia! - -[DONS4H3:DONS4] -Donald Love ha pagado un lanzallamas. Ve al mostrador a recogerlo. - -{=================================== MISSION TABLE DONS5 ===================================} - -[DONS5_7:DONS5] -Protege la limusina de Donald. - -[DONS5_9:DONS5] -~r~¡Donald Love es historia! - -[DONS513:DONS5] -Daño en limusina - -[DONS516:DONS5] -Sube a la ~b~limusina~w~. - -[DONS517:DONS5] -¡Te has dejado a ~b~Donald Love~w~! - -[DONS519:DONS5] -¡Lleva a Donald al ~y~piso franco~w~! - -[DONS520:DONS5] -¡Mata a los ~r~atacantes~w~! - -[DONS521:DONS5] -Sube a la ~b~limusina~w~. - -[DS5_AA:DONS5] -Cómo odio la publicidad, pero forma parte del juego, ¿no? - -[DS5_AB:DONS5] -Eso me temo. - -[DS5_AC:DONS5] -Los Forelli van a intentar matarme, ¿no? - -[DS5_AD:DONS5] -No te preocupes, yo iré de copiloto. - -[DS5_AE:DONS5] -Oh, muy bien. De perdidos al río... - -[DS5_BA:DONS5] -¡Mierda! ¡Esto es ridículo! - -[DS5_BB:DONS5] -No te asustes, ¡yo me encargo de esos capullos! - -[DS5_BC:DONS5] -¡Hay un rifle en el maletero! - -[DS5_BD:DONS5] -¡Cierra las puertas, esto será rápido! - -[DS5_CA:DONS5] -Vale, podemos irnos. - -[DS5_CB:DONS5] -¡Tenemos otro sicario en los talones! - -[DS5_DA:DONS5] -No puedo ganar unas elecciones si estoy encerrado todo el día. - -[DS5_DB:DONS5] -Tendremos que pensar en una táctica diferente. - -[DONS522:DONS5] -~w~¡Lleva a Donald de vuelta a su ~y~edificio~w~! - -{=================================== MISSION TABLE DONS6 ===================================} - -[DONS6_1:DONS6] -NONE - -[DS6_00:DONS6] -Sigue a la ~b~camioneta electoral~w~. - -[DS6_01:DONS6] -Espera a que el ~b~mensajero~w~ haga el cambio. - -[DS6_02:DONS6] -Róbale los votos al ~r~mensajero~w~. - -[DS6_03:DONS6] -Mata al ~r~mensajero~w~. - -[DS6_04:DONS6] -Coge el ~g~paquete~w~. - -[DS6_05:DONS6] -Sigue a la ~b~camioneta electoral~w~ otra vez. - -[DS6_06:DONS6] -~r~¡Has matado al mensajero antes del cambio! - -[DS6_07:DONS6] -¡Has fallado uno de los intercambios, no puedes fallar otro! - -[DS6_08:DONS6] -~r~¡Has fallado los dos cambios, no se puede amañar el voto! - -[DS6_09:DONS6] -~r~¡Le has espantado! - -[DS6_10:DONS6] -~r~¡La camioneta ha sido destruida! - -[DS6_11:DONS6] -¡Se te ha acabado el tiempo! - -[DS6_12:DONS6] -~r~¡No has alcanzado a la camioneta! - -[DS6_13:DONS6] -~r~¡La camioneta no puede ir sin conductor! - -[DS6_15:DONS6] -~r~¡Has espantado al conductor, ahora nunca lo atraparás! - -[DS6_16:DONS6] -~1~ - -[DS6_17:DONS6] -~w~El conductor perseguido ha muerto, lleva la camioneta al ~y~garaje de Donald~w~. - -[DONS6AA:DONS6] -¡Malas noticias, Toni! - -[DONS6AB:DONS6] -¿Qué? - -[DONS6AC:DONS6] -Los sondeos están muy ajustados. - -[DONS6AD:DONS6] -Es hora del plan B. - -[DONS6AE:DONS6] -Robaremos algunos votos aún por contabilizar y los cambiaremos por unos nuestros. - -[DONS6AF:DONS6] -¿Y eso que decías de no amañar las votaciones? - -[DONS6AG:DONS6] -¡Venga, cierra la boca! - -[DS6_14:DONS6] -¡Vuelve a por los ~g~votos~w~, no puedes dejarlos atrás! - -[DS6_66:DONS6] -~r~¡Has destruido el coche del mensajero antes del cambio! - -[DS6_18:DONS6] -¡Has matado al mensajero antes del cambio! ¡No mates a más! - -[DS6_21:DONS6] -¡Rápido! ¡Se está produciendo un cambio! - -[DS6_22:DONS6] -No has llegado al primer cambio, ¡no vuelvas a fallar! - -[DS6_23:DONS6] -No has llegado al segundo cambio, ¡no vuelvas a fallar! - -[DS6_24:DONS6] -No has llegado al tercer cambio, ¡no vuelvas a fallar! - -[DS6_25:DONS6] -No has llegado al cuarto cambio, ¡no vuelvas a fallar! - -[DS6_26:DONS6] -Has asustado al mensajero antes del cambio. ¡Que no vuelva a pasar! - -[DS6_28:DONS6] -~r~¡La has cagado! ¡Ya no se puede amañar la votación! - -{=================================== MISSION TABLE DONS7 ===================================} - -[ELEC_01:DONS7] -Hola, Don. Ya te he sacado del lío. - -[ELEC_02:DONS7] -Ahora todo irá sobre ruedas. - -[ELEC_03:DONS7] -¿Seguro? - -[ELEC_04:DONS7] -Ya no tienes vínculos con el crimen organizado. - -[ELEC_05:DONS7] -Estás más limpio que el culo de un bebé. Más que el Papa. - -[ELEC_07:DONS7] -Aunque no se ha podido relacionar a Donald Love... - -[ELEC_08:DONS7] -con el crimen organizado de Liberty City, - -[ELEC_09:DONS7] -parece que su amistad con mafiosos, incluyendo a Toni Cipriani, - -[ELEC_11:DONS7] -ha influido muy negativamente en los votantes. - -[ELEC_12:DONS7] -En las últimas horas su popularidad ha caído en picado. - -[ELEC_13:DONS7] -Se le considera indigno de un cargo público... - -[ELEC_14:DONS7] -¡Indigno! Por tu culpa... - -[ELEC_15:DONS7] -Sí. Todo por tu culpa. - -[ELEC_16:DONS7] -¿Mi culpa? - -[ELEC_17:DONS7] -Oh, sí. - -[ELEC_18:DONS7] -¿Mi culpa? - -[ELEC_19:DONS7] -Con los sacrificios que he hecho por esta ciudad, - -[ELEC_20:DONS7] -¿y sabes cuál ha sido mi punto débil todo este tiempo...? - -[ELEC_21:DONS7] -¡La humildad! Y ahora estoy arruinado. - -[ELEC_22:DONS7] -¡En BANCARROTA! 20 millones a hacer puñetas. - -[ELEC_23:DONS7] -Acabado... Arruinado... ¡Arriverdici! ¡BANCARROTA! - -[ELEC_06:DONS7] -¡Que el Papa! Mira esto... - -[DONS7_1:DONS7] -O'Donovan relaciona a Donald Love con Salvatore Leone. La carrera política de Donald Love pende de un hilo. Toni debe destruir las pruebas. - -[DONS7_2:DONS7] -~w~Ve a robar la ~b~furgoneta~w~ que contiene las pruebas. - -[DONS7_3:DONS7] -~r~Has matado al contacto. - -[DONS7_4:DONS7] -~w~Lleva la furgoneta al ~y~punto de entrega~w~. - -[DONS7_5:DONS7] -~w~Vuelve a la ~b~furgoneta~w~. - -[DONS7_7:DONS7] -Sube al ~b~coche del contacto~w~. - -[DONS7CA:DONS7] -Ah, Toni. - -[DONS7CB:DONS7] -Las pruebas están en esa furgoneta de delante. - -[DONS7CC:DONS7] -Tendrás que abrirte paso. - -[DONS7CD:DONS7] -Lleva la furgoneta a casa de D.L. - -[DONS7CE:DONS7] -¡Buena suerte! - -[DONS713:DONS7] -~w~Aparca la furgoneta en el ~y~garaje~w~. - -[DONS714:DONS7] -~r~Has destruido la furgoneta. - -[RMN_AA:DONS7] -Esta noche se celebrará que las protestas laborales que habían paralizado Liberty City... - -[RMN_AB:DONS7] -por fin se han terminado. - -[RMN_AC:DONS7] -Se han restablecido los servicios regulares de ferry y metro. - -[RMN_AD:DONS7] -Hasta el puente levadizo que une Staunton Island con Shoreside Vale se ha reabierto al tráfico. - -[RMN_AE:DONS7] -Lo huelguistas por fin han guardado las pancartas y vuelto a sus puestos de trabajo... - -[RMN_AF:DONS7] -después de que el recién elegido alcalde O'Donovan les hiciera esta promesa: - -[RMN_AG:DONS7] -Como su alcalde, les garantizo que SIEMPRE habrá un servicio de ferry en Liberty City. - -[RMN_AH:DONS7] -Pero algunos temen que estas promesas caigan en saco roto, - -[RMN_AI:DONS7] -ya que siguen las obras del nuevo túnel de Porter Road. - -[DONS7_6:DONS7] -~w~Reúnete con el ~b~hombre~w~ de Donald Love bajo el paso elevado de Newport. - -{=================================== MISSION TABLE RAYS1 ===================================} - -[SAYO_01:RAYS1] -Así que tú eres la mosca cojonera, ¿eh? - -[SAYO_02:RAYS1] -¿Perdón? - -[SAYO_03:RAYS1] -Mucha gente importante se está cagando en tus muelas. - -[SAYO_04:RAYS1] -Leon McAffrey, de la policía de LC. - -[SAYO_05:RAYS1] -No sé de qué me está hablando. - -[SAYO_06:RAYS1] -Yo me dedico a la restauración. - -[SAYO_07:RAYS1] -Lo que tú digas, tipo duro. - -[SAYO_08:RAYS1] -Si los macarronis os queréis matar a tiros, me importa una mierda. - -[SAYO_09:RAYS1] -Lo único que me importa es mi tajada. - -[SAYO_12:RAYS1] -¿Dónde está mi tajada? - -[SAYO_13:RAYS1] -En tu puto culo, amigo. No me hagas reír. - -[SAYO_14:RAYS1] -Si sigues jodiéndome, te liquido a ti, a tus amigos, - -[SAYO_15:RAYS1] -a sus familias y a toda esta puta ciudad. - -[SAYO_16:RAYS1] -Cálmate. Echa un buen polvo o algo así. - -[SAYO_17:RAYS1] -Esto es un negocio -una sociedad- a partes iguales. - -[SAYO_18:RAYS1] -Yo te quito de encima a la ley -federales, antimafia...- - -[SAYO_19:RAYS1] -y tú me pagas los vicios que me gustan. - -[SAYO_20:RAYS1] -¿Y qué garantía tengo de que no me va extorsionar... - -[SAYO_21:RAYS1] -hasta el último poli corrupto de aquí a Vice City? - -[SAYO_22:RAYS1] -Te voy a ayudar a hacerte con esta ciudad. - -[SAYO_23:RAYS1] -A cambio, quiero pasta y unos cuantos favores. - -[SAYO_24:RAYS1] -Vamos, Toni, demos una vuelta... - -[SAYO_25:RAYS1] -Vamos a ver a unos viejos amigos tuyos, los Sindacco. - -[SAYO_10:RAYS1] -- Me encantan los hombres con principios. ~n~ - A mí también. Voy a sus funerales en un cochazo lleno de tías buenas. - -[RS1_YK:RAYS1] -Daño - -[RS1_01:RAYS1] -Liquida a los ~r~Sindacco~w~. - -[RS1_02:RAYS1] -~r~¡El coche ha sido destruido! - -[RS1_03:RAYS1] -~r~¡Los yakuza han sido masacrados! - -[RS1_04:RAYS1] -~w~Mata a algunos ~r~Sindacco~w~ para llamar su atención. - -[RS1_05:RAYS1] -~w~Sube al ~b~coche~w~ de Leon. - -[RS1_06:RAYS1] -~w~Ve al ~y~territorio de los Sindacco~w~. - -[RS1_07:RAYS1] -~w~Vuelve al ~b~coche~w~. - -[RS1_10:RAYS1] -~r~¡Has matado a Leon! - -[RAYS1AA:RAYS1] -¡Bien, yo cojo el volante, tú disparas! - -[RAYS1AB:RAYS1] -Pero ¿no habías dicho que los yakuza harían el trabajo sucio? - -[RAYS1AC:RAYS1] -Adaptarse o morir, Cipriani. Adaptarse o morir. - -[RAYS1BA:RAYS1] -Mierda, esto se está yendo de madre. - -[RAYS1BB:RAYS1] -Yo me las piro. Nos vemos, Toni. - -[RAYS1CA:RAYS1] -¡No bajes la vista, Toni! - -[RAYS1CB:RAYS1] -¡Detrás de nosotros, Toni, detrás! - -[RAYS1CC:RAYS1] -¡Cuidado, a la izquierda! - -[RAYS1CD:RAYS1] -¡A la derecha, Toni, la derecha! - -[RAYS1CE:RAYS1] -Vuelve al coche. - -[RAYS1CF:RAYS1] -¡Mira lo que estás haciendo! - -[RAYS1OS:RAYS1] -¡Oh, mierda! - -{=================================== MISSION TABLE RAYS2 ===================================} - -[RS2_02:RAYS2] -~w~¡Rápido, súbete a una ~b~moto~w~! - -[RS2_03:RAYS2] -~w~¡Atrae a los motoristas a la ~y~emboscada~w~! - -[RS2_04:RAYS2] -~w~Vuelve, ¡no puedes dejar atrás a ningún ~r~Forelli~w~! - -[RS2_05:RAYS2] -~w~Vuelve a la ~b~moto~w~. - -[RS2_06:RAYS2] -~r~Necesitas una moto para atraer a los Forelli. - -[RS2_07:RAYS2] -~r~Los Yardies quieren derramar personalmente la sangre de los Forelli. - -[RS2_08:RAYS2] -~r~¡No ha sobrevivido ni un Yardie! - -[RS2_09:RAYS2] -~1~ - -[RS2_10:RAYS2] -~r~¡No pueden perseguirte si no tienen ni una moto! - -[RAYS2AA:RAYS2] -Te has tomado tu tiempo, Toni. - -[RAYS2AB:RAYS2] -Tú dices 'salta', yo digo 'jódete'. - -[RAYS2AD:RAYS2] -Qué bonito. Ahora escucha. - -[RAYS2AE:RAYS2] -Los Yardies ansían el territorio de los Forelli en Newport. - -[RAYS2AF:RAYS2] -Ve allí y atrae a los soldados de los Forelli al hospital de Rockford. - -[RAYS2AG:RAYS2] -Los Yardies les estarán esperando. - -[RAYS2AH:RAYS2] -¿Y tú qué ganas? - -[RAYS2AI:RAYS2] -Les debo una. Nos vemos luego. - -[RS2_11:RAYS2] -¡No mates a ningún Forelli! - -[RS2_12:RAYS2] -¡~r~Elimínalos~w~! - -[RS2_01:RAYS2] -~w~Roba una ~b~moto~w~ de los Forelli pero no mates a ninguno. - -[RAYS2DB:RAYS2] -Sí. ¡Venga, vamos a darles! - -[RS2_13:RAYS2] -~r~¡Han muerto demasiados Yardies! - -{=================================== MISSION TABLE RAYS3 ===================================} - -[CRAZ_01:RAYS3] -No sé qué hice mal en mi otra vida para merecerte. - -[CRAZ_02:RAYS3] -Ray, tienes 40 tacos y no tienes ni idea de cómo va todo este rollo. - -[CRAZ_03:RAYS3] -No sé cómo has llegado tan lejos. - -[CRAZ_04:RAYS3] -No entiendo cómo nadie te ha volado esa carita de Madre Teresa que tienes. - -[CRAZ_05:RAYS3] -Eh, esa boca, Leon. - -[CRAZ_06:RAYS3] -No puedo creer que tengamos esta puta conversación. - -[CRAZ_07:RAYS3] -¿Qué, te vas a ir corriendo con mamá? - -[CRAZ_08:RAYS3] -¿A jugar al caballito con papá? - -[CRAZ_09:RAYS3] -¿O a pedirles un besito? - -[CRAZ_10:RAYS3] -¡Eh, Toni! - -[CRAZ_14:RAYS3] -Se asegurará de que lo haga todo según el reglamento. - -[CRAZ_15:RAYS3] -Toni Cipriani, Ray Machowski. - -[CRAZ_16:RAYS3] -Está con nosotros. Vamos a combatir la delincuencia organizada. - -[CRAZ_17:RAYS3] -Ahora vete corriendo a comisaría y haz un atestado. - -[CRAZ_18:RAYS3] -Buen chico... Vamos, Toni. - -[CRAZ_19:RAYS3] -Eres un cabronazo, Leon. - -[CRAZ_11:RAYS3] -- Quieto, capullo. ~n~ - ¡EPA! ¡Epa! ¡Epa! ¡Tranqui! Te presento a mi nuevo socio. ¡El Sr. Chupiguay! - -[RAYS3_1:RAYS3] -Ayuda a los yakuza a conquistar el territorio de los Forelli en Belleville Park. Hay que matar a ~1~ Forelli usando solo la katana. - -[RAYS3_2:RAYS3] -~w~Mata a ~1~ ~r~Forelli~w~ usando solo la katana que te han dado. - -[RAYS3_3:RAYS3] -Abat. - -[RAYS3_4:RAYS3] -~w~Tienes que matar a los ~r~Forelli~w~ con la katana. - -[RAYS3_5:RAYS3] -~w~No tienes katana. Coge otra ~g~de repuesto~w~. - -[RAYS3_6:RAYS3] -~r~Se te ha acabado el tiempo. - -[RAYS3_7:RAYS3] -~w~Mata a ~1~ ~r~Forelli~w~ usando solo la katana que te han dado antes de las ~1~:~1~. - -[RAYS3_8:RAYS3] -~w~Mata a ~1~ ~r~Forelli~w~ usando solo la katana que te han dado antes de las ~1~:0~1~. - -[RAYS3_9:RAYS3] -~w~Mata a ~1~ ~r~Forelli~w~ usando solo la katana que te han dado antes de las 0~1~:~1~. - -[RAYS310:RAYS3] -~w~Mata a ~1~ ~r~Forelli~w~ usando solo la katana que te han dado antes de las 0~1~:0~1~. - -{=================================== MISSION TABLE RAYS4 ===================================} - -[RAYS4_1:RAYS4] -~w~Están atacando a los Yardies en Newport. Ocúpate de los ~r~Sindacco~w~ atacantes. - -[RAYS4_2:RAYS4] -~w~Ve a hablar con el ~b~líder de la banda de los Yardies~w~. - -[RAYS4_3:RAYS4] -~w~Sigue al ~b~líder de la banda de los Yardies~w~. - -[RAYS4_4:RAYS4] -~r~¡Han matado a uno de los Yardies! - -[RAYS4_5:RAYS4] -~w~Protege a los Yardies hasta que llegue la ambulancia. - -[RAYS4_6:RAYS4] -~w~Vuelve y protege a los Yardies. - -[RAYS4_7:RAYS4] -~w~Abre un camino para que los Yardies lleguen a la ambulancia. - -[RAYS4_8:RAYS4] -~w~Ve a encontrarte con la ~y~ambulancia~w~. - -[RAYS4AA:RAYS4] -Cipriani, debemos dejar de vernos así. - -[RAYS4AB:RAYS4] -Por mí, bien. - -[RAYS4AC:RAYS4] -Vamos, anímate un poco. - -[RAYS4AD:RAYS4] -¿Qué tienes para mí, McAffrey? - -[RAYS4AE:RAYS4] -A esos Yardies les cuesta un poco conservar el territorio que acaban de conseguir en Newport. - -[RAYS4AF:RAYS4] -Parece que los Sindacco quieren recuperarlo. - -[RAYS4BA:RAYS4] -¡Han perforado a Boy Rudyard! - -[RAYS4BB:RAYS4] -¡Venga, tenemos que meterlo en una ambulancia! - -[RAYS4BC:RAYS4] -Mierda, más payasos de los Sindacco. - -[RAYS4BD:RAYS4] -¡Yo traigo la ambulancia, tú ayuda a mis chicos! - -[RAYS4BE:RAYS4] -¡Salgamos de aquí! - -[RAYS4BF:RAYS4] -¡Aquí viene la ambulancia! - -[RAYS4BG:RAYS4] -Gracias, Sr. Cipriani, ¡Le debemos una! - -{=================================== MISSION TABLE RAYS5 ===================================} - -[RAYS5_1:RAYS5] -NONE - -[RAYS5AA:RAYS5] -¿No hay flores? - -[RAYS5AB:RAYS5] -No sabía que fuera tu funeral. - -[RAYS5AC:RAYS5] -Eres un payaso de la hostia, Toni, un tío muy cachondo. - -[RAYS5AD:RAYS5] -Los Forelli se están poniendo serios. - -[RAYS5AE:RAYS5] -Están transportando armas y quedándose con una parte para ellos... - -[RAYS5AF:RAYS5] -Preparándose por si hay marrones. - -[RAYS5AG:RAYS5] -Están llevando las armas a Fort Staunton en camiones. - -[RAYS5AH:RAYS5] -Bueno, ha sido muy 'díver'. - -[RAYS5AI:RAYS5] -Lo mismo digo. - -[RAY5_2:RAYS5] -Han pedido refuerzos. - -[RAY5_3:RAYS5] -~r~Los Forelli tienen la munición. - -[RAY5_4:RAYS5] -Eh, ¡es Cipriani! - -[RAY5_5:RAYS5] -¡Cargáoslo! - -[RAY5_6:RAYS5] -Uno menos, ahora destruye el otro ~r~camión~w~. - -[RAY5_1:RAYS5] -Destruye los ~r~camiones~w~ antes de que lleguen a su destino. - -[RAY5_7:RAYS5] -Destruye el ~r~camión~w~ antes de que saquen munición suficiente de él. - -[RAY5_8:RAYS5] -~r~¡No has destruido el camión a tiempo! - -{=================================== MISSION TABLE SALH1 ===================================} - -[SLH1_F1:SALH1] -~r~Has matado a uno de los Hoods. - -[SLH1_F2:SALH1] -~w~Atrae a los Forelli destrozando sus ~r~coches~w~. - -[SLH1_F3:SALH1] -~w~Véngate de los ~r~Forelli~w~. - -[SLH1_F4:SALH1] -~w~Atrae a más Forelli destrozando otro ~r~coche~w~. - -[SLH1_F5:SALH1] -~w~No dejes a los ~b~Hoods~w~ detrás. - -[SLH1_B0:SALH1] -~w~Vale, blanco. Quememos la ciudad. - -[SLH1_B1:SALH1] -~w~¡Eh! ¡Vuelve aquí, tarado! - -[SLH1_B2:SALH1] -~w~¡Venga, estás colgado! ¡Mi culo no cabe en eso! - -[SLH1_B3:SALH1] -~w~¡Ya era hora! No llegarías a ninguna parte sin mí. - -[SLH1_B4:SALH1] -~w~¡Joder! ¡Ha sido difícil, tío! - -[SLH1_B6:SALH1] -~w~... No pretendía ofender, Toni. - -[SLH1_B7:SALH1] -~w~¡Es hora de que los Hoods se levanten y hagan lo correcto! - -[SLH1_B8:SALH1] -~w~¡Venga! ¡Vamos a freírlos! - -[SLH1_C0:SALH1] -~w~¡Hermano! - -[SLH1_C1:SALH1] -~w~¿Estás 'apollardao'? ¿Adónde vas? - -[SLH1_C2:SALH1] -~w~¿Y dónde cojones se supone que debo sentarme? - -[SLH1_C3:SALH1] -~w~¡Ya era hora! No llegarías a ninguna parte sin mí. - -[SLH1_C4:SALH1] -~w~¡Mierrrda! ¡He visto más panolis allí! - -[SLH1_D0:SALH1] -~w~¡Eh! ¡Que es mi coche! - -[SLH1_D1:SALH1] -~w~¡Así está más ventilado! - -[SLH1_E0:SALH1] -~w~¿Qué diantres pasa? - -[SLH1_E1:SALH1] -~w~¡Os vamos a sacar a patadas de aquí! ¡Eso es lo que pasa! - -[SLH1_X0:SALH1] -Got threat - -[SLH1_X1:SALH1] -Had threat - -[SLH1_X2:SALH1] -Find threat - -[SLH1_F0:SALH1] -~w~Recoge a los ~b~Hoods~w~ y llama la atención de los ~r~Forelli~w~. - -[RUFJ_01:SALH1] -Su abogado, Sr. Leone. - -[RUFJ_02:SALH1] -Ya sé que es mi abogado, amigo... - -[RUFJ_03:SALH1] -Vamos, déjame un rato. - -[RUFJ_04:SALH1] -Venga, chico, vete corriendo a saludar a tu madre de mi parte. ¿Capisci? - -[RUFJ_05:SALH1] -Muy bien... Tiene cinco minutos. - -[RUFJ_06:SALH1] -Escucha... eh... Lionel, tienes buen aspecto. - -[RUFJ_07:SALH1] -¡Mírame a mí! - -[RUFJ_08:SALH1] -Un buen miembro de la comunidad, y de repente me enchironan. - -[RUFJ_09:SALH1] -¡Esto sí que pone a prueba mi talante filantrópico! - -[RUFJ_10:SALH1] -Por supuesto, Sr. Leone. - -[RUFJ_11:SALH1] -Estamos haciendo todo lo posible por sacarle de aquí y... uh... - -[RUFJ_12:SALH1] -procurar que vuelva a ayudar a la comunidad cuanto antes. - -[RUFJ_13:SALH1] -Por supuesto. - -[RUFJ_14:SALH1] -Espero que empapelemos a alguien por este atropello. - -[RUFJ_15:SALH1] -Esos hijoputas de los Sindacco, o esos maricones, los Forelli... ¿Quién ha sido? - -[RUFJ_16:SALH1] -¿Quién me ha delatado? - -[RUFJ_18:SALH1] -A por los dos a saco. - -[RUFJ_19:SALH1] -Tal como lo veo, ambos merecen una buena paliza por esto. - -[RUFJ_22:SALH1] -Gracias. Toni, de verdad que significas mucho para mí, ya lo sabes. - -[RUFJ_23:SALH1] -Escucha, igual necesitas algún refuerzo. - -[RUFJ_24:SALH1] -Usa a los Hoods. ¿Vale? - -[RUFJ_25:SALH1] -Sus deseos son órdenes, Sr. Leone. - -[RUFJ_26:SALH1] -Muy bien... Marchando de aquí... Lionel. - -[RUFJ_20:SALH1] -- Hijos de perra. ~n~ - Será un placer. - -{=================================== MISSION TABLE SALH2 ===================================} - -[SALH2AA:SALH2] -~w~¡Eh, Sal! Soy yo... Toni. - -[SALH2AB:SALH2] -~w~¡Toni! Me alegro de oír tu voz, chico. - -[SALH2AC:SALH2] -~w~Estos mendas no me dejan ver a nadie. - -[SALH2AD:SALH2] -~w~Escucha, hay un montón de asuntos que resolver. - -[SALH2AE:SALH2] -~w~Encárgate de Paulie Sindacco. Su familia está acabada en esta ciudad. - -[SALH2AF:SALH2] -~w~Pero cree que puede irse de rositas, como si no tuviera deudas. - -[SALH2AG:SALH2] -~w~¡Estoy en chirona por culpa de ese bastardo! - -[SALH2AH:SALH2] -~w~Haz que ese hijo de perra me la pague. - -[SALH2O1:SALH2] -~w~Intercepta a Paulie Sindacco en la ~y~central de la presa de Cochrane~w~. - -[SALH2F1:SALH2] -~r~¡Se ha escapado! ¡Salvatore no se va a alegrar! - -[SALH2CA:SALH2] -~w~¡Idiotas! ¡Es Toni Cipriani! ¡A por él! - -[SALH2BA:SALH2] -~w~¡Eh, Toni! ¿Por qué no vienes nadando y me besas el culo? - -[SALH2BB:SALH2] -~w~¡Eh, a ver si me coges, capullo! - -[SALH2BI:SALH2] -~w~Dale recuerdos a Salvatore. ¡Le enviaré una postal! - -[SALH2BC:SALH2] -~w~¿Qué vas a hacer ahora, pringado? - -[SALH2BE:SALH2] -~w~¡Eres hombre muerto! - -[SALH2BF:SALH2] -~w~¡Eres un mierda! - -[SALH2BG:SALH2] -~w~¡Sorpresa, saco de mierda! - -[SALH2BH:SALH2] -~w~'Americanos, Paulie Sindacco ha muerto...' - -[SALH2BD:SALH2] -~w~¡No vas a pillarme ni en broma, caraculo! - -[SALH2O2:SALH2] -~w~Mata a ~r~Paulie Sindacco~w~. ¡No dejes que se escape! - -[SALH2O3:SALH2] -Consigue un vehículo y embosca a ~r~Paulie~w~ desde la orilla. - -{=================================== MISSION TABLE SALH3 ===================================} - -[SALH3_1:SALH3] -~w~¿Sal? ¿Cómo estamos? - -[SALH3_2:SALH3] -~w~¡'Bene' por los cojones! ¡De narices! - -[SALH3_3:SALH3] -~w~Uno: el nuevo alcalde se empeña en que no me den la condicional. - -[SALH3_4:SALH3] -~w~Dos: no avanzamos ni un palmo en la lucha contra la Tríada y los Diablos. - -[SALH3_5:SALH3] -~w~Tres: me han dicho que la puta Yakuza mueve ficha para quedarse con la ciudad. - -[SALH3_6:SALH3] -~w~Aparte de eso, todo va de perlas. - -[SALH3_7:SALH3] -~w~Tras años de control, los mafiosos nos vamos por el desagüe como un vulgar truño. - -[SALH38:SALH3] -~w~Yo me encargaré de todo, jefe. - -[SALH39:SALH3] -~w~Los yakuza han recibido un cargamento de armas en Aspatria. - -[SALH310:SALH3] -~w~¡Ya nada puede pararlos! - -[SALH311:SALH3] -~w~Eso ya lo veremos. - -[SALH3_A:SALH3] -~w~Registra el ~y~recinto de los yakuza~w~. - -[SALH3C1:SALH3] -~w~Busca una manera de entrar en el ~y~recinto~w~. - -[SALH3C2:SALH3] -~w~¡Hostia puta! ¡La Virgen en tecnicolor! - -[SALH3C3:SALH3] -~w~¡Destruye el ~r~tanque~w~! - -[SALH3C4:SALH3] -~w~¿Qué diablos...? - -[SALH3C5:SALH3] -~w~¡Matadlo! - -[SALH3C6:SALH3] -~w~El ~r~tanque ~w~lleva armadura pesada. ¡Armas normales no neutralizarán este monstruo! - -[SALH3G1:SALH3] -~w~Eh 'colega', aquí no se te ha perdido nada. - -[SALH3G2:SALH3] -~w~Parece que esta zona es solo para los yakuza. - -[SALH3G3:SALH3] -~w~¡Cómprate un desierto y piérdete! - -[SALH3_B:SALH3] -~w~¡El coche de los yakuza les ha engañado! - -[SALH3_C:SALH3] -~w~Entra en el ~y~recinto~w~ con el coche y echa un vistazo. - -{=================================== MISSION TABLE SALH4 ===================================} - -[SALH4_1:SALH4] -~w~¿Sal? ¿Estás ahí? - -[SALH4_2:SALH4] -~w~¡Anthony! ¡Ahora salgo! - -[SALH42A:SALH4] -~w~¡Hoy comparezco ante el juez! - -[SALH4_3:SALH4] -~w~¡Estupendo! - -[SALH44C:SALH4] -~w~Sí, Toni. Lo que tú digas... - -[SALH44E:SALH4] -~w~Eh, ya vienen los guardias... Nos vemos en la puerta de delante. - -[SALH4_5:SALH4] -~w~¡Consigue un coche de policía! - -[SALH45A:SALH4] -~w~¡Necesitas un coche de policía o espantarás al convoy! - -[SALH4_6:SALH4] -~w~Ocupa tu puesto en la ~y~comisaría~w~. - -[SALH4_7:SALH4] -~w~¡Hostia puta! - -[SALH4_8:SALH4] -~w~Protege el ~b~furgón celular~w~ y asegúrate de que llegue entero. - -[SALH4_9:SALH4] -~w~No te alejes demasiado del ~b~furgón celular~w~. - -[SALH410:SALH4] -~w~Vas a perder el ~b~furgón celular~w~. - -[SALH411:SALH4] -~r~¡Has perdido el furgón celular! ¡Han asesinado a Sal! - -[SALH412:SALH4] -~r~¡Han destruido el furgón celular! - -[SALH413:SALH4] -~w~No cabrees a la poli o Salvatore no conseguirá la condicional. - -[SALH416:SALH4] -~w~Escolta el ~b~convoy~w~ hasta su destino. - -[SALH417:SALH4] -~r~¡La has cagado! ¡La poli ha anulado la vista! - -[SALH420:SALH4] -~r~¡Sal ha muerto! - -[SALH421:SALH4] -~r~¡Has perdido el furgón celular! - -[SALH422:SALH4] -~w~Líbrate de la presión policial o atraerás la atención sobre el convoy. - -[SALH424:SALH4] -~w~Destruye la ~y~barricada~w~. - -[SALH415:SALH4] -~w~Es una delicia volver a ser libre. - -[SALH418:SALH4] -~w~Escucha. Voy a casa a cambiarme estos trapos inmundos, ¿vale? - -[SALH419:SALH4] -~w~Nos vemos allí. - -[SALH414:SALH4] -~w~Se informa de barricada ilegal en el área... - -[SALH44A:SALH4] -~w~Conmigo aquí dentro, ¿quién va a pararles los pies? - -[SALH4_4:SALH4] -~w~Sí, pero me da en la nariz que los sicilianos no quieren que llegue al juzgado. - -[SALH44B:SALH4] -~w~Eh, antes tendrían que acabar conmigo, Sal. - -[SALH44D:SALH4] -~w~¡Tú asegúrate de que yo llegue al juzgado! - -{=================================== MISSION TABLE SALH5 ===================================} - -[SALH51A:SALH5] -~w~Pisa a fondo, Toni. - -[SALH51B:SALH5] -~w~Mucho me da que los sicilianos van a por el alcalde. - -[SALH51C:SALH5] -~w~Tenemos que llegar a él antes que ellos. - -[SALH511:SALH5] -~w~Esto pinta mal... - -[SALH554:SALH5] -~w~¡A todo gas, Toni! - -[SALH512:SALH5] -~w~Te has dejado atrás a ~b~Sal~w~. Vuelve y recógelo. - -[SALH513:SALH5] -~w~¡Maldita sea! ¡Ya están aquí! - -[SALH560:SALH5] -~w~¡Fríelos, Toni! - -[SALH561:SALH5] -~w~¡Voy a por el alcalde! - -[SALH514:SALH5] -~w~¡Esos cabronazos ya lo han cogido! - -[SALH555:SALH5] -~w~¡Vamos, Toni! ¡Por aquí! - -[SALH515:SALH5] -~w~¡Allí están! - -[SALH517:SALH5] -~w~¿De dónde han salido esos bastardos? - -[SALH556:SALH5] -~w~¡Detrás, Toni! - -[SALH562:SALH5] -~w~¡Toni, ahí delante! - -[SALH519:SALH5] -~w~¡Toni! ¡Derriba el helicóptero! - -[SALH522:SALH5] -~w~Creen que pueden esconderse en el faro. - -[SALH557:SALH5] -~w~¡A por esos bastardos! - -[SALH558:SALH5] -~w~¡Bonito disparo, Toni! - -[SALH559:SALH5] -~w~Ahora acabemos con esto. - -[SALH526:SALH5] -~w~¡Yo conduzco! ¡Tú cúbrenos! - -[SALH527:SALH5] -~w~Vale, Toni... Es aquí. - -[SALH528:SALH5] -~w~Pero ¿cuántos bastardos hay en esta roca? - -[SALH553:SALH5] -~w~¡Tumbas a un bastardo y aparece otro a darte por culo! - -[SALH523:SALH5] -~r~Has abandonado a Salvatore a su suerte con los sicilianos. - -[SALH524:SALH5] -~r~¡Salvatore ha muerto! - -[SALH552:SALH5] -~r~¡El alcalde ha muerto! - -[SALH573:SALH5] -~r~¡Has destrozado la embarcación! ¡Los has perdido! - -[SALH516:SALH5] -~w~Take out the guards and then let's get after them in that boat! - -[SALH518:SALH5] -~w~Another ~r~boat~w~ incoming... - -[SALH525:SALH5] -~w~Ha! They've left a rocket launcher on this thing! - -[SALH520:SALH5] -~y~I'll move closer to shore so we're more protected... Take it down! - -[SALH521:SALH5] -~w~Good work! Let's move out! - -[SALH53A:SALH5] -~w~Torini... Tenía que ser él. - -[SALH53B:SALH5] -~w~¡Suéltale! - -[SALH53C:SALH5] -~w~¡El alcalde es mío! - -[SALH53D:SALH5] -~w~¡ESTA CIUDAD es mía! - -[SALH53E:SALH5] -~w~Salvatore... - -[SALH53F:SALH5] -~w~Sicilia nunca quiso questo schifo di città. - -[SALH53G:SALH5] -~w~Pero, cuando el tributo se acabó, ¿qué más podíamos hacer...? - -[SALH53H:SALH5] -~w~No ha sido nada personal. - -[SALH53I:SALH5] -~w~¿Nada personal? - -[SALH53J:SALH5] -~w~¡Después de lo que me has hecho! - -[SALH53K:SALH5] -~w~¡Te voy a sacar los higadillos! - -[SALH5TD:SALH5] -~w~¡Derriba el ~r~helicóptero de Massimo~w~! - -[SALH5MO:SALH5] -¡~r~Massimo~w~ se está largando! - -[SALH5GO:SALH5] -~r~¡Massimo se ha escapado! - -[SALH571:SALH5] -~w~Dirígete al ~y~muelle~w~. - -[SALH570:SALH5] -~w~¡Elimina a esos ~r~mafiosos sicilianos~w~! - -[SALH572:SALH5] -~w~¡Ocúpate de ese ~r~listillo siciliano~w~! - -[SALH510:SALH5] -~w~Ve al ~y~ayuntamiento~w~. ¡Ten cuidado con esos listillos sicilianos! - -[SICI_01:SALH5] -No, luego hablamos... - -[SICI_04:SALH5] -Ambos hemos vuelto. ¡Tú y yo! - -[SICI_05:SALH5] -Lo hemos conseguido, ¿eh? - -[SICI_06:SALH5] -Y que lo diga. - -[SICI_07:SALH5] -Hemos borrado del mapa a los Forelli. - -[SICI_08:SALH5] -Hemos enviado a los Sindacco con los peces. - -[SICI_09:SALH5] -Y ahora tengo a los sicilianos al teléfono, que quieren la paz. - -[SICI_10:SALH5] -¡Todos la queremos! Pero la mía, no la de esos cabrones. - -[SICI_11:SALH5] -Ahora soy el puto amo. - -[SICI_12:SALH5] -Ningún menda de la vieja patria me va a decir lo que debo hacer. - -[SICI_13:SALH5] -Les he dicho que se vayan a tomar por culo. - -[SICI_14:SALH5] -¿Sí? ¿Es eso prudente? - -[SICI_15:SALH5] -Eh, ahora el jefe soy yo. ¡YO! - -[SICI_16:SALH5] -Vamos a ver al alcalde para que me retire los cargos... - -[FIN1_01:SALH5] -¡Eh! ¡Sr. alcalde! - -[FIN1_03:SALH5] -Sí, gracias. - -[FIN1_04:SALH5] -Y eso significa que... - -[FIN1_05:SALH5] -Eeh... ¿que la ciudad se lo agradece? - -[FIN1_06:SALH5] -Inténtelo de nuevo. - -[FIN1_07:SALH5] -Que usted trabaja para mí, ¿estamos? - -[FIN1_08:SALH5] -Ah, sí. Que yo trabajo para usted. - -[FIN1_09:SALH5] -Bien. No nos llame. Ya lo haremos nosotros. - -[FIN1_10:SALH5] -Largo de aquí, capullo. - -[FIN1_11:SALH5] -Gracias, Sr. Leone. - -[FIN1_12:SALH5] -Toni. Lo hemos conseguido. Ahora mandamos tú y yo. - -[FIN1_13:SALH5] -Somos un equipo, ¿no? - -[FIN1_14:SALH5] -Y ahora necesito que me hagas una cosita de nada. - -[FIN1_15:SALH5] -Tengo ciertos problemas que hay que resolver... - -[FIN2_01:SALH5] -Hola, tío. ¿Cómo le va, eh? - -[FIN2_02:SALH5] -Tiene buen aspecto. - -[FIN2_03:SALH5] -Ahhhh Salvatore, lo único que queríamos era claridad. - -[FIN2_04:SALH5] -Sí, tío. Y yo lo aprecio. - -[FIN2_07:SALH5] -Bien, muy bien. - -[FIN2_08:SALH5] -Víbora de mierda. - -[FIN2_09:SALH5] -No confiaría en él ni harto de vino. - -[FIN2_23:SALH5] -A todo cerdo le llega su San Martín... - -[FIN2_10:SALH5] -Sí, al menos lo hemos conseguido. - -[FIN2_11:SALH5] -Sí. Hemos hecho limpieza. Lo has hecho bien, Toni. Bien de verdad. - -[FIN2_12:SALH5] -Siempre supe que eras un gran tío. Me has salvado unas cuantas veces. - -[FIN2_13:SALH5] -Y aprecio una lealtad así. - -[FIN2_14:SALH5] -Gracias. - -[FIN2_15:SALH5] -Un buen trabajador. Me gusta tu respeto. - -[FIN2_19:SALH5] -¿Puedes ponerle precio a la amistad? - -[FIN2_20:SALH5] -¿La clase de amistad que tenemos tú y yo? - -[FIN2_21:SALH5] -¡Qué vergüenza! Ven aquí. - -[FIN2_22:SALH5] -Eres buen chico, debería darte vergüenza. - -[SICI_02:SALH5] -- ¡Eh, Toni! ~n~ - ¡Sal! Ha vuelto a donde pertenece. - -[FIN2_05:SALH5] -- Entonces, ¿estamos ya en paz? ¿La vieja patria y tú? ~n~ - Por supuesto. Toda mi gente y yo. - -[FIN2_16:SALH5] -- Así que aquí tienes el medio millón que te prometí. ~n~ - ¿Medio? ¡Eh! ¿No había dicho que dos? - -[FIN2_18:SALH5] -¡Dije un millón de dólares! ¿Y qué? - -[FIN1_02:SALH5] -Le acabamos de salvar de ese hatajo de sicilianos chalados. - -{=================================== MISSION TABLE DONH1 ===================================} - -[DONH1JA:DONH1] -~w~Toni, mi ex mentor, Avery Carrington, viene hoy aquí en avión... - -[DONH1JB:DONH1] -~w~Me han comunicado que trabaja para la Panlantic Corporation. - -[DONH1JC:DONH1] -~w~Harán lo que sea por conseguir inmuebles de primera. - -[DONH1JD:DONH1] -~w~Tenemos que conseguir sus planes de compra de terrenos. - -[DONH1JE:DONH1] -~w~¡Vamos, Toni! ¡A por él! - -[DONH1CA:DONH1] -~w~Eh, Toni, nos iría bien un medio de transporte. - -[DONH1DA:DONH1] -~w~Dirígete al aeropuerto, Toni. - -[DONH1DB:DONH1] -~w~No tenemos tiempo que perder. - -[DONH1EA:DONH1] -~w~Oh, sí. Éste es uno de mis mejores planes, no cabe duda... - -[DONH1EB:DONH1] -~w~Nunca había caído en la cuenta... - -[DONH1EC:DONH1] -~w~Me voy a forrar con esto... - -[DONH1ED:DONH1] -~w~Sí, señor, me voy a forrar... - -[DONH1EE:DONH1] -~w~Hasta Avery estaría orgulloso. - -[DONH1GA:DONH1] -~w~¡Ahí está! - -[DONH1GB:DONH1] -~w~¡Mátalo, Toni! - -[DONH1GC:DONH1] -~w~¡Necesito esos planes! - -[DONH1HA:DONH1] -~w~Por favor, Toni... ¡se escapa! - -[DONH1IA:DONH1] -~w~¡Oh, mayúsculo, Toni...! ¡De verdad! - -[DONH1IB:DONH1] -~w~Ahora volvamos a la seguridad de mi... ejem... 'residencia'. - -[DONH1O0:DONH1] -~w~Lleva a Donald Love al ~y~aeropuerto~w~. - -[DONH1O1:DONH1] -~w~Mata a ~r~Avery Carrington~w~ y cógele los planes. - -[DONH1O2:DONH1] -¡~r~Avery~w~ se larga! ¡Párale los pies! - -[DONH1O3:DONH1] -~r~Avery~w~ ya tiene otro vehículo. ¡No dejes que escape! - -[DONH1O4:DONH1] -¡~r~Avery~w~ se está largando! ¡Cógelo! - -[DONH1O5:DONH1] -~w~Recoge a ~b~Donald Love~w~. - -[DONH1O6:DONH1] -~w~¡Bien hecho! Coge los ~g~planes~w~. - -[DONH1O7:DONH1] -~w~Lleva a Donald y los planes de vuelta al ~y~centro de acogida~w~. - -[DONH1O8:DONH1] -~w~¡Se te han caído los ~g~planes~w~! Vuelve y recógelos. - -[DONH1OA:DONH1] -~w~¡Van a por ti y ~r~Avery~w~ se está escapando! ¡Mátalo! - -[DONH1OB:DONH1] -~w~Necesitas un vehículo. - -[DONH1OC:DONH1] -~w~¡No pierdas a ~b~Donald~w~! - -[DONH1OD:DONH1] -~w~¡Ten cuidado! Los planes se perderán si el ~r~coche de Avery~w~ se destruye con él dentro. - -[DONH1OE:DONH1] -~r~Avery Carrington~w~ se escapa. ¡Ve tras él! - -[DONH1F0:DONH1] -~r~¡Los planes se han destruido! - -[DONH1F1:DONH1] -~r~¡Avery Carrington se ha escapado! - -[DONH1F2:DONH1] -~r~¡Donald ha muerto! - -[DONH1OF:DONH1] -~r~Avery Carrington~w~ casi ha llegado a su destino. ¡Detenlo! - -[DONH1O9:DONH1] -~w~¡No dejes a ~b~Donald~w~ atrás! ¡Esos colombianos lo matarán! - -[DONH1FA:DONH1] -~w~Mmm, Panlantic debe de haber contratado al Cártel para proteger a Avery. - -[LAND_01:DONH1] -Sé lo que estarás pensando, Toni. Cómo caen los poderosos... - -[LAND_02:DONH1] -Pero solo es un bache temporal, amigo. - -[LAND_03:DONH1] -Vale. - -[LAND_04:DONH1] -Ay, no seas tan susceptible. - -[LAND_05:DONH1] -Sé que dije cosas horribles, que era culpa tuya y todo eso, - -[LAND_06:DONH1] -pero el orgullo es mal compañero de cama, casi tanto como las termitas. - -[LAND_07:DONH1] -Créeme, he tenido de ambos recientemente. - -[LAND_08:DONH1] -Espera, tú y yo... ¡volvemos a encontrarnos! - -[LAND_09:DONH1] -Yo nunca me he ido... - -[LAND_10:DONH1] -Estamos juntos en esto, 'amigo'. - -[LAND_11:DONH1] -No, te equivocas. - -[LAND_12:DONH1] -¡Por favor! - -[LAND_13:DONH1] -Por favor... ¿favor? Olvídalo, colega. - -[LAND_18:DONH1] -Vamos, te lo explico de camino. - -[LAND_19:DONH1] -Espero que hayas traído coche. El mío está en... la tienda... ¡Sí! - -[LAND_16:DONH1] -- ¿Un 10% de qué? ¿De esto? ¡Oh, qué amable! ~n~ - De esto no... De algo gordo de verdad. - -[LAND_14:DONH1] -- 'Es todo por tu culpa.' Patético. ~n~ - ¿Un 10%? - -{=================================== MISSION TABLE DONH2 ===================================} - -[DONH2_1:DONH2] -~w~Ve a la ~y~iglesia~w~ de Staunton Island. - -[DONH2_2:DONH2] -~w~Sacúdele al ~r~reportero~w~ o apúntale con un arma para que te dé las fotos. - -[DONH2_3:DONH2] -~w~Tienes algunas fotos mías. ¿Dónde están? - -[DONH2_4:DONH2] -~w~¡No me hagas nada! - -[DONH2_5:DONH2] -~w~¿Dónde están las malditas fotos? - -[DONH2_6:DONH2] -~w~¡No sé de qué me hablas! - -[DONH2_7:DONH2] -~w~¿Dónde están? - -[DONH2_8:DONH2] -~w~¡No, por favor! - -[DONH2_9:DONH2] -~w~¡Vamos, mariquita! ¡Dámelas! - -[DONH210:DONH2] -~w~¡Vale! ¡Vale! - -[DONH2EX:DONH2] -~w~¡Te daré las fotos! - -[DONH211:DONH2] -~w~¡Escondí el carrete en mi garaje! - -[DONH212:DONH2] -~w~Ve al ~y~garaje del reportero~w~. - -[DONH213:DONH2] -~w~¡Socorro! ¡Auxilio! ¡Que me secuestran! - -[DONH214:DONH2] -~w~¡Ayuda! ¡Me va a matar! - -[DONH215:DONH2] -~w~¡Soy demasiado bueno para morir! - -[DONH216:DONH2] -~w~No puedo morir, ¡aún estoy acabando mi libro! - -[DONH217:DONH2] -~w~¡Mi editor nunca me habló de estas cosas! - -[DONH218:DONH2] -~w~¡No muevas ni un músculo, soplapollas! - -[DONH219:DONH2] -~w~¡Quieto parado, gilipollas! - -[DONH220:DONH2] -~w~¡Por el amor de Dios! ¿Vas a dejar de correr o qué? - -[DONH221:DONH2] -~w~¡Toni! ¡Por fin! - -[DONH222:DONH2] -~w~¡Un reportero vio cómo matábamos a Avery! - -[DONH223:DONH2] -~w~¡Y tiene fotos! ¡Oh, Dios! ¡Estoy acabado! - -[DONH224:DONH2] -~w~Cálmate, ¿quieres? ¿Dónde está ese reportero? - -[DONH225:DONH2] -~w~¡Oh, Toni, eres maravilloso! - -[DONH226:DONH2] -~w~Al parecer ha estado trabajando de tapadillo en la iglesia de Staunton Island. - -[DONH227:DONH2] -~w~¡Consigue las fotos y liquídalo! - -[DONH228:DONH2] -~r~¡Ned ha escapado! - -[DONH230:DONH2] -~w~Mata a ~r~Ned Burner~w~. - -[DONH231:DONH2] -~r~¡Ned ha muerto antes de que consiguieras las fotos! - -[DONH229:DONH2] -CACA DE LA VACA - -[DONCUTA:DONH2] -~w~Aquí están... ¡Cógelas! Aún no las he revelado. - -[DONCUTB:DONH2] -~w~¡Cabronazo! - -[DONH2SM:DONH2] -Sustómetro - -[DONH233:DONH2] -Sigue intimidando al reportero. Si el Sustómetro baja demasiado, intentará escapar. - -[DONH2LB:DONH2] -~w~Has dejado atrás al ~b~periodista~w~. Vuelve a por él. - -[DONH2LC:DONH2] -~r~Has abandonado al periodista. - -{=================================== MISSION TABLE DONH3 ===================================} - -[DONH3I1:DONH3] -~w~¡He vuelto! - -[DONH3I2:DONH3] -~w~¡He vuelto de la muerte, Toni! Como el fénix de sus cenizas. - -[DONH3I3:DONH3] -~w~Como Lázaro... sí... ¡Lázaro Love! - -[DONH3I4:DONH3] -~w~¡Ah, volveré a ser rico! - -[DONH3I5:DONH3] -~w~Panlantic me va a pagar una fortuna por cerrar este trato. - -[DONH3I6:DONH3] -~w~¡Lo hemos conseguido, Toni! - -[DONH3I7:DONH3] -~w~Lo que tú digas. - -[DONH3I8:DONH3] -~w~Es hora de dar un sarao con una lista de invitados muy selecta. - -[DONH3I9:DONH3] -~w~¡Vamos! - -[DONH3C1:DONH3] -~w~Necesitaremos un medio de transporte, Toni. No tenemos mucho tiempo. - -[DONH3L1:DONH3] -~w~Necesitas a ~b~Donald~w~. ¡Vuelve y recógelo! - -[DONH3L2:DONH3] -~w~¡Venga, Toni! ¡Vamos apurados! - -[DONH3L3:DONH3] -~w~¡Vuelve a dejar el cadáver! - -[DONH3_5:DONH3] -~w~Toni, me moría por esta fiesta. - -[DONH35D:DONH3] -~w~Igual que mis invitados. - -[DONH35A:DONH3] -~w~Encuentra un ~b~cadáver~w~. - -[DONH35B:DONH3] -~w~Consigue el ~b~cadáver de Avery~w~. - -[DONH35C:DONH3] -~w~Consigue el ~b~cadáver de Ned~w~. - -[DONH3_6:DONH3] -~w~Lleva a Donald y a Avery al ~y~aeropuerto~w~. - -[DONH36A:DONH3] -~w~¡Eh! ¡Devuelve esa ambulancia! - -[DONH36B:DONH3] -~w~Avery. - -[DONH36C:DONH3] -~w~¡Avery! Cómo has envejecido desde la última vez que nos vimos. - -[DONH36D:DONH3] -~w~Tú me alimentabas con esas perlas de sabiduría... - -[DONH36E:DONH3] -~w~... que pronto volveré a saborear. - -[DONH36F:DONH3] -~w~¡Dios! ¡Si lleva peluquín! - -[DONH36G:DONH3] -~w~Toni. Llévanos a Avery y a mí a su jet privado, en el aeropuerto. - -[DONH3_7:DONH3] -~w~Lleva a Donald y a Ned al ~y~aeropuerto~w~. - -[DONH37F:DONH3] -~w~Toni. Llévanos al bueno de Ned y a mí al aeropuerto. - -[DONH37A:DONH3] -~w~¡Eh! ¡Ese tío está mangando el fiambre! - -[DONH37B:DONH3] -~w~Ah, Ned Burner, reportero intrépido. - -[DONH37C:DONH3] -~w~Ah, Ned. Te voy a dar la exclusiva... - -[DONH37D:DONH3] -~w~para que cubras mi maravillosa fiesta. - -[DONH37E:DONH3] -~w~No invitaría a cualquiera a mi pequeño guateque. - -[DONH37G:DONH3] -~w~Las invitaciones son... para morirse. - -[DONH3_8:DONH3] -~w~Lleva el cadáver de Avery al ~y~aeropuerto~w~. - -[DONH3_9:DONH3] -~w~Lleva el cadáver de Ned al ~y~aeropuerto~w~. - -[DONH3A1:DONH3] -~w~Deja aquí los restos putrefactos del viejo Avery antes de que seguridad nos descubra. - -[DONH3A2:DONH3] -~w~Le van a hacer la autopsia en cualquier momento. - -[DONH3N1:DONH3] -~w~Deja el cadáver de Ned Burner aquí antes de que seguridad nos descubra. Lo van a enterrar enseguida. - -[DONH3F1:DONH3] -~r~Love ha muerto. - -[DONH3F2:DONH3] -~r~¡Has perdido el cadáver de Avery! - -[DONH3F3:DONH3] -~r~¡Has perdido el cadáver de Ned! - -[DONH3C2:DONH3] -~w~Los vigilantes del aeropuerto cerrarán el hangar de Avery Carrington a las 22:00. - -[DONH3F4:DONH3] -~r~Demasiado tarde. Los vigilantes del aeropuerto han cerrado el hangar. - -[DONH3F5:DONH3] -~r~Demasiado tarde. Los vigilantes del aeropuerto han encontrado a Donald con el cadáver de Avery. - -[DONH3W1:DONH3] -~w~¡Deprisa! Los vigilantes del aeropuerto cerrarán el hangar de Avery Carrington a las 22:00. - -[DONH3F6:DONH3] -~r~Demasiado tarde. ¡Los vigilantes del aeropuerto han encontrado a Donald con el cadáver de Ned! - -{=================================== MISSION TABLE DONH4 ===================================} - -[DONH4A:DONH4] -~w~Donald me envía a recoger... los 'petardos'. - -[DONH4B:DONH4] -~w~Muy bien. - -[DON4EX1:DONH4] -~w~Tengo lo que necesitáis. Pero vale su pasta. - -[DON4EX2:DONH4] -~w~Don ha dicho que me pagues tú, que él ya te lo apoquinaría luego. - -[DONH4C:DONH4] -~w~Típico de él. - -[DONH4D:DONH4] -~w~¡Sí, claro! ¿Por qué no a nombre de 'bésame el culo'? - -[DONH4E:DONH4] -~w~Bueno, ¿dónde están los petardos? - -[DONH4F:DONH4] -~w~¡Mierda, tío! Preparar unos petardos así lleva su tiempo. - -[DON4EX4:DONH4] -~w~Estaremos en contacto. - -[DONH4G:DONH4] -¡Misión superada! - -[DONH4_1:DONH4] -NONE - -[DONH4PS:DONH4] -8-Ball te avisará cuando los petardos estén listos. - -{=================================== MISSION TABLE DONH5 ===================================} - -[DONH5_0:DONH5] -Camioneta - -[DNH5_A0:DONH5] -~w~Mira, esta camioneta va cargadita. ¿Me explico? Conduce con cuidado. - -[DNH5_A1:DONH5] -~w~¿Sí? Todo en orden. - -[DNH5_A2:DONH5] -~w~Claro. Ahora se pone. - -[DNH5_A3:DONH5] -~w~Toni, estamos a un trabajito de ser fabulosamente ricos. - -[DNH5_A4:DONH5] -~w~Hemos repasado los planos de Fort Staunton. Sus puntos débiles están a lo largo del antiguo metro que va por debajo del área. - -[DNH5_A5:DONH5] -~w~¡Genial, Don! Solo tengo que burlar a un centenar de italianos pirados. - -[DNH5_A6:DONH5] -~w~Tú entra por el túnel de Porter y encontrarás el camino sin problemas. - -[DNH5_B0:DONH5] -~w~¡Eh! ¡Se supone que no puedes estar aquí! - -[DNH5_B1:DONH5] -~w~¡Sal de aquí a toda pastilla! - -[DNH5_C0:DONH5] -~w~Sube a la ~b~camioneta~w~. - -[DNH5_C4:DONH5] -~w~Pon los ~y~explosivos~w~. - -[DNH5_C5:DONH5] -~w~Pon los ~y~explosivos~w~ restantes. - -[DNH5_C6:DONH5] -~w~Escapa por la ~y~entrada del metro~w~. - -[DNH5_D0:DONH5] -~w~¿Qué hacen aquí los Forelli? - -[DNH5_D1:DONH5] -~w~No dejes que los Forelli destrocen la camioneta. - -[DNH5_1:DONH5] -~w~Usa un vehículo para reventar las puertas. - -[DONH5_2:DONH5] -~w~¡Golpea las puertas con más fuerza! - -[DNH5_X0:DONH5] -~r~¡Has destrozado la camioneta! - -[DNH5_C1:DONH5] -~w~Vuelve a la ~b~furgoneta~w~. - -[DNH5_C2:DONH5] -~w~Dirígete a una de las ~y~entradas~w~ del túnel de Porter Road. - -[DNH5_C3:DONH5] -~w~Sigue el ~y~túnel~w~. - -[DNH5_E0:DONH5] -~w~Mata a esos ~r~obreros~w~. - -[DNH5_E1:DONH5] -~w~Mata a ese ~r~obrero~w~. - -[DNH5_E2:DONH5] -~w~Los Forelli han bloqueado el camino de vuelta. Busca otra ~y~salida~w~. - -[DNH5_E3:DONH5] -~w~Usa un vehículo para reventar las puertas y alcanzar la ~y~salida~w~. - -[DNH5_X1:DONH5] -~r~¡Los Forelli han destrozado la camioneta! - -[DNH5_W1:DONH5] -~w~¡No te alejes demasiado de la ~b~camioneta~w~! - -[DNH5_E4:DONH5] -~w~No dejes ningún ~r~testigo~w~. - -{=================================== MISSION TABLE DONH6 ===================================} - -[DONH6_V:DONH6] -~r~v1.00 - -[DONH6_1:DONH6] -~w~Dirígete a la ~y~casa~w~. - -[DONH6_5:DONH6] -~w~¡Oh, Dios mío! ¡Toni! ¡Haz algo! - -[DONH6_6:DONH6] -~w~Tienes ~1~ s. para volver a la finca. - -[DONH6_7:DONH6] -Tiempo para volver - -[DONH6_8:DONH6] -~r~No has conseguido volver a la mansión... ¡Han liquidado a Donald! - -[DONH610:DONH6] -~w~¡Consigue un coche! - -[DONH611:DONH6] -~w~¡Santo Dios! ¡Allí vienen más! - -[DONH624:DONH6] -~w~¡Pisa a fondo, Toni! - -[DONH612:DONH6] -~w~¡Lo hemos conseguido! - -[DONH623:DONH6] -~w~Llévame al jet de Avery. Ned y él siguen a bordo, así que no viajaré solo. - -[DONH622:DONH6] -~w~Ve al ~y~jet de Avery~w~. - -[DONH613:DONH6] -~w~Vamos al aeropuerto. - -[DONH625:DONH6] -~w~Dirígete al ~y~aeropuerto~w~. - -[DONH615:DONH6] -~w~Te has dejado atrás a ~b~Donald~w~. Vuelve y recógelo. - -[DONH619:DONH6] -~r~¡Donald ha muerto! - -[DONH6_9:DONH6] -~w~¿D? ¡Adelante! ¡Vamos! - -[DONH614:DONH6] -~w~¿Seguro que no hay peligro, Toni? - -[DONH616:DONH6] -~w~¡Oh... mi... JARDÍN! - -[DOH616A:DONH6] -~w~¡Mira cómo has dejado mi precioso jardín! - -[DONH617:DONH6] -~w~D... O hacemos paisajismo o escapismo. Tú decides. - -[DONH618:DONH6] -~w~¡Llévame al aeropuerto! - -[DONH620:DONH6] -~w~Odio decir adiós, amigo mío. - -[DOH620A:DONH6] -~w~Así que solo diré 'adieu'. - -[DONH621:DONH6] -~w~D... Ha sido muy instructivo. - -[DONH66S:DONH6] -~w~Tienes ~1~ s. para volver a la finca. - -[DONH66A:DONH6] -~w~¡Elimina a esos ~r~gánsteres colombianos~w~! - -[DONP_01:DONH6] -Érase una oruguita... guita... guita... No, así no funciona. - -[DONP_02:DONH6] -Ohmmmmmmmm. Maldita sea. - -[DONP_03:DONH6] -Es que... Ay, mierda, si tuviera algo frío a lo que abrazarme, - -[DONP_06:DONH6] -¡Antonio! Jo, solo busco iluminación espiritual, - -[DONP_07:DONH6] -por si te interesa, pero no hay manera. - -[DONP_08:DONH6] -Quizá mañana. - -[DONP_09:DONH6] -Por el mensaje parecías un poco inquieto. - -[DONP_10:DONH6] -¿Inquieto? Estoy meditando. ¿Inquieto, moi? - -[DONP_11:DONH6] -Soy uno con el universo. Lo que dices es imposible. - -[DONP_12:DONH6] -Oh, mierda, tienes razón. - -[DONP_13:DONH6] -Um, va a venir una horda de colombianos... - -[DONP_14:DONH6] -a matarme si no cierro la bocaza y les pago todo lo que les debo. - -[DONP_15:DONH6] -Ah. Supongo que eso explica todos esos colombianos que rondan por fuera. - -[DONP_16:DONH6] -¡Mierda! Por favor, Antonio, ¡tienes que sacarme de aquí! - -[DONP_17:DONH6] -No quiero... ¡Por favor! ¡No quiero morir! No... - -[DONP_18:DONH6] -Ya ves lo que vale eso de ser uno con el universo... - -[DONP_19:DONH6] -¡Gracias, Toni! Te recompensaré... Te recompensaré por esto, prometido. - -[DONP_04:DONH6] -- sería más fácil... ~n~ - ¿Qué pasa, D? - -{=================================== MISSION TABLE TOSH1 ===================================} - -[TOSH1AB:TOSH1] -~w~¡Detenedlo! - -[TOSH1AC:TOSH1] -~w~¡A por él! - -[TOSH1AD:TOSH1] -~w~¡Matadlo! - -[TOSH1AA:TOSH1] -~w~¡Ahí está! - -[TOSH120:TOSH1] -~w~Roba el ~b~cargamento de armas~w~ de los yakuza de Bedford Point. - -[TOSH121:TOSH1] -~w~Tendrás que eludir a los ~r~guardias de los yakuza~w~. - -[TOSH122:TOSH1] -~w~Estáte atento a más ~r~embarcaciones de los yakuza~w~. - -[TOSH130:TOSH1] -~w~Lleva las armas al ~y~contacto de Toshiko~w~. - -[TOSH131:TOSH1] -~w~Vuelve junto al ~b~cargamento de armas~w~. - -[TOSH1BA:TOSH1] -~w~¡Chico, aquí tienes artillería de la buena! - -[TOSH1BB:TOSH1] -~w~Mira, hago tantos negocios en estos muelles que debería establecerme aquí, - -[TOSH1BC:TOSH1] -~w~¡y no a medio camino de la maldita isla! - -[TOSH1BD:TOSH1] -~w~¡Bueno, ha estado genial! - -[TOSH1DB:TOSH1] -~r~¡Las armas han sido destruidas! - -[TOSH1PH:TOSH1] -~w~Los yakuza estarán protegiendo el cargamento. Puede que necesites pasarte por Phil Cassidy's de camino. - -[DEAD_01:TOSH1] -¿Así que éste es ese famoso gánster tan duro? - -[DEAD_02:TOSH1] -Pues no parece tan duro. - -[DEAD_03:TOSH1] -... Gracias. - -[DEAD_04:TOSH1] -¿Sabe lo que es vivir sin amor, Sr. Cipriani? - -[DEAD_05:TOSH1] -Es vivir llena de odio... - -[DEAD_06:TOSH1] -Pues si usted lo dice... - -[DEAD_07:TOSH1] -Lo que más anhelo es destruir a un hombre, Sr. Cipriani. - -[DEAD_08:TOSH1] -Destruirlo... No basta con matarlo. - -[DEAD_09:TOSH1] -Quiero que él y toda su organización mermen y muerdan el polvo antes de que muera. - -[DEAD_10:TOSH1] -Quiero que sufra. - -[DEAD_11:TOSH1] -Vale. - -[DEAD_12:TOSH1] -El hombre al que quiero que destruya es mi marido, Kazuki Kasen. - -[DEAD_13:TOSH1] -No se preocupe. - -[DEAD_14:TOSH1] -Será recompensado generosamente por sus servicios. - -[DEAD_15:TOSH1] -Bueno, ¿y si digo que no? - -[DEAD_16:TOSH1] -No lo hará... porque yo quiero que muera, pero usted necesita que muera. - -[DEAD_17:TOSH1] -A decir verdad, ya le ha infligido una gran herida, Sr. Cipriani. - -[DEAD_18:TOSH1] -Sin embargo, hoy recibirá otra entrega de municiones. - -[DEAD_19:TOSH1] -Quiero que usted le robe esas armas en sus ignorantes narices. - -{=================================== MISSION TABLE TOSH2 ===================================} - -[TOSH2AA:TOSH2] -~w~Sr. Toni. - -[TOSH2AL:TOSH2] -~w~Mi marido se ha enfadado mucho por sus actos. - -[TOSH2AB:TOSH2] -~w~Ha conseguido que él, y sus hombres, - -[TOSH2AM:TOSH2] -~w~queden como los payasos que son. - -[TOSH2AC:TOSH2] -~w~Estoy para complacerla. ¿Y ahora qué, princesa? - -[TOSH2AE:TOSH2] -~w~Mi marido quiere retirar una gran cantidad de dinero de su casino. - -[TOSH2AF:TOSH2] -~w~Quiero que destruya todo ese dinero. - -[TOSH2AG:TOSH2] -~w~Yo podría darle un uso mucho mejor, encanto. - -[TOSH2AH:TOSH2] -~w~Quiero que ese dinero se queme en la calle, para que todos lo vean. - -[TOSH2AI:TOSH2] -~w~Vale... vale... ¿Cuándo van a hacerlo? - -[TOSH2AJ:TOSH2] -~w~Ya están en ello. - -[TOSH2AK:TOSH2] -~w~Están saliendo del casino justo ahora, así que no tiene mucho tiempo. - -[TOSH2O0:TOSH2] -~w~Destruye TODOS los ~r~furgones~w~. Que no llegue ninguno al ~y~recinto de los yakuza~w~. - -[TOSH2O1:TOSH2] -~w~¡Están huyendo! ¡Que no escape ni un ~r~furgón~w~. - -[TOSH2O2:TOSH2] -~w~¡Los has espantado! ¡No dejes que los ~r~furgones~w~ escapen! - -[TOSH2E1:TOSH2] -~w~El ~r~convoy~w~ se aproxima al ~y~recinto de los yakuza~w~. - -[TOSH2E2:TOSH2] -~w~Un ~r~furgón~w~ ya está casi en el ~y~recinto de los yakuza~w~. - -{=================================== MISSION TABLE TOSH3 ===================================} - -[TOSH3M1:TOSH3] -~w~¿Hay alguien en casa? - -[TOSH3M2:TOSH3] -~w~¿Sr. Toni? Un momento, por favor... - -[TOSH3M3:TOSH3] -~w~Mi esposo está enfadado. - -[TOSH3EA:TOSH3] -~w~Se pregunta cómo llegó usted a enterarse con tanta precisión de dónde y cuándo atacar. - -[TOSH3M4:TOSH3] -~w~A menos que sea necio, lo descubrirá pronto. - -[TOSH3M5:TOSH3] -~w~Deberíamos ayudarle. Sus hombres chismorrean como viejas. - -[TOSH3EB:TOSH3] -~w~Vamos a darles algo de lo que hablar. - -[TOSH3M6:TOSH3] -~w~¿Adónde vamos? - -[TOSH3M7:TOSH3] -~w~A la ópera. - -[TOSH3M8:TOSH3] -~w~¿A la ópera? ¿Yo? ¿Bromea? - -[TOSH3M9:TOSH3] -~w~No sea ridículo, Sr. Toni. A todo el mundo le gusta la ópera. - -[TOSH3A:TOSH3] -~w~Si me trae el coche, podremos ir a recoger su esmoquin. - -[TOSH3EC:TOSH3] -~w~No tenemos mucho tiempo, va a empezar pronto. - -[TOSH3B:TOSH3] -~w~Trae el ~b~coche de Toshiko~w~. - -[TOSH3C:TOSH3] -~w~Recoge a ~b~Toshiko~w~. - -[TOSH3C2:TOSH3] -~w~Hazte con un esmoquin en ~y~Mr. Benz~w~. - -[TOSH3B3:TOSH3] -~w~Lleva a Toshiko de vuelta a su ~y~apartamento~w~. - -[TOSH3B4:TOSH3] -~r~Has dejado atrás a Toshiko. - -[TOSH3B2:TOSH3] -Vuelve al ~b~coche de Toshiko~w~. - -[TOSH3C3:TOSH3] -~w~Ve a la ~y~ópera~w~. - -[TOSH3D:TOSH3] -~w~¿Adónde va? ¡Vamos a llegar tarde! - -[TOSH3D2:TOSH3] -~w~Por favor, no me deje aquí, Toni-san. - -[TOSH3Z1:TOSH3] -~w~¿Cree que soy una mala persona, Sr. Toni? - -[TOSH3Z2:TOSH3] -~w~Princesa, no soy lo que se dice un santo. - -[TOSH3Z3:TOSH3] -~w~No... Un santo no es lo que me hace falta. - -[TOSH3Z4:TOSH3] -~w~Mi marido es un samurái, Sr. Toni. - -[TOSH3Z5:TOSH3] -~w~Es muy fuerte... pero muy, muy malo. - -[TOSH3Z6:TOSH3] -~w~Solo se casó conmigo para ser el waka-gashira de Liberty City. - -[TOSH3Z7:TOSH3] -~w~Nunca me ha amado... Prefiere la compañía de sus hombres. - -[TOSH3Z8:TOSH3] -~w~¿Comprende? - -[TOSH3Z9:TOSH3] -~w~Sepa que, cuando descubra lo que está usted haciendo, querrá matarle. - -[TOSH3Z0:TOSH3] -~w~Ya no me importan la vida o la muerte, solo la libertad. - -[TOSH3ZB:TOSH3] -~w~Qué visión del mundo tan relajante. - -[TOSH3E:TOSH3] -~w~La sangre italiana no se mezcla con la nipona. - -[TOSH3F:TOSH3] -~w~¡Pero se mezclarán bien en la acera! - -[TOSH3G:TOSH3] -~w~Protege a Toshiko y escapa en ~b~su coche~w~. - -[TOSH3H:TOSH3] -~w~Protege a ~b~Toshiko~w~ y llévala a su ~y~apartamento~w~. - -[TOSH3S1:TOSH3] -~w~¡Mi coche! - -[TOSH3S2:TOSH3] -~w~¡Sálvenos, Toni! - -[TOSH3S3:TOSH3] -~w~¡Vamos, Toni! - -[TOSH3S4:TOSH3] -~w~¡Sáquenos de aquí! - -[TOSH3S5:TOSH3] -~w~¡SÁLVEME! - -[TOSH3S6:TOSH3] -~w~¡SOCORRO! - -[TOSH3S7:TOSH3] -~w~¡No vamos a conseguirlo! - -[TOSH3S8:TOSH3] -~w~¡SOCORRO! - -[TOSH3S9:TOSH3] -~r~¡Toshiko ha muerto! - -[TOSH310:TOSH3] -~r~¡El coche de Toshiko ha quedado destruido! - -[TOSH311:TOSH3] -~r~¡Se te ha acabado el tiempo! - -[TOSH3_1:TOSH3] -NONE - -[TOS3NE1:TOSH3] -~w~Protege a Toshiko y mata a los ~r~gánsteres Forelli~w~. - -[TOS3NE2:TOSH3] -~w~Escapa en el ~b~coche de Toshiko~w~. - -[TOSH3EI:TOSH3] -~w~La ópera empieza a las 20:00. ¡Sé puntual! - -{=================================== MISSION TABLE TOSH4 ===================================} - -[TOSH4O2:TOSH4] -~w~El helicóptero de Kazuki se dirige al ~y~casino~w~. - -[TOSH4O4:TOSH4] -~w~¡Mata a ~r~Kazuki~w~! - -[TOSH4O5:TOSH4] -~w~Ve al ~y~apartamento de Toshiko~w~. - -[TOSH4_3:TOSH4] -~w~Kazuki llega en ese helicóptero. Ábrete paso hasta el helipuerto y mátalo. - -[TOSH4Y1:TOSH4] -~w~¡A por él! - -[TOSH4Y2:TOSH4] -~w~¡Matadlo! - -[TOSH4CA:TOSH4] -~w~Mis hombres me deshonran... - -[TOSH4CB:TOSH4] -~w~Es más adecuado que te mate yo mismo. - -[TOSH4CC:TOSH4] -~w~¡Vosotros dos! ¡Dejadnos solos! - -[TOSH4CD:TOSH4] -~w~Voy a disfrutar cuando te atraviese con la espada. - -[TOSH4CE:TOSH4] -~w~Sí, ya he oído hablar de ti. - -[TOSH4K1:TOSH4] -~w~¡Matadlo! - -[TOSH4K2:TOSH4] -~w~¡Matadlo! - -[TOSH4_7:TOSH4] -~w~Llévale la espada de Kazuki a Toshiko como prueba de que ha muerto. - -[TOSH4_8:TOSH4] -~w~¡Has espantado a Kazuki! ¡Se escapa! .¡Has perdido la oportunidad de matarlo! - -[TOSH4_C:TOSH4] -Kazuki - -[TOSH4AA:TOSH4] -~w~¿Hola? - -[TOSH4AB:TOSH4] -~w~Me estoy bañando, Toni-san. - -[TOSH4AC:TOSH4] -~w~Nos queda poco tiempo. - -[TOSH4AD:TOSH4] -~w~Mi marido ya sabe quién está en realidad detrás de sus derrotas. - -[TOSH4AE:TOSH4] -~w~Va a venir a matarme... y a usted de paso. - -[TOSH4AF:TOSH4] -~w~Bueno, no voy a quedarme aquí esperándole. ¿Dónde está? - -[TOSH4AG:TOSH4] -~w~En Belleville, reuniendo a sus hombres. - -[TOSH4AJ:TOSH4] -~w~Pero pronto estará aquí. - -[TOSH4AH:TOSH4] -~w~Sayonara, preciosa. - -[TOSH4AI:TOSH4] -~w~Mis plegarias van con usted, Toni-san. Buena suerte. - -[TOSH4F1:TOSH4] -~r~¡Kazuki se ríe de ti! - -[TOSH4OA:TOSH4] -~w~¡Mata a los ~r~guardias~w~ de Kazuki! - -[TOSH4OB:TOSH4] -~w~¡Vuelve a la casa de ~y~Kazuki~w~! - -[TOSH4OC:TOSH4] -~w~¡Cuidado, que vienen más ~r~yakuza~w~! - -[TOSH4DA:TOSH4] -~w~¡Disparadle! - -[TOSH4DB:TOSH4] -~w~¡Matadlo! - -[TOSH4DC:TOSH4] -~w~¡Matadlo, capullos! - -[TOSH4O1:TOSH4] -~w~Ve a ~y~casa de Kazuki~w~ y mátalo. - -[TOSH4O3:TOSH4] -~w~Dirígete al ~y~helipuerto~w~. - -[CASH_01:TOSH4] -Esto, eh... Toshiko. Asunto resuelto. - -[CASH_02:TOSH4] -Sí, sí, ya lo sé... Hola, señor Toni. - -[CASH_03:TOSH4] -Eh. Así que... usted ha ganado. - -[CASH_04:TOSH4] -Tiene lo que quería. Todo ha salido a pedir de boca. - -[CASH_06:TOSH4] -Estupendo, sí, estupendo. Magnífico. - -[CASH_07:TOSH4] -Entonces... es hora de pagar, tesoro... - -[CASH_08:TOSH4] -Ambos somos unos asesinos insensatos, señor Toni. - -[CASH_09:TOSH4] -Supongo que sí. - -[CASH_10:TOSH4] -El mundo le pasa una factura tan terrible al espíritu, ¿no le parece, señor Toni? - -[CASH_11:TOSH4] -Supongo. - -[CASH_12:TOSH4] -Pero ahora es libre. Es decir, puede irse a Costa Rica o Aruba o adónde sea. - -[CASH_13:TOSH4] -Empezar de cero, que es lo que siempre quiso. - -[CASH_14:TOSH4] -No creo que esté lista para irme a la playa, señor Toni. - -[CASH_15:TOSH4] -Lo he perdido todo, y lo he hecho deliberadamente. - -[CASH_16:TOSH4] -Se me ha concedido cuanto pedí. - -[CASH_17:TOSH4] -Ahora solo quiero ser libre de verdad. - -[CASH_18:TOSH4] -Sayonara, Toni-san. - -{=================================== MISSION TABLE COPCAR ===================================} - -[C_COMP1:COPCAR] -~w~Misión de vigilante: nivel 12 completado. Aumenta la protección del blindaje corporal. - -[C_BREIF:COPCAR] -~r~Sospechoso~w~ visto por última vez por ~a~. - -[C_BREIG:COPCAR] -~r~Sospechosos~w~ vistos por última vez por ~a~. - -[C_RANGE:COPCAR] -~r~La radio del coche patrulla no recibe nada, ¡acércate a una comisaría! - -[C_TIMEA:COPCAR] -~w~¡Bonif. de tiempo! +~1~ s. - -[COPCART:COPCAR] -~w~Tienes ~1~ s. para volver al vehículo policial antes de que termine la misión. - -[COPCARU:COPCAR] -~w~Tienes ~1~ s. para volver al vehículo policial antes de que termine la misión. - -[C_CANC:COPCAR] -~r~¡Misión de vigilante cancelada! - -[C_TIME:COPCAR] -~r~¡Tu tiempo como justiciero ha terminado! - -[C_PASS3:COPCAR] -~w~¡AMENAZA ELIMINADA! Recompensa: ~1~ $ - -[C_LEVEL:COPCAR] -~r~¡Has dejado que los criminales se escapen! - -[C_RANG2:COPCAR] -~r~La radio de la policía no funciona en el metro. - -{=================================== MISSION TABLE CARS ===================================} - -[CARS_10:CARS] -Sube a un coche para probarlo o sal del aparcamiento para cancelar la misión. - -[CARS_12:CARS] -~w~Si bajas del coche, fallarás la misión. - -[CARS_1:CARS] -~w~Lleva a uno de los clientes a probar un vehículo. - -[CARS_2:CARS] -~w~Tendrás que discernir qué prestaciones quiere cada cliente en un coche. - -[CARS_3:CARS] -~w~Luego usa tu habilidad para demostrarles que el coche tiene exactamente lo que quieren. - -[CARS_5:CARS] -~w~Impresiona al cliente. - -[CARS_6:CARS] -~w~¡Cliente fastidiado! ¡Elige un coche diferente! - -[CARS_30:CARS] -~w~¡Vuelve al ~y~aparcamiento~w~ para cerrar el trato! - -[CARS_C1:CARS] -~w~¡Muy bien, tío! Sacándote a la poli de encima, ¿eh? - -[CARS_C2:CARS] -~w~¡Sí! ¡Esa rata se lo merecía! - -[CARS_P1:CARS] -~w~¡Guau! ¡Este carro es supersónico! - -[CARS_P2:CARS] -~w~¡Yujuuuu! - -[CARS_P3:CARS] -~w~¡Mi abuelita va a esta velocidad! - -[CARS_P4:CARS] -~w~¿Y esto tiene airbag? - -[CARS_M1:CARS] -~w~Ah, qué paseíto más relajante. - -[CARS_M2:CARS] -~w~¿Sabe cuál es el límite de velocidad aquí? - -[CARS_M3:CARS] -~w~¡Ay, Dios mío! ¡Nos vamos a matar! - -[CARS_O1:CARS] -~w~¡Oh, sí! ¡Sin asfalto que nos estorbe! - -[CARS_O2:CARS] -~w~¡Hasta el cielo, colega! - -[CARS_O3:CARS] -~w~¡Vuelta de la hostia, tío! - -[CARS_SC:CARS] -~w~Venta cerrada. Comisión: ~1~ $ Bonif. tiempo: ~1~ s. - -[CARS_SD:CARS] -~w~Nivel ~1~ completado. Comisión: ~1~ $ Bonif. tiempo: ~1~ s. - -[CARS_IR:CARS] -¡~1~ SEGUIDOS! ¡Bonificación! ~1~ $ - -[CARS_RE:CARS] -~w~¡Un incentivo para el vendedor estrella! - -[CARSIC1:CARS] -~w~Necesito algo jodido de alcanzar, tío. - -[CARSIC2:CARS] -~w~Necesito una máquina para que los 'peatontos' se caguen. - -[CARSIP1:CARS] -~w~¡Esta preciosidad parece rápida! - -[CARSIP2:CARS] -~w~¡Jo, tío! ¡Seguro que este buga vuela y todo! - -[CARSIM1:CARS] -~w~Dicen que estos vehículos son lentos pero seguros. - -[CARSIM2:CARS] -~w~Desde que me operaron, necesito coches más lentos. - -[CARSIO1:CARS] -~w~¡Cómo se agarra! ¡Vamos por el campo! - -[CARSIO2:CARS] -~w~Mi colega hace unos trompos que te cagas con su buga. ¡Me flipan! - -[CARS_N1:CARS] -~w~¡No voy a comprar este trasto! - -[CARS_N2:CARS] -~w~¿Te crees que voy a comprar esto? - -[CARS_N3:CARS] -~w~¡Todos los vendedores de coches usados sois iguales! - -[CARS_Y1:CARS] -~w~¡Me lo llevo! - -[CARS_Y2:CARS] -~w~¡Es el coche perfecto para mí! - -[CARS_Y3:CARS] -~w~¡Trato hecho! - -[CARS_R1:CARS] -~w~Me gusta el coche, pero no el color... - -[CARS_R2:CARS] -~w~Repinta el coche. - -[CARS_D1:CARS] -~w~Me gusta, pero está un poco cascado. - -[CARS_D2:CARS] -~w~Lleva el coche a reparar. - -[CARS_F1:CARS] -~r~¡Has destruido el coche! - -[CARS_F2:CARS] -~r~¡Has matado al cliente! - -[CARS_F3:CARS] -~r~¡Has tardado demasiado! ¡El cliente se ha aburrido! - -[CARS_F4:CARS] -~r~¡Al cliente no le gusta el coche! - -[CARS_F5:CARS] -~r~Tu trabajo de vendedor de coches se ha terminado. - -[CARS_F6:CARS] -~r~Al cliente no le gusta el coche, ¡lo has destrozado! - -[CARS_F7:CARS] -~r~Al cliente no le gusta el coche, ¡has ido demasiado rápido! - -[CARS_F8:CARS] -~r~Al cliente no le gusta el coche, ¡has ido demasiado lento! - -[CARS_SA:CARS] -Venta - -[CARS_7:CARS] -~w~¡Sube a un ~b~coche~w~! - -[CARS_RF:CARS] -~w~Capital Autos ahora está bajo tu 'protección'. No dejes de recoger los pagos regularmente. - -{=================================== MISSION TABLE BIKE ===================================} - -[BIKE_10:BIKE] -~w~Sube a una moto para probarla o sal de la pista para cancelar la misión. - -[BIKE_12:BIKE] -~w~Si bajas de la moto, fallarás la misión. - -[BIKE_1:BIKE] -~w~Lleva a uno de los clientes a probar un vehículo. - -[BIKE_2:BIKE] -~w~Tendrás que discernir qué prestaciones quiere cada cliente en una moto. - -[BIKE_3:BIKE] -~w~Luego usa tu habilidad para demostrarles que la moto tiene exactamente lo que quieren. - -[BIKE_5:BIKE] -~w~Impresiona al cliente. - -[BIKE_30:BIKE] -~w~¡Vuelve a la ~y~tienda de motos~w~ para cerrar el trato! - -[BIKE_C1:BIKE] -~w~¡Muy bien, tío! Sacándote a la poli de encima, ¿eh? - -[BIKE_C2:BIKE] -~w~¡Sí! ¡Esa rata se lo merecía! - -[BIKE_P1:BIKE] -~w~¡Sí! ¡Esta moto es impresionante! - -[BIKE_P2:BIKE] -~w~¡Bien! - -[BIKE_P3:BIKE] -~w~Vamos, ¿no puedes ir más rápido? - -[BIKE_P4:BIKE] -~w~¡Cuidado! - -[BIKE_M1:BIKE] -~w~Ah, qué vueltecita más relajante. - -[BIKE_M2:BIKE] -~w~¿Sabe cuál es el límite de velocidad aquí? - -[BIKE_M3:BIKE] -~w~¡Ay, Dios mío! ¡Nos vamos a matar! - -[BIKE_O1:BIKE] -~w~¡Oh, sí! ¡Sin asfalto que nos estorbe! - -[BIKE_O2:BIKE] -~w~¡Hasta el cielo, colega! - -[BIKE_O3:BIKE] -~w~¡Unas acrobacias del copón! - -[BIKE_SC:BIKE] -~w~Venta cerrada. Comisión: ~1~ $ Bonif. tiempo: ~1~ s. - -[BIKE_IR:BIKE] -¡~1~ SEGUIDOS! ¡Bonificación! ~1~ $ - -[BIKE_RE:BIKE] -~w~¡Un incentivo para el vendedor estrella! - -[BIKE_RF:BIKE] -~w~Hogs & Cogs ahora está bajo tu 'protección'. No dejes de recoger los pagos regularmente. - -[BIKEIC1:BIKE] -~w~Necesito algo jodido de alcanzar, tío. - -[BIKEIC2:BIKE] -~w~Necesito una máquina para que los 'peatontos' se caguen. - -[BIKEIP1:BIKE] -~w~¡Este pepino parece rápido! - -[BIKEIP2:BIKE] -~w~¡Quiero algo que impresione a las chicas! - -[BIKEIM1:BIKE] -~w~Dicen que estos vehículos son lentos pero seguros. - -[BIKEIM2:BIKE] -~w~Aún estoy un poco débil, así que necesito una moto lenta. - -[BIKEIO1:BIKE] -~w~¡Cómo se agarra! ¡Vamos por el campo! - -[BIKEIO2:BIKE] -~w~Estos cacharros hacen unas acrobacias de muerte, ¿no? - -[BIKE_N1:BIKE] -~w~¡No voy a comprar este trasto! - -[BIKE_N2:BIKE] -~w~¿Te crees que voy a comprar esto? - -[BIKE_N3:BIKE] -~w~¡Todos los vendedores de motos usadas son iguales! - -[BIKE_Y1:BIKE] -~w~¡Me la llevo! - -[BIKE_Y2:BIKE] -~w~¡Es la moto perfecta para mí! - -[BIKE_Y3:BIKE] -~w~¡Trato hecho! - -[BIKE_R1:BIKE] -~w~Me gusta la moto, pero no el color... - -[BIKE_R2:BIKE] -~w~Repinta la moto. - -[BIKE_D1:BIKE] -~w~Me gusta, pero está un poco cascada. - -[BIKE_D2:BIKE] -~w~Repara la moto. - -[BIKE_F1:BIKE] -~r~¡Has destruido la moto! - -[BIKE_F2:BIKE] -~r~¡Has matado al cliente! - -[BIKE_F3:BIKE] -~r~¡Has tardado demasiado! ¡El cliente se ha aburrido! - -[BIKE_F4:BIKE] -~r~¡Al cliente no le gusta la moto! - -[BIKE_F5:BIKE] -~r~Tu trabajo de vendedor de motos se ha terminado. - -[BIKE_F6:BIKE] -~r~Al cliente no le gusta la moto, ¡la has destrozado! - -[BIKE_F7:BIKE] -~r~Al cliente no le gusta la moto, ¡has ido demasiado rápido! - -[BIKE_F8:BIKE] -~r~Al cliente no le gusta la moto, ¡has ido demasiado lento! - -[BIKE_B1:BIKE] -~w~¡Tienes ~1~ s. para volver a subir a la ~b~moto~w~! - -[BIKE_B2:BIKE] -~w~Que el ~b~cliente~w~ vuelva a subir a la moto. - -[BIKE_B3:BIKE] -~w~¡Deja que el ~b~cliente~w~ se suba a la moto! - -[BIKE_SA:BIKE] -Venta - -[BIKE_7:BIKE] -~w~¡Sube a una ~b~moto~w~! - -[BIKE_S1:BIKE] -~w~¡Has vendido todas las Freeway que teníamos en stock! - -[BIKE_S2:BIKE] -~w~¡Has vendido todas las PCJ-600 que teníamos en stock! - -[BIKE_S3:BIKE] -~w~¡Has vendido todas las Faggio que teníamos en stock! - -[BIKE_S4:BIKE] -~w~¡Has vendido todas las Sánchez que teníamos en stock! - -[BIKE_SN:BIKE] -~w~¡Han llegado nuevas existencias! - -{=================================== MISSION TABLE RAC1 ===================================} - -[RAC1_A0:RAC1] -~w~Demuestra que no conduces de pena y ponte en la línea de salida de la carrera callejera. - -{=================================== MISSION TABLE RAC2 ===================================} - -[RAC2_A0:RAC2] -~w~Eh, sobran las palabras, va a haber una carrera callejera. Pon tu carro en la línea de salida. - -{=================================== MISSION TABLE RAC3 ===================================} - -[RAC3_A0:RAC3] -~w~No hay coche más rápido. Ni conductor más intrépido. - -[RAC3_A1:RAC3] -~w~Te veré en la próxima carrera callejera... por el retrovisor. - -{=================================== MISSION TABLE BIK1 ===================================} - -[BIK1_A0:BIK1] -~w~¿Crees que me puedes adelantar? ¡Lo llevas claro, pardillo! - -[BIK1_A1:BIK1] -~w~¡Pon tu moto en la parrilla de salida y empecemos de una vez! - -{=================================== MISSION TABLE BIK2 ===================================} - -[BIK2_A0:BIK2] -~w~Si crees que puedes ganarme, demuéstramelo con la burra. - -[BIK2_A1:BIK2] -~w~Te veo en la línea de salida. - -{=================================== MISSION TABLE BIK3 ===================================} - -[BIK3_A0:BIK3] -~w~Es muy sencillo. A dos ruedas, soy imbatible. Voy a demostrarlo en la calle. - -{=================================== MISSION TABLE TT1 ===================================} - -[TT1_A0:TT1] -~w~~k~ ~AMBUY~ ~w~ correr. ~n~~k~ ~AMEXI~ ~w~ salir. - -[TT1_0:TT1] -Tiempo - -[TT1_1:TT1] -~w~Nuevo récord de vuelta ~1~:~1~ - -[TT1_1A:TT1] -~w~Nuevo récord de vuelta ~1~:0~1~ - -[TT1_C1:TT1] -~w~3 - -[TT1_C2:TT1] -~w~2 - -[TT1_C3:TT1] -~w~1 - -[TT1_C4:TT1] -~w~¡YA! - -[TT1_D1A:TT1] -~w~Altura: ~1~ pies - -[TT1_D2:TT1] -~w~Tiempo de la vuelta ~1~ ~1~:~1~ - -[TT1_D3:TT1] -~w~Tiempo de la vuelta ~1~ ~1~:0~1~ - -[TT1_D4:TT1] -~w~Vuelta - -[TT1_F2:TT1] -~r~¡Has abandonado la carrera! - -[TT1_F3:TT1] -~r~¡Has destruido la moto! - -[TT1_D5A:TT1] -~w~Altura: ~1~ pies. Bonif.: 10 $ - -[TT1_D1:TT1] -~w~Altura: ~1~ m. - -[TT1_D5:TT1] -~w~Altura: ~1~ m. Bonif.: 10 $ - -[TT1_2:TT1] -~w~¡Has superado la marca! Desbloqueado el siguiente trazado. ¡Bonif. de 100 $! - -[TT1_3:TT1] -~w~¡Has superado la marca! ¡Bonif. de 100 $! - -[TTDONE:TT1] -~w~¡Completados todos los trazados! Has desbloqueado la Mánchez. - -[TT1_2A:TT1] -~r~No has conseguido superar la marca. - -[TT1_2B:TT1] -~r~No has conseguido batir el récord del trazado. - -{=================================== MISSION TABLE RCR ===================================} - -[RCRACE3:RCR] -~w~Derrota a los demás vehículos de RC en una carrera de ~1~ vuelta(s) por el parque. - -[RCRACE4:RCR] -~w~Derrota a los demás vehículos de RC en una carrera de ~1~ vuelta(s) por el aeropuerto. - -[RCRACE7:RCR] -~w~Preparados... - -[RCRLAP5:RCR] -~w~Nuevo récord: ¡vuelta en ~1~ s.! - -[RCRLAP6:RCR] -~w~¡~1~ vueltas para terminar! - -[RCRLAP7:RCR] -~w~¡Última vuelta! - -[RCRLTME:RCR] -Tiempo de vuelta - -[RCRLOSE:RCR] -~r~¡Has perdido! ¡Siempre llegas tarde! - -[RCRLOS2:RCR] -~r~¡Nunca ganarás una carrera si te sales del recorrido! - -[RCRTIME:RCR] -~w~Tienes ~h~~1~ ~w~s. para volver al recorrido. - -[RCRWIN1:RCR] -~w~¡Felicidades! Has ganado pero no has batido el récord de vuelta. - -[RCRWIN2:RCR] -~w~La próxima carrera será a ~1~ vueltas. - -[RCRWIN3:RCR] -~w~Ya está disponible la carrera de RC en el parque de Belleville, Staunton. - -[RCRWIN4:RCR] -~w~Ya está disponible la carrera de RC en el aeropuerto de Shoreside. - -[RCRWIN5:RCR] -~w~¡Ya has superado todos los niveles! ¡Ahora ve y bate tus récords de vuelta! - -[RCR1:RCR] -~w~1 - -[RCR2:RCR] -~w~2 - -[RCR3:RCR] -~w~3 - -[RCRGO:RCR] -~w~¡YA! - -[RCBLAP:RCR] -El mejor tiempo de vuelta es de ~1~:~1~ - -[RCBLAP1:RCR] -El mejor tiempo de vuelta es de ~1~:0~1~ - -[RCBLA2:RCR] -Tiempo de vuelta récord de ~1~:~1~ - -[RCBLA3:RCR] -Tiempo de vuelta récord de ~1~:0~1~ - -[RCRRLA1:RCR] -~w~Nuevo récord: ¡vuelta en ~1~:~1~! - -[RCRRLA2:RCR] -~w~Nuevo récord: ¡vuelta en ~1~:0~1~! - -[RCRACEA:RCR] -Thrashin' RC - -[RCRACEB:RCR] -Ragin' RC - -[RCRACEC:RCR] -Chasin' RC - -[RCLE11:RCR] -NIVEL UNO de Thrashin' RC - -[RCLE12:RCR] -NIVEL DOS de Thrashin' RC - -[RCLE13:RCR] -NIVEL TRES de Thrashin' RC - -[RCLE21:RCR] -NIVEL UNO de Ragin' RC - -[RCLE22:RCR] -NIVEL DOS de Ragin' RC - -[RCLE23:RCR] -NIVEL TRES de Ragin' RC - -[RCLE31:RCR] -NIVEL UNO de Chasin' RC - -[RCLE32:RCR] -NIVEL DOS de Chasin' RC - -[RCLE33:RCR] -NIVEL TRES de Chasin' RC - -[RCRACE2:RCR] -~w~Derrota a los demás vehículos de RC en una carrera de ~1~ vuelta(s) por las obras. - -[RCRWIN6:RCR] -~w~Vuelve a correr para intentar superar tu mejor vuelta. - -[RCQUIT:RCR] -~r~¿Te estás quedando sin batería? - -[RCRFAIL:RCR] -~r~¡No has conseguido llegar el primero! - -[RCRLAP1:RCR] -~c~1ª ~w~VUELTA - -[RCRLAP2:RCR] -~c~2ª ~w~VUELTA - -[RCRLAP3:RCR] -~c~3ª ~w~VUELTA - -[RCRLAP4:RCR] -~c~4ª ~w~VUELTA - -[RCRWIN:RCR] -~w~¡Felicidades! ¡Has ganado con un mejor tiempo de vuelta de ~1~:~1~! ¡500 $ de bonif.! - -[RCRWINB:RCR] -~w~¡Felicidades! ¡Has ganado con un mejor tiempo de vuelta de ~1~:0~1~! ¡500 $ de bonif.! - -{=================================== MISSION TABLE TOUR ===================================} - -[TOUR_H1:TOUR] -~w~Consejo: ponte ~h~delante~w~ del turista, ~h~no muy lejos~w~. Asegúrate de que el ~h~turista y el escenario de fondo~w~ salgan en la foto. - -[TOUR_I2:TOUR] -~w~Recibirás gratificaciones adicionales por fotos de gran calidad. - -[TOUR_S0:TOUR] -~w~Te queda carrete para ~h~~1~~w~ fotos. - -[TOUR_S1:TOUR] -~w~Solo te queda carrete para una foto. ¡Asegúrala! - -[TOUR_S2:TOUR] -~w~¡No desperdicies carrete! Solo te queda para ~h~~1~~w~ fotos. - -[TOUR_S4:TOUR] -~w~Tienes que encuadrar bien al ~b~turista~w~. Te queda carrete para ~h~~1~~w~ fotos. - -[TOUR_F1:TOUR] -~r~¡El turista ha muerto! - -[TOUR_F2:TOUR] -~r~¡Has perdido al turista! - -[TOUR_F3:TOUR] -~r~¡No le has sacado una foto al turista! - -[TOUR_F4:TOUR] -~r~¡Se te ha acabado el tiempo! - -[TOUR_F5:TOUR] -~r~Cancelada la misión del turista. - -[TOUR_F6:TOUR] -~r~¡El tironero se ha escapado con la cámara del turista! - -[TOUR_O1:TOUR] -~w~Lleva al turista al ~y~lugar turístico~w~. - -[TOUR_O2:TOUR] -~w~No dejes atrás al ~b~turista~w~. - -[TOUR_O3:TOUR] -~w~Sigue al ~b~turista~w~ a pie hasta el lugar de la foto. - -[TOUR_O4:TOUR] -~w~Usa la cámara del propio ~b~turista~w~ para sacar la foto. - -[TOUR_O5:TOUR] -~w~Lleva al turista de vuelta al ~y~aeropuerto~w~. - -[TOUR_O6:TOUR] -~w~¡Rápido! ¡Se acaba el tiempo! - -[TOUR_O7:TOUR] -~w~Recoge al ~b~turista~w~. - -[TOUR_O8:TOUR] -~w~Recoge al siguiente ~b~turista~w~ antes de que se acabe el tiempo. - -[TOUR_O9:TOUR] -~w~Tendrías que estar siguiendo al ~b~turista~w~. Estás perdiendo el tiempo. - -[TOUR_OA:TOUR] -~w~El ~b~turista~w~ espera a que le saques la foto. Date prisa, ¡el tiempo se agota! - -[TOUR_W1:TOUR] -~w~Tarifa pagada: ~h~~1~ $~w~ No hay gratificación esta vez. - -[TOUR_W2:TOUR] -~w~Tarifa pagada: ~h~~1~ $~w~ más gratificación de ~h~~1~ $~w~ por una buena foto. - -[TOUR_W3:TOUR] -~w~Tarifa pagada: ~h~~1~ $~w~ más gratificación de ~h~~1~ $~w~ por una foto estupenda. - -[TOUR_W4:TOUR] -~w~Tarifa pagada: ~h~~1~ $~w~ más gratificación de ~h~~1~ $~w~ por una foto excelente. - -[TOUR_W5:TOUR] -~w~¡Bien hecho! Completadas todas la misiones 'See the Sight...' ~1~ $ de gratificación por terminarlas. - -[TOURDAM:TOUR] -~w~VISTA ~1~: ~w~Lleva a este turista a la presa de Cochrane y sácale una foto que demuestre que ha estado allí. - -[TOURBRI:TOUR] -~w~VISTA ~1~: ~w~Esta señorita quiere ver el puente Callahan desde el lado de Portland. - -[TOURDRK:TOUR] -~w~VISTA ~1~: ~w~Sácale una foto a esta fan de las películas de Black Lightman delante de la casa de éste, en Cedar Grove, Shoreside Vale. - -[TOURSTA:TOUR] -~w~VISTA ~1~: ~w~Sácale una foto a esta loca del deporte delante del Liberty Memorial Coliseum, en Staunton. - -[TOURCHU:TOUR] -~w~VISTA ~1~: ~w~Guía a este peregrino a la histórica catedral de Liberty, en Staunton. - -[TOURBCH:TOUR] -~w~VISTA ~1~: ~w~Muestra a esta turista las bellas vistas de Portland Rock y su faro desde la playa de Portland. - -[TOURCHI:TOUR] -~w~VISTA ~1~: ~w~El ambiente oriental de Chinatown Plaza, en Portland, es el exótico destino de este turista. - -[TOURSHO:TOUR] -~w~VISTA ~1~: ~w~Esta turista quiere que sus amigas piensen que ha comprado en los selectos grandes almacenes de Staunton. Llévala allí y sácale una foto. - -[TOURCAS:TOUR] -~w~VISTA ~1~: ~w~Aquí un jugador que quiere sacarse una foto delante del mundialmente famoso casino de Staunton. - -[TOURMUS:TOUR] -~w~VISTA ~1~: ~w~Esta investigadora quiere visitar el museo en Staunton y obtener una imagen del edificio. - -[TOURHAL:TOUR] -~w~VISTA ~1~: ~w~Este turista quiere visitar el ayuntamiento, en Staunton, una vez más antes de irse. - -[TOURRED:TOUR] -~w~VISTA ~1~: ~w~Sus amigos dicen que no se atreve a visitar un club de striptease del Red Light District de Portland. ¡Demuéstrales que sí! - -[TOURMU0:TOUR] -~w~¡El ~r~tironero~w~ le ha robado la cámara! ¡Recúperala! - -[TOURMU1:TOUR] -~w~¡Un chorizo menos del que preocuparse! Recoge la ~g~cámara~w~. - -[TOUR00:TOUR] -~w~Lleva al turista a la ~y~presa de Cochrane~w~, en Shoreside Vale. - -[TOUR01:TOUR] -~w~Lleva a la turista al ~y~Liberty Memorial Coliseum~w~, en Staunton. - -[TOUR02:TOUR] -~w~Lleva al turista a ~y~Chinatown Plaza~w~, en Portland. - -[TOUR03:TOUR] -~w~Lleva al turista a la ~y~catedral de Liberty~w~, en Staunton. - -[TOUR06:TOUR] -~w~Lleva al turista al ~y~club de striptease~w~ del Red Light District de Portland. - -[TOUR07:TOUR] -~w~Lleva a la turista al ~y~museo de Liberty City~w~, en Staunton. - -[TOUR08:TOUR] -~w~Lleva al turista al ~y~casino~w~ de Staunton. - -[TOUR10:TOUR] -~w~Lleva al turista al ~y~ayuntamiento~w~ en Staunton. - -[TOUR11:TOUR] -~w~Lleva a la turista a la ~y~playa de Portland~w~. - -[TOUR04:TOUR] -~w~Lleva a la turista al ~y~puente Callahan~w~, por el lado de Portland. - -[TOUR09:TOUR] -~w~Lleva a la turista a la ~y~casa del actor Black Lightman~w~, en Cedar Grove, Shoreside Vale. - -[TOUR_I1:TOUR] -~w~Lleva a los turistas a los parajes más famosos de Liberty City. - -[TOUR_IA:TOUR] -~w~Hazles fotos de recuerdo cuando estén allí. - -[TOUR_IB:TOUR] -~w~Luego, llévalos de vuelta al avión antes de que despegue. - -[TOURMEM:TOUR] -~w~VISTA ~1~: ~w~Este veterano quiere rendir homenaje a sus camaradas en el Liberty City War Memorial, en el parque de Belleville, Staunton. - -[TOUR05:TOUR] -~w~Lleva al turista al ~y~Liberty City War Memorial~w~, en el parque de Belleville, Staunton. - -{=================================== MISSION TABLE PIZZA ===================================} - -[PIZ1_06:PIZZA] -~w~Pulsa~h~ ~k~ ~TGSUB~ ~w~cuando estés en la moto para cancelar la misión. - -[PIZ1_02:PIZZA] -~w~¡Te has quedado sin pizzas! Vuelve al ~y~Joe's Pizza Restaurant~w~ para conseguir más. - -[PIZ1_07:PIZZA] -~r~¡Has matado al cliente! ¡Estás despedido! - -[PIZ1_08:PIZZA] -~r~¡Te has quedado sin tiempo y sin trabajo! - -[PIZ1_09:PIZZA] -~r~¡Has estrellado la moto! ¡Fuera de aquí! - -[PIZ1_11:PIZZA] -~w~Necesitas la ~b~moto de repartidor~w~ para hacer las entregas. - -[PIZ1_12:PIZZA] -Pizzas - -[PIZ1_13:PIZZA] -~w~¡Pizza! ¡Calentita y lista! ¡Me encanta! - -[PIZ1_14:PIZZA] -~w~¡Listas para repartir! ¡Venga! - -[PIZ1_15:PIZZA] -~w~¡Ésta lleva extra de picante! - -[PIZ1_16:PIZZA] -~w~¡Deja de tocarte los huevos y repártelas! ¡'Pronto'! - -[PIZ1_17:PIZZA] -~w~¡Estas pizzas hay que repartirlas hoy, no el año que viene! - -[PIZ1_18:PIZZA] -~w~¿Repartir pizzas no está a su altura? Usted perdone, señor doctor. - -[PIZ1_19:PIZZA] -~w~¿Vas a repartirlas o qué? - -[PIZ1_20:PIZZA] -~w~¡Despedido! Es broma... ¡Pero no lo será si no las entregas a tiempo! - -[PIZ1_21:PIZZA] -~w~¡Pizzas! ¡Vamos! ¡Hay gordos esperándolas! - -[PIZ1_22:PIZZA] -~w~¿Has estado escupiendo en las pizzas? ¡Pues deberías! ¡Les da más saborcito! - -[PIZ1_23:PIZZA] -~w~¿Crees que van a repartirse solas? - -[PIZ1_24:PIZZA] -~w~¡Si llegan frías, no va a pagarte ni Dios! - -[PIZ1_25:PIZZA] -~w~¡Esta vez date caña! - -[PIZ1_26:PIZZA] -~w~¡Eh, reparte esto! - -[PIZ1_27:PIZZA] -~w~Vale, entrega éstas y vuelve a por más. - -[PIZ1_28:PIZZA] -~w~¡Nuestras pizzas son la polla! ¡Reparte éstas o te la corto! - -[PIZ1_29:PIZZA] -~w~¿Quieres más? Pues me he quedado sin insultos, colega. - -[PIZ1_30:PIZZA] -~w~¡Creo que he estornudado en una de ésas! No importa. ¡Repártelas! - -[PIZ1_31:PIZZA] -~w~¡Odio este trabajo! Pero al menos me dejan mangonearte. - -[PIZ1_3A:PIZZA] -~w~Si no llegan a tiempo, la pasta de la pizza será la única que veas hoy. - -[PIZ1_32:PIZZA] -~r~¿No tragas con nuestras pizzas? - -[PIZ1_33:PIZZA] -~w~Vuelve al ~y~Joe's Pizza Restaurant~w~ a por más pedidos. - -[PIZ1_34:PIZZA] -~w~¡Entrega realizada, dinero cobrado! - -[PIZ_WON:PIZZA] -~w~Completada la misión eventual de repartidor de pizzas, ¡bien hecho! ¡Ha aumentado tu salud máxima! - -[PIZ_WO1:PIZZA] -~w~Joe's Pizza Restaurant ahora está bajo tu 'protección'. No dejes de recoger los pagos regularmente. - -[PIZ1_01:PIZZA] -~w~Lleva estas pizzas a los ~b~clientes~w~ tan rápido como puedas. - -[PIZ1_05:PIZZA] -~w~Para entregarlas, lánzaselas en marcha a sus dueños. - -{=================================== MISSION TABLE TAXI ===================================} - -[TAXI1:TAXI] -~w~Busca un ~b~cliente~w~. - -[TAXI1A:TAXI] -~w~Por aquí no hay clientes. ¡Sigue buscando! - -[TAXI2:TAXI] -~r~¡Se te acabó el tiempo! - -[TAXI3:TAXI] -~w~¡El pasajero ha huido aterrorizado! - -[TAXI4:TAXI] -~w~Viaje completado: ~1~ $ - -[TAXI4A:TAXI] -~w~Viaje completado: ~1~ $ + bonif. por ~1~ SEGUIDOS: ~1~ $ - -[TAXI5:TAXI] -~w~BONIF. VELOCIDAD: ~1~ $ - -[TAXI5A:TAXI] -~w~BONIF. VELOCIDAD: ~1~ $ + bonif. por ~1~ SEGUIDOS: ~1~ $ - -[TAXI7:TAXI] -~w~El coche está dañado, llévalo a reparar. - -[TAXI8:TAXI] -~r~Misión de taxista cancelada. - -[TAXI9:TAXI] -~r~¡El taxi ha quedado destrozado! - -[FARES:TAXI] -Viajes - -[TIP:TAXI] -Propinas - -[FARE9:TAXI] -~w~Destino: ~y~los muelles de Portland~w~. - -[FARE20:TAXI] -~w~Destino: ~y~el parque~w~ de Belleville. - -[FARE22:TAXI] -~w~Destino: ~y~presa de Cochrane~w~. - -[FARE2:TAXI] -~w~Destino: ~y~Head Radio~w~, en Harwood. - -[FARE3:TAXI] -~w~Destino: ~y~el puerto del ferry~w~ de Harwood. - -[FARE4:TAXI] -~w~Destino: ~y~el hospital~w~ de Portland View. - -[FARE7:TAXI] -~w~Destino: ~y~las obras~w~ de Hepburn Heights. - -[FARE8:TAXI] -~w~Destino: ~y~Cipriani Restaurant~w~, en Saint Mark's. - -[FARE10:TAXI] -~w~Destino: ~y~Punk Noodles~w~, en Chinatown. - -[FARE12:TAXI] -~w~Destino: ~y~el puerto del ferry~w~ de Rockford. - -[FARE13:TAXI] -~w~Destino: ~y~la iglesia~w~ de Bedford Point. - -[FARE14:TAXI] -~w~Destino: ~y~oficinas del Liberty Tree~w~, en Bedford Point. - -[FARE15:TAXI] -~w~Destino: ~y~Liberty University~w~, en Liberty Campus. - -[FARE16:TAXI] -~w~Destino: ~y~Hogs 'n' Cogs~w~, en la zona del parque de Belleville. - -[FARE17:TAXI] -~w~Destino: ~y~los juzgados~w~, en la zona del parque de Belleville. - -[FARE18:TAXI] -~w~Destino: el ~y~Mr. Benz~w~ de Bedford Point. - -[FARE19:TAXI] -~w~Destino: ~y~Joe's Pizza~w~, en Bedford Point. - -[FARE21:TAXI] -~w~Destino: ~y~la terminal A~w~ del aeropuerto internacional Francis. - -[FARE23:TAXI] -~w~Destino: ~y~la mansión~w~ de Cedar Grove. - -[FARE24:TAXI] -~w~Destino: ~y~el hospital~w~ de Pike Creek. - -[FARE25:TAXI] -~w~Destino: ~y~el parque~w~ de Shoreside Vale. - -[FARE26:TAXI] -~w~Destino: ~y~North West Towers~w~, en Wichita Gardens. - -[FARE27:TAXI] -~w~Destino: ~y~las cocheras~w~, en Trenton. - -[FARE28:TAXI] -~w~Destino: ~y~el Mr. Benz~w~ de Chinatown. - -[FARE29:TAXI] -~w~Destino: ~y~el Mr. Benz~w~ de Pike Creek. - -[FARE30:TAXI] -~w~Destino: ~y~la terminal C~w~ del aeropuerto internacional Francis. - -[FARE31:TAXI] -~w~Destino: ~y~AM Petroleum~w~, en Pike Creek. - -[FARE32:TAXI] -~w~Destino: ~y~Liberty Pharmaceuticals~w~, en Pike Creek. - -[FARE11:TAXI] -~w~Destino: ~y~armería Phil Cassidy's Fully Cocked~w~, en Bedford Point. - -[FARE1A:TAXI] -~w~Destino: ~y~Paulie's Revue Bar~w~, en el Red Light District. - -[FARE1C:TAXI] -~w~Destino: ~y~Sex Club Seven~w~, en el Red Light District. - -[FARE5:TAXI] -~w~Destino: ~y~Ammu-Nation~w~, en el Red Light District. - -[FARE6:TAXI] -~w~Destino: ~y~Capital Autos~w~, en Saint Mark's. - -{=================================== MISSION TABLE AMBU ===================================} - -[A_FAIL2:AMBU] -~r~¡Has llegado tarde y el paciente no lo cuenta! - -[A_FAIL3:AMBU] -~r~¡El paciente ha muerto! - -[ATUTOR4:AMBU] -~w~Los golpes reducen las posibilidades de supervivencia del paciente. - -[A_TIME:AMBU] -~w~¡Recogido! +~1~ s. - -[A_TIME2:AMBU] -~w~¡Bonificación! +~1~ s. - -[AREWARD:AMBU] -~w~¡Nivel ~1~ completado! Recompensa: ~1~ $ - -[A_RANGE:AMBU] -~r~La radio de la ambulancia no recibe nada, ¡acércate a un hospital! - -[ATUTOR5:AMBU] -~w~Recoge a un ~b~paciente~w~. - -[ATUTOR6:AMBU] -~w~¡Llévalo al ~y~hospital~w~! - -[ATUTOR7:AMBU] -~w~Recoge a más ~b~pacientes~w~ o lleva a éste al ~y~hospital~w~. - -[A_FULL:AMBU] -~w~¡La ambulancia está llena! Deja a los pacientes en el ~y~hospital~w~. - -[A_RANG2:AMBU] -~r~La radio de la ambulancia no funciona en el metro. - -{=================================== MISSION TABLE TV ===================================} - -[TV_01:TV] -Slash TV - -[TV_02:TV] -~w~Mata a todos los locos psicópatas... ¡No dejarán de aparecer! - -[TV_03:TV] -~w~Cada nivel se pone más difícil y hay más enemigos... ¡y también más premios! - -[TV_04:TV] -~w~NIVEL ~1~ - -[TV_10:TV] -~w~¡Has ganado un premio extra! - -[TV_09:TV] -Premio en metálico total ganado en este juego: ¡~1~ $! - -[TV_05:TV] -~w~¡NIVEL COMPLETADO! - -[TV_06:TV] -~w~¡Ganas ~1~ $ de premio! - -[TV_07:TV] -~w~PREPARADOS... - -[TV_08:TV] -~w~¡YA! - -{=================================== MISSION TABLE NOODLE ===================================} - -[NDL1_02:NOODLE] -~w~Oh-oh. ¡Se acabaron los fideos! Vuelve a ~y~Punk Noodles~w~ y consigue más. - -[NDL1_06:NOODLE] -~w~Pulsa~h~ ~k~ ~TGSUB~ ~w~cuando estés en la moto para cancelar la misión. - -[NDL1_07:NOODLE] -~r~¡Has matado al cliente! ¡Estás despedido! - -[NDL1_08:NOODLE] -~r~Se te ha acabado el tiempo. ¡Estás despedido! - -[NDL1_09:NOODLE] -~r~¡Has estrellado la motocicleta! ¡Estás despedido! - -[NDL1_11:NOODLE] -~w~Vuelve a la ~b~moto~w~. - -[NDL1_12:NOODLE] -Fideos - -[NDL1_13:NOODLE] -~w~¡Fideos! ¡'Peazo' de fideos pala lepaltil con salelo! - -[NDL1_14:NOODLE] -~w~Clientes no cansa de mis fideos. - -[NDL1_15:NOODLE] -~w~¡Aquí tiene fideos pala dal y tomal! - -[NDL1_16:NOODLE] -~w~¡Tú intental que estos fideos llega a tiempo! - -[NDL1_17:NOODLE] -~w~¡Eh, basula! ¡Estos fideos cole plisa! - -[NDL1_18:NOODLE] -~w~Tú entlegal estos fideos lapidito. - -[NDL1_19:NOODLE] -~w~Los clientes quiele fideos calientes, no flíos. - -[NDL1_20:NOODLE] -~w~¿Tú no aguanta el calol del fogón? 'Mejol tú bajal llama', Confucio decil. - -[NDL1_21:NOODLE] -~w~Tú lepaltil estos fideos, ¿de acueldo? - -[NDL1_22:NOODLE] -~w~Más fideos pala lepaltil con salelo. - -[NDL1_23:NOODLE] -~w~¡Fideos, fideos, fideos! ¡Tú lepalte bien calentitos! - -[NDL1_24:NOODLE] -~w~¡Habel gente espelando! ¡Lo que hay que vel...! - -[NDL1_25:NOODLE] -~w~¿Tú aún no habel entlegado este pedido? - -[NDL1_26:NOODLE] -~w~¿A qué está espelando? ¿Al Año Nuevo chino? - -[NDL1_27:NOODLE] -~w~Estos fideos estal enfliando. ¡Tú dal plisa! - -[NDL1_28:NOODLE] -~w~Yo quiele sel astlonauta, pelo mi padle solo dejal esto. ¡Hay que jodelse! - -[NDL1_29:NOODLE] -~w~¿Tú quiele conselval tlabajo? ¡Tú movel culo y lepaltil esto! - -[NDL1_30:NOODLE] -~w~Fideos flitos clujientitos... Yo no entiende, pelo a mí me encanta. - -[NDL1_31:NOODLE] -~w~Cleo que tú vale mejol pala lepaltil pizzas. - -[NDL1_3A:NOODLE] -~w~Ellos siemple quiele más. Así que tú vuelve cuando telminal. - -[NDL1_32:NOODLE] -~r~¿Qué ploblema? ¿No gusta los fideos? - -[NDL1_33:NOODLE] -~w~Vuelve a ~y~Punk Noodles~w~ a por más pedidos. - -[NDL1_34:NOODLE] -~w~¡Fideos entregados, dinero cobrado! - -[NDL_WON:NOODLE] -~w~Completada la misión eventual de repartidor de fideos, ¡bien hecho! ¡Ha aumentado tu salud máxima! - -[NDL_WO1:NOODLE] -~w~Punk Noodles ahora está bajo tu 'protección'. No dejes de recoger los pagos regularmente. - -[NDL1_01:NOODLE] -~w~Tú entlega a ~b~clientes~w~ estos fideos lapidito. - -[NDL1_05:NOODLE] -~w~Para entregarlos, lánzaselos en marcha a sus dueños. - -{=================================== MISSION TABLE MPSURV ===================================} - -[SAL01:MPSURV] -~w~María, me voy al hospital a arreglarme lo que tú ya sabes. - -[SAL02:MPSURV] -~w~Cuando salga, el cochino semental galopará como antes... - -[SAL04:MPSURV] -~w~P.S. ¡Prepárate para un buen rodeo cuando salga, nena! - -[SAL05:MPSURV] -~w~P.S.S. ¡No dejes esta nota a la vista de todos! - -[SAL03:MPSURV] -~w~No te metas en líos, porque hay miembros de la Familia que 'se mueren' por hacerse con el poder. - -[SAL03A:MPSURV] -~w~¡Literalmente! - -{=================================== MISSION TABLE JDREF ===================================} - -[JDT1_BA:JDREF] -~w~¡No tengo trabajo para ningún Leone! - -[JDT1_BB:JDREF] -~w~Eh, Toni, vuelve cuando seas menos cantoso. - -[CHNGOUT:JDREF] -~w~Quítate el traje de Leone. De lo contrario, no pueden verte hablando con J.D. - -{=================================== MISSION TABLE CRED01 ===================================} - -[CR01_01:CRED01] -~n~ ~n~ ~n~ ~n~CREDITS - -[CR01_02:CRED01] -~n~ ~n~ ~n~ ~n~ROCKSTAR NORTH - -[CR01_03:CRED01] -~n~ ~n~ ~n~ ~n~Producer ~n~Leslie Benzies - -[CR01_04:CRED01] -~n~ ~n~ ~n~ ~n~Art Director ~n~Aaron Garbut - -[CR01_05:CRED01] -~n~ ~n~ ~n~ ~n~Technical Direction ~n~Obbe Vermeij, Adam Fowler - -[CR01_06:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~Written By ~n~Dan Houser, James Worrall ~n~ & David Bland - -[CR01_07:CRED01] -~n~ ~n~ ~n~ ~n~Programming ~n~Alexander Roger, Alexander Illes, ~n~Andrzej Madajczyk, Barane Chan, ~n~Derek Payne, Derek Ward, - -[CR01_08:CRED01] -~n~ ~n~Gordon Yeoman, Graeme Williamson, ~n~Greg Smith, James Broad, ~n~John Gurney, John Whyte, - -[CR01_09:CRED01] -~n~ ~n~Keith McLeman, Mark Nicholson, ~n~Shaun McKillop - -[CR01_10:CRED01] -~n~ ~n~ ~n~ ~n~Audio Programmer ~n~Matthew Smith - -[CR01_11:CRED01] -~n~ ~n~ ~n~ ~n~Sound Design and Mastering ~n~Allan Walker - -[CR01_12:CRED01] -~n~ ~n~ ~n~ ~n~Lead Cut Scene Animator ~n~Mondo Ghulam - -[CR01_13:CRED01] -~n~ ~n~ ~n~ ~n~Cut Scene Animator ~n~Dermot Bailie - -[CR01_14:CRED01] -~n~ ~n~ ~n~ ~n~Character Animator ~n~Felipe Busquets - -[CR01_15:CRED01] -~n~ ~n~ ~n~ ~n~In-Game Animation ~n~Gus Braid, Terry Kenny - -[CR01_16:CRED01] -~n~ ~n~ ~n~ ~n~Characters Artist ~n~Ian McQue - -[CR01_17:CRED01] -~n~ ~n~ ~n~ ~n~Vehicle Artist ~n~Joylon Orme - -[CR01_18:CRED01] -~n~ ~n~ ~n~ ~n~Additional Art ~n~Rick Stirling, Alisdair Wood - -[CR01_19:CRED01] -~n~ ~n~ ~n~ ~n~Music Producer ~n~Craig Conner - -[CR01_20:CRED01] -~n~ ~n~ ~n~ ~n~Audio Design and Dialogue Editor ~n~Will Morton - -[CR01_21:CRED01] -~n~ ~n~ ~n~ ~n~Additional Dialogue Editor ~n~Jon McCavish - -[CR01_22:CRED01] -~n~ ~n~ ~n~ ~n~Development Support ~n~Milly Cottam - -[CR01_23:CRED01] -~n~ ~n~ ~n~ ~n~Graphic Designers ~n~Stuart Petri, Steve Walsh - -[CR01_24:CRED01] -~n~ ~n~ ~n~ ~n~Lead Level Design ~n~William Mills - -[CR01_25:CRED01] -~n~ ~n~ ~n~ ~n~Level Design ~n~Chris Rothwell, Andy Duthie, ~n~Chris McMahon, Neil Ferguson - -[CR01_26:CRED01] -~n~ ~n~ ~n~ ~n~QA Manager ~n~Craig Arbuthnott - -[CR01_27:CRED01] -~n~ ~n~ ~n~ ~n~Senior Lead Test ~n~Neil Corbett - -[CR01_28:CRED01] -~n~ ~n~ ~n~ ~n~Lead Test ~n~David Murdoch, Neil Meikle, ~n~Alex Bazlinton, Brenda Carey - -[CR01_29:CRED01] -~n~ ~n~ ~n~ ~n~Build Engineer / Lead Test ~n~Neil Walker - -[CR01_30:CRED01] -~n~ ~n~ ~n~ ~n~Audio Test ~n~George Williamson - -[CR01_31:CRED01] -~n~ ~n~ ~n~ ~n~Test ~n~Brian Kelly, Lindsay Robertson, ~n~Sundram Soosay, Eugene Kuczerepa, ~n~Christopher Soosay, Ben Abbott, - -[CR01_32:CRED01] -~n~ ~n~Oliver Elliott, Louis Dinan, ~n~Bobby Wright, Thomas Philips, ~n~Nick Rees, Ivor Williams - -[CR01_33:CRED01] -~n~ ~n~ ~n~ ~n~Test Tools Programming ~n~James Whitcroft, Alex Carter - -[CR01_34:CRED01] -~n~ ~n~ ~n~ ~n~IT Manager ~n~Lorraine Roy - -[CR01_35:CRED01] -~n~ ~n~ ~n~ ~n~IT Support ~n~Christine Chalmers, Dave Bruce - -[CR01_36:CRED01] -~n~ ~n~ ~n~ ~n~Studio Director ~n~Andrew Semple - -[CR01_37:CRED01] -~n~ ~n~ ~n~ ~n~Office Administration ~n~Kim Gurney - -[CR01_38:CRED01] -~n~ ~n~ ~n~ ~n~Administration Support ~n~Charlene Maguire, Kim Wilson - -[CR02_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ROCKSTAR LEEDS - -[CR02_02:CRED01] -~n~ ~n~ ~n~ ~n~Studio Director ~n~Gordon Hall - -[CR02_03:CRED01] -~n~ ~n~ ~n~ ~n~Head of Development ~n~David Box - -[CR02_04:CRED01] -~n~ ~n~ ~n~ ~n~Lead Programming ~n~Andrew Greensmith, Matthew Shepcar ~n~ ~n~ ~n~ ~n~Console Programming ~n~Nigel Conroy, Richard Frankish, ~n~Andrew Greensmith, Robin Mangham, ~n~Damian McKenna, Finlay Munro, ~n~Stuart Roskell, Matthew Shepcar - -[CR02_05:CRED01] -~n~ ~n~ ~n~ ~n~Programming ~n~Jon Bellamy, Ross Childs, ~n~Nigel Conroy, Neil Dodwell, ~n~Alastair Dukes, David Huebner, - -[CR02_06:CRED01] -~n~ ~n~Robin Mangham, Jason McGann, ~n~Warren Merrifield, Stephen McGreal - -[CR02_07:CRED01] -~n~ ~n~ ~n~ ~n~Sound Programming ~n~Finlay Munro, Charles Waddington - -[CR02_08:CRED01] -~n~ ~n~ ~n~ ~n~Art Director ~n~Ian Bowden - -[CR02_09:CRED01] -~n~ ~n~ ~n~ ~n~Art Department Director ~n~Chris Smart - -[CR02_10:CRED01] -~n~ ~n~ ~n~ ~n~Lead Character Artist ~n~Paul Smith - -[CR02_11:CRED01] -~n~ ~n~ ~n~ ~n~Character Artist ~n~Chris Allison - -[CR02_12:CRED01] -~n~ ~n~ ~n~ ~n~Lead City Artist ~n~Dan Roberts - -[CR02_13:CRED01] -~n~ ~n~ ~n~ ~n~City Artists ~n~Paul McKee, James McHale, ~n~Siu Lee - -[CR02_14:CRED01] -~n~ ~n~ ~n~ ~n~Cutscene Interiors ~n~Izzy Stewart - -[CR02_15:CRED01] -~n~ ~n~ ~n~ ~n~Concept Artist ~n~John Wigley - -[CR02_16:CRED01] -~n~ ~n~ ~n~ ~n~Additional Character Animation ~n~Alan Bowker - -[CR02_17:CRED01] -~n~ ~n~ ~n~ ~n~Additional Artists ~n~Andy Walker, Jason Gee, ~n~Chris Edwards, Lee Clark - -[CR02_18:CRED01] -~n~ ~n~ ~n~ ~n~Design Director ~n~David Bland - -[CR02_19:CRED01] -~n~ ~n~ ~n~ ~n~Lead Level Design ~n~John Li - -[CR02_20:CRED01] -~n~ ~n~ ~n~ ~n~Senior Level Design ~n~Tony Gowland, Martyn Bramall - -[CR02_21:CRED01] -~n~ ~n~ ~n~ ~n~Level Design ~n~Sam Hackett, Stephen Robertson, ~n~Tom Kingsley, Chris Edwards, ~n~Kris Gormley - -[CR02_22:CRED01] -~n~ ~n~ ~n~ ~n~Associate Designer ~n~Mark McGinley - -[CR02_23:CRED01] -~n~ ~n~ ~n~ ~n~QA Manager ~n~Paul Colls - -[CR02_24:CRED01] -~n~ ~n~ ~n~ ~n~QA ~n~Jody Cobb, ~n~ ~n~Luke Brown, Nick Robey, ~n~Matthew Haven - -[CR02_25:CRED01] -~n~ ~n~ ~n~ ~n~Company Secretary ~n~Naomi Martin - -[CR02_26:CRED01] -~n~ ~n~ ~n~ ~n~IT Manager ~n~Chris Waring - -[CR03_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ROCKSTAR NYC - -[CR03_02:CRED01] -~n~ ~n~ ~n~ ~n~Executive Producer ~n~Sam Houser - -[CR03_03:CRED01] -~n~ ~n~ ~n~ ~n~VP of Creative ~n~Dan Houser - -[CR03_04:CRED01] -~n~ ~n~ ~n~ ~n~VP of Development ~n~Jamie King - -[CR03_05:CRED01] -~n~ ~n~ ~n~ ~n~Art Director ~n~Alex Horton - -[CR03_06:CRED01] -~n~ ~n~ ~n~ ~n~Chief Technology Officer ~n~Gary J. Foreman - -[CR03_07:CRED01] -~n~ ~n~ ~n~ ~n~Associate Producer ~n~Rich Rosado - -[CR03_08:CRED01] -~n~ ~n~ ~n~ ~n~Director of Quality Assurance ~n~Jeff Rosa - -[CR03_09:CRED01] -~n~ ~n~ ~n~ ~n~Senior Lead Analyst ~n~Lance Williams - -[CR03_10:CRED01] -~n~ ~n~ ~n~ ~n~Project Lead ~n~Jameel Vega - -[CR03_11:CRED01] -~n~ ~n~ ~n~ ~n~Rockstar Test Team ~n~Ethan Abeles, William Rompf, ~n~Christopher Mansfield, Chris Choi, ~n~Mike Hong, Tamara Carrion, - -[CR03_12:CRED01] -~n~ ~n~Rich Huie, Mike Nathan, ~n~Vance Wallace, Marc Rodriguez, ~n~Adam Tetzloff - -[CR03_13:CRED01] -~n~ ~n~ ~n~ ~n~Business Development Director ~n~Sean Macaluso - -[CR03_14:CRED01] -~n~ ~n~ ~n~ ~n~Soundtrack Supervision ~n~Heinz Henn, Ivan Pavlovich, ~n~Tim Sweeney - -[CR04_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~CUT SCENES & DIALOGUE - -[CR04_02:CRED01] -~n~ ~n~ ~n~ ~n~Motion Capture Director ~n~Navid Khonsari - -[CR04_03:CRED01] -~n~ ~n~ ~n~ ~n~Motion Capture Performed by ~n~Danny Mastrogiorgio, Jeffrey C. Hawkins, ~n~Bruce MacVittie, David Zayas, ~n~Peter Appel, Hannah Moon, ~n~Alyssa Truppelli, Joe Lotruglio - -[CR04_04:CRED01] -~n~ ~n~ ~n~ ~n~Voices Performed by ~n~Salvatore Leone - Frank Vincent ~n~Toni Cipriani - Danny Mastrogiorgio ~n~Donald Love - Will Janowitz - -[CR04_05:CRED01] -~n~ ~n~ Vincenzo Cilli - Joe Lotruglio ~n~Maria Latore - Fiona Gallagher ~n~JD O'Toole - Greg Wilson - -[CR04_06:CRED01] -~n~ ~n~Leon McAffrey - Ron Orbach ~n~Ray Machowski - Peter Appel ~n~Toshiko Kasen - Hannah Moon - -[CR04_07:CRED01] -~n~ ~n~ Ned Burner - Peter Bradbury ~n~Ma Cipriani - Sondra James ~n~Giovanni Casa - Joel Jones - -[CR04_08:CRED01] -~n~ ~n~Kazuki Kasen - Keenan Shimizu, ~n~Massimo Torini - Duccio Faggella ~n~Mickey Hamfists - Chris Tardio - -[CR04_09:CRED01] -~n~ ~n~Jane Hopper - Gordana Rashovich ~n~Mayor O'Donovan - John Braden ~n~8 Ball - Guru - -[CR04_10:CRED01] -~n~ ~n~Radio Newscaster - Sharon Washington ~n~TV Reporter - Brooke Alexander - -[CR04_11:CRED01] -~n~ ~n~ ~n~ ~n~Pedestrian Dialogue ~n~Una Cruickshank, Gregory Johnson, ~n~Sanford Santacroce, Ayana Osada - -[CR04_12:CRED01] -~n~ ~n~ ~n~ ~n~Pedestrian Voices ~n~Jamie Hector, Jackson Loo, ~n~Bruce MacVittie, Jeff Gurner, ~n~Jamie Hector, Andrea Kessler, - -[CR04_13:CRED01] -~n~ ~n~Lynne Horton, Phil Mikkelson, ~n~Koji Nonoyama, Devin Bennett, ~n~Jay Capozello, Mike Nathan, - -[CR04_14:CRED01] -~n~ ~n~Ethan Abeles, Lance Williams, ~n~Natalya Wilson, Jay Gladstone, ~n~Craig Blair, Dave Edwards, - -[CR04_15:CRED01] -~n~ ~n~Gregory Johnson, John Zurhellen, ~n~Blair Sadler, Georgia Sadler, ~n~Nicole Sadler, Judy Henderson, - -[CR04_16:CRED01] -~n~ ~n~Kim Graham, Kerry Shaw, ~n~Tamara Carrion, Franceska Clemens, ~n~Navid Khonsari, Noelle Sadler, - -[CR04_17:CRED01] -~n~ ~n~Nicholas Mongomery, Anthony Macbain, ~n~Ryan Rayhill, Josh Slater, ~n~Carmelo Gaeta, Hikari Yokoyama, - -[CR04_18:CRED01] -~n~ ~n~Chris Jobin, Michael Rothstein, ~n~Stacey Rachels, Jennifer Koontz, ~n~Dan Merrill, Ali Khonsari, - -[CR04_19:CRED01] -~n~ ~n~Ellen Rose, Chris Standal, ~n~Lorie Goodman, Neal Johnston, ~n~Son Garth, James Larsen, - -[CR04_20:CRED01] -~n~ ~n~Karl Weibel, Ramin Khonsari, ~n~Ed. Thomas Jr., Stanton Sargent, ~n~Oswald Greene, Audrey Amey, - -[CR04_21:CRED01] -~n~ ~n~Sanford Santacroce, Jeff Madrick, ~n~Ben Weaver, Andrea Kessler, ~n~CS Lee, Yoshi Amao, - -[CR04_22:CRED01] -~n~ ~n~ Jackson Loo, Martha Morrison, ~n~Sarah Bloodsworth, Adam Deher, ~n~Billy Gonzalez - -[CR04_23:CRED01] -~n~ ~n~ ~n~ ~n~Additional Motion Graphics ~n~Maryam Parwana - -[CR04_24:CRED01] -~n~ ~n~ ~n~ ~n~Dialogue Recording & Mixing ~n~Nicholas Montgomery - -[CR04_25:CRED01] -~n~ ~n~ ~n~ ~n~Foley Recording ~n~Bryan Scibinico - -[CR04_26:CRED01] -~n~ ~n~ ~n~ ~n~Foley recorded at Dig It Studios - -[CR04_27:CRED01] -~n~ ~n~ ~n~ ~n~Production Team ~n~Noelle Sadler, Eli Weissman, ~n~Kerry Shaw, John Zurhellen, ~n~Peter Adler, Anthony Carvalho, - -[CR04_28:CRED01] -~n~ ~n~Phil Poli, Jaesun Celebre, ~n~Franceska Clemens, Anthony Litton - -[CR04_29:CRED01] -~n~ ~n~ ~n~ ~n~Casting ~n~Judy Henderson and Associates - -[CR04_30:CRED01] -~n~Motion Capture recorded at Perspective Studios - -[CR05_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~RADIO - -[CR05_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ Banter, Talk Radio, Commercials and Imaging written by ~n~Dan Houser and Lazlow - -[CR05_03:CRED01] -~n~ ~n~ ~n~ ~n~Production by ~n~Lazlow - -[CR05_04:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~LCFR - -[CR05_05:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voices ~n~Smith Harrison, Karen Saltus - -[CR05_06:CRED01] -~n~ ~n~ ~n~ ~n~Heartland Values with Nurse Bob ~n~Nurse Bob - Chuck Montgomery - -[CR05_07:CRED01] -~n~ ~n~ ~n~ ~n~Guests and Callers ~n~Ayana Osada, Nick Montgomery, ~n~Russell Lewis, Nick Born, ~n~Sean Macaluso, Kerry Shaw, - -[CR05_08:CRED01] -~n~ ~n~Chad Johnson, Craig Conner, ~n~Mary Elizabeth, Rob Cross, ~n~Josh Bitney - -[CR05_09:CRED01] -~n~ ~n~ ~n~ ~n~Electron Zone ~n~Steve - Ptolemy Slocum ~n~Bill - Michael Urichek - -[CR05_10:CRED01] -~n~ ~n~ ~n~ ~n~Callers ~n~Alice Saltzman, Jeremy Wheaton, ~n~Ryan Rayhill, Maine Anderson, ~n~Patton Oswalt, Wil Wheaton, ~n~Anthony Cumia, Madena Parwana - -[CR05_11:CRED01] -~n~ ~n~ ~n~ ~n~Breathing World ~n~Lee Chowder - Ashley Albert ~n~Crow - Gregg Martin - -[CR05_12:CRED01] -~n~ ~n~ ~n~ ~n~Coq 'O' Vin ~n~Richard Goblin - Mike Shapiro - -[CR05_13:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voice ~n~Ben Krech - -[CR05_14:CRED01] -~n~ ~n~ ~n~ ~n~Callers ~n~Franceska Clemins, Sarah Bloodsworth, ~n~Adam Deher, Martha Morrison, ~n~Carmelo Gaeta - -[CR05_15:CRED01] -~n~ ~n~ ~n~ ~n~Chatterbox ~n~Lazlow as himself - -[CR05_16:CRED01] -~n~ ~n~ ~n~ ~n~Callers ~n~Susan Lewis, Ben Weaver, ~n~Jacky Bam Bam, Ben Sparks, ~n~Deanna Moyer, Liezl Jacinto, - -[CR05_17:CRED01] -~n~ ~n~Joshua Batista, Gregg Opie Hughes, ~n~Sondra James, Elizabeth Satterwhite - -[CR06_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~HEAD RADIO - -[CR06_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Michael Hunt - Russ Mottla - -[CR06_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voices ~n~Jeff Berlin, Katelyn Hutchinson - -[CR06_04:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Production ~n~Jeff Berlin - -[CR06_05:CRED01] -~n~ ~n~ ~n~ ~n~"Train" ~n~Conor & Jay ~n~Written by Craig Conner & Julie Wemyss ~n~Produced by Craig Conner ~n~Guitars by Jon McCavish ~n~Vocals by Julie Wemyss and Craig Conner - -[CR06_06:CRED01] -~n~ ~n~ ~n~ ~n~"The One For Me" ~n~Cloud Nineteen ~n~Written & Produced by ~n~Will Morton ~n~Additional Lyrics by Paul Mackie ~n~Guitars by Allan Walker & Chris Morton ~n~Lead Vocals by Raff ~n~Backing Vocals by Paul Mackie & Raff - -[CR06_07:CRED01] -~n~ ~n~ ~n~ ~n~"Take The Pain" ~n~Purser ~n~Written & Produced by ~n~Will Morton, Chris Morton ~n~Additional Lyrics by Paul Mackie ~n~Lead Vocals by Paul Mackie ~n~Additional Vocals by Will Morton - -[CR06_08:CRED01] -~n~ ~n~ ~n~ ~n~"Free Yourself" ~n~L-Marie featuring Raff ~n~Written & Produced by Craig Conner ~n~Vocals by L-Marie and Raff ~n~Backing Vocals by Craig Conner - -[CR06_09:CRED01] -~n~ ~n~ ~n~ ~n~"Drive" ~n~15 Ways ~n~Written & Produced by Colin Entwistle ~n~Vocals by Paul Mackie - -[CR06_10:CRED01] -~n~ ~n~ ~n~ ~n~"Welcome To The Real World" ~n~Rosco Stow ~n~Written & Produced by Craig Conner ~n~Guitars Written, Produced and Performed by Allan Walker ~n~Lead Vocals by Andy Dorrat ~n~Backing Vocals by Craig Conner, ~n~Anna Stuart and Kim Gurney - -[CR06_11:CRED01] -~n~ ~n~ ~n~ ~n~"Keep Dreaming" ~n~Vanilla Smoothie ~n~Written & Produced by ~n~Alastair MacGregor ~n~Guitars by Allan Walker ~n~Vocals by Fiona Stoddart - -[CR07_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~LIPS 106 - -[CR07_02:CRED01] -~n~ ~n~ ~n~ ~n~DJs ~n~Cliff - Ed McMann ~n~Andee - Shelley Miller - -[CR07_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voice ~n~Jonathan Hanst - -[CR07_04:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Production ~n~Jonathan Hanst - -[CR07_05:CRED01] -~n~ ~n~ ~n~ ~n~"Funk In Time" ~n~Rudy La Fontaine ~n~Written & Produced by Jon McCavish ~n~Guitars by Julian Pais ~n~Vocals by Julian Pais - -[CR07_06:CRED01] -~n~ ~n~ ~n~ ~n~"Love Is The Feeling" ~n~Sawarr ~n~Written by Craig Conner & Julie Wemyss ~n~Produced by Craig Conner ~n~Vocals by Julie Wemyss - -[CR07_07:CRED01] -~n~ ~n~ ~n~ ~n~"Mine Until Monday" ~n~Sunshine Shine ~n~Written & Produced by Will Morton ~n~Additional Lyrics by Paul Mackie ~n~Vocals by Paul Mackie & Raff - -[CR07_08:CRED01] -~n~ ~n~ ~n~ ~n~"Get Down" ~n~Credit Check ~n~Written & Produced by ~n~Alastair MacGregor ~n~Guitars by Martyn Livingstone ~n~Bass by Andy Wilson ~n~Vocals by Louise Ferrier - -[CR07_09:CRED01] -~n~ ~n~ ~n~ ~n~"Tonight" ~n~Cool Timers ~n~Written & Produced by Craig Conner ~n~Vocals by Julie Wemyss - -[CR07_10:CRED01] -~n~ ~n~ ~n~ ~n~"Bassmatic" ~n~Nina Barry ~n~Written & Produced by Jon McCavish ~n~Vocals by Riz Maslen - -[CR07_11:CRED01] -~n~ ~n~ ~n~ ~n~"Into Something (C'mon Get Down)" ~n~The Jackstars ~n~Written & Produced By ~n~Craig Conner ~n~Vocals by Lucie Danti-Juan ~n~Backing vocals by ~n~Kevin Stacey & Craig Conner - -[CR08_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~DOUBLE CLEF FM - -[CR08_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Sergio Boccino - Robert Blumenfeld - -[CR08_03:CRED01] -~n~ ~n~ ~n~ ~n~Caller ~n~Gerald Cosgrove - -[CR08_04:CRED01] -~n~ ~n~ ~n~ ~n~"Il Trovatore: Anvil Chorus" ~n~Composed by Giuseppe Verdi ~n~Performed by ~n~Nuremberg Symphonic Orchestra ~n~& Munich State Opera Choir ~n~Courtesy of Point Classics, LLC - -[CR08_05:CRED01] -~n~ ~n~ ~n~ ~n~"Il Trovatore: Tacea la notte placida" ~n~Composed by Giuseppe Verdi ~n~Performed by ~n~Nuremberg Symphonic Orchestra & ~n~Munich State Opera Choir ~n~(Eva Illes, Soprano) ~n~Courtesy of Point Classics, LLC - -[CR08_06:CRED01] -~n~ ~n~ ~n~ ~n~"Nabucco: Chorus of the Hebrew Slaves" ~n~Composed by Giuseppe Verdi ~n~Performed by Philharmonia Slavonica ~n~Courtesy of Point Classics, LLC - -[CR08_07:CRED01] -~n~ ~n~ ~n~ ~n~"Così fan tutte: È amore un ladroncello" ~n~Composed by Wolfgang Amadeus Mozart ~n~Performed by ~n~Bratislava Opera Soloists, ~n~Choir and Orchestra ~n~(Ida Kirilova "Dorabella") ~n~Courtesy of Point Classics, LLC - -[CR08_08:CRED01] -~n~ ~n~ ~n~ ~n~"Marriage of Figaro: Overture" ~n~Composed by Wolfgang Amadeus Mozart ~n~Performed by ~n~London Philharmonic Orchestra ~n~Courtesy of Point Classics, LLC - -[CR08_09:CRED01] -~n~ ~n~ ~n~ ~n~"I Pagliacci: Vesti la giubba" ~n~Composed by Ruggiero Leoncavallo ~n~Performed by ~n~Nuremberg Symphonic Orchestra ~n~(José Maria Perez, Tenor) ~n~Courtesy of Point Classics, LLC - -[CR09_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~RISE FM - -[CR09_02:CRED01] -~n~ ~n~ ~n~ ~n~Engineered by Mike Callaghan - -[CR09_03:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Boy Sanchez - Oliver Vaquer - -[CR09_04:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voices ~n~DJ Andre, Lupus Thunder, ~n~Andi Hanley, Mat Ckillz, ~n~Couzin Ed, Lazlow, - -[CR09_05:CRED01] -~n~ ~n~Terry Donovan, Bill Brissette, ~n~Juan Aller, Ed Andrews, ~n~Xeni Jardin, Matthew Orr, ~n~Jeff Berlin - -[CR09_06:CRED01] -~n~ ~n~ ~n~ ~n~"Sing It Back ~n~(Boris Musical Mix)" ~n~Moloko ~n~Written by M. Brydon, R. Murphy ~n~Published by Chrysalis Music (ASCAP) ~n~Remix and Additional Production by ~n~Boris Dlugosch ~n~(p) + © 1998 The Echo Label ~n~Courtesy of Chrysalis Music Limited - -[CR09_07:CRED01] -~n~ ~n~ ~n~ ~n~"Free" ~n~Ultra Nate ~n~Written by U. Nate, L. Springsteen, ~n~J. Ciafone ~n~Published by Warner/ Chappell Music/ BMG Music ~n~(p) + © 1997 Strictly Rhythm Records LLC ~n~Courtesy of Warner Strategic Marketing - -[CR09_08:CRED01] -~n~ ~n~ ~n~ ~n~"I Believe" ~n~Happy Clappers ~n~Written by C. Scott, G. Ripley, M. Knotts, M. Topham ~n~Published by All Boys Music Ltd ~n~(p) + © 1994 C J Scott Productions ~n~Courtesy of C J Scott Productions - -[CR09_09:CRED01] -~n~ ~n~ ~n~ ~n~"House Music" ~n~Eddie Amador ~n~Written by Eddie Amador ~n~Published by ~n~Deep Dish Music ~n~(p) + © 1998 Yoshitoshi Records ~n~Courtesy of ~n~Deep Dish Recordings, Inc. ~n~by arrangement with ~n~Nasseri Music Business Solutions - -[CR09_10:CRED01] -~n~ ~n~ ~n~ ~n~"Feel What You Want" ~n~Kristine W ~n~Written by R. Dougan, R. Armstrong, ~n~K. Weitz ~n~Published by BMG Music/Weitz House Publishing (ASCAP)/ EMI Music Publishing ~n~(p) + © 1996 RCA/ BMG ~n~Courtesy of Sony BMG Entertainment - -[CR09_11:CRED01] -~n~ ~n~ ~n~ ~n~"Hideaway ~n~(Deep Dish Vocal Remix)" ~n~De'Lacy ~n~Written by K. Hedge, J. Milan ~n~Published by ~n~Warner-Tamerlane Publishing Corp ~n~Remix and Additional Production by ~n~Deep Dish ~n~(p) 1995 Easy Street Recordings Inc ~n~© 1998 Kickin Music Ltd ~n~Courtesy of Easy Street Recordings Inc. and Slip n' Slide Records - -[CR09_12:CRED01] -~n~ ~n~ ~n~ ~n~"Spin Spin Sugar ~n~(Armand's Dark Garage Mix)" ~n~Sneaker Pimps ~n~Written by I. Pickering, L. Coverdale Howe, C. Corner ~n~Remix and Additional Production by ~n~Armand Van Helden ~n~Published by BMG Songs, Inc ~n~(p) + © 1997 Clean Up Records Ltd ~n~Courtesy of EMI Music / ~n~One Little Indian, Ltd - -[CR09_13:CRED01] -~n~ ~n~ ~n~ ~n~"Plastic Dreams" ~n~Jaydee ~n~Written by R. Albers ~n~Published by TBM Holland ~n~(p) 1992 R & S Records ~n~© Robin Albers ~n~Courtesy of Robin "Jaydee" Albers - -[CR09_14:CRED01] -~n~ ~n~ ~n~ ~n~"Altered States" ~n~Ron Trent ~n~Written by R. Trent ~n~Published by ~n~High Fashion Music/ Nanada Music ~n~(p) + © 1993 Warehouse ~n~Djax-Up Beats ~n~Courtesy of High Fashion Music/ ~n~Djax-Up Beats - -[CR09_15:CRED01] -~n~ ~n~ ~n~ ~n~"There Will Come A Day (Half Tab Dub)" ~n~The Absolute featuring Suzanne Palmer ~n~Written by M. Pichiotti, C.J. Snider ~n~Published by Much Noyse Music/ ~n~Hoobini Music (ASCAP) ~n~(p) + © 1995 Mark Productions, Inc ~n~Courtesy of Mark Productions, Inc - -[CR09_16:CRED01] -~n~ ~n~ ~n~ ~n~"Positive Education" ~n~Slam ~n~Written by S. McMillan, O. Meikle, ~n~G. Gibbons, J. Muotone ~n~Published by EMI Music Publishing ~n~(p) + © 1997 Soma Recordings Ltd ~n~Courtesy of Soma Recordings Ltd - -[CR09_17:CRED01] -~n~ ~n~ ~n~ ~n~"Flash" ~n~Green Velvet ~n~Written by C. Jones ~n~Published by Curtis A. Jones Music (ASCAP) ~n~(p) 1995 Relief Records ~n~© 2000 Warner Bros. Records and N.E.W.S. Records and Relief Records ~n~Courtesy of Warner Strategic Marketing, N.E.W.S. Records, Relief Records - -[CR09_18:CRED01] -~n~ ~n~ ~n~ ~n~"Circus Bells (Hardfloor Remix)" ~n~Robert Armani ~n~Written by R. Armani ~n~Published by ~n~High Fashion Music/ Nanada Music ~n~(p) + © 1993 Warehouse/ ~n~Djax-Up Beats ~n~Courtesy of High Fashion Music/ ~n~Djax-Up Beats - -[CR09_19:CRED01] -~n~ ~n~ ~n~ ~n~"Higher State Of Consciousness" ~n~Wink ~n~Written by J. Wink ~n~Published by Strictly Rhythm Publishing, Inc. (ASCAP) / Warner/Chappell Music / Wink Inc. (ASCAP) / EMI Music Publishing ~n~(p) + © 1995 Strictly Rhythm Records LLC ~n~Courtesy of Warner Strategic Marketing - -[CR10_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~RADIO DEL MUNDO - -[CR10_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Panjit Gavaskar - Hajaz Akram - -[CR10_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voice ~n~Jessica Wachsman - -[CR10_04:CRED01] -~n~ ~n~ ~n~ ~n~"Raghupati (Folk Tune)" ~n~Ananda Shankar ~n~Arranged by A. Shankar, Lewinson, Hassilev ~n~Published by Warner Chappell Inc ~n~(p) + © 1970 Reprise Records for the U.S. and WEA International Inc ~n~Courtesy of Warner Strategic Marketing - -[CR10_05:CRED01] -~n~ ~n~ ~n~ ~n~"Dum Maro Dum" ~n~Asha Bhosle ~n~Written by RD Burman, Anand Bakshi ~n~Published by Saregama India Ltd ~n~(p) + © 1971 Saregama India Ltd ~n~Courtesy of Saregama India Ltd - -[CR10_06:CRED01] -~n~ ~n~ ~n~ ~n~"Neeve Nanna (Only You Were Mine)" ~n~Vijaya Anand ~n~Written by Vijaya Anand ~n~Published by Shake Boom! (ASCAP)/ ~n~Luaka Bop Inc ~n~(p) 1988 Lahari/Audiovision ~n~© 1992 Sire Records Company ~n~Courtesy of ~n~Luaka Bop Records - -[CR10_07:CRED01] -~n~ ~n~ ~n~ ~n~"Kidda" ~n~Natacha Atlas ~n~Written by N. Atlas, J. Reynolds, J. Adams ~n~Published by Warner Chappell Music Ltd ~n~(p) + © 1997 Nation Records Ltd/ ~n~Beggars Banquet Records Ltd ~n~Courtesy of Nation Records Ltd/ ~n~Beggars Banquet Records Ltd - -[CR10_08:CRED01] -~n~ ~n~ ~n~ ~n~"Hebeena Hebeena" ~n~Farid El Atrache ~n~Written by Barakat, Atrache ~n~Published by Voices Of Lebanon ~n~(p) + © 1974 Voices Of Lebanon ~n~Courtesy of EMI Music/ EMI Music Arabia - -[CR10_09:CRED01] -~n~ ~n~ ~n~ ~n~"Aini Bet Ref" ~n~Ahmed Mneimneh ~n~Written by A. Alishaan ~n~Published by D. Dersahakian (ASCAP) ~n~(p) + © Voice of Stars & ~n~Lys Records ~n~Courtesy of Voice of Stars & ~n~Lys Records - -[CR10_10:CRED01] -~n~ ~n~ ~n~ ~n~"Im Nin'Alu" ~n~Ofra Haza ~n~Traditional, Arranged by I. Ashdot, B. Nagari ~n~Published by Blue Lake Music ~n~ (p) + © 1988 Sire Records Company ~n~Courtesy of Warner Strategic Marketing - -[CR10_11:CRED01] -~n~ ~n~ ~n~ ~n~"Ballaa Tsoubou Hal Kahwa" ~n~Samira Tawfic ~n~Written by R. Al Khylani, J. Al A'ss ~n~Published by Copyright Control ~n~(p) + © Voices Of Lebanon ~n~Courtesy of EMI Music/ EMI Music Arabia - -[CR11_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~K-JAH - -[CR11_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Natalee Walsh Davis - Pascale Armand - -[CR11_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voices ~n~Karl Weibel, Pat McKay - -[CR11_04:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Production ~n~Jay Wright Productions - -[CR11_05:CRED01] -~n~ ~n~ ~n~ ~n~"Pick a Sound" ~n~Selah Collins, Ruddy Ranks, Redeye ~n~Written by S. Collins, H. Burke, ~n~E. Donaldson ~n~Published by Copyright Control/ MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records - -[CR11_06:CRED01] -~n~ ~n~ ~n~ ~n~"What a Wonderful Feeling" ~n~Errol Bellot, Ruddy Ranks, Redeye ~n~Written by E. Bellot, H. Burke, ~n~E. Donaldson ~n~Published by MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records - -[CR11_07:CRED01] -~n~ "Watch How the People Dancing" ~n~Kenny Knots, Ruddy Ranks, Redeye ~n~Written by K. Wright ~n~Published by Jetstar ~n~Courtesy of Honest Jons Records - -[CR11_08:CRED01] -~n~ ~n~ ~n~ ~n~"Lean Boot" ~n~Richie Davis, Ruddy Ranks, Redeye ~n~Written by R. Davis, H. Burke, ~n~E. Donaldson ~n~Published by Westbury Music/ MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records - -[CR11_09:CRED01] -~n~ ~n~ ~n~ ~n~"Ready For the Dancehall Tonight" ~n~Peter Bouncer, Ruddy Ranks, Redeye ~n~Written by Peter McKenzie, H. Burke, ~n~E. Donaldson ~n~Published by MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records - -[CR11_10:CRED01] -~n~ ~n~ ~n~ ~n~"You Ha Fe Cool" ~n~Richie Davis, Ruddy Ranks, Redeye ~n~Written by R. Davis, H. Burke, ~n~E. Donaldson. ~n~Published by Westbury Music/MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records - -[CR11_11:CRED01] -~n~ ~n~ ~n~ ~n~"Ring My Number" ~n~Kenny Knots, Ruddy Ranks, Redeye ~n~Written by Kenneth Wright, H. Burke, ~n~E. Donaldson. ~n~Published by MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records - -[CR11_12:CRED01] -~n~ ~n~ ~n~ ~n~"Run Come Call Me" ~n~Kenny Knots, Ruddy Ranks, Redeye ~n~Written by Kenneth Wright, H. Burke, ~n~E. Donaldson ~n~Published by MCPS ~n~(p) 1988 by R. Fearon ~n~Courtesy of Honest Jons Records - -[CR12_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~THE LIBERTY JAM - -[CR12_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~DJ Clue as himself - -[CR12_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voices ~n~Jay Wright, Tom Yankowski, Chris Mercado, Vanessa Grullon - -[CR12_04:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Production ~n~Jay Wright Productions - -[CR12_05:CRED01] -~n~ ~n~ ~n~ ~n~"All I Need" ~n~Method Man ~n~Written by C. Smith, R. Diggs ~n~Published by Sony BMG Music ~n~(p) + © 1994 Def Jam Recordings ~n~Courtesy of Def Jam Recordings/ UME - -[CR12_06:CRED01] -~n~ ~n~ ~n~ ~n~"Shook Ones Pt. II" ~n~Mobb Deep ~n~Written by A. Johnson, K. Muchita ~n~Published by ~n~BMG Songs Inc. (ASCAP) ~n~(p) + © 1995 BMG Music ~n~Courtesy of RCA Records by arrangement with Sony BMG Ent - -[CR12_07:CRED01] -~n~ ~n~ ~n~ ~n~"Incarcerated Scarface" ~n~Raekwon ~n~Written by R. Diggs, C. Woods, A. Tilman ~n~Published by ~n~Careers-BMG Music Publishing Inc./ ~n~Wu Tang Publishing (BMI)/ ~n~Bridgeport Music ~n~(p) + © 1995 BMG Music - -[CR12_08:CRED01] -Courtesy of RCA Records by arrangement with Sony BMG Ent ~n~This track contains a sample of "You're Getting A Little Too Smart" as performed by The Detroit Emeralds. Courtesy of Westbound Records. Used by permission. All rights reserved - -[CR12_09:CRED01] -~n~ ~n~ ~n~ ~n~"N.O.R.E." ~n~Noreaga ~n~Written by V. Santiago, J. Olivier, ~n~S. Barnes ~n~Published by Suite 1202 Music/ Jose Luis Gotcha Music (BMI)/ Slamuwell Productions/ Jelly's Jam LLC (ASCAP)/ ~n~12 & Under Music/ - -[CR12_10:CRED01] -Jumping Bean Songs LLC (BMI) ~n~(p) + © 1998 Penalty Recordings ~n~Courtesy of Warner Strategic Marketing - -[CR12_11:CRED01] -~n~ ~n~ ~n~ ~n~"Shut 'Em Down (Remix)" ~n~Onyx featuring Noreaga & Big Pun ~n~Written by F. Scruggs, K. Jones, T. Taylor, E. Hinson, E. Simmons ~n~Published by Universal Music/ ~n~Let Me Show You Music/ ~n~Jelly Jams Music/ - -[CR12_12:CRED01] -III Posse Music/ Ill Hill Billy'z Music/ Warner-Tamerlane Music ~n~(p) + © 1998 Rush Associated Labels Recordings ~n~Courtesy of Universal Music Enterprises - -[CR12_13:CRED01] -~n~ ~n~ ~n~ ~n~"Beware" ~n~Big Pun ~n~Written by C. Rios, J. Tineo ~n~Published by Let Me Show You Music/ ~n~Joe Cartegena Music (ASCAP), ~n~Administered by Jelly Jams Music (BMI)/ ~n~P.H.D. Music (ASCAP) - -[CR12_14:CRED01] -(p) + © 1998 Loud Records LLC ~n~Courtesy of Columbia Records by arrangement with Sony BMG Ent - -[CR12_15:CRED01] -~n~ ~n~ ~n~ ~n~"Twinz (Deep Cover 98)" ~n~Big Pun ~n~Written by C. Rios, J. Cartegena, ~n~C. Brodus, A. Young, C. Wolfe ~n~Published by Let Me Show You Music/ ~n~Joe Cartegena Music (ASCAP)/ ~n~Jelly Jams Music (BMI)/ ~n~Sony Tunes Inc. (ASCAP) - -[CR12_16:CRED01] -~n~(p) + © 1998 Loud Records LLC ~n~Courtesy of Columbia Records by arrangement with Sony BMG Ent ~n~This track contains a sample of "Deep Cover" as performed by Dr. Dre. Courtesy of Solar Records. Used by permission. All rights reserved - -[CR12_17:CRED01] -~n~ ~n~ ~n~ ~n~"Get At Me Dog" ~n~DMX featuring Sheek of The Lox ~n~Written by E. Simmons, D. Blackman, ~n~A. Fields, S. Taylor ~n~Published by Universal Music Publishing/ EMI April Music/ ~n~Sony ATV Tunes - -[CR12_18:CRED01] -~n~(p) + © 1998 Rush Associated Labels Recordings ~n~Courtesy of Universal Music Enterprises - -[CR12_19:CRED01] -~n~ ~n~ ~n~ ~n~"Ruff Ryders Anthem (Remix)" ~n~DMX featuring DJ Clue, Jadakiss, Styles, Drag-On & Eve ~n~Written by J. Phillips, M.J. Smalls, E. Shaw, K. Ifill, E. Simmons, K. Dean, E. Jeffers ~n~Published by Universal Music Publishing/ EMI Music Publishing - -[CR12_20:CRED01] -(p) + © 1998 Roc-a-Fella Records ~n~Courtesy of Universal Music Enterprises - -[CR12_21:CRED01] -~n~ ~n~ ~n~ ~n~"Do What You Feel" ~n~Redman featuring Method Man ~n~Written by P. Michael, R. Noble, C. Smith ~n~Published by Careers BMG/ Sony ATV Tunes/ Famous Music ~n~(p) + © 1996 Def Jam ~n~Courtesy of Universal Music Enterprises - -[CR12_22:CRED01] -~n~ ~n~ ~n~ ~n~"Chain Gang Freestyle" ~n~The Lox & Black Rob ~n~Written by Frierson, Phillips, Styles, Jacobs, Ross, Shaw ~n~Published by EMI Music Publishing ~n~Courtesy of Bad Boy Records - -[CR12_23:CRED01] -~n~ ~n~ ~n~ ~n~"Chest2chest Freestyle" ~n~The Lox ~n~Written by Phillips, Styles, Jacobs, Shaw, Barnes, Lemay, Montgomery ~n~Published by Taggie Music (BMI)/ ~n~Universal Polygram Int'l. (ASCAP)/ ~n~EMI Music Publishing ~n~Courtesy of Bad Boy Records - -[CR12_24:CRED01] -This track contains a sample of "Next Level" as performed by Showbiz & AG. Courtesy of Universal Music Enterprises. Used by permission. All rights reserved - -[CR13_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~MSX 98 - -[CR13_02:CRED01] -~n~ ~n~ ~n~ ~n~MC ~n~Codebreaker as himself - -[CR13_03:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Timecode - -[CR13_04:CRED01] -~n~ ~n~ ~n~ ~n~Station Production ~n~Timecode - -[CR13_05:CRED01] -~n~ ~n~ ~n~ ~n~"Renegade Snares" ~n~Omni Trio ~n~Written, Produced & Engineered by ~n~R. Haigh ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1993 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd - -[CR13_06:CRED01] -~n~ ~n~ ~n~ ~n~"Terrorist" ~n~Renegade ~n~Written, Produced & Engineered by ~n~A. Dookith ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd - -[CR13_07:CRED01] -~n~ ~n~ ~n~ ~n~"Finest Illusion (Legal Mix)" ~n~Foul Play ~n~Written, Produced & Engineered by ~n~J. Morrow, S. Bradshaw, ~n~S. Gurley ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1993 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd - -[CR13_08:CRED01] -~n~ ~n~ ~n~ ~n~"Living For the Future (FBD Project Remix)" ~n~Omni Trio ~n~Written, Produced & Engineered by ~n~R. Haigh ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd - -[CR13_09:CRED01] -~n~ ~n~ ~n~ ~n~"Stay Calm (Foul Play Remix)" ~n~DJ Pulse ~n~Written, Produced & Engineered by ~n~A. Brown ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd - -[CR13_10:CRED01] -~n~ ~n~ ~n~ ~n~"Disturbance (Tango Remix)" ~n~Hyper-On Experience ~n~Written, Produced & Engineered by ~n~A. Banks, D. Demierre ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd - -[CR13_11:CRED01] -~n~ ~n~ ~n~ ~n~"Cold Fresh Air" ~n~Higher Sense ~n~Written, Produced & Engineered by ~n~A. Miles, DJ Rhythm ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd - -[CR13_12:CRED01] -~n~ ~n~ ~n~ ~n~"Living For the Future" ~n~Omni Trio ~n~Written, Produced & Engineered by ~n~R. Haigh ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd - -[CR13_13:CRED01] -~n~ ~n~ ~n~ ~n~"Thru The Vibe (2 on 1 Mix)" ~n~Omni Trio ~n~Written, Produced & Engineered by ~n~R. Haigh ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd - -[CR13_14:CRED01] -~n~ ~n~ ~n~ ~n~"The Helicopter Tune" ~n~Deep Blue ~n~Written, Produced & Engineered by ~n~S. O'Keefe ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd - -[CR13_15:CRED01] -~n~ ~n~ ~n~ ~n~"Dred Bass" ~n~Dead Dred ~n~Written, Produced & Engineered by ~n~W. Smith, L. Smith ~n~Published by Moving Shadow Music Ltd ~n~(p) + © 1994 Moving Shadow Ltd ~n~Courtesy of Moving Shadow Ltd - -[CR14_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~FLASHBACK FM - -[CR14_02:CRED01] -~n~ ~n~ ~n~ ~n~DJ ~n~Reni Wassulmaier - Barbara Rosenblatt - -[CR14_03:CRED01] -~n~ ~n~ ~n~ ~n~Imaging Voice ~n~Mike Shapiro - -[CR14_04:CRED01] -~n~ ~n~ ~n~ ~n~"First Hand Experience ~n~In Second Hand Love" ~n~Giorgio ~n~Written by G. Moroder, P. Bellotte ~n~Published by WB Music Corp. (ASCAP) ~n~(p) + © 1977 Giorgio Moroder ~n~Courtesy of Giorgio Moroder - -[CR14_05:CRED01] -~n~ ~n~ ~n~ ~n~"I Wanna Rock You" ~n~Giorgio ~n~Written by G. Moroder, H. Faltermeyer, ~n~K. Forsey ~n~Published by WB Music Corp. (ASCAP) ~n~(p) + © 1979 Giorgio Moroder ~n~Courtesy of Giorgio Moroder - -[CR14_06:CRED01] -~n~ ~n~ ~n~ ~n~"E=MC2" ~n~Giorgio ~n~Written by G. Moroder, H. Faltermeyer, ~n~P. Bellotte ~n~Published by WB Music Corp. (ASCAP) ~n~(p) + © 1979 Giorgio Moroder ~n~Courtesy of Giorgio Moroder - -[CR14_07:CRED01] -~n~ ~n~ ~n~ ~n~"Chase" ~n~Giorgio Moroder ~n~Written by G. Moroder ~n~Published by Warner/ Chappell Music ~n~(p) + © 1978 Casablanca Films/ ~n~Columbia Pictures ~n~Courtesy of Sony Pictures Entertainment - -[CR14_08:CRED01] -~n~ ~n~ ~n~ ~n~"I'm Left, You're Right, She's Gone" ~n~Giorgio ~n~Written by G. Moroder, P. Bellotte ~n~Published by WB Music Corp. (ASCAP) ~n~(p) + © 1977 Giorgio Moroder ~n~Courtesy of Giorgio Moroder - -[CR14_09:CRED01] -~n~ ~n~ ~n~ ~n~"From Here To Eternity" ~n~Giorgio ~n~Written by G. Moroder, P. Bellotte ~n~Published by WB Music Corp. (ASCAP) ~n~(p) + © 1977 Casablanca Records ~n~Courtesy of Universal Music Enterprises - -[CR15_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~COMMERCIAL VOICES - -[CR15_02:CRED01] -~n~ ~n~ ~n~ ~n~Alex Anthony, Anouchka Benson, ~n~Audrey Amey, Bill Smith, ~n~Billy Gonzalez, Brian Thomas, - -[CR15_03:CRED01] -~n~ ~n~Chris Jobin, Chris Silvestro, ~n~Craig Blair, Dan Houser, ~n~Dan Merrill, Ed Thomas, - -[CR15_04:CRED01] -~n~ ~n~Ethan Abeles, Garth Johnston, ~n~Gregg Martin, Gregory Johnson, ~n~Hikari Yokoyama, James Ferrante, - -[CR15_05:CRED01] -~n~ ~n~James Larson, Jay Capozello, ~n~Jayson Gladstone, Jeff Berlin, ~n~Jen Sweeney, Jessica Wachsman, - -[CR15_06:CRED01] -~n~ ~n~ JJ Adler, Jonathan Hanst, ~n~Joshua Batista, Karen Saltus, ~n~Koji Nonoyami, Lance Williams, - -[CR15_07:CRED01] -~n~ ~n~Lazlow, Lynne Horton, ~n~Michael Nathan, Mike Ferrante Jr., ~n~Chris Ferrante, Mike Shapiro, - -[CR15_08:CRED01] -~n~ ~n~Natalya Wilson, Noelle Sadler, ~n~Phil Mikkelson, Ron Reeve, ~n~Smith Harrison, Stacy Rachels, - -[CR15_09:CRED01] -~n~ ~n~ Steve Carlesi, Julie Wemyss, ~n~Kim Gurney - -[CR16_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~CUTSCENE MUSIC - -[CR16_02:CRED01] -~n~ ~n~ ~n~ ~n~"Japanese Geisha" ~n~Sonia Slany ~n~Written by Sonia Slany ~n~Published by West One Music ~n~Courtesy of APM Music, LLC - -[CR16_03:CRED01] -~n~ ~n~ ~n~ ~n~"The Heist" ~n~Bugz in the Attic ~n~Written by K. Tatham ~n~Published by Copyright Control ~n~(p) 2005 Bugz In The Attic ~n~Courtesy of Bugz In The Attic ~n~www.bugzintheattic.co.uk - -[CR16_04:CRED01] -~n~ ~n~ ~n~ ~n~"A Dark March" ~n~Danger Mouse ~n~Written by Danger Mouse ~n~Published by ~n~Underground Animals (ASCAP) - -[CR17_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ROCKSTAR NYC PUBLISHING TEAM - -[CR17_02:CRED01] -~n~ ~n~ ~n~ ~n~Terry Donovan, Jenefer Gross, ~n~Jennifer Kolbe, Devin Winterbottom, ~n~Adam Tedman, Michael Elkind, - -[CR17_03:CRED01] -~n~ ~n~Paul Yeates, Hosi Simon, ~n~Daniel Einzig, Marlene Yamaguchi, ~n~Gauri Khindaria, Stanton Sarjeant, - -[CR17_04:CRED01] -~n~ ~n~Jordan Chew, Ryan Rayhill, ~n~Devin Bennett, Todd Zuniga, ~n~Thomas O'Donnell, Maria Tabia, - -[CR17_05:CRED01] -~n~ ~n~Anthony Carvalho, Lyonel Tollemache, ~n~John Notarfrancesco, Jerry Luna, ~n~Stuart Petri, Stephen Walsh, - -[CR17_06:CRED01] -~n~ ~n~Michael Carnevale, Andrea Borzuku, ~n~John Schuhmann, Alice Chuang, ~n~Mike Torok, Mayumi Kobayashi, - -[CR17_07:CRED01] -~n~ ~n~Elizabeth Satterwhite, Bruce Dugan, ~n~Eli Weissman, Phil Poli, ~n~Jaesun Celebre, Russell Lewis, - -[CR17_08:CRED01] -~n~ ~n~Sean Mackenzie, Megan Henretta, ~n~Angus Wong, Kristine Severson - -[CR17_09:CRED01] -~n~ ~n~ ~n~ ~n~Cover Art ~n~Steven Olds, Stephen Bliss, ~n~Anthony Macbain - -[CR17_10:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ROCKSTAR LONDON PD - -[CR17_11:CRED01] -~n~ ~n~ ~n~ ~n~ Chris Madgwick, Chris Wood, ~n~Daimion Pinnock, David McCarthy, ~n~Graham Ainsley, Jurgen Mol, - -[CR17_12:CRED01] -~n~ ~n~ Laura Battistuzzi, Maike Köhler, ~n~Shino Hori, Lucien King - -[CR18_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ROCKSTAR LINCOLN - -[CR18_02:CRED01] -~n~ ~n~ ~n~ ~n~QA Manager ~n~Mark Lloyd - -[CR18_03:CRED01] -~n~ ~n~ ~n~ ~n~Deputy QA Manager ~n~Tim Bates - -[CR18_04:CRED01] -~n~ ~n~ ~n~ ~n~QA Supervisor ~n~Kevin Hobson - -[CR18_05:CRED01] -~n~ ~n~ ~n~ ~n~Lead Tester ~n~Eddie Gibson ~n~ ~n~ ~n~ ~n~Secondary Lead Tester ~n~Mike Bennett - -[CR18_06:CRED01] -~n~ ~n~ ~n~ ~n~Testers ~n~Jonathan Stones, Mike Emeny, ~n~Andy Mason, Lee Johnson, ~n~Carl Young, Matthew Lunnon, ~n~Dan Goddard, Steve McGagh, ~n~Craig Reeve, Joby Luckett - -[CR18_07:CRED01] -~n~ ~n~ ~n~ ~n~Localization Team ~n~ ~n~ ~n~ ~n~Localization Supervisor ~n~Chris Welsh - -[CR18_08:CRED01] -~n~ ~n~ ~n~ ~n~Testers ~n~Antoine Cabrol, Dominic Garcia, ~n~Paolo Ceccotti, Ferruccio Cinquemani, ~n~Nicolas Klimoff, Jesús Pérez Rosales ~n~ ~n~ ~n~ ~n~IT Support ~n~Nick McVey - -[CR19_01:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~SPECIAL THANKS - -[CR19_02:CRED01] -~n~ ~n~ ~n~ ~n~Scooter, Ross Wallace, ~n~Steve Taylor, Kevin Wong, ~n~Kevin Bolt, John Haime, - -[CR19_03:CRED01] -~n~ ~n~Dave Watson, Thomas French, ~n~James Arthur, Martin Connor, ~n~Brendon McDonald, Julie Wemyss, - -[CR19_04:CRED01] -~n~ ~n~Raff Crolla, James Duffy, ~n~Kim Gurney, Andrew Ness, ~n~Andy Brooks (Gearbox), Alan Mcgregor, - -[CR19_05:CRED01] -~n~ ~n~Chris McCallum, Fred, Narns, ~n~Alan, Taruki, Red, ~n~Big Foot, Rita Liberator, ~n~Elliot Torres - -[CR19_06:CRED01] -~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~THANKS - -[CR19_07:CRED01] -~n~ ~n~ ~n~ ~n~Deborah Mannis-Gardner ~n~and Mark Schwartz. ~n~Randy Acker, Karen Adams, ~n~Mark Ainley, Robin Albers, - -[CR19_08:CRED01] -~n~ ~n~Duncan Baker, Armen Boladian, ~n~Tanya Bridges, Richard Brown, ~n~Matt Brookman, Elena Byington, - -[CR19_09:CRED01] -~n~ ~n~Ed Butts, Rob Cairns, ~n~Mike Callaghan, Joseph Carlone, ~n~Kevin Carson, Jason Chin, - -[CR19_10:CRED01] -~n~ ~n~Allison Cipris, Alimah Deen, ~n~James Ellis, Helen English, ~n~Nasko Fejza, Scott Gardner, - -[CR19_11:CRED01] -~n~ ~n~Jochem Gerrits, ~n~Laurie Goldstein Thomas Golubic, ~n~Nick Guarino, Jon Handle, ~n~Millie Hysu, Robert Jo, - -[CR19_12:CRED01] -~n~ ~n~Paul Johannes, Gavin Johnson, ~n~Curtis A. Jones, Jennifer Justice, ~n~Rod Kotler, Diana La Pointe, - -[CR19_13:CRED01] -~n~ ~n~Michael Lau, Jim Long, ~n~Alex De Maegd, John Massa, ~n~Kendall Minter, Steve Morgan, - -[CR19_14:CRED01] -~n~ ~n~Giorgio Moroder, Suzanne Moss, ~n~Melissa Munana, Kirin Murphy, ~n~Kurosh Nasseri, - -[CR19_15:CRED01] -~n~ ~n~Gwen Niles Sean Ogden ~n~aka DJ Nightshade, ~n~Robin Orlowski, Jonathan Palmer, ~n~Tanvi Patel, Jane Peterer, - -[CR19_16:CRED01] -~n~ ~n~Mark Picchiotti, Rob Playford, ~n~Dan Quan, R. Ramnarayan, ~n~Mary Beth Roberts, ~n~Virgil Roberts, Lindsay Rodman, - -[CR19_17:CRED01] -~n~ ~n~Jim Romano, Craig Roseberry, ~n~Gerry Rosenblatt, RZA, ~n~Ali Samii, Alan Scholefield, - -[CR19_18:CRED01] -~n~ ~n~Christopher Scott, Suzi Scott, ~n~Fredro Scruggs, Jennefer Showalter, ~n~Alan Skiena, Saskia Slegers, - -[CR19_19:CRED01] -~n~ ~n~Fran Spero, Lem Springsteen, ~n~David Steel, Jane Ventom, ~n~Christian Wiseman, Debi Wylde, - -[CR19_20:CRED01] -~n~ ~n~Donna Young, Richie Zito - -{ reLCS - new strings } -{ main menu } - -[FEM_MM] -INICIO - -[FEP_STG] -Iniciar juego - -[FEP_OPT] -Opciones - -[FEP_QUI] -Salir - -[FET_QG] -SALIR - -[FEQ_SRW] -¿Seguro que quieres salir? - -{ options } - -[FET_OPT] -OPCIONES - -[FET_GRA] -Configuración de gráficos - -[FET_PS] -Configuración de hugador - -[FET_MIG] -IZQUIERDA, DERECHA, RUEDA DEL RATÓN PARA AJUSTAR - -[FET_HRD] -SE HA RESTAURADO LA CONFIGURACIÓN PREDETERMINADA - -[FET_APP] -APLICAR - -{ controls } - -[FET_CTL] -Configuración de controles - -[FET_CTI] -Controles clásicos - -[FET_STI] -Controles estándar - -[FEC_RED] -Redefinir controles - -[FEC_MOUSE] -Configuración del ratón - -[FET_DEF] -Restaurar valores por defecto - -{ mouse settings } - -[FEC_MSH] -SENSIBILIDAD DEL RATÓN: - -[FEC_IVV] -INVERTIR VERTICALIDAD RATÓN: - -[FET_MST] -CONDUCIR CON EL RATÓN: - -{ audio } - -[FEA_NM3] -NO HAY ARCHIVOS MP3 - -[FEA_3DH] -HARDWARE DE SONIDO: +[ICC1_O] +¿Qué pasa contigo? [FEA_2SP] 2 altavoces -[FET_DAM] -MODELADO ACÚSTICO DINÁMICO: - [FEA_4SP] Más de 2 altavoces [FEA_EAR] Auriculares -[FEA_MPB] -SUBIR VOLUMEN DE MP3: +[FEA_NAH] +NO HAY HARDWARE DE AUDIO -[FEA_SPK] -CONFIGURACIÓN DE ALTAVOCES: - -[FEA_ADP] -DETECTAR AUTOMÁTICAMENTE - -[FET_RSC] -HARDAWARE NO DISPONIBLE. RESTAURADO AJUSTE ORIGINAL - -{ display } - -[FEM_LOD] -DISTANCIA DE DIBUJADO: - -[FEM_CSB] -BORDES EN CINEMÁTICAS: - -[FEC_FRC] -CÁMARA LIBRE: - -{ graphics } - -[FED_RES] -RESOLUCIÓN DE PANTALLA: - -[FED_FLS] -PANTALLA COMPLETA - -[FED_WND] -VENTANA - -[FEM_VSC] -SINCRONIZAR IMAGEN: - -[FEM_FRM] -LIMITADOR DE FOTOGRAMAS: - -[FED_AAS] -SUAVIZADO DE BORDES: - -[FEM_2PR] -ALPHA TEST TIPO PS2: - -[FEM_MOB] -MÓVIL - -[FED_MBL] -DESENFOQUE DE MOVIMIENTO: - -[FEM_NRM] -NORMAL - -[FEM_SIM] -SIMPLE - -[FEM_SCF] -FORMATO DE IMAGEN: - -[FED_CLF] -FILTRO DE COLOR: - -{ skin } +[FET_APP] +APLICAR [FES_SKN] NOMBRE DE APARIENCIA @@ -17544,29 +4787,83 @@ FECHA [FES_SET] Utilizar apariencia -[FET_DSN] -Apariencia predeterminada del jugador.bmp +[FET_DEF] +Restaurar valores por defecto -{ pause menu } +[FESZ_QZ] +¿Seguro de que quieres guardar esta partida? -[FET_PAU] -MENÚ PAUSA +[FES_SCG] +¿Guardar la partida actual? -[FEP_RES] -Continuar +[FES_LCG] +¿Cargar la partida y continuar jugando? -[FEQ_SRE] -¿Seguro que quieres salir? Se perderán todos los progresos desde la última partida guardada. ¿Quieres proceder? +[FEC_FIR] +Disparar -{ map } +[FEC_NWE] +Siguiente arma -[MAP_YAH] -ESTÁS AQUÍ +[FEC_PWE] +Arma anterior -[FEH_MPH] -RATÓN, CURSORES PARA DESPLAZAR - RE PÁG, AV PÁG, RUEDA RATÓN PARA HACER ZOOM, L - LEYENDA +[FEC_FOR] +Avanzar -{ control keys } +[FEC_BAC] +Retroceder + +[FEC_LEF] +Izquierda + +[FEC_RIG] +Derecha + +[FEC_ZIN] +Acercar zoom + +[FEC_ZOT] +Alejar zoom + +[FEC_EEX] +Entrar y salir + +[FEC_RAD] +Radio + +[FEC_SUB] +Misión secundaria + +[FEC_CMR] +Cambiar cámara + +[FEC_JMP] +Saltar + +[FEC_SPN] +Esprintar + +[FEC_HND] +Freno de mano + +[FEC_LOL] +Mirar hacia la izquierda + +[FEC_LOR] +Mirar hacia la derecha + +[FEC_NTR] +Siguiente objetivo + +[FEC_PTT] +Objetivo anterior + +[FEC_LBA] +Mirar detrás + +[FEC_CEN] +Centrar cámara [FET_CFT] A PIE @@ -17574,250 +4871,86 @@ A PIE [FET_CCR] EN COCHE -[FEC_NMN] -NUM. ~1~ - -[FEC_ETR] -ENTRAR - -[FEC_DOT] -NUM. . - -[FEC_UPA] -ARRIBA - -[FEC_DWA] -ABAJO - -[FEC_RFA] -DERECHA - -[FEC_PGU] -RE PÁG - -[FEC_PGD] -AV PÁG - -[FEC_RTN] -INTRO - -[FEC_NUS] -NO UTILIZADO - -[FEC_HME] -INICIO - -[FEC_RCT] -CTRL DCHO. - -[FEC_LSF] -MAYÚS IZQ. - -[FEC_DLL] -SUPR - -[FEC_TAB] -TAB +[FET_CAC] +ACCIÓN [FEC_IBT] - -[FEC_LCT] -CTRL IZQ. +[FEC_MXO] +MXB1 -[FEC_MSL] -RATÓN IZDO. - -[FEC_MWB] -RUEDA RATÓN ABAJO - -[FEC_MWF] -RUEDA RATÓN ARRIBA - -[FEC_SPC] -ESPACIO - -[FEC_RSF] -MAYÚS DCHA. - -[FEC_MSR] -RATÓN DCHO. - -[FEC_CLK] -BLOQ MAYÚS - -[FEC_MSM] -RATÓN CENTRAL - -[FET_CIG] -RETROCESO: QUITAR - BIR, INTRO: CAMBIAR - -[FET_EIG] -NO SE PUEDE DEFINIR UN CONTROL PARA ESTA ACCIÓN - -[FEC_CMP] -COMBO: MIRAR I+D - -[FEC_LOR] -Mirar hacia la derecha - -[FEC_LOL] -Mirar hacia la izquierda - -[FEC_LBA] -Mirar hacia atrás - -[FEC_IRT] -INSERT - -[FEC_PLS] -NUM. + - -[FEC_QUE] -¿¿¿??? +[FEC_MXT] +MXB2 [FEC_UNB] -SIN ASIGNAR - -[FEC_ERI] -¡Error! Una o más acciones de control no están asignadas a una tecla o botón. Comprueba que todas las acciones de control estén asignadas. - -[FEC_TFD] -Torreta /morro abajo - -[FET_RIG] -ELIGE UN NUEVO CONTROL PARA ESTA ACCIÓN - -[FEC_TFU] -Torreta /morro arriba - -[FEC_TFR] -Mirar /Torreta a dcha. +ILIMITADO [FEC_TFL] -Mirar /Torreta a izda. +Mirar a izquierd+Torreta L -[FEC_ANS] -Acción +[FEC_TFR] +Mirar a derecha+Torreta R -[FEC_HND] -Freno de mano +[FEC_MWF] +RUEDA DEL RATÓN ARRIBA -[FEC_SPN] -Esprintar +[FEC_MWB] +RUEDA DEL RATÓN ABAJO -[FEC_JMP] -Saltar +[FEC_ORR] +o -[FEC_CMR] -Cambiar cámara - -[FEC_SUB] -Misión secundaria - -[FEC_HRN] -Claxon - -[FEC_RAD] -Radio - -[FEC_EEX] -Entrar y salir - -[FEC_ZOT] -Alejar zoom - -[FEC_ZIN] -Acercar zoom - -[FEC_RIG] -Derecha - -[FEC_LEF] -Izquierda - -[FEC_CEN] -Centrar cámara - -[FEC_BAC] -Retroceder - -[FEC_PTT] -Objetivo anterior - -[FEC_FOR] -Avanzar - -[FEC_PWE] -Arma anterior - -[FEC_NWE] -Siguiente arma - -[FEC_FIR] -Disparar - -[FEC_NTR] -Siguiente objetivo - -[FEC_LDU] -Mirar abajo +[FEC_NUS] +NO UTILIZADO [FEC_LUD] Mirar arriba -{ improvements & fixes } +[FEC_LDU] +Mirar abajo -[FED_HUD] -INTERFAZ: +[FEC_CMP] +COMBO: MIRAR I+d -[FED_RDM] -MAPA E ICONOS +[LAW_1A] +law_1a -[FED_RDB] -SOLO ICONOS +[LAW_1B] +law_1b -[FEA_MUS] -VOLUMEN DE RADIO: +[LAW_2A] +law_2a -[FEA_SFX] -VOLUMEN DE EFECTOS: +[LAW_2B] +law_2b -[BUSTED] -¡TRINCADO! +[FEH_STA] +ESTADÍSTICAS -[FEM_SL1] -Archivo 1 no presente +[FEH_LOA] +CARGAR -[FEM_SL2] -Archivo 2 no presente +[FEH_CON] +CONTROLES -[FEM_SL3] -Archivo 3 no presente +[FEH_AUD] +SONIDO -[FEM_SL4] -Archivo 4 no presente +[FEH_DIS] +PANTALLA -[FEM_SL5] -Archivo 5 no presente +[FEH_LAN] +IDIOMA -[FEM_SL6] -Archivo 6 no presente - -[FEM_SL7] -Archivo 7 no presente - -[FEM_SL8] -Archivo 8 no presente - -[FES_DEL] -Borrar partida +[FEH_SGA] +INICIAR NUEVA PARTIDA [FEO_CON] -Configuración de controles +Configuración del mando [FEO_AUD] -Configuración de audio +Configuración de sonido [FEO_DIS] Configuración de pantalla @@ -17828,24 +4961,9453 @@ Configuración de idioma [FEO_PLA] Configuración del jugador -[FEB_AUD] -Audio +[FET_PS] +CONFIGURACIÓN DE APARIENCIA -[FEP_AUD] -AUDIO +[FEA_OUT] +Salida -[FEH_AUD] -AUDIO +[FEA_ST] +Estéreo -[SOUND] -AUDIO +[FEA_DTS] +DTS + +[FEA_RSS] +Emisora de radio + +[FEA_NON] +RADIO APAGADA + +[FEA_FM0] +WILDSTYLE + +[FEA_FM1] +FLASH FM + +[FEA_FM2] +KCHAT + +[FEA_FM3] +FEVER 105 + +[FEA_FM4] +VROCK + +[FEA_FM5] +VCPR + +[FEA_FM7] +EMOTION 98.3 + +[FEA_FM8] +WAVE 103 + +[FED_BRI] +Brillo + +[FED_TRA] +Estelas + +[FED_SUB] +Subtítulos + +[FED_WIS] +Formato 16:9 + +[FED_POS] +Posición de la pantalla + +[FED_RDR] +RADAR + +[FED_HUD] +MODO HUD + +[FED_RDB] +SOLO ICONOS + +[FE_MLG] +LEYENDA DEL MAPA + +[FEI_SCR] +Desplazarse + +[FEP_RES] +Continuar + +[FEP_STG] +Iniciar partida + +[FEP_STA] +Estadísticas + +[FEP_BRI] +Resumen + +[FEP_OPT] +Opciones + +[FEP_QUI] +Salir del juego + +[FES_LOA] +Cargar partida + +[FES_DEL] +Borrar partida + +[FEC_CSU] +Configuración del controlador + +[FEC_RED] +Redefinir controles + +[FEC_MOU] +Configuración del ratón + +[DISTGOL] +Distancia recorrida en carro de golf (millas) + +[DISTGOM] +Distancia recorrida en carro de golf (m) + +[ST_FAVR] +Estación de radio favorita + +[ST_WSTR] +estación de radio que menos te gusta + +[ST_FAVV] +Vehículo favorito + +[ST_STAR] +Número total de estrellas se busca conseguidas + +[ST_HEAD] +Número de disparos a la cabeza + +[ST_GANG] +Banda que menos te gusta + +[ST_STGN] +Número total de estrellas se busca evadidas + +[TYREPOP] +Neumáticos reventados por disparos + +[TYRESLA] +Neumáticos rajados con una navaja + +[ST_BRK] +Número de muertes en el anillo sangriento + +[ST_LTBR] +Mayor tiempo en el anillo sangriento (segs.) + +[ST_GNG1] +Cubanos + +[ST_GNG2] +Haitianos + +[ST_GNG3] +Aspirantes callejeros + +[ST_GNG4] +Pandilleros de Díaz + +[ST_GNG5] +Guardias de seguridad + +[ST_GNG6] +Banda de motoristas + +[ST_GNG7] +Banda de Vercetti + +[ST_GNG8] +Golfistas + +[FEA_FM6] +ESPANTOSO + +[ST_ASSI] +Contratos de asesinato completados + +[DISTBIK] +Dist. Recorrida en moto (millas) + +[DISTBIM] +Distancia recorrida en moto (m) + +[HOTEL] +Ocean View + +[KICK1_9] +PUNTOS DE CONTROL: + +[FIN_B6] +No tienes suficiente dinero para empezar esta misión. + +[TEX3_9] +~g~Recoge una bomba pasando con el helicóptero RC cerca de ella. + +[HELP22] +Ve a la señal de la casa verde que hay en el radar. + +[FES_FMS] +Éxito al formatear. Selecciona Aceptar para continuar. + +[FES_SSC] +Éxito al guardar. Selecciona Aceptar para continuar. + +[FES_DSC] +Éxito al borrar. Selecciona Aceptar para continuar. + +[FESZ_QC] +¿Deseas sobreescribir esta partida guardada dañada? + +[FES_CHE] +¡Atención! Se han activado uno o más trucos, esto puede afectar a tus partidas guardadas. Te recomendamos no guardar esta partida. + +[FET_SG] +GUARDAR PARTIDA + +[FEH_BRI] +INFORME + +[FEH_MAP] +MAPA + +[FEM_OK] +Aceptar + +[FEC_CRO] +Agacharse + +[FEC_CR3] +Agacharse (Botón L3) + +[FEC_SMT] +Sub-misión + +[FEC_SM3] +Sub-misión (Botón R3) + +[FEC_RSC] +Emisoras de radio + +[ST_PR01] +Aviador + +[ST_PR02] +Piloto del ejército + +[ST_PR03] +Oficial piloto + +[ST_PR04] +Cabo + +[ST_PR05] +Teniente + +[ST_PR06] +Sargento + +[ST_PR07] +Capitán + +[ST_PR08] +Biggs + +[ST_PR09] +Wedge + +[ST_PR10] +Barón Rojo + +[ST_PR11] +Ganso + +[ST_PR12] +Víbora + +[ST_PR13] +Jester + +[ST_PR14] +Chappy + +[ST_PR15] +Iceman + +[ST_PR16] +Maverick + +[ST_PR17] +Negado + +[ST_PR18] +General de la Armada aérea + +[ST_PR19] +As + +[FET_LG] +CARGAR JUEGO + +[CAR_EXP] +Vehículos destruidos + +[BOA_EXP] +Barcos destruidos + +[HEL_DST] +Aviones y helicópteros destruidos + +[STFT_01] +Tiempo más rápido de ''Moto con llantas de aleación'' + +[STFT_02] +Tiempo más rápido de ''El conductor'' + +[STFT_03] +Tiempo más rápido en el Circuito de Tierra + +[STFT_04] +Tiempo más rápido en la Carrera de Aviones RC + +[STFT_05] +Tiempo más rápido en la Carrera de Coches RC + +[STFT_06] +Tiempo más rápido Control del Helicóptero RC + +[STFT_07] +Tiempo más rápido en ''Velocidad terminal'' + +[STFT_08] +Tiempo más rápido en ''Ocean Drive'' + +[STFT_09] +Tiempo más rápido en ''Carrera por el borde'' + +[STFT_10] +Tiempo más rápido en ''Capital Cruise'' + +[STFT_11] +Tiempo más rápido en ''¡Tour!'' + +[STFT_12] +Tiempo más rápido en ''Aguante en V.C.'' + +[STHC_01] +Puntuación más alta en el campo de tiro + +[STHC_02] +Mejor porcentaje de impactos en el campo de tiro + +[STHC_03] +Ventas de droga realizadas + +[HELP24] +Ahora puedes aceptar trabajos del Coronel. + +[HELP25] +Ahora puedes aceptar trabajos de Avery Carrington. + +[HELP29] +Puedes visitar la tienda de ropa cuando no estés en una misión. + +[HELP30] +Cuando compres ropa nueva, tu nivel de se busca se establecerá en cero. + +[ASM4_24] +distancia: + +[RBM1_6] +~g~Lleva a Mercedes y el ''love juice'' a la banda en el estudio de grabación. + +[HELP31] +Para hacer una pasada, mira primero a izquierda o derecha con ~k~~VEHICLE_LOOKLEFT~ o ~k~~VEHICLE_LOOKRIGHT~. + +[HELP34] +Para realizar una pasada deberás tener un subfusil. + +[STRIP_1] +~r~No tienes dinero suficiente, tacaño miserable. + +[EXIT_1] +Pulsa ~k~~PED_SPRINT~ para salir. + +[ASM1_B] +Encontrará su siguiente trabajo pegado con cinta adhesiva bajo el teléfono. + +[ASM1_C] +Tengo más trabajo para usted que requerirá tomar ''el volante'' de la situación. + +[SCARF] +Apartamento 3c + +[LAW4_10] +¡Mamones de directores! + +[RCH1_6] +~g~Utiliza el helicóptero RC para pasar por los puntos de control dispersados por el aeropuerto. + +[RCH1_9] +~b~TIEMPO TOTAL: ~1~:~1~ + +[RCH1_10] +~b~TIEMPO TOTAL: ~1~:0~1~ + +[WHEEL01] +DOBLE BONIFICACIÓN EN DOS RUEDAS: ~1~ $ Distancia: ~1~,~1~m Tiempo: ~1~ segundos + +[WHEEL02] +DOBLE BONIFICACIÓN EN DOS RUEDAS: ~1~ $ Distancia: ~1~ pies Tiempo: ~1~ segundos + +[WHEEL03] +BONIFICACIÓN EN DOS RUEDAS: ~1~ $ Tiempo: ~1~ segundos + +[WHEEL04] +BONIFICACIÓN EN DOS RUEDAS: ~1~ $ Distancia: ~1~,~1~m + +[WHEEL05] +BONIFICACIÓN EN DOS RUEDAS: ~1~ $ Distancia: ~1~ pies + +[WHEEL06] +BONIFICACIÓN EN CABALLITO: ~1~ $ Distancia: ~1~,~1~m Tiempo: ~1~ segundos + +[WHEEL07] +BONIFICACIÓN EN CABALLITO: ~1~ $ Distancia: ~1~ pies Tiempo: ~1~ segundos + +[WHEEL08] +BONIFICACIÓN EN CABALLITO: ~1~ $ Tiempo: ~1~ segundos + +[WHEEL09] +BONIFICACIÓN EN CABALLITO: ~1~ $ Distancia: ~1~,~1~m + +[WHEEL10] +BONIFICACIÓN EN CABALLITO: ~1~ $ Distancia: ~1~ pies + +[WHEEL11] +BONIFICACIÓN EN PARADA MÁS LARGA: ~1~ $ Distancia: ~1~,~1~m Tiempo: ~1~ segundos + +[WHEEL12] +BONIFICACIÓN EN PARADA MÁS LARGA: ~1~ $ Distancia: ~1~ pies Tiempo: ~1~ segundos + +[WHEEL13] +BONIFICACIÓN EN PARADA MÁS LARGA: ~1~ $ Tiempo: ~1~ segundos + +[WHEEL14] +BONIFICACIÓN EN PARADA MÁS LARGA: ~1~ $ Distancia: ~1~,~1~m + +[WHEEL15] +BONIFICACIÓN EN PARADA MÁS LARGA: ~1~ $ Distancia: ~1~ pies + +[ROK3_72] +¡Love Fist! + +[POR1_19] +¡Eh! + +[DESPERA] +Desesperado + +[MOB_99A] +Ve hasta el teléfono público junto al centro comercial en Washington. + +[MOB_98A] +Ve hasta el teléfono público en Vice Point. + +[MOB_96A] +Ve hasta el teléfono público en la terminal del aeropuerto. + +[MOB_95A] +Ve hasta el teléfono público en Little Havana. + +[BNK1_1] +¿Le puedo ayudar, señor? + +[BNK1_2] +¡Hay un impostor! + +[BNK1_3] +¡Se ha vuelto loco! + +[BNK1_4] +¿Quién demonios eres? + +[BNK1_5] +¿Dónde está tu placa? + +[BNK1_6] +¡Ahí están! ¡Dispara a matar! + +[MOB_24A] +Hola, ¿Sr. Vercetti? + +[MOB_24B] +Sí. + +[MOB_24C] +Soy Cortez. Usted estuvo en mi fiesta. + +[MOB_24D] +Sí, lo recuerdo. + +[MOB_24E] +Sr. Vercetti, ha sido un desgraciado incidente lo que ocurrió con su operación de negocios. + +[MOB_24F] +Lo sé. + +[MOB_24G] +Quiero que sepa que tanto yo como mi gente estamos haciendo todo lo que podemos para llegar al fondo de este tema. + +[MOB_24H] +Si desea hablar conmigo de manera más privada, me podrá encontrar en el barco. Buenos días, señor. + +[BNK2_6] +¡Este tío está chalado! + +[ANGEL] +Ángel + +[CUBJET] +Jetmax Cubano + +[SANDKIN] +Sandking + +[POLMAV] +Maverick de la policía + +[BOXVILL] +Boxville + +[BENSON] +Benson + +[HOTRINA] +Corredor de Hotring + +[HOTRINB] +Corredor de Hotring + +[BLOODRA] +Coche de Bloodring + +[BLOODRB] +Coche de Bloodring + +[MAFIACR] +Yate de la Mafia + +[COP_M2] +ANTI VICIO + +[COP_M3] +TRUENO MARRÓN + +[BNK3_2] +No voy a conducir por ti, ni soñando, voy a compartir esto con el grupo. + +[FEM_SL1] +No hay archivo 1 guardado + +[FEM_SL2] +No hay archivo 2 guardado + +[FEM_SL3] +No hay archivo 3 guardado + +[FEM_SL4] +No hay archivo 4 guardado + +[FEM_SL5] +No hay archivo 5 guardado + +[FEM_SL6] +No hay archivo 6 guardado + +[FEM_SL7] +No hay archivo 7 guardado + +[FEM_SL8] +No hay archivo 8 guardado + +[FEA_CHA] +Cambiando la salida de audio a ESTÉREO. Espera... + +[FEA_CHD] +¡Aviso! Estás cambiando la salida de ESTÉREO a DTS. Espera... + +[FEI_SEL] +Selec. + +[FEI_BAC] +Atrás + +[FEI_RES] +Reanudar + +[FEI_NAV] +Navegar + +[FEI_BTX] +botón / - + +[FEI_BTT] +botón " - + +[FEI_STA] +Botón START - + +[FEI_BTD] +; = > < - + +[FEI_STO] +Parar + +[MOB_68A] +Tommy, tío, tengo una sorpresa para ti. + +[MOB_68B] +Me encuentro en el estudio de grabación con unos artistas importantes. + +[MOB_68C] +¿Por qué no te vienes por aquí? + +[MOB_68D] +Sabes que esto tiene sentido, ¿a que sí? Hasta dentro de un rato. + +[OUTFT1] +Calle + +[OUTFT2] +Etiqueta + +[OUTFT3] +Mono de trabajo + +[OUTFT4] +Club de campo + +[OUTFT5] +Habana + +[OUTFT6] +Policía + +[OUTFT7] +Atraco al banco + +[OUTFT8] +Informal + +[OUTFT9] +Sr. Vercetti + +[OUTFT10] +Chándal + +[OUTFT13] +MC Tommy + +[CAR_AS1] +CONCESIONARIO DE COCHES CONSOLIDADO + +[CAR_AS2] +~g~El Concesionario de coches Sunshine generará ahora unos ingresos de hasta ~1~ $ máximo. Asegúrate de recaudarlos regularmente. + +[BUYSAVE] +~g~A partir de ahora, podrás guardar tu partida aquí cuando no estés en una misión. + +[BUYGARG] +~g~También puedes almacenar vehículos en este garaje. + +[STRPBUY] +Adquirido el club Pole Position: ~1~ $ + +[GA_4] +Las bombas de coche son 500 $ cada una. + +[GA_5] +Tu coche ya está equipado con una bomba. + +[GA_6] { reVC update } +¡Apárcalo, actívala pulsando ~h~~k~~VEHICLE_FIREWEAPON~~w~ y SAL PITANDO! + +[GA_7] { reVC update } +¡Ármalo pulsando ~h~~k~~VEHICLE_FIREWEAPON~~w~. La bomba explotará cuando se arranque el motor. + +[GA_6B] { reVC update } +¡Apárcalo, actívala pulsando ~h~~k~~VEHICLE_FIREWEAPON~~w~ y SAL PITANDO! + +[GA_7B] { reVC update } +¡Ármalo pulsando ~h~~k~~VEHICLE_FIREWEAPON~~w~. La bomba explotará cuando se arranque el motor. + +[MOB_70A] +Tommy, soy yo, el coronel Cortez. Mira, me parece que eres la clase de hombre que lleva a cabo los trabajos. Así que ayúdame, por favor. + +[MOB_70B] +Me podrás encontrar en el barco. + +[PICK1] +¡El chaleco antibalas ha sido entregado en el hotel Ocean View! + +[PICK2] +¡La .357 ha sido entregada en el hotel Ocean View! + +[PICK3] +¡La sierra mecánica ha sido entregada en el hotel Ocean View! + +[PICK4] +¡El lanzallamas ha sido entregado en el hotel Ocean View! + +[PICK5] +¡El rifle de francotirador .308 ha sido entregado en el hotel Ocean View! + +[PICK6] +¡La Ametralladora Pesada ha sido entregada en el hotel Ocean View! + +[PICK7] +¡El lanzacohetes ha sido entregado en el hotel Ocean View! + +[PICK8] +¡El Sea Sparrow está ahora disponible en la mansión de Starfish Island! + +[PICK9] +¡El tanque está ahora disponible en los cuarteles del ejército! + +[PICK10] +¡El Hunter está ahora disponible en los cuarteles del ejército! + +[CLOTH1] +El traje de etiqueta ha sido entregado en Rafaels en Ocean Beach. + +[CLOTH2] +El traje de calle ha sido entregado en los pisos francos. + +[CLOTH3] +El mono de trabajo ha sido entregado en Tooled Up en el centro comercial de North Point. + +[CLOTH4] +El traje del club de campo ha sido entregado en el club de golf de Leaf Links. + +[CLOTH5] +El traje Havana ha sido entregado en la tienda de ropa de Little Havana. + +[CLOTH6] +El traje de policía ha sido entregado en la jefatura de policía de Washington Beach. + +[CLOTH7] +El traje informal ha sido entregado en Gash del centro comercial de North Point. + +[CLOTH8] +El traje del Sr. Vercetti ha sido entregado en Collar & Cuffs de Ocean Beach. + +[CLOTH9] +El chándal ha sido entregado en Jocksport del centro de la ciudad. + +[CLOTH10] +El traje para el atraco al banco ha sido entregado en el Club Malibu de Vice Point. + +[MOB_62A] +Tommy, soy Ricardo Díaz, quiero darte las gracias por cuidar de mí, tío. + +[MOB_62B] +He preguntado al gilipollas de Cortez, y me ha dicho que eres bueno, amigo, ¿por qué no vienes a verme? + +[MOB_62C] +Necesito un tío como tú. Todos los que tengo son gilipollas perdidos, + +[MOB_62D] +gilipollas por todas partes, tío. Yo te puedo hacer muy rico. + +[GOAWAY2] +~g~Regresa cuando hayas terminado las misiones de la banda de moteros. + +[COL2_9] +¡Estúpido americano! ¡Te han seguido hasta aquí! + +[LOADCOL] +Cargando... + +[STFT_17] +Tiempo más rápido en la ''Prueba PCJ'' + +[STFT_18] +Tiempo más rápido en el ''Trial de tierra'' + +[STFT_19] +Tiempo más rápido en la ''Pista de Pruebas'' + +[NEW_REC] +¡Nuevo récord establecido! ~w~~1~ minutos ~g~y ~w~~1~ segundos. + +[BMX_HOW] +~g~¡Da dos vueltas a la pista de tierra, ~y~pasando por ~g~los ~y~PUNTOS DE CONTROL ~g~por el camino! + +[BMXREW1] +~g~¡Cada vez que batas tu récord anterior de las dos vueltas + +[BMXREW2] +~g~conseguirás una ~y~RECOMPENSA ~g~mejor! + +[BMXRAIN] +~g~Parece lluvia... + +[ITBEG] +Al principio... + +[NBMNBUY] +Casa Swanko adquirida: ~1~ $ + +[LNKVBUY] +Apartamento en Links View adquirido: ~1~ $ + +[HYCOBUY] +Piso de Hyman adquirido: ~1~ $ + +[BUYGARS] +~g~Puedes guardar vehículos en estos garajes. + +[OCHEBUY] +Apartamento de Ocean Heights adquirido: ~1~ $ + +[WASHBUY] +1102 de la calle Washington adquirido: ~1~ $ + +[VCPTBUY] +3321 de Vice Point adquirido: ~1~ $ + +[SKUMBUY] +Chabola Skumole adquirida: ~1~ $ + +[HELP6_C] +Pulsa ~h~~k~~VEHICLE_HANDBRAKE~~w~ para usar el freno de mano del vehículo. + +[HELP2_A] +Pulsa ~h~~k~~PED_SPRINT~~w~~w~ cuando estés corriendo para ~h~esprintar. + +[HELP4_A] +Pulsa ~h~~k~~VEHICLE_ACCELERATE~~w~ para acelerar. + +[HELP5_A] +Pulsa ~h~~k~~VEHICLE_BRAKE~~w~ para frenar o para dar marcha atrás si el vehículo se ha detenido. + +[HELP8_A] +Pulsa ~h~~k~~PED_SNIPER_ZOOM_IN~~w~ para hacer zoom con el rifle y ~h~~k~~PED_SNIPER_ZOOM_OUT~~w~ para alejar la vista. + +[PBOAT_1] { reVC update } +Pulsa ~h~ ~k~~VEHICLE_FIREWEAPON~~w~ para disparar los cañones del barco. + +[SEG3_4] { reVC update } +~g~Puedes recoger bombas simplemente pilotando tu Helicóptero RC cerca de cada una de ellas, para soltar una bomba pulsa ~h~~k~~VEHICLE_FIREWEAPON~~g~. + +[RCR1_3] { reVC update } +~g~Si quieres abandonar esta misión, pulsa ~h~~k~~VEHICLE_FIREWEAPON~~g~ para detonar tu coche RC. + +[HELP32] { reVC update } +A continuación dispara pulsando ~h~~k~~VEHICLE_FIREWEAPON~. + +[HELP33] { reVC update } +A continuación dispara pulsando ~h~~k~~VEHICLE_FIREWEAPON~. + +[TTUTOR] +Pulsa ~h~~k~~TOGGLE_SUBMISSIONS~~w~ para comenzar o cancelar las misiones de taxista. + +[TTUTOR2] +Pulsa ~h~~k~~TOGGLE_SUBMISSIONS~~w~ para comenzar o cancelar las misiones de taxista. + +[FTUTOR] +Pulsa ~h~~k~~TOGGLE_SUBMISSIONS~~w~ para comenzar o cancelar las misiones del camión de bomberos. + +[FTUTOR2] +Pulsa ~h~~k~~TOGGLE_SUBMISSIONS~~w~ para comenzar o cancelar las misiones del camión de bomberos. + +[CTUTOR] +Pulsa ~h~~k~~TOGGLE_SUBMISSIONS~~w~ para comenzar o cancelar las misiones de justiciero. + +[CTUTOR2] +Pulsa ~h~~k~~TOGGLE_SUBMISSIONS~~w~ para comenzar o cancelar las misiones de justiciero. + +[HELP8_B] +Pulsa ~h~~k~~PED_SNIPER_ZOOM_IN~ ~w~para ~h~acercar la vista ~w~con el rifle y ~h~~k~~PED_SNIPER_ZOOM_OUT~ ~w~para ~h~alejar la vista ~w~otra vez. + +[ATUTOR3] +Pulsa ~h~~k~~TOGGLE_SUBMISSIONS~~w~ para comenzar o cancelar las misiones de ATS. + +[GUN_H1] +~w~Pulsa ~h~~k~~PED_SPRINT~~w~ para comprar. ~w~Pulsa ~h~~k~~VEHICLE_ENTER_EXIT~~w~ para salir. + +[PU_CF3] { reVC update } +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para reemplazar tu arma actual en esta ranura. + +[PU_CF4] { reVC update } +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para reemplazar tu arma actual en esta ranura. + +[HELP9_B] +Pulsa ~h~~k~~PED_FIREWEAPON~ ~w~para ~h~disparar~w~ el rifle de francotirador. + +[HELP37] +Si no quieres subir al coche mientras se lo estás robando a alguien, pulsa ~h~~k~~PED_SPRINT~. + +[HELP6_A] +Pulsa ~h~~k~~VEHICLE_HANDBRAKE~~w~ para usar el freno de mano del vehículo. + +[HELP6_D] +Pulsa ~h~~k~~VEHICLE_HANDBRAKE~~w~ para usar el freno de mano del vehículo. + +[HELP26] +Pulsa ~h~~k~~VEHICLE_ENTER_EXIT~~w~ para subir o bajar de un vehículo. + +[HELP27] +Pulsa ~h~~k~~VEHICLE_TURRETUP~~w~ o ~h~~k~~VEHICLE_TURRETDOWN~~w~ para equilibrar tu peso en la moto. + +[HELP28] +Pulsa ~h~~k~~VEHICLE_TURRETUP~~w~ o ~h~~k~~VEHICLE_TURRETDOWN~~w~ para equilibrar tu peso en la moto. + +[HELP35] +Pulsa ~h~~k~~GO_LEFT~~w~ o ~h~~k~~GO_RIGHT~~w~ para conducir el vehículo. + +[HELP36] +Pulsa ~h~~k~~GO_LEFT~~w~ o ~h~~k~~GO_RIGHT~~w~ para conducir el vehículo. + +[HELP42] +Ve al ~q~icono rosa~w~ para encontrar el hotel. + +[HELP19] +Camina hasta el ~q~marcador rosa~w~ para continuar. + +[HELP1] +Párate en el centro del ~q~marcador rosa. + +[HELP12] +Camina hasta el centro del ~q~marcador rosa~w~ para activar una misión. + +[SEG3_6] +~g~Para acertar en una zona objetivo con éxito, deberás soltar una bomba en la zona representada por el ~q~marcador rosa~w~. Puedes soltar las bombas en cualquier orden. + +[S_PROMP] +Cuando no estés en una misión podrás guardar tu progreso recogiendo las ~h~cintas de cassette~w~. + +[HELP16] +Cruza la puerta principal del hotel ~h~Ocean View~w~ para entrar en el edificio. + +[HELP43] +~g~Ve al hotel ~h~Ocean View~g~ en Ocean Drive. + +[HELI_F1] +~r~¡Misión de puntos de control cancelada! + +[AMMUHLP] +Si necesitas armas pásate por ~h~Ammu-Nation~w~. Está indicado en el radar como una ~h~pistola~w~ azul. + +[HELI_1] +Control del Helicóptero de Centro de la ciudad + +[HELI_2] +Control del Helicóptero de Ocean Beach + +[HELI_3] +Control del Helicóptero de Vice Point + +[HELI_4] +Control del Helicóptero de Little Haiti + +[FST_MFR] +Emisora de radio preferida + +[FST_LFR] +Emisora de radio menos escuchada + +[FEI_HOL] +Mantener + +[FEI_ZOO] +Zoom + +[FEI_BTR] +> < - + +[FEI_NA] +N\A + +[MESA] +Mesa Grande + +[STRP_NO] +No puedes comprar el club de striptease en este momento, vuelve luego. + +[CHSE] +PERSECUCIÓN + +[NBMN_L] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar la casa Swanko por ~1~ $. + +[NBMN_T] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar la casa Swanko por ~1~ $. + +[NBMN_C] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar la casa Swanko por ~1~ $. + +[LNKV_L] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar el apartamento de Links View por ~1~ $. + +[LNKV_T] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar el apartamento de Linsk View por ~1~ $. + +[LNKV_C] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar el apartamento de Links View por ~1~ $. + +[HYCO_L] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar el piso de Hyman por ~1~ $. + +[HYCO_T] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar el piso de Hyman por ~1~ $. + +[HYCO_C] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar el piso de Hyman por ~1~ $. + +[OCHE_L] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar el apartamento de Ocean Heights por ~1~ $. + +[OCHE_T] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar el apartamento de Ocean Heights por ~1~ $. + +[OCHE_C] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar el apartamento de Ocean Heights por ~1~ $. + +[WASH_L] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar el 1102 de la calle Washington por ~1~ $. + +[WASH_T] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar el 1102 de la calle Washington por ~1~ $. + +[WASH_C] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar el 1102 de la calle Washington por ~1~ $. + +[VCPT_L] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar el 3321 de Vice Point por ~1~ $. + +[VCPT_T] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar el 3321 de Vice Point por ~1~ $. + +[VCPT_C] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar el 3321 de Vice Point por ~1~ $. + +[SKUM_L] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar la chabola Skumole por ~1~ $. + +[SKUM_T] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~para comprar la chabola Skumole por ~1~ $. + +[SKUM_C] +Pulsa ~h~~k~~PED_ANSWER_PHONE~ ~w~ para comprar la chabola Skumole por ~1~ $. + +[PRNT_L] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar la imprenta por ~1~ $. + +[PRNT_T] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar la imprenta por ~1~ $. + +[PRNT_C] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar la imprenta por ~1~ $. + +[CAR_L] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar el concesionario de coches por ~1~ $. + +[CAR_T] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar el concesionario de coches por ~1~ $. + +[CAR_C] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar el concesionario de coches por ~1~ $. + +[PORN_L] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar los estudios de cine por ~1~ $. + +[PORN_T] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar los estudios de cine por ~1~ $. + +[PORN_C] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar los estudios de cine por ~1~ $. + +[ICE_L] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar la fábrica de helados por ~1~ $. + +[ICE_T] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar la fábrica de helados por ~1~ $. + +[ICE_C] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar la fábrica de helados por ~1~ $. + +[TAXI_L] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar la compañía de taxis por ~1~ $. + +[TAXI_T] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar la compañía de taxis por ~1~ $. + +[TAXI_C] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar la compañía de taxis por ~1~ $. + +[BANK_L] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar el Malibú por ~1~ $. + +[BANK_T] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar el Malibú por ~1~ $. + +[BANK_C] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar el Malibú por ~1~ $. + +[BOAT_L] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar el astillero por ~1~ $. + +[BOAT_T] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar el astillero por ~1~ $. + +[BOAT_C] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar el astillero por ~1~ $. + +[STRP_L] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar el club Pole Position por ~1~ $. + +[STRP_T] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar el club Pole Position por ~1~ $. + +[STRP_C] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar el club Pole Position por ~1~ $. + +[STOCK] +~r~Agotado + +[HELP14] +Para encontrar el bufete del abogado, ve hacia la ~h~señal de la L~w~ que hay en el radar. + +[RAMPAGE] +¡MASACRE! + +[RAMP_F] +¡MASACRE FALLIDA! + +[RAMP_P] +¡MASACRE COMPLETADA! + +[RAMP_A] +¡TODAS LAS MASACRES COMPLETADAS! + +[PAGE_01] +¡Liquida a ~1~ criminales en 2 minutos! + +[PAGE_02] +¡Destruye ~1~ vehículos en 2 minutos! + +[PAGE_03] +¡Pasa en el coche y cárgate a ~1~ criminales en 2 minutos! + +[PAGE_04] +¡Atropella y mata a ~1~ criminales en 2 minutos! + +[PAGE_05] +¡Abate a tiros a ~1~ criminales en 2 minutos! + +[SENTXS] +Sentinel XS + +[MAP_LEG] +Leyenda + +[VCNMAV] +VCN Maverick + +[LG_01] +Posición del jugador + +[LG_02] +Avery Carrington + +[LG_03] +Contacto del motero + +[LG_04] +Coronel Cortez + +[LG_05] +Ricardo Díaz + +[LG_06] +Kent Paul + +[LG_07] +Abogado + +[LG_08] +Phil Cassidy + +[LG_09] +Astillero + +[LG_10] +Club Malibú + +[LG_11] +Cubanos + +[LG_12] +Estudio Cinematográfico + +[LG_13] +Ammu-Nation + +[LG_14] +Haitianos + +[LG_15] +Ferretería + +[LG_16] +Piso franco + +[LG_17] +Helado + +[LG_18] +Taxis Kaufman + +[LG_19] +Love Fist + +[LG_20] +Imprenta + +[LG_21] +Propiedad + +[LG_22] +Taller de Pintura + +[LG_23] +Tienda de ropa + +[LG_24] +Mansión de Tommy + +[LG_25] +Teléfono + +[LG_26] +Emisora de radio Wildstyle + +[LG_27] +Emisora de radio Flash FM + +[LG_28] +Emisora de radio Kchat + +[LG_29] +Emisora de radio Fever 105 + +[LG_30] +Emisora de radio VRock + +[LG_31] +Emisora de radio VCPR + +[LG_32] +Emisora de radio Espantoso + +[LG_33] +Emisora de radio Emotion 98.3 + +[LG_34] +Emisora de radio Wave 103 + +[LG_35] +Destino + +[LG_36] +Solarium + +[LG_37] +Club de Striptease + +[LG_38] +Objetivo + +[MAP_YAH] +ESTÁS AQUÍ + +[TAXSHRT] +~g~Puedes coger este taxi Kaufman para ir a tu destino sin conducir. Te costará 9 $. + +[FEST_HV] +Nivel más alto de misión de justiciero + +[CLOHELP] +¡Ropa limpia! + +[SUNSHIN] +Coches Sunshine + +[CHERRYP] +Helados Cherry Popper + +[KAUFCAB] +Taxis Kaufman + +[BOATYAR] +El Astillero + +[WANT_L] +Has perdido tu nivel de se busca, si cometes un crimen mientras las estrellas parpadean, tu nivel total de se busca se restablecerá. + +[FEI_BTU] +; = - + +[BOAT_AS] +~g~El astillero generará ahora unos ingresos hasta un máximo de ~1~ $. Asegúrate de recaudarlos de manera regular. + +[BOAT_A2] +ASTILLERO COMPLETADO + +[BOAT_N] +Punto de control Charlie + +[BOAT_P] +~g~Recoge los paquetes antes de que se acabe el tiempo. + +[FEI_R1B] +Botón R1 \ R2 - + +[HELP9_A] +Pulsa ~h~~k~~PED_FIREWEAPON~ ~w~para disparar el rifle de francotirador. + +[HELP21] +Pulsa ~h~~k~~VEHICLE_ENTER_EXIT~ ~w~para subir o bajar de un vehículo. + +[CREAM] +Distribución + +[UMBERTO] +Café Robina + +[PU_CF1] +Pulsa ~h~~k~~PED_ANSWER_PHONE~ ~w~para recoger esta arma. Reemplazará cualquier arma del mismo tipo que tengas. + +[FED_RDM] +MAPA E ICONOS + +[FEC_ILU] +Invertir vista en primera persona + +[NITRO] +¡Ahora todos los taxis disponen de un impulsor de salto! Simplemente toca el claxon. + +[RATNG53] +Informal + +[RATNG54] +Vergüenza + +[RATNG55] +Hacker + +[RATNG56] +Liante + +[RATNG57] +Mentiroso compulsivo + +[STHC_04] +Puntuación más alta por mantener la pelota en el aire en la playa + +[STHC_05] +Mejor resultado de Hotring + +[STFT_13] +Mejor tiempo en el Control del Helicóptero del centro + +[STFT_14] +Mejor tiempo en el Control del Helicóptero de Ocean Beach + +[STFT_15] +Mejor tiempo en el Control del Helicóptero de Vice Point + +[STFT_16] +Mejor tiempo en el Control del Helicóptero de Little Haití + +[STFT_21] +Tiempo más rápido en Hotring + +[STFT_22] +Vuelta más rápida en Hotring + +[STFT_20] +Tiempo más rápido en el ''Conocircuito'' + +[HELP44] +Detente en el ~q~marcador rosa. + +[HELP45] +Pulsa ~h~~k~~PED_DUCK~~w~ para agacharte. Esto aumentará tu puntería con las armas que llevas. + +[RCR1_5] +Carrera Bandit RC + +[RCPL1_7] +Carrera Barón RC + +[RCH1_11] +Recogidas del Raider RC + +[FEA_CTD] +¡Aviso! Esta característica requiere que el dispositivo compatible DTS esté conectado. ¿Continuar? + +[FEM_STE] +UTILIZAR ESTÉREO + +[GREET] +Saludos desde... + +[LANCE_1] +¡Venga, tío, conduce con más cuidado! + +[LANCE_2] +¡Eh, mira lo que haces! + +[LANCE_3] +¿Eh, dónde vamos ahora? + +[LANCE_4] +¿Qué estamos haciendo ahora? + +[LAW4_15] +¡Más dinero! + +[MERC_5] +Bonito coche, Mr. Vercetti. + +[MERC_26] +¡DEPRISA, DEPRISA, DEPRISA! + +[MERC_27] +Con cuidado Tommy, me arreglaron la nariz el mes pasado. + +[MERC_28] +Conduce con cuidado Tommy. + +[MERC_29] +Ve más despacio Tommy. + +[MERC_30] +Tommy, si no te importa mata a quien quieras menos a mí. + +[MERC_31] +¡Tommy, cielo, no me mates! + +[MERC_32] +¡Tommy, me alegro que robaras este coche! + +[MERC_40] +Me he divertido tanto. + +[MERC_43] +Adiós, mi ángel. + +[MERC_44] +Ahora sigue machacándote, me oyes. + +[MERC_45] +Ciao, guapetón. + +[COL5_17] +¡Oh, Dios mío, tienen un helicóptero! + +[COL5_18] +¡Dispara al helicóptero! + +[COL5_19] +Tommy, ¡hazte con ese helicóptero! + +[COL5_20] +¡Ahí viene otra vez! ¡Derriba a ese helicóptero! + +[COL5_21] +¡Mira el tamaño de ese helicóptero! + +[COL5_22] +¡Ahí viene de nuevo! + +[FEA_DSM] +¡Aviso! Esta partida guardada está configurada para utilizar DTS. Esto requiere que el dispositivo compatible DTS esté conectado. Por favor selecciona si quieres continuar usando el sistema DTS o ESTÉREO. + +[STFT_23] +Tiempo más rápido en Punto de control Charlie + +[HELP50] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para colocar la cámara detrás de ti. + +[HELP51] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para colocar la cámara detrás de ti. + +[HELP52] +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para colocar la cámara detrás de ti. + +[HELP53] +Pulsa ~h~~k~~PED_CYCLE_WEAPON_LEFT~~w~ o ~h~~k~~PED_CYCLE_WEAPON_RIGHT~~w~ para elegir entre todas tus armas disponibles. + +[HELP46] +Hay ocho categorías de armas diferentes. + +[HELP47] +Puedes llevar una arma de cada categoría al mismo tiempo: un tipo de pistola, un tipo de rifle. + +[HELP54] +~w~Cuesta: ~1~ $. ~r~Si compras esta arma reemplazarás la actual. + +[HELP2A2] +Pulsa ~h~~k~~PED_SPRINT~~w~ cuando corras para ~h~esprintar. + +[HLPSN_A] +El rifle de francotirador te permite hacer zoom de acercamiento y disparar con más precisión a objetivos a una cierta distancia. + +[HLPSN_B] +Mantén pulsado ~h~~k~~PED_LOCK_TARGET~ ~w~para ~h~apuntar~w~ con el rifle de francotirador. + +[HLPSN_C] +Mantén pulsado ~h~~k~~PED_LOCK_TARGET~ ~w~para ~h~apuntar~w~ con el rifle de francotirador. + +[HLPSN_D] +Pulsa ~h~~k~~PED_SNIPER_ZOOM_IN~~w~ para ~h~acercar la vista ~w~con el rifle y ~h~~k~~PED_SNIPER_ZOOM_OUT~ ~w~para ~h~alejarla~w~. + +[HLPSN_E] +Pulsa ~h~~k~~PED_FIREWEAPON~~w~ para ~h~disparar~w~ el rifle de francotirador. + +[HLPSN_F] +Pulsa ~h~~k~~PED_FIREWEAPON~~w~ para ~h~disparar~w~ el rifle de francotirador. + +[HLPSN_G] +Pulsa ~h~~k~~PED_FIREWEAPON~~w~ para ~h~disparar~w~ el rifle de francotirador. + +[PLANE_H] +Mueve ~h~~k~~VEHICLE_ACCELERATE~~w~ hacia delante para acelerar y a izquierda o derecha para girar. + +[PLANE_4] { reVC update } +{Mueve ~h~~k~~VEHICLE_ACCELERATE~~w~ hacia delante para acelerar y a izquierda o derecha para girar.} +Utiliza el joystick analógico derecho para acelerar, tira hacia atrás el joystick analógico izquierdo para ascender, empújalo hacia adelante para descender. Para girar muévelo a izquierda o derecha. + +[HELP55] +Pulsa ~h~~k~~PED_FIREWEAPON~~w~ para atacar al chef. + +[STPR_8] +Club Pole Position + +[STPR_9] +3321 de Vice Point + +[STPR_10] +Apartamento de Links View + +[STPR_11] +Casa Swanko + +[STPR_12] +1102 de Washington Street + +[STPR_13] +Apartamento de Ocean Heights + +[STPR_14] +Chabola Skumole + +[STPR_15] +Piso de Hyman + +[RCCANX] +~r~Misión de avión RC cancelada. + +[CLT_HL2] +Cuando recojas ropa, te librarás de una o dos estrellas del nivel de se busca. + +[CRED009] +DISEÑO DE MISIONES + +[CRED359] +LEE JOHNSON + +[CRED360] +HENDRIK LESSER + +[CRED361] +PASQUALE STACCHIOTTI + +[CRED362] +ENRIQUE FERNÁNDEZ + +[CRED363] +PAUL BYERS + +[CRED364] +MIKE EMENY + +[CRED365] +ROB DUNKIN + +[CRED366] +CHARLIE KINLOCH + +[CRED367] +KEVIN HOBSON + +[CRED368] +JIM CREE + +[MOB_66A] +Tommy, Tommy, ¿para qué has vuelto? + +[MOB_66B] +Ya te he dicho que no queremos verte más. + +[MOB_67A] +Tommy, creo que no deberías acercarte, ¿me oyes? + +[MOB_67B] +Los chicos haitianos no están muy contentos contigo. + +[MOB_18A] +Tommy, soy Paulo, ¿cómo estás? Vale hombre, bueno pensé que tenía que mandarte una nota. + +[MOB_18B] +Oh Dios misericordioso, hijo mío, no te vas a creer la categoría de la furcia que acabo de conocer. + +[MOB_18C] +Prostituta callejera o algo parecido, cerca de Little Havana, tío. + +[MOB_18D] +Me dijo que se llamaba Mercedes o algo así. + +[MOB_18E] +Oh Dios, tío, tienes que probar a esa palomita. + +[MOB_18F] +Sabe como ponerte a tono. Dijo que yo era el mejor tío con el que había estado en toda su vida. + +[MOB_18G] +Estate al tanto por si la ves. Hasta luego. + +[MOB_72A] +Tommy, soy yo, Lance. Mantén la boca cerrada Tommy porque no tengo ganas de hablar. + +[MOB_72B] +No estoy interesado en lo que tengas que decir. ¿Por qué debería estarlo? ¿Te preocupas tú por mí? + +[MOB_72C] +Tienes que cuidarme un poco mejor. Darme una buena tajada, ya sabes... + +[MOB_72D] +Tommy... oh, mira, tío, Lo siento. Es solo que... + +[MOB_72E] +La gente me ha estado sobreprotegiendo toda mi vida, tratándome como a un niño. + +[MOB_72F] +Mi hermano haría eso. Por favor, tío, no lo hagas. + +[MOB_72G] +Tengo que irme. + +[MOB_63A] +Tommy, soy Earnest. Earnest Kelly. + +[MOB_63B] +¿Cómo estás? + +[MOB_63C] +Estoy bien. Necesitaré un bastón para andar pero muy pronto volveré al trabajo. + +[MOB_63D] +Bien. + +[MOB_63E] +Me enteré de lo de Lance. Vaya cabroncete, ¿eh? + +[MOB_63F] +Sí. + +[MOB_63G] +No te fíes nunca de un hombre que va por la calle en pijama. Y es lo que digo yo. Menos mal que lo mataste. Espero que el mamón sufriera. + +[MOB_63H] +Creo que sí. Lo que pasa es que yo no creí que... + +[MOB_63I] +Tommy, para ser un chalado furioso, eres bastante ingenuo. Cuando vuelva a trabajar pronto te enseñaré un par de cosas sobre la vida, me oyes. + +[MOB_63J] +Tómate tu tiempo, Earnest. Cuídate. + +[MOB_16A] +Tommy, soy Paulo, ¿qué pasa amigo? + +[MOB_16B] +Qué quieres Paul. No necesito ropa de marca de imitación. + +[MOB_16C] +Muy gracioso, tío, pero sabes que no toco nada de mercancía ilegal. No, sólo llamaba para ver si puedo conseguir un papel en una de tus películas. + +[MOB_16D] +Allí en Inglaterra hice un montón de porno, colega. Soy bastante más ardiente que tú, pequeño. + +[MOB_16E] +Paul, gracias por la oferta, lo tendré en cuenta. + +[MOB_16F] +En serio, después de todo lo que he hecho por ti, no te olvides de mí. + +[MOB_16G] +Eso es lo que intento olvidar. + +[MOB_17A] +Tommy Vercetti, ¿Qué tal te va Sr. Influyente? He oído un montón de cosas sobre ti, así que ahora eres el que manda en la ciudad, eh... + +[MOB_17B] +Paul, estás borracho. + +[MOB_17C] +No, imbécil, no estoy borracho. Sólo he tomado un par de copas y alguna que otra invitación, no me he acostado en los dos últimos días, sabes. + +[MOB_17D] +En cualquier caso, no me vengas con esto. No soy tonto. ¿Quién te estableció en esta ciudad? ¿Quién? Yo. Que te enteres. + +[MOB_17F] +¿De verdad? + +[MOB_17G] +No me vengas con esto. Yo te presenté a la gente. Te enseñé cómo hacer bien los trabajos, hice muchas cosas por ti, y así es como me lo pagas. + +[MOB_17H] +Me ignoras. Ni siguieras me das acceso a nada, después de todo lo que hice por ti. ¿Quién te crees que soy? ¿Un retrasado mental o algo así? + +[MOB_17I] +Paul, tranquilízate. He estado muy ocupado, no te comportes como un idiota.. + +[MOB_17J] +No soy un idiota, colega. Eso es lo que decían en el reformatorio. ¿Estás buscando bronca? ¡Porque la vas a tener! + +[MOB_17K] +Tommy, colega. Por favor. ¡Tú eras mi gran esperanza! Por favor, ¡no te rías de mí! + +[MOB_17L] +Paul, vete a dormir un poco, de verdad. + +[MOB_73A] +Tommy, soy Steve. + +[MOB_73B] +Eh, Steve. + +[MOB_73C] +¡Eres un portento! ¡Soy un portento! La gente está loca por nosotros. Vamos a entrar en la historia, amigo. + +[MOB_73D] +Se trata de los premios más importantes. Podré llevar a mi padre a una residencia y no tener que escucharle nunca más. + +[MOB_73E] +Eso está bien, Steve. + +[MOB_73F] +Mejor que bien tío. Mejor, mucho mejor. Nunca creyó en mí. Nunca creyó que pudiera ser un artista y ahora lo he conseguido. + +[MOB_73G] +Soy el mejor director de cine porno de todos los tiempos, amigo. Solo quería decirte que ha sido un placer conocerte. + +[MOB_73H] +Gracias Steve. + +[MOB_73I] +Te quiero tío, No cambies, me oyes. + +[MOB_73J] +Te oigo. Adiós Steve. + +[BOLLOX] +Pulsa ~h~~k~~VEHICLE_HANDBRAKE~ ~w~para soltar una bomba. Pulsa ~h~~k~~VEHICLE_ENTER_EXIT~ ~w~para cancelar. + +[BRID_OP] +El temporal ha pasado, todos los puentes hacia la península están ahora abiertos. + +[BRID_CL] +Alerta de temporal: Cerrados todos los puentes hacia la península. + +[ASSET_C] +¡CLUB POLE POSITION CONSOLIDADO! + +[ASSET_D] +El club Pole Position generará ahora unos ingresos máximos de hasta ~1~ $ al día. ¡Asegúrate de recaudarlos regularmente! + +[ST_WHEE] +Mayor tiempo en caballito (seg) + +[ST_STOP] +Mayor tiempo en parada (seg) + +[ST_2WHE] +Mayor tiempo en dos ruedas (seg) + +[ST_WHED] +Mayor distancia en caballito (m) + +[ST_STOD] +Mayor distancia en parada (m) + +[ST_2WHD] +Mayor distancia en dos ruedas (m) + +[OUTFT11] +Chándal + +[OUTFT12] +Frankie + +[RELOAD] +~g~¡Has conseguido la habilidad de recargar rápidamente! + +[APACHE] +Hunter entregado en el helipuerto de Ocean Beach. + +[CRED369] +JOHN MCCARDLE + +[CRED370] +DAVID MURDOCH + +[CRED371] +CHRIS BROWN + +[CRED372] +PAUL GREEN + +[CRED373] +KYLE MILNE + +[CRED374] +KEVIN YUN + +[CRED375] +ERICK COBBS + +[CRED376] +RANDY BLAKE + +[CRED377] +BRANDON LIM + +[CRED378] +BRANDON FENOL + +[CRED379] +MICHAEL MANOLE + +[CRED380] +ALETHEIA SIMONSON + +[CRED381] +JOHN JANSEN + +[CUNTY] +¡Ropa nueva entregada en la finca de Vercetti! + +[GOODBOY] +¡Prima de 50 $ por comportamiento ejemplar! + +[NEWCONT] +¡Nuevo ~h~punto de contacto ~w~disponible en el puerto deportivo en Ocean Beach! + +[FIRELVL] +Misión de camión de bomberos nivel ~1~ + + +[HELP56] +Pulsa ~h~~k~~CAMERA_CHANGE_VIEW_ALL_SITUATIONS~~w~ para ajustar la cámara. + +[HELP57] +Pulsa ~h~~k~~CAMERA_CHANGE_VIEW_ALL_SITUATIONS~~w~ para ajustar la cámara. + +[HELP58] +Mientras estás apuntando, puedes pulsar ~h~~k~~PED_CYCLE_TARGET_LEFT~~w~ o ~h~~k~~PED_CYCLE_TARGET_RIGHT~~w~para cambiar de objetivo. + +[HELP59] +Mientras estás apuntando, puedes pulsar ~h~~k~~PED_CYCLE_TARGET_LEFT~~w~ o ~h~~k~~PED_CYCLE_TARGET_RIGHT~~w~para cambiar de objetivo. + +[HELP60] +Si pulsas ~h~~k~~PED_SPRINT~ ~w~ mientras estás robando un coche, no te subirás en él. + +[HELP61] +Ahora dispones de munición ilimitada y el doble de robustez en todos los vehículos. + +[FEC_LB1] +Mirar + +[FEC_LB2] +detrás + +[FEC_LB3] +Mirar detrás + +[FEC_R3] +(botón R3) + +[FEC_PED] +Controles a pie + +[FEC_VEH] +Controles en vehículo + +[FEC_FPR] +Controles en primera persona + +[FEC_CMM] +Controles comunes + +[FEC_PWL] +Ir a la izquierda + +[FEC_PWR] +Ir a la derecha + +[FEC_PWF] +Andar hacia delante + +[FEC_PWT] +Andar hacia la cámara + +[FEC_PLB] +Mirar hacia atrás. + +[FEC_PFR] +Disparar arma + +[FEC_CLE] +Cambiar Arma a la Izq. + +[FEC_CRI] +Cambiar Arma a la Dcha. + +[FEC_LKT] +Bloquear objetivo + +[FEC_PJP] +Salto Peatón + +[FEC_PSP] +Sprint Peatón + +[FEC_PSH] +Disparar Peatón + +[FEC_TLF] +Siguiente objetivo a la izq. + +[FEC_TRG] +Siguiente objetivo a la dcha. + +[FEC_CCM] +Centrar cámara detrás del jugador + +[FEC_SZI] +Acercar vista rifle francotirador + +[FEC_SZO] +Alejar vista rifle francotirador + +[FEC_LKL] +Mirar izq. en primera persona + +[FEC_LRT] +Mirar dcha. en primera persona + +[FEC_LUP] +Mirar arr. en primera persona + +[FEC_LDN] +Mirar abj. en primera persona + +[FEC_LBH] +Mirar hacia atrás en vehículo + +[FEC_LLF] +Mirar a la izq. en vehículo + +[FEC_LRG] +Mirar a la dch. en vehículo + +[FEC_HRN] +Claxon + +[FEC_HBR] +Freno de mano del vehículo + +[FEC_ACL] +Acelerar vehículo + +[FEC_BRK] +Frenar vehículo + +[FEC_TSM] +Misiones secundarias + +[FEC_CRD] +Cambiar emisora de radio + +[FEC_ENT] +Entrar/salir de vehículo + +[FEC_WPN] +Disparar arma + +[FEC_PAS] +Pausa + +[FEC_FPO] +Cambiar armas primera persona + +[FEC_SMS] +Mostrar puntero del ratón + +[FEC_CMS] +Cambiar modo cámara en todas situaciones. + +[FEC_TSS] +Capturar pantalla + +[FEC_DBG] +DEBUG MENU + +[FEC_TGD] +Cambiar mando de juego/depuración + +[FEC_TDO] +Cambiar cámara depuración No + +[FEC_IVH] +Invertir horizontalidad ratón + +[FEC_MSL] +BIR + +[FEC_MSM] +BCR + +[FEC_MSR] +BDR + +[FEC_QUE] +??? + +[FEC_TWO] +Permitidas sólo dos teclas del teclado. + +[FEC_UMS] +Por favor sólo teclas de ratón. + +[FEC_OMS] +Permitida sólo una tecla del ratón. + +[FEC_UJS] +Por favor sólo botones de joystick. + +[FEC_OJS] +Permitido sólo un botón de joystick por acción. + +[FEC_PTL] +Usar Bloquear objetivo al cambiar arma a izq. + +[FEC_PTR] +Usar Bloquear objetivo al cambiar arma a dcha. + +[FEC_LBC] +Usar Mirar a izq. con Mirar a la dcha. + +[FEC_JBO] +JOY ~1~ + +[FEC_WAR] +Aviso + +[FEC_OKK] +Aceptar + +[FEC_DLF] +Error al borrar. + +[FEC_SVU] +Error al guardar. + +[FEC_LUN] +Error al cargar. Archivo dañado, por favor bórralo. + +[FEC_PAD] +Gamepad + +[FEC_JOY] +Joystick + +[FES_CSA] +Seleccionar aspecto de la lista inferior: + +[FET_HRD] +AJUSTES POR DEFECTO RESTAURADOS + +[FET_MST] +CONDUCCIÓN CONTROLADA POR EL RATÓN + +[FEC_STR] +NUM. INICIO + +[FET_MIG] +IZQUIERDA, DERECHA, RUEDA DEL RATÓN PARA AJUSTAR + +[FET_CIG] +RETROCESO PARA QUITAR - BIR, VOLVER A CAMBIAR + +[FET_DSN] +Apariencia predeterminada del jugador.bmp + +[FET_RSO] +RESTAURADO AJUSTE ORIGINAL + +[FET_RSC] +HARDAWARE NO DISPONIBLE. RESTAURADO AJUSTE ORIGINAL + +[FEA_3DH] +HARDWARE DE SONIDO + +[FEA_SPK] +AJUSTE DE ALTAVOCES + +[FEM_LOD] +DIST. DE REPRESENTACIÓN + +[FEM_VSC] +SINCRONÍA DE IMAGEN + +[FEM_FRM] +LIMITADOR DE CUADROS + +[FEM_MM] +MENÚ PRINCIPAL + +[FED_RES] +RESOLUCIÓN DE PANTALLA + +[FET_CTL] +CONFIGURAR MANDO + +[FET_OPT] +OPCIONES + +[FEC_MSH] +SENSIBILIDAD DEL RATÓN + +[FEC_IVV] +INVERTIR VERTICALIDAD RATÓN + +[FEC_FNC] +F~1~ + +[FEC_IRT] +INSERT + +[FEC_DLL] +SUPR + +[FEC_HME] +INICIO + +[FEC_END] +FIN + +[FEC_PGU] +RE PÁG + +[FEC_PGD] +AV PÁG + +[FEC_UPA] +ARRIBA + +[FEC_DWA] +ABAJO [FEC_LFA] -IZQUIERDA +IZDA -[FEH_SGA] -Iniciar nueva partida +[FEC_RFA] +DCHA +[FEC_NUM] +NUM. + +[FEC_NMN] +NUM. ~1~ + +[FEC_FWS] +NUM. / + +[FEC_PLS] +NUM. + + +[FEC_MIN] +NUM. - + +[FEC_DOT] +NUM. . + +[FEC_NLK] +BLOQ NUM + +[FEC_ETR] +INTRO + +[FEC_SLK] +BLOQ DESPL + +[FEC_PSB] +PAUSA INTER + +[FEC_BSP] +RETROCESO + +[FEC_TAB] +TAB + +[FEC_CLK] +BLOQ MAYÚS + +[FEC_RTN] +INTRO + +[FEC_LSF] +MAYÚS IZQ + +[FEC_RSF] +MAYÚS DCH + +[FEC_LCT] +CTRL I + +[FEC_RCT] +CTRL D + +[FEC_LAL] +ALT I + +[FEC_RAL] +ALT D + +[FEC_LWD] +WIN I + +[FEC_RWD] +WIN D + +[FEC_WRC] +APMENÚ + +[FEC_SPC] +ESPACIO + +[WIN_TTL] +Grand Theft Auto VC + +[WIN_95] +Grand Theft Auto VC no se puede ejecutar bajo W95 + +[WIN_DX] +Grand Theft Auto VC necesita al menos la versión 8.1 de DirectX + +[FET_EIG] +NO SE PUEDE DEFINIR UN CONTROL PARA ESTA ACCIÓN + +[FET_DAM] +MODELADO ACÚSTICO DINÁMICO + +[FEQ_SRE] +¿Seguro que quieres salir? Se perderán todos los progresos desde la última partida guardada. ¿Quieres proceder? + +[FEQ_SRW] +¿Seguro que quieres salir del juego? + +[FET_QG] +SALIR DEL JUEGO + +[FEN_STA] +INICIAR JUEGO + +[FET_PAU] +MENÚ PAUSA + +[REPLAY] +VOLVER A JUGAR + +[FEC_ANS] +Acción + +[CVT_MSG] +Convertir texturas a un formato óptimo para tu tarjeta de vídeo + +[FEC_SFT] +MAYÚS + +[FEH_VMP] +VER MAPA + +[FES_DEE] +¡Error al eliminar! Por favor, inténtalo de nuevo. + +[FES_CMP] +¡Error al guardar! Por favor, inténtalo de nuevo. + +[FESZ_WR] +Guardando partida actual. Por favor, espera... + +[FELD_WR] +Cargando el juego. Por favor, espera... + +[FEDL_WR] +Eliminando partida guardada. Por favor, espera... + +[PCRESRT] +Iniciando nueva partida. Por favor, espera... + +[FET_STI] +Controles estándar + +[FET_CTI] +Controles clásicos + +[FEH_NA] +OPCIÓN NO DISPONIBLE + +[FEH_MPH] +RATÓN, CURSORES PARA MOVERSE - RE. PAG, AV. PAG, RUEDA RATÓN PARA ZOOM, L - LEYENDA + +[FEA_MP3] +REPRODUCTOR MP3 + +[NO_PCCD] +Por favor, introduce tu CD de GTA Vice City o pulsa ESC para cancelar + +[FEH_SSA] +CURSORES PARA MOVERSE - S PARA GUARDAR EN UN ARCHIVO + +[FES_CMI] +ÚLTIMA MISIÓN SUPERADA + +[FET_STS] +ESTADÍSTICAS GUARDADAS EN 'STATS.HTML' + 'STATS.TXT' + +[WIN_VDM] +Grand Theft Auto VC no pudo encontrar suficiente memoria de vídeo disponible + +[FEC_ERI] +¡Error! Una o más acciones de control no están vinculadas a ninguna tecla o botón. Comprueba que todas las acciones de control estén definidas. + +[FEC_TFU] +Torreta + Inclinar arriba + +[FEC_TFD] +Torreta + Inclinar abajo + +[FET_RIG] +ELIGE UN NUEVO CONTROL PARA ESTA ACCIÓN + +[FEA_NM3] +NO SE ENCONTRARON ARCHIVOS MP3 + +[FEA_MPB] +SUBIR VOLUMEN DE MP3 + +[FEA_MUS] +VOLUMEN DE MÚSICA + +[FEA_SFX] +VOLUMEN DE EFECTOS + +[CVT_ERR] +Te has quedado sin espacio en el disco duro. Por favor, antes de seguir consigue algo de espacio en tu disco duro. Pulsa ESC para cancelar. + +[FEA_ADP] +DETECTAR EL HARDWARE AUTOMÁTICAMENTE + +{=================================== MISSION TABLE AMBULAE ===================================} + +[ATUTOR2:AMBULAE] +~g~Lleva a los pacientes al hospital CON CUIDADO. Cada bache reduce sus posibilidades de supervivencia. + +[A_FULL:AMBULAE] +~r~¡Ambulancia llena! + +[A_FAIL2:AMBULAE] +~r~¡Tu falta de urgencia ha sido mortal para el paciente! + +[A_FAIL3:AMBULAE] +~r~¡El paciente está muerto! + +[A_PASS:AMBULAE] +¡Rescatado! + +[A_COMP2:AMBULAE] +¡Nunca te cansarás! + +[A_CANC:AMBULAE] +~r~¡Misión de ATS cancelada! + +[A_COMP3:AMBULAE] +¡Misiones de ATS completadas! ¡Nunca te cansarás cuando estés corriendo! + +[ALEVEL:AMBULAE] +Misión de ATS nivel ~1~ + +[A_FAIL1:AMBULAE] +Misión de ATS terminada. + +[A_SAVES:AMBULAE] +PERSONAS SALVADAS: ~1~ + +[A_COMP1:AMBULAE] +Misiones de ATS completas: ~1~ $ + +{=================================== MISSION TABLE ASSIN1 ===================================} + +[ASM1_5:ASSIN1] +~r~¡Completó sus entregas! + +[ASM1_6:ASSIN1] +Entregas restantes: + +[ASM1_7:ASSIN1] +~g~Carl Pearson, repartidor de pizza. Mátale antes que finalice el reparto. + +[ASM1_A:ASSIN1] +Sr. Teal, su ayuda en erradicar a esos forasteros fue inestimable para el negocio. Tengo más trabajo para usted y más cercano a la ''intervención''. + +[ASM1_D:ASSIN1] +Sr. Teal, su ayuda en erradicar a esos forasteros fue inestimable para el negocio. + +{=================================== MISSION TABLE ASSIN2 ===================================} + +[ASM2_1:ASSIN2] +~g~La Sra. Dawson dejará pronto la joyería de Vice Point. Mátala. Debe parecer un accidente de coche. + +[ASM2_3:ASSIN2] +~g~¡Va a estallar! ¡Largo de aquí! + +[ASM2_4:ASSIN2] +~r~Dañaste su coche ¡y ni siquiera está en él! ¡Ahora no se subirá ahí! + +[ASM2_5:ASSIN2] +~r~¡Se escapó! + +[ASM2_6:ASSIN2] +~r~¡Estabas demasiado cerca de la escena del ''accidente''! + +[ASM2_7:ASSIN2] +~g~¡No utilices armas! ¡Se supone que debe parecer un accidente! ¡En vez de eso, sácala de la carretera! + +[ASM2_8:ASSIN2] +~g~Debes hacer que la muerte de la Sra. Dawson parezca un accidente. No utilices ningún arma. + +[ASM2_9:ASSIN2] +~g~¡Necesitas un coche para este trabajo! + +[ASM2_10:ASSIN2] +~g~Cuando el coche explote en llamas vete lo más lejos posible de la escena del accidente. + +[ASM2_11:ASSIN2] +¡Ayúdame! + +[ASM2_12:ASSIN2] +¡Que alguien me ayude! + +[ASM2_13:ASSIN2] +¡oh, Dios mío! + +[ASM2_A:ASSIN2] +Felicidades por un trabajo bien hecho, Sr. Teal. Mi cliente está muy satisfecho. + +[ASM2_2:ASSIN2] +salud: + +{=================================== MISSION TABLE ASSIN3 ===================================} + +[ASM3_11:ASSIN3] +TIEMPO: + +[ASM3_C:ASSIN3] +Una banda europea planea atracar un banco en Vice City. A mis jefes les gustaría que esto no sucediese. + +[ASM3_D:ASSIN3] +Cada miembro de la banda tiene una tapadera mientras está aquí en Vice City. Algunos tienen trabajos sin importancia y otros están de vacaciones. + +[ASM3_E:ASSIN3] +Cada objetivo y sus posibles paraderos están pegados con cinta adhesiva bajo el teléfono. + +[ASM3_14:ASSIN3] +~g~Dick Tanner está ubicado junto al DBP de Seguridad en Ocean Drive. + +[ASM3_15:ASSIN3] +~g~Marcus Hammond y Franco Carter están ubicados junto a la joyería en Vice Point. + +[ASM3_16:ASSIN3] +~g~Nick Kong está en su barco cerca de Washington Beach. + +[ASM3_18:ASSIN3] +~g~¡No te acerque demasiado al objetivo o te descubrirá y tendrás que perseguirle hasta atraparle! + +[ASM3_19:ASSIN3] +~g~¡Te ha visto! ¡Acaba con él! + +[ASM3_20:ASSIN3] +~g~¡Te han visto! ¡Asegúrate de acabar con los dos! + +[ASM3_21:ASSIN3] +~r~¡No mataste a todos los miembros de la banda a tiempo! + +[ASM3_22:ASSIN3] +~g~¡No te acerques demasiado a los objetivos o te descubrirán e intentarán escapar. + +[ASM3_12:ASSIN3] +~g~Se ha dejado cerca una selección de armas en caso de necesidad. Dispones de ~h~9 MINUTOS ~g~para matar a todos los miembros de la banda. + +[ASM3_13:ASSIN3] +~g~Mike Griffin está trabajando en una valla de publicidad en Washington. + +[ASM3_17:ASSIN3] +~g~Charlie Dilson está dando una vuelta en su moto en Washington. + +{=================================== MISSION TABLE ASSIN4 ===================================} + +[ASM4_10:ASSIN4] +~g~¡Parece que no eres el único que persigue el maletín! ¡Llévalo deprisa a Ammu- Nation! + +[ASM4_12:ASSIN4] +Distancia: + +[ASM4_15:ASSIN4] +~g~Busca el rifle de francotirador hacia tu derecha. + +[ASM4_16:ASSIN4] +~g~Observa a la mujer de la galería, bajará por las escaleras mecánicas y preguntará a alguien la hora. + +[ASM4_17:ASSIN4] +~g~Solamente cuando la conversación haya concluido, mata a la persona con la que habló, pero no la mates a ella. + +[ASM4_18:ASSIN4] +~g~Cuando el objetivo haya muerto, recupera el maletín y llévalo a Ammu-Nation, en el centro. + +[ASM4_19:ASSIN4] +~g~Mantén tu distancia del objetivo, la barra de distancia de la parte superior de la pantalla te indica lo cerca que estás del objetivo. + +[ASM4_20:ASSIN4] +~g~No dejes que se llene o te verá. + +[ASM4_21:ASSIN4] +~g~¡Recoge el maletín! + +[ASM4_22:ASSIN4] +~g~Lleva el maletín a Ammu-Nation, en el centro. + +[ASM4_23:ASSIN4] +~g~¡Te ha visto y se escapa, atrápale y consigue el maletín! + +[ASM4_25:ASSIN4] +~r~¡Has matado a la mujer, idiota! + +[ASM4_26:ASSIN4] +~r~¡El objetivo ha subido a su avión! + +[ASM4_27:ASSIN4] +~r~¡El objetivo te ha visto! ¡Deberías mantener tu distancia! + +[ASM4_28:ASSIN4] +~r~¡El objetivo te ha visto! ¡Te ha escuchado disparar el arma! + +[ASM4_29:ASSIN4] +~r~¡Mátale sólo después que haya hablado con la mujer! + +[ASM4_A:ASSIN4] +Es hora de ir a por el pez gordo, Sr. Teal. Hay un rifle a su derecha, tras la maceta. + +[ASM4_B:ASSIN4] +Observe a la mujer que está en la galería por encima de los mostradores de facturación. Caminará por entre la gente y le preguntará a alguien la hora. + +[ASM4_C:ASSIN4] +Debe matar a esa persona, recoger el maletín y llevarlo al lugar adherido con cinta bajo el teléfono. + +{=================================== MISSION TABLE ASSIN5 ===================================} + +[ASM5_A:ASSIN5] +Un valioso canje va a tener lugar en el tejado de la compañía de helados Cherry Popper. + +[ASM5_B:ASSIN5] +Liquide a todos los implicados, robe el maletín y llévelo al helipuerto del aeropuerto. + +[ASM5_C:ASSIN5] +Hay una puerta a su izquierda que conduce a la parte trasera de la fábrica. + +[ASM5_1:ASSIN5] +~g~Entra al complejo por detrás de la compañía de helados Cherry Popper y dirígete al tejado donde va a tener lugar el trato. + +[ASM5_2:ASSIN5] +~g~Consigue el maletín y llévalo al helipuerto del aeropuerto. + +[ASM5_3:ASSIN5] +~g~¡Lleva el maletín al helipuerto del aeropuerto! + +{=================================== MISSION TABLE BANKJ1 ===================================} + +[WANTED1:BANKJ1] +~g~¡Quítate de encima a los polis y pierde tu nivel de se busca! + +[BJM1_A:BANKJ1] +¡Tommy! ¡Eh, Tommy, mira esto, es genial! ¡He hecho que nos instalen un minibar! + +[BJM1_B:BANKJ1] +Tenemos todo un bar abajo, Ken. + +[BJM1_C:BANKJ1] +Sí, sí, vale. Bueno, tengo la pizarra que pediste. + +[BJM1_D:BANKJ1] +Eso es lo bueno de estudiar derecho: te enseñan a seguir las instrucciones. + +[BJM1_E:BANKJ1] +Necesito un hombre para la caja fuerte. + +[BJM1_F:BANKJ1] +De acuerdo, bueno, déjame pensar... caja fuerte, caja fuerte, caja fuerte, caja fuerte... ¡Lo tengo! ¡Este tipo te va a encantar! + +[BJM1_G:BANKJ1] +Ah, ese idiota no. Está encerrado. + +[BJM1_H:BANKJ1] +¿Encerrado dónde? + +[BJM1_I:BANKJ1] +En la celda de una comisaría esperando el traslado. + +[BJM1_J:BANKJ1] +Creo que está a punto de conseguir la libertad condicional... + +[BJM1_1:BANKJ1] +~g~¡Libera a Cam Jones de la comisaría de policía! + +[BJM1_3:BANKJ1] +~g~Encontrarás algo útil en el vestuario de la comisaría. + +[BJM1_21:BANKJ1] +~g~Puedes encontrar la llave de las celdas en el piso de arriba de la comisaría. + +[BNK1_7:BANKJ1] +¿Cam Jones? + +[BNK1_8:BANKJ1] +¡Te voy a sacar de aquí! + +[BNK1_10:BANKJ1] +Sí, soy yo... + +[BNK1_11:BANKJ1] +¡Lo que tú digas! + +[BNK1_13:BANKJ1] +Voy a hacer un trabajo y tu serás mi revienta cajas fuertes. + +[BNK1_14:BANKJ1] +¡Eso es mejor que pudrirse en una celda! + +[BJM1_22:BANKJ1] +~g~¡Lleva a Cam de vuelta a su casa! + +[BJM1_23:BANKJ1] +~g~¡Necesitas coger la tarjeta llave primero! + +[BNK1_12:BANKJ1] +¡Piérdeles el rastro y llévame a mi casa! + +[BJM1_20:BANKJ1] +¡Guarda el arma o te enfréntate a las consecuencias! + +[BJM1_5:BANKJ1] +¡Sólo personal autorizado más allá de este punto! + +[BJM1_2:BANKJ1] +~r~¡Se supone que tenías que sacar a rastras a Cam, no matarle! + +[BJM1_4:BANKJ1] +¡Está armado! ¡Mátale! + +{=================================== MISSION TABLE BANKJ2 ===================================} + +[BJM2_A:BANKJ2] +Necesitamos a un atracador. ¿Conoces a alguno? + +[BJM2_B:BANKJ2] +Eh, Tommy, Tommy, Tommy, esta mierda te pone a tono, tío. + +[BJM2_C:BANKJ2] +¡Guauuuuu! + +[BJM2_D:BANKJ2] +¡Yo podría ser tu atracador! ¡Manos arriba! ¡Manos arriba! + +[BJM2_E:BANKJ2] +Tú no eres un atracador, tú eres un idiota. + +[BJM2_F:BANKJ2] +Ahora ponte una copa y cállate. + +[BJM2_G:BANKJ2] +Eh. ¡Quítate de mi camino! Sí, sí, sí, eh, eh. + +[BJM2_H:BANKJ2] +¿Cam, tú qué opinas? + +[BJM2_I:BANKJ2] +Bueno, el mejor tirador de esta ciudad es un tipo llamado Cassidy. + +[BJM2_J:BANKJ2] +¿Seguro? + +[BJM2_K:BANKJ2] +Sí. Un militar, o al menos él piensa que lo es. + +[BJM2_L:BANKJ2] +Dudo que estuviese alguna vez en el ejército, pero desde luego sabe manejar las armas. + +[BJM2_M:BANKJ2] +Estará en el campo de tiro. + +[BJM2_2A:BANKJ2] +¿Tú eres Phil Cassidy? + +[BJM2_2B:BANKJ2] +¿Por qué? + +[BJM2_2C:BANKJ2] +Estoy buscando a un hombre que sepa manejar un arma. Pero ahora que te veo, no estoy muy convencido. + +[BJM2_2D:BANKJ2] +Hijo, podría quitarte una mosca de la cabeza de un solo disparo a 100 metros. + +[BJM2_2E:BANKJ2] +Oh, ¿de verdad? + +[BJM2_2F:BANKJ2] +Sí. Aprendí en el ejército. + +[BJM2_2G:BANKJ2] +¿Se suele disparar a las moscas en el ejército? Me alegra no pagar impuestos. + +[BJM2_2H:BANKJ2] +¿Intentas ser gracioso? + +[BJM2_2I:BANKJ2] +~n~ + +[BJM2_2J:BANKJ2] +Vamos a disparar. + +[BJM2_1:BANKJ2] +~g~Ve a Ammu-Nation en el centro de la ciudad y habla con Phil Cassidy. + +[BJM2_3:BANKJ2] +TASA DE IMPACTOS: ~1~% + +[BJM2_4:BANKJ2] +PUNTUACIÓN PRIMERA FASE: ~1~ + +[BJM2_6:BANKJ2] +PUNTUACIÓN SEGUNDA FASE: ~1~ + +[BJM2_7:BANKJ2] +PUNTUACIÓN TOTAL DE DISPARO: ~1~ + +[BJM2_9:BANKJ2] +~g~Ve al punto de inicio de la segunda fase. + +[BJM2_11:BANKJ2] +~r~¡Phil está muerto! + +[BJM2_12:BANKJ2] +~r~¡Uno de los tiradores está muerto! + +[BJM2_14:BANKJ2] +~g~¡Pasa a la siguiente fase! + +[BJM2_15:BANKJ2] +PUNTUACIÓN: + +[BJM2_17:BANKJ2] +~g~Ve y habla con Phil. + +[BJM2_18:BANKJ2] +PUNTUACIÓN A SUPERAR: + +[BJM2_19:BANKJ2] +~g~¡Acierta a tantos blancos como puedas dentro del límite de tiempo! + +[BJM2_22:BANKJ2] +~r~¡Has abandonado el campo de tiro! + +[BJM2_23:BANKJ2] +~g~Si abandonas el campo de tiro durante la competición, fracasarás en la misión. + +[BJM2_24:BANKJ2] +~g~El objetivo más cercano vale un punto. + +[BJM2_25:BANKJ2] +~g~El objetivo del medio vale dos puntos. + +[BJM2_27:BANKJ2] +~g~Todos los objetivos de esta ronda valen un punto. + +[BNK2_2:BANKJ2] +APUNTA, 3, 2, 1... ¡FUEGO! + +[BNK2_3:BANKJ2] +¡ZONA DESPEJADA! + +[BNK2_4:BANKJ2] +¡Yupiiiiiii! + +[BNK2_5:BANKJ2] +¡No podrías darle ni a un elefante a 2 metros! + +[BNK2_7:BANKJ2] +Entonces, ¿quieres hacerme un favor y ayudarme a preparar un atraco? + +[BNK2_8:BANKJ2] +Hijo, disparando de ese modo, si me pidieras que sea tu mujer, te diría que sí. + +[BNK2_9A:BANKJ2] +Hijo, mejor será que te vayas y te metas tus ideas y palabrería donde te quepan. Eres una mierda disparando. + +[BNK2_9B:BANKJ2] +Eres una mierda disparando. + +[BJM2_28:BANKJ2] +PUNTUACIÓN RONDA TRES: ~1~ + +[BJM2_20:BANKJ2] +~g~¡La ronda se acabará cuando te quedes sin ~w~tiempo ~g~o ~w~munición~g~! + +[BJM2_26:BANKJ2] +~g~El objetivo más lejano vale tres puntos. + +[BNK2_1:BANKJ2] +MUNICIÓN CARGADA + +[RANGE_1:BANKJ2] +PUNTUACIÓN POR DISPARO: ~1~ + +[BJM2_2:BANKJ2] +~g~Para abandonar la ronda, pulsa ~h~~k~~PED_JUMPING~. + +[BJM2_N:BANKJ2] +Tranqui. + +{=================================== MISSION TABLE BANKJ3 ===================================} + +[BJM3_A:BANKJ3] +Las cosas empiezan a ir bien. + +[BJM3_B:BANKJ3] +¿Cuál es el plan, Tommy? ¿Qué pasa, amigo? + +[BJM3_C:BANKJ3] +El plan es que tú sigas haciendo el imbécil. En fin, necesitamos a un conductor. + +[BJM3_D:BANKJ3] +Tommy, yo lo haré. Sé conducir. + +[BJM3_E:BANKJ3] +Necesitamos a Hilary, señor, no a un picapleitos charlatán. + +[BJM3_F:BANKJ3] +Hilary es nuestra mejor opción. Seguro que no has visto nunca conducir a nadie tan rápido. Voy a darle un toque. + +[BJM3_G:BANKJ3] +Eh, Hil, soy Phil. ¿Cómo te va? No, no hables. Recordaremos los viejos tiempos más tarde. ¿Quieres hacerme un favor? + +[BJM3_H:BANKJ3] +Tengo a un tipo del norte... No, no, no creo que sirviese en el ejército, pero quiere un conductor. + +[BJM3_I:BANKJ3] +Por un poco de acción. De acuerdo, comprendo. + +[BJM3_J:BANKJ3] +¿Qué dijo? + +[BJM3_K:BANKJ3] +Bueno, lo hará, no hay problema. Bueno, podría haber un pequeño problema... Verás, tiene miedo al abandono. + +[BJM3_L:BANKJ3] +Y parece que no trabajará para nadie que no pueda derrotarle. Tiene algo que ver con su madre o algo así. + +[BJM3_M:BANKJ3] +De todas formas primero quiere echarte una carrera, dice que se encontrará contigo fuera... + +[BJM3_2A:BANKJ3] +¿Eres Tommy? Por supuesto que eres Tommy, quiero decir, + +[BJM3_2B:BANKJ3] +¿quién más querría hablar conmigo? + +[BJM3_2C:BANKJ3] +Vale. Esto es lo que hay. + +[BJM3_2D:BANKJ3] +Conduciré para ti solamente si me demuestras que conduces bien. + +[BJM3_2E:BANKJ3] +Déjame tirado, y nunca te perdonaré. + +[BJM3_2:BANKJ3] +~r~¡Hilary está muerto! + +[BJM3_4:BANKJ3] +~g~¡Necesitas un coche para participar! + +[BNK3_1:BANKJ3] +Vale. Te llevaré pero por favor, machácame un poco. + +[BNK3_3A:BANKJ3] +Carrera callejera ilegal en progreso en Vice Point. + +[BNK3_3B:BANKJ3] +Llamando a todos los agentes. + +[BNK3_3C:BANKJ3] +Corredores callejeros, ¡esto es ilegal y no está permitido! + +{=================================== MISSION TABLE BANKJ4 ===================================} + +[BNK4_A:BANKJ4] +~w~Como podéis ver, caballeros, éste va a ser el dinero más fácil que hayamos ganado jamás. + +[BNK4_B:BANKJ4] +~w~Tommy, de verdad, tienes que plantearte seriamente el meterte en la abogacía. + +[BNK4_C:BANKJ4] +~w~Pero, ¿qué coño te estás fumando, tío? ¡Este no es un plan sencillo! + +[BNK4_D:BANKJ4] +~w~Bueno, de todas formas, ¿quién necesita un plan sencillo? + +[BNK4_E:BANKJ4] +~w~Mira el comunismo, bien, pues ese era un plan sencillo. Y jodió bien a Rusia ¿no? + +[BNK4_F:BANKJ4] +~w~Cálmate, ¿vale? Con un equipo como éste, no va a haber problemas. + +[BNK4_G:BANKJ4] +~w~Tenemos a Cam en la caja fuerte. ¿Phil? Tú y yo nos encargaremos de la seguridad y Hilary conducirá el coche de huída. + +[BNK4_H:BANKJ4] +~w~Uh, je, je, ¿no te olvidas de alguien? ¿Alguien que te ayudó siempre en esta ciudad? ¿Alguien...? + +[BNK4_I:BANKJ4] +~w~Ken... Ken, es cierto. Aquí Ken, él nos lavará el dinero y mantendrá las bebidas frías. + +[BNK4_J:BANKJ4] +~w~No comprendo qué se supone que debo hacer aquí. + +[BNK4_K:BANKJ4] +~w~Mira, es sencillo. ¿No has visto nunca una película? + +[BNK4_L:BANKJ4] +~w~Entramos en el banco, enseñamos las armas y nos marchamos siendo hombres muy ricos. + +[P_DEAD:BANKJ4] +~r~¡Phil está muerto! + +[C_DEAD:BANKJ4] +~r~¡Cam está muerto! + +[H_DEAD:BANKJ4] +~r~¡Hilary está muerto! + +[P_HIND:BANKJ4] +~r~¡Has perdido a Phil! + +[C_HIND:BANKJ4] +~r~¡Cam se ha quedado atrás! + +[H_HIND:BANKJ4] +~r~¡Hilary ha sido abandonado! + +[GETCAR:BANKJ4] +~g~¡Sube en el coche de escapada para hacer el trabajito del banco! + +[TRASHED:BANKJ4] +~r~¡DESTROZASTE EL COCHE DE FUGA! + +[BNK4_1:BANKJ4] +Yo conduciré. + +[BNK4_2:BANKJ4] +Genial. Un pasajero. Espera a que les hable de esto al grupo. + +[BNK4_3A:BANKJ4] +¡Eh, cuidado con las ruedas, Tommy! + +[BNK4_3B:BANKJ4] +¡Tommy, Hilary está ocupando mucho espacio! + +[BNK4_3C:BANKJ4] +¡No es verdad! + +[BNK4_3D:BANKJ4] +¡Sí! + +[BNK4_3E:BANKJ4] +Eh, callaos los dos o iréis andando. + +[BNK4_3F:BANKJ4] +Sí, Hilary. + +[BNK4_3I:BANKJ4] +Por el amor de Dios, Phil, deja de agitar esa cosa. + +[BNK4_3J:BANKJ4] +¡Sí, le sacarás un ojo a alguien! + +[BNK4_3M:BANKJ4] +¡Mi pequeña! ¡Está hecha un desastre! + +[BNK4_3O:BANKJ4] +Te aferras a la ilusión de una permanencia perpetua... + +[BNK4_3P:BANKJ4] +¿Qué? + +[BNK4_3Q:BANKJ4] +Crees que todas las cosas durarán. + +[BNK4_3R:BANKJ4] +La juventud, los seres queridos, la pizza... + +[BNK4_3S:BANKJ4] +Todo pasará o terminará y debes aceptar eso. + +[BNK4_3T:BANKJ4] +Sí, tienes razón. Gracias, Cam. + +[BNK4_3U:BANKJ4] +No hay de que. + +[BNK4_3V:BANKJ4] +Eh, Tommy, ¿por qué nos hemos detenido? + +[BNK4_4A:BANKJ4] +~w~Hilary, sigue conduciendo en torno a la manzana. + +[BNK4_5:BANKJ4] +~w~De acuerdo, Tommy, de acuerdo. + +[BNK4_6:BANKJ4] +~w~¡ESTO ES UN ATRACO! + +[BNK4_7:BANKJ4] +~w~¡QUE NADIE SE MUEVA! + +[BNK4_8:BANKJ4] +~w~¡TODO EL MUNDO CONTRA ESA PARED! + +[BNK4_9:BANKJ4] +¡Phil, quédate vigilando! + +[BNK4_10:BANKJ4] +¡No problemo! + +[BNK4_11:BANKJ4] +Vamos, Cam, la cámara acorazada está arriba... + +[BK4_12A:BANKJ4] +¡Maldición! ¡Es una Flange 9000! + +[BK4_12B:BANKJ4] +Podría tardar horas en abrirla, + +[BK4_12C:BANKJ4] +o cinco minutos si encuentras al director. + +[BNK4_13:BANKJ4] +Iré a averiguar en qué agujero se ha metido. + +[BK4_14A:BANKJ4] +Phil, ¿van bien las cosas? + +[BNK4_15:BANKJ4] +Sí. Todo está muy tranquilo. + +[BNK4_16:BANKJ4] +¡Tú, ven conmigo! + +[BNK4_17:BANKJ4] +¡De acuerdo! ¡De acuerdo! ¡Por favor, no dispare! + +[BNK4_18:BANKJ4] +¡DIJE QUE NO SE MOVIESE NADIE! + +[BK4_19A:BANKJ4] +Tiene un cierre temporizado. + +[BK4_19B:BANKJ4] +¡Podríais rendiros ahora mismo! + +[BK4_20A:BANKJ4] +Diablos, puedo hacer un puente en el cierre temporizado, + +[BK4_20B:BANKJ4] +¡Así que solo necesitaremos tu código de acceso y ya está! + +[BNK4_21:BANKJ4] +Quédate aquí. Intenta algo y serás comida para los peces. ¿Lo captas? + +[BNK422A:BANKJ4] +Cam, ¿cuánto tiempo? + +[BK4_23A:BANKJ4] +¡Dame cinco minutos! + +[BK4_24A:BANKJ4] +Voy a comprobar qué tal va Phil, volveré. + +[BK4_24B:BANKJ4] +¡Te dije que no tocases esa alarma! + +[BNK4_25:BANKJ4] +¡Los de operaciones especiales estarán aquí en cualquier momento! + +[BNK4_27:BANKJ4] +¡Me vendría bien un poco de ayuda aquí, Tommy! + +[BNK4_28:BANKJ4] +¡SWAT de Vice City! ¡Estáis rodeados! + +[BNK4_29:BANKJ4] +¿Rodeados? + +[BNK4_30:BANKJ4] +La están cagando, ¡bastardos corruptos! + +[BK4_31A:BANKJ4] +¡Tommy! ¡La cámara acorazada está abierta! + +[BK4_34A:BANKJ4] +De acuerdo, tenemos el fondo de pensiones de los SWAT. ¡Salgamos de aquí! + +[BK4_34B:BANKJ4] +¡De acuerdo, vosotros lo habéis pedido! ¡Habéis tenido vuestra última oportunidad! + +[BK4_35A:BANKJ4] +¡Van a arrasar el lugar! + +[BK4_35B:BANKJ4] +¡A cubierto! + +[BNK4_94:BANKJ4] +~w~De acuerdo chicos. Ha sido tan fácil como lo habíamos planeado. + +[BM_DEAD:BANKJ4] +~r~¡Necesitas al director del banco vivo! + +[ASSET_A:BANKJ4] +¡ATRACO AL BANCO COMPLETADO! + +[ASSET_B:BANKJ4] +~g~El Club Malibú generará ahora unos ingresos máximos de hasta ~1~ $ al día. ¡Asegúrate de recaudarlos regularmente! + +[IDIOT:BANKJ4] +~r~ Eso es, ve por ahí vestido como un chiflado y llamando la atención, ¡IDIOTA! + +{=================================== MISSION TABLE BARON1 ===================================} + +[COK1_A:BARON1] +Vamos nena, vamos, sí, ¡sí! + +[COK1_B:BARON1] +¡Estúpido caballo! ¡Te cortaré la cabeza! + +[COK1_C:BARON1] +¿Quién es este gilipollas? + +[COK1_D:BARON1] +Tommy Vercetti, ¿me recuerdas? + +[COK1_E:BARON1] +Perdóname, estoy un poco alterado. ¡Nunca te fíes de un maldito caballo! + +[COK1_F:BARON1] +Hiciste un buen trabajo... ahora trabajas para mí. + +[COK1_H:BARON1] +Como dije amigo, trabajas para mí. Ahora, cállate. Algún Judas me ha traicionado. + +[COK1_I:BARON1] +Él cree que no sé cuando dinero debería sacar con esto, pero robar un 3% es tan malo como robar el 100%. + +[COK1_J:BARON1] +Nadie me hace esto a mí. ¡NADIE! + +[COK1_K:BARON1] +¡Le sigues desde su apartamento y ves a dónde va! Más tarde, le mataremos. + +[COK1_1:BARON1] +¡Mierda! + +[COK1_2:BARON1] +¡Demasiado lento, abuelo! + +[COK1_4:BARON1] +Perdedor. + +[COK1_5:BARON1] +¡Mejor sigue corriendo, gilipollas! + +[COK1_8:BARON1] +~g~¡Rápido! ¡Consigue un vehículo y síguele! + +[COK1_9:BARON1] +~r~¡Se supone que debes seguirle, no matarle! + +[COK1_10:BARON1] +~r~Ve a la casa del ladrón y descubre dónde esconde el dinero. + +[COK1_11:BARON1] +~g~Echa un vistazo por su ventana. + +[COK1_7:BARON1] +~g~¡Se ha escapado por el tejado, ve tras él pero no le mates! + +[COK1_G:BARON1] +Trabajo por dinero. + +{=================================== MISSION TABLE BARON2 ===================================} + +[COK2_A:BARON2] +¿Qué clase de tonto incompetente eres? + +[COK2_B:BARON2] +¡TONTO! ¡TONTO! ¡TONTO! ¡TONTO! + +[COK2_C:BARON2] +Tommy... + +[COK2_D:BARON2] +¿Qué pasa, Ricardo? + +[COK2_E:BARON2] +Estos idiotas... Siempre intentan joderle a uno. + +[COK2_F:BARON2] +Ese es el problema de este negocio. + +[COK2_G:BARON2] +¿Qué crees que estás haciendo? + +[COK2_H:BARON2] +Estos mamones me han fallado miserablemente. + +[COK2_I:BARON2] +Pronto cualquier madre o padre creerán que pueden vender farlopa en Vice City. + +[COK2_J:BARON2] +¿Y ahora qué, eh? ¿La apestosa Mafia? + +[COK2_K:BARON2] +Ese antro de mafiosos es una fortaleza inexpugnable desde el suelo, + +[COK2_L:BARON2] +así que Quentin... ¡Quentin! ¡QUENTIN! + +[COK2_M:BARON2] +¡Volará sobre la zona! + +[COK2_N:BARON2] +¡Hacedles desaparecer! + +[COK2_O:BARON2] +¿Qué crees que estás haciendo? + +[COK2_P:BARON2] +¿Qué haces aquí? + +[COK2_Q:BARON2] +He estado haciendo preguntas por ahí, y es obvio + +[COK2_R:BARON2] +que Diaz se saltó el trato y se cargó a mi hermano. + +[COK2_S:BARON2] +¡Y te matará a ti también! + +[COK2_T:BARON2] +¡Puedo encargarme de Diaz! + +[COK2_U:BARON2] +No. ¡Escúchame! Yo me encargaré de Diaz... + +[COK2_V:BARON2] +Está empezando a confiar en mí. + +[COK2_1:BARON2] +Hay una cosa que me mosquea... ¿por qué Quentin? + +[COK2_2:BARON2] +No sé, siempre me ha gustado... Quentin Vance... + +[COK2_3:BARON2] +¿Vance? ¿Tu nombre es Lance Vance? + +[COK2_4:BARON2] +¡Eh! ¡Ya tuve bastante con eso en la escuela! + +[COK2_5:BARON2] +¿Alguna vez has disparado uno de esos desde un helicóptero? + +[COK2_8:BARON2] +En fin, ¿a dónde nos dirigimos? + +[COK2_9:BARON2] +A Prawn Island. + +[COK2_13:BARON2] +Lance Vance. Pobre desgraciado. + +[COK2_14:BARON2] +Bien, casi hemos llegado. + +[COK2_15:BARON2] +Daremos un par de pasadas. + +[COK2_16:BARON2] +Así que elimina a tantos como puedas. + +[COK2_17:BARON2] +Después te dejaré abajo y te las arreglarás solo. + +[COK2_20:BARON2] +¡Mierda! ¡Ésto es una zona de guerra! ¡Elimina a algunos de esos pistoleros! + +[COK2_21:BARON2] +¡Nos están alcanzando, tío! + +[COK2_22:BARON2] +¡Arreglar esta cosa no sale barato! ¡Elimínalos! + +[COK2_23:BARON2] +Vale, de ahora en adelante es cosa tuya... ¡Buena suerte, hermano! + +[COK2_24:BARON2] +Helicóptero: + +[COK2_25:BARON2] +~g~Ve y recoge el dinero del tejado. + +[COK2_27:BARON2] +¡Estás en mi territorio, gilipollas! + +[COK2_28:BARON2] +¡Vas a desaparecer! + +[COK2_6:BARON2] +No. Practicaré un poco por el camino. + +[OPEN_B:BARON2] +Los controles policiales con dirección a la península han sido levantados + +{=================================== MISSION TABLE BARON3 ===================================} + +[COK3_A:BARON3] +Ahora ya no os sentís tan complacidas, ¿eh? + +[COK3_B:BARON3] +~n~ + +[COK3_C:BARON3] +¡Guau! Mira hacia donde mueves esa cosa. + +[COK3_D:BARON3] +Ya no habrá más mierda de paloma en mi coche, ¿eh, Tommy? + +[COK3_E:BARON3] +Supongo que no. + +[COK3_F:BARON3] +Tienes toda la razón. Ahora escucha, + +[COK3_G:BARON3] +¿sabes quién posee el barco más rápido de la costa este? + +[COK3_H:BARON3] +Ni idea. + +[COK3_I:BARON3] +Yo. Y quiero que siga siendo así. + +[COK3_J:BARON3] +Cada traficante de aquí a Caracas tiene un sueño, un barco más rápido. + +[COK3_K:BARON3] +Se rumorea que el astillero acaba de terminar un barco así + +[COK3_L:BARON3] +para algún mamón costarricense. + +[COK3_M:BARON3] +Y Tommy... ¡QUIERO ESE BARCO! + +[COK3_N:BARON3] +Creo que han vuelto tus palomas. + +[COK3_O:BARON3] +¡Ah! Pensé que te tenía. ¿De dónde has salido? + +[COK3_P:BARON3] +¡Palomas! ¡Boom! ¡Aaaaah! + +[COK3_5:BARON3] +~g~Localiza el interruptor para bajar el barco. + +[COK3_6:BARON3] +~g~Lleva el barco a la mansión. + +[COK3_7:BARON3] +~r~¡Destruiste el barco! + +[COK3_8:BARON3] +~g~Ve al astillero, en los muelles y roba el barco más rápido. + +[COK3_9:BARON3] +~g~Ahora sube al barco. + +{=================================== MISSION TABLE BARON4 ===================================} + +[COK4_A:BARON4] +¡Expúlsala! ¡MIERDA DE PLÁSTICO! + +[COK4_B:BARON4] +¿Por qué me haces esto? + +[COK4_C:BARON4] +¿Quién te crees que eres, maldita mierda de plástico? + +[COK4_D:BARON4] +¡QUE TE JODAN! + +[COK4_E:BARON4] +Se traga mi película favorita de El burro, ¡se muere! + +[COK4_F:BARON4] +¿Qué más podría haber hecho? + +[COK4_G:BARON4] +Probablemente no estaba enchufado. + +[COK4_H:BARON4] +¿Qué? + +[COK4_I:BARON4] +Maldición... No importa, puedo comprar cien más. + +[COK4_J:BARON4] +Ahora, Tommy, + +[COK4_K:BARON4] +cada mes un camello autónomo navega hasta Vice City y amarra su yate. + +[COK4_L:BARON4] +Vende su partida al primer barco. + +[COK4_M:BARON4] +Quiero que cojas la lancha motora + +[COK4_N:BARON4] +y que elimines a todos los otros cabrones, + +[COK4_O:BARON4] +luego me traes aquí el alijo, ¿entendido? + +[COK4_P:BARON4] +Déjame adivinar, pensaste que me podía venir bien un ángel guardián. + +[COK4_Q:BARON4] +Solo digo que tienes que dejarme participar, tío. + +[COK4_R:BARON4] +Ahora ya puedes contarme toda esa basura del 'chico duro solitario', + +[COK4_S:BARON4] +pero sé que un día te voy a salvar el culo + +[COK4_T:BARON4] +¡y probablemente querrás darme un beso! + +[COK4_U:BARON4] +Colgado. + +[COK4_V:BARON4] +~n~ + +[COK4_1:BARON4] +Así que Tommy, sabemos que fue Díaz quien jodió nuestro trato... + +[COK4_3:BARON4] +Así que, ¿por qué coño vamos por ahí haciéndole recados? + +[COK4_4:BARON4] +Cuanto más aprendamos ahora, ¡menos tendremos que aprender cuando tomemos el control de esta ciudad! + +[COK4_5:BARON4] +Me encanta tu estilo, tío. Muy fresco. + +[COK4_12:BARON4] +¡Cuidado, vienen de todas partes! + +[COK4_13:BARON4] +Ya está. ¡Dirígete hacia Díaz tan rápido como puedas! + +[COK4_14:BARON4] +¿Queréis un poco de esto? + +[COK4_15:BARON4] +¡A dormir con los peces! + +[COK4_16:BARON4] +¡Comed! ¡COMED! + +[COK4_19:BARON4] +¡Más problemas ahí adelante! + +[COK4_20:BARON4] +¡Hay más pistoleros en el malecón! + +[COK4_24:BARON4] +Buen disparo, amigo mío. Eres un verdadero y auténtico lunático de categoría A. + +[COK4_25:BARON4] +Bueno, gracias. + +[COK4_26:BARON4] +Nos vemos, Tommy. + +[COK4_27:BARON4] +Vale, Sr. Lance Vance. + +[COK4_28:BARON4] +~g~¡Ve hasta el yate antes de que lleguen los otros barcos! + +[COK4_31:BARON4] +~g~¡Ve al barco más rápido del embarcadero! + +[COK4_32:BARON4] +~r~¡Demasiado lento! + +[COK4_33:BARON4] +~r~¡Has destruido el barco! + +[COK4_34:BARON4] +~g~¡Hunde esos barcos! + +[COK4_35:BARON4] +Estado del barco: + +{=================================== MISSION TABLE BARON5 ===================================} + +[PROP_A:BARON5] +¡PROPIEDAD ADQUIRIDA! + +[COK4_30:BARON5] +~r~¡Lance está muerto! + +[ASS1_A:BARON5] +He conseguido unos juguetes nuevos. Están en el maletero. + +[ASS1_B:BARON5] +¡Mierda! ¿Dónde conseguiste todo este material? + +[ASS1_C:BARON5] +Lo he estado guardando para un momento como éste. + +[ASS1_D:BARON5] +¿Te gusta? + +[ASS1_E:BARON5] +Sí, me gusta. + +[ASS1_F:BARON5] +Estúpidos mamones... + +[ASS1_G:BARON5] +Mi hermosa casa. + +[ASS1_H:BARON5] +¡Mirad lo que le habéis hecho! + +[ASS1_I:BARON5] +¡Esto es por mi hermano! + +[ASS1_J:BARON5] +Confiaba en ti, Tommy. + +[ASS1_K:BARON5] +Te hubiese convertido en... + +[ASS1_L:BARON5] +Diga buenas noches, Sr. Díaz. + +[ASS1_1:BARON5] +Este lugar va a estar hasta arriba de capullos... ten cuidado... + +[ASS1_2:BARON5] +No te preocupes Tommy, te cubro. + +[ASS1_13:BARON5] +¡DÍAZ! ¡He venido a encargarme de tu negocio! + +[ASS1_14:BARON5] +¡TOMMY! Me has traicionado... ¡Imbécil! Voy a acabar contigo muy pronto... + +[ASS1_15:BARON5] +~g~¡Arrasa esa mansión y mata a Diaz! + +[ASS1_16:BARON5] +~g~¡Mata a Diaz! + +[ASS1_17:BARON5] +~g~Hay múltiples caminos para entrar en la mansión. + +[BUD1:BARON5] +Lance + +[ASS1_18:BARON5] +~g~La puerta está cerrada con llave, intenta otra ruta. + +[ASS1_19:BARON5] +¡Por aquí! + +[ASS1_20:BARON5] +¡Tommy, mi problema es con Quentin, no contigo, tío! + +{=================================== MISSION TABLE BIKE1 ===================================} + +[BM1_A:BIKE1] +¿Dónde está Baker? + +[BM1_B:BIKE1] +Estoy buscando al gran Mitch Baker... + +[BM1_C:BIKE1] +¿Quién le busca? + +[BM1_D:BIKE1] +Tommy Vercetti. + +[BM1_E:BIKE1] +Vercetti. + +[BM1_F:BIKE1] +No pareces policía, así que eso te concede un minuto. + +[BM1_G:BIKE1] +Habla rápido. + +[BM1_H:BIKE1] +Kent Paul dijo que podrías estar interesado en llevar la seguridad de una gira que él ha organizado. + +[BM1_I:BIKE1] +¿Kent Paul? No me extraña que te enviase en su lugar. + +[BM1_J:BIKE1] +La última vez que estuvo aquí, se marchó por la ventana sin nada, tal cual le trajo su madre al mundo. + +[BM1_K:BIKE1] +¿Estás interesado o no? + +[BM1_L:BIKE1] +Sólo hacemos favores a los nuestros. + +[BM1_M:BIKE1] +¿Cómo puedo unirme a vosotros? + +[BM1_N:BIKE1] +Este no es un club de campo, chico. ¿Sabes montar en moto? + +[BM1_O:BIKE1] +¿Sabes sentarte en un taburete y beber? + +[BM1_P:BIKE1] +Cougar, Zeppelin, id a ver cómo se le da la moto a esta nenaza... + +[BM1_2:BIKE1] +~g~¡Necesitas una Freeway o una Ángel para competir! + +[BM1_3:BIKE1] +~r~¡Los corredores han sido atacados! + +[BIKE1_1:BIKE1] +Bien, modelitos caros. Veamos qué puedes hacer. + +[BM1_1:BIKE1] +~g~Consigue una Freeway o una Ángel y ve a la parrilla de salida. + +{=================================== MISSION TABLE BIKE2 ===================================} + +[BM2_1:BIKE2] +CAOSMETRO: + +[BM2_A:BIKE2] +Te he vuelto a ganar. + +[BM2_B:BIKE2] +Eh, Vercetti. + +[BM2_C:BIKE2] +Cougar dice que sabes manejar muy bien una moto. + +[BM2_D:BIKE2] +Sí, ¿cuántos recados más voy a tener que hacer? + +[BM2_E:BIKE2] +Soy un hombre muy ocupado. + +[BM2_F:BIKE2] +Si es un combate lo que va arreglarlo todo, entonces adelante. + +[BM2_G:BIKE2] +Ser uno de nosotros no va solo de fanfarronear. Va de ser parte de una familia. + +[BM2_H:BIKE2] +Sí, he sido parte de una familia antes. No funcionó. + +[BM2_I:BIKE2] +Sí, seguro, pero esta familia cuida de los suyos. + +[BM2_J:BIKE2] +No le pedimos a un hombre que haga el trabajo sucio y luego le dejamos pasar quince años de sequía. + +[BM2_K:BIKE2] +Sí, es verdad. He hecho mis deberes. + +[BM2_L:BIKE2] +Ésta de aquí es la familia más grande de inadaptados, rebeldes y tipos duros. + +[BM2_M:BIKE2] +Diablos, algunos de nosotros incluso hemos sido traicionados por nuestro propio país. + +[BM2_N:BIKE2] +Estuve preso durante Vietnam. Un tema desagradable. + +[BM2_O:BIKE2] +Por eso es por lo que voy a pedirte que vayas a armar jaleo. + +[BM2_P:BIKE2] +Este maldito país necesita una patada en el culo, y nosotros se la vamos a dar. + +[BM2_Q:BIKE2] +¡Así que sal de ahí, pilla una moto, demuestra a esta ciudad lo cabreado que estás! + +[BM2_R:BIKE2] +De acuerdo. + +[BM2_2:BIKE2] +~g~¡Debes llenar el Caosmetro en el tiempo determinado para demostrarnos lo duro que eres! + +[BM2_3:BIKE2] +~g~Este sonido indica que has llenado una parte del contador, continúa así. + +[BM2_4:BIKE2] +~r~¡Has fracasado en llenar el Caosmetro a tiempo! + +{=================================== MISSION TABLE BIKE3 ===================================} + +[BM3_A:BIKE3] +Hola, Mitch. + +[BM3_B:BIKE3] +Bueno, si es el ''tipo duro'' Vercetti. + +[BM3_C:BIKE3] +Ahora quiero ver lo bien que sabes luchar por tu territorio. + +[BM3_D:BIKE3] +Una banda callejera local cometió el error de robar mi moto, + +[BM3_E:BIKE3] +probablemente para hacerse los machos o algo así. + +[BM3_F:BIKE3] +Los chicos y yo iríamos a darles una lección sobre el respeto a las propiedades ajenas y todo eso. + +[BM3_G:BIKE3] +En fin... + +[BM3_H:BIKE3] +Entonces empecé a pensar que esto sería una buena iniciación para ti. + +[BM3_I:BIKE3] +Devuélveme mi moto y puedes decirle a Paul que tiene su seguridad. + +[BM3_2:BIKE3] +~r~¡Se suponía que debías traer de vuelta la moto, no destruirla! + +[BM3_3:BIKE3] +~g~¡Lleva la moto de vuelta al bar! + +[BM3_4:BIKE3] +~g~¡Sube a la moto! + +[INTRUDE:BIKE3] +~g~¡Te han visto! + +[BM3_6:BIKE3] +~g~Están refugiados detrás de Ammu-Nation en la zona del centro. + +[BM3_7:BIKE3] +~g~Necesitarás una moto rápida para conseguir acceder al tejado. + +[BM3_8:BIKE3] +~g~Utiliza la moto para saltar desde esas escaleras hasta el tejado que hay en el extremo opuesto de la carretera. + +[BM3_1:BIKE3] +~g~Una banda local ha robado la Ángel de Mitch Baker. ¡Recupérala! + +[BM3_9:BIKE3] +~g~¡Recupera la Ángel de Mitch y sal de ahí! + +{=================================== MISSION TABLE BMX_1 ===================================} + +[GETBIK2:BMX_1] +¡Tienes ~1~ segundos para subirte a una moto de motocross! + +{=================================== MISSION TABLE BOATBUY ===================================} + +[DRUG_1:BOATBUY] +¿Hola? + +[DRUG_2:BOATBUY] +Apágalo. Hay un tipo ahí afuera. + +[DRUG_3:BOATBUY] +¡Eh, el tipo del traje! Supongo que eres el nuevo propietario. + +[DRUG_4:BOATBUY] +Sí. ¿Cuál de los barcos es el más rápido? + +[DRUG_5:BOATBUY] +Ya está en el agua, tío, + +[DRUG_6:BOATBUY] +Pensé que querrías probarlo. + +[DRUG_7:BOATBUY] +Tío, funciona con un motor de 300 caballos... + +[DRUG_8:BOATBUY] +y el casco es de fibra de vidrio, ¡sale disparado por las olas! + +[DRUG_9:BOATBUY] +Puede ponerse de cero a noventa tan sólo en cuatro segundos, tío... + +[DRUG_10:BOATBUY] +¡y puede llevar como veinte contenedores de la mejor hierba jamaicana justo en el casco! + +[DRUG_11:BOATBUY] +Así que adelante, tío, ¡está preparada para volar! + +[DRUG_12:BOATBUY] +Tipo trajeado, ¿tienes fuego? + +[DRUG_13:BOATBUY] +¿Colega? + +{=================================== MISSION TABLE CAP_1 ===================================} + +[CAP1_B1:CAP_1] +~g~La mafia está imponiendo impuestos a tus negocios. Encuéntrales y mátales. + +[CAP1_B2:CAP_1] +~g~¡La mafia ha saqueado el astillero! + +[CAP1_B3:CAP_1] +~g~¡La mafia ha saqueado la fábrica de helados! + +[CAP1_B4:CAP_1] +~g~¡La mafia ha saqueado el salón de autos! + +[CAP1_B5:CAP_1] +~g~¡La mafia ha saqueado la compañía de taxis! + +[CAP_01:CAP_1] +¿Cuál es la emergencia? + +[CAP_02:CAP_1] +¿QUIÉN? + +[CAP_03:CAP_1] +Tommy... unos matones mafiosos... dijeron que vendrían a recoger su parte... + +[CAP_04:CAP_1] +Dijeron que era dinero del Sr. Forello... me siento una basura. + +[CAP_05:CAP_1] +¿Forelli? ¿SONNY Forelli? + +[CAP_06:CAP_1] +Sí, ése es el tipo... creo... insistieron mucho... + +[CAP_07:CAP_1] +No te preocupes, abuelo, no estoy enfadado contigo. + +[CAP_08:CAP_1] +Llevadle al hospital. + +[CAP_09:CAP_1] +Tommy... rájale un nuevo culo a ese tipo por mí... + +[CAP_10:CAP_1] +Voy a rajarle en dos. + +[CAP1_2:CAP_1] +¡Conoces las reglas, Vercetti! + +[CAP1_3:CAP_1] +¡El Sr. Forelli envía sus saludos! + +[CAP1_4:CAP_1] +¡Es el carnicero de Harwood! + +[CAP1_5:CAP_1] +Decidle a Sonny... ¡Que permanezca alejado! + +[CAP1_6:CAP_1] +Vice City ahora es MÍA, NO suya. + +[CAP1_7:CAP_1] +¿Crees que puedes eliminarme, Vercetti? + +[CAP1_8:CAP_1] +Seguiremos yendo tras de ti hasta que mueras, Vercetti. + +[CAP1_9:CAP_1] +No tienes ni una oportunidad, mamón psicótico. + +[CAP1_10:CAP_1] +Te mataré, Vercetti. + +[CAP1_11:CAP_1] +Siempre fuiste un gilipollas. + +[CAP1_12:CAP_1] +Vas a morir, Vercetti. + +[CAP1_B6:CAP_1] +~g~Has encontrado al cobrador, remátale. + +[CAP1_B7:CAP_1] +~g~Has perdido al cobrador. + +[CAP1_B8:CAP_1] +~r~El cobrador ha saqueado todos tus negocios. + +[CAP1_B9:CAP_1] +~g~¡La mafia ha saqueado a El Malibu! + +[CAP1_B0:CAP_1] +~g~¡La mafia ha saqueado al estudio cinematográfico! + +[CAP1_C2:CAP_1] +~g~¡La mafia ha llegado al astillero! + +[CAP1_C3:CAP_1] +~g~¡La mafia ha llegado a la fábrica de helados! + +[CAP1_C4:CAP_1] +~g~¡La mafia ha llegado al concesionario de coches! + +[CAP1_C5:CAP_1] +~g~¡La mafia ha llegado a la compañía de taxis! + +[CAP1_C9:CAP_1] +~g~¡La mafia ha llegado al Malibú! + +[CAP1_C0:CAP_1] +~g~¡La mafia ha llegado al estudio cinematográfico! + +[CAP1_D2:CAP_1] +~g~¡La mafia abandona el astillero! + +[CAP1_D3:CAP_1] +~g~La mafia abandona la fábrica de helados! + +[CAP1_D4:CAP_1] +~g~¡La mafia abandona el concesionario de coches! + +[CAP1_D5:CAP_1] +~g~¡La mafia abandona la compañía de taxis! + +[CAP1_D9:CAP_1] +~g~¡La mafia abandona el Malibú! + +[CAP1_D0:CAP_1] +~g~¡La mafia abandona el estudio cinematográfico! + +[CAP1B10:CAP_1] +Has puesto límite a los recaudadores. Vienen más de camino. + +{=================================== MISSION TABLE CARBUY ===================================} + +[CAR1_1:CARBUY] +B.J. Smith. Y usted debe ser el Sr. Vercetti. + +[CAR1_2:CARBUY] +¿Le gustaría dar una vuelta? + +[CAR1_3:CARBUY] +Podría ser. + +[CAR1_4:CARBUY] +Estoy muy triste por vender el negocio. + +[CAR1_5:CARBUY] +Esta fue mi primera inversión después de convertirme en profesional. + +[CAR1_6:CARBUY] +Pero es hora de que me mude. + +[CAR1_7:CARBUY] +¿Deja la ciudad? + +[CAR1_8:CARBUY] +No demasiado deprisa, espero. + +[CAR1_9:CARBUY] +No. Me estoy retirando pero simplemente para preparar mi regreso. + +[CAR1_10:CARBUY] +El negocio no era demasiado fuerte, + +[CAR1_11:CARBUY] +y mi equipo quizás se puso demasiado + +[CAR1_12:CARBUY] +creativo con la generación de la riqueza. + +[CAR1_13:CARBUY] +Obviamente, habría podido desmantelar el negocio antes de cederlo. + +[CAR1_14:CARBUY] +Diablos, podría haber quemado el sitio si hubiese querido. + +[CAR1_15:CARBUY] +Esta es tierra para una urbanización de primera. + +[CAR1_16:CARBUY] +Oh, yo no me preocuparía por nada de eso. + +[CAR1_17:CARBUY] +Este lugar parece perfecto. + +[CAR1_18:CARBUY] +Sí, así es, ¿así que entiendo que tenemos un trato? + +{=================================== MISSION TABLE CARPAR1 ===================================} + +[MM_1_A:CARPAR1] +~g~Atraviesa ~y~5 puntos de control ~r~¡SIN ~g~aplastar ningún ~r~CONO! ~g~Puedes atravesarlos en ~y~CUALQUIER ORDEN. + +[CONE_1:CARPAR1] +~r~¡Aplastaste un cono! + +[MM_1_C:CARPAR1] +~y~PASA POR~g~ un punto de control para activar el temporizador. ~g~Cada punto de control te dará ~y~~1~ SEGUNDOS~g~. + +{=================================== MISSION TABLE COPCAR ===================================} + +[KILLS:COPCAR] +MUERTES: + +[C_BREIF:COPCAR] +~g~Sospechoso visto por última vez en la zona de ~a~. + +[C_PASS:COPCAR] +AMENAZA ELIMINADA: ~1~ $ + +[COPCART:COPCAR] +~g~Tienes ~1~ segundos para volver al vehículo de policía antes de que termine la misión. + +[C_CANC:COPCAR] +~r~¡Misión de justiciero cancelada! + +[C_TIME:COPCAR] +~r~¡Tu tiempo como representante de la ley se ha terminado! + +[C_COMP1:COPCAR] +Has completado el nivel 12 de la misión de justiciero: tu armadura personal máxima ha aumentado a 150. + +[CLEVEL:COPCAR] +Misión de justiciero nivel ~1~ + +{=================================== MISSION TABLE COUNT1 ===================================} + +[CM1_A:COUNT1] +¿Sr. Vercetti? ¿Comprando la vieja imprenta? + +[CM1_B:COUNT1] +Sí, mi viejo solía trabajar con ellas. + +[CM1_C:COUNT1] +Iba a seguirle en el negocio, pero... viví una vida diferente. + +[CM1_D:COUNT1] +¿Planea vender la vieja maquinaria o destruirla? + +[CM1_E:COUNT1] +Estoy pensando que podíamos imprimir algo, un periódico, una revista... + +[CM1_F:COUNT1] +Oh, mierda, hijo, todo eso es mierda de baja calidad. Siempre me ha apetecido imprimir dinero. No es tan difícil. + +[CM1_G:COUNT1] +Ya sabes, llevo haciéndolo a pequeña escala durante años. + +[CM1_H:COUNT1] +¿De verdad? + +[CM1_I:COUNT1] +Claro. Pero necesitamos unas planchas de buena calidad. + +[CM1_J:COUNT1] +¡Por supuesto! Hay un sindicato de la falsificación que opera ya en Florida. + +[CM1_K:COUNT1] +¿Un sindicato? + +[CM1_L:COUNT1] +Sí. He escuchado algunos rumores. + +[CM1_M:COUNT1] +Conozco a un tipo que es bueno con los rumores... + +[CM1_N:COUNT1] +Solía pasar las tardes con él, limpiando los rodillos... + +[CM1_2A:COUNT1] +¡Menudo trasero! + +[CM1_2B:COUNT1] +¡Vale chica, tú te lo pierdes! + +[CM1_2C:COUNT1] +Buenas, figura, ¿cómo va todo? + +[CM1_2D:COUNT1] +¿Qué sabes sobre falsificación? + +[CM1_2E:COUNT1] +Estoy bien, Paul, ¿qué tal tú? + +[CM1_2F:COUNT1] +¡Ven aquí! + +[CM1_2G:COUNT1] +¡Vale! ¡Vale! Obviamente eres un hombre ocupado. + +[CM1_2H:COUNT1] +Todo lo que sé sobre los asuntos turbios es que las tríadas suministran las planchas. + +[CM1_2I:COUNT1] +Tienen una compañía de envíos en los muelles, + +[CM1_2J:COUNT1] +¡el jefe sabrá cuándo vienen las próximas planchas! + +[CM1_2K:COUNT1] +Gracias, Paul. + +[CM1_2L:COUNT1] +¡Cuál es tu problema, lunático! + +[CM1_2M:COUNT1] +¡Ponme otra copa, pronto! + +[CM1_3:COUNT1] +~g~¡Te han visto! + +[CM1_5:COUNT1] +~g~¡Ve a encontrarte con Kent Paul en el Club Malibú! + +[CNT1_1:COUNT1] +¿Quién eres tú? ¡En la cara no! ¡En la cara no! + +[CM1_1:COUNT1] +~g~Ve al barco de la línea charter Libertine en el muelle. + +[CM1_2:COUNT1] +~g~El encargado de los envíos tendrá toda la información necesaria. + +[CNT1_2:COUNT1] +Vale, ¡hablaré! ¡hablaré! + +[CM1_6:COUNT1] +~g~¡Lleva toda la información de vuelta a la imprenta! + +{=================================== MISSION TABLE COUNT2 ===================================} + +[CNT2_B1:COUNT2] +De acuerdo, hoy el mensajero moverá las planchas de los muelles. + +[CNT2_B2:COUNT2] +Voy a interceptarles, coger las planchas, deshacerme de las pruebas, y volver aquí. + +[CNT2_B3:COUNT2] +Dependiendo de lo bien que vaya esto, + +[CNT2_B4:COUNT2] +podemos tener cinco minutos para imprimir el dinero antes de que el sindicato de falsificación nos encuentre, o puede que tengamos todo el año. + +[CNT2_B5:COUNT2] +De cualquier modo, quiero que los verdes salgan de las prensas cinco minutos después de que vuelva. ¿Entendido? + +[CNT2_B6:COUNT2] +No te preocupes, Tommy. Estaremos preparados. + +[CNT2_B7:COUNT2] +Los otros chicos y yo estaremos por aquí en el vecindario, en caso de que necesites que nos ocupemos de cualquier problema. + +[CNT2_B8:COUNT2] +De acuerdo, ¿todo el mundo está tranquilo? De acuerdo. Os veré luego... + +[CNT2_01:COUNT2] +~g~El ~r~mensajero~g~ con las planchas de falsificación llegará en cualquier momento a los ~y~muelles~g~ en un helicóptero. + +[CNT2_02:COUNT2] +~r~El mensajero de las planchas ha huido en el helicóptero. + +[CNT2_03:COUNT2] +~r~¡El mensajero ha llegado a su destino sano y salvo, llegas demasiado tarde! + +[CNT2_04:COUNT2] +~r~¡Has destruido las planchas en la explosión! + +[CNT2_05:COUNT2] +~g~Tienes las planchas de falsificación. Llévalas a la imprenta. + +[CNT2_06:COUNT2] +~g~El mensajero ha muerto y ha dejado caer las planchas, recógelas antes de que lo haga otro. + +[CNT2_07:COUNT2] +~g~Una de las guardias ha recogido las planchas, no la dejes escapar. + +[CNT2_08:COUNT2] +~g~El ~r~mensajero~g~ ha llegado a los muelles con las planchas. + +[CNT2_4:COUNT2] +Negocio privado. ¡No eres bienvenido! + +[CNT2_09:COUNT2] +IMPRENTA CONSOLIDADA + +[CNT2_10:COUNT2] +~g~La imprenta generará ahora unos ingresos hasta un máximo de ~1~ $. Asegúrate que lo recaudas de manera regular. + +[CNT2_11:COUNT2] +~r~¡Las planchas están en el fondo del mar! + +{=================================== MISSION TABLE CUBAN1 ===================================} + +[CUB1_A:CUBAN1] +¿Sí, tío? + +[CUB1_B:CUBAN1] +Eh, tranquilo papito, este hombre es para mí. Tú, ¿tú eres el chico? + +[CUB1_C:CUBAN1] +Oh, sí. Tú eres el chico. Eso creo, ¿sabes? + +[CUB1_D:CUBAN1] +No. No creo que lo sepa. + +[CUB1_E:CUBAN1] +¿Oh, sí? Ven aquí, tipo duro. + +[CUB1_F:CUBAN1] +¿Crees que puedes desafiarme? + +[CUB1_G:CUBAN1] +¿Crees que puedes jugar a ese estúpido juego conmigo? + +[CUB1_H:CUBAN1] +No, creo que ya lo estás haciendo tú lo suficientemente estúpido por los dos. + +[CUB1_I:CUBAN1] +Eh, te llamó tonto, hijo. + +[CUB1_J:CUBAN1] +Y yo le llamé niñita, papá. + +[CUB1_K:CUBAN1] +Mírale, vestido así. + +[CUB1_L:CUBAN1] +¿Qué es esto, un traje de noche? + +[CUB1_M:CUBAN1] +¿Eres alguna clase de tipo duro y vistes como una mujer? + +[CUB1_N:CUBAN1] +También llevas pantis como una mujer, ¿eh? + +[CUB1_O:CUBAN1] +¿Qué tienes contra las mujeres? ¿Prefieres a los hombres, grandullón? + +[CUB1_P:CUBAN1] +¡Me gustan las mujeres! ¡Me gustan las mujeres! ¡Amo a mi madre, chico! + +[CUB1_Q:CUBAN1] +De acuerdo, de acuerdo. Aceptaré tu palabra. + +[CUB1_R:CUBAN1] +¿Sabes conducir, amigo? + +[CUB1_S:CUBAN1] +Sí... como una mujer. + +[CUB1_T:CUBAN1] +Muy gracioso. Me gustas, grandullón. Quizás puedas ayudarme. + +[CUB1_U:CUBAN1] +Quizás puedas demostrar que eres un hombre. ¿Eh? + +[CUB1_V:CUBAN1] +Saca el barco. + +[CUB1_W:CUBAN1] +Demuéstrame que tienes un par de cojones, + +[CUB1_X:CUBAN1] +y no unos chiquitos de ratón. + +[CUB1_02:CUBAN1] +De acuerdo, tío, trátalo como a una mujer. + +[CUB1_03:CUBAN1] +No está mal, un hombre de verdad. + +[CUB1_04:CUBAN1] +Tío, tienes unas pelotas bien grandes, amigo. + +[CUB1_05:CUBAN1] +Amigo, eres un tío. + +[CUB1_06:CUBAN1] +¿Puedes decir que eres un machote, tío? + +[CUB1_07:CUBAN1] +Eres un ratón asustado, niñito, vete a llorar con tu mamá. + +[CUB1_08:CUBAN1] +Eres una bazofia. Andas como un tío, hablas con un tío, pero conduces como un idiota. + +[CUB1_09:CUBAN1] +Brother, eres un macho. Me gustas, tío. Me gustas un montón. + +[CUB1_10:CUBAN1] +En cualquier momento, tío. Porque tienes un par. Y todos mis amigos tienen un buen par de cojones. + +[CUB1_11:CUBAN1] +~r~¡Mataste a Rico! + +[CUB1_12:CUBAN1] +Atraviesa el primer punto de control para comenzar la prueba. + +[CUB1_14:CUBAN1] +¡Vuelve al bote! + +[CUB1_15:CUBAN1] +~r~Brother, eres demasiado lento. + +[CUB1_01:CUBAN1] +Eh, soy Rico. ¿Eres tú el tío de las pelotas grandes? + +[CUB1_13:CUBAN1] +~g~Tienes tres minutos para recorrer el circuito. + +{=================================== MISSION TABLE CUBAN2 ===================================} + +[CUB2_A:CUBAN2] +Un cafetito, por favor, Alberto... + +[CUB2_N:CUBAN2] +Sin problema, Tommy. + +[CUB2_B:CUBAN2] +¡Papá! ¡Un gran problema! + +[CUB2_O:CUBAN2] +Umberto, mi hijo, ¿qué ocurre? + +[CUB2_C:CUBAN2] +¡Los haitianos! ¡Odio a estos haitianos! + +[CUB2_D:CUBAN2] +¡Me han molestado por última vez! + +[CUB2_E:CUBAN2] +¡Nos desharemos de ellos! + +[CUB2_F:CUBAN2] +Sólo necesitamos un poco de apoyo. + +[CUB2_G:CUBAN2] +Ya he perdido algunos hermanos ahí fuera. + +[CUB2_H:CUBAN2] +¡Amigo, tú conduces bien! + +[CUB2_I:CUBAN2] +Para ser una mujer. ¿No? + +[CUB2_J:CUBAN2] +¡Éste no es momento de bromear! + +[CUB2_K:CUBAN2] +¡Vamos, maneja de nuevo para mí! + +[CUB2_L:CUBAN2] +¡Lleva a mis chicos allí y eliminaremos a esos haitianos! + +[CUB2_M:CUBAN2] +¡Se meten conmigo y se meten con el chico grande de la ciudad! + +[CUB2_01:CUBAN2] +No hay suficiente espacio, brother, necesitas un coche más grande. + +[CUB2_02:CUBAN2] +¡Necesitamos refuerzos del café! + +[CUB2_03:CUBAN2] +~g~Consigue un coche y recoge a los cubanos frente al Café Robina. + +[CUB2_04:CUBAN2] +~g~Ve y deja a los cubanos en la zona de combate. + +[CUB2_05:CUBAN2] +¡Elimina a ese francotirador cobarde! + +[CUB2_07:CUBAN2] +¡Luchan como nenas! ¡Ponte a cubierto! + +[CUB2_09:CUBAN2] +¡Francotirador en el tejado! + +[CUB2_11:CUBAN2] +~r~Estúpido, necesitábamos ese coche. + +[CUB2_12:CUBAN2] +¡Eh, amigo! ¡Me alegro de que hayas podido venir! + +[CUB2_13:CUBAN2] +¡Apestoso nido de haitianos, vamos a matarlos a todos! + +[CUB2_14:CUBAN2] +¡A LA CARGA! + +[CUB2_15:CUBAN2] +¡Ahora, hermanos, A LA CAAARGA! + +[CUB2_16:CUBAN2] +¡Tommy, hemos demostrado nuestro valor y nuestra hombría! + +[CUB2_17:CUBAN2] +¡Vamos a robar esa furgoneta llena de farlopa y pegarnos el piro! + +[CUB2_18:CUBAN2] +~g~Consigue un coche y recoge a los cubanos. + +[CUB2_19:CUBAN2] +¡Vamos a combatir como machos! + +[CUB2_21:CUBAN2] +¡Luchad como machos con un par de cojones! + +[CUB2_22:CUBAN2] +~g~Termina con el resto de los haitianos para que los cubanos puedan avanzar. + +[CUB2_23:CUBAN2] +~g~Little Haiti estará atestado de haitianos intentando desquitarse con los cubanos. ¡Ten cuidado! + +[CUB2_24:CUBAN2] +~g~Vuelve al Café Robina en la furgoneta y aparca en la parte trasera. + +[CUB2_25:CUBAN2] +¡MATA A TODOS LOS HAITIANOS! + +{=================================== MISSION TABLE CUBAN3 ===================================} + +[CUB3_A:CUBAN3] +Alberto. Un cafetito, señor. + +[CUB3_B:CUBAN3] +Papaíto, no sirvas a esta sabandija. + +[CUB3_C:CUBAN3] +¡Tienes dos caras, Tommy! + +[CUB3_D:CUBAN3] +¡Tú, guapito de cara, o eres un falso o eres un calzonazos! + +[CUB3_E:CUBAN3] +¡Los haitianos! Tío, se están riendo de mí. + +[CUB3_F:CUBAN3] +Vale, vale. ¿Qué problema tienes? + +[CUB3_G:CUBAN3] +Se están riendo de mí, Tommy. ¡De mí! + +[CUB3_H:CUBAN3] +¡Umberto Robina! ¡Están haciendo lo que quieren! + +[CUB3_I:CUBAN3] +Nadie hace lo que quiere, Umberto, hacen lo que les dejes hacer. + +[CUB3_J:CUBAN3] +¿Qué? + +[CUB3_K:CUBAN3] +¿Quieres que alguien se ocupe del asunto? + +[CUB3_L:CUBAN3] +Puedo manejarlo, pero va a costarte. + +[CUB3_M:CUBAN3] +Sé que somos hermanos y todo eso, pero esto es un negocio. + +[CUB3_N:CUBAN3] +Tommy. Eres un verdadero macho. Un tío de negocios, un caballero. + +[CUB3_O:CUBAN3] +Estos haitianos. Tienen un alijo de producto que va a venir desde alta mar, un material de primera. + +[CUB3_P:CUBAN3] +Lo agarraremos y acabaremos con ellos. + +[CUB3_Q:CUBAN3] +Tú lo agarrarás y yo cuidaré de ti. Como a un hermano. Como a un hijo. + +[CUB3_R:CUBAN3] +Creo que prefiero el dinero a que me mezas en tus rodillas, amigo. + +[CUB3_01:CUBAN3] +Eh, Rico. Bonito barco, ¿estás preparado? + +[CUB3_03:CUBAN3] +~g~Recoge todos los maletines llenos de nieve y dinero. + +[CUB3_04:CUBAN3] +~g~Lleva la nieve y la pasta de vuelta a Umberto. + +[CUB3_05:CUBAN3] +Sí, Tommy. Tienes que apuntar bien. + +[CUB3_06:CUBAN3] +Mi barco, no me sirve lleno de agujeros, ¿eh? + +[CUB3_07:CUBAN3] +~g~Ve y reúnete con Rico. Te llevará al punto de encuentro. + + +[CUB3_02:CUBAN3] +~g~¡MATA A TODOS LOS HAITIANOS DEL BARCO! +[CUB3_08:CUBAN3] +Oh, oh... Una banda de cubanos. ¡Nos atacan! + +{=================================== MISSION TABLE CUBAN4 ===================================} + +[CUB4_A:CUBAN4] +Ey, señoritas. ¿Sabéis qué voy a hacer? + +[CUB4_B:CUBAN4] +Primero voy a matar un haitiano. ¿Y después? + +[CUB4_C:CUBAN4] +Voy a hacer el amor como un hombre. + +[CUB4_D:CUBAN4] +¿Sabes chica? Algo así. + +[CUB4_E:CUBAN4] +¡Perdedor! + +[CUB4_F:CUBAN4] +Mamón. + +[CUB4_G:CUBAN4] +¡Ey, nena, no te tocaría ni con una pértiga de tres metros! + +[CUB4_H:CUBAN4] +¡A Umberto Robina le gustan las damas! ¡No una cabra con faldas! + +[CUB4_I:CUBAN4] +¡Tommy! ¡Tommy, te quiero, te quiero! ¡Vámonos! + +[CUB4_J:CUBAN4] +¿Irnos a donde? ¿No me puedo tomar primero una taza de café? + +[CUB4_K:CUBAN4] +¡No hay tiempo para café! Además, acabo de tomarme uno. + +[CUB4_L:CUBAN4] +Vamos a eliminar a los haitianos. + +[CUB4_M:CUBAN4] +Tommy, ¿qué tiene un elefante dentro de la trompa? + +[CUB4_N:CUBAN4] +¡Dos metros de mocos! ¡Ja, ja, ja! + +[CUB4_O:CUBAN4] +Lo que tú digas, Umberto. + +[CUB4_P:CUBAN4] +Tommy, ve y consíguenos un cochecito haitiano. + +[CUB4_Q:CUBAN4] +Cuando lo tengas, regresa y recoge a mi chico + +[CUB4_R:CUBAN4] +Pepe, y llévale a donde los haitianos. + +[CUB4_S:CUBAN4] +Luego te vas hasta la planta de procesamiento de los haitianos y utilizas su disolvente como explosivo. + +[CUB4_T:CUBAN4] +¡Boom! Y ¡Bye bye! + +[CUB4_U:CUBAN4] +Umberto, ¿qué hay de ti? + +[CUB4_V:CUBAN4] +Oh, voy a quedarme atrás, a vigilar el café con papá. + +[CUB4_W:CUBAN4] +No se siente muy bien, ¿sabes? + +[CUB4_02:CUBAN4] +~g~Las bombas se colocarán con un temporizador de 45 segundos. + +[CUB4_04:CUBAN4] +~r~¡Alertaste a la base, ahora no habrá modo de entrar! + +[CUB4_07:CUBAN4] +El disolvente está a la vuelta, amigo. + +[CUB4_08:CUBAN4] +Hola, amigos. + +[CUB4_09:CUBAN4] +Bueno. Haitianos putas. Muerte. + +[CUB4_10:CUBAN4] +Vamos. + +[CUB4_11:CUBAN4] +Sí, vamos. + +[CUB4_12:CUBAN4] +¡Ey, necesitamos un coche de la banda haitiana! + +[CUB4_13:CUBAN4] +¡Oye, vamos a encontrar a nuestros muchachos! + +[CUB4_14:CUBAN4] +Sigue a mis compadres. + +[CUB4_15:CUBAN4] +De acuerdo, allá vas... + +[CUB4_16:CUBAN4] +¡Voy a colocar la bomba, cubridme! + +[CUB4_17:CUBAN4] +¡CORRED! + +[CUB4_18:CUBAN4] +Tío, esta es una parte bonita de la ciudad... + +[CUB4_19:CUBAN4] +Compadre, este lugar es un vertedero. + +[CUB4_20:CUBAN4] +Yo tenía una hermosa mujer... vivía por este barrio. + +[CUB4_21:CUBAN4] +Sabes, allí hacen unas buenas pizzas. + +[CUB4_22:CUBAN4] +¡Tío! ¡Conduces como un loco! + +[CUB4_23:CUBAN4] +¿Te has perdido tío? + +[CUB4_24:CUBAN4] +Dejaste atrás a Pepe, ve a por él. + +[CUB4_03:CUBAN4] +~g~Permanece en el coche hasta que puedas aparcar sin percances dentro del recinto. + +[CUB4_26:CUBAN4] +~g~Recoge a Pepe, dirígete al norte a Little Haiti y roba un coche Voodoo. + +[CUB4_27:CUBAN4] +~g~Ve y reúnete con Rico y los otros cubanos. + +[CUB4_28:CUBAN4] +~g~Reúnete con los otros cubanos en el laboratorio de sustancias químicas haitiano. + +[CUB4_29:CUBAN4] +~g~Camina hacia cada uno de los marcadores para colocar la bomba en ese lugar. + +[CUB4_30:CUBAN4] +~g~Después de colocar las tres bombas, aléjate de la fábrica antes que salte por los aires. + +[CUB4_31:CUBAN4] +~g~¡Aléjate de la fábrica! + +[CUB4_32:CUBAN4] +~g~Aparca el coche en el marcador y bájate de él. + +[CUB4_06:CUBAN4] +~r~No te alejaste lo suficiente de la base, ¡y hemos tenido que abortar la explosión! + +{=================================== MISSION TABLE FINALE ===================================} + +[FIN1_01:FINALE] +¿Qué está pasando? + +[FIN1_02:FINALE] +¡Tommy! Oh, bien, bien. Escucha, escucha. Uh, escucha, + +[FIN1_03:FINALE] +me gusta el pescado. Me encanta el pescado. + +[FIN1_04:FINALE] +Me encantan como mascotas en peceras, o como comida en un plato, + +[FIN1_05:FINALE] +pero aunque los adoro, no quiero dormir con ellos. + +[FIN1_06:FINALE] +De acuerdo, pero ahora mismo, tus hermanos italianos van a salir de ahí para ponerme esos zapatos de cemento y yo... + +[FIN1_07:FINALE] +Cállate, Ken. Siéntate. + +[FIN1_08:FINALE] +Lance, ¿qué demonios ocurre? + +[FIN1_09:FINALE] +Es tu amigo del norte, Tommy. No está muy contento de que matases a su hombre. + +[FIN1_10:FINALE] +Vienen hoy para ver el negocio. + +[FIN1_11:FINALE] +Tardaron más de lo que pensaba... + +[FIN1_12:FINALE] +Chicos, tenemos que acabar con esto y no dejar duda de que ésta es mi operación. ¡Mía! + +[FIN1_13:FINALE] +Ken, pon tres millones de la primera tanda de dinero falsificado en maletines. + +[FIN1_14:FINALE] +Lance, reúne a los muchachos... + +[FIN2_01:FINALE] +¡Tommy! + +[FIN2_02:FINALE] +¿Qué? ¿No hay un gran abrazo para tu viejo colega? + +[FIN2_03:FINALE] +He pasado quince años fuera del negocio, + +[FIN2_04:FINALE] +estoy un poco oxidado respecto a las costumbres de la familia. + +[FIN2_05:FINALE] +Siempre enfadado, ¿eh? Tommy. + +[FIN2_06:FINALE] +No te dije que tu temperamento te metería en problemas, ¿eh? + +[FIN2_07:FINALE] +Hay tres millones en los maletines... + +[FIN2_08:FINALE] +¿Cuántos fueron? ¿Diez? No, once hombres. + +[FIN2_09:FINALE] +¡Así es como llegaron a llamarte el Carnicero de Harwood! ¡Je je je! + +[FIN2_10:FINALE] +Me enviaste a matar a un hombre, UN HOMBRE. Sabían que iba para allá. + +[FIN2_11:FINALE] +Vigila tu tono. + +[FIN2_12:FINALE] +Cualquiera pensaría que me echas la culpa por ese desafortunado conjunto de circunstancias. + +[FIN2_13:FINALE] +Simplemente coge el dinero... + +[FIN2_14:FINALE] +¿Que coja el maldito dinero? + +[FIN2_15:FINALE] +¿Sabes, Tommy? Hice lo que pude por ti, tiré de algunos hilos, pedí favores. + +[FIN2_16:FINALE] +Yo era tu amigo, Tommy. Esperaba que entraras en razón, ver qué es bueno para el negocio. + +[FIN2_17:FINALE] +Confié en ti, Tommy, y me decepcionaste. + +[FIN2_18:FINALE] +Pero al menos alguno de tu organización de mierda sabe hacer negocios, + +[FIN2_19:FINALE] +¿No es verdad, Lance? + +[FIN2_20:FINALE] +Lo siento, Tommy. Esto es Vice City. Son negocios. + +[FIN2_21:FINALE] +Nos vendiste. + +[FIN2_22:FINALE] +No. Te vendí a TI, Tommy, te vendí a TI. + +[FIN2_23:FINALE] +El dinero de verdad está arriba, en la caja fuerte. + +[FIN2_24:FINALE] +Así que Tommy, ¿cuál es el gran plan? + +[FIN2_25:FINALE] +¿Creías que solo me llevaría el dinero falso? + +[FIN2_26:FINALE] +¿Salvar el culo y huir con el rabo entre las piernas? + +[FIN2_27:FINALE] +No. + +[FIN2_28:FINALE] +Solo quería joderte antes de matarte. + +[FIN3_01:FINALE] +¿Tommy? + +[FIN3_02:FINALE] +Oh, Dios mío, ¡Tommy! ¿Qué ha sucedido? + +[FIN3_03:FINALE] +¿A ti qué te parece? + +[FIN3_04:FINALE] +¡Parece que te han arruinado el traje! + +[FIN3_05:FINALE] +¡Y Tommy, era un traje muy bonito! Tommy, ¿qué diablos ha ocurrido? + +[FIN3_06:FINALE] +Tuve un desacuerdo con un socio del negocio, ya sabes cómo son estas cosas. + +[FIN3_07:FINALE] +Tommy, cuando tengo un desacuerdo con un socio, le envío una carta muy enfadado. + +[FIN3_08:FINALE] +Quizás me mee en su buzón. No empiezo la tercera guerra mundial. + +[FIN3_09:FINALE] +¿Sabes? Quizás deberías hablar con mi psiquiatra... + +[FIN3_10:FINALE] +Ése estúpido mamón, Lance... + +[FIN3_11:FINALE] +Tommy. A mí nunca me gustó ese tipo, ¿de acuerdo? + +[FIN3_12:FINALE] +Era neurótico, era inseguro, era egocéntrico... ¡ese tipo era un gilipollas! + +[FIN3_13:FINALE] +¡Me alegro de que lo eliminases! + +[FIN3_14:FINALE] +No creo que vayamos a tener más líos desde la parte norte... + +[FIN3_15:FINALE] +porque ya no hay 'parte norte'. + +[FIN3_16:FINALE] +Ahora es todo sur. + +[FIN3_17:FINALE] +Espera, eso quiere decir lo que creo que quiere decir, Tommy, ¿nene? + +[FIN3_18:FINALE] +¿Qué crees que significa? + +[FIN3_19:FINALE] +Que estamos al mando... Quiero decir, que tú estás al mando. Oh, Tommy... + +[FIN3_20:FINALE] +¿Sabes, Ken? Este podría ser el comienzo de una hermosa relación comercial... + +[FIN3_21:FINALE] +Después de todo, eres un cómplice, traicionero, ladrón de tres al cuarto + +[FIN3_22:FINALE] +y yo soy un asesino psicópata convicto y además paso farlopa. + +[FIN3_23:FINALE] +Lo sé. ¿No es sencillamente hermoso? + +[FIN_B1:FINALE] +~g~Ve y liquida al traidor de ~y~Lance Vance~g~. + +[FIN_B2:FINALE] +~g~Liquida a ~p~Sonny~g~ y acaba con esto de una vez por todas. + +[FIN_B3:FINALE] +~g~La mafia está intentando robarte el dinero. Protege la caja fuerte. + +[FIN_B4:FINALE] +~g~Estás casi muerto, consigue ~w~salud~g~ en el piso de abajo. + +[FIN_B5:FINALE] +~g~La mafia está robándote el dinero, protege la ~c~caja fuerte~g~. + +[FIN_B7:FINALE] +~r~La mafia te ha robado todo el dinero. + +[DEFSAFE:FINALE] +~g~Regresa a la caja fuerte y protégela. + +{=================================== MISSION TABLE FIRETRK ===================================} + +[F_PASS1:FIRETRK] +¡Fuego extinguido! + +[F_FAIL2:FIRETRK] +~r~¡Llegas demasiado tarde! + +[F_CANC:FIRETRK] +~r~¡Misión de bombero cancelada! + +[F_EXTIN:FIRETRK] +FUEGOS: + +[F_START:FIRETRK] +~g~Se ha informado de un vehículo ardiendo en la zona de ~a~. Ve y extingue el fuego. + +[SIREN_1:FIRETRK] +Para activar la sirena de este vehículo, pulsa ~h~~k~~VEHICLE_HORN~~w~. + +[SIREN_2:FIRETRK] +Para activar la sirena de este vehículo, pulsa ~h~~k~~VEHICLE_HORN~~w~. + +[FIREPRO:FIRETRK] +Nivel 12 de la misión del camión de bomberos completado. ¡Ahora eres completamente ignífugo! + +[F_FAIL1:FIRETRK] +Misión de bombero terminada. + +[F_STAR1:FIRETRK] +~g~Se ha informado de que hay vehículos ardiendo en la ~a~ zona. Ve y apaga el fuego. + +[SPRAY_4:FIRETRK] { reVC update } +Pulsa ~h~~k~~VEHICLE_FIREWEAPON~ ~w~para disparar el cañón de agua y ~h~~k~~VEHICLE_TURRETLEFT~~w~ o ~h~~k~~VEHICLE_TURRETRIGHT~~w~ para apuntar con él. + +[SPRAY_1:FIRETRK] { reVC update } +Pulsa ~h~~k~~VEHICLE_FIREWEAPON~ ~w~para disparar el cañón de agua y ~h~~k~~VEHICLE_TURRETLEFT~~w~ o ~h~~k~~VEHICLE_TURRETRIGHT~~w~ para apuntar con él. + +{=================================== MISSION TABLE GENERA1 ===================================} + +[GEN1_A:GENERA1] +¡Sr. Vercetti! + +[GEN1_B:GENERA1] +Coronel. + +[GEN1_D:GENERA1] +No, gracias. + +[GEN1_E:GENERA1] +Me avergüenza admitir que una de las causas de nuestro mutuo problema parece ser la lengua larga de un hombre en el que solía confiar. + +[GEN1_F:GENERA1] +He tenido conmigo a González durante años, pero ahora su incompetencia alcanza nuevas cotas. + +[GEN1_G:GENERA1] +Lo correcto es que mates a González... + +[GEN1_H:GENERA1] +¿Lo hizo él? El dinero es lo único importante para mí. + +[GEN1_I:GENERA1] +Por tu gentileza te compensaré y después buscaremos juntos tu dinero. + +[GEN1_J:GENERA1] +Estará en su ático, probablemente medio borracho. Utiliza esto... + +[GEN1_K:GENERA1] +Utiliza esto... + +[GEN1_06:GENERA1] +¡Eh! ¡Tiene una sierra! + +[GEN1_07:GENERA1] +¡Mantente alejado de mí, cabrón miserable! + +[GEN1_08:GENERA1] +¡Maldición, he desperdiciado mi vida y mi belleza! + +[GEN1_10:GENERA1] +¡Te voy a cerrar esa bocaza tuya! + +[GEN1_11:GENERA1] +¡Deja de correr gorda bola de sebo! + +[GEN1_12:GENERA1] +¡Estate quieto y haré que sea rápido! + +[GEN1_13:GENERA1] +Deja de chillar, a nadie le importa, ¡gordo! + +[GEN1_C:GENERA1] +Gracias por venir. Por favor siéntese. ¿Langosta? + +[GEN1_05:GENERA1] +~g~¡Ve y liquida a González! + +[GEN1_09:GENERA1] +Te pagaré el doble, Tommy, ¡EL DOBLE! + +[GEN1_18:GENERA1] +~r~¡González ha conseguido llegar a la Jefatura de Policía! + +[GEN1_19:GENERA1] +~g~¡La policía de Vice City viene a por ti! + +[GEN1_20:GENERA1] +~g~Sube a un vehículo. + +[GEN1_21:GENERA1] +~g~Ve al~h~ taller de pintura~g~ de~h~ Vice Point~g~. + +[GEN1_22:GENERA1] +~g~Conduce tu vehículo hasta el interior del ~h~taller de pintura~w~ para perder tu ~h~nivel de se busca~w~, reparar y volver a pintar tu vehículo. El precio es ~h~100 $~g~. Esta vez es gratis. + +[GEN1_01:GENERA1] +Cuando estés corriendo, mantén pulsado ~h~~k~~PED_FIREWEAPON~~w~ para preparar un ataque cuerpo a cuerpo. + +[GEN1_02:GENERA1] +Cuando estés corriendo, mantén pulsado ~h~~k~~PED_FIREWEAPON~~w~ para preparar un ataque cuerpo a cuerpo. + +[GEN1_03:GENERA1] +Cuando estés corriendo, mantén pulsado ~h~~k~~PED_FIREWEAPON~~w~ para preparar un ataque cuerpo a cuerpo. + +[GEN1_14:GENERA1] +Suelta ~h~~k~~PED_FIREWEAPON~~w~ para atacar. + +[GEN1_15:GENERA1] +Suelta ~h~~k~~PED_FIREWEAPON~~w~ para atacar. + +[GEN1_16:GENERA1] +Suelta ~h~~k~~PED_FIREWEAPON~~w~ para atacar. + +[GEN1_23:GENERA1] +~g~Vuelve pasando por las puertas para regresar a la planta baja. + +{=================================== MISSION TABLE GENERA2 ===================================} + +[COL2_A:GENERA2] +¡Tommy! Ven, acércate. + +[COL2_B:GENERA2] +Qué buena pinta, ¿eh? ¿Hocico de tapir? + +[COL2_C:GENERA2] +No. No, gracias. + +[COL2_D:GENERA2] +Tommy, eres como una brisa de la pampa que me ha liberado de la peste de la corrupción, + +[COL2_E:GENERA2] +aunque, parece que debo llorar su paso y seguir con el negocio como siempre. + +[COL2_F:GENERA2] +Esto no me está acercando mucho a mi dinero... + +[COL2_G:GENERA2] +Tommy, amigo mío, ahora no estás en Liberty. Aquí hacemos las cosas de un modo diferente. + +[COL2_H:GENERA2] +Continuaré con mis investigaciones pero mientras tanto tengo un valioso trato que cerrar. + +[COL2_I:GENERA2] +Un favor para un amigo, Cortez. + +[COL2_J:GENERA2] +Eres un buen amigo, Tommy. Sabía que no me decepcionarías. + +[COL2_K:GENERA2] +Necesito que te encuentres con un mensajero que ha conseguido una tecnología valiosa para mí... + +[COL2_1:GENERA2] +La lluvia, está muy húmeda esta época del año... + +[COL2_2:GENERA2] +¿Qué? + +[COL2_3:GENERA2] +Ah, comment? + +[COL2_4:GENERA2] +Mira, me envía Cortez. Tan sólo dame los malditos chips. + +[COL2_5:GENERA2] +Oh... d'accord. + +[COL2_B1:GENERA2] +~g~Encuéntrate con el mensajero en el centro comercial. + +[COL2_B2:GENERA2] +~g~El mensajero está huyendo con los chips guía, ¡no le dejes escapar! + +[COL2_B3:GENERA2] +~g~Recupera los chips guía y llévaselos de vuelta al Coronel. + +[COL2_F1:GENERA2] +~r~¡Mataste al contacto! + +[COL2_F2:GENERA2] +~r~El mensajero está muerto. Coge los chips guía. + +[COL2_6A:GENERA2] +¡Alto, cerdo imperialista americano! Eso es propiedad del gobierno francés. ¡Y se acabó! + +[BLIPHLP:GENERA2] +Cuando el icono en el radar es un triángulo apuntando hacia arriba, indica que el objetivo está por encima del jugador. + +[COL2_F3:GENERA2] +~r~Los chips de orientación están en el fondo del mar. + +[COL2_F4:GENERA2] +~r~¡El mensajero ha escapado! Has fracasado en conseguir los chips de orientación. + +{=================================== MISSION TABLE GENERA3 ===================================} + +[GEN3_A:GENERA3] +Thomas, agradezco que hayas venido. + +[GEN3_B:GENERA3] +Perdóname por ir directamente a los negocios. + +[GEN3_C:GENERA3] +Díaz me ha pedido que supervise una transacción comercial poco importante. + +[GEN3_D:GENERA3] +Esperemos que vaya mejor que la última vez, ¿eh? + +[GEN3_E:GENERA3] +Por eso es por lo que pensé en ti, amigo mío. + +[GEN3_F:GENERA3] +He dejado protección en un aparcamiento de varias plantas. + +[GEN3_G:GENERA3] +Recógela... luego ve a vigilar a los hombres de Díaz en el punto de entrega. + +[GEN3_H:GENERA3] +Gracias, amigo. + +[GEN3_1:GENERA3] +Monopolizando toda la acción, ya veo... + +[GEN3_2:GENERA3] +Mira, ¿quieres dejar de seguirme a todas partes? ¿Por qué no vienes y me demuestras que vales para algo? + +[GEN3_3:GENERA3] +Podría hacerlo. Mi nombre es Lance, por cierto. + +[GEN3_5:GENERA3] +Tú debes de ser el nuevo matón de Cortez. + +[GEN3_6:GENERA3] +Hasta que surjan oportunidades mejor pagadas. + +[GEN3_7:GENERA3] +Estarán aquí en cualquier momento. Será mejor que consigamos una posición ventajosa... + +[GEN3_8:GENERA3] +¡De acuerdo! Yo iré al balcón, tú sube a ese tejado al otro lado del patio. + +[GEN3_9:GENERA3] +¡Estoy vivo! ¡Mamones! ¡Y todo gracias a ti! ¿Cómo te llamas? + +[GEN3_10:GENERA3] +Tommy. + +[GEN3_11:GENERA3] +Nos veremos pronto, ¡creo! + +[GEN3_12:GENERA3] +Mierda. ¿Dónde está Lance? + +[GEN3_14:GENERA3] +¡Tommy! ¡Necesito ayuda aquí! + +[GEN3_15:GENERA3] +¡No te preocupes, te tengo cubierto! + +[GEN3_16:GENERA3] +¡Los hombres de Díaz están siendo eliminados! + +[GEN3_19:GENERA3] +~g~¡Haitianos! ¡Están saboteando el trato! ¡Protege a Díaz! + +[GEN3_20:GENERA3] +~g~Ve al aparcamiento donde podrás recoger el arma que te dejó el Coronel. + +[GEN3_22:GENERA3] +Salud de Díaz: + +[GEN3_23:GENERA3] +~g~¡Has dejado a Lance atrás! ¡Ve a por él! + +[GEN3_25:GENERA3] +~r~¡Lance murió! + +[GEN3_28:GENERA3] +~g~Devuélvele el maletín a Díaz. + +[GEN3_29:GENERA3] +~g~Recoge el maletín y llévaselo a Díaz. + +[GEN3_30:GENERA3] +~r~¡Se escapó con el dinero! ¡Díaz te arrancará las pelotas por ésto! + +[GEN3_33:GENERA3] +~r~¡Mira adónde disparas! Se supone que tienes que proteger a Díaz y a sus hombres, ¡no dispararles! + +[GEN3_34:GENERA3] +~r~¡No va a haber ningún trato si disparas a los cubanos! + +[GEN3_35:GENERA3] +~g~¡Ha robado el dinero de Díaz! + +[GEN3_36:GENERA3] +~g~¡Pilla una moto, persíguele y recupera el dinero de Díaz! + +[GEN3_37:GENERA3] +~g~Aquí vienen los cubanos. Vigila el trato y asegúrate que Díaz y Lance están a salvo. + +[GEN3_38:GENERA3] +~r~¡Díaz ha muerto! ¡Has fallado en protegerle! + +[GEN3_39:GENERA3] +~g~Ve a tu posición estratégica en el piso de arriba. + +[GEN3_44:GENERA3] +~g~Ve con Lance al punto de entrega y vigila a Díaz. + +[GEN3_45:GENERA3] +Estarán aquí en cualquier minuto, mejor será que vayamos tomando posiciones estratégicas. + +[GEN3_40:GENERA3] { reVC update } +Para ~h~disparar hacia el frente ~w~sobre una ~h~moto ~w~pulsa ~h~~k~~VEHICLE_FIREWEAPON~~w~. + +[GEN3_41:GENERA3] { reVC update } +Para ~h~disparar hacia el frente ~w~sobre una ~h~moto ~w~pulsa ~h~~k~~VEHICLE_FIREWEAPON~~w~. + +[GEN3_46:GENERA3] +¡Mierda! + +[GEN3_47:GENERA3] +¡Tommy! + +[GEN3_48:GENERA3] +¡Maldición! + +[GEN3_49:GENERA3] +Salud de Lance: + +[GEN3_50:GENERA3] +~r~¡Has perdido el dinero de Díaz! ¡La próxima vez intenta no convertir mi dinero en cenizas! + +[GEN3_51:GENERA3] +¡Más condenados haitianos en una furgoneta apestosa! + +[GEN3_54:GENERA3] +¡No os quedéis ahí, panda de gilipollas, perseguid a ese haitiano cabrón! + +[GEN3_55:GENERA3] +¡Tommy! ¡Yo me quedo aquí a proteger a Díaz! + +[GEN3_18:GENERA3] +~g~Aquí llegan los cubanos, mantente cerca de Díaz. Asegúrate de que la negociación entre Díaz y Lance sea segura. + +[GEN3_56:GENERA3] +~r~¡Díaz ha caído en una emboscada y ha muerto! ¡La próxima vez no le pierdas de vista! + +[GEN3_57:GENERA3] +El Kruger es un rifle de asalto que te permite apuntar en primera persona manualmente. + +[GEN3_58:GENERA3] +Mantén pulsado ~h~~k~~PED_LOCK_TARGET~~w~ para ~h~apuntar~w~ con un rifle de asalto. + +[GEN3_59:GENERA3] +Mantén pulsado ~h~~k~~PED_LOCK_TARGET~~w~ para ~h~apuntar~w~ con un rifle de asalto. + +[GEN3_60:GENERA3] +Pulsa ~h~~k~~PED_FIREWEAPON~~w~ para ~h~disparar~w~ un rifle de asalto. + +[GEN3_61:GENERA3] +Pulsa ~h~~k~~PED_FIREWEAPON~~w~ para ~h~disparar~w~ un rifle de asalto. + +[GEN3_62:GENERA3] +Pulsa ~h~~k~~PED_FIREWEAPON~~w~ para ~h~disparar~w~ un rifle de asalto. + +[GEN3_63:GENERA3] +Además de realizar maniobras de acercamiento,~h~ las motos ~w~te permiten ~h~disparar hacia adelante~w~. + +[GEN3_64:GENERA3] { reVC update } +Para ~h~disparar hacia el frente ~w~sobre una ~h~moto ~w~pulsa ~h~~k~~VEHICLE_FIREWEAPON~~w~. + +[GEN3_65:GENERA3] { reVC update } +Para ~h~disparar hacia el frente ~w~sobre una ~h~moto ~w~pulsa ~h~~k~~VEHICLE_FIREWEAPON~~w~. + +[GEN3_66:GENERA3] { reVC update } +Para ~h~disparar hacia el frente ~w~sobre una ~h~moto ~w~pulsa ~h~~k~~VEHICLE_FIREWEAPON~~w~. + +[GEN3_67:GENERA3] +Para disparar hacia el frente en una moto deberás tener un subfusil. + +[GEN3_53:GENERA3] +¡Mi dinero! + +[GEN3_52:GENERA3] +¿Esos haitianos creen que pueden enfrentarse a RICARDO DÍAZ? + +{=================================== MISSION TABLE GENERA4 ===================================} + +[DETON:GENERA4] +DETONACIÓN: + +[COL4_3:GENERA4] +¡CONVOY, ALTO! + +[COL4_6:GENERA4] +¡NOS ESTÁN DISPARANDO! + +[COL4_7:GENERA4] +¡Civil, aléjese del tanque! + +[COL4_8:GENERA4] +¡DIJE, alejaos, INMEDIATAMENTE! + +[COL4_9:GENERA4] +¡POSICIONES DEFENSIVAS! + +[COL4_11:GENERA4] +- ¡Quite a esos civiles fuera de mi camino, soldado! - ¡Señor, sí, señor! + +[COL4_12:GENERA4] +¡Civil en el TANQUE! ¡DETENEDLE! + +[COL4_13:GENERA4] +Este es un convoy militar, no obstruyan nuestra ruta. + +[COL4_14:GENERA4] +Tírelo, soldado. + +[COL4_15:GENERA4] +- ¡Mueva ese vehículo civil fuera de nuestro camino! - ¡Señor! ¡Moviendo el vehículo, señor! + +[COL4_17:GENERA4] +¡Bien, PELOTÓN, MUÉVANSE! + +[COL4_18:GENERA4] +¡Hay alguien en el tanque, señor! + +[COL4_19:GENERA4] +- ¡Vaya a conseguir unos donuts, soldado! - ¡Señor, sí, señor! + +[COL4_20:GENERA4] +Blanco localizado, señor. + +[COL4_21:GENERA4] +¡FRANCOTIRADOR! + +[COL4_22:GENERA4] +Me voy de aquí. + +[COL4_23:GENERA4] +- ¡Objetivo completado! ¡Pelotón, rompan filas! - Vamos a comer unos cuantos donuts. + +[COL4_24:GENERA4] +¡Activado protocolo de seguridad Delta India Eco! ¡Iniciada autodestrucción del vehículo! + +[COL4_26:GENERA4] +¡Prepárate para morir, basura comunista! + +[COL4_B2:GENERA4] +~r~El tanque llegó a su destino a salvo! + +[COL4_B5:GENERA4] +~r~¡El tanque ha sido destruido! + +[COL4_01:GENERA4] +Díaz estaba complacido, y le gustaría verte de nuevo. + +[COL4_02:GENERA4] +¿Es eso algo bueno? + +[COL4_03:GENERA4] +¡Por supuesto! Aunque estoy empezando a pensar que Díaz fue el responsable de nuestra desafortunada pérdida... + +[COL4_04:GENERA4] +¿Qué te hace decir eso? + +[COL4_05:GENERA4] +Uno no esgrime acusaciones contra un hombre como Díaz... Solo estoy pensando en voz alta... + +[COL4_06:GENERA4] +No importa. Tengo una propuesta de la que te podrías beneficiar... + +[COL4_07:GENERA4] +No tengo tiempo para hacer más recados, Cortez. + +[COL4_08:GENERA4] +Yo habría pensado que un hombre con unas deudas tan grandes estaría ansioso por encontrar oportunidades. Por favor, Tommy, al menos escúchame. + +[COL4_09:GENERA4] +Adelante... + +[COL410:GENERA4] +Tengo un comprador para una pieza de equipo militar que está siendo transportada a través de la ciudad. Recógela para mí... + +[COL411:GENERA4] +y una vez que la tengas, quiero que me llames inmediatamente, entonces... + +[COL4_B4:GENERA4] +~g~El tanque está bloqueado. Busca un modo de engañar a los ocupantes. + +[COL4_1:GENERA4] +- ¿Que qué pasa con el artillero? - ¡No lo sé, señor! + +[COL4_4:GENERA4] +- Ve arriba soldado. - ¡Sí, señor! + +[COL4_B1:GENERA4] +~g~Ve y adquiere el vehículo militar que se está paseando por la ciudad. + +[COL4_B3:GENERA4] +~g~Deja el tanque en el escondite del Coronel antes que se autodestruya. + +[COL4_B6:GENERA4] +~g~¡Encuentra el modo de robar el tanque! + +[COL4_B7:GENERA4] +~g~Conduce el tanque al garaje. + +[COL4_B8:GENERA4] +~g~Bájate del tanque y sal del garaje. + +{=================================== MISSION TABLE GENERA5 ===================================} + +[COL5A_1:GENERA5] +Las circunstancias fuerzan una apresurada partida, amigo. + +[COL5A_2:GENERA5] +¿Cuál es el problema? + +[COL5A_3:GENERA5] +Los franceses quieren recuperar la tecnología de sus misiles y después del último incidente, + +[COL5A_4:GENERA5] +siento que es momento de encontrar puertos más seguros. + +[COL5A_5:GENERA5] +¿No sería más seguro volar? + +[COL5A_6:GENERA5] +Estaría muerto antes de alcanzar el mostrador de facturación de equipajes. Además, necesito sacar del país mi mercancía. + +[COL5A_7:GENERA5] +¿Necesitas otro guardaespaldas? + +[COL5A_8:GENERA5] +Tú, amigo mío, vales por diez guardaespaldas... + +[COL5B_1:GENERA5] +Thomas, me has protegido y servido bien. + +[COL5B_2:GENERA5] +Pero ahora debes dejarnos antes de que lleguemos a mar abierto. + +[COL5B_4:GENERA5] +Gracias, Coronel. + +[COL5B_5:GENERA5] +Una petición más, mientras estoy fuera, ¿podrías vigilar a Mercedes por mí? + +[COL5B_6:GENERA5] +Creo que ella puede cuidarse por sí misma, pero seguro, la vigilaré. + +[COL5B_7:GENERA5] +Gracias, amigo mío. Hasta luego. + +[COL5B_8:GENERA5] +Adiós, amigo. + +[COL5_7:GENERA5] +¡Deja de dispararme! + +[COL5_9:GENERA5] +¡Tommy, haz que dejen de dispararme! + +[COL5_10:GENERA5] +¡Tengo inmunidad diplomática! + +[COL5_11:GENERA5] +¡No disparen, soy un Coronel! + +[COL5_12:GENERA5] +Thomas, mátales, mi país te adorará. + +[COL5_13:GENERA5] +¡Tommy, los franceses nos superan! + +[COL5_14:GENERA5] +Tommy, mire a donde mire, hay franceses, ¡lo odio! + +[COL5_15:GENERA5] +Tommy, ¿cómo estás? + +[COL5_16:GENERA5] +¡Ésto es por Piaf y Gainesbourg y por vuestro estúpido pan francés! + +[COL5_1:GENERA5] +¡A babor! ¡A babor! + +[COL5_2:GENERA5] +¡Están atacando desde estribor! + +[COL5_3:GENERA5] +¡El puente está ahí delante! + +[COL5_4:GENERA5] +¡Tienen un helicóptero! + +[COL5_B1:GENERA5] +~g~Protege al Coronel y su yate a toda costa. + +[COL5_B2:GENERA5] +~g~Ponte delante y despeja la ruta del yate del Coronel. + +[COL5_B3:GENERA5] +~r~¡El Coronel está muerto! + +[COL5_B4:GENERA5] +~g~Destruye el helicóptero de ataque. + +[COL5B_3:GENERA5] +Bajaré mi lancha personal. Quédatela, amigo, en señal de mi agradecimiento. + +[COL5_B5:GENERA5] +~g~Dispara para abatir los helicópteros, no pongas en peligro el yate. + +[COL5_B6:GENERA5] +~g~Te has quedado sin munición, consigue más de las escaleras en la cubierta superior. + +[COL5_B7:GENERA5] +~g~Te estás quedando sin salud, consigue más de las escaleras en la cubierta superior. + +{=================================== MISSION TABLE HAIT1 ===================================} + +[HAM1_A:HAIT1] +¿Hola? ¿Hola? + +[HAM1_B:HAIT1] +Entra, cielo, y descansa los pies. + +[HAM1_C:HAIT1] +Tú debes de ser el gran hombre malo sobre el que ha estado hablando mi abuelo. + +[HAM1_D:HAIT1] +Me cuenta cosas sobre ti, ya sabes, cuando me visita, + +[HAM1_E:HAIT1] +y sobre los otros que te esperan. + +[HAM1_F:HAIT1] +Bien, todos llevamos muertos mucho tiempo, pero tú... + +[HAM1_G:HAIT1] +No me gustaría estar en tu pellejo. + +[HAM1_H:HAIT1] +Recibí un mensaje. Para que viniese aquí. + +[HAM1_I:HAIT1] +¿Puedes oírles? + +[HAM1_J:HAIT1] +Están diciendo tu nombre, deben quererte mucho, ¿no crees? + +[HAM1_K:HAIT1] +Ahora ayudarás a la tía Poulet y quizás ella te ayude. + +[HAM1_L:HAIT1] +Quizás ella pueda darte un pequeño talismán después de todo esto. + +[HAM1_M:HAIT1] +¿Darte algo de magia para echar el mal de ojo a la policía? + +[HAM1_N:HAIT1] +Mira, esto es todo muy... ¿darme qué? + +[HAM1_O:HAIT1] +Yo, yo, creo que recibí la dirección equivocada... + +[HAM1_P:HAIT1] +Haz esto por mí, Tommy... + +[HAM1_Q:HAIT1] +Los cubanos, tontos orgullosos y desagradables, + +[HAM1_R:HAIT1] +han estado causando problemas a mis encantadores chicos haitianos. + +[HAM1_S:HAIT1] +Ahora le han dicho a la policía donde he estado almacenando mis polvos. + +[HAM1_T:HAIT1] +Ellos piensan que es farlopa, pardillos. + +[HAM1_U:HAIT1] +Ahora sé un buen chico, Tommy, y ve a conseguir los polvos para la tía Poulet. + +[HAM1_V:HAIT1] +Sí, sí, seguro, seguro. + +[HAM1_1:HAIT1] +~g~Los polis se están acercando a nuestros escondites. Ve y consíguelos antes que ellos lo hagan. + +[HAM1_2:HAIT1] +~r~¡Los polis llegaron primero al escondite! + +[HAM1_3:HAIT1] +~g~¡Lleva este material de vuelta al escondite! + +[HAM1_4:HAIT1] +~g~¡Bien! ¡Ahora el siguiente! + +[HAM1_6:HAIT1] +~r~¡Ese almacén está destruido, idiota! + +[HAM1_7:HAIT1] +~g~¡Los polis han conseguido nuestro alijo! ¡Recupéralo antes de que se marchen! + +[HAM1_8:HAIT1] +~g~Los polis están de camino para recoger el alijo, ¡date prisa! + +[HAT_1A:HAIT1] +~g~¡No muevas ni un solo dedo! + +{=================================== MISSION TABLE HAIT2 ===================================} + +[HAT2_B1:HAIT2] +~g~Ve hasta la camioneta que contiene las bombas aéreas. + +[HAT2_B2:HAIT2] +Mata a los cubanos... + +[HAT2_B4:HAIT2] +¡Y destruye sus barcos! + +[HAT2_B5:HAIT2] +~g~Los cubanos están huyendo. ¡No les dejes escapar! + +[HAT2_B6:HAIT2] +~r~¡El avión RC está yendo demasiado lejos del alcance! + +[HAT2_B7:HAIT2] +~g~Uno de los cubanos está escapando en un coche. ¡No dejes ningún testigo! + +[HAT2_B8:HAIT2] +~r~¡No te quedan aviones RC! + +[HAT2_B9:HAIT2] +Aviones RC: + +[HAT2_1:HAIT2] +Oh. Lo siento, debo tener la dirección equivocada... + +[HAT2_2:HAIT2] +Bueno, también podrías entrar y descansar los pies y tomarte una taza de té. + +[HAT2_3:HAIT2] +¿Tienes algo ahí para mí? + +[HAT2_4:HAIT2] +Sí... + +[HAT2_5:HAIT2] +Este lugar me parece familiar. Un olor de la niñez... un deja vu... + +[HAT2_6:HAIT2] +Bien, Tommy, te voy a susurrar un pequeño recado para que lo hagas. Escúchame bien, ¿vale? + +[HAT2_7:HAIT2] +Te pareces a alguien que yo... + +[HAT2_8:HAIT2] +Los cubanos tienen barcos rápidos que usan para cruzar el charco cargados de polvo. + +[HAT2_9:HAIT2] +Es su sustento. + +[HAT2_10:HAIT2] +Mi sobrino ha estado preparando pequeñas bombas aéreas para eliminarles. + +[HAT2_11:HAIT2] +Vuela los barcos y conviértelos en madera de ataúd. + +[HAT2_12:HAIT2] +Muchas gracias por el té. + +[HAT2_B3:HAIT2] { reVC update } +Pulsa ~h~~k~~VEHICLE_FIREWEAPON~~w~ para soltar una bomba. Pulsa ~h~~k~~VEHICLE_ENTER_EXIT~~w~ para cancelar. + +{=================================== MISSION TABLE HAIT3 ===================================} + +[HAM3_A:HAIT3] +¿Hola? Hola, eh... Estaba buscando a alguien por aquí... + +[HAM3_B:HAIT3] +Pareces hambriento, Tommy, + +[HAM3_C:HAIT3] +¿Te conozco? + +[HAM3_D:HAIT3] +Silencio. + +[HAM3_E:HAIT3] +Una cosa más y te podré dejar marchar, Tommy. + +[HAM3_F:HAIT3] +Mis chicos están en guerra con los cubanos. + +[HAM3_G:HAIT3] +Pero sin armas. + +[HAM3_H:HAIT3] +Pero los cubanos tienen una sorpresa por llegar. + +[HAM3_I:HAIT3] +Mientras combaten en las calles, tú tomarás este rifle y los matarás en medio del alboroto. + +[HAM3_J:HAIT3] +Nadie te verá, nadie te oirá. + +[HAM3_K:HAIT3] +Tommy, si haces esto por mí, ya no estarás atado a los lazos de mi delantal. + +[HAM3_1:HAIT3] +~g~Debemos ganar esta batalla. Si todos los haitianos mueren, perdemos nosotros. + +[HAM3_3:HAIT3] +~g~Espero que los cubanos hagan trampas así que permanece alerta. + +[HAM3_4:HAIT3] +~r~¡Te han visto! ¡La misión ha fracasado! + +[HAM3_5:HAIT3] +~g~Debes matar a los cubanos desde lejos. No deben verte. + +[HAM3_8:HAIT3] +~g~¡Los haitianos están muriendo! Mejora tu puntería. + +[HAM3_7:HAIT3] +~g~¡Cuidado! Los cubanos han traído refuerzos. ¡¡Acaba con todos ellos!! + +[HAM3_2:HAIT3] +~r~¡Los haitianos han muerto! + +[HAM3_L:HAIT3] +Vale, tía... + +{=================================== MISSION TABLE HOTEL ===================================} + +[INTB_A:HOTEL] +¡Tommy! Tommy, ha pasado tanto tiempo. + +[INTB_B:HOTEL] +Hola, Sonny. + +[INTB_C:HOTEL] +Lo sé, lo sé. Te abruma la emoción. + +[INTB_D:HOTEL] +Quince años... si parece que fue ayer. + +[INTB_E:HOTEL] +Supongo que es cuestión de perspectiva. + +[INTB_F:HOTEL] +Eh, estar en el talego por la familia no es agradable, + +[INTB_G:HOTEL] +aunque la familia cuida de los suyos, ¿no es verdad? + +[INTB_H:HOTEL] +Y bien, cómo fue el negocio... ¿estás sentado en una pila de oro blanco? + +[INTB_I:HOTEL] +Mira, Sonny, nos tendieron una trampa. El negocio fue una emboscada. Harry y Lee están muertos. + +[INTB_J:HOTEL] +Me estás tomando el pelo, ¿no? Tommy. Dime que aún tienes el dinero. + +[INTB_K:HOTEL] +No Sonny... no tengo el dinero. + +[INTB_L:HOTEL] +Ése era mi dinero, Tommy, ¡mi dinero! + +[INTB_M:HOTEL] +¡Espero que no me andes jodiendo, Tommy, porque sabes que soy un hombre con el que no se puede jugar! + +[INTB_N:HOTEL] +Espera Sonny. + +[INTB_O:HOTEL] +Tienes mi garantía personal de que voy a conseguir recuperar el dinero y el alijo. + +[INTB_P:HOTEL] +Y te voy a enviar por correo las pelotas de los responsables. + +[INTB_Q:HOTEL] +Eh, ya lo sé. No eres tonto, Tommy, pero te prevengo, yo tampoco lo soy. + +[INTB_R:HOTEL] +Si se tratase de cualquier otro, ya estarías MUERTO. + +[INTB_S:HOTEL] +Pero como se trata de ti, como hemos hecho historia, voy a dejar que te ocupes de esto. + +[INTB_T:HOTEL] +Mira, Sonny, tienes mi palabra. + +[INTB_U:HOTEL] +Estaremos en contacto. + +{=================================== MISSION TABLE ICECRE1 ===================================} + +[ICC1_1:ICECRE1] +~g~Utiliza la furgoneta de los helados para distribuir perica en Vice City. + +[ICC1_3:ICECRE1] +~g~Recibirás dinero por cada venta que hagas, pero cuantas más transacciones hagas más atraerás la atención de la policía. + +[ICC1_4:ICECRE1] +~g~No hay ningún cliente en esta zona, inténtalo en otra. + +[ICC1_5:ICECRE1] +Negocios hechos: + +[ICC1_6:ICECRE1] +~g~Utiliza la furgoneta Mr. Whoopee para distribuir los productos Cherry Popper por Vice City. + +[ICC1_7:ICECRE1] +~g~Por cada transacción que hagas recibirás dinero, aunque cuantas más operaciones lleves a cabo más atención provocarás de la policía. + +[ICC1_8:ICECRE1] +~g~Para llevar a cabo el negocio ~h~aparca la furgoneta, ~g~y pulsa el ~h~~k~~VEHICLE_HORN~ ~g~para que suene la música que llamará la atención de la gente. + +[ICC1_9:ICECRE1] +~g~A las bandas locales no les gustará que hagas negocios en su territorio así que si haces esto, prepárate para hostilidades. + +[ICC1_10:ICECRE1] +~g~Has hecho ~1~ tratos! + +[ICC1_11:ICECRE1] +~g~Has hecho ~1~ trato! + +[ICC1_12:ICECRE1] +¡PROPIEDAD ADQUIRIDA! + +[ICC1_13:ICECRE1] +~r~¡No conseguiste ningún trato! + +[ICC1_14:ICECRE1] +FÁBRICA DE HELADOS CONSOLIDADA + +[ICC1_15:ICECRE1] +~g~La fábrica de helados generará ahora unos ingresos máximos de hasta ~1~ $. Asegúrate de recaudarlos regularmente. + +[ICC1_2:ICECRE1] +~g~Aparca la furgoneta y pulsa ~h~~k~~VEHICLE_HORN~~w~ para que suene la música indicando a los clientes que estás listo para hacer empezar. + +[ICC1_16:ICECRE1] +~g~Utiliza la furgoneta Mr. Whoopee para distribuir los productos Cherry Popper por Vice City. + +[ICE_AT1:ICECRE1] +FÁBRICA DE HELADOS CONSOLIDADA + +[ICE_AT2:ICECRE1] +~g~La fábrica Cherry Popper generará ahora unos ingresos hasta un máximo de ~1~ $. Asegúrate de recaudarlos de manera regular. + +[ICC1_17:ICECRE1] +Misión de Distribución finalizada + +[ICC1_18:ICECRE1] +Venta total de helados: ~1~ $ + +[ICC1_19:ICECRE1] +Total de negocios hechos: ~1~ + +{=================================== MISSION TABLE ICECUT ===================================} + +[ICC1_A:ICECUT] +¿Quién eres tú? + +[ICC1_B:ICECUT] +El nuevo propietario. + +[ICC1_C:ICECUT] +¿Fuiste ahora o en cualquier momento un niño? + +[ICC1_D:ICECUT] +¿De qué estás hablando? + +[ICC1_E:ICECUT] +¿Fuiste niño? + +[ICC1_F:ICECUT] +¡Sí! ¡Calma! ¿Qué pasa contigo? + +[ICC1_G:ICECUT] +Lo sabía. Un niño. + +[ICC1_H:ICECUT] +¡Un maldito, apestoso, lloriqueante, mocoso, vil, vomitivo y pequeño bebé chillón! + +[ICC1_I:ICECUT] +Bebés... Criaturas repugnantes, horribles y espantosas. + +[ICC1_J:ICECUT] +Mami no te quiere. ¡mierdecilla! + +[ICC1_K:ICECUT] +Cálmate. + +[ICC1_L:ICECUT] +ODIO los bebés, odio los niños. + +[ICC1_M:ICECUT] +Son unos pequeños guarros, llorones, mocosos, perversos y vomitivos... + +[ICC1_N:ICECUT] +¡Ya es suficiente! + +[ICC1_O:ICECUT] +¿Qué pasa contigo? + +[ICC1_P:ICECUT] +¿Fabricas helado, de acuerdo? Es básicamente para los niños. + +[ICC1_Q:ICECUT] +¿Qué clase de psicópata eres tú? + +[ICC1_R:ICECUT] +Solo para que lo entienda, ¿para qué hacer felices a los niños si los odias? + +[ICC1_S:ICECUT] +Oh, estúpido, apestoso, lloriqueante... + +[ICC1_T:ICECUT] +¡Cállate! + +[ICC1_U:ICECUT] +¡Mocoso! + +[ICC1_V:ICECUT] +El helado es una tapadera. + +[ICC1_W:ICECUT] +Distribuimos otros productos no lácteos. + +[ICC1_X:ICECUT] +Y si veo un niño, le saco provecho. + +[ICC1_Y:ICECUT] +¿Verdad, niños? Sí, sí, lo hago. Mamá no os quiere. + +[ICC1_Z:ICECUT] +¡Os ODIA! + +[ICC1_ZA:ICECUT] +¡PROPIEDAD ADQUIRIDA! + +{=================================== MISSION TABLE INTRO ===================================} + +[INT1_A:INTRO] +Tommy Vercetti... Mierda. + +[INT1_B:INTRO] +No pensé que le fueran a soltar nunca. + +[INT1_C:INTRO] +Mantuvo la cabeza gacha, ayuda a la gente a olvidar. + +[INT1_D:INTRO] +La gente lo recordará antes de lo que crees. + +[INT1_E:INTRO] +Cuando le vean paseando por las calles de su barrio. + +[INT1_F:INTRO] +Será malo para el negocio. + +[INT1_G:INTRO] +Bien, ¿qué vamos a hacer, Sonny? + +[INT1_H:INTRO] +Le tratamos como a un viejo amigo y le tenemos ocupado fuera de la ciudad. ¿De acuerdo? + +[INT1_I:INTRO] +Hemos estado hablando de expandirnos hacia el sur. ¿Verdad? + +[INT1_J:INTRO] +Hoy en día Vice City es oro de veinticuatro quilates. + +[INT1_K:INTRO] +Los colombianos, los mejicanos, demonios, + +[INT1_L:INTRO] +incluso esos refugiados cubanos se están repartiendo un buen pedazo de la acción. + +[INT1_M:INTRO] +Pero todo es por la nieve, Sonny. + +[INT1_N:INTRO] +¡Ninguna de las familias tocará esa mierda! + +[INT1_O:INTRO] +Los tiempos cambian. + +[INT1_P:INTRO] +Las familias no pueden seguir dando la espalda mientras nuestros enemigos recogen las recompensas. + +[INT1_Q:INTRO] +Así que enviaremos a alguien para que nos hagan el trabajo sucio + +[INT1_R:INTRO] +y tranquilamente nos llevaremos un buen cacho. ¿Vale? + +[INT1_S:INTRO] +¿Quién es nuestro contacto allí? + +[INT1_T:INTRO] +Ken Rosenberg, un estúpido abogado. + +[INT1_U:INTRO] +¿Cómo va a atar corto a Vercetti? + +[INT1_V:INTRO] +No necesitamos que lo haga. + +[INT1_W:INTRO] +Simplemente le soltaremos en Vice City + +[INT1_X:INTRO] +y le daremos un poco de dinero para que empiece. ¿De acuerdo? + +[INT1_Y:INTRO] +Le damos unos cuantos meses. + +[INT1_Z:INTRO] +Luego vamos, + +[INT1_A1:INTRO] +y le hacemos una pequeña visita, ¿de acuerdo? + +[INT1_A2:INTRO] +Para ver cómo le va. + +[INT2_A:INTRO] +¡Eh, eh, tíos! ¡Aquí, eh, Ken Rosenberg! ¡Je, je, genial! + +[INT2_B:INTRO] +Bueno, voy a llevaros a la reunión, ¿vale? + +[INT2_C:INTRO] +He hablado con los proveedores, y ellos están muy... + +[INT2_D:INTRO] +interesados en empezar una relación de negocios, así que... + +[INT2_E:INTRO] +si todo esto va bien, deberíamos... + +[INT2_F:INTRO] +empezar a obtener beneficios, lo cual es, ya sabes... + +[INT2_G:INTRO] +Bueno. + +[INT2_H:INTRO] +Entonces. Son hermanos, ¿vale? + +[INT2_I:INTRO] +Uno dirige el negocio, + +[INT2_J:INTRO] +y el otro se encarga de los vuelos. + +[INT2_K:INTRO] +Ahora operan fuera de Méjico + +[INT3_A:INTRO] +Bien, son los del helicóptero. + +[INT3_B:INTRO] +De acuerdo, este es el trato. + +[INT3_C:INTRO] +Quieren un intercambio directo en campo abierto. + +[INT3_D:INTRO] +¿De acuerdo? De acuerdo, permanece firme, vamos. + +[INT3_E:INTRO] +De acuerdo, ahora con cuidado. + +[INT3_F:INTRO] +Estoy aquí. ¡El coche está en marcha, nena! + +[INT3_G:INTRO] +¿Lo tienes? + +[INT3_H:INTRO] +Colombiana, 100% con un grado de pureza A, amigo. + +[INT3_I:INTRO] +¿Los verdes? + +[INT3_J:INTRO] +De diez y de veinte... usados. + +[INT3_L:INTRO] +¡Vamos, fuera de aquí! ¡Arranca! + +[INT4_A:INTRO] +¡Jodidos! ¡Estamos jodidos! + +[INT4_B:INTRO] +Muy típico, + +[INT4_C:INTRO] +saco la cabeza del agujero un jodido segundo, + +[INT4_D:INTRO] +¡Y el destino me echa la mierda a la cara! + +[INT4_E:INTRO] +Bueno, ¡jódete! + +[INT4_F:INTRO] +Cierra el pico y deja de quejarte. Estás vivo, ¿no? + +[INT4_G:INTRO] +Déjame justo aquí. + +[INT4_H:INTRO] +Ve y abandona el coche y luego vete a dormir un poco. + +[INT4_I:INTRO] +Mañana me pasaré por tu oficina y podemos empezar a solucionar esto. + +[INT4_J:INTRO] +De acuerdo, es una buena idea, iré a dormir un poco. + +[INT4_K:INTRO] +¿Qué vas a hacer tú. + +[INT4_L:INTRO] +Me las arreglaré para volver a mi hotel. + +[INT4_M:INTRO] +A despejar la mente y a pensar sobre esta mierda. + +[INT4_N:INTRO] +Vale. + +[INTRO1:INTRO] +Saco la cabeza del agujero un jodido segundo y el destino, ¡me echa la mierda en la cara! + +[INTRO2:INTRO] +Vete a dormir un poco. + +[INTRO3:INTRO] +¿Qué es lo que vas a hacer? + +[INTRO4:INTRO] +Mañana me pasaré por tu oficina y empezaremos a solucionar todo este desorden. + +[INT3_K:INTRO] +Creo que hemos llegado a un acuerdo, amigo mío. + +[INT3_M:INTRO] +Déjame ver. + +[INT2_L:INTRO] +no, no, no, espera... + +[INT3_N:INTRO] +¡Mierda! + +{=================================== MISSION TABLE KENT1 ===================================} + +[KPM1_A:KENT1] +A ver tío, te voy a salvar el culo, colega. + +[KPM1_B:KENT1] +¿De qué coño me estás hablando? + +[KPM1_C:KENT1] +Conoces a ese bastardo de Díaz, Don Farlopa. + +[KPM1_D:KENT1] +Tiene a tu colega, Lance. Dicen que tu amigo intentó atacarle por sorpresa... + +[KPM1_E:KENT1] +pero no fue lo suficientemente sorprendente, si entiendes lo que te quiero decir. + +[KPM1_F:KENT1] +¿A dónde le llevó? + +[KPM1_G:KENT1] +¡Tranquilo! Le hicieron cruzar la ciudad hasta el desguace. + +[KPM1_H:KENT1] +Maldita sea... ¡Chalado! + +[KPM1_2:KENT1] +~r~¡Se suponía que debías sacar con vida a Lance! + +[KPM1_3:KENT1] +SALUD DE LANCE: + +[RESC_1:KENT1] +¿Crees que puedes usar un arma? + +[RESC_2:KENT1] +Sí... supongo... yo también me alegro de verte. + +[RESC_3:KENT1] +Salgamos de aquí. + +[RESC_4:KENT1] +Ahí va todo mi cuidadoso plan, directo a la mierda, gracias a ti. La jodiste bien. + +[RESC_5:KENT1] +Mató a mi hermano. ¿Qué esperabas que hiciese, cortarle el césped? + +[RESC_6:KENT1] +Vamos a tener que eliminar a ese mamón de Díaz antes de que él nos elimine a nosotros. + +[RESC_7:KENT1] +Haz que te curen y encuéntrate conmigo en el puente que va a Star Island, ¿de acuerdo? + +[RESC_8:KENT1] +De acuerdo, entendido. + +[KPM1_1:KENT1] +~g~¡Lance está siendo retenido en el desguace, ve y libérale! + +[KPM1_4:KENT1] +~g~¡Lleva a Lance al hospital! + +[M_PASSN:KENT1] +¡MISIÓN SUPERADA! + +[KPM1_5:KENT1] +~g~¡Los hombres de Díaz te están buscando! Lleva a Lance al hospital. + +{=================================== MISSION TABLE KICKSTT ===================================} + +[KICK1_2:KICKSTT] +~r~¡No volviste a la moto lo suficientemente rápido! + +[KICK1_7:KICKSTT] +~r~¡Has destrozado la moto! + +[KICK1_8:KICKSTT] +~g~¡Sube a la moto! + +[KICK1_T:KICKSTT] +TIEMPO EMPLEADO: + +[KICKTM:KICKSTT] +~b~TIEMPO DE PRUEBA: ~1~:~1~ + +[KICKTM2:KICKSTT] +~b~TIEMPO DE PRUEBA: ~1~:0~1~ + +[GETBIKE:KICKSTT] +~g~Tienes ~1~ segundos para volver a subir a una moto antes de que termine la misión. + +[KICK1_1:KICKSTT] +~g~Completa el circuito lo más rápidamente posible. + +[KICK1_6:KICKSTT] +~g~¡Bien hecho! + +[KICK_10:KICKSTT] +~g~Utiliza la Sanchez para completar el circuito pasando por todos los puntos de control. + +[KICK_12:KICKSTT] +~r~¡La has cagado! + +[KICK_13:KICKSTT] +~r~¡Has tardado mucho tiempo! + +[KICK_11:KICKSTT] +~g~Para abandonar la misión, sitúate en el ~q~marcador rosa~g~. + +{=================================== MISSION TABLE LAWYER1 ===================================} + +[LAW1_A:LAWYER1] +Ve a dormir un poco, dice... + +[LAW1_B:LAWYER1] +¡Llevo sentado en esta silla toda la noche con las luces apagadas y bebiendo café! + +[LAW1_C:LAWYER1] +Esto es un desastre. ¡Estamos muy jodidos, tío! + +[LAW1_D:LAWYER1] +Estos gorilas, escúchame, van a venir aquí a arrancarme la cabeza. ¡Es ridículo! + +[LAW1_E:LAWYER1] +¡NO fui a la universidad para ésto! De acuerdo, ¿ahora qué coño vamos a hacer? + +[LAW1_F:LAWYER1] +Cállate, siéntate y relájate. Te diré lo que vamos a hacer. + +[LAW1_G:LAWYER1] +Vas a descubrir quién se llevó nuestra nieve... y después voy a cargármelos. + +[LAW1_H:LAWYER1] +Es una buena idea. Es una idea GENIAL. Déjame pensar, déjame pensar, déjame pensar. + +[LAW1_I:LAWYER1] +¡Oh! Está este Coronel retirado, el coronel Juan García Cortez. + +[LAW1_J:LAWYER1] +Él es el que me ayudó a montar esta operación + +[LAW1_K:LAWYER1] +bien lejos de los matones establecidos de Vice City. ¿Entendido? + +[LAW1_L:LAWYER1] +Bien, escucha. Está dando una fiesta en su lujoso yate en la bahía + +[LAW1_M:LAWYER1] +y todos los hombres más importantes de Vice City van a estar allí. + +[LAW1_N:LAWYER1] +Tengo invitación, por supuesto que tengo invitación, + +[LAW1_O:LAWYER1] +pero no sueñes que vaya a asomar la cabeza por esa puerta... ¡ni lo sueñes! + +[LAW1_P:LAWYER1] +¡Te lo dije, cállate! Iré yo mismo... + +[LAW1_Q:LAWYER1] +A mí también me gusta el estilo de 1978, pero esto no va a ser una fiesta con cerveza y tías en pelotas. + +[LAW1_R:LAWYER1] +Quiero decir, sin ánimo de ofender, creo que podrías hacer que la gente se volviese a mirar por razones equivocadas. + +[LAW1_S:LAWYER1] +¿Qué hay de malo con cómo voy vestido? + +[LAW1_T:LAWYER1] +Vale, mira, ten. Pásate por donde Rafael, dile que te envío yo, hará que parezcas respetable. + +[LAW1_U:LAWYER1] +Bien, ve, vamos... + +[LAWP_1:LAWYER1] +Buenas noches. + +[LAWP_2:LAWYER1] +Tengo entendido que viene de parte del Sr. Rosenberg, + +[LAWP_3:LAWYER1] +Espero que ningún problema reciente le haya afectado a su salud física, o uh, + +[LAWP_4:LAWYER1] +o mental, Sr... ¿eh? + +[LAWP_5:LAWYER1] +Vercetti. Tan sólo tiene un poco de... agorafobia. + +[LAWP_6:LAWYER1] +Excelente, excelente. ¿Y usted? + +[LAWP_7:LAWYER1] +Yo solo quiero mi farlopa. + +[LAWP_8:LAWYER1] +Ah. Ha sido un desgraciado cúmulo de circunstancias para todos los interesados. + +[LAWP_9:LAWYER1] +Por supuesto, he iniciado mis propias pesquisas + +[LAWP_10:LAWYER1] +pero un asunto tan delicado llevará tiempo. + +[LAWP_11:LAWYER1] +Quizás hablemos más tarde. ¿Eh? + +[LAWP_12:LAWYER1] +Mientras tanto, permítame presentarle a mi hija. + +[LAWP_13:LAWYER1] +¡Mercedes! + +[LAWP_14:LAWYER1] +Cara mía, ¿podrías acompañar a nuestro invitado mientras atiendo a mis obligaciones? + +[LAWP_15:LAWYER1] +Por supuesto, papá. + +[LAWP_16:LAWYER1] +Por favor, discúlpeme. + +[LAWP_17:LAWYER1] +¿Mercedes? + +[LAWP_18:LAWYER1] +Intenta acostumbrarte. + +[LAWP_19:LAWYER1] +En fin, déjame presentarte a algunos de nuestros invitados más distinguidos... + +[LAWP_20:LAWYER1] +Ese es nuestro congresista Alex Shrub con la sonriente estrella de la silicona Candy Suxxx... + +[LAWP_21:LAWYER1] +¿Conoces a mi encantadora esposa, Laura? ¿No? + +[LAWP_22:LAWYER1] +Bueno, desafortunadamente ella está en Alabama. Te presento a Candy. + +[LAWP_23:LAWYER1] +Y por ahí tenemos a la estirada estrella de las Mambas de Vice City, BJ. + +[LAWP_24:LAWYER1] +Siempre tan encantador. + +[LAWP_25:LAWYER1] +Le paré en seco, lo hice, ¡y le dejé en una silla de ruedas! + +[LAWP_26:LAWYER1] +¡Ja, ja, ésa es buena! + +[LAWP_27:LAWYER1] +Bien, ahora estoy mirando una verdadera propiedad de primera. + +[LAWP_28:LAWYER1] +Y ese anfibio al lado de la piscina es Jezz Torrent, + +[LAWP_29:LAWYER1] +cantante principal de Love Fist. + +[LAWP_30:LAWYER1] +¿Sabéis cómo juegan al ping-pong en Tailandia? + +[LAWP_31:LAWYER1] +Dejad que os lo cuente, + +[LAWP_32:LAWYER1] +¡no hace falta una pala precisamente! ¿entendéis lo que quiero decir? + +[LAWP_33:LAWYER1] +Impotente. + +[LAWP_34:LAWYER1] +Y el trío charlatán. + +[LAWP_35:LAWYER1] +Esa glándula sudorípara durmiente es la mano derecha de papá, González + +[LAWP_36:LAWYER1] +y los otros dos son el pastor Richards + +[LAWP_37:LAWYER1] +y el director de cine seudointelectual, Steve Scott. + +[LAWP_38:LAWYER1] +Pasión con las invasoras ninfómanas, + +[LAWP_39:LAWYER1] +entonces aparece el tiburón gigante y... + +[LAWP_40:LAWYER1] +¡Les arranca las pollas de un mordisco! + +[LAWP_41:LAWYER1] +Ja, bien. Nunca has visto nada igual, ¿Verdad? + +[LAWP_42:LAWYER1] +¡Coronel! + +[LAWP_43:LAWYER1] +¡Sus fiestas tienen siempre un gran éxito! + +[LAWP_44:LAWYER1] +Sólo puedo pedir disculpas por mi tardía llegada. + +[LAWP_45:LAWYER1] +Ah, de nada amigo. ¿Cómo nos encontramos? + +[LAWP_46:LAWYER1] +Nuestro negocio es muy estresante, siempre intentan desbancarnos. + +[LAWP_47:LAWYER1] +Hay un momento para recompensar a los amigos de uno y para liquidar a los enemigos, amigo. + +[LAWP_48:LAWYER1] +¿Quién es el bocazas? + +[LAWP_49:LAWYER1] +Ricardo Díaz, alias Don Farlopa. + +[LAWP_50:LAWYER1] +¡Mercedes! + +[LAWP_51:LAWYER1] +Oh, estaba a punto de llevar a mi amigo de vuelta a la ciudad. + +[LAWP_52:LAWYER1] +¡En otro momento, Ricardo! + +[LAWP_53:LAWYER1] +Salgamos de aquí. + +[LAWP_54:LAWYER1] +Mejor llévame al club Pole Position. + +[LAW1_2:LAWYER1] +~g~Ve al barco del Coronel. + +[LAW1_4:LAWYER1] +~r~¡Mataste a la hija del Coronel! + +[LAW1_5:LAWYER1] +¿Trabajarás para mi padre? + +[LAW1_6:LAWYER1] +Quizás. + +[LAW1_7:LAWYER1] +¿Te importa que pose mi mano en tu regazo? + +[LAW1_8:LAWYER1] +Quizás... + +[LAW1_9:LAWYER1] +Es tan difícil tener un padre rico y poderoso. Vamos. + +[LAW1_10:LAWYER1] +¡Nos vemos, guapo! + +[LAW1_11:LAWYER1] +Estoy seguro. + +[LAW1_12:LAWYER1] +Bonita moto. + +[LAW1_13:LAWYER1] +¡No! ¡Mi moto! + +[LAW1_3:LAWYER1] +~g~Lleva a la hija del Coronel al club Pole Position. + +[HELP20:LAWYER1] +Ve al icono de la ~h~camiseta~w~ que hay en el radar para encontrar la tienda de Rafael. + +[LAW1_14:LAWYER1] +¡Guau!, Me encantaría probar tu moto. + +[LAW1_15:LAWYER1] +Sí pequeño, pues recógela de Howlin' Pete's + +{=================================== MISSION TABLE LAWYER2 ===================================} + +[LAW2_A:LAWYER2] +¡Ah! Espero que te lo estés pasando bien. Porque yo me estoy volviendo loco de preocupación. ¿Qué has descubierto? + +[LAW2_B:LAWYER2] +Que hay más criminales en esta ciudad que en la cárcel. Necesitamos un confidente de las calles... + +[LAW2_C:LAWYER2] +Vale, déjame pensar, déjame pensar, déjame pensar... + +[LAW2_D:LAWYER2] +¡AH! ¡Lo tengo! + +[LAW2_E:LAWYER2] +Está este inglés, un baboso de la industria musical, + +[LAW2_F:LAWYER2] +se hace llamar Kent Paul. + +[LAW2_G:LAWYER2] +Bueno, tiene la cabeza tan metida en la mayoría de los culos de Vice City + +[LAW2_H:LAWYER2] +que si alguien sabe el paradero de 20 kilos de farlopa, + +[LAW2_I:LAWYER2] +es este tío, ¿de acuerdo? Siempre está en el Malibú. + +[LAW2_J:LAWYER2] +Le haré una visita. + +[LAW2B_A:LAWYER2] +¿De dónde saliste? + +[LAW2B_B:LAWYER2] +He estado buscando una chica como tú durante siglos, tía... + +[LAW2B_C:LAWYER2] +Kent Paul, tía. Por aquí soy el que manda. + +[LAW2B_D:LAWYER2] +Estoy buscando a un tipo inglés... + +[LAW2B_E:LAWYER2] +Muevo hilos, ¿entiendes lo que quiero decir? + +[LAW2B_F:LAWYER2] +Te invitaré. Lo que quieras, te lo conseguiré, chica. + +[LAW2B_G:LAWYER2] +No te preocupes por nada, tía. + +[LAW2B_H:LAWYER2] +Piérdete, guapa. + +[LAW2B_I:LAWYER2] +¡Eh, eh, eh, eh, eh! + +[LAW2B_J:LAWYER2] +¿Eres Kent Paul? Soy amigo de Rosenberg... + +[LAW2B_K:LAWYER2] +Rosenberg... Rosenberg... ¡Oh, ese chalado abogado de pacotilla! + +[LAW2B_L:LAWYER2] +¡Ese tipo podría defender a un inocente y mandarle directamente al corredor de la muerte! + +[LAW2B_M:LAWYER2] +Ponnos otra copa, hermano. + +[LAW2B_N:LAWYER2] +Todo el mundo es cómico. + +[LAW2B_O:LAWYER2] +Escúchame, he perdido veinte kilos y un montón de pasta... + +[LAW2B_P:LAWYER2] +¿Drogas, tío? Es un juego de tontos. + +[LAW2B_Q:LAWYER2] +¿Qué sabes al respecto? + +[LAW2B_R:LAWYER2] +¡Eh, eh! A lo que iba es que, + +[LAW2B_S:LAWYER2] +hay un chef-camello que tiene su negocio en la cocina de un hotel en Ocean Drive. + +[LAW2B_T:LAWYER2] +Últimamente parece muy satisfecho de sí mismo. ¿Podrías ir y tantearle? + +[LAW2B_U:LAWYER2] +Lo haré... y ya nos veremos. + +[LAW2B_V:LAWYER2] +Sí, está bien. Venga... vete, idiota. ¡Te voy a quitar las luces de un puñetazo! + +[LAW2B_W:LAWYER2] +Ponme una copa... ¡y dónde está esa zorra! + +[LAW2C_A:LAWYER2] +Oh, así se hace, tipo duro. Machácale. Eso debería hacerle muy parlanchín. + +[LAW2C_B:LAWYER2] +¿Tú también quieres un poco? + +[LAW2C_C:LAWYER2] +Eh, relájate. Quiero lo que tú quieres, hermano. + +[LAW2C_D:LAWYER2] +¿Oh, sí? ¿Y qué es eso? + +[LAW2C_E:LAWYER2] +Tu dinero... y la nieve de mi hermano muerto. Desgraciadamente, hiciste callar a nuestro contacto. + +[LAW2C_F:LAWYER2] +Los accidentes ocurren. Piérdete. + +[LAW2C_G:LAWYER2] +Eh, eh, guau. No hay necesidad de hacerte el llanero solitario conmigo. + +[LAW2C_H:LAWYER2] +Tal y como yo lo veo... somos dos hombres en una ciudad extraña. Necesitamos cubrirnos las espaldas mutuamente. + +[LAW2C_I:LAWYER2] +Mi espalda está bien, hermano... + +[LAW2C_J:LAWYER2] +¿Estás seguro de eso? Ten, toma esto... + +[LAW2C_K:LAWYER2] +¡Sígueme! + +[LAW2_1:LAWYER2] +¿Qué estás mirando? + +[LAW2_2:LAWYER2] +Mejor empieza a hablar... + +[LAW2_3:LAWYER2] +¡Oblígame, mamón! + +[LAW2_4:LAWYER2] +¡Por aquí! + +[LAW2_5:LAWYER2] +Voy a ver qué puedo averiguar. Te estaré vigilando, Tommy. + +[LAW2_6:LAWYER2] +~g~Ve al club Malibú y busca a Kent Paul. + +[LAW2_7:LAWYER2] +~g~Ve y busca al chef en Ocean Drive. + +[LAW2_10:LAWYER2] +~g~Regresa al hotel. + +[LAW2_11:LAWYER2] +~g~Recoge su teléfono móvil. + +[LAW2_12:LAWYER2] +¡Adquirido un teléfono móvil! Ahora puedes recibir llamadas telefónicas. + +[LAW2_13:LAWYER2] +~g~¡Has dejado a Lance atrás! ¡Ve y tráele! + +[LAW2_14:LAWYER2] +¡Tenemos que salir pitando de aquí! + +[GUN_2A:LAWYER2] +¡Mantén ~h~~k~~PED_LOCK_TARGET~ ~w~para ~h~apuntar automáticamente~w~ y pulsa ~h~~k~~PED_FIREWEAPON~ ~w~para ~h~disparar! + +[GUN_2C:LAWYER2] +¡Mantén ~h~~k~~PED_LOCK_TARGET~ ~w~para ~h~apuntar automáticamente~w~ y pulsa ~h~~k~~PED_FIREWEAPON~ ~w~para ~h~disparar! + +[GUN_2D:LAWYER2] +¡Mantén ~h~~k~~PED_LOCK_TARGET~ ~w~para ~h~apuntar automáticamente~w~ y pulsa ~h~~k~~PED_FIREWEAPON~ ~w~para ~h~disparar! + +[HELP17:LAWYER2] +Pulsa ~h~~k~~PED_FIREWEAPON~~w~ para atacar al chef. + +[HELP18:LAWYER2] +Pulsa ~h~~k~~PED_FIREWEAPON~~w~ para atacar al chef. + +[LAW3_11:LAWYER2] +Sitúate en el ~q~marcador rosa~w~ para ver las armas disponibles. + +[LAW3_12:LAWYER2] +Puedes seleccionar armas pulsando ~h~izquierda~w~ o ~h~derecha~w~ en los ~h~botones de dirección~w~. + +[LAW3_13:LAWYER2] +Si dispones de suficiente dinero, puedes comprar armas pulsando ~h~~k~~PED_SPRINT~~w~. + +[LAW3_14:LAWYER2] +Puedes salir de la tienda pulsando ~h~~k~~VEHICLE_ENTER_EXIT~~w~. + +[LAW3_15:LAWYER2] +Ve al ~h~icono de la pistola~w~ que hay en el radar para encontrar el ~h~Ammu-Nation~w~. + +[LAW2_15:LAWYER2] +~g~Ve a Ammu-Nation. + +[LAW2_K:LAWYER2] +Tómatelo con calma. + +[LAW2_16:LAWYER2] +Tienes que entender una cosa sobre esta ciudad. Tienes que saber protegerte. + +[LAW2_17:LAWYER2] +Venga, la tienda de armas local está a un par de manzanas de aquí. + +[LAW2_18:LAWYER2] +Tommy, cada hombre necesita un poco de rock de vez en cuando. + +[LAW2_19:LAWYER2] +Este de aquí es el club de striptease Pole Position. Quizás quieras entrar alguna vez. + +{=================================== MISSION TABLE LAWYER3 ===================================} + +[LAW3_A:LAWYER3] +¡Aagh! ¡Oh, por el amor de Dios, eres tú! Oh, Jesús, ¡voy a necesitar pantalones nuevos! + +[LAW3_B:LAWYER3] +Eh, esos psicópatas del norte han estado entrometiéndose y pronto vendrán aquí. + +[LAW3_C:LAWYER3] +Bien, ¿dónde está el maldito dinero? + +[LAW3_D:LAWYER3] +Relájate, relájate. Aún no hemos llegado a esa parte. + +[LAW3_E:LAWYER3] +Pensé que te estabas ocupando de esto, de verdad que sí. + +[LAW3_F:LAWYER3] +Y ahora esos tipos dicen que les tenemos que hacer un favor. + +[LAW3_G:LAWYER3] +Quieres decir que yo tengo que hacerles un favor. + +[LAW3_H:LAWYER3] +Oh, por supuesto, eso es lo que quiero decir. ¿Doy yo la impresión de poder intimidar a un jurado? + +[LAW3_I:LAWYER3] +No podría intimidar a un niño y créeme, lo he intentado. + +[LAW3_J:LAWYER3] +Ahora mira, es eso, o al primo de Forelli, Giorgio, le caerán cinco años por fraude. + +[LAW3_K:LAWYER3] +¡Tienes que encargarte de esos tipos! + +[LAW3_L:LAWYER3] +Comprendo. Ayuda al jurado a que cambie de idea. No te preocupes por ello. + +[LAW3_M:LAWYER3] +¡No no no no... NO! Ya intenté eso. El caso del jurado no fue tan bien, + +[LAW3_N:LAWYER3] +así que HAZ que cambien de idea. + +[LAW3_1:LAWYER3] +Giorgio envía sus saludos. + +[LAW3_2:LAWYER3] +Recuerda, ''culpable'' es una palabra fea. + +[LAW3_3:LAWYER3] +Inocente hasta que yo diga lo contrario. + +[LAW3_4:LAWYER3] +Sabes que no es culpable. + +[LAW3_5:LAWYER3] +¿Recuerdas a Giorgio? Recuerda que es inocente. + +[LAW3_6:LAWYER3] +No culpable. ¿Comprendido? Bien. + +[LAW3_8:LAWYER3] +~r~¡Mataste a un miembro del jurado! + +[LAW3_9:LAWYER3] +~g~¡Destroza el coche del miembro del jurado para sacarle de ahí! + +[HELP40:LAWYER3] +Puedes destrozar coches usando el martillo o un arma similar. + +[HELP41:LAWYER3] +o puedes aplastarlas con un vehículo + +[LAW3_20:LAWYER3] +~g~¡Destroza el coche del miembro del jurado! + +[LAW3_21:LAWYER3] +¡No puedo creer lo que está pasando! + +[LAW3_22:LAWYER3] +¡Increíble! + +[LAW3_23:LAWYER3] +¡Ya! ¡Ya! ¡Entendido! + +[LAW3_24:LAWYER3] +~g~Ese martillo será útil. + +[LAW3_7:LAWYER3] +~g~¡Ve y coacciona a los dos miembros del jurado pero NO los mates! + +[HELP23:LAWYER3] +Puedes ir al ~h~icono del martillo~w~ que hay en el radar si quieres comprar armas blancas en la ferretería. + +[LAW3_16:LAWYER3] +Estúpido cretino de Florida. + +[LAW3_17:LAWYER3] +¡Quítate de en medio! + +{=================================== MISSION TABLE LAWYER4 ===================================} + +[LAW4_A:LAWYER4] +Avery, ni que decir tiene... ¡Tommy! ¡Tommy! ¿Algún progreso? No, no, no... cuéntamelo luego, cuéntamelo luego. + +[LAW4_B:LAWYER4] +Tommy, éste es Avery Carrington... ¿Creo que os conocisteis en la fiesta? + +[LAW4_C:LAWYER4] +No en persona. + +[LAW4_D:LAWYER4] +¿Qué tal? + +[LAW4_E:LAWYER4] +Avery tiene una proposición. + +[LAW4_F:LAWYER4] +¿No tenemos otras cosas en mente? + +[LAW4_G:LAWYER4] +Estoy intentando mantener todo bajo control así que, ¿podrías darme un respiro? + +[LAW4_H:LAWYER4] +Estoy tenso como un alambre e incluso si estoy muerto al final de la semana, me gustaría pensar que no moriré pobre. + +[LAW4_I:LAWYER4] +Bien, calmaos, los dos. + +[LAW4_J:LAWYER4] +Hijo, si me ayudas, me encargaré de que cualquier capullo que te esté molestando se eche una buena siesta. + +[LAW4_K:LAWYER4] +De acuerdo, ¿qué puedo hacer por ti? + +[LAW4_L:LAWYER4] +Esta compañía de reparto tiene el almacén en unos terrenos de primera. No venderán. + +[LAW4_M:LAWYER4] +Están aguantando como una vieja rata de la pradera, así que tenemos que ir allí y ahumar a esas alimañas para hacerlas salir. + +[LAW4_N:LAWYER4] +Ve allí y alborota el avispero. + +[LAW4_O:LAWYER4] +Los de seguridad tendrán las manos ocupadas y entonces podrás colarte y dejarles fuera de combate. + +[LAW4_P:LAWYER4] +Y podrías pasarte por Rafael para cambiarte de ropa. Podrías estar allí un rato, pero sí, ve. + +[LAW4_Q:LAWYER4] +Debería ser un motín. + +[LAW4_R:LAWYER4] +Si las cosas salen como deberían, pásate alguna vez por mi oficina... + +[LAW4_1:LAWYER4] +Por favor, dispérsense. ¡La dirección discutirá cualquier queja de la forma apropiada! + +[LAW4_2:LAWYER4] +Por favor, dispérsense. ¡Vuelvan a sus casas! + +[LAW4_3:LAWYER4] +¡Por favor, dispérsense! ¡Esto no es apropiado! + +[LAW4_4:LAWYER4] +Por favor, dispérsense. Todos acabaréis en la calle. + +[LAW4_5:LAWYER4] +¡Desenfundad, chicos! ¡Vamos a romper unos cuantos cráneos comunistas! + +[LAW4_13:LAWYER4] +~g~Empieza a luchar con al menos 4 trabajadores para iniciar una revuelta. + +[LAW4_14:LAWYER4] +~g~¡Destruye las furgonetas del complejo! + +[HELP38:LAWYER4] +Si matas a alguien que lleva un arma, la dejará caer. + +[HELP39:LAWYER4] +Puedes disparar a los barriles explosivos, pero mantén la distancia. + +{=================================== MISSION TABLE MIAMI_1 ===================================} + +[T4X4_1A:MIAMI_1] +~g~Tienes ~1~ segundos para pasar por ~y~24~g~ puntos de control. ~g~Puedes atravesarlos en ~y~CUALQUIER ORDEN. + +[T4X4_1B:MIAMI_1] +~y~ATRAVIESA~g~ el primer punto de control para poner en marcha el ~r~CRONÓMETRO. + +[T4X4_1C:MIAMI_1] +¡~1~ de 24! + +[GETBIK1:MIAMI_1] +¡Tienes ~1~ segundos para subirte en una PCJ 600! + +[GETBIK3:MIAMI_1] +~r~Necesitas una PCJ 600 para realizar esta misión! + +{=================================== MISSION TABLE MM ===================================} + +[BLOD_04:MM] +ESTADO DEL COCHE: + +[BLOD_05:MM] +~g~TIEMPO OBJETIVO: ~1~ Minuto + +[BLOD_06:MM] +~g~TIEMPO OBJETIVO: ~1~ Minutos + +[BLOD_07:MM] +NUEVO Mejor Tiempo: ~1~ Segundos + +[BLOD_08:MM] +Coches destrozados: ~1~ + +[BLOD_09:MM] +~1~ $ + +[BLOD_10:MM] +¡GANADOR! + +[BLOD_01:MM] +Pasa por todos los puntos de control para aumentar tu tiempo total. + +[BLOD_02:MM] +Fracasarás si tu tiempo total llega a cero. + +[BLOD_03:MM] +¡Consigue que tu tiempo total sean superior al objetivo a superar! + +{=================================== MISSION TABLE OVALRIG ===================================} + +[HOTR_01:OVALRIG] +~g~La carrera dura 12 vueltas. Solamente los puestos 1, 2 y 3 obtienen premios en metálico. + +[HOTR_02:OVALRIG] +~g~Si destrozas tu coche serás descalificado. + +[HOTR_03:OVALRIG] +~g~Cuando tu coche sufra daños podrás repararlo en boxes. + +[HOTR_04:OVALRIG] +~g~Este es el camino para salir del estadio. + +[HOTR_05:OVALRIG] +Estado del coche: + +[HOTR_06:OVALRIG] +Vueltas: + +[HOTR_07:OVALRIG] +Nuevo mejor tiempo: ~1~:0~1~ + +[HOTR_08:OVALRIG] +Tiempo: ~1~:~1~ + +[HOTR_10:OVALRIG] +Tiempo de carrera: + +[HOTR_09:OVALRIG] +Posición: + +[HOTR_12:OVALRIG] +~r~¡Tu coche está destrozado! + +[HOTR_13:OVALRIG] +~r~¡No ganaste la carrera! + +[HOTR_14:OVALRIG] +~r~¡Has sido descalificado! + +[HOTR_15:OVALRIG] +Tiempo: ~1~:~1~ + +[HOTR_16:OVALRIG] +Tiempo: ~1~:0~1~ + +[HOTR_17:OVALRIG] +Mejor Tiempo: ~1~:~1~ + +[HOTR_18:OVALRIG] +Mejor Tiempo: ~1~:0~1~ + +[HOTR_19:OVALRIG] +Mejor Tiempo: NA + +[HOTR_20:OVALRIG] +Nuevo Mejor Tiempo: ~1~:~1~ + +[HOTR_21:OVALRIG] +Nuevo Mejor Tiempo: ~1~:0~1~ + +[HOTR_22:OVALRIG] +Mejor Resultado: NA + +[HOTR_23:OVALRIG] +Mejor resultado: 1 + +[HOTR_24:OVALRIG] +Mejor resultado: 2 + +[HOTR_25:OVALRIG] +Mejor resultado: 3 + +[HOTR_26:OVALRIG] +Mejor resultado: ~1~ + +[HOTR_27:OVALRIG] +Mejor Tiempo de Vuelta: ~1~.~1~ segundos + +[HOTR_28:OVALRIG] +Mejor Tiempo de Vuelta: ~1~.0~1~ segundos + +[HOTR_29:OVALRIG] +~1~ $ + +[HOTR_30:OVALRIG] +PUESTO: 1 + +[HOTR_31:OVALRIG] +PUESTO: 2 + +[HOTR_32:OVALRIG] +PUESTO: 3 + +[HOTR_33:OVALRIG] +Mejor tiempo de vuelta: ninguno + +[HOTR_11:OVALRIG] +Nuevo mejor tiempo de vuelta: ~1~,~1~ segundos + +[HOTR_34:OVALRIG] +Nuevo mejor tiempo de vuelta: ~1~,0~1~ segundos + +{=================================== MISSION TABLE PHIL1 ===================================} + +[PHIL1_A:PHIL1] +¿Phil? + +[PHIL1_B:PHIL1] +¡CORRE! + +[PHIL1_C:PHIL1] +¡Corre! + +[PHIL1_E:PHIL1] +Mierda Phil, ¿te bebes ese mejunje? + +[PHIL1_F:PHIL1] +Diablos, no tienes que bebértelo... + +[PHIL1_G:PHIL1] +solo tienes que olerlo para colocarte. + +[PHIL1_H:PHIL1] +Escucha, Phil, dijiste que podrías proporcionarme algo de potencia de fuego... + +[PHIL1_I:PHIL1] +Por supuesto. + +[PHIL1_J:PHIL1] +Hay un traficante de armas mejicano que me ha estado pisando el negocio últimamente. + +[PHIL1_K:PHIL1] +Suele realizar su ronda semanal a esta hora. + +[PHIL1_L:PHIL1] +Haz caer la mercancía de la parte de atrás de sus camiones antes de que acabe fuera de nuestro alcance. + +[PHIL1_M:PHIL1] +Y mientras estás en ello me estarás haciendo un favor. + +[PHIL1_N:PHIL1] +Luego acaba con él. + +[PHI1_01:PHIL1] +~g~Ve y pilla las armas de la parte trasera de los camiones del traficante. + +[PHI1_02:PHIL1] +~g~El traficante de armas ha perdido la carga. Destroza la caja y recoge el arma. + +[PHI1_03:PHIL1] +~g~Parece que han llamado pidiendo refuerzos. + +[PHI1_04:PHIL1] +~g~Ahora ve y acaba con el resto de los traficantes. + +[PHI1_HP:PHIL1] +Cuando utilices Detonador de Granadas, lanza una granada y después provoca la explosión en cualquier momento. + +[PHIL1_O:PHIL1] +¡Jooooodeeeeer! + +[PHIL1_D:PHIL1] +¡Nunca acerques una llama a uno de los alambiques de boomshine de Phil Cassidy! + +{=================================== MISSION TABLE PHIL2 ===================================} + +[PHIL2_A:PHIL2] +Hola, Phil, ¿cómo te va? + +[PHIL2_B:PHIL2] +Ehhh, Tommy. ¿Cómo estás? Hace tanto tiempo... + +[PHIL2_C:PHIL2] +Te juro que deberías dejar ese mejunje, tío. + +[PHIL2_D:PHIL2] +Huele como decapante de pintura. Hace que me ardan los ojos... + +[PHIL2_E:PHIL2] +Shhh, shhh, tú mismo, Tommy, + +[PHIL2_F:PHIL2] +y ven aquí porque hay algo que quiero enseñarte... algo. + +[PHIL2_G:PHIL2] +¡Dios! ¿Debería poder oler eso desde aquí? Me estoy mareando. + +[PHIL2_H:PHIL2] +No te preocupes por el olor, Tommy, mira esto. + +[PHIL2_I:PHIL2] +Las malditas pilas baratas o algo así. Hay más en el banco. + +[PHIL2_J:PHIL2] +¡TA-DAAA! + +[PHIL2_K:PHIL2] +¡Maldición! + +[PHI2_01:PHIL2] +~g~Rápido, lleva a Phil al hospital. + +[PHI2_03:PHIL2] +~r~¡Phil Cassidy está muerto! ¿Ahora quién va a suministrar armas en Vice City? + +[PHI2_05:PHIL2] +¡Al hospital no, tío! ¡Demasiados polis y vietcongs! + +[PHI2_06:PHIL2] +Hay un excirujano del ejército que me debe unos cuantos favores... y un cortador de césped. + +[PHI2_07:PHIL2] +Tiene un lugar llamado Little Havana, oh mira, un pez gigante. + +[PHI2_08:PHIL2] +¡Cuidado! ¡Charlies en la línea de los árboles! + +[PHI2_09:PHIL2] +¿Soy yo o las carreteras están hechas de gelatina? + +[PHI2_10:PHIL2] +Cuchara rota a madre gallina, ¿me recibes? + +[PHI2_11:PHIL2] +¡Cucharita, rita, rit, rit! + +[PHI2_12:PHIL2] +¡Viene a por mí, chico! + +[PHI2_13:PHIL2] +Hay alas de plumas negras aleteando por todas partes... + +[PHI2_14:PHIL2] +Es hermoso, tío... es hermoso... pero hace tanto frío... + +[PHI2_15:PHIL2] +10-4 tenemos un conductor borracho. + +[PHI2_04:PHIL2] +SALUD DE PHIL: + +[PHI_AS1:PHIL2] +LOCAL DE PHIL CONSOLIDADO + +[PHI_AS2:PHIL2] +~g~Nuevas armas disponibles para comprar en el Local de Phil. + +{=================================== MISSION TABLE PIZZA ===================================} + +[PIZ1_01:PIZZA] +~g~Ve a entregar estas pizzas, debes lanzar la pizza a los clientes. Pasa cerca para lanzar las pizzas. + +[PIZ1_02:PIZZA] +~g~Has lanzado todas tus pizzas, vuelve y recoge algunas más. + +[PIZ1_05:PIZZA] +~g~Tienes cinco minutos para entregar los pedidos antes de que los clientes telefoneen a otra pizzería. + +[PIZ1_07:PIZZA] +~r~¡Mataste al cliente! Estás despedido. + +[PIZ1_08:PIZZA] +~r~Te has quedado sin tiempo. Estás despedido. + +[PIZ1_09:PIZZA] +~r~¡Destruiste nuestra moto! Estás despedido. + +[PIZ1_11:PIZZA] +¡Eh! ¡Vuelve a subir a la moto! + +[PIZ1_12:PIZZA] +Pizzas restantes: + +[PIZ1_06:PIZZA] +Pulsa ~h~~k~~TOGGLE_SUBMISSIONS~~w~ cuando estés en la moto para cancelar la misión. + +[PIZ1_13:PIZZA] +Reparte éstas bien calentitas. + +[PIZ1_14:PIZZA] +Amigo, te toca repartir éstas. + +[PIZ1_15:PIZZA] +A ver, tío, repártelas rápido. + +[PIZ1_16:PIZZA] +¿Qué estás esperando, tío? Tienes pizzas que repartir. + +[PIZ1_17:PIZZA] +Ya sé que no querías ser el chico de las pizzas, vale me importa un cuerno. + +[PIZ1_18:PIZZA] +Reparte éstas. + +[PIZ1_19:PIZZA] +Hay que repartir éstas. + +[PIZ1_20:PIZZA] +Venga hombre, reparte estas cosas o estás despedido. + +[PIZ1_21:PIZZA] +Tenemos gente esperando amigo. + +[PIZ1_22:PIZZA] +¿Qué estás esperando? ¡Hay que repartir esto! + +[PIZ1_23:PIZZA] +Haz el reparto de la maldita comida hombre. + +[PIZ1_24:PIZZA] +Hay que repartir éstas, amigo. + +[PIZ1_25:PIZZA] +Tío, ¿te puedes llevar éstas? + +[PIZ1_26:PIZZA] +Oye, haz el reparto pronto, vamos amigo. + +[PIZ1_27:PIZZA] +Venga, tenemos prisa, haz ya el reparto. + +[PIZ1_28:PIZZA] +¿Otra vez tú? Bueno, reparte éstas deprisa, amigo. + +[PIZ1_29:PIZZA] +No pierdas el tiempo amigo. + +[PIZ1_30:PIZZA] +Venga ya vago hijo de puta, reparte esta mierda de una vez. + +[PIZ1_31:PIZZA] +No tendrás nunca un ascenso a menos que te muevas más rápido esta vez. + +[PIZ1_32:PIZZA] +~r~¿La pizza es demasiado caliente para encargarte de ella? + +[PIZ1_33:PIZZA] +~g~Vuelve al restaurante a por más pedidos. + +[PIZ1_34:PIZZA] +~g~Pizza repartida, aquí está tu dinero. + +[PIZ_WON:PIZZA] +Misión de Pizza Completada. Tu salud Personal máxima ha aumentado a 150. + +{=================================== MISSION TABLE PORN1 ===================================} + +[POR1_A:PORN1] +Acción. + +[POR1_B:PORN1] +¡Guau! Eso sí que es grande. + +[POR1_C:PORN1] +30 cm, eso es para pensárselo, nene. + +[POR1_D:PORN1] +¡CORTEN! ¿Quién es este idiota? ¡Tú! ¡Tú! ¿Por qué estás en el set? ¿POR QUÉ? + +[POR1_E:PORN1] +¿De qué va toda esta basura? + +[POR1_F:PORN1] +¿Alienígenas? ¿Cañas de pescar? + +[POR1_G:PORN1] +¿Quién ha visto alguna vez a un tiburón tan grande? + +[POR1_H:PORN1] +Hay que desechar todo este material. + +[POR1_I:PORN1] +¿Por qué te metiste en este negocio, mamón? + +[POR1_J:PORN1] +¿Eh? + +[POR1_K:PORN1] +¡Por los chochos, evidentemente! ¿Qué es esto? + +[POR1_L:PORN1] +Éste es mi arte. ¡SEGURIDAD! + +[POR1_M:PORN1] +Mira, pomposo gilipollas, ahora eres de mi propiedad. Yo poseo todo esto. + +[POR1_N:PORN1] +Vamos a cambiar este lugar... + +[POR1_O:PORN1] +Voy a hacerte rico. + +[POR1_P:PORN1] +Usted es... Usted... ¿Usted es Tommy Vercetti? Pero yo creí que usted era... + +[POR1_Q:PORN1] +Eso es. + +[POR1_R:PORN1] +Vamos a hacer algunos cambios por aquí y vamos a empezar a hacer dinero de verdad. + +[POR1_S:PORN1] +En realidad, alguna vez has pensado en... + +[POR1_T:PORN1] +Pero primero, vamos a necesitar unas chicas guapas de verdad... + +[POR1_U:PORN1] +Sí, las chicas están bien, pero tú... ¡guau! + +[POR1_02:PORN1] +~g~ Ve y elimina al chulo de Candy, luego vuelve y recoge a Candy. + +[POR1_04:PORN1] +Candy. Estoy buscando una estrella de cine. ¿Estás interesada? + +[POR1_05:PORN1] +¡Claro! Pero tendrás que hablar con mi agente... + +[POR1_06:PORN1] +¿Qué DEMONIOS estás haciendo? + +[POR1_07:PORN1] +¡Hoy deberías haberte quedado en casa! + +[POR1_7B:PORN1] +¿Puedes creer a este gilipollas? + +[POR1_08:PORN1] +¡Eh, Mercedes! + +[POR1_09:PORN1] +¡Eh, Tommy! ¿Quieres ir de fiesta? + +[POR1_10:PORN1] +Ahora no, preciosa. ¿Te interesa hacer algunas películas? + +[POR1_11:PORN1] +Por supuesto. Mientras que sea una peli barata y cutre. + +[POR1_13:PORN1] +~g~Lleva a las chicas de vuelta al Estudio para que conozcan a Steve. + +[POR1_14:PORN1] +¡Contratada! + +[POR1_15:PORN1] +Eh Tommy, ¿¡qué, vienes a entrar en calor!? + +[POR1_17:PORN1] +¡Guau, un tiburón genial! + +[POR1_18:PORN1] +~r~¡Mercedes está muerta! + +[POR1_20:PORN1] +Tommy, ¿a dónde vas? ¡Vuelve aquí! + +[POR1_21:PORN1] +¿A dónde vas? + +[POR1_22:PORN1] +Tommy, ¿cuando vamos a pasar algún tiempo a solas? + +[POR1_01:PORN1] +~g~¡Candy Suxxx sería perfecta para el papel principal! + +[POR1_12:PORN1] +~g~Ve con Candy a encontrarte con Mercedes. + +[POR1_16:PORN1] +Quizás después, nena... + +[POR1_24:PORN1] +~g~Vuelve y recoge a Candy. + +[POR1_25:PORN1] +~g~Te has dejado atrás a Candy, ve y tráela. + +[POR1_23:PORN1] +~g~Candy estará ocupándose de unos asuntos en el ~h~centro de la ciudad~g~. + +[POR1_26:PORN1] +~g~Aquí está Candy, parece que ha estado otra vez con el congresista Shrub. + +[POR1_27:PORN1] +Venga, vamos. + +[POR1_28:PORN1] +¡Tommy ten cuidado! ¡Aún no he asegurado mis implantes! + +[POR1_29:PORN1] +¿Y a esto le llamas conducir? + +[POR1_30:PORN1] +¡No podré hacer ningún numerito porno después de esto! + +[POR1_31:PORN1] +¿Qué? ¿Me estás intentando matar? ¡Creía que era la estrella era yo! + +{=================================== MISSION TABLE PORN2 ===================================} + +[POR2_A:PORN2] +¿Cómo va el rodaje, Steve? + +[POR2_B:PORN2] +Bien, Candy es una fuera de serie y esa chica nueva ¡es insaciable! + +[POR2_C:PORN2] +Se repasó a la mitad del reparto antes de que pudiese medir la luz. + +[POR2_D:PORN2] +De todas formas, eh, mañana vamos a exteriores a rodar las escenas del barco... + +[POR2_E:PORN2] +¿Escenas del barco, qué escenas del barco? + +[POR2_F:PORN2] +Los pescadores son presa de la pasión cuando aparece el tiburón gigante... + +[POR2_G:PORN2] +¿Qué te dije del tiburón gigante? + +[POR2_H:PORN2] +Dije, ''SIN TIBURÓN GIGANTE'', ¿de acuerdo? + +[POR2_I:PORN2] +¡Tú solo tienes que mantener las cámaras apuntando a los conejos! + +[POR2_J:PORN2] +De acuerdo, de acuerdo, eh Tommy, uno tiene que intentarlo, ¿de acuerdo? + +[POR2_K:PORN2] +¿Has hecho que impriman esos folletos? + +[POR2_L:PORN2] +Sí, pero nadie va a distribuir esas cosas, quiero decir que... + +[POR2_M:PORN2] +son demasiado... poco imaginativos. + +[POR2_N:PORN2] +No te preocupes por eso. + +[POR2_O:PORN2] +Tengo mis propias ideas para la distribución. + +[POR2_P:PORN2] +Vale. Candy, ven a mi caravana. + +[POR2_01:PORN2] +~g~Hay un hidroavión que se utilizó como atrezzo en una antigua película independiente a la vuelta de los estudios. + +[POR2_02:PORN2] +~g~Escoge uno de los puntos de control para empezar a dejar caer los folletos. + +[POR2_03:PORN2] +~g~Deja caer los folletos por todo el camino hasta el último punto de control. + +[POR2_04:PORN2] +~r~¡COMBUSTIBLE BAJO! + +[POR2_05:PORN2] +Utilízalo para distribuir los folletos por toda la ciudad. + +[DILDO:PORN2] +Combustible del Skimmer: + +[POR2_Q:PORN2] +¡Jo!, tío. + +[PORN2_9:PORN2] +~g~Tienes ~1~ segundos para volver a subir a una Skimmer antes de que termine la misión. + +{=================================== MISSION TABLE PORN3 ===================================} + +[POR3_A:PORN3] +Vale, ¿cuál es el problema ahora? + +[POR3_B:PORN3] +¡SSShhhh! + +[POR3_C:PORN3] +Bien, después de este encuentro cercano con las invasoras ninfómanas + +[POR3_D:PORN3] +nuestro héroe se encuentra incapaz de pensar en nada excepto en esta enorme montaña fálica... + +[POR3_E:PORN3] +y es entonces cuando queremos hacer la escena con la tina de puré de patatas, pero entonces... + +[POR3_F:PORN3] +¡Me importa una mierda! + +[POR3_G:PORN3] +¡Sigue, sigue! + +[POR3_H:PORN3] +Eh Tommy... + +[POR3_I:PORN3] +¿Mencionaste algo sobre un problema legal al teléfono? + +[POR3_J:PORN3] +¡Vaya que sí! El congresista Alex Shrub se ha subido al tren preelectoral y va tras el voto puritano. + +[POR3_K:PORN3] +Hay rumores de que va a apoyar medidas restrictivas, digamos, + +[POR3_L:PORN3] +para el aspecto más lujurioso de la gran industria del entretenimiento de esta nación. + +[POR3_M:PORN3] +Genial. + +[POR3_N:PORN3] +¡Candy! Tú conoces a Shrub, + +[POR3_O:PORN3] +¿llegasteis a algo pervertido? + +[POR3_P:PORN3] +¡Oh sí, oh sí, oh sí! ¡Sí sí sí SÍ! ¡OOOoooh! + +[POR3_Q:PORN3] +Por favor dime que filmaste eso. + +[POR3_R:PORN3] +¿Eso era parte del eh... o estaba hablando conmigo...? + +[POR3_S:PORN3] +Eh, uno nunca podría decirlo... De todas formas... + +[POR3_T:PORN3] +Probablemente sea mejor que la sigas después del rodaje, + +[POR3_U:PORN3] +para ver si te lleva a su nuevo nido de amor. + +[POR3_V:PORN3] +¿Tienes una cámara? + +[POR3_X:PORN3] +Vale, conseguidle una cámara. + +[POR3_02:PORN3] +~r~¡Has asesinado al Congresista! Ahora no habrá modo de que puedas chantajearle. + +[POR3_03:PORN3] +~r~Has alertado a la protección del Congresista, le sacarán de aquí inmediatamente. + +[POR3_04:PORN3] +Candy, ¿podrías llamarme Marta? + +[POR3_05:PORN3] +Oh Alex, quiero decir Marta. Lo que tú digas. + +[POR3_06:PORN3] +Marta, alguien está mirando... qué pervertido. + +[POR3_07:PORN3] +Tú, el de ahí. Dame esa cámara. + +[POR3_01:PORN3] +~g~Sigue la ~h~limusina~g~ de Candy. + +[POR3_15:PORN3] +~r~¡Has destruido la limusina de Candy! + +[POR3_17:PORN3] +~g~Regresa a la compañía de pornografía con las fotos. + +[POR3_19:PORN3] +~r~¡Te has quedado sin película! + +[POR3_21:PORN3] +~g~¡Has perdido la limusina de Candy! + +[POR3_22:PORN3] +~g~El Hotel WK Chariot frente a este balcón debería proporcionar el lugar ideal para la sesión fotográfica. + +[POR3_23:PORN3] +~g~Hay una puerta lateral que te permitirá acceder al hotel. + +[POR3_08:PORN3] +Mantén pulsado ~h~~k~~PED_LOCK_TARGET~ ~w~para~h~ enfocar~w~ con la cámara. + +[POR3_09:PORN3] +Mantén pulsado ~h~~k~~PED_LOCK_TARGET~ ~w~para~h~ enfocar~w~ con la cámara. + +[POR3_10:PORN3] +Pulsa ~h~~k~~PED_SNIPER_ZOOM_IN~ ~w~para ~h~acercar el zoom ~w~con la cámara y ~h~~k~~PED_SNIPER_ZOOM_OUT~ ~w~para ~h~alejarlo ~w~de nuevo. + +[POR3_11:PORN3] +Pulsa ~h~~k~~PED_SNIPER_ZOOM_IN~ ~w~para ~h~acercar el zoom ~w~con la cámara y ~h~~k~~PED_SNIPER_ZOOM_OUT~ ~w~para ~h~alejarlo ~w~de nuevo. + +[POR3_12:PORN3] +Pulsa ~h~~k~~PED_FIREWEAPON~ ~w~para sacar una foto. + +[POR3_13:PORN3] +Pulsa ~h~~k~~PED_FIREWEAPON~ ~w~para sacar una foto. + +[POR3_14:PORN3] +Pulsa ~h~~k~~PED_FIREWEAPON~ ~w~para sacar una foto. + +[POR3_20:PORN3] +~g~Si necesitas transporte, utiliza el ~h~Sparrow~g~ que está en la parte de atrás. + +[POR3_16:PORN3] +~g~Necesitas tres buenas fotos de Alex Shrub con Candy para chantajearle. + +[POR3_24:PORN3] +FOTOS HECHAS: + +{=================================== MISSION TABLE PORN4 ===================================} + +[POR4_A:PORN4] +Lo siento, pero no puedo tragarme eso ahora. + +[POR4_B:PORN4] +¡Oh, VENGA, cariño! + +[POR4_C:PORN4] +La tiene como un cachalote, por el amor de Dios, + +[POR4_D:PORN4] +¿cómo es que no puedes sentir el papel? + +[POR4_E:PORN4] +Pero Stevie... + +[POR4_F:PORN4] +¿Cómo está mi director estrella? + +[POR4_G:PORN4] +Oh, tío. La lucha entre la integridad artística y + +[POR4_H:PORN4] +la acción cargante y bombeante continúa sin perder intensidad. + +[POR4_I:PORN4] +Y antes de que puedas preguntarlo, sí, los cuatro vídeos serán lanzados en sus... + +[POR4_J:PORN4] +Cariño, podrías POR FAVOR mantener la anaconda dentro del plano, + +[POR4_K:PORN4] +¡cuesta por hora más de lo que cuestas tú! + +[POR4_L:PORN4] +Oh, lo siento, Steve. + +[POR4_M:PORN4] +Estaba pensando, necesitamos algún tipo de gran truco publicitario para promover de verdad el lanzamiento. + +[POR4_N:PORN4] +Algo que tenga un verdadero impacto en la ciudad, ¿tienes alguna idea? + +[POR4_O:PORN4] +Bueno, en los viejos tiempos solían organizar fiestas, + +[POR4_P:PORN4] +estrellas, limusinas, el cielo nocturno con los focos entrecruzados... + +[POR4_Q:PORN4] +¿Focos? Tengo una idea... + +[POR4_R:PORN4] +...sí, sí, sí. Los numeritos de lentejuelas, y las limusinas, oh, premieres. + +[POR4_S:PORN4] +Oh, sí, madam, por supuesto madam, + +[POR4_T:PORN4] +y la prensa, y el bombardeo de luces... + +[POR4_01:PORN4] +~g~Ve al ~y~centro~g~ y ajusta los focos sobre lo alto del edificio. + +[POR4_02:PORN4] +~g~Necesitarás una moto rápida para saltar de un tejado a otro. El guardia de seguridad normalmente lleva una ~y~PCJ 600~g~ para ir a trabajar... + +[POR4_03:PORN4] +~g~Necesitarás subir a los tejados de los edificios. Debería de haber un ascensor que lleve a una de las oficinas superiores... + +[POR4_06:PORN4] +~g~Vuelve a la oficina inferior si de nuevo necesitas acceso a los tejados. + +[POR4_07:PORN4] +~g~Necesitarás una moto para poder saltar de un edificio a otro. + +[POR4_08:PORN4] +~g~Atraviesa la ventana para empezar el recorrido. Tienes hasta las 07:00 antes de que haya demasiada luz como para subir allí sin ser visto. + +[POR4_09:PORN4] +~g~Los marcadores rosas te mostrarán a qué edificio saltar después. + +[POR4_10:PORN4] +~r~Hay demasiada luz como para subir ahí sin ser visto. + +[POR4_11:PORN4] +~g~Vuelve a la escalera si necesitas acceder de nuevo a los tejados. + +[POR4_05:PORN4] +~g~Estas escaleras llevan a una oficina en el piso inferior. + +[POR_AS1:PORN4] +ESTUDIO CINEMATOGRÁFICO CONSOLIDADO + +[POR_AS2:PORN4] +~g~Inter Global Films generará ahora unos ingresos máximos de hasta ~1~ $. Asegúrate que lo recaudas de forma regular. + +{=================================== MISSION TABLE PROT1 ===================================} + +[PRO1_B:PROT1] +No puedo soportar este look. Tommy, ¿Tú que dices? ¿Qué te parece si ponemos un bar en... + +[PRO1_D:PROT1] +Escúchame, + +[PRO1_E:PROT1] +Es hora de tomar esta ciudad. Está ahí, esperándonos. + +[PRO1_F:PROT1] +Necesitamos empezar a ampliar nuestro territorio, + +[PRO1_G:PROT1] +vamos a dejar que Vice City sepa que somos los nuevos tíos importantes de la ciudad, ¿sabes a lo que me refiero? + +[PRO1_I:PROT1] +Lo que necesitas es un frente legítimo, Tommy, una verdadera propiedad. A mí nunca me ha hecho daño. + +[PRO1_J:PROT1] +Necesitamos empezar a utilizar la fuerza o podemos despedirnos de todo el trabajo duro que hemos hecho. + +[PRO1_K:PROT1] +¡Los negociantes locales saben que Díaz está muerto, y se niegan a pagar la protección! + +[PRO1_L:PROT1] +Oh. Podríamos intentar el soborno... + +[PRO1_M:PROT1] +¿Soborno? ¡Que le jodan al soborno! Te mostraré cómo hacer que se asusten. + +[PRO1_01:PROT1] +~g~Ve a atracar los escaparates de las tiendas y tendrás a los propietarios suplicando protección. + +[PRO1_03:PROT1] +~r~Se suponía que deberías atacar y salir corriendo, no atacar y tomarte un café. + +[PRO1_04:PROT1] +¡Mi sustento, destruido! + +[PRO1_05:PROT1] +¡Arruinado... ESTOY ARRUINADO! + +[PRO1_06:PROT1] +¡Pagaré lo que sea por protección! + +[PRO1_07:PROT1] +¡Mi hermoso escaparate destruido! + +[PRO1_08:PROT1] +Mi tienda. Mi maravillosa tienda. + +[PRO1_09:PROT1] +Vercetti. Recuerda el nombre. + +[PRO1_10:PROT1] +Ahora dirijo esta ciudad. ¡YO! + +[BUYP1:PROT1] +Ahora puedes comprar propiedades en ciertas zonas de la ciudad. + +[BUYP2:PROT1] +Si ves un indicador con una casa verde, puedes comprar esa propiedad. + +[PRO1_N:PROT1] +Volveré aquí en cinco minutos... + +[PRO1_11:PROT1] +~g~Ve al ~y~Centro Comercial North Point~g~ en ~y~Vice Point~g~. + +[PRO1_12:PROT1] +~g~Destroza los escaparates de todas las tiendas y los propietarios te suplicarán para obtener nueva protección. + +[PRO1_A:PROT1] +Oh, tenemos que volver a pintar este sitio. Tenemos que hacer que parezca más viejo. + +[PRO1_C:PROT1] +Rosenberg, eres mi abogado, no mi diseñador de interiores, ¿lo entiendes? + +[BUYP3:PROT1] +Sitúate en el marcador, a continuación pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para comprar la propiedad. + +[PRO1_13:PROT1] +~g~Dispones de cinco minutos para machacarlos a todos. + +{=================================== MISSION TABLE PROT2 ===================================} + +[PRO2_A:PROT2] +¿Cuál es el problema? + +[PRO2_B:PROT2] +Un bar se niega a pagar. + +[PRO2_C:PROT2] +Creen que están protegidos por una banda de matones locales. + +[PRO2_D:PROT2] +Pero no te preocupes, Tommy, yo me encargo. + +[PRO2_E:PROT2] +¿Llamas a esto encargarte? + +[PRO2_F:PROT2] +Vosotros dos, en pie... + +[PRO2_G:PROT2] +Vamos. + +[PRO2_01:PROT2] +~g~Elimina a los guardias que vigilan el Bar Front Page y descubre quién los ha puesto ahí. + +[PRO2_10:PROT2] +~g~Dos más han huido. Sígueles la pista y acaba con ellos. + +[PRO2_11:PROT2] +Sube al coche, inútil. + +[PRO2_02:PROT2] +Tu seguridad necesita un poco más de seguridad. + +[PRO2_03:PROT2] +¡Ahh! demonios, ¡otra vez no! ¡no necesito esta basura! + +[PRO2_04:PROT2] +Estos idiotas pertenecen al DBP de Seguridad que hay a la vuelta de la esquina. + +[PRO2_05:PROT2] +¡Eh tíos! Arregladlo entre vosotros. + +[PRO2_06:PROT2] +Nos vemos en un rato. + +[PRO2_07:PROT2] +Sí, vale, lo que tú digas. + +[PRO2_08:PROT2] +~g~El DBP de Seguridad sabrá que estás de camino, ve y atrápalos antes que escapen. + +[PRO2_09:PROT2] +~g~Ve y habla con el dueño del bar Front Page. + +{=================================== MISSION TABLE PROT3 ===================================} + +[PRO3_A:PROT3] +¡Idiota! ¿En qué estabas pensando? + +[PRO3_B:PROT3] +¿Te das cuenta de lo que significa ésto? + +[PRO3_C:PROT3] +¡Podríamos estar todos hundidos! + +[PRO3_D:PROT3] +El temporizador debe haberse jodido. + +[PRO3_E:PROT3] +Ese lugar estaba preparado para estallar como una fábrica de fuegos artificiales. + +[PRO3_F:PROT3] +Entonces alguien avisó a la poli... + +[PRO3_G:PROT3] +¿Cuál es el problema, colegas? + +[PRO3_H:PROT3] +Se suponía que Mike iba a quemar algún sitio en el centro comercial, + +[PRO3_I:PROT3] +pero la cagó con los fusibles y ahora eso está plagado de polis. + +[PRO3_J:PROT3] +¡Tenemos que conseguir nuestras cosas y salir de aquí! + +[PRO3_K:PROT3] +¡Relajaos los dos, dejadme pensar un segundo! + +[PRO3_L:PROT3] +Tommy Vercetti no corta por lo sano y huye. + +[PRO3_M:PROT3] +Los polis van a repasar ese edificio con un buen cepillo de dientes, ¿verdad? + +[PRO3_N:PROT3] +Pero eso lleva tiempo. + +[PRO3_O:PROT3] +Tenemos que ir y quemar nosotros mismos ese sitio. + +[PRO3_P:PROT3] +Sí, pero... + +[PRO3_Q:PROT3] +¡Nadie excepto un poli podría acercarse a una milla de ese lugar! + +[PRO3_R:PROT3] +Así que iremos como polis. + +[PRO3_S:PROT3] +Tenemos que conseguir uniformes, y vamos a necesitar un coche patrulla. + +[PRO3_T:PROT3] +Todo gracias a ti, Mike. + +[PRO3_U:PROT3] +Lo siento. + +[PRO3_V:PROT3] +Lo capto. + +[PRO3_W:PROT3] +Lo que tenemos que hacer es atraer a los polis enseñándoles el dedo, + +[PRO3_X:PROT3] +encerrarles + +[PRO3_Y:PROT3] +y asaltarles. + +[PRO3_Z:PROT3] +Buen plan. ¡Vamos! + +[PRO3_A1:PROT3] +De acuerdo. + +[PRO3_01:PROT3] +De acuerdo, Lance, ¡vamos a por los polis! + +[PRO3_02:PROT3] +~g~ Roba el coche de policía y coloca la bomba en el Café Tarbrush del centro comercial. + +[PRO3_03:PROT3] +~g~ Has dejado atrás a Lance, vuelve y recógele. + +[PRO3_04:PROT3] +~g~ Vamos. + +[PRO3_05:PROT3] +~r~¡Has matado a Lance! + +[PRO3_07:PROT3] +~g~ Te has descubierto. ¡Date prisa y coloca la bomba! + +[PRO3_08:PROT3] +~g~Vuelve a la ~h~finca de Vercetti~g~ en ~h~Starfish Island~g~. + +[PRO3_09:PROT3] +¡Átales y amordázales! + +[PRO3_10:PROT3] +¡Me queda como un guante! + +[PRO3_11:PROT3] +Un poco ajustado en la entrepierna... + +[PRO3_12:PROT3] +Oh, sí, sí, el mío también. El mío también. + +[PRO3_13:PROT3] +¡Relájate, hermano! ¡Ningún poli conduce tan mal! + +[PRO3_14:PROT3] +Recuerda, sonríe a los otros polis. + +[PRO3_15:PROT3] +Hola, agente. Bonita placa, bonita placa. + +[PRO3_16:PROT3] +Muy desenvuelto, Lance. + +[PRO3_17:PROT3] +De acuerdo, los temporizadores están colocados, 5 segundos. + +[PRO3_18:PROT3] +¿5 segundos? ¡Tenemos que salir de aquí pitando! + +[PRO3_19:PROT3] +Ahora que los hemos enfadado de verdad. + +[PRO3_20:PROT3] +~g~ Haz que dos polis te sigan hasta el garaje. + +[PRO3_21:PROT3] +~g~Consigue un nivel de se busca suficiente para que los polis te sigan hasta el garaje. + +[PRO3_22:PROT3] +~g~¡La puerta del garaje está bloqueada! El acceso tiene que estar despejado para que se pueda cerrar. + +[PRO3_23:PROT3] +~g~Camina hacia el marcador para colocar la bomba. + +[PRO3_24:PROT3] +~g~¡Aléjate del Café! + +[PRO_AS1:PROT3] +ANILLO DE PROTECCIÓN COMPLETADO + +[PRO_AS2:PROT3] +~g~La finca de Vercetti generará ahora unos ingresos máximos de hasta ~1~ $. Asegúrate de recaudarlo regularmente. + +{=================================== MISSION TABLE RACES ===================================} + +[RACES_2:RACES] +~g~¡Necesitas un vehículo para correr, esto no es una carrera a pie! + +[RACES_3:RACES] +3... 2... 1... ¡ADELANTE! ¡ADELANTE! ¡ADELANTE! + +[RACES_8:RACES] +~r~¡No has ganado la carrera! + +[RACES00:RACES] +Carrera ~1~: + +[RACES01:RACES] +Velocidad terminal + +[RACES02:RACES] +Ocean Drive + +[RACES03:RACES] +Carrera por el borde + +[RACES04:RACES] +Capital Cruise + +[RACES05:RACES] +¡Tour! + +[RACES06:RACES] +Aguante en V.C. + +[RACES07:RACES] +Precio de entrada: ~1~ $ + +[RACES08:RACES] +Mejor tiempo: ~1~:~1~ + +[RACES09:RACES] +Mejor resultado: 1 + +[RACES10:RACES] +Mejor resultado: 2 + +[RACES11:RACES] +Mejor resultado: 3 + +[RACES12:RACES] +Mejor resultado: 4 + +[RACES13:RACES] +Longitud de pista: ~1~.~1~ km + +[RACES15:RACES] +Mejor tiempo: NA + +[RACES16:RACES] +Mejor resultado: NA + +[RACES19:RACES] +No puedes permitirte entrar en esta carrera. + +[RACES22:RACES] +Mejor tiempo: ~1~:0~1~ + +[RACES23:RACES] +Longitud de la pista: ~1~.~1~ millas + +[RACES_1:RACES] +~g~Consigue un vehículo rápido y ve a la parrilla de salida. + +[RACEHLP:RACES] +~w~Pulsa ~h~~k~~PED_SPRINT~~w~ para empezar la carrera seleccionada. Pulsa ~h~~k~~VEHICLE_ENTER_EXIT~~w~ para salir. + +{=================================== MISSION TABLE RCHELI1 ===================================} + +[WRECKED:RCHELI1] +~r~¡El vehículo está destrozado! + +[RCH1_4:RCHELI1] +Puntos de control: + +[RCH1_7:RCHELI1] +~g~Hay 20 puntos de control en total. + +[RCH1_12:RCHELI1] +~g~¡El helicóptero RC está saliendo fuera de su alcance de control! + +[RCH1_13:RCHELI1] +~r~¡El helicóptero RC se ha salido de su radio de alcance! + +[RCH1_8:RCHELI1] { reVC update } +~g~Si deseas abandonar esta misión, pulsa ~h~~k~~VEHICLE_FIREWEAPON~~g~ para detonar tu helicóptero RC. + +{=================================== MISSION TABLE RCPLNE1 ===================================} + +[RCPL1_4:RCPLNE1] +~g~Compite en una CARRERA DE PUNTOS DE CONTROL contra otros tres aviones RC. + +[RCPL1_5:RCPLNE1] +~g~Vuela a través de los puntos de control dispersados por Vice City. + +[RCPL1_6:RCPLNE1] { reVC update } +~g~Si deseas abandonar esta misión, pulsa ~h~~k~~VEHICLE_FIREWEAPON~~g~ para detonar tu avión RC. + +[RCPL1_8:RCPLNE1] +~g~¡Tu avión RC está saliendo fuera del alcance! + +[RCPL1_9:RCPLNE1] +~r~¡Tu avión RC se salió del alcance! + +{=================================== MISSION TABLE RCRACE1 ===================================} + +[RCRC1_1:RCRACE1] +~g~Compite en una CARRERA DE PUNTOS DE CONTROL contra 3 Barón RC durante dos vueltas. + +[RCRC1_3:RCRACE1] +~g~¡Vuelta final! + +[RCR1_4:RCRACE1] +vueltas restantes: + +[RCR1_1:RCRACE1] +~g~Compite en una carrera de puntos de control contra otros tres coches RC. + +[RCR1_2:RCRACE1] +~g~¡Consigue ser el primero en completar las dos vueltas del circuito para ganar! + +[RCR1_6:RCRACE1] +~g~¡Tu coche RC se está saliendo fuera del alcance! + +[RCR1_7:RCRACE1] +~r~¡Tu coche RC se salió del alcance! + +{=================================== MISSION TABLE ROCK1 ===================================} + +[RBM1_A:ROCK1] +~n~ + +[RBM1_B:ROCK1] +¡Brillante, jodidamente brillante! + +[RBM1_D:ROCK1] +¿Eh, habías conocido antes a los Love Fist? + +[RBM1_E:ROCK1] +No, pero siempre me encantó vuestra música. + +[RBM1_F:ROCK1] +Déjame presentarte a la banda. + +[RBM1_G:ROCK1] +Estos son P, Percy, Dick, y Willy está en el kaze, y ese de antes de la cabina era Jezz, + +[RBM1_H:ROCK1] +y tíos, quiero que conozcáis a un buen amigo mío. + +[RBM1_I:ROCK1] +Este es Tommy. Nos conocemos desde hace mucho. + +[RBM1_J:ROCK1] +De acuerdo, colega. + +[RBM1_K:ROCK1] +Y, eh, ¿cuál era tu nombre? + +[RBM1_L:ROCK1] +Déjalo, Jezz, lo recuerdas, + +[RBM1_M:ROCK1] +no juegues a eso conmigo, colega, + +[RBM1_N:ROCK1] +¡soy demasiado astuto para eso, encanto! + +[RBM1_O:ROCK1] +Verás, Tom, la cosa es que los chicos necesitan algo de ayuda. + +[RBM1_P:ROCK1] +No tienen muchos contactos en la zona, gente a la que preguntarle ''¿vienes mucho por aquí?'' y todo eso. + +[RBM1_Q:ROCK1] +¡Necesitamos unos tiritos, colega! + +[RBM1_R:ROCK1] +¿Vamos a pillar la vieja furia Love Fist, sabes? + +[RBM1_S:ROCK1] +Bueno, esto es Vice City, tío. ¿Cuál es el problema? + +[RBM1_U:ROCK1] +¡Love juice, tío! + +[RBM1_V:ROCK1] +¿Love juice? + +[RBM1_W:ROCK1] +Sí, dos partes de boomshine, una parte de farlopa, cinco caramelos con picapica y un litro de gasolina. + +[RBM1_X:ROCK1] +¿Puedes ayudarnos, colega? + +[RBM1_Y:ROCK1] +De verdad significaría mucho para los chicos. + +[RBM1_Z:ROCK1] +Puedes hacer eso por los muchachos, ¿verdad? + +[RBM1_7:ROCK1] +~r~¡No conseguiste a tiempo el ''love juice''! + +[RBM1_8:ROCK1] +~r~¡Mercedes está muerta! + +[RBM1_10:ROCK1] +~r~¡Idiota! ¡Has destruido el material! + +[RBM1_13:ROCK1] +~g~Lleva el ''love juice'' y a Mercedes a la banda antes de que sean requeridos en el escenario. + +[RBM1_15:ROCK1] +~r~¡Has perdido al camello, nuestra pasta y la nieve! + +[RBM1_17:ROCK1] +~g~¡Mata al camello y consigue los ingredientes! + +[MOB_07A:ROCK1] +Eh colega, a los chicos les vendría bien algo de compañía, si entiendes lo que quiero decir... + +[MOB_07B:ROCK1] +Conozco a la chica apropiada. + +[ROK1_5:ROCK1] +¡Hola, Mercedes! + +[ROK1_6:ROCK1] +Hola, Tommy. ¿Cómo estás? + +[ROK1_7:ROCK1] +Bien. Escucha, ¿te apetece acostarte con los Love Fist? + +[ROK1_8:ROCK1] +De acuerdo, pero sólo como un favor que espero que me sea devuelto... + +[RBM1_14:ROCK1] +~g~¡Necesitas un coche o una moto! + +[RBM1_1:ROCK1] +~g~Ve y recoge a Mercedes en su apartamento. + +[RBM1_12:ROCK1] +~g~Ve y reúnete con el camello para conseguir los ingredientes del ''love juice''. + +[ROK1_2:ROCK1] +YA NO ES NECESARIO + +[ROK1_3:ROCK1] +YA NO ES NECESARIO + +[MERC_39:ROCK1] +Hasta luego grandullón. + +[RBM1_C:ROCK1] +¡Eh, Tommy! Me alegro que pudieras venir. + +[RBM1_9:ROCK1] +~g~¡Ve y reúnete con el camello de los Love Fist para conseguir algo de ''love juice''! + +[ROK1_1A:ROCK1] +¿Buscas algo especial? ¡Yo tengo lo que necesitas! + +[ROK1_9:ROCK1] +¡Gracias por el dinero, mamón! + +[RBM1_T:ROCK1] +Necesitamos ''love juice'', tío, ¿sabes? + +{=================================== MISSION TABLE ROCK2 ===================================} + +[RBM2_A:ROCK2] +Tommy, tío. ¡Me alegro de verte! + +[RBM2_B:ROCK2] +¿Qué sucede? + +[RBM2_C:ROCK2] +Malas vibraciones, Tommy... + +[RBM2_E:ROCK2] +Hay un tipo, apenas le conocemos, pero él nos conoce a nosotros. + +[RBM2_F:ROCK2] +Como este tipo, que lo sabe todo de nosotros. + +[RBM2_G:ROCK2] +Sabe que a Willy le gusta ponerse ropa interior de mujeres. + +[RBM2_H:ROCK2] +¡O que a Percy le gusta Duran Duran! + +[RBM2_K:ROCK2] +Sí, bien, tu cohete del amor. Pero escucha, este tipo... + +[RBM2_L:ROCK2] +El tipo, quiere ver a los Love Fist muertos. + +[RBM2_M:ROCK2] +Muertos, Tommy. + +[RBM2_N:ROCK2] +El final Love Fist. Ya sabes lo que dicen, los buenos mueren jóvenes. + +[RBM2_O:ROCK2] +¡Pero Tommy, tienes que salvar a los Love Fist! + +[RBM2_P:ROCK2] +Tenemos que firmar en dos horas y creo... + +[RBM2_Q:ROCK2] +Los chicos creen que el sospechoso va a intentar hacer algún recibimiento infame. + +[RBM2_1:ROCK2] +~g~Conduce la limusina a la firma de autógrafos e intenta encontrar al psicópata. + +[RBM2_2:ROCK2] +~r~¡Destrozaste el coche de la banda! + +[RBM2_3:ROCK2] +~g~¡Ve a la firma de autógrafos! + +[RBM2_4:ROCK2] +~g~¡Atrapa al psicópata! ¡No le dejes escapar! + +[RBM2_5:ROCK2] +~r~¡Lo perdiste, idiota! + +[RBM2_7:ROCK2] +~r~¡Los fans han sido atacados, el psicópata no aparecerá! + +[RBM2_8:ROCK2] +~r~¡Los guardas de seguridad han sido atacados, el psicópata no aparecerá! + +[PSYCH_1:ROCK2] +¡Me encantaría ver arder a los Love Fist! + +[PSYCH_2:ROCK2] +¡Los Love Fist arruinaron mi vida! + +[RBM2_I:ROCK2] +Cállate, idiota. Sólo porque Jezz se folla ovejas. + +[RBM2_R:ROCK2] +¡Eh, cierra la boca! + +[RBM2_D:ROCK2] +Sí, no estoy de broma, es un tema muy gordo tío, muy gordo, ¿sabes? + +[RBM2_J:ROCK2] +Es lo que atrae a mi cohete del amor, ¿entiendes? + +{=================================== MISSION TABLE ROCK3 ===================================} + +[RBM3_A:ROCK3] +¡Tommy! ¡Tommy! ¡Tommy, tío, ese psicópata ha vuelto! + +[RBM3_B:ROCK3] +¿Qué está pasando? + +[RBM3_C:ROCK3] +¡Ese psicópata no dejará en paz a los Love Fist! + +[RBM3_D:ROCK3] +No le mataste, tío. Y ahora ha vuelto. + +[RBM3_E:ROCK3] +Sí, sí, sí, y la cuestión es... + +[RBM3_F:ROCK3] +La cuestión es que necesitamos alguien en quien poder confiar para que conduzca la limo, + +[RBM3_G:ROCK3] +¡porque ese chiflado sigue con las amenazas! + +[RBM3_I:ROCK3] +Aquí estamos todos acojonados, tío. + +[RBM3_J:ROCK3] +De acuerdo tíos, calmaos, yo me encargaré de esto. + +[RBM3_K:ROCK3] +Normalmente, no me ocuparía de ir por ahí haciendo de chófer para una panda de bisexuales escoceses bebidos, + +[RBM3_L:ROCK3] +pero, en vuestro caso, haré una excepción. + +[RBM3_4:ROCK3] +~r~¡Has matado a los Love Fist! + +[RBM3_6:ROCK3] +DETONACIÓN: + +[RBM3_1:ROCK3] +~g~Conduce a los Love Fist al local del concierto. + +[RBM3_2:ROCK3] +Si intentas abandonar el coche mientras la bomba está armada explotará... + +[RBM3_3:ROCK3] +Si la barra de detonación se llena completamente la bomba explotará. + +[RBM3_8:ROCK3] +Cuanto más rápido conduzcas más despacio se moverá la barra de detonación. + +[RBM3_7:ROCK3] +~g~¡BOMBA DESACTIVADA! + +[ROK3_62:ROCK3] +y pensamos que podríamos enseñarte nuestro Templo del Rock. + +[ROK3_63:ROCK3] +¡Para que te vayas acostumbrando a la furia de Love Fist! + +[ROK3_64:ROCK3] +Escúchate a ti mismo, tío. Es papel maché y cinta aislante. + +[ROK3_65:ROCK3] +Eh, para los chavales, ¡esto es un templo y nosotros somos los sacerdotes! + +[ROK3_66:ROCK3] +Si, vale, si a los chavales les gustan los sacerdotes colgados y sin oído musical, + +[ROK3_67:ROCK3] +¿quién soy yo para discutirlo? + +[ROK3_68:ROCK3] +Vaya por Dios, se está comiendo la cinta otra vez. + +[ROK3_69:ROCK3] +Con este ritmo tendremos que tocar en directo. + +[ROK3_70:ROCK3] +Oohh ¡mierda! Mis tripas... + +[ROK3_73:ROCK3] +Jezz está escuchando la cinta, + +[RBM3_9:ROCK3] +Si te paran o reduces la velocidad la barra de detonación aumentará. + +[RBM3_H:ROCK3] +¡Me estoy cagando de miedo tío. Necesito a mi, mamá! + +[ROK3_71:ROCK3] +Tenemos que seguir con esto. Gracias de nuevo Tommy, ya sabes lo que quiero decir, apúntate una, ¡adiós! + +[ROK3_1:ROCK3] +Al fin tío, hora de un merecido trago. La sala de conciertos está solo a unos cientos de metros calle abajo. + +[ROK3_2:ROCK3] +Mejor ponme uno doble. Eh Tommy, cambia los temas, tío. + +[ROK3_3:ROCK3] +Me siento perdido si la cabeza no me estalla. Ah, mira, ¿Qué es esto? Eh Tommy, pon esta cinta. + +[ROK3_4:ROCK3] +Love Fist. Vuestro tiempo contaminando las ondas se ha terminado. Os di la oportunidad de ser amigos. + +[ROK3_5:ROCK3] +Ahora os doy la oportunidad de morir. ¡Intentad aminorar la marcha y vuestra limusina explotará junto con vuestros GRANDES Y PELUDOS CULOS! + +[ROK3_6:ROCK3] +Tommy amigo, ¡tienes que salvar a la banda! Yo me estoy cansando de esto. ¡Mantén pisado el acelerador! + +[ROK3_7:ROCK3] +¡Tenemos que encontrar la bomba! ¿Podremos conducir por ahí todo el día? Sí, tenemos suficiente bebida.. + +[ROK3_8:ROCK3] +¿La bomba no estará en el motor? Tendremos que parar y cogerla. ¡Vamos a morir todos! ¡Me voy a emborrachar! + +[ROK3_9:ROCK3] +Eh, ¡amigo, aquí hay cola! ¡La respuesta no está en el mueble bar! ¡Sal de mi camino! + +[ROK3_10:ROCK3] +Eh, ¡a la botella de vodka le salen unos cables! ¡Eso no es vodka!, ¡Eso es una BOMBA! + +[ROK3_11:ROCK3] +¡Y está preparada para explotar! + +[ROK3_12:ROCK3] +Siempre me dijeron que la bebida acabaría conmigo. He visto esto en la tele. Tienes que tirar de uno de los cables. ¿De qué cable? Pues no sé tío. + +[ROK3_13:ROCK3] +No tengo ni idea. Willy, di algo. Voy a tocar el bajo en el otro mundo. + +[ROK3_14:ROCK3] +Tommy tío, sigue conduciendo deprisa, amigo. Que alguien haga algo. Si, ¡qué listo! + +[ROK3_15:ROCK3] +''Que alguien haga algo'', qué mierda es esa, he visto a niñas con más valor. Tipo duro, haz tú algo. + +[ROK3_16:ROCK3] +Mira tío, yo toco un instrumento y no tengo ni idea de desactivar bombas. Willy podrías beberte el líquido de la bomba con una pajita. + +[ROK3_17:ROCK3] +Sí, he oído que eres bueno en ese tipo de cosas. ¡Eh, aquella noche estaba muy colgado, como bien sabes! + +[ROK3_18:ROCK3] +¡Anda pásale una pajita a Willy! ¿Una pajita? ¡Este es el autobús de la gira de los Love Fist! + +[ROK3_19:ROCK3] +¿De dónde voy a sacar yo una pajita? ¿me entiendes? ¿Qué cable Tommy? El verde. No hay ninguno verde. + +[ROK3_20:ROCK3] +¿O es que este es verde? ¿Te parece verde alguno de estos cables? + +[ROK3_21:ROCK3] +¡Oh no! ¡La muerte está en las cartas! ¡Todo parece verde! Tenía que haberos dejado tirados cuando tuve la oportunidad. + +[ROK3_22:ROCK3] +Buscador de gloria. Capitalista. He estado tirando de ti durante años. Cállate. Eres un espantajo. + +[ROK3_23:ROCK3] +Una nena grande y chillona. Sí. Cállate y tira del cable. ¿Qué cable? Este... + +[ROK3_24:ROCK3] +¡NO, tío! estamos bien. ¡No hemos saltado por los aires, amigo. + +[ROK3_25:ROCK3] +Tommy, tío, chachi. Rock and roll, tío. ¿No tenemos que actuar? + +[ROK3_26:ROCK3] +¿Meter bulla? ¿Abusar de las fans? ¡LOVE FIST! + +[ROK3_27:ROCK3] +¿Has terminado con esa botella? + +{=================================== MISSION TABLE SERG1 ===================================} + +[TEX1_A:SERG1] +Entra y disfruta de los asientos de cuero, hijo. + +[TEX1_B:SERG1] +Demonios, mi padre solía decir, a caballo regalado no le mires el diente, y por Dios que nunca lo hizo. + +[TEX1_C:SERG1] +¿Te gustaría un trago del viejo Kentucky? + +[TEX1_D:SERG1] +No gracias. + +[TEX1_E:SERG1] +Alguien con la mente despejada, me gusta eso. + +[TEX1_F:SERG1] +El negocio de la propiedad no se trata solo de papeleo pretencioso. + +[TEX1_G:SERG1] +¡Se trata de tierra! ¡Y el derecho a reclamarla! ¿Me sigues, hijo? + +[TEX1_H:SERG1] +Sí. + +[TEX1_J:SERG1] +Y yo creo que eres la clase de tío para persuadirle. + +[TEX1_K:SERG1] +La persuasión es mi fuerte. + +[TEX1_L:SERG1] +Sí, estará en el club de campo, en el campo de golf. + +[TEX1_M:SERG1] +Allí no permiten armas, así que sus guardaespaldas no llevarán protección. + +[TEX1_N:SERG1] +Ve y dale una paliza inolvidable. + +[TEX1_O:SERG1] +Bien, toma... te he conseguido un carné de socio, y chico, vas a necesitar un tipo de ropa más apropiada. + +[TEX1_2:SERG1] +~g~Ahora ve al Club de golf Leaf Links. + +[TEX1_0:SERG1] +~g~El objetivo está en el campo de prácticas disfrutando de una partida de golf. ¡Asegúrate de que sea la última! + +[TEX1_3:SERG1] +¿Quién es este tipo? Chicos, ocuparos de él. + +[TEX1_6:SERG1] +¡Bonito culo nena! + +[TEX1_7:SERG1] +¿Este soy yo? + +[TEX1_I:SERG1] +Bueno, necesito algún cabrón obstinado que suelte algo de mierda. + +[TEX1_8:SERG1] +Cada vez que subas a un Caddy recibirás automáticamente un palo de golf, siempre que la ranura de armas blancas esté vacía. + +[TEX1_9:SERG1] +¡Atrapadle! + +[TEX1_10:SERG1] +¡Mata a ese psicópata! + +[TEX1_1:SERG1] +~g~Ve y consigue ropa de golf en Jocksports. + +{=================================== MISSION TABLE SERG2 ===================================} + +[TEX_2A:SERG2] +~g~¡Excelente! ¡Te han visto! + +[TEX_2B:SERG2] +~r~¡Idiota! ¡La gente debe PRESENCIAR a un cubano haciendo el trabajito! + +[TEX_2C:SERG2] +~g~¡Ve y consígue algo con los colores de la banda cubana en Little Havana! + +[TEX_2D:SERG2] +~g~¡Ahora elimina al capo de la banda haitiana en la Funeraria de Romero! + +[TEX2_A:SERG2] +Tommy, este es Donald Love. Donald, te presento a Tommy Vercetti, + +[TEX2_B:SERG2] +el último tirador más rápido en llegar a estos lares. + +[TEX2_C:SERG2] +Si... eh... + +[TEX2_D:SERG2] +Donald, ahora cállate y escucha, puede que aprendas algo. + +[TEX2_E:SERG2] +Veamos. Nada hace que los precios de las propiedades bajen más rápido que una guerra entre bandas al viejo estilo. + +[TEX2_F:SERG2] +Excepto un desastre quizás, como la peste de la que habla la biblia o algo así, + +[TEX2_G:SERG2] +aunque puede que en este caso vayamos demasiado lejos. + +[TEX2_H:SERG2] +¿Te estás enterando, capullo cuatro ojos? + +[TEX2_I:SERG2] +Hace poco murió un capo de una banda haitiana. Al parecer lo hicieron los cubanos, nadie lo sabe. + +[TEX2_J:SERG2] +¡Pero se lo haremos saber! Disfrázate de cubano + +[TEX2_K:SERG2] +y ve a reventar el funeral. Crea confusión y después le sigues bien de cerca. + +[TEX2_L:SERG2] +¿Te estás enterando, Donald? + +[TEX2_M:SERG2] +Eso debería meter al zorro en el gallinero. ¿Eh? + +[TEX2_N:SERG2] +y ahora sólo tenemos que sentarnos a esperar y ver cómo caen los precios. + +[TEXEXIT:SERG2] +~g~¡Lárgate de Little Haiti ahora! + +{=================================== MISSION TABLE SERG3 ===================================} + +[TEX3_A:SERG3] +Bien, mira, hijo. Tengo un problema y creo que podrías ayudarme con él. + +[TEX3_B:SERG3] +No soy constructor. + +[TEX3_C:SERG3] +No, estaba pensando más bien en tus habilidades para la demolición. + +[TEX3_D:SERG3] +Bien, esto de aquí es el centro empresarial tal y como se ha planeado, y éste + +[TEX3_E:SERG3] +es el solar que estamos buscando. + +[TEX3_F:SERG3] +Intentas decir que este nuevo bloque de oficinas está en medio. + +[TEX3_G:SERG3] +Lo captas rápido. + +[TEX3_H:SERG3] +Bien, voy a irme de esta ciudad durante un tiempo + +[TEX3_I:SERG3] +y si ese centro de oficinas se enfrentase a problemas estructurales repentinos e insalvables, entonces yo... + +[TEX3_J:SERG3] +¿Como buen ciudadano se sentirá obligado a intervenir y + +[TEX3_K:SERG3] +salvar la remodelación de una zona tan importante de la ciudad? + +[TEX3_L:SERG3] +¿Dónde puedo conseguir más tipos como tú? + +[TEX3_1:SERG3] +~g~Utiliza el helicóptero RC para transportar las bombas a los cuatro objetivos del edificio que debes demoler. + +[TEX3_2:SERG3] +~g~Debes colocar una bomba en cada objetivo. Puedes colocarlas en cualquier orden. + +[TEX3_3:SERG3] +~g~Para recoger una bomba, dirige el helicóptero RC hasta a ella. Solo puedes llevar las bombas de una en una. + +[TEX3_4:SERG3] { reVC update } +~g~Para soltar una bomba pulsa ~h~~k~~VEHICLE_FIREWEAPON~~g~. + +[TEX3_5:SERG3] +~g~Si fallas al colocar una bomba podrás recogerla e intentarlo de nuevo. + +[TEX3_6:SERG3] +~g~Cuando hayas recogido una bomba por primera vez, el temporizador de detonación se pondrá en marcha. + +[TEX3_7:SERG3] +~g~¡A continuación deberás conseguir colocar el resto de las bombas en 7 minutos! + +[TEX3_8:SERG3] +~g~¡Has fallado en el objetivo! ¡Recoge la bomba e inténtalo de nuevo! + +[TEX3_10:SERG3] +~g~Suelta la bomba en el objetivo. + +[TEX3_11:SERG3] +objetivos restantes: + +[TEX3_17:SERG3] +~r~¡Te has quedado sin tiempo! + +[TEX3_18:SERG3] +~r~¡Tu helicóptero RC ha sido destruido! + +[TEX3_19:SERG3] +~r~¡Has lanzado la bomba en el agua! ¡Esa no es manera de pescar! + +[TEX3_20:SERG3] +~g~¡Tu Helicóptero RC está casi fuera del alcance del control remoto! + +[TEX3_21:SERG3] +~r~¡Tu Helicóptero RC está fuera del alcance del control remoto! + +[TEX3_24:SERG3] +Pulsa ~h~~k~~VEHICLE_LOOKLEFT~ ~w~para girar el helicóptero en sentido contrario a las agujas del reloj. + +[TEX3_25:SERG3] +Pulsa ~h~~k~~VEHICLE_LOOKLEFT~ ~w~para girar el helicóptero en sentido de las agujas del reloj. + +[TEX3_27:SERG3] +~g~Una escalera central permite el acceso a todas las plantas del edificio. + +[TEX3_31:SERG3] +~r~¡Has destruido la furgoneta de TOPFUN que tenía las bombas y el helicóptero RC! + +[TEX3_32:SERG3] +Puedes ~h~mirar atrás~w~ si ~h~pulsas simultáneamente ~k~~VEHICLE_LOOKLEFT~ y ~k~~VEHICLE_LOOKRIGHT~~w~. + +[TEX3_29:SERG3] { reVC update } +~g~Para soltar una bomba pulsa ~h~~k~~VEHICLE_FIREWEAPON~~g~. + +[TEX3_26:SERG3] +Pulsa ~h~~k~~VEHICLE_BRAKE~~w~ para disminuir la velocidad del rotor y ~h~descender~w~. + +[TEX3_22:SERG3] +Pulsa ~h~~k~~VEHICLE_ACCELERATE~~w~ para aumentar la velocidad del rotor y así ~h~ascender~w~. + +[TEX3_16:SERG3] +~g~Ve a la furgoneta ~w~TOPFUN ~g~cercana al solar de construcción que se va a demoler. + +[TEX3_33:SERG3] +Una vez que recojas una bomba el radar te mostrará la posición del objetivo con relación al helicóptero RC. + +[TEX3_34:SERG3] +Un ~h~icono triangular apuntando hacia arriba ~w~indica que el objetivo está ~h~por encima ~w~del helicóptero RC. + +[TEX3_35:SERG3] +Un ~h~icono triangular apuntando hacia abajo ~w~indica que el objetivo está ~h~por debajo ~w~del helicóptero RC. + +[TEX3_36:SERG3] +Un ~h~icono cuadrado ~w~indica que el objetivo está al ~h~mismo nivel ~w~que el helicóptero RC. + +[TEX3_28:SERG3] +Para ~h~recoger una bomba~w~, simplemente dirige el helicóptero RC hasta ella. El helicóptero RC sólo puede transportar una bomba. + +[TEX3_30:SERG3] +~g~Para recoger una bomba, simplemente dirige el helicóptero RC hasta ella. El helicóptero RC sólo puede transportar una bomba. + +[TEX3_12:SERG3] +~g~¡Bomba colocada! ¡Quedan 3 objetivos más! Vuelve a por otra bomba. + +[TEX3_13:SERG3] +~g~¡Bomba colocada! ¡Quedan 2 objetivos más! Vuelve a por otra bomba. + +[TEX3_14:SERG3] +~g~¡Bomba colocada! ¡Queda 1 objetivo más! Vuelve a por otra bomba. + +[TEX3_15:SERG3] +~r~¡El temporizador de detonación se ha puesto en marcha! ~g~Debes colocar las ~w~4 bombas ~g~en el tiempo restante! + +[TEX3_37:SERG3] +Si empujas ~h~el joystick analógico derecho hacia atrás~w~, aumentarás la velocidad del rotor y así ~h~ascenderá~w~. + +[TEX3_38:SERG3] { reVC update } +{Pulsa ~h~~k~~VEHICLE_ACCELERATE~~w~ para aumentar la velocidad del rotor y así ~h~ascender~w~.} +Si empujas ~h~el joystick analógico derecho hacia adelante ~w~la velocidad del rotor aumenta, haciendo que el helicóptero ~h~descienda. + +[TEX3_39:SERG3] +~g~Para soltar una bomba pulsa ~h~~k~~VEHICLE_HANDBRAKE~~w~. + +[TEX3_40:SERG3] +~g~Para soltar una bomba pulsa ~h~~k~~VEHICLE_HANDBRAKE~~w~. + +[TEX3_23:SERG3] +Pulsa ~h~~k~~VEHICLE_TURRETUP~~w~ y ~h~~k~~VEHICLE_TURRETDOWN~~w~ para inclinar el helicóptero en la dirección deseada. + +{=================================== MISSION TABLE TAXI1 ===================================} + +[FARES:TAXI1] +CARRERAS: + +[TAXI1:TAXI1] +~g~Busca un cliente. + +[TSCORE2:TAXI1] +~1~ $ + +[IN_ROW:TAXI1] +~1~ ¡Racha de clientes! ~1~ $ + +[TAXI3:TAXI1] +~r~¡Tu pasajero huye aterrorizado! + +[TAXI7:TAXI1] +~r~Tu coche está destrozado, haz que lo reparen. + +[TAXI4:TAXI1] +¡Viaje completado! + +[TAXI5:TAXI1] +¡VIAJE RÁPIDO! + +[TAXI6:TAXI1] +Misión de taxista cancelada + +[TAXIH1:TAXI1] +Detente cerca de un peatón que esté resaltado para recogerle y llevarle a su destino antes de que se agote el tiempo. + +[FARE1:TAXI1] +~g~Destino ~w~''el club Pole Position'' ~g~en Ocean Beach. + +[FARE3:TAXI1] +~g~Destino ~w~''el club náutico'' ~g~en Ocean Beach. + +[FARE4:TAXI1] +~g~Destino ~w~''Ammu-Nation'' ~g~en Ocean Beach. + +[FARE5:TAXI1] +~g~Destino ~w~''la ferretería'' ~g~en Washington Beach. + +[FARE6:TAXI1] +~g~Destino ~w~''el centro comercial North Point'' ~g~en Vice Point. + +[MFARE1:TAXI1] +~g~Destino ~w~''Ammu-Nation'' ~g~en el centro. + +[MFARE2:TAXI1] +~g~Destino ~w~''la terminal'' ~g~en el aeropuerto Escobar International. + +[WFARE3:TAXI1] +~g~Destino ~w~''Coches Sunshine'' ~g~en Little Havana. + +[WFARE4:TAXI1] +~g~Destino ~w~''Taxis Kaufman'' ~g~en Little Haiti. + +[WFARE5:TAXI1] +~g~Destino ~w~''la ferretería'' ~g~en Little Havana. + +[WFARE6:TAXI1] +~g~Destino ~w~''Emporio Howlin Petes Bike'' ~g~en el centro. + +[FARE7:TAXI1] +~g~Destino ~w~''la joyería'' ~g~en Vice Point. + +[FARE8:TAXI1] +~g~Destino ~w~''la playa'' ~g~en Ocean Beach. + +[FARE9:TAXI1] +~g~Destino ~w~''la playa'' ~g~en Washington Beach. + +[FARE10:TAXI1] +~g~Destino ~w~''la playa'' ~g~en Vice Point. + +[FARE11:TAXI1] +~g~Destino ~w~''el hospital'' ~g~en Ocean Beach. + +[FARE12:TAXI1] +~g~Destino ~w~''el hospital'' ~g~en Vice Point. + +[FARE13:TAXI1] +~g~Destino ~w~''la comisaría de policía'' ~g~en Washington Beach. + +[FARE14:TAXI1] +~g~Destino ~w~''la comisaría de policía'' ~g~en Vice Point. + +[FARE15:TAXI1] +~g~Destino ~w~''la pizzería'' ~g~en Vice Point. + +[WFARE7:TAXI1] +~g~Destino ~w~''la comisaría de policía'' ~g~en Little Havana. + +[WFARE8:TAXI1] +~g~Destino ~w~''la comisaría de policía'' ~g~en el centro de la ciudad. + +[WFARE9:TAXI1] +~g~Destino ~w~''el hospital'' ~g~en el centro de la ciudad. + +[WFARE10:TAXI1] +~g~Destino ~w~''el hospital'' ~g~en Little Havana. + +[WFARE11:TAXI1] +~g~Destino ~w~''el estadio'' ~g~en el centro de la ciudad. + +[WFARE12:TAXI1] +~g~Destino ~w~''la pizzería'' ~g~en Little Haiti. + +[WFARE13:TAXI1] +~g~Destino ~w~''la pizzería'' ~g~en el centro de la ciudad. + +[WFARE14:TAXI1] +~g~Destino ~w~''los muelles'' ~g~en Viceport. + +[WFARE15:TAXI1] +~g~Destino ~w~''la farmacia'' ~g~en Little Haiti. + +[FARE2:TAXI1] +~g~Destino ~w~''el club Malibú'' ~g~en Vice Point. + +{=================================== MISSION TABLE TAXICUT ===================================} + +[TAXC_A:TAXICUT] +Supongo que eres el nuevo propietario. + +[TAXC_B:TAXICUT] +¿Qué eres, mafioso? ¿Del cártel? No pareces mejicano... + +[TAXC_C:TAXICUT] +En fin, será mejor que sueltes el rollo de ''las cosas van a cambiar por aquí'', + +[TAXC_D:TAXICUT] +quizás amenazar a alguno de los conductores... + +[TAXC_E:TAXICUT] +ve con calma con Ted, el de ahí, acaban de curarle la hernia. + +[TAXC_F:TAXICUT] +Bueno, sí. Las cosas van a cambiar por aquí, señora. + +[TAXC_G:TAXICUT] +Oh, mierda, hijo. Anda dejarme esto a mí... + +[TAXC_H:TAXICUT] +Llevo haciéndolo años. + +[TAXC_I:TAXICUT] +Ahora oíd esto. + +[TAXC_J:TAXICUT] +Ahora tenemos una nueva dirección y las cosas van a cambiar por aquí. + +[TAXC_K:TAXICUT] +Nuestra nueva dirección, los... + +[TAXC_L:TAXICUT] +¿De qué banda eres? + +[TAXC_M:TAXICUT] +Bueno, en realidad no formo parte de ninguna banda. + +[TAXC_N:TAXICUT] +¿Cómo coño te llamas, muchacho? + +[TAXC_O:TAXICUT] +Vercetti, Tommy Vercetti. + +[TAXC_P:TAXICUT] +Nuestra nueva administración, la banda de Vercetti, + +[TAXC_Q:TAXICUT] +se va a encargar de que no tengamos problemas. + +[TAXC_R:TAXICUT] +¿Capiche? ¡Corto! + +[TAXC_S:TAXICUT] +¿Te gustó el ''capiche''? A mí me gustó el ''capiche''. + +[TAXC_T:TAXICUT] +Así que así es como funcionaban las cosas en el pasado, + +[TAXC_U:TAXICUT] +Dirigimos la compañía como siempre. + +[TAXC_V:TAXICUT] +Si tenemos algún problema con las compañías rivales, tú les das una somanta de palos. + +[TAXC_W:TAXICUT] +Luego ellos nos la dan a nosotros, + +[TAXC_X:TAXICUT] +y después, se la vuelves a dar a ellos, + +[TAXC_Y:TAXICUT] +etcétera, etcétera. ¿Lo captas? + +[TAXC_Z:TAXICUT] +Sí, supongo... + +[TAXC_A1:TAXICUT] +Simplemente toma un taxi del garaje si tienes ganas de subir a bordo. + +{=================================== MISSION TABLE TAXIWA1 ===================================} + +[OUTTIME:TAXIWA1] +~r~¡Demasiado lento, tío, demasiado lento! + +[TAX1_1:TAXIWA1] +Tenemos un cliente importante que necesita que lo recojan en Starfish Island. ¿Alguien me recibe? + +[TAX1_2:TAXIWA1] +¡Aquí Tommy, yo lo recogeré! + +[TAX1_3:TAXIWA1] +¡Este es mi cliente, lárgate, gilipollas! + +[TAX1_4:TAXIWA1] +Venga, venga, entre, ¡rápido! + +[TAX1_5:TAXIWA1] +¡Vale, vale! ¡No me haga daño! + +[TAXW1_1:TAXIWA1] +~g~Recoge al V.I.P. en Starfish Island. + +[TAXW1_2:TAXIWA1] +~g~¡Recupera al V.I.P! ¡Destroza el otro coche! + +[TAXW1_3:TAXIWA1] +~r~¡El V.I.P. está muerto! + +[TAXW1_4:TAXIWA1] +~r~¡El V.I.P. se ha apeado! + +[TAXW1_6:TAXIWA1] +~g~¡Lleva al V.I.P. al aeropuerto! + +{=================================== MISSION TABLE TAXIWA2 ===================================} + +[TAX2_1:TAXIWA2] +Llamando a todos los taxis, estamos perdiendo clientes por toda la ciudad. ¿Qué os pasa, tíos? + +[TAX2_2:TAXIWA2] +Taxis VC sigue llevándonos la delantera. ¡Tienen tantos coches que no podemos competir! + +[TAX2_3:TAXIWA2] +Sr. Vercetti, si está ahí escuchando, ¡tiene que poner fuera de circulación unos cuantos Taxis VC antes de que nos hundan! + +[TAXW2_1:TAXIWA2] +~g~¡Destruye 3 de los taxis rivales! + +{=================================== MISSION TABLE TAXIWA3 ===================================} + +[TAX3_1:TAXIWA3] +Coche 13, tengo a una tal Señorita Cortez, preguntó especialmente por usted. + +[TAX3_2:TAXIWA3] +Vale, entendido. ¡Coche 13 en ruta! + +[TAX3_3:TAXIWA3] +No hay rastro de Mercedes... + +[TAXW3_3:TAXIWA3] +~g~Destrulle al taxi principal! + +[TAXW3_2:TAXIWA3] +~g~Permanece con vida hasta que se agote el temporizador. + +[TAX_AS1:TAXIWA3] +COMPAÑÍA DE TAXIS CONSOLIDADA + +[TAX_AS2:TAXIWA3] +~g~Los taxis Kaufman generarán ahora unos ingresos de hasta ~1~ $ máximo. Asegúrate de recaudarlos regularmente. + +[TAX3_4:TAXIWA3] +¡Es hora que el ángel guardián de Taxis Kaufman coma algo del parachoques! + +[TAX3_5:TAXIWA3] +¡Eh chico te voy a zurrar la badana! + +{ reVC updates } +{ new languages } +[FEL_JAP] +JAPONÉS + +[FEL_POL] +POLACO + +[FEL_RUS] +RUSO + +{ new display menus } +[FET_GFX] +CONFIGURACIÓN DE GRÁFICOS + +[FED_MIP] +MIPMAPPING + +[FED_AAS] +SUAVIZADO DE BORDES + +[FED_FIL] +FILTRO DE TEXTURAS + +[FED_BIL] +BILINEAL + +[FED_TRL] +TRILINEAL + +[FED_WND] +VENTANA + +[FED_FLS] +PANTALLA COMPLETA + +[FEM_CSB] +BORDES EN CINEMÁTICAS + +[FEM_SCF] +FORMATO DE IMAGEN + +[FEM_ISL] +USO DE MEMORIA + +[FEM_LOW] +BAJO + +[FEM_MED] +MEDIO + +[FEM_HIG] +ALTO + +[FEM_2PR] +ALPHA TEST TIPO PS2 + +[FEC_FRC] +CÁMARA LIBRE + +{ Linux joy detection } +[FEC_JOD] +DETECTAR JOYSTICK + +[FEC_JPR] +Pulsa cualquier botón del joystick que quieras usar con el juego para seleccionarlo. + +[FEC_JDE] +Joystick detectado + +{ mission restart } +[FET_RMS] +REPETIR MISIÓN + +[FESZ_RM] +¿REINTENTAR? + +[FED_VPL] +FLUJO DE VEHÍCULOS + +[FED_PRM] +LUCES EN PEATONES + +[FED_RGL] +BRILLO DE CARRETERAS + +[FED_CLF] +FILTRO DE COLOR + +[FED_WLM] +MAPAS DE LUZ DEL MUNDO + +[FED_MBL] +DESENFOQ. MOVIMIENTO + +[FEM_SIM] +SIMPLE + +[FEM_NRM] +NORMAL + +[FEM_MOB] +MÓVIL + +[FED_MFX] +MATFX + +[FED_NEO] +NEO + +[FEM_PS2] +PS2 + +[FEM_XBX] +XBOX + +[FEC_IVP] +INVERTIR VERTICALIDAD MANDO + +[FEM_NON] +NADA + +[FEC_DS2] +DUALSHOCK 2 + +[FEC_DS3] +DUALSHOCK 3 + +[FEC_DS4] +DUALSHOCK 4 + +[FEC_360] +MANDO DE XBOX 360 + +[FEC_ONE] +MANDO DE XBOX ONE + +[FEC_TYP] +TIPO DE MANDO + +[FET_AGS] +AJUSTES DE MANDO + +[FEM_AUT] { aspect ratio related } +AUTO + +{ end of file } [DUMMY] THIS LABEL NEEDS TO BE HERE !!! AS THE LAST LABEL DOES NOT GET COMPILED \ No newline at end of file diff --git a/vendor/librw/.appveyor.yml b/vendor/librw/.appveyor.yml deleted file mode 100644 index 5ff58de..0000000 --- a/vendor/librw/.appveyor.yml +++ /dev/null @@ -1,32 +0,0 @@ -image: Visual Studio 2017 -configuration: Release -environment: - GLFW_BASE: glfw-3.2.1.bin.WIN64 - GLFW_URL: https://github.com/glfw/glfw/releases/download/3.2.1/%GLFW_BASE%.zip - SDL2_BASE: SDL2-devel-2.0.8-VC - SDL2_URL: https://www.libsdl.org/release/%SDL2_BASE%.zip - SDL2_DIRAME: SDL2-2.0.8 - PREMAKE5_URL: https://github.com/premake/premake-core/releases/download/v5.0.0-alpha12/premake-5.0.0-alpha12-windows.zip - matrix: - - PLATFORM: win-amd64-null - - PLATFORM: win-amd64-gl3 - PREMAKE5_EXTRA_ARGS: --gfxlib=glfw - - PLATFORM: win-amd64-gl3 - PREMAKE5_EXTRA_ARGS: --gfxlib=sdl2 - - PLATFORM: win-amd64-d3d9 - -install: - - appveyor DownloadFile %GLFW_URL% -FileName "%APPVEYOR_BUILD_FOLDER%/%GLFW_BASE%.zip" - - 7z x "%APPVEYOR_BUILD_FOLDER%/%GLFW_BASE%.zip" - - appveyor DownloadFile %SDL2_URL% -FileName "%APPVEYOR_BUILD_FOLDER%/%SDL2_BASE%.zip" - - 7z x "%APPVEYOR_BUILD_FOLDER%/%SDL2_BASE%.zip" - - appveyor DownloadFile %PREMAKE5_URL% -FileName "%APPVEYOR_BUILD_FOLDER%/premake5.zip" - - mkdir "%APPVEYOR_BUILD_FOLDER%/bin" && cd "%APPVEYOR_BUILD_FOLDER%/bin" && 7z x "%APPVEYOR_BUILD_FOLDER%/premake5.zip" - - set PATH=%APPVEYOR_BUILD_FOLDER%/bin;%PATH% -before_build: - - mkdir "%APPVEYOR_BUILD_FOLDER%/build" - - cd "%APPVEYOR_BUILD_FOLDER%" - - premake5 vs2017 --glfwdir64=%APPVEYOR_BUILD_FOLDER%/%GLFW_BASE% --sdl2dir=%APPVEYOR_BUILD_FOLDER%/%SDL2_DIRAME% %PREMAKE5_EXTRA_ARGS% -build: - project: c:\projects\librw\build\librw.sln - verbosity: minimal diff --git a/vendor/librw/.github/workflows/build-cmake-conan.yml b/vendor/librw/.github/workflows/build-cmake-conan.yml deleted file mode 100644 index 092e1a6..0000000 --- a/vendor/librw/.github/workflows/build-cmake-conan.yml +++ /dev/null @@ -1,83 +0,0 @@ -name: Build using conan+cmake -on: - pull_request: - push: - release: - types: published -jobs: - build-cmake: - strategy: - matrix: - os: [windows-latest, ubuntu-latest, macos-latest] - platform: ['null', 'gl3', 'd3d9', 'ps2'] - gl3_gfxlib: ['glfw', 'sdl2'] - exclude: - - os: windows-latest - platform: ps2 - - os: ubuntu-latest - platform: d3d9 - - os: macos-latest - platform: d3d9 - - platform: 'null' - gl3_gfxlib: sdl2 - - platform: d3d9 - gl3_gfxlib: sdl2 - - platform: ps2 - gl3_gfxlib: sdl2 - runs-on: ${{ matrix.os }} - continue-on-error: ${{ matrix.platform == 'ps2' }} - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 - with: - python-version: '3.x' - - name: "Setup conan" - run: | - python -m pip install conan - conan config init - conan config set log.print_run_commands=True - conan remote add bincrafters https://api.bintray.com/conan/bincrafters/public-conan - conan remote add madebr_ps2dev https://api.bintray.com/conan/madebr/ps2dev - - name: "Add os=Playstation2 + gcc.version=3.2 to .conan/settings.yml" - if: ${{ matrix.platform == 'ps2' }} - shell: python - run: | - import os, yaml - settings_path = os.path.expanduser("~/.conan/settings.yml") - yml = yaml.safe_load(open(settings_path)) - yml["os"]["Playstation2"] = None - yml["compiler"]["gcc"]["version"].append("3.2") - yml["compiler"]["gcc"]["version"].sort() - yaml.safe_dump(yml, open(settings_path, "w")) - - name: "Create host profile" - shell: bash - run: | - if test "${{ matrix.platform }}" = "ps2"; then - cp conan/playstation2 host_profile - else - cp ~/.conan/profiles/default host_profile - fi - - name: "Export Playstation 2 CMake toolchain conan recipe" - run: | - conan export cmake/ps2toolchain ps2dev-cmaketoolchain/master@ - - name: "Download/build dependencies (conan install)" - run: | - conan install ${{ github.workspace }} librw/master@ -if build -o platform=${{ matrix.platform }} -o gl3_gfxlib=${{ matrix.gl3_gfxlib}} --build missing -pr:h ./host_profile -pr:b default - env: - CONAN_SYSREQUIRES_MODE: enabled - - name: "Build librw (conan build)" - run: | - conan build ${{ github.workspace }} -if build -bf build -pf package - - name: "Package librw (conan package)" - run: | - conan package ${{ github.workspace }} -if build -bf build -pf package - - name: "Create binary package (cpack)" - working-directory: ./build - run: | - cpack - - name: "Archive binary package (github artifacts)" - uses: actions/upload-artifact@v2 - with: - name: "${{ matrix.os }}-${{ matrix.platform }}" - path: build/*.tar.xz - if-no-files-found: error diff --git a/vendor/librw/.gitignore b/vendor/librw/.gitignore deleted file mode 100644 index d536cfb..0000000 --- a/vendor/librw/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -/bin -/build -/obj -/lib -/output -/.vs -librw.vcxproj.user -librw.VC.db -librw.VC.VC.opendb \ No newline at end of file diff --git a/vendor/librw/.travis.yml b/vendor/librw/.travis.yml deleted file mode 100644 index 91411e6..0000000 --- a/vendor/librw/.travis.yml +++ /dev/null @@ -1,46 +0,0 @@ -language: cpp - -matrix: - include: - - os: linux - env: TARGET=release_linux-amd64-null - script: - - mkdir -p "$TRAVIS_BUILD_DIR/build" - #- docker build -t librw "$TRAVIS_BUILD_DIR" - #- docker run -v "$TRAVIS_BUILD_DIR:/librw:rw,z" --name librw_instance -d librw sleep infinity - - docker pull librw/librw - - docker run -v "$TRAVIS_BUILD_DIR:/librw:rw,z" -v "$TRAVIS_BUILD_DIR/build:/build:rw,z" --name librw_instance -d librw/librw sleep infinity - - docker exec -u builder librw_instance /bin/bash -c "cd /librw && premake5 gmake && cd /librw/build && make config=$TARGET verbose=1" - - os: linux - env: TARGET=release_linux-amd64-gl3 GFXLIB=glfw - services: docker - script: - - mkdir -p "$TRAVIS_BUILD_DIR/build" - #- docker build -t librw "$TRAVIS_BUILD_DIR" - #- docker run -v "$TRAVIS_BUILD_DIR:/librw:rw,z" --name librw_instance -d librw sleep infinity - - docker pull librw/librw - - docker run -v "$TRAVIS_BUILD_DIR:/librw:rw,z" -v "$TRAVIS_BUILD_DIR/build:/build:rw,z" --name librw_instance -d librw/librw sleep infinity - - docker exec -u builder librw_instance /bin/bash -c "cd /librw && premake5 --gfxlib=$GFXLIB gmake && cd /librw/build && make config=$TARGET verbose=1" - - os: linux - env: TARGET=release_linux-amd64-gl3 GFXLIB=sdl2 - services: docker - script: - - mkdir -p "$TRAVIS_BUILD_DIR/build" - #- docker build -t librw "$TRAVIS_BUILD_DIR" - #- docker run -v "$TRAVIS_BUILD_DIR:/librw:rw,z" --name librw_instance -d librw sleep infinity - - docker pull librw/librw - - docker run -v "$TRAVIS_BUILD_DIR:/librw:rw,z" -v "$TRAVIS_BUILD_DIR/build:/build:rw,z" --name librw_instance -d librw/librw sleep infinity - - docker exec -u builder librw_instance /bin/bash -c "cd /librw && premake5 --gfxlib=$GFXLIB gmake && cd /librw/build && make config=$TARGET verbose=1" - - name: "ps2" - os: linux - env: TARGET=release_ps2 - services: docker - script: - - mkdir -p "$TRAVIS_BUILD_DIR/build" - #- docker build -t librw "$TRAVIS_BUILD_DIR" - #- docker run -v "$TRAVIS_BUILD_DIR:/librw:rw,z" --name librw_instance -d librw sleep infinity - - docker pull librw/librw - - docker run -v "$TRAVIS_BUILD_DIR:/librw:rw,z" -v "$TRAVIS_BUILD_DIR/build:/build:rw,z" --name librw_instance -d librw/librw sleep infinity - - docker exec -u builder librw_instance /bin/bash -c "cd /librw && premake5 gmake && cd /librw/build && make config=$TARGET verbose=1" - allow_failures: - - name: "ps2" diff --git a/vendor/librw/ARCHITECTURE.MD b/vendor/librw/ARCHITECTURE.MD deleted file mode 100644 index dad04fa..0000000 --- a/vendor/librw/ARCHITECTURE.MD +++ /dev/null @@ -1,174 +0,0 @@ -This document gives an overview of the architecture of librw. - -Disclaimer: Some of these design decision were taken over from original RW, -some are my own. I only take partial responsibility. - -Differently from original RW, librw has no neat separation into modules. -Some things could be made optional, but in particular RW's RpWorld -plugin is integrated with everything else. - -# Plugins - -To extend structs with custom data, -RW (and librw) provides a plugin mechanism -for certain structs. -This can be used to tack more data onto a struct -and register custom streaming functions. -Plugins must be registered before any instance -of that struct is allocated. - -# Pipelines - -RW's pipeline architecture was designed for very flexible data flow. -Unfortunately for RW most of the rendering pipeline moved into the GPU -causing RW's pipeline architecture to be severely overengineered. - -librw's pipeline architecture is therefore much simplified -and only implements what is actually needed, -but the name *pipeline* is retained. - -Three pipelines are implemented in librw itself: -Default, Skin, MatFX (only env map so far). -Others can be implemented by applications using librw. - -# RW Objects - -## Frame - -A Frame is an orientation in space, arranged in a hierarchy. -Camera, Lights and Atomics can be attached to it. -It has two matrices: a (so called) model matrix, -which is relative to its parent, -and a local transformation matrix (LTM) which is relative to the world. -The LTM is updated automatically as needed whenever the hierarchy gets dirty. - -## Camera - -A Camera is attached to a Frame to position it in space -and has a framebuffer and a z-buffer attached to render to. -Rendering is started by `beginUpdate` and ended by `endUpdate`. -This sets up things like framebuffers and matrices -so that the Camera's raster can be rendered to. - -## Light - -Lights are attached to a Frame to position it in space. -They are used to light Atomics for rendering. -Different types of light are possible. - -## Geometry - -A Geometry contains the raw geometry data that can be rendered. -It has a list of materials that are applied to its triangles. -The latter are sorted by materials into meshes for easier instancing. - -## Atomic - -An Atomic is attached to a Frame to position it in space -and references a Geometry. -Atomics are the objects that are rendered by pipelines. - -## Clump - -A Clump is a container of Atomics, Lights and Cameras. -Clumps can be read from and written to DFF files. -Rendering a Clump will be render all of its Atomics. - -# Engine - -Due to the versatility of librw, -there are three levels of code: -Platform indpendent code, -platform specific code, -and render device specific code. - -The second category does not exist in original RW, -but because librw is supposed to be able to -convert between all sorts of platform specific files, -the code for that has to be available no matter -the render platform used. -The common interface for all device-independent -platform code is the `Driver` struct. -The `Engine` struct has an array with one for each platform. - -The render device specific code -is used for actually rendering something to the screen. -The common interface for the device-dependent -code is the `Device` struct and the `Engine` -struct only has a single one, as there can only be one render device -(i.e. you cannot select D3D or OpenGL at runtime). - -Thus when implementing a new backend -you have to implement the `Driver` and `Device` interfaces. -But do note that the `Driver` can be extended with plugins! - -# Driver - -The driver is mostly concerned with conversion -between platform independent data to platform dependent one, and vice versa. -This concerns the following two cases. - -## Raster, Images - -Images contain platform independent uncompressed pixel data. -Rasters contain platform dependent (and possibly compressed) pixel data. -A driver has to be able to convert an image to a raster for the purposes of loading textures -from files or having them converted from foreign rasters. -Converting from rasters to images is not absolutely necessary but it's needed e.g. for taking screenshots. -librw has a set of default raster formats that the platform is -expected to implement for the most part, however not all have to be supported necessarily. -A driver is also free to implement its own formats; -this is done for texture compression. - -Rasters have different types, -`TEXTURE` and `CAMERATEXTURE` rasters can be used as textures, -`CAMERA` and `CAMERATEXTURE` can be used as render targets, -`ZBUFFER` is used as a depth-buffer. - -## Pipelines - -A librw ObjPipeline implements essentially -an instance stage which converts platform independent geometry -to a format that can efficiently be rendered, -and a render stage that actually renders it. -(There is also an uninstance function, -but this is only used to convert platform specific geometry back to the generic format -and hence is not necessary.) - -# Device - -The device implements everything that is actually needed for rendering. - -This includes starting, handling and closing the rendering device, -setting render states, -allocating and destroying buffers and textures, -im2d and im3d rendering, -and the render functions of the pipelines. - -## System - -The `system` function implements certain device requests -from the engine (why these aren't separate functions I don't know, RW design). - -The `Engine` is started in different stages, at various points of which -the render device gets different requests. -At the end the device is initialized and ready for rendering. -A similar but reverse sequence happens on shutdown. - -Subsystems (screens) and video modes are queried through -the `system` by the application before the device is started. - -## Immediate mode - -Im2d and im3d are immediate-mode style rendering interface. - -## Pipelines - -For instancing the typical job is to allocate and fill -a struct to hold some data about an atomic, -an array of structs for all the meshes, -and vertex and index buffers to hold geometry for rendering. - -The render function will render the previously instanced -data by doing a per-object setup and then iterating over -and rendering all the meshes. diff --git a/vendor/librw/CMakeLists.txt b/vendor/librw/CMakeLists.txt deleted file mode 100644 index 81d3a43..0000000 --- a/vendor/librw/CMakeLists.txt +++ /dev/null @@ -1,119 +0,0 @@ -cmake_minimum_required(VERSION 3.8) -project(librw C CXX) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake") - -if(WIN32) - set(LIBRW_PLATFORMS "NULL" "GL3" "D3D9") -else() - set(LIBRW_PLATFORMS "NULL" "GL3" "PS2") -endif() -set(LIBRW_PLATFORM "NULL" CACHE STRING "Platform") -set_property(CACHE LIBRW_PLATFORM PROPERTY STRINGS ${LIBRW_PLATFORMS}) -message(STATUS "LIBRW_PLATFORM = ${LIBRW_PLATFORM} (choices=${LIBRW_PLATFORMS})") -set("LIBRW_PLATFORM_${LIBRW_PLATFORM}" ON) -if(NOT LIBRW_PLATFORM IN_LIST LIBRW_PLATFORMS) - message(FATAL_ERROR "Illegal LIBRW_PLATFORM=${LIBRW_PLATFORM}") -endif() - -set(LIBRW_GL3_GFXLIBS "GLFW" "SDL2") -set(LIBRW_GL3_GFXLIB "GLFW" CACHE STRING "gfxlib for gl3") -set_property(CACHE LIBRW_GL3_GFXLIB PROPERTY STRINGS ${LIBRW_GL3_GFXLIBS}) -if(LIBRW_PLATFORM_GL3) - message(STATUS "LIBRW_GL3_GFXLIB = ${LIBRW_GL3_GFXLIB} (choices=${LIBRW_GL3_GFXLIBS})") -endif() -if(NOT LIBRW_GL3_GFXLIB IN_LIST LIBRW_GL3_GFXLIBS) - message(FATAL_ERROR "Illegal LIBRW_GL3_GFXLIB=${LIBRW_GL3_GFXLIB}") -endif() - -if(LIBRW_PLATFORM_PS2) - enable_language(DSM) -endif() - -option(LIBRW_TOOLS "Build librw tools" ON) -option(LIBRW_INSTALL "Install librw files" OFF) - -if(LIBRW_INSTALL) - include(GNUInstallDirs) - set(LIBRW_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}/librw") -endif() - -add_subdirectory(src) - -if(LIBRW_TOOLS) - add_subdirectory(skeleton) - - add_subdirectory(tools) -endif() - -if(LIBRW_INSTALL) - include(CMakePackageConfigHelpers) - configure_package_config_file(cmake/librw-config.cmake.in librw-config.cmake - INSTALL_DESTINATION "${CMAKE_INSTALL_PREFIX}" - ) - install( - FILES "${CMAKE_CURRENT_BINARY_DIR}/librw-config.cmake" - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" - ) - install( - EXPORT librw-targets NAMESPACE librw:: - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" - ) - - string(REPLACE "." ";" cmake_c_compiler_version_list "${CMAKE_C_COMPILER_VERSION}") - list(GET cmake_c_compiler_version_list 0 cmake_c_compiler_version_major) - - string(TOLOWER "${LIBRW_PLATFORM}" librw_platform) - set(compiler) - set(os) - if(NOT LIBRW_PLATFORM STREQUAL "PS2") - if(MSVC) - set(compiler "-msvc${MSVC_VERSION}") - elseif(CMAKE_C_COMPILER_ID STREQUAL "GNU") - set(compiler "-gcc${cmake_c_compiler_version_major}") - elseif(CMAKE_C_COMPILER_ID STREQUAL "Clang") - set(compiler "-clang${cmake_c_compiler_version_major}") - elseif(CMAKE_C_COMPILER_ID STREQUAL "AppleClang") - set(compiler "-appleclang${cmake_c_compiler_version_major}") - else() - set(compiler "-UNK") - message(WARNING "Unknown compiler. Created cpack package will be wrong. (override using cpack -P)") - endif() - endif() - if(LIBRW_PLATFORM_NULL) - set(platform "-null") - elseif(LIBRW_PLATFORM_PS2) - set(platform "-ps2") - elseif(LIBRW_PLATFORM_GL3) - if(LIBRW_GL3_GFXLIB STREQUAL "GLFW") - set(platform "-gl3-glfw") - else() - set(platform "-gl3-sdl2") - endif() - elseif(LIBRW_PLATFORM_D3D9) - set(platform "-d3d9") - endif() - if(NOT LIBRW_PLATFORM_PS2) - if(WIN32) - set(os "-win") - elseif(APPLE) - set(os "-apple") - elseif(UNIX) - set(os "-linux") - else() - set(compiler "-UNK") - message(WARNING "Unknown os. Created cpack package will be wrong. (override using cpack -P)") - endif() - endif() - - set(CPACK_PACKAGE_NAME "${PROJECT_NAME}${platform}${os}${compiler}") - set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "A (partial) re-implementation of RenderWare Graphics") - set(CPACK_PACKAGE_VENDOR "aap") - set(CPACK_PACKAGE_DESCRIPTION_FILE "${PROJECT_SOURCE_DIR}/LICENSE") - set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE") - set(CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_NAME}") - set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}") - set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}") - set(CPACK_GENERATOR "TXZ") - include(CPack) -endif() diff --git a/vendor/librw/Dockerfile b/vendor/librw/Dockerfile deleted file mode 100644 index a664173..0000000 --- a/vendor/librw/Dockerfile +++ /dev/null @@ -1,60 +0,0 @@ -FROM ubuntu:rolling - -ENV PS2DEV /ps2dev -ENV PS2SDK $PS2DEV/ps2sdk -ENV PATH $PATH:$PS2DEV/bin:$PS2DEV/ee/bin:$PS2DEV/iop/bin:$PS2DEV/dvp/bin:$PS2SDK/bin - -ENV DEBIAN_FRONTEND noninteractive - -ENV TOOLCHAIN_GIT_URL git://github.com/ps2dev/ps2toolchain.git -ENV TOOLCHAIN_GIT_BRANCH master - -ENV PREMAKE5_URL=https://github.com/premake/premake-core/releases/download/v5.0.0-alpha12/premake-5.0.0-alpha12-linux.tar.gz - -RUN mkdir -p "$PS2DEV" "$PS2SDK" \ - && apt-get update \ - && apt-get upgrade -y \ - && apt-get install -y \ - build-essential \ - cmake \ - autoconf \ - bzip2 \ - gcc \ - git \ - libucl-dev \ - make \ - patch \ - vim \ - wget \ - zip \ - zlib1g-dev \ - libglfw3-dev \ - libsdl2-dev \ - && git clone -b $TOOLCHAIN_GIT_BRANCH $TOOLCHAIN_GIT_URL /toolchain \ - && cd /toolchain \ - && ./toolchain.sh \ - && git clone git://github.com/ps2dev/ps2eth.git /ps2dev/ps2eth \ - && make -C /ps2dev/ps2eth \ - && git clone git://github.com/ps2dev/ps2-packer.git /ps2-packer \ - && make install -C /ps2-packer \ - && rm -rf \ - /ps2-packer \ - /ps2dev/ps2eth/.git \ - /ps2dev/ps2sdk/test.tmp \ - /ps2dev/test.tmp \ - /toolchain \ - && rm -rf /var/lib/apt/lists/* \ - && wget "$PREMAKE5_URL" -O /tmp/premake5.tar.gz \ - && tar xf /tmp/premake5.tar.gz -C /usr/bin/ \ - && rm /tmp/premake5.tar.gz \ - && groupadd 1000 -g 1000 \ - && groupadd 1001 -g 1001 \ - && groupadd 2000 -g 2000 \ - && groupadd 999 -g 999 \ - && useradd -ms /bin/bash builder -g 1001 -G 1000,2000,999 \ - && printf "builder:builder" | chpasswd \ - && adduser builder sudo \ - && printf "builder ALL= NOPASSWD: ALL\\n" >> /etc/sudoers - -USER builder -WORKDIR /home/builder diff --git a/vendor/librw/LICENSE b/vendor/librw/LICENSE deleted file mode 100644 index ef53cc2..0000000 --- a/vendor/librw/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 aap - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - diff --git a/vendor/librw/README.md b/vendor/librw/README.md deleted file mode 100644 index 77defd0..0000000 --- a/vendor/librw/README.md +++ /dev/null @@ -1,26 +0,0 @@ -librw -===== - -This library is supposed to be a re-implementation of RenderWare graphics, -or a good part of it anyway. - -It is intended to be cross-platform in two senses: -support rendering on different platforms similar to RW; -supporting all file formats for all platforms at all times and provide -way to convert to all other platforms. - -Supported file formats are DFF and TXD for PS2, D3D8, D3D9 and Xbox. -Not all pre-instanced PS2 DFFs are supported. -BSP is not supported at all. - -For rendering we have D3D9 and OpenGL (>=2.1, ES >= 2.0) backends. -Rendering some things on the PS2 is working as a test only. - -# Uses - -librw can be used for rendering [GTA](https://github.com/gtamodding/re3). - -# Building - -Get premake5. Generate a config, e.g. with ``premake5 gmake``, -and look in the build directory. diff --git a/vendor/librw/TODO b/vendor/librw/TODO deleted file mode 100644 index c4d8cdb..0000000 --- a/vendor/librw/TODO +++ /dev/null @@ -1,16 +0,0 @@ -TODO: -- tristrips -- examples -- morphing -- Pipelines (PDS, Xbox, PC) - -driver -- metrics - -ps2 -- rendering! -- ADC conversion - - -BUGS: - - fseek with negative offset on ps2 over ps2link messes up the current position diff --git a/vendor/librw/args.h b/vendor/librw/args.h deleted file mode 100644 index 0e666c1..0000000 --- a/vendor/librw/args.h +++ /dev/null @@ -1,24 +0,0 @@ -extern char *argv0; -#define USED(x) ((void)x) -#define SET(x) ((x)=0) - -#define ARGBEGIN for((argv0||(argv0=*argv)),argv++,argc--;\ - argv[0] && argv[0][0]=='-' && argv[0][1];\ - argc--, argv++) {\ - char *_args, *_argt;\ - char _argc;\ - _args = &argv[0][1];\ - if(_args[0]=='-' && _args[1]==0){\ - argc--; argv++; break;\ - }\ - _argc = 0;\ - while(*_args && (_argc = *_args++))\ - switch(_argc) -#define ARGEND SET(_argt);USED(_argt);USED(_argc);USED(_args);}USED(argv);USED(argc); -#define ARGF() (_argt=_args, _args=(char*)"",\ - (*_argt? _argt: argv[1]? (argc--, *++argv): 0)) -#define EARGF(x) (_argt=_args, _args=(char*)"",\ - (*_argt? _argt: argv[1]? (argc--, *++argv): ((x), abort(), (char*)0))) - -#define ARGC() _argc - diff --git a/vendor/librw/cmake/FindSDL2.cmake b/vendor/librw/cmake/FindSDL2.cmake deleted file mode 100644 index 24288b4..0000000 --- a/vendor/librw/cmake/FindSDL2.cmake +++ /dev/null @@ -1,38 +0,0 @@ -find_package(PkgConfig QUIET) -if(PKG_CONFIG_FOUND) - pkg_check_modules(SDL2 IMPORTED_TARGET "sdl2") - if(TARGET PkgConfig::SDL2 AND NOT TARGET SDL2::SDL2) - add_library(SDL2::SDL2 INTERFACE IMPORTED) - set_property(TARGET SDL2::SDL2 PROPERTY INTERFACE_LINK_LIBRARIES PkgConfig::SDL2) - endif() -endif() - -find_library(SDL2main_LIBRARY SDL2main) - -if(NOT SDL2_FOUND) - find_path(SDL2_INCLUDE_DIR sdl2.h) - find_library(SDL2_LIBRARY SDL2 SDL2d) - - find_library(SDL2main_LIBRARY SDL2main) - - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(libuv - REQUIRED_VARS SDL2_INCLUDE_DIR SDL2_LIBRARY - ) - - if(NOT TARGET SDL2::SDL2) - add_library(SDL2::SDL2 UNKNOWN IMPORTED) - set_target_properties(SDL2::SDL2 PROPERTIES - IMPORTED_LOCATION "${SDL2_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIR}" - ) - endif() -endif() - -if(SDL2main_LIBRARY AND NOT TARGET SDL2::SDL2main) - add_library(SDL2::SDL2main UNKNOWN IMPORTED) - set_target_properties(SDL2::SDL2main PROPERTIES - IMPORTED_LOCATION "${SDL2main_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIR}" - ) -endif() diff --git a/vendor/librw/cmake/librw-config.cmake.in b/vendor/librw/cmake/librw-config.cmake.in deleted file mode 100644 index 67dd050..0000000 --- a/vendor/librw/cmake/librw-config.cmake.in +++ /dev/null @@ -1,18 +0,0 @@ -include("${CMAKE_CURRENT_LIST_DIR}/librw-targets.cmake") - -set(LIBRW_PLATFORM "@LIBRW_PLATFORM@") -set(LIBRW_PLATFORMS "@LIBRW_PLATFORMS@") -set(LIBRW_PLATFORM_@LIBRW_PLATFORM@ ON) - -if(LIBRW_PLATFORM_GL3) - set(LIBRW_GL3_GFXLIB "@LIBRW_GL3_GFXLIB@") - set(LIBRW_GL3_GFXLIBS "@LIBRW_GL3_GFXLIBS@") - - set(OpenGL_GL_PREFERENCE GLVND) - find_package(OpenGL REQUIRED) - if(LIBRW_GL3_GFXLIB STREQUAL "GLFW") - find_package(glfw3 REQUIRED) - elseif(LIBRW_GL3_GFXLIB STREQUAL "SDL2") - find_package(SDL2 REQUIRED) - endif() -endif() diff --git a/vendor/librw/cmake/ps2toolchain/CMakeDSMCompiler.cmake.in b/vendor/librw/cmake/ps2toolchain/CMakeDSMCompiler.cmake.in deleted file mode 100644 index 9a55d4c..0000000 --- a/vendor/librw/cmake/ps2toolchain/CMakeDSMCompiler.cmake.in +++ /dev/null @@ -1,16 +0,0 @@ -set(CMAKE_DSM_COMPILER "@_CMAKE_DSM_COMPILER@") -set(CMAKE_DSM_COMPILER_ARG1 "@_CMAKE_DSM_COMPILER_ARG1@") -set(CMAKE_DSM_COMPILER_AR "@_CMAKE_DSM_COMPILER_AR@") -set(CMAKE_RANLIB "@CMAKE_RANLIB@") -set(CMAKE_DSM_COMPILER_RANLIB "@_CMAKE_DSM_COMPILER_RANLIB@") -set(CMAKE_LINKER "@CMAKE_LINKER@") -set(CMAKE_DSM_COMPILER_LOADED 1) -set(CMAKE_DSM_COMPILER_ID "@_CMAKE_DSM_COMPILER_ID@") -set(CMAKE_DSM_COMPILER_VERSION "@_CMAKE_DSM_COMPILER_VERSION@") -set(CMAKE_DSM_COMPILER_ENV_VAR "@_CMAKE_DSM_COMPILER_ENV_VAR@") -@_SET_CMAKE_DSM_COMPILER_ARCHITECTURE_ID@ - -set(CMAKE_DSM_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) -set(CMAKE_DSM_LINKER_PREFERENCE 0) - -@CMAKE_DSM_COMPILER_CUSTOM_CODE@ diff --git a/vendor/librw/cmake/ps2toolchain/CMakeDSMInformation.cmake b/vendor/librw/cmake/ps2toolchain/CMakeDSMInformation.cmake deleted file mode 100644 index 27b56d6..0000000 --- a/vendor/librw/cmake/ps2toolchain/CMakeDSMInformation.cmake +++ /dev/null @@ -1,79 +0,0 @@ -if(UNIX) - set(CMAKE_DSM_OUTPUT_EXTENSION .o) -else() - set(CMAKE_DSM_OUTPUT_EXTENSION .obj) -endif() - -set(CMAKE_INCLUDE_FLAG_DSM "-I") - -set(CMAKE_DSM_FLAGS_INIT "$ENV{DSMFLAGS} ${CMAKE_DSM_FLAGS_INIT}") - -# replace for CMake >= 3.11 -foreach(c "" _DEBUG _RELEASE _MINSIZEREL _RELWITHDEBINFO) - string(STRIP "${CMAKE_DSM_FLAGS${c}_INIT}" CMAKE_DSM_FLAGS${c}_INIT) -endforeach() - -set (CMAKE_DSM_FLAGS "${CMAKE_DSM_FLAGS_INIT}" CACHE STRING - "Flags used by the assembler during all build types.") - -if(NOT CMAKE_NOT_USING_CONFIG_FLAGS) - get_property(_GENERATOR_IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) - # default build type is none - if(NOT _GENERATOR_IS_MULTI_CONFIG AND NOT CMAKE_NO_BUILD_TYPE) - set (CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE_INIT} CACHE STRING - "Choose the type of build, options are: None, Debug Release RelWithDebInfo MinSizeRel.") - endif() - unset(_GENERATOR_IS_MULTI_CONFIG) - set (CMAKE_DSM_FLAGS_DEBUG "${CMAKE_DSM_FLAGS_DEBUG_INIT}" CACHE STRING - "Flags used by the assembler during debug builds.") - set (CMAKE_DSM_FLAGS_MINSIZEREL "${CMAKE_DSM_FLAGS_MINSIZEREL_INIT}" CACHE STRING - "Flags used by the assembler during release minsize builds.") - set (CMAKE_DSM_FLAGS_RELEASE "${CMAKE_DSM_FLAGS_RELEASE_INIT}" CACHE STRING - "Flags used by the assembler during release builds.") - set (CMAKE_DSM_FLAGS_RELWITHDEBINFO "${CMAKE_DSM_FLAGS_RELWITHDEBINFO_INIT}" CACHE STRING - "Flags used by the assembler during Release with Debug Info builds.") -endif() - -mark_as_advanced(CMAKE_DSM_FLAGS - CMAKE_DSM_FLAGS_DEBUG - CMAKE_DSM_FLAGS_MINSIZEREL - CMAKE_DSM_FLAGS_RELEASE - CMAKE_DSM_FLAGS_RELWITHDEBINFO - ) -# WITH: cmake_initialize_per_config_variable(CMAKE_DSM_FLAGS "Flags used by the DSM compiler") - -if(NOT CMAKE_DSM_COMPILE_OBJECT) - set(CMAKE_DSM_COMPILE_OBJECT " -o ") -endif() - -if(NOT CMAKE_DSM_CREATE_STATIC_LIBRARY) - set(CMAKE_DSM_CREATE_STATIC_LIBRARY - " cr " - " ") -endif() - -if(NOT CMAKE_DSM_LINK_EXECUTABLE) - set(CMAKE_DSM_LINK_EXECUTABLE - " -o ") -endif() - -if(NOT CMAKE_EXECUTABLE_RUNTIME_DSM_FLAG) - set(CMAKE_EXECUTABLE_RUNTIME_DSM_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_DSM_FLAG}) -endif() - -if(NOT CMAKE_EXECUTABLE_RUNTIME_DSM_FLAG_SEP) - set(CMAKE_EXECUTABLE_RUNTIME_DSM_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_DSM_FLAG_SEP}) -endif() - -if(NOT CMAKE_EXECUTABLE_RPATH_LINK_DSM_FLAG) - set(CMAKE_EXECUTABLE_RPATH_LINK_DSM_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_DSM_FLAG}) -endif() - -# to be done -if(NOT CMAKE_DSM_CREATE_SHARED_LIBRARY) - set(CMAKE_DSM_CREATE_SHARED_LIBRARY) -endif() - -if(NOT CMAKE_DSM_CREATE_SHARED_MODULE) - set(CMAKE_DSM_CREATE_SHARED_MODULE) -endif() diff --git a/vendor/librw/cmake/ps2toolchain/CMakeDetermineDSMCompiler.cmake b/vendor/librw/cmake/ps2toolchain/CMakeDetermineDSMCompiler.cmake deleted file mode 100644 index d3bda8b..0000000 --- a/vendor/librw/cmake/ps2toolchain/CMakeDetermineDSMCompiler.cmake +++ /dev/null @@ -1,87 +0,0 @@ -include(${CMAKE_ROOT}/Modules/CMakeDetermineCompiler.cmake) - -if (NOT CMAKE_DSM_COMPILER) - message(FATAL_ERROR "Need CMAKE_DSM_COMPILER set") -endif() - -_cmake_find_compiler_path(DSM) -mark_as_advanced(CMAKE_DSM_COMPILER) - -if (NOT CMAKE_DSM_COMPILER_ID) - # Table of per-vendor compiler id flags with expected output. - list(APPEND CMAKE_DSM_COMPILER_ID_VENDORS GNU ) - set(CMAKE_DSM_COMPILER_ID_VENDOR_FLAGS_GNU "--version") - set(CMAKE_DSM_COMPILER_ID_VENDOR_REGEX_GNU "(GNU assembler)|(GCC)|(Free Software Foundation)") - - include(CMakeDetermineCompilerId) - cmake_determine_compiler_id_vendor(DSM "") - -endif() - -if (NOT _CMAKE_TOOLCHAIN_LOCATION) - get_filename_component(_CMAKE_TOOLCHAIN_LOCATION "${CMAKE_DSM_COMPILER}" PATH) -endif() - -if (CMAKE_DSM_COMPILER_ID) - if (CMAKE_DSM_COMPILER_VERSION) - set(_version " ${CMAKE_DSM_COMPILER_VERSION}") - else() - set(_version "") - endif() - message(STATUS "The DSM compiler identification is ${CMAKE_DSM_COMPILER_ID}${_version}") - unset(_version) -else() - message(STATUS "The DSM compiler identification is unknown") -endif() - -if (NOT _CMAKE_TOOLCHAIN_PREFIX) - get_filename_component(COMPILER_BASENAME "${CMAKE_DSM_COMPILER}" NAME) - if (COMPILER_BASENAME MATCHES "^(.+1)g?as(-[0-9]+\\.[0-9]+\\.[0-9]+)?(\\.exe)?$") - set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1}) - endif() - -endif() - -set(_CMAKE_PROCESSING_LANGUAGE "DSM") -find_program(CMAKE_DSM_COMPILER_AR NAMES ${_CMAKE_TOOLCHAIN_PREFIX}ar HINTS ${_CMAKE_TOOLCHAIN_LOCATION}) -find_program(CMAKE_DSM_COMPILER_RANLIB NAMES ${_CMAKE_TOOLCHAIN_PREFIX}ranlib HINTS ${_CMAKE_TOOLCHAIN_LOCATION}) -find_program(CMAKE_DSM_COMPILER_STRIP NAMES ${_CMAKE_TOOLCHAIN_PREFIX}strip HINTS ${_CMAKE_TOOLCHAIN_LOCATION}) -find_program(CMAKE_DSM_COMPILER_NM NAMES ${_CMAKE_TOOLCHAIN_PREFIX}nm HINTS ${_CMAKE_TOOLCHAIN_LOCATION}) -find_program(CMAKE_DSM_COMPILER_OBJDUMP NAMES ${_CMAKE_TOOLCHAIN_PREFIX}objdump HINTS ${_CMAKE_TOOLCHAIN_LOCATION}) -find_program(CMAKE_DSM_COMPILER_OBJCOPY NAMES ${_CMAKE_TOOLCHAIN_PREFIX}objcopy HINTS ${_CMAKE_TOOLCHAIN_LOCATION}) - -unset(_CMAKE_PROCESSING_LANGUAGE) - -set(CMAKE_DSM_COMPILER_ENV_VAR "DSM") - -if (CMAKE_DSM_COMPILER) - message(STATUS "Found DSM assembler: ${CMAKE_DSM_COMPILER}") -else() - message(STATUS "Didn't find assembler") -endif() - -foreach(_var - COMPILER - COMPILER_ID - COMPILER_ARG1 - COMPILER_ENV_VAR - COMPILER_AR - COMPILER_RANLIB - COMPILER_VERSION - ) - set(_CMAKE_DSM_${_var} "${CMAKE_DSM_${_var}}") -endforeach() - -configure_file("${CMAKE_CURRENT_LIST_DIR}/CMakeDSMCompiler.cmake.in" - "${CMAKE_PLATFORM_INFO_DIR}/CMakeDSMCompiler.cmake" @ONLY) - -foreach(_var - COMPILER - COMPILER_ID - COMPILER_ARG1 - COMPILER_ENV_VAR - COMPILER_AR - COMPILER_VERSION - ) - unset(_CMAKE_DSM_${_var}) -endforeach() diff --git a/vendor/librw/cmake/ps2toolchain/CMakeTestDSMCompiler.cmake b/vendor/librw/cmake/ps2toolchain/CMakeTestDSMCompiler.cmake deleted file mode 100644 index 5c514ea..0000000 --- a/vendor/librw/cmake/ps2toolchain/CMakeTestDSMCompiler.cmake +++ /dev/null @@ -1,7 +0,0 @@ -set(_ASM_COMPILER_WORKS 0) - -if(CMAKE_DSM_COMPILER) - set(_DSM_COMPILER_WORKS) -endif() - -set(CMAKE_DSM_COMPILER_WORKS ${_DSM_COMPILER_WORKS} CACHE INTERNAL "") diff --git a/vendor/librw/cmake/ps2toolchain/Platform/PlayStation2.cmake b/vendor/librw/cmake/ps2toolchain/Platform/PlayStation2.cmake deleted file mode 100644 index bd2995e..0000000 --- a/vendor/librw/cmake/ps2toolchain/Platform/PlayStation2.cmake +++ /dev/null @@ -1 +0,0 @@ -set(CMAKE_EXECUTABLE_SUFFIX ".elf") diff --git a/vendor/librw/cmake/ps2toolchain/cmaketoolchain.cmake b/vendor/librw/cmake/ps2toolchain/cmaketoolchain.cmake deleted file mode 100644 index 6f83c96..0000000 --- a/vendor/librw/cmake/ps2toolchain/cmaketoolchain.cmake +++ /dev/null @@ -1,68 +0,0 @@ -cmake_minimum_required(VERSION 3.7) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") - -set(CMAKE_SYSTEM_NAME "PlayStation2") -set(CMAKE_SYSTEM_PROCESSOR "mipsel") -set(CMAKE_SYSTEM_VERSION 1) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_NO_SYSTEM_FROM_IMPORTED ON) - -set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) - -if(NOT DEFINED ENV{PS2DEV}) - message(FATAL_ERROR "Need environment variable PS2DEV set") -endif() -if(NOT DEFINED ENV{PS2SDK}) - message(FATAL_ERROR "Need environment variable PS2SDK set") -endif() -set(PS2DEV "$ENV{PS2DEV}") -set(PS2SDK "$ENV{PS2SDK}") - -if(NOT IS_DIRECTORY "${PS2DEV}") - message(FATAL_ERROR "PS2DEV must contain a folder path (${PS2DEV})") -endif() - -if(NOT IS_DIRECTORY "${PS2SDK}") - message(FATAL_ERROR "PS2SDK must contain a folder path (${PS2SDK})") -endif() - -set(CMAKE_DSM_SOURCE_FILE_EXTENSIONS "dsm") - -set(CMAKE_C_COMPILER "${PS2DEV}/ee/bin/ee-gcc") -set(CMAKE_CXX_COMPILER "${PS2DEV}/ee/bin/ee-g++") -set(CMAKE_ASM_COMPILER "${PS2DEV}/ee/bin/ee-g++") -set(CMAKE_DSM_COMPILER "${PS2DEV}/dvp/bin/dvp-as") -set(CMAKE_AR "${PS2DEV}/ee/bin/ee-ar" CACHE FILEPATH "archiver") -set(CMAKE_LINKER "${PS2DEV}/ee/bin/ee-ld") -set(CMAKE_RANLIB "${PS2DEV}/ee/bin/ee-ranlib" CACHE FILEPATH "ranlib") -set(CMAKE_STRIP "${PS2DEV}/ee/bin/ee-strip" CACHE FILEPATH "strip") - -set(CMAKE_ASM_FLAGS_INIT "-G0 -I\"${PS2SDK}/ee/include\" -I\"${PS2SDK}/common/include\"") -set(CMAKE_C_FLAGS_INIT "-G0 -fno-common -I\"${PS2SDK}/ee/include\" -I\"${PS2SDK}/common/include\"") -set(CMAKE_CXX_FLAGS_INIT "-G0 -fno-common -I\"${PS2SDK}/ee/include\" -I\"${PS2SDK}/common/include\"") -set(CMAKE_EXE_LINKER_FLAGS_INIT "-G0 -L\"${PS2SDK}/ee/lib\" -Wl,-r -Wl,-d") - -set(CMAKE_FIND_ROOT_PATH "${PS2DEV}/ee;${PS2SDK}/ee") -set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) -set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) -set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) - -set(PS2 1) -set(EE 1) - -function(add_erl_executable OUTFILE TARGET) - get_property(output_dir TARGET ${TARGET} PROPERTY RUNTIME_OUTPUT_DIRECTORY) - set(outfile "${output_dir}/${TARGET}.erl") - add_custom_command(OUTPUT "${outfile}" - COMMAND "${CMAKE_COMMAND}" -E copy "$" "${outfile}" - COMMAND "${CMAKE_STRIP}" --strip-unneeded -R .mdebug.eabi64 -R .reginfo -R .comment "${outfile}" - DEPENDS ${TARGET} - ) - add_custom_target("${TARGET}_erl" ALL - DEPENDS "${outfile}" - ) - set("${OUTFILE}" "${outfile}" PARENT_SCOPE) -endfunction() diff --git a/vendor/librw/cmake/ps2toolchain/conanfile.py b/vendor/librw/cmake/ps2toolchain/conanfile.py deleted file mode 100644 index 11c8628..0000000 --- a/vendor/librw/cmake/ps2toolchain/conanfile.py +++ /dev/null @@ -1,21 +0,0 @@ -from conans import ConanFile -import os -import shutil - - -class Ps2devCMakeToolchainConan(ConanFile): - name = "ps2dev-cmaketoolchain" - description = "CMake toolchain script for ps2dev" - topics = "ps2", "sdk", "library", "sony", "playstation", "ps2" - - def export_sources(self): - self.copy("*.cmake*", dst="cmake") - self.copy("Platform", dst="cmake") - - def package(self): - shutil.copytree(os.path.join(self.source_folder, "cmake"), - os.path.join(self.package_folder, "cmake")) - - def package_info(self): - self.user_info.cmake_dir = os.path.join(self.package_folder, "cmake").replace("\\", "/") - self.user_info.cmake_toolchain_file = os.path.join(self.package_folder, "cmake", "cmaketoolchain.cmake").replace("\\", "/") diff --git a/vendor/librw/cmake/ps2toolchain/toolchain_ps2_ee.cmake b/vendor/librw/cmake/ps2toolchain/toolchain_ps2_ee.cmake deleted file mode 100644 index 95517d0..0000000 --- a/vendor/librw/cmake/ps2toolchain/toolchain_ps2_ee.cmake +++ /dev/null @@ -1,60 +0,0 @@ -cmake_minimum_required(VERSION 3.7) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") - -set(CMAKE_SYSTEM_NAME "PlayStation2") -set(CMAKE_SYSTEM_PROCESSOR "mipsel") -set(CMAKE_SYSTEM_VERSION 1) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_NO_SYSTEM_FROM_IMPORTED ON) - -set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) - -if(NOT DEFINED ENV{PS2DEV}) - message(FATAL_ERROR "Need environment variable PS2DEV set") -endif() -if(NOT DEFINED ENV{PS2SDK}) - message(FATAL_ERROR "Need environment variable PS2SDK set") -endif() -set(PS2DEV "$ENV{PS2DEV}") -set(PS2SDK "$ENV{PS2SDK}") - -set(CMAKE_DSM_SOURCE_FILE_EXTENSIONS "dsm") - -set(CMAKE_C_COMPILER "${PS2DEV}/ee/bin/ee-gcc") -set(CMAKE_CXX_COMPILER "${PS2DEV}/ee/bin/ee-g++") -set(CMAKE_ASM_COMPILER "${PS2DEV}/ee/bin/ee-g++") -set(CMAKE_DSM_COMPILER "${PS2DEV}/dvp/bin/dvp-as") -set(CMAKE_AR "${PS2DEV}/ee/bin/ee-ar" CACHE FILEPATH "archiver") -set(CMAKE_LINKER "${PS2DEV}/ee/bin/ee-ld") -set(CMAKE_RANLIB "${PS2DEV}/ee/bin/ee-ranlib" CACHE FILEPATH "ranlib") -set(CMAKE_STRIP "${PS2DEV}/ee/bin/ee-strip" CACHE FILEPATH "strip") - -set(CMAKE_ASM_FLAGS_INIT "-G0 -I\"${PS2SDK}/ee/include\" -I\"${PS2SDK}/common/include\"") -set(CMAKE_C_FLAGS_INIT "-G0 -fno-common -I\"${PS2SDK}/ee/include\" -I\"${PS2SDK}/common/include\"") -set(CMAKE_CXX_FLAGS_INIT "-G0 -fno-common -I\"${PS2SDK}/ee/include\" -I\"${PS2SDK}/common/include\"") -set(CMAKE_EXE_LINKER_FLAGS_INIT "-G0 -L\"${PS2SDK}/ee/lib\" -Wl,-r -Wl,-d") - -set(CMAKE_FIND_ROOT_PATH "${PS2DEV}/ee;${PS2SDK}/ee") -set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) -set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) -set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) - -set(PS2 1) -set(EE 1) - -function(add_erl_executable OUTFILE TARGET) - get_property(output_dir TARGET ${TARGET} PROPERTY RUNTIME_OUTPUT_DIRECTORY) - set(outfile "${output_dir}/${TARGET}.erl") - add_custom_command(OUTPUT "${outfile}" - COMMAND "${CMAKE_COMMAND}" -E copy "$" "${outfile}" - COMMAND "${CMAKE_STRIP}" --strip-unneeded -R .mdebug.eabi64 -R .reginfo -R .comment "${outfile}" - DEPENDS ${TARGET} - ) - add_custom_target("${TARGET}_erl" ALL - DEPENDS "${outfile}" - ) - set("${OUTFILE}" "${outfile}" PARENT_SCOPE) -endfunction() diff --git a/vendor/librw/conan/playstation2 b/vendor/librw/conan/playstation2 deleted file mode 100644 index ddad52b..0000000 --- a/vendor/librw/conan/playstation2 +++ /dev/null @@ -1,12 +0,0 @@ -[settings] -os=Playstation2 -arch=mips -compiler=gcc -compiler.version=3.2 -compiler.libcxx=libstdc++ -build_type=Release -[options] -librw:platform=ps2 -[build_requires] -ps2dev-ps2toolchain/unknown@madebr/testing -[env] diff --git a/vendor/librw/conanfile.py b/vendor/librw/conanfile.py deleted file mode 100644 index 3032eae..0000000 --- a/vendor/librw/conanfile.py +++ /dev/null @@ -1,139 +0,0 @@ -from conans import ConanFile, CMake, tools -from conans.errors import ConanException, ConanInvalidConfiguration -import os -import shutil -import textwrap - - -class LibrwConan(ConanFile): - name = "librw" - version = "master" - license = "MIT" - settings = "os", "arch", "compiler", "build_type" - generators = "cmake", "cmake_find_package" - options = { - "platform": ["null", "gl3", "d3d9", "ps2"], - "gl3_gfxlib": ["glfw", "sdl2"], - } - default_options = { - "platform": "gl3", - "gl3_gfxlib": "glfw", - "openal:with_external_libs": False, - "sdl2:vulkan": False, - "sdl2:opengl": True, - "sdl2:sdl2main": True, - } - no_copy_source = True - - @property - def _os_is_playstation2(self): - try: - return self.settings.os == "Playstation2" - except ConanException: - return False - - def config_options(self): - if self._os_is_playstation2: - self.options.platform = "ps2" - if self.settings.os == "Windows": - self.options["sdl2"].directx = False - - def configure(self): - if self.options.platform != "gl3": - del self.options.gl3_gfxlib - - def validate(self): - if self.options.platform == "d3d9" and self.settings.os != "Windows": - raise ConanInvalidConfiguration("d3d9 can only be built for Windows") - if self.options.platform == "ps2": - if not self._os_is_playstation2: - raise ConanInvalidConfiguration("platform=ps2 is only valid for os=Playstation2") - else: - if self._os_is_playstation2: - raise ConanInvalidConfiguration("os=Playstation2 only supports platform=ps2") - - def requirements(self): - if self.options.platform == "gl3": - if self.options.gl3_gfxlib == "glfw": - self.requires("glfw/3.3.2") - elif self.options.gl3_gfxlib == "sdl2": - self.requires("sdl2/2.0.12@bincrafters/stable") - elif self.options.platform == "ps2": - self.requires("ps2dev-ps2sdk/unknown@madebr/testing") - if self._os_is_playstation2: - self.requires("ps2dev-cmaketoolchain/{}".format(self.version)) - - def export_sources(self): - for d in ("cmake", "skeleton", "src", "tools"): - shutil.copytree(src=d, dst=os.path.join(self.export_sources_folder, d)) - self.copy("args.h") - self.copy("rw.h") - self.copy("CMakeLists.txt") - self.copy("LICENSE") - - @property - def _librw_platform(self): - return { - "null": "NULL", - "gl3": "GL3", - "d3d9": "D3D9", - "ps2": "PS2", - }[str(self.options.platform)] - - def build(self): - if self.source_folder == self.build_folder: - raise Exception("cannot build with source_folder == build_folder") - if self.options.platform == "gl3" and self.options.gl3_gfxlib == "glfw": - tools.save("Findglfw3.cmake", - textwrap.dedent( - """ - if(NOT TARGET glfw) - message(STATUS "Creating glfw TARGET") - add_library(glfw INTERFACE IMPORTED) - set_target_properties(glfw PROPERTIES - INTERFACE_LINK_LIBRARIES CONAN_PKG::glfw) - endif() - """), append=True) - tools.save("CMakeLists.txt", - textwrap.dedent( - """ - cmake_minimum_required(VERSION 3.0) - project(cmake_wrapper) - - include("{}/conanbuildinfo.cmake") - conan_basic_setup(TARGETS) - - add_subdirectory("{}" librw) - """).format(self.install_folder.replace("\\", "/"), - self.source_folder.replace("\\", "/"))) - cmake = CMake(self) - env = {} - cmake.definitions["LIBRW_PLATFORM"] = self._librw_platform - cmake.definitions["LIBRW_INSTALL"] = True - cmake.definitions["LIBRW_TOOLS"] = True - if self.options.platform == "gl3": - cmake.definitions["LIBRW_GL3_GFXLIB"] = str(self.options.gl3_gfxlib).upper() - if self._os_is_playstation2: - cmake.definitions["CMAKE_TOOLCHAIN_FILE"] = self.deps_user_info["ps2dev-cmaketoolchain"].cmake_toolchain_file - env["PS2SDK"] = self.deps_cpp_info["ps2dev-ps2sdk"].rootpath - with tools.environment_append(env): - cmake.configure(source_folder=self.build_folder) - cmake.build() - - def package(self): - cmake = CMake(self) - cmake.install() - - def package_info(self): - self.cpp_info.includedirs.append(os.path.join("include", "librw")) - self.cpp_info.libs = ["librw" if self.settings.compiler == "Visual Studio" else "rw"] - if self.options.platform == "null": - self.cpp_info.defines.append("RW_NULL") - elif self.options.platform == "gl3": - self.cpp_info.defines.append("RW_GL3") - if self.options.gl3_gfxlib == "sdl2": - self.cpp_info.defines.append("LIBRW_SDL2") - elif self.options.platform == "d3d9": - self.cpp_info.defines.append("RW_D3D9") - elif self.options.platform == "ps2": - self.cpp_info.defines.append("RW_PS2") diff --git a/vendor/librw/docker_rebuild_ps2.sh b/vendor/librw/docker_rebuild_ps2.sh deleted file mode 100755 index cf8148f..0000000 --- a/vendor/librw/docker_rebuild_ps2.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -TARGET=release_ps2 - -set -e - -LIBRWDIR=$(dirname "$(readlink -f "$0")") -echo "LIBRWDIR is $LIBRWDIR" - -cd "$LIBRWDIR" - -premake5 gmake - -docker rm librw_instance -f >/dev/null 2>&1 || true -docker stop librw_instance -t 0 >/dev/null 2>&1 || true - -docker pull librw/librw -docker run -v "$LIBRWDIR:/librw:rw,z" --name librw_instance -d librw/librw sleep infinity -docker exec -u builder librw_instance /bin/bash -c "cd /librw/build && make clean config=$TARGET && make config=$TARGET verbose=1" - -docker rm librw_instance -f >/dev/null 2>&1 || true -docker stop librw_instance -t 0 >/dev/null 2>&1 || true diff --git a/vendor/librw/premake-vs2019.cmd b/vendor/librw/premake-vs2019.cmd deleted file mode 100644 index 18298f5..0000000 --- a/vendor/librw/premake-vs2019.cmd +++ /dev/null @@ -1 +0,0 @@ -premake5 vs2019 \ No newline at end of file diff --git a/vendor/librw/premake5.exe b/vendor/librw/premake5.exe deleted file mode 100644 index 9048d51e09da5bde02e6337dcfaa603a2cebf292..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1362432 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